Mündəricat:
- Təchizat
- Addım 1: Spektrum Telemetrik Protokolunu öyrənin
- Addım 2: Hardware seçin
- Addım 3: Proqram Yazın
- Addım 4: Dövrəni tel edin
- Addım 5: Bootloader olmadan tərtib edin
- Addım 6: J-Link ilə Flash MCU
- Addım 7: Xarici Kristal olmadan yenidən tərtib edin
Video: RC Plane Altimeter (Spektrum Telemetri ilə uyğundur): 7 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:43
Pilotun ABŞ -dakı RC təyyarələrində 400 fut həddində olduqlarını bilməsi üçün bu altimetr hazırladım. Həmişə 400 futdan aşağı olduğunu dəqiq deyə bilmədiyi üçün dostum narahat idi və telemetri məlumatları olan bir sensorun təmin edəcəyi əlavə zəmanət istədi. Bəli, Spektrum -dan bir sensor ala bilərsiniz, ancaq bu layihəni qırılma lövhələri ilə (qiyməti artıq şişirdilmiş) 20 dollardan aşağı qiymətə qura bilərsiniz. Əgər artıq J-link proqramçınız varsa, bunu bir neçə dollara xüsusi lövhədə qura bilərsiniz. Xbus protokolunu başa düşdükdən sonra digər dəstəklənən sensorlardan hər hansı birini edə bilərsiniz! Ancaq bu layihədə yalnız bir altimetr əhatə edəcəyəm …
Parça siyahısı:
-
Kiçik olduğu üçün bu layihə üçün Seeeduino XIAO mikrokontroller lövhəsindən istifadə etdim, bu layihə üçün çox gücə malik olan M0 prosessorundan istifadə edir, həm I2C, həm də SPI qutudan çıxmağa hazırdır və 3.3v məntiqdən istifadə edir, buna görə heç bir səviyyə dəyişikliyi yoxdur. tələb olunur.
https://www.seeedstudio.com/Seeeduino-XIAO-Arduino…
-
Hava təzyiqi algılaması üçün Adafruit -dən BMP388 qırılma lövhəsi aldım. Lövhədə həm I2C, həm də SPI var və 3.3v və ya 5v məntiqdə işləyə bilər.
https://www.adafruit.com/product/3966
- Dövrəni bağlamaq üçün protoboard
- Lehim/lehimləmə dəmiri
- Kişi/qadın pin başlıqları, beləliklə sensoru/mikro nəzarətçini asanlıqla ayıra bilərəm.
- Kiçik düymə. Başlanğıc hündürlüyünü sıfırlamaq üçün bunu istifadə edirəm.
- Düyməni aşağı çəkmək üçün 10k müqavimət.
- JST-XH 4 pinli qadın konnektoru, Spektrum alıcısının telemetrik portuna qoşulur
-
SEGGER J-Link EDU proqramçısı, yükləyici olmadan M0-i yanıb söndürə bilər.
https://www.adafruit.com/product/3571
-
Adafruit SWD 10 pinli kəsmə lövhəsi
www.adafruit.com/product/2743
Təchizat
- Mən də altimetrim üçün kiçik bir qutu 3D çap etdim, amma buna ehtiyac yoxdur.
-
Osiloskop- Əgər yoxdursa, bunu məsləhət görürəm:
https://store.digilentinc.com/analog-discovery-2-1…
Addım 1: Spektrum Telemetrik Protokolunu öyrənin
Bu işi ən çox mənim üçün Raymond Domingo etdi. Onsuz da Spektrum ilə uyğun bir altimetr hazırlamışdılar, buna görə də mənbə kodunu izləmək həqiqətən kömək etdi. Qalan boşluqları Spektrum telemetri məlumat cədvəli doldurdu. Alıcıdan verilənlərin səviyyəsini ölçmək 3.3v məntiqə ehtiyacım olduğunu göstərdi.
Alıcı cihaz ünvanını göndərir və sonra 16 baytlıq bir cavab gözləyir. Məlumat cədvəli bütün müxtəlif sensorlar üçün quruluşları göstərir. Struktur 16 bayt uzun olmasa belə, alıcı hər dəfə 16 bayt geri gözləyir.
Spektrum məlumat cədvəli:
www.spektrumrc.com/ProdInfo/Files/SPM_Tele…
Raymond Domingonun Layihəsi:
www.aerobtec.com/download/altisSpektrumInte…
Addım 2: Hardware seçin
Təzyiq algılaması üçün Adafruit -dən BMP388 qırılma lövhəsindən istifadə etdim. Breakout, I2C və SPI qırılmalarını təmin edir və 3.3v və ya 5v məntiqində işləyir. Adafruit həmişə qırılma lövhələri ilə inanılmaz bir iş görür, buna görə satın aldım. Adafruit lövhəm artıq istifadədə olduğu üçün quruluşumda bir DFRobot Gravity BMP388 lövhəsi istifadə etdim.
Ev sahibi I2C cihazının 3.3v məntiq istifadə etdiyini nəzərə alaraq, 3.3v mikrokontrolörə ehtiyacım var idi və onun kiçik olmasını istəyirdim. Adafruit Trinket M0 istifadə etmək niyyətindəyəm, amma nisbətən bahalıdırlar və çoxlu sancaqlar yoxdur. Sonra Seeeduino XIAO lövhəsini tapdım. Həm I2C, həm də SPI ilə birlikdə USB-C konnektoru olan bir M0 lövhəsidir. Bundan əlavə, həqiqətən kiçikdir! Ümumiyyətlə bu lövhəni çox bəyənirəm (yavaş başlanğıc kristalının məni anlamaq üçün sonsuza qədər aparmasına baxmayaraq).
Spektrum, daxil edəcəyimiz "Xbus" portu üçün alıcıda JST-XH ölçülü 4 pinli kişi bağlayıcıdan istifadə edir. Altimetrdə 4 pinli JST-XH dişi fiş istifadə etdim və mükəmməl işləyirdi.
Addım 3: Proqram Yazın
Bütün kodları yazmaq üçün Arduino IDE -dən istifadə etdim. Spektrum telemetri protokolunu məlumat cədvəlindən çıxarıb Arduino kitabxanama əlavə etdim. Adafruit -in qırılmaları üçün həmişə gözəl kitabxanaları olduğu üçün BMP388 sensoru üçün BMP3XX kitabxanasından istifadə etdim.
Dizaynımdan əsas götürülənlər:
- I2C -ni müştəri cihazı kimi aparmaq və Spektrum altimetr ünvanına (0x12) cavab vermək üçün qurun.
- SPI vasitəsilə BMP388 barometrini oxuyun.
- Hündürlük məlumatlarını iki fərqli tamponda qeyd edin ki, alıcıdan gələn I2C sorğusu məlumatları pozmasın və məlumat alınarkən iki tampon arasında dəyişsin. Bu, alıcıya göndərilən məlumatların həmişə tam olmasını təmin edir.
- Altimetr sıfırlamaq üçün bir düymə istifadə edir.
Daha ətraflı məlumat və kod təhlili üçün videoya baxın.
Addım 4: Dövrəni tel edin
Protoboard istifadə etdim, ancaq xüsusi bir freze taxtası hazırlamaq üçün vaxt ayırmaq istəyirsinizsə, dövrəni daha təmiz edə bilərsiniz.
JST-XH konnektorunu XIAO-nun I2C sancaqlarına bağladım. Alıcı telemetriya avtobusuna 5 volt çıxardığından, avtobusun pozitivliyi XIAO -nun VCC pininə getdi. Bu yolla, BMP388 sensorunu gücləndirmək üçün yerüstü 3.3v tənzimləyici istifadə olunur.
Addım 5: Bootloader olmadan tərtib edin
-
Board.txt faylınızı tapın (istifadə etdiyiniz lövhə üçün).
Mənim vəziyyətimdə burada yerləşirdi: C: / Users / AppData / Local / Arduino15 / packages / Seeeduino / hardware / samd / 1.7.7 / board.txt
-
Lövhənizi kopyalayın və önyükleyici olmayan bir versiya təyin etmək üçün ilk düyməni yenidən adlandırın. Yalnız orijinal ada _nbl əlavə etdim.
- Köhnə: seeed_XIAO_m0
- Yeni: seeed_XIAO_m0_nbl
-
. Name dəyərini dəyişdirin:
- Köhnə: seeed_XIAO_m0_nbl.name = Seeeduino XIAO
- Yeni: seeed_XIAO_m0_nbl.name = Seeeduino XIAO Yükləyicisi yoxdur
-
Oluşturucu ld skriptini dəyişdirərək bağlayıcıyı önyükleyici olmadan yanıb -sönmək üçün dəyişdirin:
- Köhnə: seeed_XIAO_m0_nbl.build.ldscript = linker_scripts/gcc/flash_with_bootloader.ld
- Yeni: seeed_XIAO_m0_nbl.build.ldscript = linker_scripts/gcc/flash_with _bootloader.ld
- Arduino IDE -ni yenidən başladın.
- Lövhələr menyusundan yeni "Seeeduino XIAO No Bootloader" lövhəsini seçin.
- "Tərtib edilmiş İkili İxrac Et" seçin
- Tərtib edildikdən sonra.bin faylı Arduino layihə qovluğunuzda olacaq.
Addım 6: J-Link ilə Flash MCU
Adafruit, M0/M4 cihazında önyükleyicinin yenidən proqramlaşdırılması ilə bağlı fantastik bir bələdçiyə malikdir. Bizim vəziyyətimizdə, önyükleyicidən qurtulmaq istəyirik, amma eyni şəkildə işləyir.
learn.adafruit.com/how-to-program-samd-boo…
Bunu etdikdən sonra kodu USB vasitəsilə yükləyə bilməyəcəksiniz. Zavoddan edə bildiyiniz kimi yenidən USB vasitəsilə kod yükləmək üçün önyükleyicini yenidən cihazın üzərinə yandırmaq üçün yuxarıdakı təlimatı izləyə bilərsiniz.
Adafruit bələdçisi çox dərindir, lakin bunlar əsas addımlardır:
-
XIAO lövhəsinin arxasındakı lehim tullanan telləri.
- Adafruit bələdçisi, 2x5 qırılma lövhəsindəki RST pininin Adafruit lövhələrindəki sıfırlama pininə bağlanması lazım olduğunu söyləməmişdir. Ancaq XIAO üçün lövhənin arxasındakı dörd yastığın hamısına qoşulmalıydım.
- VREF pininin XIAO 3.3v pininə qoşulması lazımdır. Bu, ayıklayıcıya cihaz məntiqinin 3.3v olduğunu bildirir. Onsuz səhv bir seçim etsəniz, mikro nəzarətçiyə zərər verə bilərsiniz.
- Atlama tellərini J-Linkə qoşun.
- USB kabel ilə XIAO lövhəsini açın.
- Atmel Studiyasını açın.
- Alətlər Cihaz Proqramlaşdırma seçin
- M0 lövhənizi seçin. Bu vəziyyətdə, ATSAMD21G18A
- SWD seçin.
- Hədəfdən konfiqurasiyanı oxuyun.
- EDU J-Link istifadə edirsinizsə, istifadə şərtlərini qəbul edin (istifadə şərtlərinə əməl edirsinizsə).
- Sağ üst köşedeki gərginliyin oxunduğunu doğrulayın. 3.3v deyilsə, lövhənizi sındıra bilərsiniz!
- Boot qoruyucu sigortasını silin (bootloader ölçüsünü 0 bayt olaraq təyin edin) və sonra proqramı seçin.
- Xatirələr bölməsində tərtib etdiyiniz.bin və ya.hex faylını seçin və proqramı seçin.
Giderme:
Cihaz konfiqurasiyasını oxuduğunuzda, bir gərginlik aralığında deyilsə, MCU-nun elektrikə qoşulduğundan və J-Link VREF pininin 3.3 volta qoşulduğundan əmin olun
Addım 7: Xarici Kristal olmadan yenidən tərtib edin
XIAO lövhəsinin işə salınması uzun zaman alan xarici bir kristal var. Spektrum qəbuledicisi, güc açıldıqdan sonra 350 millisaniyə ərzində telemetrik avtobusda bir cihaz kəşf edir, buna görə də tərtibçiyə bunun yerinə daxili osilatordan istifadə etməsini demək lazımdır ki, bu da işə salınmanı demək olar ki, ani edəcək.
- Daha əvvəl dəyişdirdiyiniz board.txt faylını tapın (bəli, bu addımı daha əvvəl xilas edə bilərdim, amma bu mənim üçün öyrənmə prosesi idi)
- Seeed_XIAO_m0_nbl.build.extra_flags sətrinə "-DCRYSTALLESS" əlavə edin. Bu, tərtibçiyə daxili osilatordan istifadə etməsini söyləyəcək.
- Kodu yenidən tərtib edin.
- MCU-nu yenidən yandırın.
- Osiloskopdan istifadə edərək başlanğıc vaxtının kifayət qədər sürətli olduğunu yoxlayın.
Şəkildən də gördüyünüz kimi, sarı kanal 1 enerji təchizatıdır. Mavi kanal 2 mikrokontrolörün hazır pinidir. Təxminən 10 milisaniyə sonra, ikinci kanal mikrokontrolör tərəfindən yüksək çəkilir ki, bu da onun quraşdırma döngəsində olduğunu göstərir. Quraşdırma aparıldıqdan sonra, MCU, pinin aşağıya çəkilməsi üçün kodlanır və bu, əsas döngənin başladığını göstərir. Kapsam, qurulmanın təxminən 3 milisaniyə çəkdiyini göstərir. Ümumiyyətlə, mikrokontrolör işə başladıqdan sonra işə salındıqdan sonra 13 millisaniyə çəkir.
Tövsiyə:
Köhnə bir Kompüterdən Şəxsi Mini Masa Fanını necə etmək olar - Cibinizə Uyğundur: 6 Addım
Köhnə Kompüterdən Fərdi Mini Masa Fanını Necə Hazırlamaq olar - Cibinizə Uyğundur: Köhnə bir kompüterdən şəxsi mini masaüstü fanat hazırlamağı sizə göstərəcəyəm. Bir bonus, hətta cibinizə sığmasıdır. Bu çox sadə bir layihədir, buna görə çox təcrübə və ya təcrübəyə ehtiyac yoxdur. Beləliklə başlayaq
Kasıb adamın lens qapağı və ya başlığı (hər hansı bir DSLR / Yarı DSLR-ə uyğundur): 4 addım
Kasıb Adamın Lens Şapkası və ya Başlığı (Hər hansı bir DSLR / Yarı-DSLR-ə uyğundur): DSLR-ni aldığımda, ikinci tərəfdən lens qapağı yox idi. Hələ yaxşı vəziyyətdə idi və heç vaxt lens qapağı almağa dəymədim. Beləliklə, mən yalnız birini hazırlamağı bitirdim. Kameramı tozlu yerlərə apardığım üçün yəqin ki, lens qapağına sahib olmaq daha yaxşıdır
Raspberry Pi və Weewx istifadə edərək Acurite 5 -də 1 Hava İstasyonu (digər Hava İstasyonları Uyğundur): 5 Addım (Şəkillərlə)
Raspberry Pi və Weewx istifadə edərək Acurite 5 -də 1 Hava İstasyonu (digər Hava İstasyonları Uyğundur): Acurite 5 -i 1 hava stansiyasından alanda evdən kənarda olduğum zaman havanı yoxlamaq istəyirdim. Evə gəlib qurduqda ya ekranı kompüterə bağlamalı olduğumu, ya da ağıllı mərkəzini almalı olduğumu başa düşdüm
SD/MMC Floppy Edge konnektoruna uyğundur: 8 addım (şəkillərlə)
SD/MMC Floppy Edge konnektoruna uyğundur: Yəqin ki, hazırda əldə etdiyiniz adi bağlayıcılardan istifadə edərək, bir neçə I/O pimi olan hər hansı bir homebrew DIY layihəsinə SD kamera yaddaş kartı əlavə edə bilərsiniz. cihaz sürücüləri və müxtəlif açıq mənbə Linux dağıtımlarının quraşdırılması
Arduino ilə Breadboard Necə Uyğundur .: 4 Addım
Arduino ilə Breadboard Necə Uyğundur: Sirr deyil ki, oomlout HQ ətrafında açıq mənbə Arduino mikro nəzarətçisinin böyük pərəstişkarlarıyıq. Əvvəlcədən hazırlanmış Duemilanove lövhəsi inanılmaz bir prototip platformasıdır, lakin bəzən özünüz üçün bir şey etmək əyləncəlidir. Aşağıdakılar bir bələdçidir