Sisukord:
- Tarvikud
- 1. samm: õppige Spektrumi telemeetriaprotokolli
- Samm: valige Riistvara
- Samm: kirjutage tarkvara
- Samm: ühendage ahel vooluvõrku
- Samm: kompileerige ilma alglaadurita
- 6. samm: välk MCU J-Linki abil
- Samm: kompileerige uuesti ilma välise kristallita
Video: RC tasapinna kõrgusmõõtur (ühildub Spektrumi telemeetriaga): 7 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:46
Ma tegin selle kõrgusemõõtja selleks, et piloot saaks teada, et nad on USA -s RC -lennukitel alla 400 jala piiri. Mu sõber oli mures, kuna ta ei saanud kindlalt öelda, et ta on alati alla 400 jala pikk, ja soovis täiendavat kinnitust, mida telemeetriaandmetega andur pakub. Jah, saate anduri osta Spektrumist, kuid saate selle projekti ehitada vähem kui 20 dollari eest koos murdelaudadega (mis on juba hinnast üles pumbatud). Kui teil on juba J-linki programmeerija, saate selle mõne dollari eest kohandatud tahvlile ehitada. Rääkimata sellest, kui olete Xbusi protokollist aru saanud, saate teha mis tahes muid toetatud andureid! Kuid ma katan selles projektis lihtsalt altimeetri …
Osade nimekiri:
-
Ma kasutasin selle projekti jaoks Seeeduino XIAO mikrokontrolleri plaati, kuna see on pisike, kasutab M0 protsessorit, millel on selle projekti jaoks palju energiat, nii I2C kui ka SPI on karbist välja lülitamiseks valmis ja kasutab 3,3 V loogikat, nii et taseme nihutamine pole võimalik nõutud.
https://www.seeedstudio.com/Seeeduino-XIAO-Arduino…
-
Õhurõhu tuvastamiseks ostsin Adafruitilt BMP388 murdeplaadi. Tahvlil on nii I2C kui ka SPI välja töötatud ning see võib töötada 3.3v või 5v loogikaga.
https://www.adafruit.com/product/3966
- Protoboard vooluringi ühendamiseks
- Jootekolb/jootekolb
- Meeste/naiste tihvtide päised, et saaksin anduri/mikrokontrolleri hõlpsalt lahti võtta.
- Väike nupp. Kasutan seda algkõrguse lähtestamiseks.
- 10k takisti nupu allalaadimiseks.
- JST-XH 4-kontaktiline naissoost pistik Spektrumi vastuvõtja telemeetriaporti ühendamiseks
-
SEGGER J-Link EDU programmeerija välgutab M0 ilma alglaadijata.
https://www.adafruit.com/product/3571
-
Adafruit SWD 10-pin pistikuplaat
www.adafruit.com/product/2743
Tarvikud
- Trükkisin 3D -ga ka oma altimeetri jaoks väikese korpuse, kuid seda pole vaja.
-
Ostsilloskoop- kui teil seda pole, soovitan seda väga:
https://store.digilentinc.com/analog-discovery-2-1…
1. samm: õppige Spektrumi telemeetriaprotokolli
Seda tegi minu jaoks enamasti Raymond Domingo. Nad olid juba teinud Spektrumiga ühilduva kõrguse mõõtja, nii et selle lähtekoodi järgimine aitas tõesti. Spektrumi telemeetria andmeleht täitis ülejäänud lüngad. Andmetasandite mõõtmine vastuvõtjast välja näitas, et mul oleks vaja 3.3v loogikat.
Vastuvõtja saadab seadme aadressi ja ootab seejärel 16-baidist vastust. Andmeleht näitab kõigi erinevate andurite struktuure. Isegi kui struktuur ei ole 16 baiti pikk, ootab vastuvõtja iga kord tagasi 16 baiti.
Spektrumi andmeleht:
www.spektrumrc.com/ProdInfo/Files/SPM_Tele…
Raymond Domingo projekt:
www.aerobtec.com/download/altisSpektrumInte…
Samm: valige Riistvara
Rõhu tuvastamiseks kasutasin Adafruit'i BMP388 katkestusplaati. Breakout pakub I2C ja SPI katkestusi ning töötab 3.3v või 5v loogikaga. Adafruit teeb oma murdelaudadega alati hämmastavat tööd, nii et ostsin selle. Kasutasin oma ehituses DFRobot Gravity BMP388 tahvlit, kuna mu Adafruit -plaat oli juba kasutusel.
Arvestades, et host I2C seade kasutab 3.3v loogikat, vajasin 3,3v mikrokontrollerit ja tahtsin, et see oleks väike. Ma kavatsesin kasutada Adafruit Trinket M0, kuid need on suhteliselt kallid ja neil pole väga palju tihvte. Siis leidsin Seeeduino XIAO plaadi. See on M0-plaat, millel on nii I2C kui ka SPI kasutusvalmis, koos USB-C-pistikuga. Lisaks on see tõesti väike! Üldiselt mulle see plaat väga meeldib (kuigi aeglase käivitamise kristall võttis mul igaveseks aru).
Spektrum kasutab vastuvõtjas JST-XH suurusega 4-kontaktilist meessoost pistikut "Xbus" pordi jaoks, mida me kasutame. Kasutasin kõrgusemõõtjal 4-kontaktilist JST-XH pistikut ja see töötas suurepäraselt.
Samm: kirjutage tarkvara
Kogu koodi kirjutamiseks kasutasin Arduino IDE -d. Kopeerisin Spektrumi telemeetriaprotokolli nende andmelehelt välja ja lisasin selle oma Arduino raamatukokku. Kuna Adafruitil on alati häid raamatukogusid, kasutasin nende BMP3XX raamatukogu BMP388 anduri jaoks.
Minu disaini peamised väljavõtted on järgmised:
- Seadistage I2C nii, et see käituks kliendiseadmena ja vastaks Spektrumi kõrgusemõõtja aadressile (0x12).
- Lugege BMP388 baromeetrit läbi SPI.
- Salvestage kõrgusandmed kahte erinevasse puhvrisse, et vastuvõtja I2C -päring andmeid ei rikuks, ja vaheldumisi kahe puhvri vahel andmete toomisel. See tagab, et vastuvõtjale saadetud andmed on alati täielikud.
- Kasutab altimeetri nullimiseks nuppu.
Lisateavet ja koodianalüüsi leiate videost.
Samm: ühendage ahel vooluvõrku
Ma kasutasin protoboardi, kuid kui soovite võtta aega kohandatud freesitud plaadi kujundamiseks, võiksite vooluringi palju puhtamaks muuta.
Ühendasin JST-XH pistiku XIAO I2C tihvtidega. Kuna vastuvõtja väljastab telemeetria siinile 5 volti, läks siinist positiivne XIAO VCC tihvtile. Nii kasutatakse rongisisest 3.3V regulaatorit BMP388 anduri toiteks.
Samm: kompileerige ilma alglaadurita
-
Leidke fail boards.txt (mis tahes tahvli jaoks, mida kasutate).
Minu puhul asus see siin: C: / Users / AppData / Local / Arduino15 Packages / Seeeduino / hardware / samd / 1.7.7 / boards.txt
-
Kopeerige oma plaat ja nimetage esimene võti ümber, et määrata alglaaduri versioon. Lisasin just _nbl algsele nimele.
- Vana: seeed_XIAO_m0
- Uus: seeed_XIAO_m0_nbl
-
Muutke.name väärtust:
- Vana: seeed_XIAO_m0_nbl.name = Seeeduino XIAO
- Uus: seeed_XIAO_m0_nbl.name = Seeeduino XIAO No Bootloader
-
Muutke linkijat vilkuma ilma alglaadurita, muutes ehitaja ld -skripti:
- Vana: seeed_XIAO_m0_nbl.build.ldscript = linker_scripts/gcc/flash_with_bootloader.ld
- Uus: seeed_XIAO_m0_nbl.build.ldscript = linker_scripts/gcc/flash_with _bootloader.ld
- Taaskäivitage Arduino IDE.
- Valige tahvlite menüüst uus tahvel "Seeeduino XIAO No Bootloader".
- Valige käsk "Ekspordi kompileeritud binaarfail"
- Pärast koostamist on.bin -fail teie Arduino projekti kaustas.
6. samm: välk MCU J-Linki abil
Adafruitil on fantastiline juhend alglaaduri ümberprogrammeerimiseks M0/M4 seadmes. Meie puhul tahame alglaadurist lahti saada, kuid see toimib samamoodi.
learn.adafruit.com/how-to-program-samd-boo…
Kui olete seda teinud, ei saa te koodi USB kaudu üles laadida. Saate järgida ülaltoodud juhendit, et käivituslaadur seadmesse tagasi laadida, et koodi uuesti USB kaudu üles laadida, nagu tehasest suutsite.
Adafruit'i juhend on väga põhjalik, kuid need on põhilised sammud:
-
Jootke hüppaja juhtmed XIAO plaadi tagaküljele.
- Adafruit juhendis ei öeldud, et 2x5 purunemisplaadi RST -tihvt tuleb ühendada Adafruit -tahvlite lähtestusnõelaga. Kuid XIAO jaoks oli mul vaja ühendada kõigi nelja plaadi tagaküljel asuva padjaga.
- VREF -i tihvt tuleb ühendada XIAO 3.3v -tihvtiga. See ütleb silurile, et seadme loogika on 3.3v. Ilma selleta, kui valite vale valiku, võite mikrokontrollerit kahjustada.
- Ühendage hüppaja juhtmed J-Linki külge.
- Lülitage XIAO -plaat sisse USB -kaabli abil.
- Ava Atmel Studio.
- Valige Tööriistad Seadme programmeerimine
- Valige oma M0 -plaat. Sel juhul ATSAMD21G18A
- Valige SWD.
- Lugege sihtmärgist konfiguratsiooni.
- Kui kasutate EDU J-Linki, nõustuge kasutustingimustega (kui järgite kasutustingimusi).
- Veenduge, et pinge näit on paremas ülanurgas õige. Kui see pole 3.3v, võite oma plaadi purustada!
- Tühjendage alglaadimiskaitsme kaitse (määrake alglaaduri suuruseks 0 baiti) ja seejärel valige programm.
- Valige mälestuste jaotises oma kompileeritud.bin- või.hex -fail ja valige programm.
Tõrkeotsing:
Seadme konfiguratsiooni lugedes, kui saate vea vahemikust väljapoole, veenduge, et MCU on vooluvõrku ühendatud ja et J-Link VREF-pin on ühendatud 3,3-voldise pingega
Samm: kompileerige uuesti ilma välise kristallita
XIAO plaadil on väline kristall, mille käivitamine võtab kaua aega. Spektrumi vastuvõtja teeb telemeetriasiinil seadme avastamise 350 millisekundit pärast sisselülitamist, seega peame ütlema kompilaatorile, et see kasutaks sisemist ostsillaatorit, mis muudab käivitamise peaaegu koheseks.
- Otsige üles fail board.txt, mida varem muutsite (jah, oleksin võinud selle sammu varem salvestada, kuid see oli minu jaoks õppimisprotsess)
- Lisage stringile seeed_XIAO_m0_nbl.build.extra_flags "-DCRYSTALLESS". See käsib kompilaatoril kasutada sisemist ostsillaatorit.
- Kompileerige kood uuesti.
- Välgutage MCU uuesti.
- Kontrollige ostsilloskoobi abil, et käivitusaeg on piisavalt kiire.
Nagu pildilt näha, on kollane kanal 1 toiteallikas. Tsüaanikanal 2 on mikrokontrolleri valmis tihvt. Umbes 10 millisekundit pärast sisselülitamist tõmbab mikrokontroller teise kanali kõrgele, mis näitab, et see on seadistusahelas. Kui seadistamine on tehtud, kodeeritakse MCU, et tõmmata tihvt madalale, mis näitab, et põhiahel on algamas. Ulatus näitab, et seadistamine võtab aega umbes 3 millisekundit. Üldiselt kulub mikrokontrolleril pärast sisselülitamist 13 millisekundit, et see oleks töövalmis.
Soovitan:
Ühildub Un Celular Android Remotamente Telnetiga: 9 sammu
Ühinenud Celular Android Remotamente Telnetiga: ¡Bienvenido! En la faktidad, es muy fácil tener access to internet. Piénsalo bien, el Internet es una red global de computadoras que transmiten datos entre sí; nii kui vaja, siis on vaja kontraste herramientas ja técnicas correctas para poder ac
RC -tasapinna ehitamine: 4 sammu
RC Plane Build: Ehitasin selle tasapinna kokkupandud padrunplaanist ja kodus olnud RC osadest. Kui teil pole osi juba olemas, võib see projekt kalliks minna, kuid kui soovite lendavat lennukit, peate selle peale natuke raha kulutama. Õppides
Kõrgusmõõtur (kõrgusmõõtur) atmosfäärirõhu põhjal: 7 sammu (piltidega)
Kõrgusmõõtur (kõrgusmõõtur) atmosfäärirõhu põhjal: [Muuda]; Vaadake 6. versiooni 2. versiooni käsitsi baastasandi kõrguse sisestamisega. See on Arduino Nano ja Boschi BMP180 atmosfäärirõhuanduril põhineva kõrgusemõõtja (kõrgusemõõtja) hoone kirjeldus. Disain on lihtne, kuid mõõtmised
Vase tasapinna ja signaalijälje vahelise kliirensi suurendamine: 3 sammu
Vase tasapinna ja signaalijälje vahelise kliirensi suurendamine: olen harrastaja ja kujundan oma ajaveebide ja Youtube'i videote jaoks trükkplaate (PCB). Tellisin oma trükkplaadi Internetist LionCircuitsist. See on India ettevõte ja neil on tootmiseks automatiseeritud platvorm. See vaatab teie Ger automaatselt üle
Atari punkkonsool beebiga 8 sammu järjestus: 7 sammu (piltidega)
Atari punkkonsool koos beebi 8-astmelise sekveneerijaga: see vaheehitus on kõik-ühes Atari punk-konsool ja beebi 8-astmeline järjestus, mida saate freesida Bantam Tools töölaua PCB-freespingis. See koosneb kahest trükkplaadist: üks on kasutajaliidese (UI) plaat ja teine on utiliit