Su pregunta general es, por supuesto, demasiado amplia para ajustarse aquí, pero se puede abordar la pregunta específica de seleccionar un procesador para un quadcopter.
En general, lo que falta es el conocimiento de la tarea real.
Una pequeña perspectiva histórica mostraría que se trataba de un problema que se resolvía habitualmente con pequeñas MCU basadas en flash de 8 bits como las series STM8 y ATmega. Hablar con una radio empaquetada de 2.4 GHz, leer un sensor MEMS o dos, el rollo de amortiguación y, opcionalmente, restaurar el "nivel" realmente no son tareas de gran demanda computacional o de recursos de memoria alta, incluso si se agregan extras como un botón giratorio.
Sin embargo, con bastante rapidez, la mayoría de los juguetes comerciales y los proyectos de código abierto han pasado de procesadores de 8 bits a 32 bits, generalmente dispositivos ARM Cortex M0 o M3. Hasta cierto punto, esto refleja una tendencia general de la industria: estas piezas son muy económicas y hoy en día a menudo se paga principalmente por el flash y los tamaños de RAM, no por la capacidad del núcleo. La mayoría de los juguetes económicos vuelan con STM32 o partes de GigaDevices similares al trabajo, algunos tienen Nuvoton, y luego hay una categoría completa que usa partes de Radio / MCU combinadas sin documentar en el oeste.
En términos de considerar el ESP32, esto probablemente no es lo que quieres, por varias razones:
-
No es una MCU basada en flash unificada, sino que (generalmente) requiere un flash SPI externo, que es una parte más de la fuente, la ruta y un punto de falla más
-
Ni WiFi ni BLE son realmente adecuados para vuelos comandados por control remoto. Para esto desea algo que a nivel aéreo no implique sesiones y no implique reintentos. Los paquetes perdidos son una certeza, pero la solución adecuada es seguirlos con paquetes actualizados, no seguir intentando enviar paquetes que contengan comandos cada vez más antiguos. Si bien hay algunas opciones para ejecutar estas radios en más modos sin procesar, esa no es un área que haya recibido mucha exploración.
-
La documentación y el conocimiento disponible aún tienen muchos rincones oscuros inexplorados, especialmente pero no solo con respecto a las radios.
-
Serás bastante inteligente con tu propio software. Incluso si su objetivo es escribir un firmware totalmente personalizado, ser capaz de portar rápidamente uno existente a su asignación de pines le permite validar los circuitos y el fuselaje para que su trabajo de software pueda ser solo sobre algoritmos y software, en lugar de enfrentar todos los problemas a la vez.
Algunas características que normalmente se desean en una MCU son:
-
Flash y RAM totalmente autónomos que requieren componentes de soporte mínimos. Tener varios tamaños de memoria en el mismo paquete le permite tener unidades de desarrollo de memoria alta con salida adicional y unidades de producción de memoria baja más baratas.
-
Hardware I2C y SPI para hablar con sensores y radio (y un UART para salida de depuración es muy útil)
-
Al menos cuatro canales PWM de hardware para impulsar directamente los FET de motores cepillados o proporcionar señales servo de estilo heredado a controladores de velocidad externos. (Algunos ESC modernos usan señalización compleja que se beneficiaría de las interfaces respaldadas por DMA, la identificación de los canales de hardware adecuados para ellos es un arte en sí mismo, pero un principiante no debería estar jugando con aviones grandes y, por lo tanto, es lo suficientemente peligroso como para usarlos)
-
Capacidad para operar a 2.8 voltios o menos, para permitir la selección de un margen de voltaje LDO cuando se opera desde una sola celda que puede disminuir sustancialmente bajo carga cuando se vuela de manera agresiva al final del ciclo de descarga.
Antes de realizar el trabajo original en este campo, sería prudente elegir uno de los aviones propulsados de 15 a 18 gramos y 15 a 20 gramos que se ejecutan en un STM32F0 con puerto SWD etiquetado, y una alternativa de código abierto disponible. firmware Eso le da muchas oportunidades de aprender sin el largo esfuerzo de diseñar y ensamblar una pequeña placa y fuselaje, y por supuesto puede intercambiar partes, colocar el controlador de stock en un fuselaje personalizado o una PCB personalizada en el fuselaje de inventario. También es bastante útil tener algo lo suficientemente pequeño como para poder soltar los cables SWD y volar directamente desde el laboratorio, sin tener que invertir todo el tiempo en transportar todo al aire libre.