Obsah:

CanSat - Průvodce pro začátečníky: 6 kroků
CanSat - Průvodce pro začátečníky: 6 kroků

Video: CanSat - Průvodce pro začátečníky: 6 kroků

Video: CanSat - Průvodce pro začátečníky: 6 kroků
Video: Qigong pro zdraví! Ba Duan Jin "8 kusů brokátu". Každodenní čínská gymnastika. 2024, Červenec
Anonim
CanSat - Průvodce pro začátečníky
CanSat - Průvodce pro začátečníky
CanSat - Průvodce pro začátečníky
CanSat - Průvodce pro začátečníky
CanSat - Průvodce pro začátečníky
CanSat - Průvodce pro začátečníky

Hlavním cílem tohoto instruktabilu je krok za krokem sdílet vývojový proces CanSat. Ale než začneme, ujasněme si, co je CanSat a jaké jsou jeho hlavní funkce, a také využijeme příležitosti a představíme náš tým. Tento projekt začal jako rozšiřující projekt na naší univerzitě Universidade Tecnológica Federal do Paraná (UTFPR), kampus Cornélio Procópio. Pod vedením našeho poradce jsme vyvinuli akční plán se záměrem dostat se do CanSats, což znamenalo prostudovat všechny jeho aspekty a vlastnosti, abychom porozuměli tomu, jak funguje, což by ve výsledku vedlo ke konstrukci CanSat a vývoj této příručky. CanSat je klasifikován jako pikosatelit, což znamená, že jeho hmotnost je omezena na 1 kg, ale obvykle CanSats váží asi 350 g a jeho struktura je založena na plechovce sody, válci o průměru 6, 1 cm a výšce 11, 65 cm. Tento model byl představen se záměrem zjednodušit proces vývoje satelitu s cílem umožnit přístup univerzit k těmto technologiím a dosáhnout popularity díky soutěžím, které tento vzor přijaly. CanSats jsou obecně založeny na 4 strukturách, tj. Energetickém systému, snímacím systému, telemetrickém systému a hlavním systému. Podívejme se tedy blíže na každý systém: - Energetický systém: tento systém je zodpovědný za dodávání elektrické energie ostatním, podle svých potřeb. Jinými slovy, má dodávat systémům potřebné napětí a proud, respektovat jeho limity. Může také obsahovat ochranné prvky, aby byla zaručena bezpečnost a správné chování ostatních systémů. Obvykle je založen na baterii a obvodu regulátoru napětí, ale lze přidat mnoho dalších funkcí, jako jsou techniky řízení napájení a několik druhů ochran. - Systém snímání: tento systém se skládá ze všech senzorů a zařízení, které jsou odpovědné za shromažďování požadovaných údajů. může být připojen k hlavnímu systému několika způsoby, mimo jiné sériovými protokoly, paralelními protokoly, proto je opravdu důležité zvládnout všechny tyto techniky, abyste mohli určit tu nejvhodnější. Obecně jsou často voleny sériové protokoly, kvůli jejich menšímu počtu připojení a univerzálnosti jsou zdaleka nejoblíbenější protokoly SPI, I2C a UART. - Telemetrický systém: tento systém je zodpovědný za vytvoření bezdrátové komunikace mezi CanSat a pozemní řídicí stanicí, která zahrnuje bezdrátový komunikační protokol a hardware. - Hlavní systém: tento systém je zodpovědný za propojení všech ostatních systémů způsobem, který také řídí a synchronizuje jejich posloupnost fungování jako organismu.

Krok 1: Hlavní systém

Hlavní systém
Hlavní systém

Z mnoha důvodů jsme vybrali mikrořadič založený na ARM® Cortex®-M4F, je to nízkoenergetický MCU, který nabízí mnohem vyšší výpočetní výkon, plus několik funkcí, které se v mikrokontrolérech RISK běžně nevidí, jako jsou funkce DSP. Tyto charakteristiky jsou zajímavé, protože umožňují zvýšení složitosti funkcí aplikací CanSat, aniž by bylo nutné měnit mikrokontrolér (samozřejmě také při respektování jeho limitů).

Dokud měl projekt několik finančních omezení, měl být zvolený mikrokontrolér také cenově dostupný, takže jsme podle specifikací nakonec vybrali MCU na bázi ARM® Cortex®-M4F TMU TM4C123G LaunchPad, je to launchpad, který přesně vyhovoval našemu projektu. Také dokumentace (datové listy a dokumentace charakteristik poskytovaná výrobcem) a IDE MCU byly profesionály, které by měly být skutečně brány v úvahu, pokud hodně pomohly procesu vývoje.

V tomto Cansatu jsme se rozhodli zachovat jednoduchost a jednoduše jej vyvinout pomocí launchpadu, ale samozřejmě v budoucích projektech to nebude možné, vzhledem k tomu, že několik funkcí obsažených v launchpadu není ve skutečnosti pro náš projekt nezbytných, plus jeho formát hodně omezil projekt struktury našeho CanSatu, pokud jsou rozměry CanSatu minimální.

Takže po výběru správného „mozku“pro tento systém byl dalším krokem vývoj jeho softwaru, a aby to bylo jednoduché, rozhodli jsme se jednoduše použít sekvenční program, který provede následující sekvenci na frekvenci 1 Hz:

Odečty senzorů> ukládání dat> přenos dat

Část senzorů bude vysvětlena později ve snímacím systému, stejně jako přenos dat bude vysvětlen v telemetrickém systému. Nakonec to bylo naučit se programovat mikrokontrolér, v našem případě jsme se potřebovali naučit následující funkce MCU, GPIO, modulu I2C, modulu UART a modulu SPI.

GPIO nebo jednoduše univerzální vstup a výstup jsou porty, které lze použít k provádění několika funkcí, pokud jsou správně nastaveny. Vzhledem k tomu, že nepoužíváme žádné C knihovny pro GPIO, dokonce ani pro ostatní moduly, měli jsme nakonfigurovat všechny potřebné registry. Z tohoto důvodu jsme napsali základní příručku obsahující příklady a popisy související s registry modulů, které používáme, které jsou k dispozici níže.

Také za účelem zjednodušení a organizace kódu bylo vytvořeno několik knihoven. Knihovny tedy byly vytvořeny pro následující účely:

- protokol SPI

- Protokol I2C

- UART protokol

- NRF24L01+ - transceptor

Tyto knihovny jsou také k dispozici níže, ale pamatujte, že jsme použili IDE Keil uvision 5, takže tyto knihovny nebudou fungovat pro skladatele kódu. Nakonec, po vytvoření všech knihoven a naučení všech potřebných věcí, byl sestaven konečný kód, a jak si asi dokážete představit, je také k dispozici níže.

Krok 2: Systém snímání

Systém snímání
Systém snímání
Systém snímání
Systém snímání
Systém snímání
Systém snímání
Systém snímání
Systém snímání

Tento systém se skládá ze všech senzorů a zařízení, které jsou zodpovědné za shromažďování informací o podmínkách provozu CanSat. V našem případě jsme vybrali následující senzory:

- 3osý digitální akcelerometr - MPU6050

- 3osý digitální gyroskop - MPU6050

- tříosý digitální magnetometr - HMC5883L

- digitální barometr - BMP280

- a GPS - Tyco A1035D

Volby byly založeny hlavně na přístupnosti, což znamenalo, že dokud byly mechanické a elektrické (komunikační protokol, napájecí zdroj atd.) Kompatibilní s naším projektem, nebyly do voleb uloženy žádné další parametry, také proto, že u některých senzorů byla dostupnost možnosti byly omezené. Poté, co jsme senzory získali, bylo na čase je uvést do provozu.

Jako první byl tedy prozkoumán tříosý digitální akcelerometr a gyroskop s názvem MPU6050 (lze jej snadno najít kdekoli, pokud je široce používán v projektech ARDUINO), jeho komunikace je založena na protokolu I2C, protokolu, ve kterém každý slave vlastní adresu, což umožňuje paralelní připojení několika zařízení, vzhledem k tomu, že adresa je dlouhá 7 bitů, lze na stejnou sériovou sběrnici připojit asi 127 zařízení. Tento komunikační protokol funguje na dvou sběrnicích, datové a hodinové, takže za účelem výměny informací musí master odeslat 8 cyklů hodin (mimochodem, informace musí odpovídat bajtu, pokud je tato komunikace založena o velikosti bajtu) buď v přijímací nebo vysílací operaci. Adresa MPU6050 je 0b110100X a X se používá k volání (indikace) operace čtení nebo zápisu (0 označuje operaci zápisu a 1 označuje operaci čtení), takže kdykoli chcete čidlo přečíst, použijte jeho adresu jako 0xD1 a kdykoli chcete psát, použijte jeho adresu jako 0xD0.

Po prozkoumání protokolu I2C byl MPU6050 ve skutečnosti studován, jinými slovy jeho datový list byl přečten, aby se získaly potřebné informace, aby mohl fungovat, protože pro tento senzor bylo nutné nakonfigurovat pouze tři registry, řízení spotřeby 1 registr - adresa 0x6B (aby bylo zajištěno, že senzor není v režimu spánku), konfigurační registr gyroskopu - adresa 0x1B (aby bylo možné konfigurovat celý rozsah stupnice pro gyroskop) a nakonec konfigurační registr akcelerometru - adresa 0x1C (v za účelem konfigurace celého rozsahu stupnice pro akcelerometr). Existuje několik dalších registrů, které lze konfigurovat, což umožňuje optimalizaci výkonu senzoru, ale pro tento projekt tyto konfigurace stačí.

Po správné konfiguraci senzoru jej nyní můžete přečíst. Požadované informace se odehrávají mezi registrem 0x3B a registrem 0x48, každá hodnota osy se skládá ze dvou bytů, které jsou kodifikovány způsobem komplementu 2, což znamená, že načtená data musí být převedena, aby byla smysluplná (tyto věci budou diskutováno později).

Poté, co jsme dokončili práci s MPU6050, bylo načase studovat tříosý digitální magnetometr s názvem HMC5883L (lze jej také snadno najít kdekoli, pokud je široce používán v projektech ARDUINO) a opět jeho komunikačním protokolem je sériový protokol I2C. Jeho adresa je 0b0011110X a X se používá k volání (označuje) operaci čtení nebo zápisu (0 označuje operaci zápisu a 1 označuje operaci čtení), takže kdykoli chcete čidlo přečíst, použijte jeho adresu jako 0x3D a kdykoli chcete napsat, použijte jeho adresu jako 0x3C.

V tomto případě, aby bylo možné HMC5883L inicializovat, bylo nutné nakonfigurovat tři registry, konfigurační registr A - adresa 0x00 (za účelem konfigurace rychlosti výstupu dat a režimu měření), konfigurační registr B - adresa 0x01 (pro konfiguraci zesílení senzoru) a v neposlední řadě registr režimů - adresa 0x02 (pro konfiguraci provozního režimu zařízení).

Po správné konfiguraci HMC5883L je nyní možné jej přečíst. Požadované informace se odehrávají mezi registrem 0x03 a registrem 0x08, každá hodnota osy se skládá ze dvou bytů, které jsou kodifikovány způsobem komplementu 2, což znamená, že načtená data musí být převedena, aby byla smysluplná (tyto věci budou diskutováno později). Zejména u tohoto senzoru byste měli přečíst všechny informace najednou, jinak to nemusí fungovat tak, jak bylo navrženo, pokud jsou výstupní data zapisována pouze do těchto registrů, když byly zapsány všechny registry. přečtěte si je tedy všechny.

Nakonec byl studován digitální barometr, další snímač protokolu I2C, nazývaný také BMP280 (lze jej také snadno najít kdekoli, pokud je široce používán v projektech ARDUINO). Jeho adresa je b01110110X a také X se používá k volání (indikace) operace čtení nebo zápisu (0 označuje operaci zápisu a 1 označuje operaci čtení), takže kdykoli chcete čidlo přečíst, použijte jeho adresu jako 0XEA a kdykoli chcete napsat, použijte jeho adresu jako 0XEB. Ale v případě tohoto senzoru lze adresu I2C změnit změnou úrovně napětí na pinu SDO, takže pokud na tento pin použijete GND, adresa bude b01110110X a pokud na tento pin použijete VCC, adresa bude aby byl b01110111X, také pro povolení modulu I2C v tomto senzoru musíte na pin CSB senzoru použít úroveň VCC, jinak to nebude fungovat správně.

U BMP280 měly být nakonfigurovány pouze dva registry, aby fungovaly, registr ctrl_meas - adresa 0XF4 (pro nastavení možností získávání dat) a konfigurační registr - adresa 0XF5 (pro nastavení rychlosti, filtr a možnosti rozhraní pro senzor).

Poté, co skončíte s konfigurací, je čas na to, na čem opravdu záleží, samotná data, v tomto případě se požadované informace odehrávají mezi registry 0XF7 a 0XFC. Teplota i hodnota tlaku se skládají ze tří bytů, které jsou kodifikovány způsobem komplementu 2, což znamená, že načtená data musí být převedena, aby byla smysluplná (o těchto věcech bude řeč později). Také pro tento senzor, aby se dosáhlo vyšší přesnosti, existuje několik převodních koeficientů, které lze použít při převodu dat, jsou umístěny mezi registry 0X88 a 0XA1, ano existuje 26 bajtů korekčních koeficientů, takže pokud je přesnost není to tak důležité, prostě na ně zapomeňte, jinak to nejde.

A v neposlední řadě GPS - Tyco A1035D, tento sází na sériový protokol UART, konkrétně na rychlost 4800 kbps, žádné paritní bity, 8 datových bitů a 1 stop bit. UART neboli univerzální asynchronní přijímač/vysílač, je sériový protokol, ve kterém se synchronizace informací provádí pomocí softwaru, a proto je to asynchronní protokol, a to i kvůli této charakteristice je rychlost přenosu a přijímání informací mnohem menší. Konkrétně pro tento protokol musí balíčky začínat start bitem, ale stop bit je volitelný a velikost balíků je 8 bitů.

V případě GPS - Tyco A1035D byly vyžadovány dvě konfigurace, a to setDGPSport (příkaz 102) a Query/RateControl (příkaz 103), všechny tyto informace a další možnosti jsou k dispozici v referenční příručce NMEA, protokolu používá se ve většině modulů GPS. Příkaz 102 se používá k nastavení přenosové rychlosti, množství datových bitů a existence nebo neexistence paritních bitů a stop bitů. Příkaz 103 se používá k ovládání výstupu standardních zpráv NMEA GGA, GLL, GSA, GSV, RMC a VTG, jsou podrobně popsány v referenční příručce, ale v našem případě byl zvolen GGA, který znamená Global Opravená data polohovacího systému.

Jakmile je GPS - TycoA1035D správně nakonfigurován, nyní je nutné pouze načíst sériový port a filtrovat přijatý řetězec podle zvolených parametrů, aby bylo možné zpracování informací.

Poté, co jsme se dozvěděli všechny potřebné informace o všech senzorech, stačilo jen trochu úsilí, aby bylo vše pohromadě ve stejném programu, také pomocí knihoven sériové komunikace.

Krok 3: Telemetrický systém

Telemetrický systém
Telemetrický systém

Tento systém je zodpovědný za navázání komunikace mezi pozemním řízením a CanSat, kromě parametrů projektu byl také omezen několika dalšími způsoby, pokud je RF přenos povolen pouze v některých frekvenčních pásmech, která nejsou zaneprázdněna další RF služby, jako jsou mobilní služby. Tato omezení jsou různá a mohou se v jednotlivých zemích lišit, proto je důležité vždy zkontrolovat povolená frekvenční pásma pro běžné použití.

Na trhu je k dispozici mnoho možností rádií za dostupné ceny, všechny tyto systémy nabízejí různé způsoby modulace na různých frekvencích, pro tento systém naše volba spočívala v 2,4GHz RF transceiveru, NRF24L01+, vzhledem k tomu, že již měl dobře zavedený komunikační protokol, pokud existují ověřovací systémy, jako jsou systémy automatického potvrzení a automatické opětovné přenosy. Kromě toho by jeho přenosová rychlost mohla dosáhnout rychlosti až 2 Mbps při rozumné spotřebě energie.

Než tedy začneme pracovat na tomto transceiveru, pojďme se trochu více seznámit s NRF24L01+. Jak již bylo zmíněno dříve, je to rádio založené na 2,4 GHz, které lze konfigurovat jako přijímač nebo vysílač. Aby byla navázána komunikace, každý transceiver má adresu, kterou může nakonfigurovat uživatel, adresa může být 24 až 40 bitů dlouhá podle vašich potřeb. Datové transakce mohou probíhat jediným nebo souvislým způsobem, velikost dat je omezena na 1 bajt a každá transakce může nebo nemusí generovat podmínku potvrzení podle konfigurací transceiveru.

Je možné i několik dalších konfigurací, jako je zisk směrem k výstupu RF signálu, existence nebo neexistence rutiny automatického opětovného přenosu (pokud ano, lze zvolit zpoždění, počet pokusů mezi jinými charakteristikami) a několik dalších funkce, které nejsou nezbytně užitečné pro tento projekt, ale v každém případě jsou k dispozici v datovém listu komponenty, v případě jakéhokoli zájmu o ně.

NRF24L01+ „mluví“jazykem SPI, pokud jde o sériovou komunikaci, takže kdykoli chcete číst nebo psát tento transceiver, pokračujte a použijte pro to protokol SPI. SPI je sériový protokol, jak již bylo uvedeno výše, ve kterém se výběr podřízených zařízení provádí pomocí pinu CHIPSELECT (CS), který spolu s plně duplexní charakteristikou (master i slave mohou vysílat a přijímat paralelně) tohoto protokolu umožňuje mnohem vyšší rychlosti datových transakcí.

Datový list NRF24L01+ poskytuje sadu příkazů pro čtení nebo zápis této komponenty, existují různé příkazy pro přístup k interním registrům, užitečné zatížení RX a TX mezi jinými operacemi, takže v závislosti na požadované operaci může trvat konkrétní příkaz provést to. Proto by bylo zajímavé podívat se na datasheet, ve kterém je seznam obsahující a vysvětlující všechny možné akce přes transceiver (nebudeme je uvádět přímo zde, protože to není hlavní bod tohoto instruktážního listu).

Kromě transceiveru je další důležitou součástí tohoto systému protokol, přes který jsou odesílána a přijímána všechna požadovaná data, pokud má systém pracovat s několika bajty informací současně, je důležité znát význam každého bajtu, k tomu protokol funguje, umožňuje systému organizovaně identifikovat všechna přijímaná a přenášená data.

Aby to bylo jednoduché, použitý protokol (pro vysílač) se skládal ze záhlaví tvořeného 3 bajty, za nímž následovaly údaje senzoru, pokud všechna data ze senzorů obsahovala dva bajty, každému datu senzoru bylo přiděleno identifikační číslo počínaje od 0x01 a následující v půlměsícovém pořadí, takže každé dva bajty mají identifikační bajt, takže se sekvence záhlaví nemohla náhodně opakovat podle údajů snímače. Přijímač byl nakonec stejně jednoduchý jako vysílač, protokol potřeboval pouze rozpoznat hlavičku odeslanou vysílačem a poté uložit přijaté bajty, v tomto případě jsme se rozhodli použít k jejich uložení vektor.

Takže po splnění všech požadovaných znalostí o transceiveru a určení komunikačního protokolu je čas dát vše dohromady do stejného kódu a konečně dokončit firmware CanSat.

Krok 4: Systém napájení

Tento systém je zodpovědný za zásobování ostatních systémů energií, kterou potřebují ke správné funkci. V tomto případě jsme se rozhodli jednoduše použít baterii a regulátor napětí. Takže pro dimenzování baterie byly analyzovány některé provozní parametry CanSat, tyto parametry by pomohly definici modelu a výkonu nezbytného pro napájení celého systému.

Vzhledem k tomu, že CanSat by měl vydržet několik hodin zapnutý, bylo nejvhodnější zvážit nejextrémnější situace spotřeby energie, ve kterých by každý modul a systém připojený k CanSat spotřebovával nejvyšší možný proud. Je však také důležité, abyste v tomto bodě byli rozumní a nepřekročili velikost baterie, což také není zajímavé kvůli omezení hmotnosti CanSat.

Po nahlédnutí do všech datových listů součástí všech systémů byl celkový proud spotřebovaný systémem zhruba 160 mAh zhruba, s ohledem na autonomii 10 hodin stačila baterie 1600 mAh k zajištění správných pracovních podmínek systému.

Poté, co se seznámíme s potřebným nabitím baterie, je třeba zvážit další aspekty navzdory autonomii, jako je velikost, hmotnost, provozní teplota (pokud je CanSat držen uvnitř rakety), napětí a síly kterému je totéž předloženo mimo jiné.

Krok 5: Struktura

Struktura je pro bezpečnost CanSat opravdu důležitá, i když v tomto projektu byla trochu opomíjena (ve skutečnosti nebyl velký zájem o vývoj mechanické části CanSat, protože kurzy pro všechny členy souvisí s elektronikou). Dokud byl projekt založen na existujícím vzoru, bylo nutné použít model CanSat, o kterém se příliš nepřemýšlelo, jak bude vypadat, takže by měl být tvarován ve tvaru válce o průměru asi 6, 1 cm a asi 11, 65 cm vysoký (stejné míry jako plechovka sody).

Poté, co jsme skončili s vnější strukturou, se pozornost soustředila na připevňovací systém, zodpovědný za držení všech desek uvnitř válcové struktury, což také umožnilo absorpci zrychlení, kterým by byl CanSat podroben, poté, co o tom někteří diskutovali Bylo rozhodnuto připojit obě struktury lisováním pěny s vysokou hustotou na požadované tvary.

Vnější konstrukce byla zkonstruována z PVC trubek s požadovaným průměrem, aby se uzavřela struktura, byly použity některé kryty PVC trubek

Krok 6: Závěry a budoucí myšlenky

CanSat je stále potřeba vyzkoušet v akci, vlastně se ucházíme o raketovou soutěž (která se bude konat v prosinci), a to i poté, co projdeme celou budovu (trochu, vlastně ještě musíme dokončit nějaké věci) a vývoj procesu, byly pozorovány některé perspektivy a poznámky, o kterých jsme si mysleli, že by bylo zajímavé se s vámi všemi podělit, hlavně o bojích, tipech a dokonce dobrých zkušenostech, takže tady to je:

- Začátek projektu se stal nejplodnějším obdobím vývoje celého projektu, bohužel se skupina do doby uzávěrky o projekt nezajímala, možná kvůli nedostatku okamžitých výsledků nebo možná kvůli nedostatku komunikace. z projektu vzešlo několik dobrých věcí

- Uvedení transceiveru do provozu si vyžádalo mnoho úsilí, protože všechny knihovny byly vyvinuty od nuly, a to i proto, že k testování těchto druhů věcí jsou zapotřebí dva různé programy a nastavení

- V našem případě to nebylo nejlepší z nápadů pracovat na mikrořadičích na základě konfigurací registrů, ne všichni členové byli schopni držet krok se zbytkem skupiny, což vedlo k některým problémům, jako je rozdělení úkolů. Pro mikrořadič, který jsme používali, existuje mnoho slušných knihoven C, takže by bylo mnohem lepší použít tyto zdroje, existuje také IDE s názvem Code Composer, které také nabízí spoustu zdrojů pro tyto mikrokontroléry

- CanSat stále potřebuje spoustu vylepšení, tato zkušenost byla založena na základních technikách a dovednostech, také nebylo vzato v úvahu několik problémů, takže v budoucnu se snad špičková verze tohoto CanSat může stát realitou s větším úsilím a tvrdou prací.

Doporučuje: