¿Cómo medir cosas en el espacio?

Sergio Chouhy
Eryx
Published in
6 min readJul 7, 2022

Este artículo es la segunda parte de la serie del proyecto Aurora: nuestro globo que viajó al espacio. Te vamos a contar de qué se trata la computadora que enviamos dentro de la carga y los desafíos a los que nos enfrentamos armándola. Si todavía no leíste el primer artículo, te recomendamos hacerlo antes de continuar. Lo podés encontrar siguiendo este link.

Objetivo de la computadora

Cuando empezamos a idear el proyecto Aurora, una de las primeras cosas que nos pareció interesante fue la posibilidad de recolectar datos meteorológicos a lo largo del vuelo. Pero también nos llamó mucho la atención poder transmitir esos datos desde el globo hasta nuestra computadora en tiempo real. Lo primero que se nos vino a la mente fue medir temperatura, presión, humedad, altitud y posición.

¿Cuál es la temperatura mínima que podríamos medir?¿Qué tan alto podría llegar el globo? ¿Hasta qué distancia podríamos enviar todos estos datos en tiempo real?

Para lograrlo teníamos que armar una computadora suficientemente pequeña y liviana que pueda ir en la carga del globo. La respuesta la conocíamos: microcontroladores. Las placas más conocidas son las desarrolladas por la compañía Arduino.

Todos sabemos que las computadoras a veces se cuelgan y la solución muchas veces es reiniciarlas. Pero cuando están a 20 km de altura se hace difícil. Esto representaba un desafío adicional: implementar todo de una manera suficientemente robusta como para que funcione en el primer intento.

Para hacer esto realidad teníamos que programar una computadora que controlara todos los sensores. Si bien tenemos experiencia en los lenguajes de programación que se usan en este tipo de proyectos, la plataforma era bastante nueva para la mayoría de nosotros.

Hicimos una investigación de los distintos componentes que necesitábamos. Compramos los sensores, un GPS, una tarjeta SD para guardar los datos y unos módulos de transmisión y recepción de larga distancia. También compramos dos microcontroladores: un Arduino Mega y un ESP32. Ya teníamos todo para empezar a trabajar.

Los sensores

Comenzamos de a poco, sensor por sensor. El primer paso fue poder medir la temperatura y visualizarla en la pantalla de nuestra computadora. El siguiente, poder guardar esos datos en una memoria. Ya en este punto empezamos a aprender varias cosas nuevas como el protocolo de comunicación serial SPI que más adelante terminaría siendo clave para poder conectar todos los componentes en simultáneo.

De a poco fuimos ganando confianza y avanzando con todos los sensores. No pasó mucho tiempo hasta que tuvimos funcionando el acelerómetro, el sensor de presión atmosférica y los sensores de temperatura interior y exterior. Algunos tuvieron dificultades extra como tener pines que soldar. El último y el que dio la batalla más dura fue el GPS. Además, para poder probarlo teníamos que subirnos al techo de la oficina ya que era el único lugar donde agarraba bien la señal.

El diseño del sistema

Una vez implementados y testeados todos los componentes por separado, los conectamos al microcontrolador y los soldamos a una placa común. Nos quedaba por delante uno de los problemas más difíciles: diseñar un sistema en el que todos los componentes se ejecuten en simultáneo. Con tantas partes los puntos de falla se multiplican. Teníamos que asegurarnos de hacer un diseño de tal manera que cualquier eventual problema quede aislado y no afecte al resto del sistema.

Fue en este momento en el que el microcontrolador ESP32 empezó a destacarse. Al momento de comprarlo lo elegimos porque era notablemente más potente que el Arduino Mega. Pero lo que no sabíamos era que viene con un sistema operativo que da muchas facilidades para orquestar procesos en paralelo. Incluso, nos ayudó a resolver lo que en computación se llama “condiciones de carrera”. Es un problema que surge cuando dos procesos que utilizan información compartida, quieren editarla o consultarla al mismo tiempo. Por estos motivos, terminamos eligiendo el ESP32 por sobre el Arduino Mega.

Dimos varias idas y vueltas con el diseño, mejorándolo en cada iteración. Cada paso se sentía como un logro y nos motivaba para seguir encontrándole la vuelta.

A medida que llegamos al final, nos empezamos a dar cuenta de que este sistema que creamos específicamente para Aurora podría ser aplicado en muchos otros contextos y para distintos tipos de proyectos. Estamos trabajando para crear una biblioteca de código abierto y que cualquiera que así lo desee pueda utilizar y simplificar sus proyectos con este código que llegó exitosamente a la estratósfera.

Pruebas

Todo este proceso vino acompañado de múltiples pruebas.

Como recién íbamos a poder tener acceso a los datos de la memoria una vez que recuperáramos la caja, era importante entender el alcance de las antenas de larga distancia. Así que una de las primeras pruebas fue poner a trabajar nuestro módulo de transmisión.

En la oficina funcionaba perfecto desde cualquier rincón. Decidimos exigirle un poco más: un integrante del equipo electrónica se llevó el transmisor y lo colocó en el techo de su edificio. Otro integrante se llevó el receptor y lo colocó en su balcón a 15 cuadras de distancia. El resultado sinceramente nos sorprendió a todos: ¡los mensajes llegaban! La mala noticia era que llegaban incompletos. Esto nos llevó a indagar más e incorporar mejores códigos de corrección de errores.

En la estratósfera, las temperaturas llegan por debajo de los -40 grados centígrados. Teníamos que comprobar que la computadora y todos sus componentes soporten temperaturas bajo cero. Dentro de la caja esperábamos que la temperatura no llegue a ser tan baja por el calor generado por las cámaras y las baterías. Pero sí queríamos analizar cómo se comportaba a alrededor de -10 grados. La prueba que teníamos que hacer estaba clara. Había que dejar la computadora encendida dentro del freezer de la oficina por unas cuantas horas. Todo funcionó sin problemas.

La prueba del freezer en curso

Las pruebas finales consistieron en dejar todo el sistema funcionando durante largas horas para comprobar que no haya ningún problema y que el sistema no tenga ninguna falla.

Sólo surgió un percance menor de esta serie de pruebas. El GPS había empezado a fallar de manera esporádica por un pequeño cable roto en las conexiones internas. Lo reemplazamos para estar seguros de que el día del lanzamiento todo funcione. Dejando eso de lado, todo funcionaba como esperábamos y empezamos a ganar confianza en la computadora que habíamos armado.

La carcasa

Necesitábamos una carcasa para poder fijar la computadora a la caja y protegerla de los golpes. En Eryx tenemos una impresora 3D y en el equipo Electrónica había experiencia en diseño de modelos.

Después de 5 horas de impresión, la carcasa hecha a medida para la computadora de Aurora se materializó. Le incorporamos unas mallas para proteger los cables y algunos chiches más, y ¡ya teníamos lista la que terminó siendo la computadora que llegó a la estratósfera!

Módulo receptor

Para poder recibir los datos en tiempo real del globo necesitábamos también un sistema que se encargue de mostrar todo lo recibido por el módulo receptor de LoRa conectado a nuestra computadora. Este era terreno conocido: en Eryx tenemos amplia experiencia en el desarrollo de este tipo de aplicaciones.

¿Y cómo sigue la historia?

Como contamos en el artículo anterior, dentro de la caja de Aurora enviamos dos cámaras GoPro y el GPS Spot, además de la computadora que describimos en este artículo.

Previo al día de lanzamiento realizamos una pequeña excursión. Hicimos una prueba de integración para asegurarnos de que no haya sorpresas y que todo funcione en conjunto. Además, practicamos inflar el globo y asegurar la caja y el paracaídas correctamente.

Para conocer más sobre todas las pruebas y las distintas instancias que pasamos para lograr este proyecto, ¡te invitamos a leer nuestro próximo artículo!

--

--