Përmbajtje:

RC Plain Altimetër (i pajtueshëm me Spektrum Telemetry): 7 hapa
RC Plain Altimetër (i pajtueshëm me Spektrum Telemetry): 7 hapa

Video: RC Plain Altimetër (i pajtueshëm me Spektrum Telemetry): 7 hapa

Video: RC Plain Altimetër (i pajtueshëm me Spektrum Telemetry): 7 hapa
Video: Топ-10 лучших истребителей России 2024, Korrik
Anonim
RC Plain Altimetër (i pajtueshëm me Spektrum Telemetry)
RC Plain Altimetër (i pajtueshëm me Spektrum Telemetry)

Unë e bëra këtë lartësimatës në mënyrë që piloti të dinë që ata janë nën kufirin 400 këmbë për avionët RC në SHBA. Miku im ishte i shqetësuar pasi nuk mund të thoshte me siguri se ai ishte gjithmonë nën 400 këmbë, dhe donte sigurinë e shtuar që do të jepte një sensor me të dhëna telemetrike. Po, mund të blini një sensor nga Spektrum, por mund ta ndërtoni këtë projekt për më pak se 20 dollarë me dërrasat e prishjes (të cilat tashmë janë të fryra në çmim). Nëse tashmë keni programuesin J-link, mund ta ndërtoni këtë në një tabelë të personalizuar për disa dollarë. Për të mos përmendur sapo të kuptoni protokollin Xbus, mund të bëni ndonjë nga sensorët e tjerë të mbështetur! Por unë thjesht do të mbuloj një lartësimatës në këtë projekt…

Lista e pjesëve:

  • Kam përdorur një bord mikrokontrollues Seeeduino XIAO për këtë projekt pasi është i vogël, përdor një procesor M0 që ka shumë fuqi për këtë projekt, ka I2C dhe SPI gati për të dalë nga kutia dhe përdor logjikë 3.3v kështu që asnjë zhvendosje niveli nuk është kërkohet.

    https://www.seeedstudio.com/Seeeduino-XIAO-Arduino…

  • Për të ndjerë presionin e ajrit, bleva një bord të prishjes BMP388 nga Adafruit. Bordi ka të dy I2C dhe SPI të shpërthyer dhe mund të funksionojë me logjikë 3.3v ose 5v.

    https://www.adafruit.com/product/3966

  • Protoboard për lidhjen e qarkut
  • Saldator/hekur bashkues
  • Titujt e kunjave meshkuj/femra kështu që unë lehtë mund të shkëpus sensorin/mikrokontrolluesin.
  • Buton i vogël. Unë e përdor këtë për të rivendosur lartësinë e fillimit.
  • Rezistencë 10k për tërheqje poshtë të butonit.
  • Lidhës femër JST-XH me 4 kunja për t'u kyçur në portën e telemetrisë së marrësit Spektrum
  • Programues SEGGER J-Link EDU për të ndezur M0 pa një bootloader.

    https://www.adafruit.com/product/3571

  • Bordi i shpërthimit Adafruit SWD me 10 kunja

    www.adafruit.com/product/2743

Furnizimet

  • Unë gjithashtu printova 3D një rrethim të vogël për lartësinë time, por kjo nuk është e nevojshme.
  • Oskiloskopi- Nëse nuk keni një të tillë, ju rekomandoj këtë:

    https://store.digilentinc.com/analog-discovery-2-1…

Hapi 1: Mësoni Protokollin e Telemetrisë Spektrum

Mësoni Protokollin e Telemetrisë Spektrum
Mësoni Protokollin e Telemetrisë Spektrum
Mësoni Protokollin e Telemetrisë Spektrum
Mësoni Protokollin e Telemetrisë Spektrum
Mësoni Protokollin e Telemetrisë Spektrum
Mësoni Protokollin e Telemetrisë Spektrum

Kjo është bërë kryesisht për mua nga Raymond Domingo. Ata tashmë kishin bërë një lartësimatës të pajtueshëm me Spektrum, kështu që ndjekja e atij kodi burim ndihmoi vërtet. Fleta e të dhënave të telemetrisë Spektrum plotësoi pjesën tjetër të boshllëqeve. Matja e niveleve të të dhënave jashtë marrësit tregoi se do të kisha nevojë për logjikë 3.3v.

Marrësi dërgon adresën e pajisjes dhe pastaj pret një përgjigje prej 16 bajtësh. Fleta e të dhënave tregon strukturat për të gjithë sensorët e ndryshëm. Edhe nëse struktura nuk është 16 bajt e gjatë, marrësi pret 16 bajt çdo herë.

Fleta e të dhënave Spektrum:

www.spektrumrc.com/ProdInfo/Files/SPM_Tele…

Projekti i Raymond Domingos:

www.aerobtec.com/download/altisSpektrumInte…

Hapi 2: Zgjidhni Hardware

Zgjidhni Hardware
Zgjidhni Hardware
Zgjidhni Hardware
Zgjidhni Hardware
Zgjidhni Hardware
Zgjidhni Hardware

Kam përdorur një tabelë shpërthimi BMP388 nga Adafruit për të ndjerë presionin. Zbërthimi siguron ndërprerje I2C dhe SPI, dhe punon në logjikën 3.3v ose 5v. Adafruit bën gjithmonë një punë të mahnitshme me bordet e tyre të shpërthimit, kështu që e bleva atë. Kam përdorur një bord DFRobot Gravity BMP388 në vend të saj në ndërtimin tim pasi bordi im Adafruit ishte tashmë në përdorim.

Duke pasur parasysh që pajisja pritëse I2C përdor logjikë 3.3v, më duhej një mikrokontrollues 3.3v dhe doja që të ishte i vogël. Unë do të përdorja një Adafruit Trinket M0, por ato janë relativisht të shtrenjta dhe nuk kanë shumë kunja të shpërthyera. Pastaj gjeta bordin Seeeduino XIAO. Shtë një bord M0 me të dy I2C dhe SPI gati për të shkuar, me një lidhës USB-C. Gjithashtu, është vërtet e vogël! Në përgjithësi më pëlqen shumë kjo tabelë (edhe pse kristali i ngadalshëm i fillimit më mori përgjithmonë për ta kuptuar).

Spektrum përdor një lidhës mashkull 4-pin me madhësi JST-XH në marrës për portën "Xbus" në të cilën do të prekim. Kam përdorur një prizë femërore JST-XH me 4 kunja në lartësimatës dhe funksionoi në mënyrë perfekte.

Hapi 3: Shkruani Softuer

Përdora Arduino IDE për të shkruar të gjithë kodin. Unë kopjova protokollin e telemetrisë Spektrum nga fleta e të dhënave të tyre dhe e shtova në bibliotekën time Arduino. Meqenëse Adafruit ka gjithmonë biblioteka të bukura për shpërthimet e tyre, unë përdor bibliotekën e tyre BMP3XX për sensorin BMP388.

Përfitimet kryesore nga dizajni im janë:

  • Vendosni I2C që të sillet si një pajisje klienti dhe t'i përgjigjeni adresës së altimetrit Spektrum (0x12).
  • Lexoni barometrin BMP388 përmes SPI.
  • Ruani të dhënat e lartësisë në dy tamponë të ndryshëm në mënyrë që një kërkesë I2C nga marrësi të mos i prishë të dhënat dhe alternoni midis dy tamponëve kur merrni të dhënat. Kjo siguron që të dhënat e dërguara te marrësi të jenë gjithmonë të plota.
  • Përdor një buton për të zero altimetrin.

Për më shumë detaje dhe analiza të kodit, shikoni videon.

Hapi 4: Lidhni qarkun

Wire the Circuit
Wire the Circuit
Wire the Circuit
Wire the Circuit
Wire the Circuit
Wire the Circuit
Wire the Circuit
Wire the Circuit

Kam përdorur protoboard, por nëse doni të merrni kohë për të hartuar një dërrasë të bluar me porosi, mund ta bëni qarkun shumë më të pastër.

Kam lidhur lidhësin JST-XH me kunjat I2C të XIAO. Meqenëse marrësi nxjerr 5 volt në autobusin e telemetrisë, pozitivi nga autobusi shkoi te kunja VCC e XIAO -s. Në atë mënyrë rregullatori në bord 3.3v përdoret për të fuqizuar sensorin BMP388.

Hapi 5: Përpiloni pa një bootloader

Përpiloni pa një bootloader
Përpiloni pa një bootloader
Përpiloni pa një bootloader
Përpiloni pa një bootloader
  1. Gjeni skedarin tuaj boards.txt (për çfarëdo bordi që po përdorni).

    Në rastin tim, ajo ishte e vendosur këtu: C: / Users / AppData / Local / Arduino15 / paketat / Seeeduino / hardware / samd / 1.7.7 / boards.txt

  2. Kopjoni tabelën tuaj dhe riemëroni çelësin e parë për të specifikuar një version pa bootloader. Sapo shtova _nbl në emrin origjinal.

    • E vjetër: seeed_XIAO_m0
    • E re: seeed_XIAO_m0_nbl
  3. Ndryshoni vlerën.name:

    • E vjetër: seeed_XIAO_m0_nbl.name = Seeeduino XIAO
    • E re: seeed_XIAO_m0_nbl.name = Seeeduino XIAO Pa Bootloader
  4. Ndryshoni lidhësin të ndizet pa bootloader duke ndryshuar skriptin ld të ndërtuesit:

    • Vjetër: seeed_XIAO_m0_nbl.build.ldscript = linker_scripts/gcc/flash_with_bootloader.ld
    • E re: seeed_XIAO_m0_nbl.build.ldscript = linker_scripts/gcc/flash_with _bootloader.ld
  5. Rinisni Arduino IDE.
  6. Zgjidhni tabelën e re "Seeeduino XIAO No Bootloader" nga menyja e bordeve.
  7. Zgjidhni "Export Compiled Binary"
  8. Pasi të përpilohet, skedari.bin do të jetë në dosjen tuaj të projektit Arduino.

Hapi 6: Flash MCU Me J-Link

Flash MCU Me J-Link
Flash MCU Me J-Link
Flash MCU Me J-Link
Flash MCU Me J-Link
Flash MCU Me J-Link
Flash MCU Me J-Link

Adafruit ka një udhëzues fantastik për riprogramimin e një bootloader në një pajisje M0/M4. Në rastin tonë, ne duam të heqim qafe ngarkuesin, por funksionon në të njëjtën mënyrë.

learn.adafruit.com/how-to-program-samd-boo…

Pasi ta bëni këtë, nuk do të jeni në gjendje të ngarkoni kodin përmes USB. Ju mund të ndiqni udhëzuesin e mësipërm për të ndezur ngarkuesin përsëri në pajisje për të ngarkuar përsëri kodin përmes USB siç keni qenë në gjendje nga fabrika.

Udhëzuesi Adafruit është shumë i plotë, por këto janë hapat bazë:

  1. Telat e bluzave të ngjitura në pjesën e pasme të bordit XIAO.

    • Udhëzuesi Adafruit nuk tha që kunja RST në tabelën e daljes 2x5 duhej të lidhej me kunjin e rivendosjes në dërrasat Adafruit. Por për XIAO, më duhej të lidhesha me të katër pads në anën e pasme të tabelës.
    • Kunja VREF duhet të lidhet me kunjin XIAO 3.3v. Kjo i tregon korrigjuesit se logjika e pajisjes është 3.3v. Pa të, nëse zgjidhni opsionin e gabuar, mund të dëmtoni mikrokontrolluesin.
  2. Lidhni telat e kërcyesit me J-Link.
  3. Ndizni bordin XIAO me një kabllo USB.
  4. Hap Atmel Studio.
  5. Zgjidhni Tools Device Programming
  6. Zgjidhni bordin tuaj M0. Në këtë rast, ATSAMD21G18A
  7. Zgjidhni SWD.
  8. Lexoni konfigurimin nga objektivi.
  9. Nëse jeni duke përdorur EDU J-Link, pranoni kushtet e përdorimit (nëse i respektoni kushtet e përdorimit).
  10. Verifikoni që leximi i tensionit është i saktë në këndin e sipërm të djathtë. Nëse nuk është 3.3v, mund të thyeni bordin tuaj!
  11. Pastroni siguresën mbrojtëse të nisjes (vendosni madhësinë e ngarkuesit të ngarkuesit në 0 bajt), dhe më pas zgjidhni programin.
  12. Në seksionin e kujtimeve, zgjidhni skedarin tuaj.bin ose.hex të përpiluar dhe zgjidhni programin.

Xhirimi i problemeve:

Kur lexoni konfigurimin e pajisjes, nëse merrni një tension jashtë gabimit, atëherë sigurohuni që MCU të jetë i kyçur në energji dhe se kunja J-Link VREF është e lidhur me 3.3 volt

Hapi 7: Ripërpiloni pa kristalin e jashtëm

Ripërpiloni pa kristalin e jashtëm
Ripërpiloni pa kristalin e jashtëm

Bordi XIAO ka një kristal të jashtëm që kërkon një kohë të gjatë për të filluar. Marrësi Spektrum bën një zbulim të pajisjes në autobusin e telemetrisë 350 milisekonda pas fuqisë, kështu që ne duhet t'i themi përpiluesit që në vend të tij të përdorë oshilatorin e brendshëm i cili do ta bëjë nisjen gati të menjëhershme.

  1. Gjeni skedarin boards.txt që keni modifikuar më herët (po, mund t’ju ruaja këtë hap më herët, por ky ishte një proces mësimi për mua)
  2. Shtoni "-DCRYSTALLESS" në vargun sawed_XIAO_m0_nbl.build.extra_flags. Kjo do t'i tregojë përpiluesit të përdorë oshilatorin e brendshëm.
  3. Rilidhni kodin.
  4. Rishikoni përsëri MCU.
  5. Verifikoni që koha e fillimit është mjaft e shpejtë duke përdorur një oshiloskop.

Siç mund ta shihni nga fotografia, kanali i verdhë 1 është furnizimi me energji elektrike. Kanali cianik 2 është kunja e gatshme në mikrokontrollues. Rreth 10 milisekonda pas ndezjes, kanali dy tërhiqet lart nga mikrokontrolluesi që tregon se është në lakun e konfigurimit. Sapo të bëhet konfigurimi, MCU kodohet për të tërhequr pinin poshtë, duke treguar se lak kryesor po fillon. Shtrirja tregon se konfigurimi zgjat rreth 3 milisekonda. Në përgjithësi, mikrokontrolluesit duhen 13 milisekonda pas ndezjes për t'u bërë gati për të shkuar.

Recommended: