Hacer un pequeño robot usando un cerebro remoto


8

Me gustaría construir un robot lo más pequeño posible y con la menor cantidad posible de partes "delicadas" (los bots se golpearán entre sí).

Me preguntaba si era posible usar un pequeño chip que pudiera recibir comandos de bluetooth / IR / wifi para mover los motores y, a su vez, enviar comentarios basados ​​en sensores como un acelerómetro (para detectar el impacto).

Probablemente pueda lograr algo como esto con PiCy

picante

Sin embargo, esto es un poco más grande de lo que me gustaría (debido al tamaño del Pi) y no estoy seguro de cuánto tiempo duraría el Pi teniendo impactos continuos.

Por lo tanto, me gustaría intentar desplazar el cerebro (el Pi) hacia un lado de la arena y usar un pequeño chip para recibir comandos de movimiento y enviar datos desde el acelerómetro.

¿Tienes alguna recomendación para tal chip? Wifi sería mi elección, pero si afecta el tamaño, podría probar BT

Editar: después de una mayor investigación, parece que un Arduino nano con un escudo WiFi RedBack podría hacer el trabajo junto con algo como esto para los motores: http://www.gravitech.us/2mwfecoadfor.html

Respuestas:


2

Es posible que las placas rPI sean más duraderas de lo que esperaba. No tienen mucha masa, por lo que una pequeña cantidad de relleno de goma o espuma (para reducir el ruido) debería ser suficiente para protegerlos, siempre que sus robots no se golpeen con la fuerza suficiente para romper la carcasa de plástico. ellos.

Descargar el procesamiento en un sistema remoto (y probablemente más potente) le dará algunas ventajas, como las que ha notado: menos peso, menos que romper, menos batería necesaria para mover la cosa.

Las desventajas serán las limitaciones de ancho de banda y la latencia. Una vez que introduce el retraso de las transmisiones inalámbricas, pasa de un bucle basado en hardware que puede manejar en el estadio de miles de iteraciones por segundo a un bucle basado en red que puede manejar solo docenas de iteraciones por segundo.

Para obtener los mejores resultados, su diseño debe realizar el mayor control de procesamiento posible en el hardware local y utilizar la conexión remota para decisiones de planificación de alto nivel que solo deberán recibirse unas pocas veces por segundo.


Sin embargo, el control se realizará a través de la cámara web a través de Internet, por lo que se esperará un ligero retraso de todos modos.
Titán

0

Hay dos enfoques para construir los robots que describe.

El primero, como sugiere, es desacoplar la potencia de procesamiento del resto del robot que contiene los sensores y actuadores. Para hacerlo, necesita cierta comunicación entre la unidad de procesamiento (PC / RPi / Otro microcontrolador) y su robot. Una solución de bajo costo para esto es utilizar módulos Bluetooth baratos (busque en eBay 'Módulo Bluetooth serie', no deberían costar más de $ 5). En el lado del robot, también necesitará un microcontrolador, ya que necesita recibir los datos del Bluetooth, procesarlos y convertirlos en señales de control para los motores. Además, el mismo microcontrolador será responsable de leer los sensores y transmitir los datos a la unidad de procesamiento remota.

El segundo enfoque es tener una sola unidad de procesamiento que se encuentra en el robot. El mismo controlador leerá los sensores, proporcionará la inteligencia y controlará los motores. Debido a que el robot que describe es simple, este controlador podría implementarse en un microcontrolador simple. Puede crear su propio controlador (usando PIC / AVR / ARM) o puede usar una solución lista como Arduino, BasicStamp, etc. Opcionalmente puede tener conexión Bluetooth con una PC para telemetría (observando los valores de los sensores y / o controlando manualmente el robot).

Para su proyecto, el segundo enfoque parece más atractivo. Costará mucho menos y los robots reaccionarán más rápido ya que el procesamiento se realiza directamente en el robot. Además, dado que el primer enfoque también requiere una unidad de procesamiento en el robot, parece una exageración utilizar una segunda unidad para el procesamiento. Por otro lado, el primer enfoque le permite desarrollar su controlador de robot en un sistema de nivel superior (PC / RPi) que, según su experiencia, puede ser un entorno más cómodo.


Su razón principal para no colocar un controlador grande en el robot fue evitar daños después de los impactos. Si optara por el enfoque del controlador remoto, solo necesitaría un único controlador principal para varios robots (identifique los comandos / comentarios con una ID única para cada uno). Es posible que pueda lograr la solución "cerebro en el bot" con un Adriuno nano que se ve lo suficientemente pequeño con un escudo Wifi (para enviar y recibir comunicaciones socketio para control y comentarios con el servidor remoto).
Titán

¿Qué estás sugiriendo exactamente? ¿Tener un arduino nano con WiFi en el robot y una unidad de procesamiento remoto adicional? ¿Qué unidad hará los cálculos de control?
Demetris

Bueno, todavía no estoy seguro jaja. ¡El nano podría hacerlo todo, supongo!
Titán

Sí, para el propósito de su proyecto, ¡la única unidad de procesamiento a bordo parece ser la mejor opción! Como mencioné en la respuesta, si necesita comunicarse con el robot, puede hacerlo a través de módulos Bluetooth baratos. Alternativamente, puede usar (¡incluso más barato!) Módulos nrf24l01 + si necesita establecer una red, ya que tiene varios robots.
Demetris

0

Creo que he encontrado el controlador perfecto para este proyecto:

http://www.robotshop.com/en/dagu-micro-magician-robot-controller.html

¡Micro Magician me permitirá controlar 2 motores de CC simples, detectar impactos y choques con el acelerómetro Y recibir comandos de movimiento desde el receptor IR! Bastante impresionante para el tamaño.

La única pieza que queda en el rompecabezas es devolver los datos al control remoto (datos del acelerómetro). No estoy seguro de si podría conectar un transmisor IR o quizás BT / Wifi.

Editar: ¡parece que esto podría hacer el trabajo! http://www.dawnrobotics.co.uk/dagu-arduino-bluetooth-module/

Ahora para encontrar motores pequeños ...


1
Synapse RF266PC1 son dispositivos interesantes. Son pequeños, fáciles de programar y basados ​​en Python. Los ADC que tienen no son tan buenos, pero en combinación con un ATmega328 (chip utilizado en Arduino UNO) puede obtener suficiente potencia de procesamiento para enviar datos de un lado a otro. También he usado Wixels, pero su distancia rx / tx deja mucho que desear. Estos RF266PC1 pueden hacer redes de malla fuera de la caja, Wixels no puede hacer eso en absoluto.
Daniel F
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.