Tabla de contenido:

CanSat - Guía para principiantes: 6 pasos
CanSat - Guía para principiantes: 6 pasos

Video: CanSat - Guía para principiantes: 6 pasos

Video: CanSat - Guía para principiantes: 6 pasos
Video: Capacitación virtual CANSAT - Encuentro nº5 2023 2024, Mes de julio
Anonim
CanSat - Guía para principiantes
CanSat - Guía para principiantes
CanSat - Guía para principiantes
CanSat - Guía para principiantes
CanSat - Guía para principiantes
CanSat - Guía para principiantes

El principal objetivo de este instructables es compartir el proceso de desarrollo de un CanSat, paso a paso. Pero, antes de empezar, dejemos bien claro qué es un CanSat, y cuáles son sus principales funcionalidades, aprovechando también la oportunidad, vamos a presentar a nuestro equipo. Este proyecto comenzó como un proyecto de extensión en nuestra universidad, Universidade Tecnológica Federal do Paraná (UTFPR), campus Cornélio Procópio. Guiados por nuestro asesor, desarrollamos un plan de acción con la intención de adentrarnos en CanSats, lo que significó estudiar todos sus aspectos y características, para poder entender su funcionamiento, que al final resultaría en la construcción de a CanSat, y el desarrollo de esta guía. Un CanSat se clasifica como un picosatélite, lo que significa que su peso está limitado a 1 kg, pero normalmente los CanSats pesan alrededor de 350 gy su estructura se basa en una lata de refresco, un cilindro de 6, 1 cm de diámetro, 11, 65 cm de altura. Este modelo fue presentado con la intención de simplificar el proceso de desarrollo de un satélite, con el fin de posibilitar el acceso de las universidades a estas tecnologías, logrando popularidad debido a las competencias que adoptaron este patrón. En general, los CanSats se basan en 4 estructuras, es decir, el sistema de energía, el sistema de detección, el sistema de telemetría y el sistema principal. Entonces, echemos un vistazo más de cerca a cada sistema: - Sistema de potencia: este sistema se encarga de suministrar la energía eléctrica a los demás, según sus necesidades. En otras palabras, se supone que debe suministrar a los sistemas el voltaje y la corriente necesarios, respetando sus límites. Además, puede contar con componentes de protección, con el fin de garantizar la seguridad y el correcto comportamiento de los demás sistemas. Por lo general, se basa en una batería y un circuito regulador de voltaje, pero se pueden agregar muchas otras características, como técnicas de administración de energía y varios tipos de protecciones. - Sistema de detección: este sistema está compuesto por todos los sensores y dispositivos que se encargan de recolectar los datos requeridos. se puede conectar al sistema principal de varias formas, protocolos serie, protocolos paralelos entre otros, por eso es muy importante dominar todas estas técnicas, para poder determinar la más conveniente. En general, los protocolos serie son los que se eligen con frecuencia, debido a su menor número de conexiones y versatilidad, con mucho los más populares son los protocolos SPI, I2C y UART. - Sistema de Telemetría: este sistema se encarga de establecer la comunicación inalámbrica entre el CanSat y la estación de control en tierra, que incluye el protocolo de comunicación inalámbrica y el hardware. - Sistema Principal: este sistema se encarga de interconectar todos los demás sistemas, de forma que también controla y sincroniza su secuencia de funcionamiento como organismo.

Paso 1: el sistema principal

El sistema principal
El sistema principal

Por muchas razones, hemos elegido un microcontrolador basado en ARM® Cortex®-M4F, es un MCU de baja potencia, que ofrece una potencia de procesamiento mucho mayor, además de varias características que no se ven comúnmente en los microcontroladores RISK, como las funciones DSP. Estas características son interesantes porque permiten aumentar la complejidad de las funcionalidades de las aplicaciones CanSat, sin necesidad de cambiar el microcontrolador (por supuesto, respetando también sus límites).

Siempre que el proyecto tuviera varias limitaciones financieras, se suponía que el microcontrolador elegido también era asequible, por lo que siguiendo las especificaciones, terminamos eligiendo el MCU TM4C123G LaunchPad basado en ARM® Cortex®-M4F, es un launchpad que acaba de encajar en nuestro proyecto.. Además, la documentación (hojas de datos y documentación de características proporcionada por el fabricante) y el IDE de la MCU eran ventajas que realmente deberían considerarse, siempre y cuando ayudaran mucho al proceso de desarrollo.

En este Cansat, decidimos mantenerlo simple y simplemente desarrollarlo usando el launchpad, pero por supuesto, en proyectos futuros, esto no será una opción, considerando que varias características incluidas en el launchpad no son realmente necesarias para nuestro proyecto. más su formato limita mucho el proyecto de la estructura de nuestro CanSat, siempre que las dimensiones de un CanSat sean mínimas.

Entonces, después de elegir el 'cerebro' adecuado para este sistema, el siguiente paso fue el desarrollo de su software, también para mantenerlo simple, decidimos simplemente usar un programa secuencial, que hace la siguiente secuencia a una frecuencia de 1Hz:

Lecturas de sensores> almacenamiento de datos> transmisión de datos

La parte de los sensores se explicará más adelante en el sistema de detección, así como la transmisión de datos se explicará en el sistema de telemetría. Finalmente, fue aprender a programar el microcontrolador, en nuestro caso necesitábamos aprender las siguientes funciones del MCU, los GPIO's, el módulo I2C, el módulo UART y el módulo SPI.

Los GPIO, o simplemente la entrada y salida de propósito general, son puertos que se pueden usar para realizar varias funciones, siempre que estén configurados correctamente. Teniendo en cuenta que no estamos usando ninguna biblioteca C para los GPIO, ni siquiera para los otros módulos, se suponía que debíamos configurar todos los registros necesarios. Por esta razón, hemos escrito una guía básica que contiene ejemplos y descripciones relacionadas con los registros de los módulos que estamos utilizando, que están disponibles a continuación.

Además, para simplificar y organizar el código, se crearon varias bibliotecas. Entonces, las bibliotecas se crearon para los siguientes propósitos:

- Protocolo SPI

- Protocolo I2C

- Protocolo UART

- NRF24L01 + - transceptor

Estas bibliotecas también están disponibles a continuación, pero recuerde que hemos utilizado el IDE de Keil uvision 5, por lo que estas bibliotecas no funcionarán para el compositor de código. Finalmente, después de crear todas las bibliotecas y aprender todo lo necesario, se armó el código final y, como puede imaginar, también está disponible a continuación.

Paso 2: el sistema de detección

El sistema de detección
El sistema de detección
El sistema de detección
El sistema de detección
El sistema de detección
El sistema de detección
El sistema de detección
El sistema de detección

Este sistema está compuesto por todos los sensores y dispositivos que se encargan de recopilar información sobre las condiciones de funcionamiento del CanSat. En nuestro caso hemos elegido los siguientes sensores:

- un acelerómetro digital de 3 ejes - MPU6050

- un giroscopio digital de 3 ejes - MPU6050

- un magnetómetro digital de 3 ejes - HMC5883L

- un barómetro digital - BMP280

- y un GPS - Tyco A1035D

Las elecciones se basaron principalmente en la accesibilidad, lo que significó que mientras las características mecánicas y eléctricas (protocolo de comunicación, fuente de alimentación, etc.) fueran compatibles con nuestro proyecto, no se impusieron más parámetros a las opciones, también porque para algunos sensores la disponibilidad de opciones era limitado. Después de adquirir los sensores, llegó el momento de ponerlos a trabajar.

Entonces, el primero en ser explorado fue el acelerómetro y giroscopio digital de 3 ejes, llamado MPU6050 (se puede encontrar fácilmente en cualquier lugar, siempre que se use ampliamente en proyectos ARDUINO), su comunicación se basa en el protocolo I2C, un protocolo en el que cada esclavo posee una dirección, lo que permite conectar varios dispositivos en paralelo, considerando que la dirección tiene una longitud de 7 bits, se pueden conectar alrededor de 127 dispositivos en el mismo bus serie. Este protocolo de comunicación funciona en dos buses, un bus de datos y un bus de reloj, por lo que para intercambiar la información, el maestro debe enviar 8 ciclos de reloj (por cierto la información debe caber en un byte, siempre y cuando esta comunicación se base en el tamaño del byte) ya sea en una recepción o en una operación de transmisión. La dirección del MPU6050 es 0b110100X, y la X se usa para llamar (indica) una operación de lectura o escritura (0 indica una operación de escritura y 1 indica una operación de lectura), por lo que siempre que desee leer el sensor simplemente use su dirección como 0xD1 y siempre que desee escribir simplemente use su dirección como 0xD0.

Luego de explorar el protocolo I2C se estudió efectivamente el MPU6050, es decir se leyó su ficha técnica, con el fin de obtener la información necesaria para ponerlo en funcionamiento, para este sensor solo se requirió configurar tres registros, la gestión de energía 1 registro - dirección 0x6B (para garantizar que el sensor no esté en modo de suspensión), el registro de configuración del giroscopio - dirección 0x1B (para configurar el rango de escala completa para el giroscopio) y finalmente el registro de configuración del acelerómetro - dirección 0x1C (en para configurar el rango de escala completa para el acelerómetro). Hay varios otros registros que se pueden configurar, lo que permite optimizar el rendimiento del sensor, pero para este proyecto estas configuraciones son suficientes.

Entonces, después de configurar correctamente el sensor, ahora puede leerlo. La información deseada tiene lugar entre el registro 0x3B y el registro 0x48, cada valor de eje está compuesto por dos bytes que están codificados en forma de complemento a 2, lo que significa que los datos leídos deben ser convertidos para que sean significativos (estas cosas serán discutido después).

Después de terminar con el MPU6050, llegó el momento de estudiar el magnetómetro digital de 3 ejes, llamado HMC5883L (también se puede encontrar fácilmente en cualquier lugar, siempre que se use ampliamente en proyectos ARDUINO), y nuevamente su protocolo de comunicación es el protocolo serial I2C. Su dirección es 0b0011110X y la X se usa para llamar (indica) una operación de lectura o escritura (0 indica una operación de escritura y 1 indica una operación de lectura), por lo que siempre que desee leer el sensor solo use su dirección como 0x3D y siempre que desea escribir solo use su dirección como 0x3C.

En este caso, para inicializar el HMC5883L, fue necesario configurar tres registros, el registro de configuración A - dirección 0x00 (para configurar la velocidad de salida de datos y el modo de medición), el registro de configuración B - dirección 0x01 (para configurar la ganancia del sensor) y por último, pero no menos importante, el registro de modo - dirección 0x02 (para configurar el modo de funcionamiento del dispositivo).

Entonces, después de configurar correctamente el HMC5883L, ahora es posible leerlo. La información deseada tiene lugar entre el registro 0x03 y el registro 0x08, cada valor de eje está compuesto por dos bytes que están codificados en forma de complemento a 2, lo que significa que los datos leídos deben ser convertidos para que sean significativos (estas cosas serán discutido después). En particular, para este sensor se supone que debe leer toda la información a la vez; de lo contrario, es posible que no funcione como se propone, siempre que los datos de salida solo se escriban en estos registros cuando se escribieron todos los registros. así que asegúrese de leerlos todos.

Finalmente, se estudió el barómetro digital, otro sensor de protocolo I2C, también llamado BMP280 (también se puede encontrar fácilmente en cualquier lugar, siempre que se use ampliamente en proyectos ARDUINO). Su dirección es b01110110X también la X se usa para llamar (indica) una operación de lectura o escritura (0 indica una operación de escritura y 1 indica una operación de lectura), por lo que siempre que desee leer el sensor simplemente use su dirección como 0XEA y siempre que desea escribir solo use su dirección como 0XEB. Pero en el caso de este sensor, la dirección I2C se puede cambiar cambiando el nivel de voltaje en el pin SDO, por lo que si aplica GND a este pin, la dirección será b01110110X y si aplica VCC a este pin, la dirección será para ser b01110111X, también para habilitar el módulo I2C en este sensor debe aplicar un nivel VCC en el pin CSB del sensor, de lo contrario no funcionará correctamente.

Para el BMP280, se suponía que solo se configuraban dos registros para que funcionara, el registro ctrl_meas - dirección 0XF4 (para establecer las opciones de adquisición de datos) y el registro de configuración - dirección 0XF5 (para establecer la tasa, el filtro y las opciones de interfaz para el sensor).

Después de terminar con la configuración, es hora de lo que realmente importa, los datos en sí, en este caso, la información deseada tiene lugar entre los registros 0XF7 y 0XFC. Tanto el valor de temperatura como el de presión se componen de tres bytes que están codificados en forma de complemento a 2, lo que significa que los datos leídos deben convertirse para que sean significativos (estas cosas se discutirán más adelante). También para este sensor, con el fin de obtener una mayor precisión, existen varios coeficientes de corrección que se pueden usar al convertir los datos, se ubican entre los registros 0X88 y 0XA1, sí hay 26 bytes de coeficientes de corrección, entonces si la precisión es no es tan importante, simplemente olvídalos, de lo contrario no hay otra manera.

Y por último, pero no menos importante, el GPS: Tyco A1035D, este se basa en el protocolo serie UART, específicamente a una velocidad de 4800 kbps, sin bits de paridad, 8 bits de datos y 1 bit de parada. El UART, o receptor / transmisor asíncrono universal, es un protocolo serial en el que la sincronización de la información se realiza vía software, por eso es un protocolo asíncrono, también por esta característica, la velocidad en la que se transmite y recibe la información es mucho menor. Específicamente para este protocolo, los paquetes deben comenzar con un bit de inicio, pero el bit de parada es opcional y el tamaño de los paquetes es de 8 bits.

En el caso del GPS - Tyco A1035D, se requerían dos configuraciones, que eran el setDGPSport (comando 102) y el Query / RateControl (comando 103), toda esta información, más más opciones están disponibles en el manual de referencia NMEA, el protocolo utilizado en la mayoría de los módulos de GPS. El comando 102 se utiliza para establecer la velocidad en baudios, la cantidad de bits de datos y la existencia o no de bits de paridad y bits de parada. El comando 103 se utiliza para controlar la salida de mensajes NMEA estándar GGA, GLL, GSA, GSV, RMC y VTG, se describen con detalles en el manual de referencia, pero en nuestro caso el elegido fue el GGA que significa Global Datos fijos del sistema de posicionamiento.

Una vez configurado correctamente el GPS - TycoA1035D, ahora solo es necesario leer el puerto serie y filtrar la cadena recibida según los parámetros elegidos, para permitir el procesamiento de la información.

Después de aprender toda la información necesaria sobre todos los sensores, solo tomó un poco de esfuerzo adicional para juntar todo en el mismo programa, utilizando también las bibliotecas de comunicación en serie.

Paso 3: el sistema de telemetría

El sistema de telemetría
El sistema de telemetría

Este sistema se encarga de establecer la comunicación entre el control de tierra y el CanSat, además de los parámetros del proyecto, también fue restringido de algunas formas más, siempre que la transmisión de RF solo esté permitida en algunas bandas de frecuencia, que no están ocupadas por otros servicios de RF, como los servicios móviles. Estas restricciones son diferentes y pueden cambiar de un país a otro, por lo que es importante verificar siempre las bandas de frecuencia permitidas para un uso común.

Hay muchas opciones de radios disponibles en el mercado a precios accesibles, todos estos sistemas ofrecen diferentes formas de modulación a diversas frecuencias, para este sistema nuestra elección consistió en un transceptor RF de 2.4GHz, el NRF24L01 +, debido a que ya contaba con un protocolo de comunicación bien establecido, siempre que los sistemas de verificación, como los sistemas de reconocimiento automático y retransmisión automática. Además, su tasa de transmisión podría alcanzar velocidades de hasta 2 Mbps con un consumo de energía razonable.

Entonces, antes de trabajar en este transceptor, conozcamos un poco más sobre el NRF24L01 +. Como se mencionó anteriormente, es una radio basada en 2.4GHz, que se puede configurar como receptor o transmisor. Para establecer la comunicación a cada transceptor se le asigna una dirección, que puede ser configurada por el usuario, la dirección puede ser de 24 a 40 bits de longitud según sus necesidades. Las transacciones de datos pueden ocurrir de forma única o continua, el tamaño de los datos está limitado a 1 byte y cada transacción puede generar o no una condición de reconocimiento de acuerdo con las configuraciones del transceptor.

También son posibles otras configuraciones diversas, como la ganancia hacia la salida de la señal de RF, la existencia o no de una rutina de retransmisión automática (de ser así se puede elegir el retardo, la cantidad de ensayos entre otras características) y varias otras características que no son necesariamente útiles para este proyecto, pero que de todos modos están disponibles en la hoja de datos del componente, en caso de algún interés sobre ellas.

El NRF24L01 + 'habla' el idioma SPI cuando se trata de comunicación en serie, así que cuando quiera leer o escribir este transceptor, simplemente siga adelante y use el protocolo SPI para ello. El SPI es un protocolo serie como se mencionó anteriormente, en el que la selección de los esclavos se realiza a través de un pin CHIPSELECT (CS), que junto con la característica full duplex (tanto el maestro como el esclavo pueden transmitir y recibir en forma paralela) de este protocolo permite velocidades de transacción de datos mucho más altas.

La hoja de datos del NRF24L01 + proporciona un conjunto de comandos para leer o escribir este componente, existen diferentes comandos para acceder a los registros internos, la carga útil RX y TX entre otras operaciones, por lo que dependiendo de la operación deseada, puede ser necesario un comando específico para realizarlo. Es por eso que sería interesante echar un vistazo a la hoja de datos, en la que hay una lista que contiene y explica todas las acciones posibles sobre el transceptor (no las vamos a enumerar aquí, porque ese no es el punto principal de este instructables).

Además del transceptor, otro componente importante de este sistema es el protocolo a través del cual se envían y reciben todos los datos deseados, siempre y cuando se suponga que el sistema funcione con varios bytes de información simultáneamente, es importante conocer el significado de cada byte, para eso funciona el protocolo, permite que el sistema identifique de forma organizada todos los datos recibidos y transmitidos.

Para simplificar las cosas, el protocolo utilizado (para el transmisor) consistía en un encabezado formado por 3 bytes seguido de los datos del sensor, siempre que todos los datos del sensor estuvieran formados por dos bytes, a cada dato del sensor se le dio un número de identificación a partir de desde 0x01 y siguiendo en orden creciente, por lo que cada dos bytes hay un byte de identificación, de esta manera la secuencia de encabezado no se puede repetir por casualidad según las lecturas del sensor. El receptor terminó siendo tan simple como el transmisor, el protocolo solo necesitaba reconocer el encabezado enviado por el transmisor y luego solo almacenar los bytes recibidos, en este caso decidimos usar un vector para almacenarlos.

Entonces, después de lograr todo el conocimiento requerido sobre el transceptor y determinar el protocolo de comunicación, es hora de juntar todo en el mismo código y, finalmente, hacer el firmware de CanSat.

Paso 4: el sistema de energía

Este sistema se hace responsable de suministrar a los otros sistemas la energía que necesitan para funcionar correctamente, en este caso decidimos simplemente usar una batería y un regulador de voltaje. Entonces, para el dimensionamiento de la batería, se analizaron algunos parámetros de operación del CanSat, estos parámetros ayudarían a la definición del modelo y la potencia necesaria para alimentar todo el sistema.

Considerando que el CanSat debería poder durar varias horas encendido, lo más adecuado era considerar las situaciones más extremas de consumo de energía, en las que cada módulo y sistema conectado al CanSat consumiría la mayor corriente posible. Sin embargo, también es importante ser razonable en este punto para no sobredimensionar la batería, lo que tampoco es interesante debido a las limitaciones de peso del CanSat.

Tras consultar todas las fichas técnicas de los componentes de todos los sistemas, la corriente total consumida por el sistema fue de unos 160mAh aproximadamente, considerando una autonomía de 10 horas, una batería de 1600mAh fue suficiente para garantizar al sistema las condiciones adecuadas de trabajo.

Después de conocer la carga necesaria de la batería, hay otros aspectos a considerar a pesar de la autonomía, como el tamaño, el peso, la temperatura de funcionamiento (siempre que el CanSat se mantenga dentro de un cohete), las tensiones y fuerzas a al que se somete el mismo, entre otros.

Paso 5: la estructura

La estructura es realmente importante para la seguridad del CanSat, aunque se descuidó un poco en este proyecto (en realidad no hubo mucho interés en el desarrollo de la parte mecánica del CanSat, debido a que todos los miembros de los cursos estaba relacionado con la electrónica). Siempre que el proyecto se basara en un patrón existente, el patrón CanSat, no era necesario pensar mucho en cómo se vería, por lo que debería tener una forma de cilindro, con aproximadamente 6, 1 cm de diámetro y aproximadamente 11, 65 cm de altura (las mismas medidas de una lata de refresco).

Después de terminar con la estructura exterior, la atención se centró en el sistema de fijación, responsable de mantener todas las tablas dentro de la estructura cilíndrica, permitiendo también la absorción de las aceleraciones a las que se sometería el CanSat, después de discutirlo un poco., se decidió unir ambas estructuras moldeando espuma de alta densidad, a las formas deseadas.

La estructura exterior se construyó utilizando tubos de PVC, con el diámetro deseado, para cerrar la estructura se utilizaron cubiertas de tubos de PVC.

Paso 6: Conclusiones y pensamientos futuros

El CanSat todavía necesita ser probado en acción, en realidad estamos solicitando una competencia de cohetes (que va a suceder en diciembre), también después de pasar por todo el edificio (un poco, todavía tenemos que terminar algunas cosas) y el desarrollo. proceso, se observaron algunas perspectivas y notas que pensamos que sería interesante compartir con todos ustedes, principalmente sobre luchas, consejos e incluso buenas experiencias, así que aquí va:

- El comienzo del proyecto, llegó a ser el período de desarrollo más prolífico de todo el proyecto, lamentablemente el grupo se desinteresó un poco en el proyecto antes de la fecha límite, tal vez debido a la falta de resultados inmediatos, o tal vez simplemente a la falta de comunicación, de todos modos. varias cosas buenas salieron del proyecto

- Se requirió mucho esfuerzo para que el transceptor funcionara, ya que todas las bibliotecas se desarrollaron desde cero, también porque se necesitan dos programas y configuraciones diferentes para probar este tipo de cosas.

- En nuestro caso no fue la mejor de las ideas trabajar en microcontroladores basados en configuraciones de registros, no todos los integrantes lograron mantenerse al día con el resto del grupo, lo que generó algunos problemas como la división de tareas. Hay toneladas de bibliotecas C decentes para el microcontrolador que estábamos usando, por lo que hubiera sido una idea mucho mejor usar esos recursos, también hay un IDE llamado Code Composer, que también ofrece toneladas de recursos para esos microcontroladores.

- El CanSat todavía necesita muchas mejoras, esta experiencia se basó en técnicas y habilidades básicas, también varios problemas no se tomaron en consideración, por lo que en el futuro, es de esperar que una versión de primer nivel de este CanSat se convierta en realidad con más esfuerzo y trabajo duro..

Recomendado: