Espero que esta pregunta no parezca demasiado general / basada en la opinión, e intentaré enfocarla.
Hace poco completé un proyecto para una competición de cohetes en la que controlamos una cámara de giro / inclinación en la parte inferior de un módulo de aterrizaje expulsado de un cohete. Tuvimos que controlar la cámara para apuntar a objetivos en el suelo, crear imágenes, procesar las imágenes e identificar los objetivos por color. Utilizamos dos servos (pan / tilt), un módulo GPS y una placa de 10 DOF (Gyro / Acc / Temp).
El enfoque que tomamos fue usar un Arduino para manejar la panorámica / inclinación, el GPS y la placa 10DOF. Esto se comunicaba con una pi frambuesa a través de I2C y actuaba como el maestro, mientras que el Arduino era el esclavo. El pi manejó la toma y procesamiento de la imagen.
Al hacer esto, tuvimos problemas con el uso general de la memoria en el microcontrolador (el código de paneo / inclinación fue bastante intenso) y pudimos obtener todos los datos necesarios de los diferentes sensores y comunicárselos al Pi . Utilizamos interrupciones y tratamos de optimizar el código de la manera más eficiente posible.
Mi pregunta es, para proyectos como este, donde hay muchos sensores y mucho procesamiento, ¿me interesa crear una placa personalizada con cajeros automáticos separados para cada sensor (o al menos uno para sensores, otro para lógica)? Si es así, ¿es I2C el protocolo recomendado para ser usado?
Mientras trabajo en muchos proyectos del tipo de visión por computadora, necesitaré usar un PI u otra computadora para procesar las imágenes, y también poder obtener datos de sensores y calcular más rápido de lo que Pi puede manejar, un diseño elegante y Una solución rápida a esto sería muy apreciada.
Gracias