Sadržaj:

CanSat - Vodič za početnike: 6 koraka
CanSat - Vodič za početnike: 6 koraka

Video: CanSat - Vodič za početnike: 6 koraka

Video: CanSat - Vodič za početnike: 6 koraka
Video: Основные ошибки при возведении перегородок из газобетона #5 2024, Srpanj
Anonim
CanSat - Vodič za početnike
CanSat - Vodič za početnike
CanSat - Vodič za početnike
CanSat - Vodič za početnike
CanSat - Vodič za početnike
CanSat - Vodič za početnike

Glavni cilj ovih uputa je dijeljenje procesa razvoja CanSat -a, korak po korak. No, prije nego što počnemo, pojasnimo doista što je CanSat i koje su njegove glavne funkcije, a također ćemo iskoristiti priliku i predstavit ćemo naš tim. Ovaj je projekt započeo kao projekt proširenja na našem sveučilištu, Universidade Tecnológica Federal do Paraná (UTFPR), kampusu Cornélio Procópio. Vođeni našim savjetnikom, razvili smo plan djelovanja s namjerom ulaska u CanSats, što je značilo proučavanje svih njegovih aspekata i karakteristika, kako bismo mogli razumjeti kako to funkcionira, što bi na kraju rezultiralo izgradnjom CanSat i razvoj ovog vodiča. CanSat je klasificiran kao pikosatelit, što znači da mu je težina ograničena na 1 kg, ali obično CanSat teži oko 350 g, a njegova se struktura temelji na limenci sode, cilindru promjera 6, 1 cm, visine 11, 65 cm. Ovaj je model prezentiran s namjerom pojednostavljenja procesa razvoja satelita, kako bi se omogućio pristup sveučilištima ovim tehnologijama, postižući popularnost zbog natječaja koji su usvojili ovaj obrazac. Općenito, CanSat se temelje na 4 strukture, odnosno sustavu napajanja, sustavu osjetljivosti, telemetrijskom sustavu i glavnom sustavu. Pa pogledajmo pobliže svaki sustav: - Sustav napajanja: ovaj je sustav odgovoran za opskrbu električnom energijom drugih, prema svojim potrebama. Drugim riječima, trebao bi opskrbiti sustave potrebnim naponom i strujom, poštujući njegove granice. Također, može sadržavati zaštitne komponente kako bi se zajamčila sigurnost i pravilno ponašanje ostalih sustava. Obično se temelji na bateriji i krugu regulatora napona, ali se mogu dodati i mnoge druge značajke, poput tehnika upravljanja napajanjem i nekoliko vrsta zaštite. - Sensing system: ovaj sustav se sastoji od svih senzora i uređaja koji su odgovorni za prikupljanje potrebnih podataka. može se povezati s glavnim sustavom na nekoliko načina, serijskim protokolima, paralelnim protokolima, između ostalog, zato je zaista važno ovladati svim tim tehnikama kako bi se moglo odrediti koja je najpogodnija. Općenito, serijski protokoli su oni koji se često biraju, zbog svog manjeg broja veza i svestranosti, daleko najpopularniji su SPI, I2C i UART protokoli. - Telemetrijski sustav: ovaj sustav je odgovoran za uspostavljanje bežične komunikacije između CanSat -a i zemaljske upravljačke stanice, koja uključuje protokol i hardver bežične komunikacije. - Glavni sustav: ovaj sustav je odgovoran za međusobno povezivanje svih drugih sustava, na način da također kontrolira i sinkronizira njihov slijed rada kao organizma.

Korak 1: Glavni sustav

Glavni sustav
Glavni sustav

Iz mnogo razloga odabrali smo mikro kontroler temeljen na ARM® Cortex®-M4F, to je MCU male snage, koji nudi mnogo veću procesorsku snagu, plus nekoliko značajki koje se obično ne vide u RISK mikrokontrolerima, poput DSP funkcija. Ove su karakteristike zanimljive jer omogućuju povećanje složenosti značajki CanSat aplikacija, bez potrebe za promjenom mikrokontrolera (naravno, poštujući i njegova ograničenja).

Sve dok je projekt imao nekoliko financijskih ograničenja, odabrani mikrokontroler je također trebao biti pristupačan, pa smo slijedeći specifikacije na kraju odabrali ARM® Cortex®-M4F bazirani MCU TM4C123G LaunchPad, to je lansirna ploča koja je upravo odgovarala našem projektu. Također su dokumentacija (tehnički listovi i dokumentacija o karakteristikama koju je dostavio proizvođač) i IDE MCU -a bili profesionalci koje je zaista potrebno uzeti u obzir, sve dok su puno pomagali razvojnom procesu.

U ovom Cansatu odlučili smo ga pojednostaviti i samo razviti pomoću lansirne ploče, ali naravno u budućim projektima to neće biti opcija, s obzirom na to da nekoliko značajki uključenih u lansirnu ploču zapravo nisu potrebne za naš projekt, plus njegov format uvelike je ograničavao projekt strukture našeg CanSat -a, sve dok su dimenzije CanSat -a minimalne.

Dakle, nakon što smo odabrali pravi "mozak" za ovaj sustav, sljedeći korak bio je razvoj njegovog softvera, a kako bismo pojednostavili, odlučili smo jednostavno upotrijebiti sekvencijalni program koji radi sljedeći slijed na frekvenciji od 1Hz:

Očitavanja senzora> pohrana podataka> prijenos podataka

Dio senzora bit će objašnjen kasnije u senzorskom sustavu, kao i prijenos podataka u telemetrijskom sustavu. Konačno, trebalo je naučiti programirati mikrokontroler, u našem slučaju morali smo naučiti sljedeće funkcije MCU -a, GPIO -a, I2C modula, UART modula i SPI modula.

GPIO -ovi, ili jednostavno ulazi i izlazi opće namjene, priključci su koji se mogu koristiti za obavljanje nekoliko funkcija, pod uvjetom da su pravilno postavljeni. S obzirom na to da ne koristimo nikakve C knjižnice za GPIO -e, čak ni za ostale module, trebali smo konfigurirati sve potrebne registre. Iz tog razloga napisali smo osnovni vodič koji sadrži primjere i opise vezane za registre modula koje koristimo, a koji su dostupni u nastavku.

Također, radi pojednostavljenja i organiziranja koda, stvoreno je nekoliko knjižnica. Dakle, knjižnice su stvorene za sljedeće svrhe:

- SPI protokol

- I2C protokol

- UART protokol

- NRF24L01+ - primopredajnik

Ove su knjižnice također dostupne u nastavku, ali zapamtite da smo koristili Keil uvision 5 IDE, pa te knjižnice neće raditi za sastavljač koda. Konačno, nakon stvaranja svih knjižnica i učenja svih potrebnih stvari, konačni je kod sastavljen, a kao što možete zamisliti, dostupan je i u nastavku.

Korak 2: Sensing System

Sensing System
Sensing System
Sensing System
Sensing System
Sensing System
Sensing System
Sensing System
Sensing System

Ovaj sustav sastoji se od svih senzora i uređaja koji su odgovorni za prikupljanje informacija o uvjetima rada CanSat -a. U našem slučaju odabrali smo sljedeće senzore:

- troosni digitalni akcelerometar - MPU6050

- troosni digitalni žiroskop - MPU6050

- troosni digitalni magnetometar - HMC5883L

- digitalni barometar - BMP280

- i GPS - Tyco A1035D

Izbori su se uglavnom temeljili na pristupačnosti, što je značilo da sve dok su mehaničke i električne (komunikacijski protokol, napajanje itd.) Karakteristike kompatibilne s našim projektom, daljnji parametri nisu nametnuti odabiru, također zato što je za neke senzore dostupna mogućnosti su bile ograničene. Nakon nabavke senzora, došlo je vrijeme da ih stavimo u funkciju.

Dakle, prvi koji je istražen bio je troosni digitalni akcelerometar i žiroskop, nazvan MPU6050 (može se lako pronaći bilo gdje, sve dok se opsežno koristi u projektima ARDUINO), njegova komunikacija temelji se na protokolu I2C, protokolu u kojem svaki podređeni uređaj ima adresu, što omogućuje paralelno povezivanje nekoliko uređaja, s obzirom na to da je adresa dugačka 7 bita, oko 127 uređaja može se povezati na istu serijsku sabirnicu. Ovaj komunikacijski protokol radi na dvije sabirnice, sabirnici podataka i satnoj sabirnici, tako da za razmjenu informacija glavni uređaj mora poslati 8 ciklusa takta (usput, informacija mora odgovarati bajtu, sve dok se ta komunikacija temelji na veličini bajta) bilo u prijemu ili u prijenosu. Adresa MPU6050 je 0b110100X, a X se koristi za pozivanje (označava) operaciju čitanja ili pisanja (0 označava operaciju pisanja, a 1 označava operaciju čitanja), pa kad god želite očitati senzor, koristite njegovu adresu kao 0xD1 i kad god želite pisati, samo koristite njegovu adresu kao 0xD0.

Nakon istraživanja protokola I2C, MPU6050 je zapravo proučavan, drugim riječima pročitana je njegova podatkovna tablica, kako bi se dobile potrebne informacije za rad, jer je za ovaj senzor bilo potrebno konfigurirati samo tri registra, upravljanje napajanjem 1 register - adresa 0x6B (kako bi se zajamčilo da senzor nije u stanju mirovanja), registar konfiguracije žiroskopa - adresa 0x1B (kako bi se konfigurirao cijeli raspon skale za žiroskop) i na kraju registar konfiguracije akcelerometra - adresa 0x1C (u kako biste konfigurirali cijeli raspon mjerila za akcelerometar). Postoji još nekoliko registara koji se mogu konfigurirati, dopuštajući optimizaciju performansi senzora, ali za ovaj projekt ove su konfiguracije dovoljne.

Dakle, nakon što ste pravilno konfigurirali senzor, sada ga možete pročitati. Željene informacije se nalaze između registra 0x3B i registra 0x48, svaka vrijednost osi sastoji se od dva bajta koji su kodirani na način da se 2 nadopunjuju, što znači da se pročitani podaci moraju pretvoriti kako bi bili smisleni (ove će stvari biti kasnije raspravljano).

Nakon što smo završili s MPU6050, došlo je vrijeme za proučavanje troosnog digitalnog magnetometra, nazvanog HMC5883L (također se lako može pronaći bilo gdje, sve dok se naširoko koristi u projektima ARDUINO), a opet je njegov komunikacijski protokol serijski protokol I2C. Njegova adresa je 0b0011110X, a X se koristi za pozivanje (označavanje) operacije čitanja ili pisanja (0 označava operaciju pisanja, a 1 označava operaciju čitanja), pa kad god želite očitati senzor, koristite njegovu adresu kao 0x3D i kad god želite pisati samo upotrijebite njegovu adresu kao 0x3C.

U ovom slučaju, kako bi se HMC5883L inicijalizirao, bilo je potrebno konfigurirati tri registra, konfiguracijski registar A - adresu 0x00 (kako bi se konfigurirala izlazna brzina podataka i način mjerenja), konfiguracijski registar B - adresa 0x01 (kako bi se konfigurirao dobitak senzora) i na kraju, ali ne i najmanje važno, registar načina rada - adresa 0x02 (kako bi se konfigurirao način rada uređaja).

Dakle, nakon što ste pravilno konfigurirali HMC5883L, sada ga je moguće pročitati. Željene informacije se nalaze između registra 0x03 i registra 0x08, svaka vrijednost osi sastoji se od dva bajta koja su kodirana na način da se 2 nadopunjuju, što znači da se pročitani podaci moraju pretvoriti kako bi bili smisleni (ove stvari će biti raspravljati kasnije). Konkretno, za ovaj senzor trebali biste pročitati sve informacije odjednom, inače možda neće raditi kako je predloženo, sve dok se izlazni podaci upisuju u te registre samo kad su svi registri upisani. pa ih svakako pročitajte.

Konačno, proučavan je digitalni barometar, još jedan senzor protokola I2C, koji se naziva i BMP280 (također se lako može pronaći bilo gdje, sve dok se opsežno koristi u projektima ARDUINO). Njegova adresa je b01110110X. Također se X koristi za pozivanje (označavanje) operacije čitanja ili pisanja (0 označava operaciju pisanja, a 1 označava operaciju čitanja), pa kad god želite očitati senzor, koristite njegovu adresu kao 0XEA i kad god želite pisati samo upotrijebite njegovu adresu kao 0XEB. No, u slučaju ovog senzora, I2C adresa može se promijeniti promjenom razine napona na SDO pinu, pa ako primijenite GND na ovaj pin, adresa će biti b01110110X, a ako na ovaj pin primijenite VCC, adresa će ići biti b01110111X, također da biste omogućili I2C modul u ovom senzoru morate primijeniti VCC razinu na CSB pin senzora, inače neće raditi ispravno.

Za BMP280 samo su dva registra trebala biti konfigurirana kako bi mogao funkcionirati, registar ctrl_meas - adresa 0XF4 (za postavljanje mogućnosti prikupljanja podataka) i registar konfiguracije - adresa 0XF5 (kako bi se postavila brzina, filter i opcije sučelja za senzor).

Nakon što ste završili s konfiguracijom, vrijeme je za ono što je doista važno, same podatke, u ovom slučaju željene informacije se nalaze između registara 0XF7 i 0XFC. I temperatura i vrijednost tlaka sastoje se od tri bajta koji su kodirani na način da se 2 nadopunjuju, što znači da se pročitani podaci moraju pretvoriti kako bi bili smisleni (o tim će se temama govoriti kasnije). Također za ovaj senzor, kako bi se dobila veća preciznost, postoji nekoliko koeficijenata korekcija koji se mogu koristiti pri pretvaranju podataka, oni se nalaze između registara 0X88 i 0XA1, da, postoji 26 bajtova koeficijenata korekcija, pa ako je preciznost nisu toliko važne, samo ih zaboravite, inače nema drugog načina.

I na kraju, ali ne i najmanje važno, GPS - Tyco A1035D, ovaj se oslanja na UART serijski protokol, točnije brzinom od 4800 kbps, bez paritetnih bitova, 8 bitova podataka i 1 zaustavni bit. UART ili univerzalni asinkroni prijamnik/odašiljač, je serijski protokol u kojem se sinkronizacija informacija vrši putem softvera, pa je zato asinhroni protokol, također zbog ove karakteristike, brzina prijenosa i primanja informacija znatno manja. Konkretno za ovaj protokol, paketi moraju započeti početnim bitom, ali zaustavni bit nije obavezan, a veličina paketa duga je 8 bita.

U slučaju GPS -a - Tyco A1035D, bile su potrebne dvije konfiguracije, a to su setDGPSport (naredba 102) i Query/RateControl (naredba 103), sve te informacije, plus više opcija dostupne su u referentnom priručniku NMEA, protokolu koristi se u većini GPS -ovih modula. Naredba 102 koristi se za postavljanje brzine prijenosa, količine bitova podataka i postojanja bita parnosti i zaustavljanja. Naredba 103 koristi se za kontrolu izlaza standardnih NMEA poruka GGA, GLL, GSA, GSV, RMC i VTG, one su detaljno opisane u referentnom priručniku, no u našem slučaju odabrana je GGA koja označava Global Fiksni podaci sustava pozicioniranja.

Nakon što je GPS - TycoA1035D ispravno konfiguriran, sada je potrebno samo pročitati serijski port i filtrirati niz primljen prema odabranim parametrima kako bi se omogućila obrada informacija.

Nakon što su naučili sve potrebne informacije o svim senzorima, bio je potreban samo dodatni napor kako bi se sve spojilo u isti program, također koristeći serijske komunikacijske knjižnice.

Korak 3: Telemetrijski sustav

Telemetrijski sustav
Telemetrijski sustav

Ovaj sustav je odgovoran za uspostavljanje komunikacije između zemaljske kontrole i CanSat -a, osim parametara projekta, također je ograničen na još neke načine, sve dok je RF prijenos dopušten samo u nekim frekvencijskim opsezima koji nisu zauzeti zbog druge RF usluge, poput mobilnih usluga. Ta su ograničenja različita i mogu se mijenjati od zemlje do zemlje, stoga je važno uvijek provjeravati dopuštene frekvencijske pojaseve za uobičajenu uporabu.

Na tržištu postoji mnogo mogućnosti radija po pristupačnim cijenama, svi ti sustavi nude različite načine modulacije na različitim frekvencijama, za ovaj sustav naš izbor se sastojao od RF primopredajnika od 2,4 GHz, NRF24L01+, zbog činjenice da je već imao dobro uspostavljen komunikacijski protokol, sve dok su sustavi za provjeru, poput sustava automatske potvrde i sustava za ponovni prijenos. Nadalje, njegova bi brzina prijenosa mogla doseći brzine do 2Mbps uz razumnu potrošnju energije.

Stoga prije rada na ovom primopredajniku upoznajmo malo više o NRF24L01+. Kao što je već spomenuto, radi se o radiju zasnovanom na 2,4 GHz, koji se može konfigurirati kao prijemnik ili odašiljač. Za uspostavu komunikacije svaki primopredajnik ima adresu koju korisnik može konfigurirati, adresa može biti duga 24 do 40 bita prema vašim potrebama. Transakcije podataka mogu se odvijati pojedinačno ili kontinuirano, veličina podataka je ograničena na 1 bajt i svaka transakcija može, ali i ne mora generirati uvjet potvrde u skladu s konfiguracijama primopredajnika.

Moguće su i druge konfiguracije, kao što su dobitak prema izlazu RF signala, postojanje ili ne rutine automatskog ponovnog odašiljanja (ako je tako, kašnjenje, količina ispitivanja može se izabrati među ostalim karakteristikama) i nekoliko drugih značajke koje nisu nužno korisne za ovaj projekt, ali su u svakom slučaju dostupne u podatkovnom listu komponente, u slučaju interesa za njih.

NRF24L01+ 'govori' SPI jezik kada je u pitanju serijska komunikacija, pa kad god želite čitati ili pisati ovaj primopredajnik, samo naprijed i upotrijebite SPI protokol za to. SPI je serijski protokol kao što je prije spomenuto, u kojem se odabir slave -a vrši putem CHIPSELECT (CS) pina, koji zajedno s punim dupleksom (i master i slave mogu paralelno prenositi i primati) karakteristike ovog protokola omogućuje mnogo veće brzine prijenosa podataka.

Tehnički list NRF24L01+ sadrži skup naredbi za čitanje ili pisanje ove komponente, postoje različite naredbe za pristup internim registrima, RX i TX korisni teret među ostalim operacijama, pa ovisno o željenoj operaciji, može biti potrebna određena naredba za izvesti ga. Zato bi bilo zanimljivo pogledati podatkovnu tablicu u kojoj se nalazi popis koji sadrži i objašnjava sve moguće radnje nad primopredajnikom (nećemo ih ovdje navesti jer to nije glavna točka ovih uputa).

Osim primopredajnika, još jedna važna komponenta ovog sustava je protokol kroz koji se šalju i primaju svi željeni podaci, sve dok bi sustav trebao raditi s nekoliko bajtova informacija, važno je znati značenje svakog bajta, za to protokol radi, dopušta sustavu da na organiziran način identificira sve primljene i prenesene podatke.

Kako bi pojednostavili stvari, korišteni protokol (za odašiljač) sastojao se od zaglavlja sastavljenog od 3 bajta iza kojega su slijedili podaci senzora, sve dok su se svi podaci senzora sastojali od dva bajta, svaki je podatak senzora dobio identifikacijski broj koji počinje od 0x01 i slijedeći u polumjesecu, tako da svaka dva bajta ima identifikacijski bajt, na ovaj način se niz zaglavlja ne može slučajno ponoviti prema očitanjima senzora. Prijemnik je na kraju bio jednostavan kao i odašiljač, protokol je samo trebao prepoznati zaglavlje koje je poslao odašiljač, a nakon toga samo pohranio primljene bajtove, u ovom slučaju smo odlučili upotrijebiti vektor za pohranu.

Dakle, nakon što ste stekli sva potrebna znanja o primopredajniku i odredili komunikacijski protokol, vrijeme je da sve spojite u isti komad koda i konačno završite s CanSat firmverom.

Korak 4: Sustav napajanja

Ovaj sustav smatra se odgovornim za opskrbu ostalih sustava energijom koja im je potrebna za ispravan rad, u ovom slučaju odlučili smo jednostavno upotrijebiti bateriju i regulator napona. Stoga su za dimenzioniranje baterije analizirani neki radni parametri CanSat -a, koji bi pomogli u definiranju modela i snage potrebne za napajanje cijelog sustava.

S obzirom na to da bi CanSat trebao moći trajati nekoliko sati uključen, najprikladnije je razmotriti najekstremnije situacije potrošnje energije, u kojima bi svaki modul i sustav priključen na CanSat trošio najveću moguću struju. Međutim, također je važno biti razuman u ovom trenutku ne prevelikim kapacitetom baterije, što također nije zanimljivo zbog ograničenja težine CanSat -a.

Nakon što su pregledali sve podatkovne listove komponenti svih sustava, ukupna struja koju je sustav potrošio bila je otprilike oko 160 mAh, s obzirom na autonomiju od 10 sati, baterija od 1600 mAh bila je dovoljna da sustavu zajamči odgovarajuće radne uvjete.

Nakon što ste upoznali potrebno punjenje baterije, morate razmotriti još neke aspekte unatoč autonomiji, kao što su veličina, težina, radna temperatura (sve dok se CanSat drži unutar rakete), napetosti i sile kojoj se isti podnosi, među ostalim.

Korak 5: Struktura

Struktura je doista važna za sigurnost CanSat -a, iako je u ovom projektu bila pomalo zanemarena (zapravo nije bilo velikog interesa za razvoj mehaničkog dijela CanSat -a, zbog činjenice da svi članovi tečajeva bio u vezi s elektronikom). Sve dok se projekt temeljio na postojećem uzorku, bio je potreban CanSat uzorak, nije bilo potrebno puno razmišljati o tome kako će izgledati, pa bi ga trebalo oblikovati u cilindričnom formatu, s oko 6, 1 cm promjera i oko 11, Visok 65 cm (iste mjere kao limenka sode).

Nakon što su završili s vanjskom strukturom, sva je pozornost bila usmjerena na sustav pričvršćivanja, odgovoran za držanje svih ploča unutar cilindrične konstrukcije, što je također omogućilo apsorpciju ubrzanja na koja bi CanSat bio podvrgnut, nakon što su se o tome raspravljali, odlučeno je obje strukture pričvrstiti lijevanjem pjene velike gustoće, na željene oblike.

Vanjska konstrukcija izvedena je pomoću PVC cijevi, željenog promjera, kako bi se zatvorila konstrukcija

Korak 6: Zaključci i buduća razmišljanja

CanSat još treba testirati na djelu, zapravo se prijavljujemo na raketno natjecanje (koje će se dogoditi u prosincu), također nakon što smo prošli cijelu zgradu (nekako, zapravo još moramo dovršiti neke stvari) i razvoj procesa, zapažene su neke perspektive i bilješke za koje smo mislili da bi bilo zanimljivo podijeliti sa svima vama, uglavnom o borbama, savjetima, pa čak i dobrim iskustvima, pa evo slijedi:

- Početak projekta postao je najplodnije razdoblje razvoja cijelog projekta, nažalost grupa je postala pomalo nezainteresirana za projekt do isteka roka, možda zbog nedostatka neposrednih rezultata, ili možda samo nedostatka komunikacije, u svakom slučaju iz projekta je proizašlo nekoliko dobrih stvari

- Bilo je potrebno puno truda da bi primopredajnik funkcionirao, budući da su sve knjižnice razvijene od nule, također zato što su za testiranje ovakvih stvari potrebna dva različita programa i postavke

- U našem slučaju to nije bila najbolja ideja za rad na mikro kontrolerima na temelju konfiguracija registara, nisu svi članovi uspjeli držati korak s ostatkom grupe, što je dovelo do nekih problema, poput podjele zadataka. Postoji mnoštvo pristojnih C knjižnica za mikro kontroler koji smo koristili, pa bi bilo mnogo bolje zamisliti koristiti te resurse, postoji i IDE pod nazivom Code Composer, koji također nudi tone resursa za te mikrokontrolere

- CanSat i dalje treba mnogo poboljšanja, ovo se iskustvo temeljilo na osnovnim tehnikama i vještinama, također nekoliko pitanja nije uzeto u obzir, pa bi se nadamo da bi u budućnosti vrhunska verzija ovog CanSat -a mogla postati stvarnost uz više truda i uloženog truda.

Preporučeni: