Arducar: Ordenador de a bordo para coches antiguos

Grupo 9 (Móstoles):
Daniel Duque Maroto
Jesús Miranda Blanco
Daniel Villaverde Martín

1. Introduccion y fundamentos

     De la necesidad de renovar y aumentar las funcionalidades de coches sin ordenador de a bordo nace Arducar.
     Arducar es un sistema que permite añadir a los coches antiguos un ordenador de a bordo con velocímetro digital y sensor de aparcamiento.
     Dividido en dos módulos, el trasero (colocado en el maletero), el cual obtiene datos sobre la velocidad gracias a un GPS y sobre la distancia del parachoques trasero a objetos cercanos gracias a unos sensores de ultrasonidos, y el delantero (colocado en el salpicadero), el cual recibe los datos del módulo trasero y los representa a través de la pantalla LCD y la matriz de LEDs. Ambos módulos se comunican de forma inalámbrica.

2. Tecnologías

  • GitHub: Hemos utilizado GitHub para poder trabajar todo el equipo sin encontrarnos en el mismo lugar y llevar un control de versiones.
  • Trello: Hemos utilizado Trello para gestionar las tareas y modificaciones que quedaban por hacer.
  • Arduino IDE: Para programar los sketchs

3. Hardware y estructura

  • 2 placas Arduino UNO.
  • Pantalla LCD1602 con teclado: Los datos de la velocidad y la distancia detectada por los sensores de aparcamiento se mostrarán aquí.
  • 2 shield Xbee: Se encargarán de el intercambio de datos entre ambos módulos de forma inalámbrica.
  • Matriz de LEDs 8×8: Mostrarán de forma gráfica la distancia detectada por los sensores de aparcamiento.
  • LDR: se encargará de detectar la luz ambiente para apagar o encender el la luz del LCD.
  • Módulo GPS GY-GPS6MV2: detectará la velocidad del vehículo desde el módulo trasero.
  • 3 módulos ultrasonido HC-SR04: detectarán la cercanía del parachoques trasero con los objetos cercanos.
  • 2 Protoboard: para hacer pruebas antes de montar la estructura definitiva y para conectar varios componentes a la los pines 5V y GND de la placa arduino.
  • Cables y pines macho/hembra.
  • Un par de cajas viejas: para montar la estructura del módulo delantero.
  • Cargador USB/mechero: para enchufar el módulo delantero al coche.
  • Batería recargable USB: para alimentar el módulo trasero.
  • Herramientas: alicates, soldador de estaño, estaño, cinta de doble cara, cinta aislante, etc. para montar la estructura definitiva, soldar los cables y componentes necesarios y fijar los módulos al coche.
Estructura:
  • Módulo trasero:

  • Módulo delantero:

4. Precios

Componente
Precio (€)
Cantidad
Necesario (€)
Comprado (€)
Pantalla LCD1602 con teclado
3.1
1
3.1
3.1
Matriz de LEDs 8×8
2
1
2
2
Arduino UNO
14
2
28
0 (1 del kit otorgado por la universidad y otra propia nuestro)
Shield XBEE
23.6
2
47.2
0 (Prestados por Javier Cano)
LDR
0.2
1
0.2 0 (Incluído en el kit)
Módulo GPS GY-GPS6MV2
11
1
11
11
Módulo ultrasonido HC-SR04
1.25
3
3.75
3.75
Protoboard
1
1
2 0 (Incluído en el kit)
Cable de hilo
0.3/m 16m 4.8 4.8
Pines Macho/Hembra
0.02 200 4 4
Cargador USB/mechero
2 1 2 0 (Propio)
Bateria recargable USB
8 1 8 0 (Propia)
Cajas viejas
0
2
0
0


Total
116.05 28.65

5. Software


