Агуулгын хүснэгт:

RC Plane Altimeter (Spektrum Telemetry -тэй нийцтэй): 7 алхам
RC Plane Altimeter (Spektrum Telemetry -тэй нийцтэй): 7 алхам

Видео: RC Plane Altimeter (Spektrum Telemetry -тэй нийцтэй): 7 алхам

Видео: RC Plane Altimeter (Spektrum Telemetry -тэй нийцтэй): 7 алхам
Видео: Spektrum Vario meter/altimeter setup 2024, Арваннэгдүгээр
Anonim
RC Plane Altimeter (Spektrum Telemetry -тэй нийцтэй)
RC Plane Altimeter (Spektrum Telemetry -тэй нийцтэй)

Би энэ өндөр хэмжигчийг хийсэн бөгөөд ингэснээр нисгэгч нь АНУ дахь RC нисэх онгоцны 400 футын хязгаарт багтаж байгааг мэдэж болно. Найз маань өөрийгөө үргэлж 400 фт -ээс бага гэж хэлж чадаагүй тул санаа зовж байсан бөгөөд телеметрийн өгөгдөл бүхий мэдрэгч өгөх болно гэсэн нэмэлт баталгааг хүссэн юм. Тийм ээ, та Spektrum -аас мэдрэгч худалдаж авах боломжтой, гэхдээ та энэ төслийг 20 доллараас бага үнээр таслах самбар ашиглан бүтээх боломжтой (үнийг нь аль хэдийн хөөрөгдсөн). Хэрэв танд J-link програмист байгаа бол үүнийг хэдхэн доллараар захиалгат самбар дээр хийж болно. Xbus протоколыг ойлгосныхоо дараа та бусад дэмжигдсэн мэдрэгчийг хийж болно! Гэхдээ би энэ төсөлд зөвхөн өндөр хэмжигчийг хамруулах болно …

Сэлбэгийн жагсаалт:

  • Би энэ төслийн хувьд Seeeduino XIAO микроконтроллерийн самбарыг маш жижигхэн ашиглаж байсан, энэ төсөлд маш их хүч чадал бүхий M0 процессор ашигладаг, I2C ба SPI хоёулаа хайрцгаас гарахад бэлэн, 3.3v логик ашигладаг тул түвшинг өөрчлөхгүй. шаардлагатай.

    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.3V логик хэрэгтэй болно гэдгийг харуулсан.

Хүлээн авагч нь төхөөрөмжийн хаягийг илгээдэг бөгөөд дараа нь 16 байтын хариуг хүлээж байна. Мэдээллийн хүснэгтэд янз бүрийн мэдрэгчийн бүтцийг харуулав. Бүтэц нь 16 байт урт биш байсан ч хүлээн авагч бүр 16 байтыг буцааж хүлээж байдаг.

Spektrum мэдээллийн хуудас:

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

Раймонд Домингогийн төсөл:

www.aerobtec.com/download/altisSpektrumInte…

Алхам 2: Тоног төхөөрөмжийг сонгоно уу

Тоног төхөөрөмжийг сонгоно уу
Тоног төхөөрөмжийг сонгоно уу
Тоног төхөөрөмжийг сонгоно уу
Тоног төхөөрөмжийг сонгоно уу
Тоног төхөөрөмжийг сонгоно уу
Тоног төхөөрөмжийг сонгоно уу

Би даралт хэмжих зорилгоор Adafruit -ийн BMP388 хавтанг ашигласан. Breakout нь I2C ба SPI -ийн тасалдлыг өгдөг бөгөөд 3.3v эсвэл 5v логик дээр ажилладаг. Адафрут үргэлж самбараа ашиглан гайхалтай ажил хийдэг тул би үүнийг худалдаж авсан. Миний Adafruit хавтан аль хэдийн ашиглагдаж байсан тул би оронд нь DFRobot Gravity BMP388 хавтанг ашигласан.

I2C хост төхөөрөмж нь 3.3v логик ашигладаг тул надад 3.3V микроконтроллер хэрэгтэй байсан бөгөөд үүнийг жижигхэн байлгахыг хүссэн юм. Би 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 altimeter хаягаар (0x12) хариу өгөхөөр тохируулна уу.
  • BMP388 барометрийг SPI -ээр уншина уу.
  • Хүлээн авагчаас I2C хүсэлт өгөгдлийг гэмтээхгүйн тулд өгөгдлийг хоёр өөр буферт хадгална уу. Энэ нь хүлээн авагч руу илгээсэн өгөгдөл үргэлж бүрэн байгаа эсэхийг баталгаажуулдаг.
  • Өндөр хэмжигчийг тэглэх товчлуурыг ашиглана.

Дэлгэрэнгүй мэдээлэл, кодын анализыг видеог үзнэ үү.

Алхам 4: Цахилгаан хэлхээг утсаар холбоно уу

Цахилгаан хэлхээг утсаар холбоно уу
Цахилгаан хэлхээг утсаар холбоно уу
Цахилгаан хэлхээг утсаар холбоно уу
Цахилгаан хэлхээг утсаар холбоно уу
Цахилгаан хэлхээг утсаар холбоно уу
Цахилгаан хэлхээг утсаар холбоно уу
Цахилгаан хэлхээг утсаар холбоно уу
Цахилгаан хэлхээг утсаар холбоно уу

Би протобоард ашигладаг байсан, гэхдээ хэрэв та тусгайлан тээрэмдсэн хавтанг бүтээхэд цаг зарцуулахыг хүсч байвал хэлхээг илүү цэвэрхэн болгож чадна.

Би JST-XH холбогчийг XIAO-ийн I2C тээглүүрт холбосон. Хүлээн авагч нь 5 вольтыг телеметрийн автобусанд гаргадаг тул автобуснаас гарсан эерэг зүйл нь XIAO -ийн VCC зүү рүү очдог. Тиймээс BMP388 мэдрэгчийг асаахад 3.3v зохицуулагчийг ашигладаг.

Алхам 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. Нэрийн утгыг өөрчлөх:

    • Хуучин: 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 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. Tools Device Programming -ийг сонгоно уу
  6. M0 самбараа сонгоно уу. Энэ тохиолдолд ATSAMD21G18A
  7. SWD -ийг сонгоно уу.
  8. Зорилтоос тохиргоог уншина уу.
  9. Хэрэв та EDU J-Link ашиглаж байгаа бол ашиглалтын нөхцлийг зөвшөөрч (хэрэв та ашиглалтын нөхцлийг дагаж мөрдөж байгаа бол).
  10. Баруун дээд буланд байгаа хүчдэлийн уншилт зөв эсэхийг шалгаарай. Хэрэв 3.3v биш бол та самбараа эвдэж болно!
  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 миллисекунд шаардагдана.

Зөвлөмж болгож буй: