Quintana-S-E / Zafirsoft_R2

Código de una computadora de vuelo para cohetería experimental y modelista basada en Arduino. Posee tres salidas visuales, una auditiva, de movimiento, otra eléctrica de potencia, y un sistema de datalog hasta a 181 Hz en tarjeta SD

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Zafirsoft_R2

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.


Introducción

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.

Computadora de vuelo

Componentes

  • 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.

Capacidades

  • 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.

Uso de memoria

En la release actual (v1.1.1), 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, el uso de memoria es de 1360 bytes (66,4 %) de RAM, y 27996 bytes (91,1 %) de FLASH.
La release v1.1.1-mensajes-SD se compila en 1290 bytes (63 %) de RAM, y 29178 bytes (95 %) de FLASH.

Librerías utilizadas

Próximos cambios

Por programar

  • 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 (v1.1.1-mensajes-SD, resultó ocupar mucha memoria FLASH).

Requieren mejoras de harwdare

  • 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.

Changelog

About

Código de una computadora de vuelo para cohetería experimental y modelista basada en Arduino. Posee tres salidas visuales, una auditiva, de movimiento, otra eléctrica de potencia, y un sistema de datalog hasta a 181 Hz en tarjeta SD


Languages

Language:C 81.7%Language:C++ 18.3%