Мазмұны:

RC Plane Altimeter (Spektrum телеметриясымен үйлесімді): 7 қадам
RC Plane Altimeter (Spektrum телеметриясымен үйлесімді): 7 қадам

Бейне: RC Plane Altimeter (Spektrum телеметриясымен үйлесімді): 7 қадам

Бейне: RC Plane Altimeter (Spektrum телеметриясымен үйлесімді): 7 қадам
Бейне: Spektrum Vario meter/altimeter setup 2024, Шілде
Anonim
RC Plane Altimeter (Spektrum телеметриясымен үйлесімді)
RC Plane Altimeter (Spektrum телеметриясымен үйлесімді)

Мен бұл биіктікті өлшегіш жасадым, сондықтан ұшқыш олардың АҚШ -тағы RC ұшақтарының 400 футтық шегінде екенін білуі мүмкін. Менің досым алаңдаушылық білдірді, өйткені ол әрқашан 400 футтан төмен екенін нақты айта алмады және телеметриялық деректері бар сенсор беретініне сенімділікті алғысы келді. Иә, сенсорды Spektrum -дан сатып алуға болады, бірақ сіз бұл жобаны 20 доллардан аз сомаға сынғыш тақталармен құра аласыз (олар қазірдің өзінде бағасы көтерілген). Егер сізде J-link бағдарламашысы болса, оны бірнеше долларға арнайы тақтаға құрастыруға болады. Xbus протоколын түсінгеннен кейін айтуға болмайды, сіз басқа қолдау көрсетілетін сенсорларды жасай аласыз! Бірақ мен бұл жобада тек биіктікті өлшейтін боламын …

Бөлшектер тізімі:

  • Мен бұл жоба үшін Seeeduino XIAO микроконтроллер тақтасын қолдандым, себебі ол өте кішкентай, бұл жоба үшін қуаты мол M0 процессоры қолданылады, қораптан шығуға дайын I2C де, SPI де бар, 3.3в логикасын да қолданады, сондықтан деңгейдің ауысуы болмайды. талап етіледі.

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

  • Ауа қысымын сезу үшін мен Adafruit -тен BMP388 сынғыш тақтасын сатып алдым. Тақтада I2C де, SPI де ажыратылған, олар 3.3v немесе 5v логикасында жұмыс істей алады.

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

  • Электр тізбегін қосуға арналған тақта
  • Дәнекерлеуші/дәнекерленген темір
  • Мен сенсорды/микроконтроллерді оңай ажырату үшін ерлер мен әйелдердің түйреуіш тақырыптары.
  • Кішкене түйме. Мен мұны бастапқы биіктікті қалпына келтіру үшін қолданамын.
  • Түймені басу үшін 10 к резистор.
  • Spektrum қабылдағышының телеметриялық портына қосылатын JST-XH 4 істікшелі аналық қосқыш
  • SEGGER J-Link EDU бағдарламашысы жүктеушісіз M0 жарқылын шығарады.

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

  • Adafruit SWD 10 істікшелі тақта

    www.adafruit.com/product/2743

Жабдықтар

  • Мен сондай -ақ 3D биіктік өлшегішіме арналған шағын корпусты басып шығардым, бірақ бұл қажет емес.
  • Осциллограф- Егер сізде жоқ болса, мен оны ұсынамын:

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

1 -қадам: Spektrum телеметриялық хаттамасын үйреніңіз

Spektrum телеметриялық хаттамасын біліңіз
Spektrum телеметриялық хаттамасын біліңіз
Spektrum телеметриялық хаттамасын біліңіз
Spektrum телеметриялық хаттамасын біліңіз
Spektrum телеметриялық хаттамасын біліңіз
Spektrum телеметриялық хаттамасын біліңіз

Мұны көбіне мен үшін Раймонд Доминго жасады. Олар қазірдің өзінде Spektrum -мен үйлесімді биіктік өлшегіш жасады, сондықтан бастапқы кодты ұстану шынымен көмектесті. Қалған бос орындарды Spektrum телеметриясының деректер кестесі толтырды. Деректер деңгейін ресиверден өлшеу маған 3.3в логика қажет екенін көрсетті.

Ресивер құрылғының адресін жібереді, содан кейін 16 байтты жауап күтеді. Мәліметтер кестесінде әр түрлі сенсорлардың құрылымдары көрсетілген. Құрылымның ұзындығы 16 байт болмаса да, қабылдағыш әр уақытта 16 байтты күтеді.

Spektrum мәліметтер парағы:

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

Раймонд Доминго жобасы:

www.aerobtec.com/download/altisSpektrumInte…

2 -қадам: Жабдықты таңдаңыз

Аппараттық құралдарды таңдаңыз
Аппараттық құралдарды таңдаңыз
Аппараттық құралдарды таңдаңыз
Аппараттық құралдарды таңдаңыз
Аппараттық құралдарды таңдаңыз
Аппараттық құралдарды таңдаңыз

Мен қысымды сезу үшін Adafruit BMP388 сынғыш тақтасын қолдандым. Үзіліс I2C және SPI үзілуін қамтамасыз етеді және 3.3v немесе 5v логикасында жұмыс істейді. Adafruit әрқашан өздерінің тақталарымен керемет жұмыс жасайды, сондықтан мен оны сатып алдым. Мен оның орнына DFRobot Gravity BMP388 тақтасын қолдандым, өйткені менің Adafruit тақтасы бұрыннан қолданыста болған.

I2C хост құрылғысы 3.3v логикасын қолданатынын ескере отырып, маған 3.3в микроконтроллер қажет болды, мен оның кішкентай болғанын қалаймын. Мен Adafruit Trinket M0 қолданатын болдым, бірақ олар салыстырмалы түрде қымбат және көп түйреуіштері жоқ. Содан кейін мен Seeeduino XIAO тақтасын таптым. Бұл USB-C қосқышы бар I2C де, SPI де дайын M0 тақтасы. Сонымен қатар, бұл өте кішкентай! Жалпы маған бұл тақта өте ұнайды (баяу кристалл мені анықтау үшін мәңгіге қажет болса да).

Spektrum біз қабылдайтын «Xbus» портына арналған ресиверде JST-XH өлшемді 4 істікшелі коннекторды қолданады. Мен биіктіктегі 4 істікшелі JST-XH аналық штепсельді қолдандым және ол өте жақсы жұмыс істеді.

3 -қадам: бағдарламалық қамтамасыз етуді жазу

Мен барлық кодты жазу үшін Arduino IDE қолдандым. Мен Spektrum телеметрия хаттамасын олардың мәліметтер кестесінен көшіріп, оны Arduino кітапханасына қостым. Adafruit -те әрқашан үзілістерге арналған жақсы кітапханалар болғандықтан, мен BMP3XX кітапханасын BMP388 сенсоры үшін қолдандым.

Менің дизайнымның негізгі ерекшеліктері:

  • I2C -ді клиенттік құрылғы ретінде әрекет етуге және Spektrum биіктік өлшегішінің мекен -жайына (0x12) жауап беретін етіп орнатыңыз.
  • BMP388 барометрін SPI арқылы оқыңыз.
  • Биіктік деректерін ресиверден I2C сұранысы деректерді бүлдірмеуі үшін екі түрлі буферде сақтаңыз және деректерді алу кезінде екі буфер арасында ауысады. Бұл ресиверге жіберілетін деректердің әрқашан толық болуын қамтамасыз етеді.
  • Альтиметрді нөлге келтіру батырмасын қолданады.

Қосымша мәліметтер мен кодты талдау үшін бейнені қараңыз.

4 -қадам: тізбекті сыммен қосыңыз

Электр тізбегіне сым
Электр тізбегіне сым
Электр тізбегіне сым
Электр тізбегіне сым
Электр тізбегіне сым
Электр тізбегіне сым
Электр тізбегіне сым
Электр тізбегіне сым

Мен протободы қолдандым, бірақ егер сіз арнайы фрезерленген тақтаны жобалауға уақыт бөлгіңіз келсе, сіз тізбекті әлдеқайда таза ете аласыз.

Мен JST-XH коннекторын XIAO I2C түйреуіштеріне қостым. Ресивер 5 вольтты телеметриялық шинаға шығаратындықтан, автобустың оң мәні XIAO -ның VCC түйреуішіне түсті. Осылайша, BMP388 сенсорына қуат беру үшін борттық 3.3В реттегіші қолданылады.

5 -қадам: Жүктеушісіз компиляция

Жүктеушісіз компиляция
Жүктеушісіз компиляция
Жүктеушісіз компиляция
Жүктеушісіз компиляция
  1. Board.txt файлын табыңыз (сіз қолданатын кез келген тақта үшін).

    Менің жағдайда ол мына жерде болды: C: / Users / AppData / Local / Arduino15 / packages / Seeeduino / hardware / samd / 1.7.7 / board.txt

  2. Тақтаны көшіріп, жүктеуші жоқ нұсқасын көрсету үшін бірінші кілттің атын өзгертіңіз. Мен бастапқы атауына _nbl қостым.

    • Ескі: seeed_XIAO_m0
    • Жаңа: seeed_XIAO_m0_nbl
  3. . Name мәнін өзгертіңіз:

    • Ескі: seeed_XIAO_m0_nbl.name = Seeeduino XIAO
    • Жаңа: seeed_XIAO_m0_nbl.name = Seeeduino XIAO жүктеушісі жоқ
  4. Құрастырушы ld сценарийін өзгерту арқылы сілтемені жүктеушісіз жыпылықтауға өзгертіңіз:

    • Ескі: seeed_XIAO_m0_nbl.build.ldscript = linker_scripts/gcc/flash_with_bootloader.ld
    • Жаңа: seeed_XIAO_m0_nbl.build.ldscript = linker_scripts/gcc/flash_with _bootloader.ld
  5. Arduino IDE қайта іске қосыңыз.
  6. Тақталар мәзірінен жаңа «Seeeduino XIAO No Bootloader» тақтасын таңдаңыз.
  7. «Жиналған екілік файлды экспорттауды» таңдаңыз
  8. Жиналғаннан кейін.bin файлы Arduino жобасының қалтасында болады.

6-қадам: J-Link бар Flash MCU

J-Link бар Flash MCU
J-Link бар Flash MCU
J-Link бар Flash MCU
J-Link бар Flash MCU
J-Link бар Flash MCU
J-Link бар Flash MCU

Adafruit M0/M4 құрылғысында жүктеушіні қайта бағдарламалау бойынша керемет нұсқаулыққа ие. Біздің жағдайда біз жүктеушіден құтылғымыз келеді, бірақ ол дәл осылай жұмыс істейді.

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

Мұны жасағаннан кейін сіз USB арқылы кодты жүктей алмайсыз. Сіз жүктеушіні құрылғыға қайта қосу үшін жоғарыдағы нұсқаулықты орындап, кодты зауыттан шығарғандай USB арқылы жүктей аласыз.

Adafruit нұсқаулығы өте мұқият, бірақ бұл негізгі қадамдар:

  1. XIAO тақтасының артқы жағындағы дәнекерлеу сымдары.

    • Adafruit нұсқаулығы 2x5 ажырату тақтасындағы RST түйреуішін Adafruit тақталарындағы қалпына келтіру түйреуішіне қосу қажет деп айтқан жоқ. Бірақ XIAO үшін маған тақтаның артқы жағындағы барлық төрт жастықшаны қосу керек болды.
    • VREF түйреуішін XIAO 3.3v істігіне қосу керек. Бұл отладчикке құрылғы логикасы 3.3v екенін көрсетеді. Онсыз дұрыс емес опцияны таңдасаңыз, микроконтроллерді зақымдауы мүмкін.
  2. Өткізгіш сымдарды J-Link желісіне қосыңыз.
  3. USB кабелімен XIAO тақтасын қосыңыз.
  4. Atmel студиясын ашыңыз.
  5. Құрылғыларды бағдарламалау құралдарын таңдаңыз
  6. M0 тақтасын таңдаңыз. Бұл жағдайда ATSAMD21G18A
  7. SWD таңдаңыз.
  8. Конфигурацияны мақсаттан оқыңыз.
  9. Егер сіз EDU J-Link қолдансаңыз, пайдалану шарттарымен келісіңіз (егер сіз пайдалану шарттарына бағынатын болсаңыз).
  10. Жоғарғы оң жақ бұрыштағы кернеудің дұрыс екенін тексеріңіз. Егер ол 3.3в болмаса, сіз тақтаны сындыра аласыз!
  11. Жүктеу қорғанысының сақтандырғышын тазалаңыз (жүктеуші өлшемін 0 байтқа орнатыңыз), содан кейін бағдарламаны таңдаңыз.
  12. Жадтар бөлімінде құрастырылған.bin немесе.hex файлын таңдап, бағдарламаны таңдаңыз.

Ақаулық себебін іздеу және түзету:

Құрылғы конфигурациясын оқығанда, егер сіз кернеу ауқымынан тыс қате алсаңыз, MCU қуат көзіне қосылғанын және J-Link VREF түйреуішінің 3,3 вольтке қосылғанын тексеріңіз

7 -қадам: Сыртқы кристаллсыз қайта құрастырыңыз

Сыртқы кристаллсыз қайта құрастырыңыз
Сыртқы кристаллсыз қайта құрастырыңыз

XIAO тақтасында сыртқы кристалл бар, оны іске қосу ұзақ уақытты алады. Spektrum қабылдағышы телеметриялық шинада құрылғыны ашқаннан кейін 350 миллисекунд ішінде табады, сондықтан біз компиляторға ішкі осцилляторды қолдануды айтуға тиіспіз, бұл іске қосуды дереу жасайды.

  1. Бұрын өзгертілген board.txt файлын табыңыз (иә, мен сізді бұл қадамды ертерек сақтаған болар едім, бірақ бұл мен үшін оқу процесі болды)
  2. Seeed_XIAO_m0_nbl.build.extra_flags жолына «-DCRYSTALLESS» қосыңыз. Бұл компиляторға ішкі осцилляторды қолдануға нұсқау береді.
  3. Кодты қайта құрастырыңыз.
  4. MCU қайта жыпылықтаңыз.
  5. Осциллограф көмегімен іске қосу уақытының жеткілікті жылдам екенін тексеріңіз.

Суреттен көріп тұрғаныңыздай, сары арна 1 - қуат көзі. Көгілдір арна 2 - микроконтроллердегі дайын түйреуіш. Қосылғаннан кейін шамамен 10 миллисекундтан кейін екінші арна микроконтроллермен жоғары тартылады, бұл оның орнату циклінде екенін көрсетеді. Орнату аяқталғаннан кейін, MCU түйреуішті төмен түсіру үшін кодталады, бұл негізгі цикл басталғанын көрсетеді. Қолдану ауқымы шамамен 3 миллисекундқа созылатынын көрсетеді. Жалпы алғанда, микроконтроллер іске қосылғаннан кейін 13 миллисекунд алады.

Ұсынылған: