Estoy construyendo un robot que puede navegar y localizar usando un microcontrolador Arduino. Estoy un poco confundido, sé que necesito un controlador de motor. Pero mi pregunta es ¿cómo obtengo la señal de retroalimentación del motor para poder controlar mi robot para recorrer una distancia particular o controlar la velocidad del motor?

Tiene varias opciones aquí, la primera es usar un motor paso a paso o un servo de rotación continua, como otros mencionaron. La desventaja es que agotarán la batería rápidamente y son más caros que los motores de CC. Los motores paso a paso también tienden a ser demasiado pesados ​​para robots más pequeños (aunque podría estar equivocado sobre estos dos puntos). La segunda opción, que recomiendo encarecidamente, es utilizar dos motores de CC con codificadores rotativos como este, combinados con un chip L298N Dual H-Bridge. Es lo que personalmente prefiero para los robots pequeños, ya que siento que, aunque es un poco más complicado que solo usar steppers, puedes obtener lo mejor de ambos mundos. El chip Dual H-Bridge le permite controlar la dirección y la velocidad y las bibliotecas arduino están ampliamente disponibles en línea (o pueden codificarse fácilmente).

En cuanto a cómo calcularía realmente la distancia, necesitará saber un poco sobre el codificador de su motor. El motor previamente vinculado, por ejemplo, tiene un codificador rotatorio incremental con 2 canales (un codificador de cuadratura), esto significa que tiene dos canales que cambian entre cero y uno y decodificar esos valores puede darle el número de revoluciones y la dirección de rotación. Aquí se da una explicación básica. En caso de que esté utilizando un UNO y necesite dos motores, estará atascado porque tiene 2 canales por motor pero solo 2 pines. Puede superar esto XORing los dos canales (usando un chip XOR como el 8086), y conectando la salida a los pines de interrupción. Aún podrá medir la distancia con la misma precisión, pero perderá la capacidad de medir la dirección.

Para leer y decodificar los codificadores, sugeriría leer sobre los pines de interrupción Arduino (2 y 3 en la UNO) e interrumpir las rutinas de servicio. Los pines de interrupción pueden detectar cambios (como un flanco ascendente o descendente o ambos) e invocar funciones conocidas como ISR (rutinas de servicio de interrupción). Esto detiene la ejecución del programa hasta que el ISR haya finalizado la ejecución y, por lo tanto, los ISR deben ser lo más cortos posible. Puede configurar su ISR para calcular el cambio de distancia dependiendo de la RCP de su motor, y posiblemente alterar su curso para asegurarse de que esté en línea recta si lo requiere (aunque eso no es tan simple, sugeriría leer sobre los controladores PID )

Estoy diseñando alrededor de un módulo de computadora a bordo con un módulo GPS para proporcionar comentarios. Siento que una computadora de tamaño pequeño como una Mac-miny con SSD es perfecta para el diseño. Estoy usando sensores para detectar bordes como en las aceras y otros pavimentos más paredes y otras barreras. Para la base, estoy usando una silla de ruedas motorizada con batería y motores paso a paso para mover el controlador de joystick. Dado que las sillas de ruedas usadas, motorizadas, se pueden obtener a través de craigslist por alrededor de $ 200- $ 400, dependiendo de la condición y motivación del vendedor, me proporciona una base para comenzar. El asiento se puede quitar o dejar para llevar. Se pueden conectar varios módulos de cámara para que pueda “ver”, más se pueden conectar módulos de voz para que pueda responder a los comandos de voz. Pero creo que debería considerar los módulos GPS, similares a los utilizados en la tecnología actual de ‘drones’, son económicos y no tiene que preocuparse por descubrir cómo decodificar motores paso a paso o cómo hacer que funcione. ¡Ahorre mucho tiempo con la mayor parte del trabajo ya realizado por usted! Además, la silla de ruedas tiene la potencia ya incorporada, por lo general, 2x12vdc, que puede reducirse para cualquier voltaje de 24vdc o inferior o puede alimentar un inversor.

En lugar de motores de CC, puede usar motores paso a paso. De esta manera, en lugar de tener que recibir retroalimentación del motor para calcular la distancia recorrida, usted controla la rotación exacta del motor para alcanzar la distancia deseada.
Verás, en los motores de CC, solo das potencia y el motor gira hasta que cortas la potencia. Pero en los motores paso a paso, el motor solo gira un poco (exactamente 1 rotación o 1/2 rotación o …) Y necesita enviar pulsos continuamente para mantenerlo girando. Las placas de controlador de motor para Arduino están hechas principalmente para motores paso a paso.
Buena suerte.

Puede usar sensores codificadores. Estos sensores proporcionan información sobre cuánto giró cada rueda. Para obtener información detallada sobre todos los aspectos de sich robot, puede tomar un curso en línea sobre cousera “Control of Mobile Robotics”

Si desea obtener retroalimentación del movimiento de un motor, debe usar algunos motores especiales que tengan sus codificadores montados o puede optar por construir su propio codificador.
Un codificador es algún tipo de sensor que genera una señal digital con respuesta al movimiento. Hay varios tipos de codificadores. Para su propósito específico, puede usar motores que tengan codificadores incrementales o magnéticos. Para obtener más información, eche un vistazo a este sitio web y realice algunas búsquedas en Google.
https://www.anaheimautomation.co
También es posible usar motores paso a paso para un movimiento preciso.

Para la odometría, los motores codificadores son la mejor opción. Puede medir el número de revoluciones del eje. También se puede determinar la velocidad de los motores.

El motor paso a paso también se puede usar

More Interesting

¿Qué ventajas hay en obtener un MD / PhD en CS en lugar de un MD / PhD en aprendizaje automático si quieres estudiar IA?

¿Cuáles son exactamente los algoritmos de IA utilizados en Five Nights at Freddy's?

¿La IA será una amenaza para la humanidad mucho antes de lo previsto?

¿Hay algún buen algoritmo de aprendizaje automático de código abierto implementado por MPI? No encontré ninguno de google

¿Qué te intriga del aprendizaje automático? ¿Qué te atrajo al espacio y cómo empezaste?

¿Qué empresas que cotizan en el mercado de valores de India se beneficiarán exponencialmente con el aumento de la inteligencia artificial y la tecnología de drones?

¿Cuáles son los próximos desafíos posibles para que DeepMind de Google fascine al mundo?

¿Cómo se implementa el algoritmo genético para una descendencia óptima?

¿Es el tiempo de aprendizaje de una red neuronal profunda (por ejemplo, para la detección de objetos) proporcional a la cantidad de datos de entrenamiento disponibles?

¿Aleatorización en algoritmos evolutivos (genéticos)?

¿Cuál es la diferencia entre inteligencia artificial y natural?

¿Qué pasa si Quora ganó sensibilidad?

¿Es posible que la inteligencia artificial pueda construir una dimensión de bolsillo para enviar a todos los refugiados allí?

¿Por qué los investigadores de IA no desarrollan más "sistemas expertos"?

¿Qué hará el gobierno con grandes grupos de ciudadanos que están desempleados poco calificados, sin educación y de larga duración si la automatización, la robótica y la inteligencia artificial realmente toman su trabajo?