Obsah:
- Zásoby
- Krok 1: Naučte se telemetrický protokol Spektrum
- Krok 2: Vyberte Hardware
- Krok 3: Napište software
- Krok 4: Zapojte obvod
- Krok 5: Kompilace bez zavaděče
- Krok 6: Flash MCU s J-Link
- Krok 7: Překompilovat bez externího krystalu
Video: Rovinný výškoměr RC (kompatibilní s telemetrií Spektrum): 7 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:18
Vyrobil jsem tento výškoměr, aby pilot mohl vědět, že jsou pod hranicí 400 stop u RC letadel v USA. Můj přítel byl znepokojen, protože nemohl s jistotou říci, že byl vždy pod 400 stop, a chtěl dodatečné ujištění, že senzor s telemetrickými daty poskytne. Ano, můžete si koupit senzor od Spektrum, ale tento projekt můžete postavit za méně než 20 $ s breakout deskami (které jsou již v ceně nadsazené). Pokud již máte programátor J-link, můžete si jej postavit na vlastní desce za pár dolarů. Nemluvě o tom, že jakmile porozumíte protokolu Xbus, můžete vyrobit některý z dalších podporovaných senzorů! Ale v tomto projektu budu pouze pokrývat výškoměr …
Seznam dílů:
-
Pro tento projekt jsem použil desku mikrokontroléru Seeeduino XIAO, protože je malá, používá procesor M0, který má pro tento projekt dostatek energie, má I2C i SPI připravené k vybalení z krabice a používá logiku 3,3 V, takže nedochází k posunu úrovně Požadované.
https://www.seeedstudio.com/Seeeduino-XIAO-Arduino…
-
Pro snímání tlaku vzduchu jsem koupil desku BMP388 od Adafruit. Deska má přerušené I2C i SPI a může pracovat s logikou 3,3 V nebo 5 V.
https://www.adafruit.com/product/3966
- Protoboard pro zapojení obvodu
- Páječka/páječka
- Záhlaví pinů samec/samice, abych mohl snadno odpojit senzor/mikrokontrolér.
- Malé tlačítko. Používám to k vynulování počáteční nadmořské výšky.
- 10k odpor pro vytažení tlačítka.
- 4kolíkový zásuvkový konektor JST-XH pro připojení k telemetrickému portu přijímače Spektrum
-
Programátor SEGGER J-Link EDU pro flashování M0 bez bootloaderu.
https://www.adafruit.com/product/3571
-
10kolíková odlamovací deska Adafruit SWD
www.adafruit.com/product/2743
Zásoby
- Také jsem 3D vytiskl malý kryt pro svůj výškoměr, ale to není potřeba.
-
Osciloskop- Pokud jej nemáte, vřele doporučuji tento:
https://store.digilentinc.com/analog-discovery-2-1…
Krok 1: Naučte se telemetrický protokol Spektrum
To pro mě většinou udělal Raymond Domingo. Už udělali výškoměr kompatibilní se Spektrumem, takže sledování tohoto zdrojového kódu opravdu pomohlo. Datové listy telemetrie Spektrum vyplnily zbývající mezery. Měření úrovní dat z přijímače ukázalo, že bych potřeboval logiku 3,3 V.
Přijímač odešle adresu zařízení a poté očekává 16bajtovou odpověď. Datový list ukazuje struktury všech různých senzorů. I když struktura není dlouhá 16 bajtů, přijímač očekává vždy 16 bajtů zpět.
Datový list Spektrum:
www.spektrumrc.com/ProdInfo/Files/SPM_Tele…
Projekt Raymonda Dominga:
www.aerobtec.com/download/altisSpektrumInte…
Krok 2: Vyberte Hardware
Pro snímání tlaku jsem použil BMP388 breakout board od Adafruit. Breakout poskytuje průlomy I2C a SPI a funguje na logice 3,3 V nebo 5 V. Adafruit vždy dělá úžasnou práci s jejich odpočinkovými deskami, takže jsem si ji koupil. Místo toho jsem ve své sestavě použil desku DFRobot Gravity BMP388, protože moje deska Adafruit již byla používána.
Vzhledem k tomu, že hostitelské zařízení I2C používá logiku 3,3 V, potřeboval jsem mikrokontrolér 3,3 V a chtěl jsem, aby byl malý. Chtěl jsem použít Adafruit Trinket M0, ale jsou relativně drahé a nemají vylomeno mnoho pinů. Pak jsem našel desku Seeeduino XIAO. Jedná se o desku M0 s I2C i SPI připravenou k provozu s konektorem USB-C. Navíc je opravdu malý! Celkově se mi tato deska moc líbí (i když pomalý startovací krystal mi trvalo věčnost, než jsem na to přišel).
Spektrum používá 4pinový zástrčkový konektor velikosti JST-XH na přijímači pro port „Xbus“, do kterého budeme klepat. Na výškoměru jsem použil 4kolíkovou zásuvku JST-XH a fungovalo to perfektně.
Krok 3: Napište software
K napsání celého kódu jsem použil Arduino IDE. Zkopíroval jsem telemetrický protokol Spektrum z jejich datového listu a přidal jej do své knihovny Arduino. Vzhledem k tomu, že Adafruit má vždy pěkné knihovny pro své výpadky, použil jsem jejich knihovnu BMP3XX pro snímač BMP388.
Hlavní výběry z mého návrhu jsou:
- Nastavte I2C tak, aby se choval jako klientské zařízení a reagoval na adresu výškoměru Spektrum (0x12).
- Přečtěte si barometr BMP388 prostřednictvím SPI.
- Uložte údaje o nadmořské výšce do dvou různých vyrovnávacích pamětí, aby požadavek I2C od přijímače data nepoškodil, a při načítání dat střídejte tyto dvě vyrovnávací paměti. Tím je zajištěno, že data odeslaná příjemci jsou vždy úplná.
- Pomocí tlačítka vynulujete výškoměr.
Další podrobnosti a analýzu kódu naleznete ve videu.
Krok 4: Zapojte obvod
Použil jsem protoboard, ale pokud si chcete udělat čas na návrh frézované desky na míru, můžete tento obvod udělat mnohem čistší.
Spojil jsem konektor JST-XH s piny XIAO I2C. Protože přijímač vydává 5 voltů na telemetrickou sběrnici, kladný signál ze sběrnice šel na pin VCC XIAO. Tímto způsobem se palubní regulátor 3,3 V používá k napájení snímače BMP388.
Krok 5: Kompilace bez zavaděče
-
Najděte svůj soubor boards.txt (pro jakoukoli desku, kterou používáte).
V mém případě byl umístěn zde: C: / Users / AppData / Local / Arduino15 / packages / Seeeduino / hardware / samd / 1.7.7 / boards.txt
-
Zkopírujte desku a přejmenováním prvního klíče určete verzi bez bootloaderu. Právě jsem přidal _nbl k původnímu názvu.
- Staré: seeed_XIAO_m0
- Novinka: seeed_XIAO_m0_nbl
-
Změňte hodnotu.name:
- Staré: seeed_XIAO_m0_nbl.name = Seeeduino XIAO
- Novinka: seeed_XIAO_m0_nbl.name = Seeeduino XIAO No Bootloader
-
Upravte linker tak, aby blikal bez bootloaderu změnou skriptu ld Builder:
- Staré: seeed_XIAO_m0_nbl.build.ldscript = linker_scripts/gcc/flash_with_bootloader.ld
- Novinka: seeed_XIAO_m0_nbl.build.ldscript = linker_scripts/gcc/flash_with out _bootloader.ld
- Restartujte Arduino IDE.
- V nabídce desek vyberte novou desku „Seeeduino XIAO No Bootloader“.
- Vyberte „Exportovat kompilované binární soubory“
- Po zkompilování bude soubor.bin ve vaší složce projektu Arduino.
Krok 6: Flash MCU s J-Link
Adafruit má fantastického průvodce přeprogramováním zavaděče na zařízení M0/M4. V našem případě se chceme zbavit bootloaderu, ale funguje to stejně.
learn.adafruit.com/how-to-program-samd-boo…
Jakmile to provedete, nebudete moci nahrávat kód přes USB. Můžete postupovat podle výše uvedeného průvodce a flashovat zavaděč zpět do zařízení, abyste znovu nahráli kód přes USB, jako byste to dokázali z továrny.
Průvodce Adafruitem je velmi důkladný, ale toto jsou základní kroky:
-
Připájejte propojovací vodiče k zadní straně desky XIAO.
- Průvodce Adafruit neříkal, že pin RST na 2x5 breakout desce je třeba připojit k resetovacímu pinu na deskách Adafruit. Ale u XIAO jsem se potřeboval připojit ke všem čtyřem padům na zadní straně desky.
- Kolík VREF musí být připojen ke kolíku XIAO 3,3 V. To sděluje ladicímu programu, že logika zařízení je 3,3 V. Bez něj, pokud vyberete špatnou možnost, můžete poškodit mikrokontrolér.
- Připojte propojovací vodiče k J-Link.
- Zapněte desku XIAO kabelem USB.
- Otevřete Atmel Studio.
- Vyberte Nástroje Programování zařízení
- Vyberte si desku M0. V tomto případě ATSAMD21G18A
- Vyberte SWD.
- Přečtěte si konfiguraci z cíle.
- Pokud používáte EDU J-Link, vyjádřete souhlas s podmínkami použití (pokud dodržujete podmínky použití).
- V pravém horním rohu zkontrolujte, zda je odečtené napětí správné. Pokud není 3,3 V, můžete zlomit desku!
- Vymažte pojistku ochrany při spuštění (nastavte velikost zavaděče na 0 bajtů) a poté vyberte program.
- V části paměti vyberte kompilovaný soubor.bin nebo.hex a vyberte program.
Odstraňování problémů:
Když si přečtete konfiguraci zařízení, pokud se zobrazí chyba mimo rozsah, ujistěte se, že je MCU připojeno k napájení a že kolík J-Link VREF je připojen na 3,3 voltů
Krok 7: Překompilovat bez externího krystalu
Deska XIAO má externí krystal, jehož spuštění trvá dlouho. Přijímač Spektrum provádí objev zařízení na telemetrické sběrnici 350 milisekund po zapnutí, takže musíme kompilátoru říci, aby místo toho použil interní oscilátor, což způsobí spuštění téměř okamžitě.
- Najděte soubor boards.txt, který jste dříve upravili (ano, tento krok jsem vám mohl uložit dříve, ale pro mě to byl proces učení)
- Přidejte řetězec „-DCRYSTALLESS“do řetězce seeed_XIAO_m0_nbl.build.extra_flags. To řekne kompilátoru, aby použil interní oscilátor.
- Překompilovat kód.
- Znovu flashujte MCU.
- Pomocí osciloskopu ověřte, zda je doba spuštění dostatečně rychlá.
Jak vidíte na obrázku, žlutý kanál 1 je napájecí zdroj. Azurový kanál 2 je připravený pin na mikrokontroléru. Asi 10 milisekund po zapnutí je kanál dva vytažen vysoko mikrokontrolérem, což naznačuje, že je v instalační smyčce. Jakmile je nastavení dokončeno, MCU je kódováno tak, aby vytáhlo kolík nízko, což znamená, že začíná hlavní smyčka. Rozsah ukazuje, že nastavení trvá přibližně 3 milisekundy. Celkově trvá mikrokontrolér po zapnutí 13 milisekund, než je připraven k provozu.
Doporučuje:
Výškoměr (výškoměr) na základě atmosférického tlaku: 7 kroků (s obrázky)
Výškoměr (výškoměr) na základě atmosférického tlaku: [Upravit]; Viz verze 2 v kroku 6 s manuálním vstupem nadmořské výšky. Toto je popis budovy výškoměru (výškoměru) na základě Arduino Nano a snímače atmosférického tlaku Bosch BMP180. Konstrukce je jednoduchá, ale měření
LED kompas a výškoměr: 7 kroků (s obrázky)
LED kompas a výškoměr: Objekty s LED diodami mě vždy fascinují. Proto tento projekt spojil populární snímač digitálního kompasu HMC5883L se 48 LED diodami. Umístěním LED do kruhu se LED dioda, která svítí, pohybuje ve směru, kterým směřujete. Každých 7,5 stupně bude dr
Obousměrné rádio NRF24 pro telemetrii: 9 kroků (s obrázky)
NRF24 Obousměrné rádio pro telemetrii: Ahoj lidi, jmenuji se Pedro Castelani a přináším vám můj první návod: vybudování obousměrného rádia s arduinem pro cokoli, pro co to potřebujete. V tomto projektu vyrobíme dva samostatné obvody, které budou fungovat jako přijímač i vysílač
PropVario, DIY variometr/výškoměr s hlasovým výstupem pro RC kluzáky: 7 kroků (s obrázky)
PropVario, DIY variometr/výškoměr s hlasovým výstupem pro RC kluzáky: Tento návod vám ukáže, jak postavit levné Vario, které dokáže mluvit o nadmořské výšce a samozřejmě posílat různé tóny při změně výšky vašeho kluzáku. Některé funkce: - hlas a tón - použijte vlastní (vlnové) vzorky ve svém
Elektronický barometrický výškoměr pro stratosférické balónky: 9 kroků (s obrázky)
Elektronický barometrický výškoměr pro balóny Stratosphere: Náš tým RandomRace.ru uvádí na trh balónky s heliem. Malé i velké, s kamerami i bez. Spouštíme malé, abychom náhodně vypouštěli kontrolní body pro závody dobrodružných závodů, a velké, abychom vytvářeli skvělá videa a fotografie ze samého vrcholu atmo