Kazalo:

CanSat - Vodnik za začetnike: 6 korakov
CanSat - Vodnik za začetnike: 6 korakov

Video: CanSat - Vodnik za začetnike: 6 korakov

Video: CanSat - Vodnik za začetnike: 6 korakov
Video: ТАКОВ МОЙ ПУТЬ В L4D2 2024, Julij
Anonim
CanSat - Vodnik za začetnike
CanSat - Vodnik za začetnike
CanSat - Vodnik za začetnike
CanSat - Vodnik za začetnike
CanSat - Vodnik za začetnike
CanSat - Vodnik za začetnike

Glavni cilj teh navodil je korak za korakom deliti razvojni proces CanSat. Preden pa začnemo, razjasnimo, kaj je CanSat in kakšne so njegove glavne funkcije, ob priložnosti pa bomo predstavili našo ekipo. Ta projekt se je začel kot projekt razširitve na naši univerzi, Universidade Tecnológica Federal do Paraná (UTFPR), kampusu Cornélio Procópio. Pod vodstvom našega svetovalca smo razvili akcijski načrt z namenom, da vstopimo v CanSats, kar je pomenilo preučevanje vseh njegovih vidikov in značilnosti, da bi lahko razumeli, kako deluje, kar bi na koncu privedlo do izgradnje CanSat in razvoj tega priročnika. CanSat je razvrščen kot pikosatelit, kar pomeni, da je njegova teža omejena na 1 kg, običajno pa CanSat tehta približno 350 g, njegova struktura pa temelji na pločevinki sode, cilindru s premerom 6, 1 cm, visokim 11, 65 cm. Ta model je bil predstavljen z namenom poenostavitve procesa razvoja satelita, da bi omogočil dostop univerz do teh tehnologij, s čimer je dosegel priljubljenost zaradi natečajev, ki so sprejeli ta vzorec. Na splošno CanSats temeljijo na 4 strukturah, to so sistemu napajanja, sistemu zaznavanja, telemetričnem sistemu in glavnem sistemu. Zato si poglejmo vsak sistem podrobneje: - Napajalni sistem: ta sistem je odgovoren za dobavo električne energije drugim v skladu s svojimi potrebami. Z drugimi besedami, sistem naj bi oskrboval potrebno napetost in tok ob upoštevanju njegovih meja. Prav tako lahko vsebuje zaščitne komponente, da se zagotovi varnost in pravilno obnašanje drugih sistemov. Običajno temelji na bateriji in vezju regulatorja napetosti, lahko pa dodate še številne druge funkcije, na primer tehnike upravljanja porabe energije in več vrst zaščite. - Senzorski sistem: ta sistem je sestavljen iz vseh senzorjev in naprav, ki so odgovorne za zbiranje zahtevanih podatkov. na glavni sistem ga je mogoče povezati na več načinov, med drugim z zaporednimi protokoli, vzporednimi protokoli, zato je zelo pomembno, da obvladamo vse te tehnike, da lahko določimo najprimernejšo. Na splošno so zaradi manjšega števila povezav in vsestranskosti pogosto izbrani serijski protokoli, daleč najbolj priljubljeni pa so protokoli SPI, I2C in UART. - Telemetrijski sistem: ta sistem je odgovoren za vzpostavitev brezžične komunikacije med CanSatom in zemeljsko nadzorno postajo, ki vključuje protokol in strojno opremo za brezžično komunikacijo. - Glavni sistem: ta sistem je odgovoren za medsebojno povezovanje vseh drugih sistemov, tako da nadzoruje in sinhronizira njihovo zaporedje delovanja kot organizma.

1. korak: Glavni sistem

Glavni sistem
Glavni sistem

Iz več razlogov smo izbrali mikro krmilnik na osnovi ARM® Cortex®-M4F, to je MCU z nizko porabo energije, ki ponuja veliko večjo procesorsko moč, poleg tega pa tudi več funkcij, ki jih v mikrokontrolerjih RISK običajno ne vidimo, na primer funkcije DSP. Te lastnosti so zanimive, ker omogočajo povečanje kompleksnosti funkcij aplikacij CanSat, ne da bi bilo treba spreminjati mikrokrmilnik (seveda ob upoštevanju njegovih omejitev).

Dokler je imel projekt več finančnih omejitev, naj bi bil tudi izbrani mikrokrmilnik cenovno ugoden, zato smo po specifikacijah na koncu izbrali ARM® Cortex®-M4F na osnovi MCU TM4C123G LaunchPad, to je izhodišče, ki je ravno ustrezalo našemu projektu. Tudi dokumentacija (podatkovni listi in dokumentacija o značilnostih, ki jih je priskrbel proizvajalec) in IDE MCU sta bila prednosti, ki ju je treba resnično upoštevati, če so zelo pomagali pri razvoju.

V tem Cansat -u smo se odločili, da ga bomo ohranili preprostega in ga samo razvili z lansirno ploščo, seveda pa v prihodnjih projektih to ne bo možnost, saj več funkcij, vključenih v lansirno ploščo, za naš projekt dejansko ni potrebno, poleg tega je njegova oblika zelo omejila projekt strukture našega CanSat -a, če so dimenzije CanSat -a minimalne.

Torej, potem ko smo izbrali ustrezne "možgane" za ta sistem, je bil naslednji korak razvoj njegove programske opreme, tudi zaradi poenostavitve smo se odločili preprosto uporabiti zaporedni program, ki izvaja naslednje zaporedje pri frekvenci 1Hz:

Odčitki senzorjev> shranjevanje podatkov> prenos podatkov

Del senzorjev bo razložen kasneje v sistemu zaznavanja, prenos podatkov pa v sistemu telemetrije. Nazadnje smo se morali naučiti programirati mikrokrmilnik, v našem primeru smo se morali naučiti naslednjih funkcij MCU -ja, GPIO -jev, modula I2C, modula UART in modula SPI.

Vhodi GPIO ali preprosto splošni vhod in izhod so vrata, ki jih je mogoče uporabiti za izvajanje več funkcij, če so pravilno nastavljene. Glede na to, da za GPIO ne uporabljamo nobene knjižnice C, niti za druge module ne, bi morali konfigurirati vse potrebne registre. Iz tega razloga smo napisali osnovni vodič, ki vsebuje primere in opise v zvezi z registri modulov, ki jih uporabljamo, ki so na voljo spodaj.

Za poenostavitev in organizacijo kode je bilo ustvarjenih več knjižnic. Tako so bile knjižnice ustvarjene za naslednje namene:

- protokol SPI

- protokol I2C

- UART protokol

- NRF24L01+ - sprejemnik

Te knjižnice so na voljo tudi spodaj, vendar ne pozabite, da smo uporabili IDE Keil uvision 5, zato te knjižnice ne bodo delovale za sestavo kod. Po ustvarjanju vseh knjižnic in učenju vseh potrebnih stvari je bila končna koda sestavljena in kot si morda mislite, je na voljo tudi spodaj.

Korak: Senzorski sistem

Sistem zaznavanja
Sistem zaznavanja
Sistem zaznavanja
Sistem zaznavanja
Sistem zaznavanja
Sistem zaznavanja
Sistem zaznavanja
Sistem zaznavanja

Ta sistem je sestavljen iz vseh senzorjev in naprav, ki so odgovorne za zbiranje informacij o pogojih delovanja CanSat. V našem primeru smo izbrali naslednje senzorje:

- 3 -osni digitalni merilnik pospeška - MPU6050

- 3 -osni digitalni žiroskop - MPU6050

- 3 -osni digitalni magnetometer - HMC5883L

- digitalni barometer - BMP280

- in GPS - Tyco A1035D

Odločitve so temeljile predvsem na dostopnosti, kar je pomenilo, da dokler so mehanske in električne (komunikacijski protokol, napajanje itd.) Lastnosti, ki so združljive z našim projektom, pri izbiri niso bili določeni dodatni parametri, tudi zato, ker je za nekatere senzorje razpoložljivost možnosti je bilo omejeno. Po pridobitvi senzorjev je bil čas, da jih začnemo delati.

Prvi, ki ga je bilo treba raziskati, je bil 3 -osni digitalni merilnik pospeška in žiroskop, imenovan MPU6050 (zlahka ga najdemo kjer koli, če se pogosto uporablja v projektih ARDUINO), njegova komunikacija temelji na protokolu I2C, protokolu, v katerem vsak podrejen lastnik naslova, ki omogoča vzporedno povezavo več naprav, saj je naslov dolg 7 bitov, na isto zaporedno vodilo je mogoče priključiti približno 127 naprav. Ta komunikacijski protokol deluje na dveh vodilih, podatkovnem vodilu in urnem vodilu, zato mora glavni za izmenjavo informacij poslati 8 ciklov ure (mimogrede, informacije morajo ustrezati bajtu, če ta komunikacija temelji glede na velikost bajta) pri sprejemanju ali pri prenosu. Naslov MPU6050 je 0b110100X in X se uporablja za klic (označuje) branje ali pisanje (0 označuje operacijo pisanja in 1 označuje operacijo branja), zato kadar koli želite prebrati senzor, uporabite njegov naslov kot 0xD1 in kadar koli želite pisati, uporabite njegov naslov kot 0xD0.

Po raziskovanju protokola I2C je bil MPU6050 dejansko preučen, z drugimi besedami prebran je bil njegov podatkovni list, da bi dobili potrebne informacije za njegovo delovanje, saj je bilo za ta senzor potrebno konfigurirati le tri registre, upravljanje porabe energije 1 register - naslov 0x6B (za zagotovitev, da senzor ni v načinu mirovanja), register konfiguracije žiroskopa - naslov 0x1B (za nastavitev celotnega obsega obsega za žiroskop) in končno register konfiguracije merilnika pospeška - naslov 0x1C (v za nastavitev celotnega obsega merilnika pospeška). Obstaja več drugih registrov, ki jih je mogoče konfigurirati, kar omogoča optimizacijo delovanja senzorja, vendar za ta projekt zadostujejo te konfiguracije.

Po pravilni konfiguraciji senzorja ga lahko zdaj preberete. Zaželene informacije se pojavljajo med registrom 0x3B in registrom 0x48, vsaka vrednost osi je sestavljena iz dveh bajtov, ki sta kodificirana na način komplementa 2, kar pomeni, da je treba prebrane podatke pretvoriti, da bodo smiselni (te stvari bodo obravnavano kasneje).

Ko smo končali z MPU6050, je bil čas, da preučimo 3 -osni digitalni magnetometer, imenovan HMC5883L (lahko ga najdemo tudi kjer koli, če se pogosto uporablja v projektih ARDUINO), njegov komunikacijski protokol pa je spet serijski protokol I2C. Njegov naslov je 0b0011110X in X se uporablja za klic (označuje) branje ali pisanje (0 označuje operacijo pisanja in 1 označuje operacijo branja), zato kadar koli želite prebrati senzor, uporabite njegov naslov kot 0x3D in kadar koli če želite pisati, uporabite njegov naslov kot 0x3C.

V tem primeru so morali za inicializacijo HMC5883L konfigurirati tri registre, konfiguracijski register A - naslov 0x00 (za nastavitev hitrosti izhoda podatkov in način merjenja), konfiguracijski register B - naslov 0x01 (za nastavitev dobička senzorja) in nenazadnje register načina - naslov 0x02 (za nastavitev načina delovanja naprave).

Po pravilni konfiguraciji HMC5883L ga je zdaj mogoče prebrati. Želena informacija se nahaja med registrom 0x03 in registrom 0x08, vsaka vrednost osi je sestavljena iz dveh bajtov, ki sta kodificirana na način dopolnjevanja 2, kar pomeni, da je treba prebrane podatke pretvoriti, da bodo smiselni (to bodo obravnavano kasneje). Zlasti za ta senzor morate prebrati vse informacije naenkrat, sicer ne bo delovalo, kot je predlagano, če so izhodni podatki zapisani v te registre le, ko so bili vsi registri zapisani. zato jih vse preberite.

Nazadnje so preučili še digitalni barometer, še en protokolni senzor I2C, imenovan tudi BMP280 (zlahka ga najdemo tudi povsod, če se pogosto uporablja v projektih ARDUINO). Njegov naslov je b01110110X, tudi X se uporablja za klic (označuje) branje ali pisanje (0 označuje operacijo pisanja in 1 označuje operacijo branja), zato kadar koli želite prebrati senzor, uporabite njegov naslov kot 0XEA in kadar koli če želite pisati, uporabite njegov naslov kot 0XEB. Toda v primeru tega senzorja lahko naslov I2C spremenite tako, da spremenite nivo napetosti na zatiču SDO, zato bo naslov, če na ta pin uporabite GND, naslov b01110110X in če na ta pin uporabite VCC, bo naslov biti b01110111X, tudi če želite omogočiti modul I2C v tem senzorju, morate na pin CSB senzorja uporabiti nivo VCC, sicer ne bo deloval pravilno.

Za BMP280 naj bi bila konfigurirana samo dva registra, da bi lahko deloval, register ctrl_meas - naslov 0XF4 (za nastavitev možnosti zajema podatkov) in register konfiguracije - naslov 0XF5 (za nastavitev hitrosti, filter in možnosti vmesnika za senzor).

Ko končate s konfiguracijo, je čas za tisto, kar je resnično pomembno, podatke same, v tem primeru želene informacije potekajo med registri 0XF7 in 0XFC. Tako temperatura kot vrednost tlaka sta sestavljena iz treh bajtov, ki so kodificirani na način komplementa 2, kar pomeni, da je treba prebrane podatke pretvoriti, da bodo smiselni (o teh stvareh bomo govorili kasneje). Tudi za ta senzor, da bi dobili večjo natančnost, obstaja več korekcijskih koeficientov, ki jih je mogoče uporabiti pri pretvorbi podatkov, se nahajajo med registri 0X88 in 0XA1, ja, obstaja 26 bajtov korekcijskih koeficientov, zato če je natančnost niso tako pomembni, pozabite jih, drugače ne gre drugače.

In nenazadnje GPS - Tyco A1035D, ta se opira na serijski protokol UART, zlasti pri hitrosti 4800 kb/s, brez parnih bitov, 8 podatkovnih bitov in 1 stop bit. UART ali univerzalni asinhroni sprejemnik/oddajnik, je serijski protokol, v katerem se sinhronizacija informacij izvaja prek programske opreme, zato je to asinhroni protokol, tudi zaradi te lastnosti je hitrost prenosa in sprejemanja informacij precej manjša. Natančneje za ta protokol se morajo paketi začeti z začetnim bitom, zaustavitveni bit pa ni obvezen in velikost paketov je dolga 8 bitov.

V primeru GPS - Tyco A1035D sta bili potrebni dve konfiguraciji, in sicer setDGPSport (ukaz 102) in Query/RateControl (ukaz 103), vse te informacije in več možnosti so na voljo v referenčnem priročniku NMEA, protokolu uporablja v večini modulov GPS. Ukaz 102 se uporablja za nastavitev hitrosti prenosa, količine podatkovnih bitov in obstoja paritetnih bitov in zaustavitvenih bitov ali ne. Ukaz 103 se uporablja za nadzor izhoda standardnih sporočil NMEA GGA, GLL, GSA, GSV, RMC in VTG, podrobno so opisani v referenčnem priročniku, v našem primeru pa je bil izbran GGA, ki pomeni Global Sistem za določanje fiksnih podatkov.

Ko je bil GPS - TycoA1035D pravilno konfiguriran, je zdaj potrebno le prebrati serijska vrata in filtrirati niz, prejet v skladu z izbranimi parametri, da se omogoči obdelava informacij.

Ko smo izvedeli vse potrebne informacije o vseh senzorjih, smo potrebovali le nekaj dodatnega napora, da smo vse skupaj združili v isti program, tudi z uporabo serijskih komunikacijskih knjižnic.

3. korak: Telemetrijski sistem

Telemetrijski sistem
Telemetrijski sistem

Ta sistem je odgovoren za vzpostavitev komunikacije med zemeljskim krmiljenjem in sistemom CanSat, poleg parametrov projekta pa je bil omejen tudi na več načinov, dokler je prenos RF dovoljen le v nekaterih frekvenčnih pasovih, ki zaradi neaktivnosti niso zasedeni. druge RF storitve, kot so mobilne storitve. Te omejitve so različne in se lahko razlikujejo od države do države, zato je pomembno, da vedno preverite dovoljene frekvenčne pasove za skupno uporabo.

Na trgu je na voljo veliko možnosti radijskih sprejemnikov po dostopnih cenah, vsi ti sistemi ponujajo različne načine modulacije na različnih frekvencah, za ta sistem smo izbrali RF -oddajnik 2,4 GHz, NRF24L01+, ker je že imel dobro uveljavljen komunikacijski protokol, dokler so sistemi za preverjanje, kot so sistemi za samodejno potrditev in samodejni prenos. Poleg tega bi lahko njegova hitrost prenosa dosegla hitrost do 2Mbps pri razumni porabi energije.

Torej, preden se lotimo tega oddajnika, se spoznajmo malo več o NRF24L01+. Kot smo že omenili, je to radio na 2,4 GHz, ki ga je mogoče konfigurirati kot sprejemnik ali oddajnik. Za vzpostavitev komunikacije ima vsak oddajnik oddajnik naslov, ki ga lahko uporabnik konfigurira, naslov je lahko dolg 24 do 40 bitov glede na vaše potrebe. Podatkovne transakcije se lahko zgodijo posamezno ali neprekinjeno, velikost podatkov je omejena na 1 bajt in vsaka transakcija lahko v skladu s konfiguracijami oddajnika generira pogoj potrditve ali pa tudi ne.

Možne so tudi druge konfiguracije, na primer povečanje glede na izhod RF signala, obstoj ali ne rutine samodejnega ponovnega prenosa (če je tako, lahko zakasnitev, število poskusov med drugimi značilnostmi) in številne druge funkcije, ki niso nujno uporabne za ta projekt, vseeno pa so na voljo v podatkovnem listu komponente, če jih zanima.

NRF24L01+ "govori" jezik SPI, ko gre za serijsko komunikacijo, zato kadar koli želite prebrati ali napisati ta oddajnik, pojdite naprej in zanj uporabite protokol SPI. SPI je serijski protokol, kot je bilo že omenjeno, pri katerem se izbira pomožnih oseb izvede prek zatiča CHIPSELECT (CS), ki skupaj s polnim dupleksom (tako glavni kot podrejeni lahko prenašata in sprejemata vzporedno) tega protokola omogoča veliko večje hitrosti prenosa podatkov.

Podatkovni list NRF24L01+ vsebuje niz ukazov za branje ali pisanje te komponente, med drugimi operacijami obstajajo različni ukazi za dostop do notranjih registrov, tovora RX in TX, zato je glede na želeno operacijo morda potreben poseben ukaz za ga izvedite. Zato bi bilo zanimivo pogledati podatkovni list, v katerem je seznam, ki vsebuje in pojasnjuje vsa možna dejanja nad oddajnikom (tukaj jih ne bomo naštevali, ker to ni bistvo tega navodila).

Poleg oddajnika je še ena pomembna komponenta tega sistema protokol, po katerem se pošiljajo in sprejemajo vsi želeni podatki, če naj bi sistem deloval z več bajti informacij hkrati, je pomembno poznati pomen vsakega bajta, za to deluje protokol, ki sistemu omogoča organizirano identifikacijo vseh prejetih in poslanih podatkov.

Zaradi preprostejše uporabe je bil uporabljeni protokol (za oddajnik) sestavljen iz glave, sestavljene iz 3 bajtov, ki ji sledijo podatki senzorja, dokler so vsi podatki senzorjev sestavljeni iz dveh bajtov, je vsakemu tipu podatkov dodeljena identifikacijska številka, ki se začne od 0x01 in sledi po vrstnem redu polmeseca, tako da imata vsaka dva bajta identifikacijski bajt, tako da se zaporedja glave ni mogoče naključno ponoviti glede na odčitke senzorja. Sprejemnik je bil tako preprost kot oddajnik, protokol je le moral prepoznati glavo, ki jo je poslal oddajnik, in potem, ko je le shranil prejete bajte, smo se v tem primeru odločili uporabiti vektor za njihovo shranjevanje.

Torej, ko ste pridobili vse potrebno znanje o oddajniku in določili komunikacijski protokol, je čas, da vse združite v isti del kode in končno opravite vdelano programsko opremo CanSat.

4. korak: Napajalni sistem

Ta sistem je odgovoren za oskrbo drugih sistemov z energijo, ki jo potrebujejo za pravilno delovanje, v tem primeru smo se odločili preprosto uporabiti baterijo in regulator napetosti. Tako so bili pri dimenzioniranju baterije analizirani nekateri parametri delovanja CanSat -a, ki bi pomagali opredeliti model in moč, potrebno za napajanje celotnega sistema.

Glede na to, da bi CanSat lahko imel vklopljeno več ur, je bilo najprimernejše razmisliti o najbolj ekstremnih situacijah porabe energije, v katerih bi vsak modul in sistem, priključen na CanSat, porabil največji možni tok. Pomembno pa je tudi, da smo na tej točki razumni, da baterije ne pretiravamo, kar prav tako ni zanimivo zaradi omejitev teže CanSat.

Po pregledu vseh podatkovnih listov komponent vseh sistemov je bil skupni tok, ki ga je sistem porabil približno 160 mAh, glede na avtonomijo 10 ur, je bila baterija 1600 mAh dovolj, da je sistemu zagotovil ustrezne delovne pogoje.

Ko spoznate potrebno napolnjenost baterije, morate kljub avtonomiji upoštevati še druge vidike, kot so velikost, teža, temperatura delovanja (dokler je CanSat v raketi), napetosti in sile kateremu se med drugim podreja isto.

5. korak: Struktura

Struktura je res pomembna za varnost programa CanSat, čeprav je bila v tem projektu nekoliko zanemarjena (pravzaprav ni bilo velikega zanimanja za razvoj mehanskega dela CanSat, saj vsi člani tečaje je bil povezan z elektroniko). Dokler je projekt temeljil na obstoječem vzorcu, je bil vzorec CanSat, ne da bi razmišljal o tem, kako bo izgledal, zato bi moral biti oblikovan v obliki valja, s premerom približno 6, 1 cm in približno 11, Visok 65 cm (enake mere pločevinke sode).

Ko smo končali z zunanjo strukturo, je bila vsa pozornost usmerjena na pritrdilni sistem, odgovoren za zadrževanje vseh plošč znotraj cilindrične konstrukcije, kar je omogočilo tudi absorpcijo pospeškov, na katere bi bil CanSat podvržen, po nekaj razpravah o tem, je bilo odločeno, da obe konstrukciji pritrdimo z oblikovanjem pene visoke gostote, na želene oblike.

Zunanja konstrukcija je bila zgrajena z uporabo PVC cevi z želenim premerom, da bi zaprli konstrukcijo, smo uporabili nekaj PVC pokrovov cevi

Korak 6: Zaključki in prihodnje misli

CanSat je treba še preizkusiti v akciji, pravzaprav se prijavljamo na raketno tekmovanje (ki se bo zgodilo decembra), tudi po tem, ko smo šli skozi celotno zgradbo (nekako moramo še dokončati nekatere stvari) in razvoj proces, nekaj pogledov in opomb, za katere se nam je zdelo, da bi jih bilo zanimivo deliti z vami, so bili opaženi, predvsem o borbah, nasvetih in celo dobrih izkušnjah, zato gre tukaj:

- Začetek projekta je bil najplodnejše obdobje razvoja celotnega projekta, na žalost je skupina do zadnjega roka postala nekoliko nezainteresirana za projekt, morda zaradi pomanjkanja takojšnjih rezultatov ali pa morda le pomanjkanja komunikacije. iz projekta je nastalo nekaj dobrih stvari

- Da bi oddajnik začel delovati, smo potrebovali veliko truda, saj so bile vse knjižnice razvite iz nič, tudi zato, ker sta potrebna dva različna programa in nastavitve za preizkušanje tovrstnih stvari

- V našem primeru ideja o delu z mikrokrmilniki, ki temeljijo na konfiguracijah registrov, ni bila najboljša, vsi člani niso mogli slediti preostali skupini, kar je povzročilo nekatere težave, na primer delitev nalog. Za mikro krmilnik, ki smo ga uporabljali, obstaja na stotine spodobnih knjižnic C, zato bi bilo veliko bolje uporabiti te vire, obstaja tudi IDE, imenovan Code Composer, ki ponuja tudi tone virov za te mikrokrmilnike

- CanSat še vedno potrebuje veliko izboljšav, ta izkušnja je temeljila na osnovnih tehnikah in spretnostih, tudi nekaj vprašanj ni bilo upoštevanih, tako da bo v prihodnje vrhunska različica tega CanSat lahko postala resnična z več truda in trdega dela.

Priporočena: