Satura rādītājs:
- Piegādes
- 1. darbība: apgūstiet Spektrum telemetrijas protokolu
- 2. darbība: atlasiet Aparatūra
- 3. solis: rakstiet programmatūru
- 4. solis: pievienojiet ķēdes vadu
- 5. darbība: apkopojiet bez sāknēšanas programmas
- 6. darbība: zibspuldzes MCU ar J-Link
- 7. solis: kompilējiet bez ārējā kristāla
Video: RC plaknes altimetrs (savietojams ar Spektrum telemetriju): 7 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:51
Es izveidoju šo altimetru, lai pilots zinātu, ka ASV RC lidmašīnās tie atrodas zem 400 pēdu ierobežojuma. Mans draugs bija noraizējies, jo nevarēja droši apgalvot, ka viņš vienmēr ir zem 400 pēdām, un vēlējās iegūt papildu pārliecību, ko nodrošinās sensors ar telemetrijas datiem. Jā, jūs varat iegādāties sensoru no Spektrum, taču jūs varat izveidot šo projektu par mazāk nekā 20 ASV dolāriem, izmantojot sadalīšanas dēļus (kuru cena jau ir palielināta). Ja jums jau ir J-link programmētājs, varat to izveidot uz pielāgotas tāfeles par dažiem dolāriem. Nemaz nerunājot, kad esat sapratis Xbus protokolu, varat izveidot jebkuru citu atbalstīto sensoru! Bet šajā projektā es tikai aptveršu altimetru …
Detaļu saraksts:
-
Šim projektam es izmantoju Seeeduino XIAO mikrokontrolleru plati, jo tas ir niecīgs, izmanto M0 procesoru, kuram ir pietiekami daudz jaudas šim projektam, tam ir gan I2C, gan SPI, kas ir gatavs iziet no kastes, un izmanto 3.3 V loģiku, tāpēc netiek veikta līmeņa maiņa nepieciešams.
https://www.seeedstudio.com/Seeeduino-XIAO-Arduino…
-
Gaisa spiediena noteikšanai es no Adafruit iegādājos BMP388 sadalīšanas dēli. Plātnei ir izlauzti gan I2C, gan SPI, un tā var strādāt ar 3.3v vai 5v loģiku.
https://www.adafruit.com/product/3966
- Protoboards ķēdes savienošanai
- Lodāmurs/lodāmurs
- Vīriešu/sieviešu tapas, lai es varētu viegli atvienot sensoru/mikrokontrolleri.
- Maza poga. Es to izmantoju, lai atiestatītu sākuma augstumu.
- 10k rezistors pogas nolaišanai.
- JST-XH 4 kontaktu sieviešu savienotājs, lai pievienotu Spektrum uztvērēja telemetrijas portam
-
SEGGER J-Link EDU programmētājs, lai zibspuldzētu M0 bez sāknēšanas ielādētāja.
https://www.adafruit.com/product/3571
-
Adafruit SWD 10-pin breakout board
www.adafruit.com/product/2743
Piegādes
- Es arī 3D izdrukāju nelielu korpusu savam altimetram, bet tas nav vajadzīgs.
-
Osciloskops- ja jums tāda nav, es ļoti iesaku šo:
https://store.digilentinc.com/analog-discovery-2-1…
1. darbība: apgūstiet Spektrum telemetrijas protokolu
To man lielākoties izdarīja Raimonds Domingo. Viņi jau bija izveidojuši altimetru, kas ir saderīgs ar Spektrum, tāpēc šī avota koda ievērošana patiešām palīdzēja. Spektrum telemetrijas datu lapa aizpildīja pārējās nepilnības. Datu līmeņu mērīšana no uztvērēja parādīja, ka man būs nepieciešama 3.3v loģika.
Uztvērējs nosūta ierīces adresi un pēc tam gaida 16 baitu atbildi. Datu lapa parāda visu dažādu sensoru struktūras. Pat ja struktūra nav 16 baitu gara, uztvērējs katru reizi sagaida 16 baitus.
Spektrum datu lapa:
www.spektrumrc.com/ProdInfo/Files/SPM_Tele…
Raimonda Domingo projekts:
www.aerobtec.com/download/altisSpektrumInte…
2. darbība: atlasiet Aparatūra
Spiediena noteikšanai es izmantoju BMP388 sadalīšanas dēli no Adafruit. Izlaušanās nodrošina I2C un SPI izlaušanos un darbojas ar 3.3v vai 5v loģiku. Adafruit vienmēr dara pārsteidzošu darbu ar saviem sadalīšanas dēļiem, tāpēc es to iegādājos. Tā vietā es savā konstrukcijā izmantoju DFRobot Gravity BMP388 plāksni, jo mana Adafruit tāfele jau tika izmantota.
Ņemot vērā, ka saimniekdatora I2C ierīce izmanto 3.3v loģiku, man bija nepieciešams 3.3v mikrokontrolleris, un es gribēju, lai tas būtu mazs. Es gatavojos izmantot Adafruit Trinket M0, taču tie ir salīdzinoši dārgi, un tajos nav izlauzts ļoti daudz tapu. Tad es atradu Seeeduino XIAO dēli. Tā ir M0 plate ar I2C un SPI, kas ir gatava darbam, ar USB-C savienotāju. Turklāt tas ir patiešām niecīgs! Kopumā man ļoti patīk šī tāfele (lai gan lēnā starta kristāls mani uz visiem laikiem aizdomājās).
Spektrum uztvērējā izmanto JST-XH izmēra 4 kontaktu vīriešu savienotāju portam "Xbus", kurā mēs izmantosim. Altimetrā es izmantoju 4 kontaktu JST-XH sieviešu kontaktdakšu, un tas darbojās perfekti.
3. solis: rakstiet programmatūru
Es izmantoju Arduino IDE, lai rakstītu visu kodu. Es nokopēju Spektrum telemetrijas protokolu no viņu datu lapas un pievienoju to savai Arduino bibliotēkai. Tā kā Adafruit vienmēr ir jaukas bibliotēkas to izlaušanai, es izmantoju viņu BMP3XX bibliotēku BMP388 sensoram.
Galvenās atrunas no mana dizaina ir:
- Iestatiet I2C, lai tas darbotos kā klienta ierīce un reaģētu uz Spektrum altimetra adresi (0x12).
- Lasiet BMP388 barometru, izmantojot SPI.
- Saglabājiet augstuma datus divos dažādos buferos, lai I2C pieprasījums no uztvērēja nesabojātu datus, un, iegūstot datus, mainiet tos abos buferos. Tas nodrošina, ka saņēmējam nosūtītie dati vienmēr ir pilnīgi.
- Izmanto pogu, lai nullētu altimetru.
Lai iegūtu sīkāku informāciju un kodu analīzi, skatieties videoklipu.
4. solis: pievienojiet ķēdes vadu
Es izmantoju protoboard, bet, ja vēlaties veltīt laiku, lai izstrādātu pielāgotu frēzētu dēli, jūs varētu padarīt ķēdi daudz tīrāku.
Es savienoju JST-XH savienotāju ar XIAO I2C tapām. Tā kā uztvērējs telemetrijas kopnei izvada 5 voltus, pozitīvais no autobusa nonāca XIAO VCC tapā. Tādā veidā borta 3.3v regulators tiek izmantots BMP388 sensora barošanai.
5. darbība: apkopojiet bez sāknēšanas programmas
-
Atrodiet savu boards.txt failu (jebkurai tāfelei, kuru izmantojat).
Manā gadījumā tas atradās šeit: C: / Users / AppData / Local / Arduino15 / paketes / Seeeduino / hardware / samd / 1.7.7 / boards.txt
-
Kopējiet savu dēli un pārdēvējiet pirmo atslēgu, lai norādītu versiju bez sāknēšanas. Es tikko pievienoju _nbl sākotnējam nosaukumam.
- Vecs: seeed_XIAO_m0
- Jaunums: seeed_XIAO_m0_nbl
-
Mainiet.name vērtību:
- Vecs: seeed_XIAO_m0_nbl.name = Seeeduino XIAO
- Jaunums: seeed_XIAO_m0_nbl.name = Seeeduino XIAO No Bootloader
-
Pārveidojiet saiti, lai tā mirgo bez sāknēšanas ielādētāja, mainot veidotāja ld skriptu:
- Vecs: seeed_XIAO_m0_nbl.build.ldscript = linker_scripts/gcc/flash_with_bootloader.ld
- Jaunums: seeed_XIAO_m0_nbl.build.ldscript = linker_scripts/gcc/flash_with _bootloader.ld
- Restartējiet Arduino IDE.
- Dēļu izvēlnē atlasiet jauno tāfelīti "Seeeduino XIAO No Bootloader".
- Atlasiet “Eksportēt apkopoto bināro failu”
- Pēc apkopošanas.bin fails būs jūsu Arduino projekta mapē.
6. darbība: zibspuldzes MCU ar J-Link
Adafruit ir fantastisks ceļvedis sāknēšanas ielādētāja pārprogrammēšanai M0/M4 ierīcē. Mūsu gadījumā mēs vēlamies atbrīvoties no sāknēšanas ielādētāja, taču tas darbojas tāpat.
learn.adafruit.com/how-to-program-samd-boo…
Kad esat to izdarījis, jūs nevarēsit augšupielādēt kodu, izmantojot USB. Jūs varat sekot iepriekš minētajam ceļvedim, lai atkal ielādētu sāknēšanas ielādētāju ierīcē, lai vēlreiz augšupielādētu kodu, izmantojot USB, kā jūs to varējāt no rūpnīcas.
Adafruit ceļvedis ir ļoti rūpīgs, taču šie ir pamata soļi:
-
Lodēšanas džempera vadi XIAO plates aizmugurē.
- Adafruit rokasgrāmatā nav teikts, ka RST tapa 2x5 sadalīšanas panelī ir jāpievieno Adafruit dēļu atiestatīšanas tapai. Bet attiecībā uz XIAO man bija nepieciešams izveidot savienojumu ar visiem četriem paliktņiem paneļa aizmugurē.
- VREF tapa ir jāpievieno XIAO 3.3v tapai. Tas atkļūdotājam norāda, ka ierīces loģika ir 3.3v. Bez tā, ja izvēlaties nepareizu opciju, jūs varat sabojāt mikrokontrolleru.
- Pievienojiet džempera vadus J-Link.
- Ieslēdziet XIAO plati, izmantojot USB kabeli.
- Atveriet Atmel Studio.
- Atlasiet Rīki Ierīces programmēšana
- Izvēlieties savu M0 plati. Šajā gadījumā ATSAMD21G18A
- Atlasiet SWD.
- Izlasiet konfigurāciju no mērķa.
- Ja izmantojat EDU J-Link, piekrītiet lietošanas noteikumiem (ja ievērojat lietošanas noteikumus).
- Pārbaudiet, vai sprieguma nolasījums ir pareizs augšējā labajā stūrī. Ja tas nav 3.3v, jūs varētu salauzt savu dēli!
- Notīriet sāknēšanas aizsardzības drošinātāju (iestatiet sāknēšanas ielādētāja lielumu uz 0 baitiem) un pēc tam atlasiet programmu.
- Atmiņu sadaļā atlasiet savu apkopoto.bin vai.hex failu un atlasiet programmu.
Problēmu novēršana:
Ja, lasot ierīces konfigurāciju, rodas kļūda ārpus sprieguma, pārliecinieties, vai MCU ir pievienots strāvas avotam un vai J-Link VREF tapa ir pievienota 3,3 voltiem
7. solis: kompilējiet bez ārējā kristāla
XIAO plāksnei ir ārējs kristāls, kura palaišana prasa ilgu laiku. Spektrum uztvērējs telemetrijas kopnē atklāj ierīci 350 milisekundes pēc ieslēgšanas, tāpēc mums jāinformē kompilators, ka tā vietā jāizmanto iekšējais oscilators, kas padarīs palaišanu gandrīz tūlītēju.
- Atrodiet iepriekš modificēto board.txt failu (jā, es būtu varējis jūs saglabāt šo soli agrāk, bet man tas bija mācību process)
- Pievienojiet "-DCRYSTALLESS" virknei seeed_XIAO_m0_nbl.build.extra_flags. Tas ļaus kompilatoram izmantot iekšējo oscilatoru.
- Pārkompilējiet kodu.
- Atkārtoti uzliesmojiet MCU.
- Pārbaudiet, vai palaišanas laiks ir pietiekami ātrs, izmantojot osciloskopu.
Kā redzat attēlā, dzeltenais kanāls 1 ir barošanas avots. Ciānais kanāls 2 ir gatavā tapa uz mikrokontrollera. Apmēram 10 milisekundes pēc ieslēgšanas mikrokontrolleris paceļ otro kanālu augstu, kas norāda, ka tas ir iestatīšanas cilpā. Kad iestatīšana ir pabeigta, MCU tiek kodēts, lai piespiestu tapu zemu, norādot, ka sākas galvenā cilpa. Darbības joma parāda, ka iestatīšana ilgst apmēram 3 milisekundes. Kopumā mikrokontrolleram pēc ieslēgšanas ir nepieciešamas 13 milisekundes, lai tas būtu gatavs darbam.
Ieteicams:
Altimetrs (augstuma mērītājs), pamatojoties uz atmosfēras spiedienu: 7 soļi (ar attēliem)
Altimetrs (augstuma mērītājs) Pamatojoties uz atmosfēras spiedienu: [Rediģēt]; Skatiet 2. versiju 6. darbībā ar manuālu sākotnējā augstuma ievadi. Šis ir altimetra (augstuma mērītāja) apraksts, kura pamatā ir Arduino Nano un Bosch BMP180 atmosfēras spiediena sensors. Dizains ir vienkāršs, bet mērījumi
Bultas plaknes projekts: 7 soļi
Arrow Plane Project: Šī projekta mērķis ir simulēt citu ražošanas procesu, kas ražos produktu pēc klienta pasūtījuma. Šajā ražošanas procesā tiks izmantoti tie paši jēdzieni, kurus mēs izmantojām iepriekš: DesignManufactureAssembleQualit
LED kompass un altimetrs: 7 soļi (ar attēliem)
LED kompass un altimetrs: objekti ar gaismas diodēm mani vienmēr aizrauj. Tāpēc šis projekts apvieno populāro digitālā kompasa sensoru HMC5883L ar 48 gaismas diodēm. Ievietojot gaismas diodes aplī, iedegas gaismas diode ir virziens, uz kuru dodaties. Ik pēc 7,5 grādiem dr
Paplašinātās realitātes Vuforia 7 sauszemes plaknes noteikšana: 8 soļi
Paplašinātās realitātes Vuforia 7 zemes lidmašīnas noteikšana: Vuforia paplašinātās realitātes SDK Unity 3D izmanto ARCore un ARKit, lai noteiktu zemes lidmašīnas AR. Šodienas apmācībā tiks izmantota viņu vietējā integrācija Unity, lai izveidotu AR lietotni Android vai IOS. Mums mašīna nokritīs no debesīm uz grouna
Zemes plaknes savienojuma nostiprināšana: 3 soļi
Zemes plaknes savienojuma labošana: Ko jūs varat darīt, ja zeme nav savienota ar iezemēto plakni? Tas var notikt, ja modificējat ķēdi EagleCAD un izdzēšat stieples (tīkla) segmentu shēmā, kas iet uz zemi. Programmatūra var automātiski pārdēvēt Wi -Fi otru galu