Агуулгын хүснэгт:
- Хангамж
- Алхам 1: Spektrum телеметрийн протоколыг сурах
- Алхам 2: Тоног төхөөрөмжийг сонгоно уу
- Алхам 3: Програм хангамж бичих
- Алхам 4: Цахилгаан хэлхээг утсаар холбоно уу
- Алхам 5: Ачаалагчгүйгээр хөрвүүлэх
- Алхам 6: J-Link бүхий Flash MCU
- Алхам 7: Гадаад болоргүйгээр дахин хөрвүүлэх
Видео: RC Plane Altimeter (Spektrum Telemetry -тэй нийцтэй): 7 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:00
Би энэ өндөр хэмжигчийг хийсэн бөгөөд ингэснээр нисгэгч нь АНУ дахь 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 телеметрийн мэдээллийн хуудас нь үлдсэн цоорхойг бөглөсөн болно. Мэдээллийн түвшинг хүлээн авагчаас хэмжих нь надад 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: Ачаалагчгүйгээр хөрвүүлэх
-
Өөрийн board.txt файлыг олоорой (ямар самбар ашиглаж байгаа бол).
Миний хувьд энэ нь энд байсан: C: / Users / AppData / Local / Arduino15 / packages / Seeeduino / hardware / samd / 1.7.7 / board.txt
-
Самбараа хуулж, ачаалагчгүй хувилбарыг зааж өгөхийн тулд эхний түлхүүрийн нэрийг өөрчилнө үү. Би зүгээр л анхны нэр дээрээ _nbl -ийг нэмсэн.
- Хуучин: seeed_XIAO_m0
- Шинэ: seeed_XIAO_m0_nbl
-
Нэрийн утгыг өөрчлөх:
- Хуучин: seeed_XIAO_m0_nbl.name = Seeeduino XIAO
- Шинэ: seeed_XIAO_m0_nbl.name = Seeeduino XIAO ачаалагчгүй
-
Үүсгэгч 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
- Arduino IDE -ийг дахин эхлүүлнэ үү.
- Самбаруудын цэснээс шинэ "Seeeduino XIAO Bootloader байхгүй" самбарыг сонгоно уу.
- "Эмхэтгэсэн хоёртын файлыг экспортлох" -ыг сонгоно уу.
- Хөрвүүлсний дараа.bin файл нь таны Arduino төслийн хавтсанд байх болно.
Алхам 6: J-Link бүхий Flash MCU
Adafruit нь M0/M4 төхөөрөмж дээр ачаалагчийг дахин програмчлах гайхалтай гарын авлагатай. Манай тохиолдолд бид ачаалагчийг устгахыг хүсч байгаа боловч энэ нь ижил аргаар ажилладаг.
learn.adafruit.com/how-to-program-samd-boo…
Үүнийг хийсний дараа та USB -ээр код оруулах боломжгүй болно. Та дээрх зааврыг дагаж ачаалагчийг төхөөрөмж рүү буцааж асааж, кодыг USB -ээр дамжуулан үйлдвэрээс дахин ачаалж болно.
Adafruit -ийн гарын авлага нь маш нарийн боловч эдгээр нь үндсэн алхамууд юм.
-
XIAO хавтангийн арын хэсэгт гагнуурын холбогч утас.
- Adafruit хөтөч нь 2x5 хэмжээтэй самбар дээрх RST зүүг Adafruit самбар дээрх дахин тохируулах зүүтэй холбох шаардлагатай гэж хэлээгүй. Гэхдээ XIAO -ийн хувьд би самбарын ард байрлах дөрвөн дэвсгэртийг холбох шаардлагатай болсон.
- VREF зүүг XIAO 3.3v зүүтэй холбох шаардлагатай. Энэ нь төхөөрөмжийн логик нь 3.3v байна гэж дибаг хийгчид хэлдэг. Үүнгүйгээр хэрэв та буруу сонголтыг сонговол микроконтроллерыг гэмтээж болзошгүй юм.
- Холбогч утсыг J-Link руу холбоно уу.
- USB кабелиар XIAO самбарыг асаана уу.
- Atmel студийг нээнэ үү.
- Tools Device Programming -ийг сонгоно уу
- M0 самбараа сонгоно уу. Энэ тохиолдолд ATSAMD21G18A
- SWD -ийг сонгоно уу.
- Зорилтоос тохиргоог уншина уу.
- Хэрэв та EDU J-Link ашиглаж байгаа бол ашиглалтын нөхцлийг зөвшөөрч (хэрэв та ашиглалтын нөхцлийг дагаж мөрдөж байгаа бол).
- Баруун дээд буланд байгаа хүчдэлийн уншилт зөв эсэхийг шалгаарай. Хэрэв 3.3v биш бол та самбараа эвдэж болно!
- Ачаалах хамгаалалтын гал хамгаалагчийг цэвэрлээд (ачаалагч ачаалагчийн хэмжээг 0 байтаар тохируулна уу), дараа нь програмыг сонгоно уу.
- Санах ойн хэсэгт эмхэтгэсэн.bin эсвэл.hex файлаа сонгоод програмаа сонгоно уу.
Алдааг олж засварлах:
Төхөөрөмжийн тохиргоог уншихад хэрэв та хүчдэлийн хязгаараас хэтэрсэн алдааг олж авбал MCU-ийг цахилгаан тэжээлд залгасан эсэх, J-Link VREF зүү 3.3 вольтод холбогдсон эсэхийг шалгаарай
Алхам 7: Гадаад болоргүйгээр дахин хөрвүүлэх
XIAO самбар нь гаднах болортой бөгөөд үүнийг эхлүүлэхэд удаан хугацаа шаардагддаг. Spektrum хүлээн авагч нь цахилгаан гүйдэл асаахад 350 миллисекундын дараа телеметрийн автобусанд төхөөрөмжийн нээлт хийдэг тул бид хөрвүүлэгчийг дотоод осцилляторыг ашиглахыг хэлдэг бөгөөд энэ нь эхлүүлэлтийг бараг л шууд хийх болно.
- Өмнө нь өөрчилж байсан board.txt файлыг олоорой (тийм ээ, би таныг энэ алхамыг эрт хадгалах боломжтой байсан, гэхдээ энэ бол миний хувьд сурах үйл явц байсан)
- Seeed_XIAO_m0_nbl.build.extra_flags мөрөнд "-DCRYSTALLESS" нэмнэ үү. Энэ нь хөрвүүлэгчид дотоод осцилляторыг ашиглахыг хэлэх болно.
- Кодыг дахин хөрвүүлэх.
- MCU-г дахин асаах.
- Осциллограф ашиглан эхлэх цаг хангалттай хурдан байгаа эсэхийг шалгаарай.
Зураг дээрээс харахад шар суваг 1 бол тэжээлийн хангамж юм. Цэнхэр суваг 2 бол микроконтроллерийн бэлэн зүү юм. Ойролцоогоор 10 миллисекундын дараа хоёр дахь суваг нь микроконтроллероор татагддаг бөгөөд энэ нь тохиргооны гогцоонд байгааг илтгэнэ. Тохиргоог хийж дууссаны дараа MCU нь зүүг доош татахын тулд кодлогдсон бөгөөд энэ нь үндсэн гогцоо эхэлж байгааг харуулж байна. Хамрах хүрээ нь тохиргоо нь 3 миллисекунд зарцуулдаг болохыг харуулж байна. Ерөнхийдөө микроконтроллер асаахад бэлэн болоход 13 миллисекунд шаардагдана.
Зөвлөмж болгож буй:
Lego нийцтэй шөнийн гэрэл: 3 алхам
Lego -тэй нийцтэй шөнийн гэрэл: Энэхүү төсөл нь Lunchbox Electronics PTH LED тоосгоны тусламжтайгаар шөнийн гэрэл бөгөөд дуртай Legos -оо харуулах бөгөөд гагнах шаардлагагүй болно! Эхэлцгээе
Ардубуино (Ардубойтой нийцтэй клон): 5 алхам
Ardubino (Arduboy -тэй нийцтэй клон): Arduboy бол нээлттэй эх үүсвэртэй зээлийн картын хэмжээтэй тоглоомын консол бөгөөд зөвхөн олон хүн платформд зориулж өөрийн тоглоомыг хөгжүүлдэг програм хангамж дээр төдийгүй олон тооны тоног төхөөрөмжөөр тоноглогдсон байдаг. хүмүүс үүнийг бодож олсон
Arduino нийцтэй самбар: 13 алхам
Arduino нийцтэй самбар: Та Arduino технологийг давамгайлдаг уу? Хэрэв та давамгайлахгүй бол энэ нь таныг давамгайлж байгаатай холбоотой байж магадгүй юм. Arduino -ийг мэдэх нь таны төрөл бүрийн технологийг бий болгох эхний алхам тул та бүхэл бүтэн үйл ажиллагааг бүрэн эзэмших болно
Аливаа хурдан цэнэглэгчтэй нийцтэй Powerbank -аас 12V гаралт: 6 алхам
Аливаа хурдан цэнэглэгчтэй нийцтэй Powerbank -аас 12V гаралт: Түргэн цэнэглэдэг powerbank -ийг ашиглах нь зөвхөн утсыг цэнэглэхээс гадна гэрийн модем гэх мэт 12V төхөөрөмжүүдийн нөөц тэжээлийн эх үүсвэр болдог. Дэлгэрэнгүй мэдээллийг энэ блогоос авах боломжтой: http: //blog.deconinck.info/post/2017/08/09/Turnin
ESP8266: 3 алхам ашиглан Alexa нийцтэй IR гүүр
ESP8266 ашиглан Alexa нийцтэй IR гүүр: Би Alexa -ээр дамжуулан ухаалаг ТВ -ээ удирдах арга замыг хүсч байсан. Харамсалтай нь миний Hi-Sense 65 " Ухаалаг ТВ нь WiFi -ээр хянагдах чадваргүй байдаг. Хэрэв би түүнтэй интерфэйс хийх боломжтой API -тэй бол сайн байсан. Тиймээс би