English clarification: all contents in this repository, including comments, function and variable names, and any documentation are (mostly) in Spanish. And they will continue to be. All units are metric as well.
Este es el código basado en el entorno Arduino de la computadora de vuelo Zafir, para cohetería experimental y modelista. El mismo controla tres salidas visuales, una auditiva, una de movimiento, otra eléctrica de potencia (MOSFET), y un sistema de datalog hasta a 181 Hz en tarjeta SD. Actualmente el código está diseñado para lanzamientos con cohetes de agua con alta aceleración, y despliegue de paracaídas con un servomotor. Las unidades de medición utilizadas responden al SI, con algunas excepciones puntuales.
- Arduino Nano (ATmega328p U-TH @16 MHz. 2 KB RAM, 30 KB FLASH usable) (NRFND). datasheet
- Módulo sensor MPU6050; protocolo I2C (NRFND). datasheet
- Módulo sensor BMP280; protocolo I2C. datasheet
- Módulo lector microSD HW-125; protocolo SPI.
- N channel MOSFET 2SK3533-01 (7 Amperes continuos). datasheet
- Servomotor 9 g.
- Ledes X3: rojo y azul (juntos), y amarillo (independiente).
- Buzzer activo.
- Detección de despegue, apogeo y aterrizaje.
- Despliegue de paracaídas (doble, programable).
- Indicación de estado visual y auditiva.
- Medición de:
- Aceleración en los tres ejes, hasta ±16 g.
- Velocidades de precesión (giroscopios) en los tres ejes, hasta ±2000
${deg} \over {s}$ . - Altitud relativa y absoluta, desde -500 hasta 9000 m s. n. m.
- Temperatura MPU6050 y BMP280.
- Recopilación rápida (hasta de 181 Hz: 5,52 ms promedio entre escrituras) de datos csv en tarjeta SD de hasta 32 GB.
- Alta velocidad del loop en vuelo (~250 Hz sin datalog [3,42-3,8 ms por leer sensores], y ~181 Hz con datalog [5,52 ms totales]).
- Alimentación desde 6 hasta 20 V no regulados.
En la release actual (v1.1.0), en PlatformIO, el código se compila utilizando 1354 bytes (66,1 %) de RAM, y 27304 bytes (88,9 %) de FLASH. Sin embargo, en la release v1.1.0-enum-datalog, que cuenta con numeración automática en los archivos de datalog, el uso de memoria es de 1360 bytes (66,4 %) de RAM, y 27996 bytes (91,1 %) de FLASH.
- Adafruit_BMP280_Library
- Adafruit_Sensor
- Arduino SD
- Arduino Servo
- Arduino SPI
- Arduino Wire
- Implementar un sistema para la creación de nuevos nombres para cada archivo de datalog (v1.1.0-enum-datalog).
- Mover todos los mensajes del código a un archivo en la SD para ahorrar memoria.
- Control de buzzer pasivo (involucra al menos +2,4% FLASH).
- Añadir nuevos estados y métodos de detección de fases de vuelo para cohetería con combustible sólido (actualmente sólo para cohetes de agua).
- Añadir control de memoria FLASH externa.
- Comprobación de datos en flashchip al inicio del programa, y pase a la SD.