algorithm - ¿Cómo trazar el contorno de una habitación de los sensores del telémetro en un auto de juguete?
graphics arduino (1)
heh una vez hizo un robot que era casi el mismo :)
yema podría dar la vuelta en un lugar (sin radio de giro)
por lo que fue fácil conducir y mapear el entorno
en su caso difícil de decir porque no vemos la cinemática del automóvil
de todos modos algunas pistas:
1.mientras haces la escucha ultrasónica debes tener tus motores silenciosos
- Usé motores paso a paso para que sus pulsos se pudieran escuchar en el receptor
- si usa un motor de corriente continua, esto podría ser muy complicado (puede ser que tenga que hacer un alto completo)
- o determinar qué eco es eco y qué ruido de conmutador
- con la conducción sin escobillas (BLDC) y sinusoidal está bien
- pero PWM o cualquier otro impulso impulsor creará los mismos problemas
- por lo que necesita sincronizar los tiempos de escucha y los tiempos de pulso noisse
- sin el equipo adecuado, será extremadamente difícil (el osciloscopio es ideal para esto)
2. emisores de ultrasonidos
- para evitar muchas confusiones
- usar solo uno a la vez
- esto es fácil pero lento
- o todo a la vez y espere a que primero reciba solo
- de esta manera no obtienes los datos de ecos lejanos
- es posible recibir desde todos los lados, pero necesita un filtrado bastante complejo
- intenta optimizar el bucle de recepción tanto como puedas
- Lo hice en algunas T de la MCU que me dan una resolución de aproximadamente 4 mm
- pero fue hace mucho tiempo y el ATMEL usado fue clon antiguo de 51 funcionando solo a 20 MHz
- no se sabe sobre arduino (prefiera UC3) pero los MCU de hoy son más de 10 veces más rápidos con tiempos mucho mejores.
3. movimiento
- deberás codificar las maniobras de movimiento
- forwad / backward por paso constante
- gire a la izquierda / derecha 90 grados
- su debe ser tan preciso como usted puede codificar
- en un entorno adecuado, puede usar ultrasonido para ser más preciso (solo necesita lados perpendiculares y no hay material problemático dentro)
- con estos puede comenzar a mapear su laberinto 2D
4. mapeo de la habitación
- crear un mapa 2D del entorno
- puedes hacerlo por celular o vector
- Recomiendo encarecidamente el acceso a la celda (es menos preciso pero más fácil para los principiantes)
- mapa puede ser matriz 2D
con valores desconocidos, espacio, pared
1.init
- coloque el auto perpendicular a alguna pared
- mapa claro con desconocido
- establecer posición en el medio del mapa (x, y)
2.echo-localizar todos los lados
- si se encuentra muro, márquelo en el mapa en (x, y) + (vector lateral de distancia *)
- y marque todo el espacio entre x, y y la marca de pared como espacio
- si no se encuentra una pared, marque como espacio todas las celdas en el mapa de x, y a (x, y) + (vector lateral de rango seguro *)
- los vectores laterales pueden ser: front (0, + 1), back (0, -1), left (-1,0), right (+1,0)
- rango seguro es la distancia desde su automóvil donde la pared siempre se detecta en [células]
- distancia es la distancia medida de la pared en [células]
- no olvide agregar a la cuenta las compensaciones del emisor / receptor desde la posición del automóvil
- también marque la posición actual (x, y) como espacio
3. encontrar cualquier celda más cercana o más rápida para mover marcada como celda espacial desconocida pero contigua
- si no se encuentra ninguno, el mapeo se termina (parpadea con un LED o se mueve locamente para señalizarlo)
- si se encuentra, planifique la ruta y muévala a ella
- establecer posición x, y para ello
4.goto 2
ahora solo mía los datos de MCU a PC y verlos
[notas]
- hay mucho que se puede agregar para mejorar esto ...
- cuidado con los materiales de tela / tela
- son muy difíciles de detectar por ultrasonido
- para los emisores usan su frecuencia requerida para maximizar su rendimiento
- para la ecolocación por impulso, la mejor relación potencia / precisión / rango para emitir es de 7 pulsos
- nadie sabe por qué, pero es el mejor (al menos para todas las aplicaciones y equipos que conozco)
Que te diviertas :)
Tengo un coche de juguete que tiene un arduino y 4 sensores del Buscador de rango ultrasónico en la parte delantera, trasera y en ambos lados, me dan la distancia a una pared si existe alguna dentro del rango que cubre el sensor, los sensores me dan esta información en pocas palabras intervalos, el automóvil tiene que moverse por una habitación y trazar el contorno, las habitaciones pueden tener columnas y ser algo irregulares, no conozco los algoritmos involucrados en este trazado, cualquier idea sería apreciada.