Código del módulo delantero: Dropbox
Código del módulo trasero: Dropbox

  • Librerías:
    • LiquidCrystal: utilizado para crear la entidad del LCD y dibujar en la pantalla (clear, setCursor, print…).
    • LedControl: utilizado para crear la entidad de la matriz de LEDs y encender y apagar los LEDs (clearDisplay, setColumn…).
    • Ultrasonic: utilizado para crear la entidad de los ultrasonidos y medir la distancia que detectan (Ranging).
    • SoftwareSerial: utilizado en conjunto con TinyGPS para leer los datos del GPS.
    • TinyGPS: utilizado para crear la entidad del GPS y obtener información como la velocidad (encode, f_speed_mph…).
  • Módulo trasero: el módulo trasero inicializa los ultrasonidos y el GPS y utilizando las librerías correspondientes envía datos de distancia captados por los ultrasonidos y de velocidad captados por el GPS.
  •      El envío de datos se realiza a través de los módulos XBEE que a nivel de código funcionan como una comunicación con el serial, por lo que el envío se realizará a través de cadenas de caracteres pero la lectura será caracter a caracter. Teniendo en cuenta esto los datos se envían con un caracter clasificador que informará de a qué corresponde el dato numérico enviado a continuación (‘v’ en caso de un dato de velocidad, ‘z’ en caso de un dato de distancia correspondiente al sensor izquierdo, ‘x’ si el dato corresponde al central y ‘c’ si el dato corresponde al derecho) y un caracter de fin de dato (‘f”) que informa de cuando finaliza el dato numérico.

  • Módulo delantero: el funcionamiento del módulo delantero es algo más complicado. El módulo delantero funciona por modos (inicio, mostrando valor de velocidad y mostrando valor de distancia al parachoques trasero). En cada bucle el módulo delantero realizará la lectura de todos los datos disponibles en el serial en ese momento y almacenará los datos de velocidad y distancias obtenidos, dependiendo de la velocidad el modo cambiará a aparcamiento (si la velocidad es menor de 15km/h) o a velocímetro (si la velocidad es 15km/h o más)
6. Montaje y funcionamiento

Montaje:

Funcionamiento:



     El funcionamiento de Arducar es bien sencillo. Al encenderse nos mostrará por pantalla un mensaje recordándonos que debemos tener cuidado en carretera.
     Si Arducar detecta que es posible que vayamos a aparcar nuestro coche (velocidad <15 km/h) mostrará por pantalla la distancia detectada por cada uno de los sensores y por la matriz de LEDs una representación gráfica de la misma, siendo la columna de luces correspondiente a cada sensor mayor en caso de que detecte una distancia pequeña o menor en caso de que la distancia sea grande.
     Si Arducar detecta que vamos a una velocidad alta (velocidad>=15km/h) nos mostrará la velocidad por pantalla junto con el tipo de carretera por la que debemos ir a esa velocidad (hasta 50km/h=”Población”, hasta 90km/h=”Comarcal/Nacional/Local” y hasta 120km/h=”Autovía/Autopista”). En caso de que superemos los 120km/h los LED parpadearán para avisarnos de que hemos excedido la velocidad máxima.

7. Problemas encontrados
  • GPS: en un principio conectamos por error el pin TX del GPS con el pin que habíamos definido en la arduino como TX y el RX con el RX cuando van intercambiados (TX-RX y RX-TX)
  • Matriz de LEDs: en ocasiones, al mostrar ciertos valores por la pantalla LCD, la matriz de LEDs no funciona correctamente, creemos que es por ir conectada a los pines que salen de la LCD e interferir con la misma.
  • Ultrasonidos: tuvimos problemas con los ultrasonidos, ya que funcionaban poco muy de vez en cuando. Tras soldarlos conseguimos disminuir considerablemente (casi a valores imperceptibles) el tiempo que no funcionaban.
  • XBEE: los módulos XBEE funcionan por defecto a 9600 baudios, con esa tasa de transferencia hay ocasiones (muy pocas) en las que los datos no se transmiten completamente.
8. Conclusiones

     Debido a la falta de un presupuesto mayor ciertos componentes no tenían la calidad que esperábamos, los ultrasonidos, por ejemplo.
     Creemos que hemos conseguido un resultado bastante bueno y que es un proyecto que perfectamente podría llevarse a cabo e implantarse en un coche de forma definitiva.

También te podría gustar...

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *