Orodha ya maudhui:

RC Plane Altimeter (inayoendana na Spektrum Telemetry): Hatua 7
RC Plane Altimeter (inayoendana na Spektrum Telemetry): Hatua 7

Video: RC Plane Altimeter (inayoendana na Spektrum Telemetry): Hatua 7

Video: RC Plane Altimeter (inayoendana na Spektrum Telemetry): Hatua 7
Video: Estes Model Rocket Altimeter test in my RC airplane. 2024, Novemba
Anonim
RC Plane Altimeter (inayoendana na Spektrum Telemetry)
RC Plane Altimeter (inayoendana na Spektrum Telemetry)

Nilitengeneza altimeter hii ili rubani ajue kuwa wako chini ya kikomo cha miguu 400 kwenye ndege za RC huko Merika. Rafiki yangu alikuwa na wasiwasi kwani hakuweza kusema kwa hakika kuwa alikuwa chini ya futi 400 kila wakati, na alitaka hakikisho lililoongezwa kuwa sensa yenye data ya telemetry itatoa. Ndio, unaweza kununua sensorer kutoka Spektrum, lakini unaweza kujenga mradi huu chini ya $ 20 na bodi za kuzuka (ambazo tayari zimepandishwa bei). Ikiwa tayari unayo programu ya J-link, unaweza kuijenga kwenye bodi maalum kwa dola chache. Bila kusahau mara tu utakapoelewa itifaki ya Xbus, unaweza kutengeneza sensorer nyingine yoyote inayoungwa mkono! Lakini nitashughulikia altimeter tu katika mradi huu…

Orodha ya sehemu:

  • Nilitumia bodi ya kudhibiti microcontroller ya Seeeduino XIAO kwa mradi huu kwani ni ndogo, hutumia processor ya M0 ambayo ina nguvu nyingi kwa mradi huu, ina I2C na SPI tayari kutoka nje ya sanduku, na hutumia mantiki 3.3v kwa hivyo hakuna mabadiliko ya kiwango ni inahitajika.

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

  • Kwa kuhisi shinikizo la hewa, nilinunua bodi ya kuzuka ya BMP388 kutoka Adafruit. Bodi imevunjika I2C na SPI, na inaweza kufanya kazi kwa mantiki 3.3v au 5v.

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

  • Protoboard ya kuunganisha nyaya
  • Solder / chuma cha kutengeneza
  • Vichwa vya pini vya kiume / kike ili niweze kutenganisha kwa urahisi sensor / microcontroller.
  • Kitufe kidogo. Ninatumia hii kuweka upya urefu wa kuanzia.
  • 10k resistor kwa kuvuta-chini kwenye kifungo.
  • JST-XH 4 pini kontakt ya kike ili kuziba kwenye bandari ya telemetry ya mpokeaji wa Spektrum
  • Programu ya SEGGER J-Link EDU kuwasha M0 bila bootloader.

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

  • Adafruit SWD bodi ya kuzuka kwa pini 10

    www.adafruit.com/product/2743

Vifaa

  • Mimi pia 3D nilichapisha kiunga kidogo cha altimeter yangu, lakini hii haihitajiki.
  • Oscilloscope - Ikiwa hauna moja, ninapendekeza hii:

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

Hatua ya 1: Jifunze Itifaki ya Telemetry ya Spektrum

Jifunze Itifaki ya Telemetry ya Spektrum
Jifunze Itifaki ya Telemetry ya Spektrum
Jifunze Itifaki ya Telemetry ya Spektrum
Jifunze Itifaki ya Telemetry ya Spektrum
Jifunze Itifaki ya Telemetry ya Spektrum
Jifunze Itifaki ya Telemetry ya Spektrum

Hii nilifanywa zaidi na Raymond Domingo. Walikuwa tayari wamefanya altimeter inayoendana na Spektrum, kwa hivyo kufuata nambari hiyo ya chanzo kulisaidia sana. Takwimu ya data ya telemetry ya Spektrum ilijaza mapungufu yote. Kupima viwango vya data kutoka kwa mpokeaji ilionyesha kuwa ningehitaji mantiki 3.3v.

Mpokeaji hutuma anwani ya kifaa, halafu anatarajia jibu la 16-byte. Jedwali linaonyesha miundo ya sensorer anuwai. Hata kama muundo sio baiti 16 kwa muda mrefu, mpokeaji anatarajia ka 16 kila wakati.

Hati ya data ya Spektrum:

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

Mradi wa Raymond Domingo:

www.aerobtec.com/download/altisSpektrumInte…

Hatua ya 2: Chagua vifaa

Chagua vifaa
Chagua vifaa
Chagua vifaa
Chagua vifaa
Chagua vifaa
Chagua vifaa

Nilitumia bodi ya kuzuka ya BMP388 kutoka Adafruit kwa kuhisi shinikizo. Kuzuka hutoa kuzuka kwa I2C na SPI, na hufanya kazi kwa mantiki 3.3v au 5v. Adafruit daima hufanya kazi ya kushangaza na bodi zao za kuzuka, kwa hivyo nilinunua. Nilitumia bodi ya DFRobot Gravity BMP388 badala yake katika jengo langu kwani bodi yangu ya Adafruit ilikuwa tayari inatumika.

Kwa kuwa kifaa cha I2C cha mwenyeji kinatumia mantiki 3.3v, nilihitaji mdhibiti mdogo wa 3.3v, na nilitaka iwe ndogo. Nilikuwa nitatumia Adafruit Trinket M0, lakini ni ghali sana, na hazina pini nyingi sana zilizovunjika. Kisha nikapata bodi ya Seeeduino XIAO. Ni bodi ya M0 na I2C na SPI ziko tayari kwenda, na kiunganishi cha USB-C. Pia, ni ndogo sana! Kwa ujumla napenda sana bodi hii (hata kama kioo cha kuanza polepole kilinichukua milele kujua).

Spektrum hutumia kontakt ya kiume ya JST-XH ya ukubwa wa pini 4 kwenye kipokeaji cha bandari ya "Xbus" ambayo tutagonga. Nilitumia kuziba-kike 4-pin JST-XH kwenye altimeter na ilifanya kazi kikamilifu.

Hatua ya 3: Andika Programu

Nilitumia Arduino IDE kuandika nambari yote. Nilinakili itifaki ya telemetry ya Spektrum nje ya data yao na kuiongeza kwenye maktaba yangu ya Arduino. Kwa kuwa Adafruit daima huwa na maktaba nzuri kwa kuzuka kwao, nilitumia maktaba yao ya BMP3XX kwa sensorer ya BMP388.

Njia kuu kutoka kwa muundo wangu ni:

  • Sanidi I2C ili kuishi kama kifaa cha mteja na kujibu anwani ya Spektrum altimeter (0x12).
  • Soma barometer ya BMP388 kupitia SPI.
  • Hifadhi data ya mwinuko katika bafa mbili tofauti ili ombi la I2C kutoka kwa mpokeaji lisiharibu data, na ubadilishe kati ya bafa mbili wakati wa kuleta data. Hii inahakikisha kuwa data iliyotumwa kwa mpokeaji imekamilika kila wakati.
  • Inatumia kitufe kuzima altimeter.

Kwa maelezo zaidi na uchambuzi wa nambari, angalia video.

Hatua ya 4: Funga Mzunguko

Waya Mzunguko
Waya Mzunguko
Waya Mzunguko
Waya Mzunguko
Waya Mzunguko
Waya Mzunguko
Waya Mzunguko
Waya Mzunguko

Nilikuwa nikiandika protoboard, lakini ikiwa unataka kuchukua wakati wa kubuni bodi ya milled ya kawaida, unaweza kufanya mzunguko kuwa safi zaidi.

Niliunganisha kiunganishi cha JST-XH kwenye pini za XIAO za I2C. Kwa kuwa mpokeaji hutoa volts 5 kwa basi ya telemetry, chanya kutoka kwa basi ilienda kwa pini ya XIAO ya VCC. Kwa njia hiyo mdhibiti wa 3.3v hutumika kuwezesha sensa ya BMP388.

Hatua ya 5: Jumuisha bila Bootloader

Jumuisha bila Bootloader
Jumuisha bila Bootloader
Jumuisha bila Bootloader
Jumuisha bila Bootloader
  1. Pata faili yako ya board.txt (kwa bodi yoyote unayotumia).

    Kwa upande wangu, ilikuwa hapa: C: Watumiaji / AppData / Mitaa / Arduino15 / vifurushi / Seeeduino / vifaa / samd / 1.7.7 / board.txt

  2. Nakili bodi yako, na ubadilishe jina kitufe cha kwanza kutaja toleo la bootloader. Nimeongeza tu _nbl kwa jina asili.

    • Ya zamani: seeed_XIAO_m0
    • Mpya: seeed_XIAO_m0_nbl
  3. Badilisha thamani ya jina.

    • Ya zamani: seeed_XIAO_m0_nbl.name = Seeeduino XIAO
    • Mpya: seeed_XIAO_m0_nbl.name = Seeeduino XIAO Hakuna Bootloader
  4. Rekebisha kiunganishi ili kuangaza bila bootloader kwa kubadilisha hati ya wajenzi ld:

    • Ya zamani: seeed_XIAO_m0_nbl.build.ldscript = linker_scripts / gcc / flash_with_bootloader.ld
    • Jipya:
  5. Anza tena IDE ya Arduino.
  6. Chagua bodi mpya ya "Seeeduino XIAO No Bootloader" kutoka kwa menyu ya bodi.
  7. Chagua "Hamisha Jumuia iliyojumuishwa"
  8. Mara baada ya kukusanywa, faili ya.bin itakuwa kwenye folda yako ya mradi wa Arduino.

Hatua ya 6: Flash MCU na J-Link

Flash MCU Pamoja na J-Link
Flash MCU Pamoja na J-Link
Flash MCU Pamoja na J-Link
Flash MCU Pamoja na J-Link
Flash MCU Pamoja na J-Link
Flash MCU Pamoja na J-Link

Adafruit ina mwongozo mzuri juu ya kupanga upya bootloader kwenye kifaa cha M0 / M4. Kwa upande wetu, tunataka kujiondoa bootloader, lakini inafanya kazi kwa njia ile ile.

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

Mara tu unapofanya hivi, hautaweza kupakia nambari kupitia USB. Unaweza kufuata mwongozo hapo juu kuwasha bootloader tena kwenye kifaa kupakia nambari kupitia USB tena kama vile uliweza kutoka kiwandani.

Mwongozo wa Adafruit ni kamili, lakini hizi ni hatua za msingi:

  1. Solder jumper waya nyuma ya bodi ya XIAO.

    • Mwongozo wa Adafruit haukusema pini ya RST kwenye bodi ya kuzuka ya 2x5 inahitajika kuunganishwa na pini ya kuweka upya kwenye bodi za Adafruit. Lakini kwa XIAO, nilihitaji kuungana na pedi zote nne nyuma ya ubao.
    • Pini ya VREF inahitaji kushikamana na pini ya XIAO 3.3v. Hii inamwambia mtatuaji kuwa mantiki ya kifaa ni 3.3v. Bila hiyo, ukichagua chaguo lisilofaa, unaweza kuharibu mdhibiti mdogo.
  2. Unganisha waya za kuruka kwenye J-Link.
  3. Nguvu kwenye ubao wa XIAO na kebo ya USB.
  4. Fungua Studio ya Atmel.
  5. Chagua Usanidi wa Vifaa vya Zana
  6. Chagua bodi yako ya M0. Katika kesi hii, ATSAMD21G18A
  7. Chagua SWD.
  8. Soma usanidi kutoka kwa lengo.
  9. Ikiwa unatumia EDU J-Link, kubali masharti ya matumizi (ikiwa unatii sheria na matumizi).
  10. Thibitisha kuwa kusoma katika voltage ni sahihi kwenye kona ya juu ya mkono wa kulia. Ikiwa sio 3.3v, unaweza kuvunja bodi yako!
  11. Futa fuse ya kulinda boot (weka saizi ya bootloader kwa baiti 0), kisha uchague programu.
  12. Katika sehemu ya kumbukumbu, chagua faili yako iliyokusanywa ya.bin au.hex, na uchague mpango.

Utatuzi wa shida:

Unaposoma usanidi wa kifaa, ikiwa unapata voltage kutoka kwa hitilafu anuwai, basi hakikisha kuwa MCU imechomekwa kwa nguvu na kwamba pini ya J-Link VREF imeunganishwa na volts 3.3

Hatua ya 7: Rudisha bila Kioo cha nje

Kurudisha bila Kioo cha nje
Kurudisha bila Kioo cha nje

Bodi ya XIAO ina fuwele ya nje ambayo inachukua muda mrefu kuanza. Mpokeaji wa Spektrum hufanya ugunduzi wa kifaa kwenye basi ya telemetry milliseconds 350 baada ya nguvu, kwa hivyo tunahitaji kumwambia mkusanyaji atumie oscillator ya ndani badala yake ambayo itafanya kuanza karibu mara moja.

  1. Pata faili ya board.txt ambayo umebadilisha hapo awali (ndio, ningekuokoa hatua hii mapema, lakini hii ilikuwa mchakato wa kujifunza kwangu)
  2. Ongeza "-DCRYSTALLESS" kwenye kamba ya kuona_XIAO_m0_nbl.build.extra_flags. Hii itamwambia mkusanyaji atumie oscillator ya ndani.
  3. Sasisha nambari.
  4. Onyesha tena MCU.
  5. Thibitisha wakati wa kuanza ni haraka vya kutosha kutumia oscilloscope.

Kama unavyoona kutoka kwenye picha, kituo cha manjano 1 ni usambazaji wa umeme. Kituo cha cyan 2 ni pini iliyo tayari kwenye microcontroller. Karibu milliseconds 10 baada ya nguvu-up, kituo cha pili kinavutwa juu na microcontroller ambayo inaonyesha iko kwenye kitanzi cha usanidi. Mara baada ya usanidi kufanywa, MCU imewekwa nambari ili kuvuta pini chini, ikionyesha kitanzi kuu kinaanza. Upeo unaonyesha kuwa usanidi unachukua karibu milisekunde 3. Kwa jumla mdhibiti mdogo huchukua millisekunde 13 baada ya kuongeza nguvu kuwa tayari kwenda.

Ilipendekeza: