Sadržaj:
- Supplies
- Korak 1: Naučite protokol telemetrije Spektrum
- Korak 2: Odaberite Hardver
- Korak 3: Napišite softver
- Korak 4: Ožičite krug
- Korak 5: Kompajlirajte bez pokretačkog programa
- Korak 6: Flash MCU sa J-Link-om
- Korak 7: Ponovno kompajlirajte bez vanjskog kristala
Video: RC avionski visinomjer (kompatibilan sa Spektrum telemetrijom): 7 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:04
Napravio sam ovaj visinomjer kako bi pilot mogao znati da su ispod ograničenja od 400 stopa na avionima RC u SAD -u. Moj prijatelj je bio zabrinut jer nije mogao sa sigurnošću reći da je uvijek ispod 400 stopa i htio je dodatnu sigurnost koju će dati senzor s telemetrijskim podacima. Da, senzor možete kupiti od Spektruma, ali ovaj projekt možete izgraditi za manje od 20 USD s pločama za razbijanje (koje su već napuhane u cijeni). Ako već imate programera za J-link, ovo možete izgraditi na prilagođenoj ploči za nekoliko dolara. Da ne spominjemo, nakon što razumijete Xbus protokol, možete napraviti bilo koji drugi podržani senzor! Ali ja ću samo pokriti visinomjer u ovom projektu …
Lista dijelova:
-
Koristio sam ploču mikrokontrolera Seeeduino XIAO za ovaj projekt jer je malena, koristi M0 procesor koji ima dovoljno snage za ovaj projekt, ima i I2C i SPI spreman za izlazak iz kutije i koristi 3,3v logiku tako da nema promjene nivoa potrebno.
https://www.seeedstudio.com/Seeeduino-XIAO-Arduino…
-
Za mjerenje tlaka zraka kupio sam ploču za razbijanje BMP388 od Adafruit -a. Ploča ima I2C i SPI prekinute i može raditi na 3.3v ili 5v logici.
https://www.adafruit.com/product/3966
- Protoboard za ožičenje kola
- Lemilica/lemilica
- Muški/ženski pin zaglavlja tako da mogu lako odvojiti senzor/mikrokontroler.
- Malo dugme. Koristim ovo za poništavanje početne visine.
- 10k otpornik za povlačenje dugmeta.
- JST-XH ženski 4-polni konektor za priključivanje u telemetrijski port prijemnika Spektrum
-
SEGGER J-Link EDU programer za blic M0 bez pokretačkog programa.
https://www.adafruit.com/product/3571
-
Adafruit SWD 10-pinska ploča za razbijanje
www.adafruit.com/product/2743
Supplies
- Takođe sam 3D štampao malo kućište za svoj visinomjer, ali to nije potrebno.
-
Osciloskop- Ako ga nemate, toplo preporučujem ovaj:
https://store.digilentinc.com/analog-discovery-2-1…
Korak 1: Naučite protokol telemetrije Spektrum
Ovo je za mene uglavnom uradio Raymond Domingo. Već su napravili visinomjer kompatibilan sa Spektrumom, pa je praćenje izvornog koda zaista pomoglo. Tehnički list telemetrije Spektrum popunio je preostale praznine. Mjerenje nivoa podataka iz prijemnika pokazalo je da mi treba 3.3V logika.
Primalac šalje adresu uređaja, a zatim očekuje odgovor od 16 bajta. Tehnički list prikazuje strukture svih različitih senzora. Čak i ako struktura nije dugačka 16 bajtova, prijemnik svaki put očekuje 16 bajtova nazad.
Tehnički list Spektrum:
www.spektrumrc.com/ProdInfo/Files/SPM_Tele…
Projekat Raymonda Dominga:
www.aerobtec.com/download/altisSpektrumInte…
Korak 2: Odaberite Hardver
Koristio sam BMP388 probojnu ploču iz Adafruit -a za mjerenje pritiska. Proboj pruža I2C i SPI prekide i radi na 3.3v ili 5v logici. Adafruit uvijek izvrsno radi sa svojim razbijačkim pločama, pa sam ga kupio. Umjesto toga, u svojoj sam izgradnji koristio ploču DFRobot Gravity BMP388 jer je moja ploča Adafruit već bila u upotrebi.
S obzirom na to da host I2C uređaj koristi 3.3v logiku, trebao mi je mikrokontroler od 3.3v i želio sam da bude mali. Htio sam koristiti Adafruit Trinket M0, ali oni su relativno skupi i nemaju puno izbijenih pinova. Zatim sam pronašao Seeeduino XIAO ploču. To je M0 ploča sa I2C i SPI spremnim za rad, sa USB-C konektorom. Takođe, zaista je sićušan! Sve u svemu, jako mi se sviđa ova ploča (iako mi je spor kristal za pokretanje trebao vječno da shvatim).
Spektrum koristi 4-pinski muški konektor veličine JST-XH na prijemniku za "Xbus" port u koji ćemo prisluškivati. Koristio sam 4-pinski ženski utikač JST-XH na visinomjeru i radio je savršeno.
Korak 3: Napišite softver
Koristio sam Arduino IDE za pisanje cijelog koda. Kopirao sam telemetrijski protokol Spektrum iz njihove tablice i dodao ga u svoju Arduino biblioteku. Budući da Adafruit uvijek ima lijepe biblioteke za svoje proboje, koristio sam njihovu biblioteku BMP3XX za senzor BMP388.
Glavni zaključci iz mog dizajna su:
- Postavite I2C da se ponaša kao klijentski uređaj i da odgovara na adresu visinomjera Spektrum (0x12).
- Očitajte barometar BMP388 kroz SPI.
- Spremite podatke o nadmorskoj visini u dva različita međuspremnika tako da I2C zahtjev od primatelja neće oštetiti podatke i naizmjenično se prebacuju između dva međuspremnika pri preuzimanju podataka. To osigurava da su podaci poslani primatelju uvijek potpuni.
- Koristi dugme za nuliranje visinomjera.
Za više detalja i analizu koda pogledajte video.
Korak 4: Ožičite krug
Koristio sam protoboard, ali ako želite odvojiti vrijeme za dizajn prilagođene glodane ploče, mogli biste učiniti krug mnogo čistijim.
Priključio sam JST-XH konektor na XIAO-ove I2C pinove. Budući da prijemnik daje 5 volti na sabirnicu telemetrije, pozitiv sa sabirnice je otišao na XIAO -ov VCC pin. Na taj način ugrađeni regulator od 3,3 V koristi se za napajanje BMP388 senzora.
Korak 5: Kompajlirajte bez pokretačkog programa
-
Pronađite datoteku Board.txt (za bilo koju ploču koju koristite).
U mom slučaju, nalazio se ovdje: C: / Users / AppData / Local / Arduino15 / packages / Seeeduino / hardware / samd / 1.7.7 / board.txt
-
Kopirajte svoju ploču i preimenujte prvi ključ da biste naveli verziju bez pokretačkog programa. Upravo sam dodao _nbl originalnom imenu.
- Staro: seeed_XIAO_m0
- Novo: seeed_XIAO_m0_nbl
-
Promijenite vrijednost.name:
- Staro: seeed_XIAO_m0_nbl.name = Seeeduino XIAO
- Novo: seeed_XIAO_m0_nbl.name = Seeeduino XIAO bez pokretačkog programa
-
Izmijenite povezivač da bljeska bez pokretačkog programa promjenom ld skripte builder -a:
- Staro: seeed_XIAO_m0_nbl.build.ldscript = linker_scripts/gcc/flash_with_bootloader.ld
- Novo: seeed_XIAO_m0_nbl.build.ldscript = linker_scripts/gcc/flash_with out _bootloader.ld
- Ponovo pokrenite Arduino IDE.
- Odaberite novu ploču "Seeeduino XIAO No Bootloader" s izbornika ploča.
- Odaberite "Izvezi kompajlirane binarne datoteke"
- Nakon sastavljanja,.bin datoteka bit će u mapi vašeg Arduino projekta.
Korak 6: Flash MCU sa J-Link-om
Adafruit ima fantastičan vodič za reprogramiranje pokretačkog programa na M0/M4 uređaju. U našem slučaju želimo se riješiti pokretačkog programa, ali radi na isti način.
learn.adafruit.com/how-to-program-samd-boo…
Kada to učinite, nećete moći prenijeti kôd putem USB -a. Možete slijediti gornji vodič da biste ponovo pokrenuli pokretački program za učitavanje uređaja na uređaj za ponovno učitavanje koda putem USB -a, kao što ste uspjeli iz tvornice.
Vodič za Adafruit vrlo je temeljit, ali ovo su osnovni koraci:
-
Lemite žice kratkospojnika na stražnjoj strani XIAO ploče.
- U vodiču za Adafruit nije navedeno da RST pin na 2x5 razvodnoj ploči treba biti spojen na pin za resetiranje na Adafruit pločama. Ali za XIAO, morao sam se spojiti na sva četiri jastučića na stražnjoj strani ploče.
- VREF pin mora biti spojen na XIAO 3.3v pin. Ovo otkriva grešci da je logika uređaja 3.3V. Bez toga, ako odaberete pogrešnu opciju, mogli biste oštetiti mikrokontroler.
- Spojite kratkospojnike na J-Link.
- Uključite XIAO ploču pomoću USB kabela.
- Otvorite Atmel Studio.
- Odaberite Alati Programiranje uređaja
- Odaberite svoju M0 ploču. U ovom slučaju, ATSAMD21G18A
- Odaberite SWD.
- Pročitajte konfiguraciju s cilja.
- Ako koristite EDU J-Link, složite se s uvjetima korištenja (ako se pridržavate uvjeta korištenja).
- Provjerite je li očitani napon ispravan u gornjem desnom kutu. Ako nije 3.3v, mogli biste razbiti ploču!
- Uklonite osigurač pri pokretanju (postavite veličinu pokretačkog programa na 0 bajtova), a zatim odaberite program.
- U odjeljku sjećanja odaberite svoju kompajliranu.bin ili.hex datoteku i odaberite program.
Rješavanje problema:
Kada pročitate konfiguraciju uređaja, ako dobijete grešku napona izvan raspona, provjerite je li MCU uključen u napajanje i je li J-Link VREF pin spojen na 3,3 volta
Korak 7: Ponovno kompajlirajte bez vanjskog kristala
XIAO ploča ima vanjski kristal čije pokretanje traje dugo. Prijemnik Spektrum otkriva uređaj na sabirnici telemetrije 350 milisekundi nakon uključivanja, pa moramo reći kompajleru da umjesto toga koristi unutarnji oscilator što će pokretanje učiniti gotovo trenutnim.
- Pronađite datoteku board.txt koju ste ranije izmijenili (da, mogao sam vam sačuvati ovaj korak ranije, ali ovo je za mene bio proces učenja)
- Dodajte "-DCRYSTALLESS" u seeed_XIAO_m0_nbl.build.extra_flags niz. Ovo će reći kompajleru da koristi unutrašnji oscilator.
- Ponovno kompajlirajte kôd.
- Ponovno bljesnite MCU.
- Provjerite je li vrijeme pokretanja dovoljno brzo pomoću osciloskopa.
Kao što možete vidjeti sa slike, žuti kanal 1 je izvor napajanja. Cijan kanal 2 je spreman pin na mikrokontroleru. Otprilike 10 milisekundi nakon uključivanja, mikrokontroler drugi kanal visoko povlači, što znači da se nalazi u petlji za postavljanje. Kada se podešavanje završi, MCU je kodiran tako da povuče pin nisko, što znači da glavna petlja počinje. Opseg pokazuje da postavljanje traje oko 3 milisekunde. Sveukupno, mikrokontroleru je potrebno 13 milisekundi nakon uključivanja da bude spreman za rad.
Preporučuje se:
Ardubuino (klon kompatibilan s Arduboyem): 5 koraka
Ardubuino (klon kompatibilan s Arduboyem): Arduboy je igraća konzola otvorenog koda veličine kreditne kartice koja ima aktivnu zajednicu ne samo na svom softveru u kojem mnogi ljudi razvijaju vlastite igre za platformu, već i na hardveru gdje postoji i mnogo ljudi su smislili
Jeftini Dirt-O-metar za prljavštinu-9 USD Arduino zvučni visinomjer: 4 koraka (sa slikama)
Jeftini Dirt-O-metar za prljavštinu-9 USD Arduino zvučni visinomjer: Dytters (A.K.A Audible Altimeters) spasili su živote padobrancima toliko godina. Sada će i Audible Abby uštedjeti novac. Bašić Dytters ima četiri alarma, jedan na putu prema gore, a tri na putu prema dolje. Tokom vožnje avionom, padobranci moraju znati kada
LED kompas i visinomjer: 7 koraka (sa slikama)
LED kompas i visinomjer: Objekti sa LED diodama uvijek me fasciniraju. Stoga ovaj projekt kombinira popularni digitalni senzor kompasa HMC5883L s 48 LED dioda. Postavljanjem LED dioda u krug, svjetlosna dioda je smjer u kojem idete. Svakih 7,5 stepeni će dr
PropVario, variometar/visinomjer „uradi sam“sa glasovnim izlazom za RC jedrilice: 7 koraka (sa slikama)
PropVario, DIY variometar/visinomjer sa glasovnim izlazom za RC jedrilice: Ove upute će vam pokazati kako izgraditi jeftin Vario, koji može govoriti o nadmorskoj visini i naravno slati različite tonove pri promjeni visine vašeg aviona. Neke značajke: - glas i ton - koristite vlastite (valovite) uzorke u svom la
Elektronski barometrijski visinomjer za balone sa stratosferom: 9 koraka (sa slikama)
Elektronski barometarski visinomjer za balone sa stratosferom: Naš tim, RandomRace.ru, lansira balone s helijem. Mali i veliki, sa kamerama i bez njih. Pokrećemo male kako bismo nasumično ispuštali kontrolne točke za natjecanja u avanturističkim utrkama, a velike za pravljenje sjajnih video zapisa i fotografija s samog vrha atmosfere