Taula de continguts:

CanSat - Guia per a principiants: 6 passos
CanSat - Guia per a principiants: 6 passos

Vídeo: CanSat - Guia per a principiants: 6 passos

Vídeo: CanSat - Guia per a principiants: 6 passos
Vídeo: Основные ошибки при возведении перегородок из газобетона #5 2024, Juliol
Anonim
CanSat - Guia per a principiants
CanSat - Guia per a principiants
CanSat - Guia per a principiants
CanSat - Guia per a principiants
CanSat - Guia per a principiants
CanSat - Guia per a principiants

L'objectiu principal d'aquest instructable és compartir el procés de desenvolupament d'un CanSat, pas a pas. Però, abans de començar, deixem ben clar què és un CanSat i quines són les seves principals funcionalitats, aprofitant l'oportunitat, presentarem el nostre equip. Aquest projecte va començar com un projecte d’extensió a la nostra universitat, la Universidade Tecnológica Federal do Paraná (UTFPR), al campus Cornélio Procópio. Guiats pel nostre assessor, vam desenvolupar un pla d’acció amb la intenció d’entrar a CanSats, que significava estudiar tots els seus aspectes i característiques, per tal de poder entendre com funciona, que al final donaria lloc a la construcció de un CanSat i el desenvolupament d’aquesta guia. Un CanSat es classifica com a picosatèl·lit, el que significa que el seu pes està limitat a 1 kg, però normalment els CanSats pesen uns 350 g i la seva estructura es basa en una llauna de sosa, un cilindre de 6, 1 cm de diàmetre, d’11, 65 cm d’alçada. Aquest model es va presentar amb la intenció de simplificar el procés de desenvolupament d’un satèl·lit, per tal de permetre l’accés de les universitats a aquestes tecnologies, aconseguint popularitat gràcies a les competències que van adoptar aquest patró. En general, CanSats es basa en 4 estructures, és a dir, el sistema d’alimentació, el sistema de detecció, el sistema de telemetria i el sistema principal. Donem una ullada més detallada a cada sistema: - Sistema d’alimentació: aquest sistema s’encarrega de subministrar l’energia elèctrica als altres segons les seves necessitats. En altres paraules, se suposa que subministra als sistemes la tensió i el corrent necessaris, respectant els seus límits. A més, pot incloure components de protecció per tal de garantir la seguretat i el bon comportament dels altres sistemes. Normalment es basa en una bateria i un circuit regulador de voltatge, però s’hi poden afegir moltes altres funcions, com ara tècniques de gestió d’energia i diversos tipus de proteccions. - Sistema de detecció: aquest sistema està compost per tots els sensors i dispositius que s’encarreguen de recollir les dades necessàries. es pot connectar al sistema principal de diverses maneres, protocols en sèrie, protocols paral·lels entre d'altres, per això és molt important dominar totes aquestes tècniques per poder determinar la més convenient. En general, els protocols en sèrie són els que sovint s’escullen, a causa del seu menor nombre de connexions i versatilitat, de llarg els més populars són els protocols SPI, I2C i UART. - Sistema de telemetria: aquest sistema s’encarrega d’establir la comunicació sense fils entre el CanSat i l’estació de control de terra, que inclou el protocol i el maquinari de comunicació sense fils. - Sistema principal: aquest sistema s’encarrega d’interconectar tots els altres sistemes, de manera que també controla i sincronitza la seva seqüència de funcionament com a organisme.

Pas 1: el sistema principal

El sistema principal
El sistema principal

Per molts motius, hem escollit un microcontrolador basat en ARM® Cortex®-M4F, és un MCU de baixa potència, que ofereix una potència de processament molt superior, a més de diverses funcions que no es veuen habitualment en els microcontroladors RISK, com ara les funcions DSP. Aquestes característiques són interessants perquè permeten augmentar la complexitat de les funcions de les aplicacions CanSat, sense necessitat de canviar el microcontrolador (per descomptat, respectant també els seus límits).

Mentre el projecte tenia diverses limitacions econòmiques, el microcontrolador escollit també se suposava que era assequible, de manera que, seguint les especificacions, vam acabar escollint el MCU basat en ARM® Cortex®-M4F TM4C123G LaunchPad, és un llançador que s’acabava d’adaptar al nostre projecte.. També la documentació (fulls de dades i documentació de característiques proporcionada pel fabricant) i l'IDE de la MCU eren avantatges que haurien de ser realment considerats, sempre que ajudessin molt al procés de desenvolupament.

En aquest Cansat, hem decidit fer-ho senzill i desenvolupar-lo mitjançant el launchpad, però, per descomptat, en futurs projectes, aquesta no serà una opció, tenint en compte que diverses funcions incloses al launchpad no són realment necessàries per al nostre projecte, a més, el seu format limitava molt el projecte de l’estructura del nostre CanSat, sempre que les dimensions d’un CanSat siguin mínimes.

Per tant, després de triar el "cervell" adequat per a aquest sistema, el següent pas va ser el desenvolupament del seu programari, també per simplificar-lo, vam decidir utilitzar simplement un programa seqüencial que faci la següent seqüència a una freqüència d'1 Hz:

Lectures de sensors> emmagatzematge de dades> transmissió de dades

La part dels sensors s’explicarà més endavant al sistema de detecció, així com la transmissió de dades s’explicarà al sistema de telemetria. Finalment, era per aprendre a programar el microcontrolador, en el nostre cas necessitàvem aprendre les funcions següents de la MCU, els GPIO, el mòdul I2C, el mòdul UART i el mòdul SPI.

Els GPIO, o simplement l'entrada i sortida de propòsit general, són ports que es poden utilitzar per realitzar diverses funcions, sempre que estiguin configurats correctament. Tenint en compte que no utilitzem cap llibreria C per als GPIO, ni tan sols per als altres mòduls, se suposava que havíem de configurar tots els registres necessaris. Per aquest motiu, hem escrit una guia bàsica que conté exemples i descripcions relacionades amb els registres dels mòduls que estem utilitzant, que estan disponibles a continuació.

A més, per tal de simplificar i organitzar el codi, es van crear diverses biblioteques. Per tant, les biblioteques es van crear amb els propòsits següents:

- Protocol SPI

- Protocol I2C

- Protocol UART

- NRF24L01 + - transceptor

Aquestes biblioteques també estan disponibles a continuació, però recordeu que hem utilitzat l'IDE Keil uvision 5, de manera que aquestes biblioteques no funcionaran per al compositor de codis. Finalment, després de crear totes les biblioteques i aprendre totes les coses necessàries, es va elaborar el codi final i, com us podeu imaginar, també està disponible a continuació.

Pas 2: el sistema de detecció

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

Aquest sistema està compost per tots els sensors i dispositius que s’encarreguen de recollir informació sobre les condicions de funcionament del CanSat. En el nostre cas, hem escollit els següents sensors:

- Un acceleròmetre digital de 3 eixos - MPU6050

- Un giroscopi digital de 3 eixos - MPU6050

- Un magnetòmetre digital de 3 eixos - HMC5883L

- un baròmetre digital - BMP280

- i un GPS - Tyco A1035D

Les decisions es van basar principalment en l’accessibilitat, la qual cosa significava que sempre que les característiques mecàniques i elèctriques (protocol de comunicació, font d’alimentació, etc.) fossin compatibles amb el nostre projecte, no es van imposar cap altre paràmetre a les eleccions, també perquè per a alguns sensors la disponibilitat d'opcions era limitat. Després d’adquirir els sensors, era el moment de posar-los a treballar.

Així doncs, el primer que es va explorar va ser l’acceleròmetre digital i giroscopi de 3 eixos, anomenat MPU6050 (es pot trobar fàcilment en qualsevol lloc, sempre que s’utilitzi àmpliament en projectes ARDUINO), la seva comunicació es basa en el protocol I2C, un protocol en el qual cada esclau té una adreça, cosa que permet connectar diversos dispositius en paral·lel, tenint en compte que l'adreça té una longitud de 7 bits, es poden connectar uns 127 dispositius al mateix bus sèrie. Aquest protocol de comunicació funciona en dos busos, un bus de dades i un bus de rellotge, de manera que, per intercanviar la informació, el mestre ha d’enviar 8 cicles de rellotge (per cert, la informació ha d’adaptar-se a un byte, sempre que aquestes comunicacions es basin en la mida de byte) en una operació de recepció o de transmissió. L'adreça del MPU6050 és 0b110100X i la X s'utilitza per trucar (indica) una lectura o una operació d'escriptura (0 indica una operació d'escriptura i 1 indica una operació de lectura), de manera que sempre que vulgueu llegir el sensor, feu servir la seva adreça com a 0xD1 i sempre que vulgueu escriure, feu servir la seva adreça com a 0xD0.

Després d’explorar el protocol I2C, de fet es va estudiar el MPU6050, és a dir, es va llegir la seva fitxa tècnica, per tal d’obtenir la informació necessària per posar-lo en funcionament, per a aquest sensor només es necessitaven configurar tres registres, la gestió de l’energia 1 registre: adreça 0x6B (per tal de garantir que el sensor no està en mode de suspensió), el registre de configuració del giroscopi - adreça 0x1B (per configurar l’interval d’escala completa per al giroscopi) i, finalment, el registre de configuració de l’acceleròmetre - adreça 0x1C (a per configurar l’interval d’escala completa de l’acceleròmetre). Hi ha diversos registres que es poden configurar, cosa que permet optimitzar el rendiment del sensor, però per a aquest projecte aquestes configuracions són suficients.

Per tant, després de configurar correctament el sensor, ja podeu llegir-lo. La informació desitjada té lloc entre el registre 0x3B i el registre 0x48, cada valor de l’eix està compost per dos bytes que es codifiquen de forma complementària del 2, cosa que significa que les dades llegides s’han de convertir per ser significatives (aquestes coses seran més endavant).

Després d’acabar amb el MPU6050, era el moment d’estudiar el magnetòmetre digital de 3 eixos, anomenat HMC5883L (també es pot trobar fàcilment a qualsevol lloc, sempre que s’utilitzi àmpliament en els projectes ARDUINO), i de nou el seu protocol de comunicació és el protocol sèrie I2C. La seva adreça és 0b0011110X i la X s’utilitza per trucar (indica) una operació de lectura o d’escriptura (0 indica una operació d’escriptura i 1 indica una operació de lectura), de manera que, sempre que vulgueu llegir el sensor, feu servir la seva adreça com a 0x3D i sempre que que voleu escriure, només cal que utilitzeu la seva adreça com a 0x3C.

En aquest cas, per tal d’inicialitzar l’HMC5883L, calia configurar tres registres, el registre de configuració A - adreça 0x00 (per configurar la velocitat de sortida de dades i el mode de mesura), el registre de configuració B - adreça 0x01 (per tal de configurar el guany del sensor) i, per últim, el registre de modes: adreça 0x02 (per configurar el mode de funcionament del dispositiu).

Per tant, després de configurar correctament l'HMC5883L, ara és possible llegir-lo. La informació desitjada té lloc entre el registre 0x03 i el registre 0x08, cada valor d'eix està compost per dos bytes que es codifiquen de manera complementària del 2, el que significa que les dades llegides s'han de convertir per ser significatives (aquestes coses seran més endavant). Particularment, per a aquest sensor se suposa que heu de llegir tota la informació alhora, en cas contrari, pot no funcionar tal com es proposa, sempre que les dades de sortida només s'escrivin en aquests registres quan s'hagin escrit tots els registres. així que assegureu-vos de llegir-los tots.

Finalment, es va estudiar el baròmetre digital, un altre sensor de protocol I2C, també anomenat BMP280 (també es pot trobar fàcilment a qualsevol lloc, sempre que s’utilitzi àmpliament en projectes ARDUINO). La seva adreça és b01110110X, a més la X s'utilitza per trucar (indica) una operació de lectura o d'escriptura (0 indica una operació d'escriptura i 1 indica una operació de lectura), de manera que sempre que vulgueu llegir el sensor, feu servir la seva adreça com a 0XEA i sempre que que voleu escriure, només cal que utilitzeu la seva adreça com a 0XEB. Però, en el cas d’aquest sensor, l’adreça I2C es pot canviar canviant el nivell de tensió del pin SDO, de manera que si apliqueu GND a aquest pin l’adreça serà b01110110X i si apliqueu VCC a aquest pin l’adreça serà per ser b01110111X, també per habilitar el mòdul I2C en aquest sensor, heu d'aplicar un nivell VCC al pin CSB del sensor, en cas contrari no funcionarà correctament.

Per al BMP280, només se suposava que havien de configurar-se dos registres perquè funcionés, el registre ctrl_meas - adreça 0XF4 (per tal d’establir les opcions d’adquisició de dades) i el registre de configuració - adreça 0XF5 (per tal d’establir la taxa, el filtre i les opcions d’interfície del sensor).

Després d’acabar amb la configuració, és hora d’allò que realment importa, les dades en si, en aquest cas la informació desitjada té lloc entre els registres 0XF7 i 0XFC. Tant la temperatura com el valor de la pressió es componen de tres bytes que es codifiquen de manera complementària del 2, cosa que significa que les dades llegides s'han de convertir per ser significatives (aquestes coses es parlaran més endavant). També per a aquest sensor, per obtenir una precisió superior, hi ha diversos coeficients de correcció que es poden utilitzar mentre es converteixen les dades, es troben entre els registres 0X88 i 0XA1, sí, hi ha 26 bytes de coeficients de correcció, de manera que si la precisió és no és tan important, només cal oblidar-los, en cas contrari no hi ha cap altra manera.

I finalment, però no menys important, el GPS: Tyco A1035D, aquest depèn del protocol sèrie UART, específicament a una velocitat de 4800 kbps, sense bits de paritat, 8 bits de dades i 1 bit d’aturada. és un protocol sèrie en què la sincronització de la informació es fa mitjançant programari, per això és un protocol asíncron, també per aquesta característica, la velocitat en què es transmet i es rep la informació és molt menor. Específicament per a aquest protocol, els paquets han de començar amb un bit inicial, però el bit stop és opcional i la mida dels paquets és de 8 bits.

En el cas del GPS - Tyco A1035D, es necessitaven dues configuracions, que eren el setDGPSport (ordre 102) i el Query / RateControl (ordre 103), tota aquesta informació i més opcions estan disponibles al manual de referència NMEA, el protocol s’utilitza a la majoria dels mòduls GPS. L'ordre 102 s'utilitza per establir la velocitat de transmissió, la quantitat de bits de dades i l'existència o no de bits de paritat i bits d'aturada. L’ordre 103 s’utilitza per controlar la sortida dels missatges NMEA estàndard GGA, GLL, GSA, GSV, RMC i VTG, es descriuen amb detalls al manual de referència, però en el nostre cas l’escollit va ser el GGA que significa Global Dades fixes del sistema de posicionament.

Un cop configurat correctament el GPS - TycoA1035D, ara només cal llegir el port sèrie i filtrar la cadena rebuda segons els paràmetres escollits, per tal de permetre el processament de la informació.

Després d’aprendre tota la informació necessària sobre tots els sensors, només va caldre un esforç addicional per reunir-ho tot al mateix programa, també mitjançant les biblioteques de comunicació en sèrie.

Pas 3: el sistema de telemetria

El sistema de telemetria
El sistema de telemetria

Aquest sistema s’encarrega d’establir la comunicació entre el control de terra i el CanSat, a més dels paràmetres del projecte, també es restringia d’altres maneres, sempre que la transmissió de RF només estigui permesa en algunes bandes de freqüència que no estan ocupades a causa de altres serveis de RF, com ara els serveis mòbils. Aquestes restriccions són diferents i poden canviar de país a país, per la qual cosa és important comprovar sempre les bandes de freqüència permeses per a un ús comú.

Hi ha moltes opcions de ràdios disponibles al mercat a preus assequibles, tots aquests sistemes ofereixen diferents formes de modulació a freqüències diverses, per a aquest sistema la nostra elecció va consistir en un transceptor RF de 2,4 GHz, el NRF24L01 +, ja que ja tenia un protocol de comunicació ben establert, sempre que hi hagi sistemes de verificació com ara sistemes de reconeixement automàtic i retransmissió automàtica. A més, la seva velocitat de transmissió podria arribar a velocitats de fins a 2 Mbps a un consum d’energia raonable.

Per tant, abans de treballar en aquest transceptor, anem a conèixer una mica més sobre el NRF24L01 +. Com s'ha esmentat abans, es tracta d'una ràdio basada en 2,4 GHz, que es pot configurar com a receptor o transmissor. Per tal d’establir la comunicació, cada transceptor té una adreça que l’usuari pot configurar, que pot durar de 24 a 40 bits segons les vostres necessitats. Les transaccions de dades es poden produir d'una manera única o contínua, la mida de les dades està limitada a 1 byte i cada transacció pot generar o no una condició de confirmació segons les configuracions del transceptor.

També són possibles altres configuracions, com ara el guany cap a la sortida del senyal de RF, l'existència o no d'una rutina de retransmissió automàtica (en aquest cas, es pot triar la quantitat de proves entre altres característiques) i diverses altres funcions que no són necessàriament útils per a aquest projecte, però de totes maneres estan disponibles al full de dades del component, en cas de tenir-ne interès.

El NRF24L01 + "parla" el llenguatge SPI quan es tracta de comunicació en sèrie, de manera que sempre que vulgueu llegir o escriure aquest transceptor, seguiu endavant i utilitzeu el protocol SPI. L’SPI és un protocol serial com s’ha esmentat anteriorment, en què la selecció dels esclaus es fa mitjançant un pin CHIPSELECT (CS), que juntament amb el full duplex (tant el mestre com l’esclau poden transmetre i rebre de forma paral·lela) d'aquest protocol permet velocitats de transacció de dades molt més altes.

El full de dades del NRF24L01 + proporciona un conjunt d’ordres per llegir o escriure aquest component, hi ha diferents ordres per accedir als registres interns, la càrrega útil RX i TX entre altres operacions, de manera que, segons l’operació desitjada, es pot prendre una ordre específica per realitzeu-lo. Per això, seria interessant fer una ullada al full de dades, en el qual hi ha una llista que conté i explica totes les accions possibles sobre l’emissor-receptor (no les anirem a enumerar aquí, ja que aquest no és el punt principal d’aquestes instruccions)).

A més del transceptor, un altre component important d’aquest sistema és el protocol mitjançant el qual s’envien i reben totes les dades desitjades, sempre que se suposa que el sistema funciona amb diversos bytes d’informació simultàniament, és important conèixer el significat de cada byte, per a això funciona el protocol, que permet al sistema identificar de manera organitzada totes les dades rebudes i transmeses.

Per simplificar les coses, el protocol utilitzat (per al transmissor) consistia en una capçalera formada per 3 bytes seguits de les dades del sensor, sempre que totes les dades del sensor constessin de dos bytes, a cada dada del sensor se li va donar un número d’identificació a partir de des de 0x01 i seguint en un ordre creixent, de manera que cada dos bytes hi ha un byte d'identificació, d'aquesta manera la seqüència de capçalera no es pot repetir per casualitat segons les lectures del sensor. El receptor va acabar sent tan senzill com el transmissor, el protocol només calia reconèixer la capçalera enviada pel transmissor i després d’emmagatzemar els bytes rebuts, en aquest cas vam decidir utilitzar un vector per emmagatzemar-los.

Per tant, després d’aconseguir tots els coneixements necessaris sobre l’emissor-receptor i determinar el protocol de comunicació, és hora de reunir-ho tot en el mateix fragment de codi i, finalment, fer el firmware de CanSat.

Pas 4: el sistema d'alimentació

Aquest sistema es fa responsable de subministrar a la resta de sistemes l'energia que necessiten per funcionar correctament, en aquest cas hem decidit utilitzar simplement una bateria i un regulador de voltatge. Per tant, per al dimensionament de la bateria, es van analitzar alguns paràmetres de funcionament del CanSat, que ajudarien a la definició del model i la potència necessària per alimentar tot el sistema.

Tenint en compte que el CanSat hauria de poder durar diverses hores engegat, el més adequat era considerar les situacions més extremes de consum d’energia, en què cada mòdul i sistema connectat al CanSat consumiria el màxim corrent possible. No obstant això, també és important que sigui raonable en aquest moment no sobredimensionar la bateria, cosa que tampoc no és interessant a causa de les limitacions de pes del CanSat.

Després de consultar tots els fulls de dades dels components de tots els sistemes, el corrent total consumit pel sistema va ser aproximadament de 160 mAh aproximadament, considerant una autonomia de 10 hores, una bateria de 1600 mAh era suficient per garantir al sistema les condicions de treball adequades.

Després de conèixer la càrrega necessària de la bateria, hi ha altres aspectes a tenir en compte malgrat l’autonomia, com ara la mida, el pes, la temperatura de funcionament (sempre que el CanSat es mantingui dins d’un coet), les tensions i les forces a a la qual se sotmet el mateix, entre d'altres.

Pas 5: l'estructura

L’estructura és realment important per a la seguretat del CanSat, tot i que va ser una mica descuidada en aquest projecte (en realitat no hi havia gaire interès en el desenvolupament de la part mecànica del CanSat, a causa del fet que tots els membres cursaven estava relacionat amb l’electrònica). Mentre el projecte es basés en un patró existent, el patró CanSat, no pensant gaire en què semblaria, era necessari, de manera que s’hauria de donar forma en cilindre, amb uns 6, 1 cm de diàmetre i uns 11, De 65 cm d’alçada (les mateixes mesures que una llauna de refresc).

Després d’acabar amb l’estructura exterior, l’atenció es va centrar en el sistema de fixació, encarregat de mantenir totes les taules a l’interior de l’estructura cilíndrica, permetent també l’absorció de les acceleracions a les quals se sotmetria el CanSat, després d’alguna discussió al respecte., es va decidir unir ambdues estructures modelant escuma d'alta densitat a les formes desitjades.

L'estructura exterior es va construir utilitzant canonades de PVC, amb el diàmetre desitjat, per tal de tancar l'estructura es van utilitzar algunes cobertes de canonades de PVC

Pas 6: Conclusions i pensaments futurs

El CanSat encara s’ha de provar en acció, de fet sol·licitem una competició de coets (que tindrà lloc al desembre), també després d’haver passat per tot l’edifici (una mica, de fet encara hem d’acabar algunes coses) i el desenvolupament procés, es van observar algunes perspectives i notes que vam pensar que seria interessant compartir amb tots vosaltres, principalment sobre lluites, consells i fins i tot bones experiències, així que aquí teniu:

- L’inici del projecte va ser el període més prolífic de desenvolupament de tot el projecte; per desgràcia, el grup es va desinteressar del projecte abans de la seva data límit, potser per manca de resultats immediats o per manca de comunicació, de totes maneres diverses coses bones van sortir del projecte

- Va caldre un gran esforç perquè el transceptor funcionés, ja que totes les biblioteques es van desenvolupar des de zero, també perquè es necessiten dos programes i configuracions diferents per provar aquest tipus de coses.

- En el nostre cas no va ser la millor de les idees treballar en microcontroladors basats en configuracions de registres, no tots els membres van ser capaços de mantenir-se al dia amb la resta del grup, cosa que va provocar alguns problemes com la divisió de tasques. Hi ha un munt de biblioteques C decents per al microcontrolador que fèiem servir, de manera que hauria estat molt millor fer servir aquests recursos, també hi ha un IDE anomenat Code Composer, que també ofereix una gran quantitat de recursos per a aquests microcontroladors.

- El CanSat encara necessita moltes millores, aquesta experiència es va basar en tècniques i habilitats bàsiques, a més, no es van tenir en compte diversos problemes, així que, en el futur, espero que una versió de primer nivell d’aquest CanSat es pugui fer realitat amb més esforç i treball..

Recomanat: