Water Rockets – SPRocket – Parte 3 – Rocket electronics
Bueno, iré llenando este post poco a poco.
Esta parte está completamente diseñada por mi (para bien o para mal), puesto que es el campo al que me dedico. En este post intentaré explicar la arquitectura de la primera versión de SPRocket, y el diseño de la electrónica. De momento es un prototipo, pero está previsto evolucionarlo para hacer el despegue completamente automático.
La primera versión de la placa tiene estas características:
- Lanzamiento del cohete manual.
- Comunicación y armado del cohete mediante la aplicación android SPRocket.
- Comunicación con el cohete mediante bluetooth
- Detección del despegue y apogeo mediante sensor barométrico.
- Envío de telemetría de los sensores vía bluetooth.
En resumen, la arquitectura se puede resumir en el siguiente esquema:
Protocolo de lanzamiento
No todo han sido éxitos en SPRocket. El segundo lanzamiento del cohete fue un fracaso, y esto fue debido a un fallo en el mecanismo de eyección del paracaídas: si el muelle de eyección pasa demasiado tiempo retraído, éste pierde elasticidad y no es capaz de lanzarlo. Afortunadamente, el cohete en esa ocasión aterrizó como un misil, pero en una zona con arbustos, de modo que no sufrió ningún daño.
Todo esto propició que, como en la NASA o en la ESA, se hiciese necesario un protocolo de pasos óptimo para el lanzamiento. Es el siguiente:
- En un primer momento, se cargará el cohete con 1/3 del volumen de agua, y se insertará en el tubo de lanzamiento, asegurándose de que la junta tórica no tenga fugas de agua y ajuste bien. Este paso es importante, para no tener pérdidas de presión al inyectar el aire.
- Se alimentará la electrónica del cohete. Éste arrancará en modo WAIT_COMM, esperando por el inicio de la comunicación por parte de la aplicación.
- A continuación, desde la aplicación, iniciaremos la comunicación con el cohete. Si todo ha ido bien, el botón COMM se iluminará.
- Armaremos el cohete, presionando el botón SERVO. Esta acción mandará el comando de armado al cohete, el cual pondrá el servo en posición de armado.
- Arrancaremos la grabación de todas las cámaras onboard del cohete.
- Se plegará a continuación el paracaídas, y se cerrará la trampilla asegurando el cierre con el brazo del servo.
- Hasta este momento, podemos mover el cohete sin problemas. En este momento, desde la aplicación, se delegará al cohete el despliegue de paracaídas pulsando el botón ready. El cohete se pondrá en modo WAIT_FOR_LAUNCH, enviando la telemetría del sensor al móvil, y esperando por el despegue. En este momento se calibrará la altura cero (es decir, se toma como referencia la altura actual como el cero).
- Conectamos la manguera al lanzador y presurizamos el cohete.
- Lanzamos el cohete mediante el cordel de lanzamiento.
- El cohete detectará el lanzamiento y el apogeo. Al llegar al apogeo, desplegará el paracaídas, y esperará a detectar el aterrizaje.
- Una vez detectado el aterrizaje, el cohete enviará telemetría de nuevo y parámetros de vuelo (altura máxima y tiempo de vuelo).
Esto lo podéis ver en el vídeo del final del post.
Electrónica
La placa es muy sencilla, tiene lo siguiente:
- Microcontrolador arduino nano.
- Módulo HC05 bluetooth (podéis comprarlo por Ebay por unos 3 dólares).
- Sensor barométrico BME280 (por Ebay, unos 3 dólares)
- Giróscopo MPU6050 (actualmente no usado).
- Buzzer (no integrado en esta versión)
- Sd (no integrada en esta versión)
- Servo 9g turnigy (hobbyking)
- Lipo 2s como batería.
La máquina de estados del cohete es la siguiente:
Aplicación SPRocket (Android)
Como he mencionado, la comunicación con el cohete se realiza a través de una aplicación diseñada con APPinventor, y funciona en cualquier terminal Android.
La aplicación tiene un botón para iniciar la comunicación con el módulo HC05. La MAC se configura pulsando en el botón Set up.
Una vez iniciada la comunicación, el botón se iluminará. A partir de entonces, se puede armar el servo pulsando el botón servo. Esto enviará la orden al cohete. Una vez que esté el cohete listo, se presionará el botón Ready. Esto dará la orden al cohete de enviar la telemetría, calibrar el nivel de tierra, y empezar a monitorizar la altura para detectar el despegue.
La telemetría se recibirá en los displays Alt (altura con respecto al mar), press (presión barométrica actual), Temp (temperatura) y Hum (humedad).
Hay una serie de eventos en el vuelo que son representados por los leds:
- Liftoff: Este led se ilumina cuando el cohete ha despegado.
- Apogee: Este led se ilumina al detectar el apogeo.
- Parachute: Este led se ilumina al lanzar el paracaidas.
- Splashdown: Este led se ilumina al detectar el aterrizaje.
- LostConn: pérdida de conexión. Representa que el móvil ha perdido la conexión con el cohete.
Una vez aterrizado, el cohete enviará la telemetría de vuelo más el registro de vuelo (tiempo total de vuelo, y altura máxima alcanzada).
El código de la app se puede descargar bajo licencia creative commons de aquí:
http://ai2.appinventor.mit.edu/?locale=en#6292462013382656
O, si lo preferís, lo tenéis como un apk en la web:
El código de la aplicación lo podéis descargar de mi repositorio en gitlab:
https://gitlab.com/mcarpacho/SPRocket
Para finalizar, el vídeo del primer vuelo del cohete:
Deja un comentario