DRIVER.INO
Proyecto
Arduino: Driver.Ino
Arduino: Driver.Ino
Diseño
de Sistemas Empotrados y de tiempo Real:
de Sistemas Empotrados y de tiempo Real:
Grupo
1:
1:
Eduardo Hernández Vadillo
Darío Garrido Conde
Sandro Del Río Carrasco
Índice
– 1. Introducción
– 2. Materiales
– 3. Montaje
– 4. Funcionamiento
– 5. Problemas
encontrados
encontrados
– 6. Posibles mejoras
– 7. Código del
Programa
Programa
– 8. Vídeo del funcionamiento
1.Introducción:
El proyecto que hemos realizado consiste en un
coche autónomo que siga un recorrido de acuerdo con un circuito hecho con cinta
en el suelo, que se detiene ante obstáculos detectados con una distancia
prudencial para evitar atropellos y además se para ante una base de color
elegida en nuestro código del programa. Ese sería su funcionamiento básico.
coche autónomo que siga un recorrido de acuerdo con un circuito hecho con cinta
en el suelo, que se detiene ante obstáculos detectados con una distancia
prudencial para evitar atropellos y además se para ante una base de color
elegida en nuestro código del programa. Ese sería su funcionamiento básico.
2. Materiales:
Imagen |
Material |
Unidades |
Precio |
Adaptador HC-SR04 |
1 |
2.30 € |
|
IR Tracking SigueLineas |
2 |
7.00 €
|
|
Driver L298N |
1 |
7.00 € |
|
YIKESHU 4WD Smart Motor Robot |
1 |
14.00 € |
|
WINGONEER HC-SR0 |
1 |
4.00 € |
|
120 cables:
40 x macho macho
40 x macho hembra
40 x hembra hembra |
1 |
7.00 € |
|
Sensor de color TCS3200 |
1 |
7.30 € |
|
Arduino UNO |
1 |
20.00 € |
|
Cinta Aislante |
1 |
1.00 € |
|
Pilas AAA |
6 |
6.00 € |
|
Cartulinas de Colores |
1 |
1.00 € |
TOTAL
GASTADO : 76,60 €
GASTADO : 76,60 €
3.Montaje:
El montaje fue sencillo, aunque en parte fue
tedioso tratar con tantas conexiones entrelazadas. Anclar lo servomotores, la
fuente de alimentación de 6 pilas y el Arduino al chasis, fue tarea fácil. La
complicación estuvo en anclar el controlador de los motores, los 2 sensores de
luz, el sensor de infrarrojos y el sensor de color ya que el espacio nos era
limitado y nos quedamos sin pines en el Arduino, los dos sensores de luz así
como el sensor de color debían ir pegados al suelo para detectar bien la línea
y que no sufriera problemas con las sombras.
tedioso tratar con tantas conexiones entrelazadas. Anclar lo servomotores, la
fuente de alimentación de 6 pilas y el Arduino al chasis, fue tarea fácil. La
complicación estuvo en anclar el controlador de los motores, los 2 sensores de
luz, el sensor de infrarrojos y el sensor de color ya que el espacio nos era
limitado y nos quedamos sin pines en el Arduino, los dos sensores de luz así
como el sensor de color debían ir pegados al suelo para detectar bien la línea
y que no sufriera problemas con las sombras.
5.Funcionamiento:
El coche sigue la carretera negra sobre fondo
blanco gracias a su sensor de infrarrojo. Dependiendo el valor que devuelven
sus dos sensores gira izquierda, derecha o sigue adelante, recordando su última
acción por si se sale de la carretera.
blanco gracias a su sensor de infrarrojo. Dependiendo el valor que devuelven
sus dos sensores gira izquierda, derecha o sigue adelante, recordando su última
acción por si se sale de la carretera.
También el coche para al detectar un obstáculo
con su sensor de Ultrasonidos a cierta distancia.
con su sensor de Ultrasonidos a cierta distancia.
Por
último el coche se detiene dependiendo el destino que le hayamos indicado en el
código
último el coche se detiene dependiendo el destino que le hayamos indicado en el
código
5.Problemas
Encontrados:
Encontrados:
Problema |
Solución |
Los sensores de infrarrojos devolvían valores erróneos debido a que, al encontrarse debajo del chasis, detectaba la sombra del propio coche y obviaba la línea del circuito. |
Anclamos los sensores bajo el chasis como estaba planeado, pero los pusimos sobresalientes en la parte frontal del vehículo. |
El sensor de color no respondía como esperábamos con los métodos que venían por defecto en el manual del sensor. |
Tuvimos que calibrar nuestros propios rangos de valores para que detectase bien los colores. |
Los motores consumían demasiado rápido las pilas. |
Para hacer las pruebas, decidimos probarlo enchufando la placa de Arduino al Pc. |
El sensor de ultrasonidos detectaba muchas veces el suelo como obstáculo, debido a su difícil anclaje al chasis. |
Compramos un adaptador para el sensor que nos permitía anclarlo recto y perpendicular al suelo, formando un ángulo recto perfecto. |
La placa de Arduino uno se nos quedó sin Pines digitales, necesarios para tantos sensores. |
Declaramos los pines analógicos lo que nos permitió salir del paso. |
La placa de Arduino uno se nos quedó también sin Puertos GND (Ground) disponibles. |
Utilizamos las entradas GND (Ground) del controlador de motores L298N, que al no tener entrada ni salida, y ser una simple toma de tierra, nos sirvió. |
El suelo del circuito tenía que ser blanco entero o muy clarito para que los sensores no confundieran el suelo con la línea a seguir. |
Conseguimos poder probar el coche en una de las mesas de las salas compartidas de la biblioteca, que tienen fondo totalmente blanco. |
6.Posibles
mejoras:
mejoras:
Inicialmente nuestra idea era que el coche
esquivase los obstáculos que se fuera encontrando, sin embargo, al salirse de
la línea y esquivarlo, nos daba problemas al volver a encontrar la línea del
circuito, así que nos vimos en la necesidad de implementar la opción de que el
coche solo se parase al detectar un obstáculo y siguiese andando cuando dicho
objeto desapareciera de su campo de visión. La solución para esto podría ser
comprar otros dos sensores de luz para la parte posterior del coche e implementarlo
de tal forma que cuando se salga de la línea, si por ejemplo, decidimos que al
esquivar lo haga por dentro (por la derecha del objeto) , gire a la izquierda
para volver a encontrar la línea.
esquivase los obstáculos que se fuera encontrando, sin embargo, al salirse de
la línea y esquivarlo, nos daba problemas al volver a encontrar la línea del
circuito, así que nos vimos en la necesidad de implementar la opción de que el
coche solo se parase al detectar un obstáculo y siguiese andando cuando dicho
objeto desapareciera de su campo de visión. La solución para esto podría ser
comprar otros dos sensores de luz para la parte posterior del coche e implementarlo
de tal forma que cuando se salga de la línea, si por ejemplo, decidimos que al
esquivar lo haga por dentro (por la derecha del objeto) , gire a la izquierda
para volver a encontrar la línea.
Otra mejora que se nos ocurre es a la hora de
introducir el color destino del coche; estaría bien que el coche tuviera una
especie de pantalla LCD y unos botones para hacer posible la elección de dicho
destino de manera gráfica.
introducir el color destino del coche; estaría bien que el coche tuviera una
especie de pantalla LCD y unos botones para hacer posible la elección de dicho
destino de manera gráfica.
7.Código
del Programa:
del Programa:
Aquí podéis obtener el código completamente
funcional de nuestro proyecto:
funcional de nuestro proyecto:
8.Vídeo del funcionamiento: