Un robot con una inteligencia mejor que la media es lo primero que se me ocurre.
Arduino es una plataforma maravillosa para manejar el trabajo de nivel inferior de un robot: sensores de lectura, servos de conducción y luces parpadeantes. Hay una buena cantidad de RAM a bordo, y es programable en C ++, por lo que puede escribir cantidades decentes de código y el comportamiento básico del robot autónomo está dentro de sus capacidades. Si bien es extensible, puede comprar escudos Arduino para hacer una amplia variedad de cosas, no tiene un sistema operativo per se (Arduino tiene una gran cantidad de soporte para acceder a la placa y conducir servos, etc., pero es limitado y no proporciona lo que proporciona un sistema operativo, por ejemplo, múltiples procesos o hilos de ejecución, señales, IPC, etc.
Cuando piense en Arduino, piense en una gran plataforma para conectar sensores y servos, y similares, y obtener acceso a una maravillosa biblioteca de funciones que facilitan la lectura de sensores y servos de conducción.
- ¿Se utiliza Raspberry Pi para la recopilación de datos del sensor o el procesamiento de datos?
- ¿Cuál es la forma más económica de controlar una Raspberry Pi a 10 km y obtener video / telemetría?
- ¿Está disminuyendo la cuota de mercado de BeagleBoard debido a Raspberry Pi?
- ¿La Raspberry Pi es adecuada para el servidor de almacenamiento doméstico con capacidades de torrents?
- ¿Es un buen proyecto maestro para la ciencia de datos? Estoy pensando en usar el clúster Raspberry pi, instalar Hadoop y Tensorflow para la clasificación de imágenes.
Raspberry Pi, por otro lado, proporciona líneas de E / S pero no una biblioteca de soporte per se como la que obtiene con Arduino. Puede hacer mucho de lo que quiera en términos de lectura de sensores y servos de conducción desde el Raspberry Pi, pero en mi opinión, es mejor hacerlo en el Arduino. Sin embargo, lo que Raspberry Pi puede proporcionar que está fuera del alcance de Arduino es un sistema operativo de la talla de Linux (Fedora y otros), y con eso todo el soporte que Linux proporciona para dispositivos no triviales como USB Ethernet, cámaras USB , etc. También le brinda acceso a la amplia gama de bibliotecas potentes escritas para Linux como OpenCV para procesamiento de imágenes y cientos (¿miles?) de otras, prácticamente cualquier cosa que encuentre en un sistema de escritorio estará disponible o será portátil. en teoría a Linux ejecutándose en Raspberry Pi. También proporciona órdenes de magnitud más potencia de procesamiento y memoria, lo que ayudará a realizar las tareas que una aplicación de robótica más sofisticada necesitará realizar.
Usaría la Raspberry Pi como host para toda la lógica que es difícil de incluir en un Arduino (o para encontrar una solución: Linux dominará en términos de opciones de software en comparación con Arduino por un amplio margen). También es el lugar para hacer el análisis numérico, el análisis de imágenes y el almacenamiento de bases de datos: ya se entiende la idea.
Entonces, la arquitectura básica de un robot Raspberry Pi / Arduino sería esta: lógica para interactuar con el hardware del robot en el Arduino, y el cerebro del robot en Raspberry Pi. Agregue un escudo de Ethernet y envíe mensajes entre los dos (estado del sensor de Arduino a Raspberry Pi y comandos de control (por ejemplo, comandos de servo) de Raspberry Pi a Arduino). O conecte las líneas en serie y envíe comandos y datos en serie (mi preferencia, utiliza menos energía y probablemente tenga menos código para implementar).
Para dar un ejemplo concreto, si su robot usa visión artificial para navegar por su mundo, colocaría el procesamiento de imágenes y la lógica de decisión de navegación en la Raspberry Pi, así como en la cámara web y sus controladores, y en el Arduino podría conducir el servo que se usa para girar la cámara a su posición. En Raspberry Pi también puede ejecutar un servidor web que permita monitorear el estado del sistema y recibir comandos para controlar el robot manualmente a través de una red.