Mündəricat:
- Addım 1: Niyə Nano V2 -nin dəyişdirilməsi?
- Addım 2: Komponent Seçimi və Tikintisi
- Addım 3: Tikinti
- Addım 4: NRF52 Kodlaşdırma Qoruma Bayrağının çıxarılması
- Addım 5: SKYLAB SKB369 proqramlaşdırılması
- Addım 6: Yeni Arduino NRF52 Board Tərifi Yaratmaq
- Addım 7: Nəticə
Video: Arduino Part 3 -də Asan Çox Aşağı Güc BLE - Nano V2 Dəyişdirmə - Rev 3: 7 Addım (Şəkillərlə)
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:46
Yeniləmə: 7 Aprel 2019 - lp_BLE_TempHumidity -in Rev 3, məlumat göndərərkən pfodApp V3.0.362+və avtomatik tənzimləmə istifadə edərək Tarix/Saat planlarını əlavə edir
Yeniləmə: 24 Mart 2019 - lp_BLE_TempHumidity -in Rev 2, daha çox süjet variantları və i2c_ClearBus, GT832E_01 dəstəyi əlavə edir
Giriş
Bu dərslik, Redbear Nano V2 -nin 3 -cü hissəsidir. Bu, bu layihənin 2 -ci Düzəlişidir. Revision 2 PCB, sikkə hüceyrəsi və sensor üçün montajı ehtiva edir, konstruksiyanı asanlaşdırır və birbaşa günəş işığından qoruyaraq sensorun ətrafındakı hava axını yaxşılaşdırır. Düzəliş 1 burada.
1 -ci hissə - Arduino ilə asanlaşdırılan çox aşağı gücə malik BLE cihazlarının qurulması Arduino nRF52 aşağı güc cihazlarını kodlaşdırmağı, proqramlaşdırma modulunu və təchizat cərəyanını ölçməyi əhatə edir. NRF52 cihazına qoşulmaq və onu idarə etmək üçün ixtisaslaşdırılmış aşağı güc sayğaclarını və müqayisə cihazlarını, debüt edilmiş girişləri və pfodApp istifadə etməyi də əhatə edir.
2 -ci hissə - Çox Aşağı Güclü Temperatur Rütubət Monitoru, aşağı güclü bir batareya / günəş monitoru qurmaq üçün Redbear Nano V2 modulu və Si7021 temperatur / rütubət sensoru istifadə edərək əhatə edir. Ayrıca, Si7021 kitabxanasını aşağı gücə dəyişdirməyi, BLE cihazını cari istehlakını <29uA -ya endirmək və cibiniz üçün xüsusi bir temperatur/rütubət ekranı hazırlamağı əhatə edir.
3 -cü hissə - Redbear Nano V2 -nin dəyişdirilməsi, bu, Nano V2 əvəzinə digər nRF52 əsaslı modulların istifadəsini əhatə edir. Təchizat komponentlərinin seçilməsi, inşaat, nRF52 çip proqramlaşdırma qorumasının aradan qaldırılması, NFC pinlərinin normal GPIO olaraq istifadə edilməsi və Arduinoda yeni bir nRF52 lövhəsinin təyin edilməsi daxildir.
Bu təlimat, Nano V2 əvəzi olaraq SKYLAB SBK369 lövhəsindən istifadə edərək Çox Aşağı Güclü BLE Temperatur və Nəmlik Monitoru quraraq Arduino ilə asanlaşdırılan 1 -ci hissənin Çox Az Güclü BLE cihazlarının praktik bir tətbiqidir. Bu təlimat, yeni bir lövhə tərifinin necə yaradılacağını və nRF52 proqramlaşdırmasının yenidən proqramlaşdırılmasına icazə vermək üçün onu necə aradan qaldıracağını əhatə edir. Bu dərslik, aşağı enerji istehlakı üçün eyni tənzimlənmiş BLE parametrləri ilə 2 -ci hissədəki eyni eskizdən istifadə edir və yalnız batareyadan və ya batareyadan + günəşdən və ya günəşdən işləyə bilər. Aşağı güc üçün BLE parametrlərinin tənzimlənməsi 2 -ci hissədə verilmişdir
Lp_BLE_TempHumidity -in Rev 3, məlumatları yalnız Arduino millis () istifadə edərək tarix və saata qarşı qurur. PfodApp (V3.0.362+) ən son versiyasını istifadə edərək millis () və pfodApp istifadə edərək Arduino Tarix və Vaxtına baxın.
Pfod_lp_nrf52.zip -in Rev 4 də GT832E_01 modulunu dəstəkləyir və bu dərslik NFC nRF52 sancaqlarını standart GPIO kimi istifadə edərək əhatə edir.
Burada hazırlanan monitor, Coin Cell və ya 2 x AAA batareyaları ilə illərlə işləyəcək, hətta günəş yardımı ilə daha uzun müddət işləyəcək. Monitor, mövcud temperatur və rütubəti əks etdirməklə yanaşı, son 36 saatlıq 10 dəqiqəlik oxunuşları və son 10 gündə saatlıq oxunuşları saxlayır. Bunlar Android mobil telefonunuzda və bir qeyd sənədində saxlanılan dəyərlər ilə əlaqələndirilə bilər. Android Proqramlaşdırma tələb olunmur, pfodApp bütün bunları idarə edir. Android ekranı və diaqramı tamamilə Arduino eskiziniz tərəfindən idarə olunur, buna görə də lazım olduğu kimi düzəldə bilərsiniz.
2 -ci hissədə nRF52832 BLE komponenti üçün Redbear Nano V2 lövhəsi istifadə edilmişdir. Bu layihə onu daha ucuz bir SKYLAB SKB369 lövhəsi ilə əvəz edir. 2 -ci hissədə olduğu kimi, temperatur / rütubət sensoru üçün Sparkfun Si7021 qırılma lövhəsi istifadə olunur. Si7021 ilə dəyişdirilmiş aşağı güc kitabxanası istifadə olunur.
Addım 1: Niyə Nano V2 -nin dəyişdirilməsi?
i) Nano V2 bir neçə aydır istehsalda deyildi və Particle.io sırasına uyğun gəlmir, buna görə də nə vaxta qədər mövcud olacağı bəlli deyil.
ii) Nano V2 daha bahalıdır. Bununla birlikdə əlavə xüsusiyyətlərə malikdir. Aşağıya baxın.
iii) Nano V2, hər iki tərəfdə daha yüksək bir profil verən və montajı çətinləşdirən komponentlərə malikdir.
iv) Nano V2 -nin məhdud G/Ç pinləri mövcuddur və D6 -dan D10 -a qədər uçan aparatlar tələb olunur.
Nano V2 lövhəsi SKYLAB SKB369 lövhəsindən ~ US17 ilə ~ US5 arasında daha bahalı olsa da, Nano V2 daha çox xüsusiyyətə malikdir. Nano V2, 3.3V tənzimləyici və təchizat kondansatörleri, nRF52 DC/DC çevirici seçimini istifadə etmək üçün əlavə komponentlər, çip antenası və uFL SMT anten konnektoru daxildir.
Başqa bir alternativ, www.homesmartmesh.com tərəfindən istifadə olunan GT832E_01 moduludur. Pfod_lp_nrf52.zip -in Rev 4 də GT832E_01 modulunun proqramlaşdırılmasını dəstəkləyir. SKYLAB SKB369 və GT832E_01 https://www.aliexpress.com saytında mövcuddur
Redbear (Particle.io) da 3V3 tənzimləyicisi, DC/DC komponentləri və ya 32Khz kristal komponentləri olmayan çılpaq bir modula malikdir.
Kontur
Bu layihə 4 nisbi müstəqil hissədən ibarətdir:-
NRF52 kodlaşdırma mühafizə bayrağının çıxarılması və eskizin proqramlaşdırılması Bileşen Seçimi və Tikintisi Yeni Arduino nRF52 Kart Tərifi Yaratmaq nRF52 NFC sancaqlarını GPIO olaraq yenidən konfiqurasiya edin.
Addım 2: Komponent Seçimi və Tikintisi
Komponent Seçimi
2 -ci hissədə seçilmiş nRF52832 və Si7021 komponentlərinə əlavə olaraq, bu layihə 3.3V tənzimləyici və təchizat kondansatörləri əlavə edir.
Gərginlik tənzimləyicisi komponenti
Burada istifadə olunan tənzimləyici MC87LC33-NRT-dir. 12V -ə qədər girişi idarə edə bilir və sakit bir cərəyanı <3.6uA, tipik olaraq 1.1uA -dır. Nano V2 istifadə olunan TLV704 tənzimləyicisi, bir az daha yüksək sakit cərəyana malikdir, adətən 3.4uA və 24V -a qədər daha yüksək giriş gərginliyini idarə edə bilir. MC87LC33-NRT bunun əvəzinə seçildi, çünki məlumat cədvəlində giriş gərginliyi TLV704 məlumat cədvəlində olmadığı kimi 3.3V-dən aşağı düşdükdə necə reaksiya verildiyi göstərilir.
TLV704 minimum 2.5V giriş gərginliyi təyin edir və bunun altında nə olacağı məlumat cədvəlindən aydın deyil. NRF52832 1.7V -a, Si7023 1.9V -a qədər işləyəcək. Digər tərəfdən MC87LC33-NRT, aşağı cərəyanlar üçün 0V-ə qədər giriş/çıxış gərginliyi fərqlərini təyin edir (məlumat cədvəlinin Şəkil 18). Komponentlərin seçimi nəzərə alınmaqla, MC87LC33-NRT göstərilən performansa malik olduğu üçün seçildi.
Təchizat Kondansatörleri
MC87LC33-NRT tənzimləyicisinin sabitlik və reaksiya üçün bəzi təchizat kondansatörlərinə ehtiyacı var. Məlumat səhifəsində> 0.1uF bir çıxış kondansatörü tövsiyə olunur. SKYLAB SBK369, lövhəyə yaxın olan təchizatda 10uF/0.1uF kondansatörləri də təyin edir. Daha böyük kondansatörler, nRF52 TX cərəyanlarını təmin etməyə kömək edir. Burada 4 x 22uF 25V və 3 x 0.1uF 50V Seramik kondansatörlərdən istifadə edilmişdir. SKYLAB SBK369 yaxınlığında bir 22uF və 0.1uF kondansatör yerləşdirildi, sabitliyi təmin etmək üçün MC87LC33-NRT çıxışına yaxın bir 0.1uF, MC87LC33-NRT girişinə isə 22uF və 0.1uF yerləşdirildi. daha bir cərəyan anbarı olaraq Vin/GND sancaqlar arasında lehimləndiyi daha 2 x 22uF kondansatör. Müqayisə üçün NanoV2 lövhəsi TLV704 tənzimləyicisinin girişində 22uF / 0.1uF və çıxışında 0.1uF var.
Əlavə cərəyan rezervuar kondansatörləri 3.3V tənzimləyicinin girişinə quraşdırılmışdır ki, günəş batareyaları ilə işləyərkən daha yüksək gərginliyə yüklənsinlər. Daha yüksək gərginliyə şarj etmək, Tx sıçrayışlarını təmin etmək üçün daha çox cərəyan toplamağa bərabərdir.
Seramik X5R kondansatörləri aşağı seriyalı müqavimət və aşağı sızma cərəyanına malik olduqları üçün istifadə olunur. Müqavimət ümumiyyətlə daha az olan 100, 000MΩ və ya 1000MΩ - µF -dir. Beləliklə, 22uF üçün 22000MΩ, yəni dörd 22uF kondansatör üçün 3.3V və ya 0.6nA -da 0.15nA sızma var. Bu əhəmiyyətsizdir. Müqayisə üçün Low ESR, Low Leakage Panasonic Elektrolitik kondansatörlərin <0.01CV sızma cərəyanları var. Beləliklə, 22uF 16V kondansatör üçün sızma <10uA -dır. Qeyd: Bu, nominal gərginlikdə, bu vəziyyətdə 16V sızıntıdır. Sızma aşağı gərginliklərdə daha aşağıdır, yəni 3.3V -də <2.2uA.
Parça siyahısı
1 -ci hissədən göndərmə və proqramçı istisna olmaqla, 2018 -ci ilin dekabr ayına olan vahid başına təxminən xərc, ~ 61 ABŞ dolları
- SKYLAB SKB369 ~ 5 ABŞ dolları, məsələn Aliexpress
- Sparkfun Si7021 qırılma taxtası ~ 8 ABŞ dolları
- 2 x 53mm x 30mm 0.15W 5V günəş batareyaları məsələn. Overfly ~ 1.10 ABŞ dolları
- 1 x PCB SKYLAB_TempHumiditySensor_R2.zip ~ 25 ABŞ dolları 5 endirim üçün www.pcbcart.com
- 1 x MC78LC33 3.3V tənzimləyicisi, məs. Digikey MC78LC33NTRGOSCT-ND ~ 1 ABŞ dolları
- 2 x 0.1uF 50V keramika C1608X5R1H104K080A məs. Digikey 445-7456-1-ND ~ 0.3 ABŞ dolları
- 4 x 22uF 16V keramika GRM21BR61C226ME44L məs. Digikey 490-10747-1-ND ~ 2 ABŞ dolları
- 1 x BAT54CW, məsələn Digikey 497-12749-1-ND ~ 0.5 ABŞ dolları
- 1 x 470R 0,5W 1% rezistor məsələn. Digikey 541-470TCT-ND ~ 0.25 ABŞ dolları
- 1 x 10V 1W zener SMAZ10-13-F məs. Digikey SMAZ10-FDICT-ND ~ 0.5 ABŞ dolları
- 3 mm x 12 mm neylon vintlər, məsələn. Jaycar HP0140 ~ 3 AUD
- 3 mm x 12 mm neylon qoz -fındıq, məsələn. Jaycar HP0146 ~ 3 AUD
- Scotch Daimi Montaj Bant Cat 4010 məs. Amazon -dan ~ 6.6 ABŞ dolları
- CR2032 batareya tutacağı, məs. HU2032-LF ~ 1.5 ABŞ dolları
- CR2032 batareyası ~ 1 ABŞ dolları
- Perspex təbəqəsi, 3,5 mm və 8 mm
- pfodApp ~ 10 ABŞ dolları
- Lehim pastası Jaycar NS-3046 ~ 13 AUD
Addım 3: Tikinti
Layihə kiçik bir PCB üzərində qurulub. PCB, bu Gerber fayllarından pcbcart.com tərəfindən istehsal edilmişdir, SKYLAB_TempHumiditySensor_R2.zip PCB, Nano V2 pinini təqlid edir və digər BLE layihələrində istifadə etmək üçün kifayət qədər ümumi bir məqsəddir.
Bu sxematikdir (pdf versiyası)
Əvvəlcə SMD komponentlərini lehimləyin, sonra SKYLAB SKB369 lövhəsini quraşdırın
Demək olar ki, bütün komponentlər səthə montaj cihazlarıdır (SMD). Kondansatörler və IC -lərin əl ilə lehimlənməsi çətin ola bilər. Təklif olunan üsul, PCB -ni bir çardaqda tutmaq və yastiqciklərə az miqdarda lehim pastası tətbiq etmək və SKB369 lövhəsi istisna olmaqla SMD komponentlərini PCB -yə yerləşdirməkdir. Sonra bir istilik tabancası istifadə edərək, lehim pastası əriyənə qədər PCB -nin alt hissəsinə istilik tətbiq edin və sonra komponentləri partlatmamaq üçün lövhənin üstündən tez keçin. Nəhayət, kiçik bir ucu olan lehimləmə dəmiri ilə komponentlərə toxunun. Kondansatör və rezistorla diqqətli olun, çünki hər iki ucunu əritmək və bir ucunu lehimləyərkən komponenti boşaltmaq asandır.
Bu versiya əlavə 22uF 16V keramika kondansatörləri əlavə edir. Bu əlavə kondansatörler, batareyadan alınan cərəyanları və günəş batareyalarından enerji aldıqda geriliyi azaldır. Günəş batareyalarından gələn gərginlik batareya gərginliyinin üzərində qaldıqca batareyadan heç bir cərəyan çəkilmir.
SMD komponentləri quraşdırıldıqdan sonra SKYLAB SKB369 lövhəsinə lehim edə bilərsiniz. SKB369 nişanlarının bir tərəfində iki sınaq nöqtəsi çuxuru var. SKB369 lövhəsini yerləşdirmək və sancaqları diqqətlə hizalamaq üçün iki sancaq istifadə edin. (Revision 1 PCB istifadə edərək yuxarıdakı nümunə fotoşəkilə baxın) Sonra digər pinləri lehimləməzdən əvvəl lövhəni yerində saxlamaq üçün qarşı tərəfin bir pinini lehimləyin.
Bitmiş hissədə CLK ilə GND arasındakı Gnd keçid telinə diqqət yetirin. Bu, CLK girişindəki səs -küyün nRF52 çipinin yüksək cərəyan ayıklama rejiminə keçməsini qarşısını almaq üçün proqramlaşdırmadan SONRA quraşdırılır
Montaj Çantası
Montaj qutusu 110 mm x 35 mm, 3 mm qalınlığında iki ədəd perspeksdən hazırlanmışdır. Günəş hüceyrələrinin altındakı 3,5 mm parça, 3 mm neylon vintləri almaq üçün vuruldu. Bu yenidən işlənmiş quruluş Rev 1 -dən sonra daha sadədir və sensorun ətrafındakı hava axını yaxşılaşdırır. Hər bir ucundakı əlavə çuxurlar, məsələn, kabel bağlarından istifadə edərək montaj üçündür.
Addım 4: NRF52 Kodlaşdırma Qoruma Bayrağının çıxarılması
Temperatur/Nəmlik lövhəsini yuxarıda göstərildiyi kimi 1 -ci hissədə təsvir olunan Proqramçıya qoşun.
Günəş batareyaları və batareyaları çıxarıldıqda, Vin və Gnd proqramçı Vdd və Gnd (Sarı və Yaşıl) və SWCLK və SWDIO proqramçı başlıq lövhəsinin Clk və SIO -na (Ağ və Boz tellər) qoşulur.
NRF52 proqram qorunmasının çıxarılması
Nordic Semi - Debug and Trace səhifəsindən DAP - Debug Access Port. Xarici bir hata ayıklayıcısı cihaza DAP vasitəsilə daxil ola bilər. DAP standart bir ARM® CoreSight ™ Serial Tel Debug Portunu (SW-DP) tətbiq edir. SW-DP, iki pinli SWDCLK və SWDIO seriyalı interfeys olan Serial Wire Debug Protocol (SWD) tətbiq edir.
Mühüm: SWDIO xəttinin daxili çəkmə rezistoru var. SWDCLK xəttində daxili açılan müqavimət var.
CTRL -AP - Nəzarət Giriş Portu. Nəzarət Giriş Portu (CTRL-AP), DAP-dakı digər giriş portları giriş portu qorunması ilə deaktiv edilsə belə cihazın idarə olunmasını təmin edən xüsusi bir giriş portudur. Giriş portu qorunması, hata ayıklayıcının bütün CPU qeydlərinə və yaddaş xəritələnmiş ünvanlarına oxumaq və yazmaqdan mane olur. Giriş limanının qorunmasını deaktiv edin. Giriş limanının qorunması yalnız CTRL-AP vasitəsilə ERASEALL əmri verilərək aradan qaldırıla bilər. Bu əmr Flash, UICR və RAM -ı siləcək.
Particle's Debugger üçün proqramçı olaraq CMSIS-DAP seçin və nRF5 Flash SoftDevice seçin
Flaş işləyirsə, bu yaxşıdır, amma tez-tez modullar yenidən proqramlaşdırmadan qorunacaq və bu səhv çıxışı Arduino pəncərəsində alacaqsınız.
Açıq Çip Hata Ayıklayıcısı 0.10.0-dev-00254-g696fc0a (2016-04-10-10: 13) GNU GPL v2 lisenziyasına malikdir Hata hesabatları üçün https://openocd.org/doc/doxygen/bugs.html oxuyun debug_level: 2 Məlumat: yalnız bir nəqliyyat variantı; avtomatik seçim 'swd' adapter sürəti: 10000 kHz cortex_m reset_config sysresetreq Məlumat: CMSIS-DAP: SWD Dəstəklənən Məlumat: CMSIS-DAP: Arayüz Başlanğıc (SWD) Məlumatı: CMSIS-DAP: FW Version = 1.10 Məlumat: SWCLW/TCK = 1 TMS = 1 TDI = 0 TDO = 0 nTRST = 0 nRESET = 1 Məlumat: CMSIS-DAP: İnterfeys hazır Məlumat: sürət tələbini azaldır: maksimum 10000kHz-dən 5000kHz-ə qədər Məlumat: saat sürəti 10000 kHz Məlumat: SWD IDCODE 0x2ba01477 Xəta: MEM tapılmadı -AP nüvəni idarə etmək üçün Hata: Hədəf hələ araşdırılmamışdır SoftDevice yanıb sönərkən.
Bu halda, yaddaşı təmizləmək və cihazı yenidən proqramlaşdırmaq üçün nRF52 -də ERASEALL əmr qeydini qurmalısınız. Sandeepmistry nRF52 ilə təchiz edilmiş openOCD versiyası, ERASEALL əmr reyestrinə yazmaq üçün lazım olan apreg əmrini ehtiva etmir, buna görə də sonrakı bir versiyanı quraşdırmalısınız.
OpenOCD OpenOCD-20181130 və ya daha yüksək versiyasını quraşdırın. Windows-un əvvəlcədən tərtib edilmiş versiyası https://gnutoolchains.com/arm-eabi/openocd/ saytından əldə edilə bilər. Ən son kod https://gnutoolchains.com/arm-eabi/openocd/ ünvanında mövcuddur.
Bir əmr istəyi açın və diri OpenOCD quraşdırma qovluğuna dəyişdirin və əmri daxil edin
bin / openocd.exe -d2 -f interfeysi/cmsis -dap.cfg -f hədəf/nrf52.cfg
Cavab budur
Açıq Çip Hata Ayıklayıcısı 0.10.0 (2018-11-30) [https://github.com/sysprogs/openocd] GNU GPL v2 altında lisenziyalıdır Hata hesabatları üçün https://openocd.org/doc/doxygen/ oxuyun bugs.html debug_level: 2 Məlumat: ilk mövcud sessiya nəqliyyatının "swd" avtomatik seçilməsi. Ləğv etmək üçün 'nəqliyyat seçin' istifadə edin. adapter sürəti: 1000 kHz cortex_m reset_config sysresetreq Məlumat: tcl əlaqələri üçün 6666 portunda dinləmə Məlumat: Telnet əlaqələri üçün 4444 portda dinlənilir Məlumat: CMSIS-DAP: SWD Dəstəklənən Məlumat: CMSIS-DAP: FW Version = 1.10 Məlumat: CMSIS-DAP: İnterfeys Başlatılmış (SWD) Məlumatı: SWCLK/TCK = 1 SWDIO/TMS = 1 TDI = 0 TDO = 0 nTRST = 0 nRESET = 1 Məlumat: CMSIS-DAP: Arayüz hazır Məlumat: saat sürəti 1000 kHz Məlumat: SWD DPIDR 0x2ba01477 Xəta: Əsas məlumatı idarə etmək üçün MEM-AP tapılmadı: gdb əlaqələri üçün 3333 portunda dinlənilir
Sonra bir terminal pəncərəsi açın, məsələn. TeraTerm (Windows) və ya CoolTerm (Mac) və 127.0.0.1 4444 portuna qoşulun
Telnet pəncərəsində> və əmr satırında Məlumat göstəriləcək: tcp/4444 -də 'telnet' bağlantısı qəbul edilir
Telnet pəncərəsində (yəni TeraTerm) typenrf52.dap apreg 1 0x04bu, çipin qorunduğunu göstərən 0x00000000 qaytarır. Sonra typenrf52.dap apreg 1 0x04 0x01 və thennrf52.dap apreg 1 0x04bu 0x00000001 qaytarır, çipin növbəti yenidən başladıqda ERASEALL olaraq qurulduğunu göstərir.
Telnet bağlantısını bağlayın və Ctrl-C-dən istifadə edərək əmr satırında openOCD proqramından çıxın və sonra nRF52 modulunu açın və proqrama hazır olacaq.
İndi yumşaq cihazı yanıb söndürməyə yenidən cəhd edin.
İndi nRF52 modulunu Arduinodan proqramlaşdıra bilərsiniz.
Addım 5: SKYLAB SKB369 proqramlaşdırılması
Arduinonu bağlayın və pfod_lp_nrf52 hardware dəstəyi quraşdırma təlimatlarına əməl edərək pfod_lp_nrf52 dəstəyinin ən son versiyasını yenidən quraşdırın. Ən son pfod_lp_nrf52, SKYLAB SKB369 Nano2 dəyişdirmə lövhəsini ehtiva edir. Bunu lövhə olaraq seçin və sonra 2 -ci hissədə təsvir edildiyi kimi lp_BLE_TempHumidity, lp_BLE_TempHumidity_R3.zip versiyası 3 ilə proqramlaşdıra bilərsiniz.
Proqramlaşdırma uğursuz olarsa. Bütün Arduino pəncərələrini bağlayın, USB kabellərini çıxarın, Arduino'yu yenidən başladın və proqramçı USB kabelini yenidən qoşun və nRF52 modulunun USB təchizatını yenidən qoşun və yenidən cəhd edin.
Sonra cari və tarixi temperatur və rütubəti göstərmək üçün pfodApp vasitəsi ilə əlaqə qurun. Tarixi süjeti göstərdikdən sonra, millisekundlu zaman damgaları ilə oxunuşlar cib telefonunuzdakı qeyd sənədində saxlanılır və eyni zamanda xam məlumatlar ekranında da mövcuddur.
Günlük faylı, elektron tablodakı tarix və vaxt sahələrini yenidən yaratmaq üçün lazım olan əlavə məlumatları da ehtiva edir. Ətraflı məlumat üçün millis () və pfodApp istifadə edərək Arduino Tarix və Vaxtına baxın
Addım 6: Yeni Arduino NRF52 Board Tərifi Yaratmaq
Yeni bir nRF52 lövhəsini dəstəkləmək üçün a) lövhə faylları ilə variantlar qovluğuna yeni bir qovluq əlavə etməlisiniz və b) yeni lövhəni Arduinoya əlavə etmək üçün board.txt faylını redaktə etməlisiniz.
Yeni bir nRF52 lövhə variantının əlavə edilməsi
1-ci hissədə təsvir edildiyi kimi, pfod_lp_nrf52 hardware dəstəyinin quraşdırılması, pfod_lp_nrf52 dəstəyi ilə yenilədiyiniz sandeepmistry paketinin hardware alt qovluğunu tapın. / Hardware / nRF5 / 0.6.0 / variants alt qovluğunu açın və yeni lövhəniz üçün yeni bir kataloq yaradın, məsələnSKYLAB_SKB369_Nano2replacement Yeni / hardware / nRF5 / 0.6.0 / variantlarında / SKYLAB_SKB369_Nano2 dəyişdirmə qovluğunda üç fayl yaradın.h, variant.cpp və pins_arduino.h Onları digər lövhə variantları qovluqlarından kopyalaya bilərsiniz. SKYLAB_SKB369_Nano2 dəyişdirmə üçün əvvəlcə sənədləri RedBear_BLENano2 variantından kopyaladım.
pins_arduino.h faylı
Pins_arduino.h faylının dəyişdirilməsinə ehtiyac yoxdur. Yalnız variant.h faylını ehtiva edir
variant.h faylı
Lövhənizin PINS_COUNT sahib olduğu sancaqlar sayını təyin etmək üçün variant.h faylını düzəldin
Qeyd: Sandeepmistry paketində NUM_DIGITAL_PINS, NUM_ANALOG_INPUTS və NUM_ANALOG_OUTPUTS parametrləri nəzərə alınmır
Lövhəniz daha çox və ya daha çox analoq sancağı təmin edərsə, variants.h faylının / * Analog Pinləri / / hissəsini yeniləyin.
QEYD: NanoV2 və SKYLAB lövhələri üçün Analog pinlər rəqəmsal sancaqlar A0 == D0 və s
Bu vacib deyil. Analog Girişləri istənilən rahat Arduino pininə təyin edə bilərsiniz. Məsələn, mavi/variant.h və mavi/variant.cpp fayllarına baxın.
NRF52832 çipi 8 analoq giriş pininə malikdir, lakin SKYLAB_SKB369_Nano2 dəyişdirmə lövhəsi onlardan yalnız 6 -nı Nano2 ilə uyğunlaşdırır.
Variant.h faylındakı RESET_PIN istisna olmaqla bütün pin nömrələri Arduino pin nömrələridir. Yəni #define PIN_A0 (0), arduino eskizində D0 -un A0 ilə eyni pin olduğunu bildirir. RESET_PIN istisnadır. Bu nömrə nRF52823 çip pin nömrəsidir və 21 yeganə etibarlı seçimdir. Lakin pfod_lp_nrf52 dəstəyi nRF52832 -də sıfırlama pinini aktiv etmir.
variant.cpp faylı
Variant.cpp faylında Arduino pin nömrələrini nRF52832 çipi P0 ilə əlaqələndirən g_ADigitalPinMap massivində yalnız bir giriş var.
DİQQƏT: NanoV2 və SKYLAB lövhələrində, Arduino analog pinləri A0, A1… Arduino rəqəmsal pinləri D0, D1 ilə eynidir…
Lövhənizin təqdim etdiyi Analog Girişlər üçün g_ADigitalPinMap də olan qeydlər nRF52832 AIN0, AIN1, AIN2 və s. Pin nömrələrini göstərməlidir. yəni AIN0 çip pin P0.02, AIN1 çip pin P0.03 və s. yuxarıdakı nRF52832 pin planına baxın.
Yanlış eşlemeler üçün (uint32_t) -1 istifadə edin. Məsələn, SKYLAB_SKB369_Nano2 dəyişdirmə lövhəsində D13 quraşdırılmış LED yoxdur, buna görə də mövqeyi (uint32_t) -1 ilə müqayisə olunur.
Pfod_lp_nrf52.zip-də Redbear NanoV2, SKYLAB SKB369 və GT832E_01 variantları alt qovluqlarında variant.cpp tərəfindən qurulan eşlemeleri göstərən şəkillər var. (Yuxarıdakı şəkillərə baxın)
SKYLAB SKB369 vəziyyətində, seçmək üçün çoxlu sancaqlar var. NanoV2 ilə uyğunlaşmaq üçün yalnız kifayət qədər xəritələr var. GT832E_01 vəziyyətində, bütün mövcud sancaqlar xəritələndirilməlidir. NanoV2 -də altı (6) əvəzinə yalnız üç (3) analoq giriş mövcuddur. Bununla yanaşı, iki NFC pininin (P0.09 və P0.10) GPIO olaraq yenidən konfiqurasiya edilməsi lazımdır. Aşağıdakı nRF52 NFC sancaqlarını GPIO olaraq yenidən qurmağa baxın.
Board.txt faylının yenilənməsi
Board.txt faylındakı SKYLAB_SKB369_Nano2 dəyişdirmə girişidir.
## SKYLAB_SKB369 Nano2 DəyişdirilməsiSKYLAB_SKB369_NANO2_REPLACEMENT.name =*SKYLAB SKB369 Nano2 Dəyişdirilməsi
SKYLAB_SKB369_NANO2_REPLACEMENT.upload.tool = sandeepmistry: openocd
SKYLAB_SKB369_NANO2_REPLACEMENT.upload.protocol = cmsis-dap SKYLAB_SKB369_NANO2_REPLACEMENT.upload.target = nrf52 SKYLAB_SKB369_NANO2_REPLACEMCab_Sablet_Yukla.max SKYLAB_SKB369_NANO2_REPLACEMENT.upload.use_1200bps_touch = false SKYLAB_SKB369_NANO2_REPLACEMENT.upload.wait_for_upload_port = false SKYLAB_SKB369_NANO2_load. REPLACEMENT.upload.use_1200bps_touch
SKYLAB_SKB369_NANO2_REPLACEMENT.bootloader.tool = sandeepmistry: openocd
SKYLAB_SKB369_NANO2_REPLACEMENT.build.mcu = cortex-m4
SKYLAB_SKB369_NANO2_REPLACEMENT.build.f_cpu = 16000000 SKYLAB_SKB369_NANO2_REPLACEMENT.build.board = SKYLAB_SKB369_Nano2replacement SKYLAB_SKB369_NANO2_REPLACEMENT.build.core = nRF5 SKYLAB_SKB369_NANO2_REPLACEMENT.build.variant = SKYLAB_SKB369_Nano2replacement SKYLAB_SKB369_NANO2_REPLACEMENT.build.variant_system_lib = SKYLAB_SKB369_NANO2_REPLACEMENT.build.extra_flags = -DNRF52 SKYLAB_SKB369_NANO2_REPLACEMENT.build.float_flags = -mfloat -abi = hard -mfpu = fpv4-sp-d16 SKYLAB_SKB369_NANO2_REPLACEMENT.build.ldscript = nrf52_xxaa.ld
SKYLAB_SKB369_NANO2_REPLACEMENT.menu.lfclk.lfrc.build.lfclk_flags = -DUSE_LFXO
SKYLAB_SKB369_NANO2_REPLACEMENT.menu.softdevice.s132 = S132
SKYLAB_SKB369_NANO2_REPLACEMENT.menu.softdevice.s132.softdevice = s132 SKYLAB_SKB369_NANO2_REPLACEMENT.menu.softdevice.s132.softdeviceversion = 2.0.1 SKYLAB_SKB369_NANO2_REPLACEMENT.menu.softdevice.s132.upload.maximum_size = 409600 SKYLAB_SKB369_NANO2_REPLACEMENT.menu.softdevice.s132.build.extra_flags = - DNRF52 -DS132 -DNRF51_S132 SKYLAB_SKB369_NANO2_REPLACEMENT.menu.softdevice.s132.build.ldscript = armgcc_s132_nrf52832_xxaa.ld
board.txt Ayarları
Şərhlər - # ilə başlayan sətirlər şərhlərdir.
Prefiks - hər bir lövhənin dəyərlərini müəyyən etmək üçün unikal bir prefiksə ehtiyacı var. Burada prefiksSKYLAB_SKB369_NANO2_REPLACEMENT -dir.
Ad - SKYLAB_SKB369_NANO2_REPLACEMENT.name xətti Arduino lövhə menyusunda göstəriləcək bu lövhənin adını göstərir.
Yükləmə vasitəsi - SKYLAB_SKB369_NANO2_REPLACEMENT.upload bloku yükləmək üçün hansı vasitədən istifadə olunacağını bildirir. Particle Hata Ayıklayıcısından istifadə edirsinizsə, yuxarıda göstərildiyi kimi protocol = cmsis-dap istifadə edin.
Bootloader - Bu xətt bu board.txtdəki bütün lövhələr üçün eynidir
Yarat - Bu blokda yalnız iki sətrin yenilənməsi lazımdır. SKYLAB_SKB369_NANO2_REPLACEMENT.build.variant xətti bu lövhənin kataloq alt qovluğundakı kataloq adını göstərir. SKYLAB_SKB369_NANO2_REPLACEMENT.build.board, ARDUINO_ -ya əlavə edilən və sonra kodu tərtib edərkən təyin olunan dəyərdir. məs. -DARDUINO_SKYLAB_SKB369_Nano2 dəyişdirmə Bu, xüsusi lövhələr üçün kod hissələrini aktivləşdirmək/söndürmək imkanı verir.
Aşağı Tezlik Saatı - Bu xətt, SKYLAB_SKB369_NANO2_REPLACEMENT.menu.lfclk.lfrc.build.lfclk_flags, lp_timer üçün istifadə olunan aşağı tezlikli saatın mənbəyini təyin edir. Üç seçim var, -DUSE_LFXO, -DUSE_LFRC və -DUSE_LFSYNT. Lövhədə xarici 32Khz kristal varsa, ən yaxşı seçim -DUSE_LFXO -dur. Əks təqdirdə, daxili bir RC osilatörü istifadə edən və bir az daha çox cərəyan çəkən ~ 10uA daha çox və daha az dəqiq olan -DUSE_LFRC istifadə edin. -DUSE_LFSYNT -dən istifadə etməyin, çünki bu, çipin hər zaman işləməsini təmin edir, nəticədə mAs cari çəkilişinə səbəb olur.
Softdevice - pfod_lp_nrf52 yalnız nRF52 çiplərini və softdevice s132 -ni dəstəkləyir, buna görə prefiksdən başqa bu bloka heç bir dəyişikliyə ehtiyac yoxdur.
NRF52 NFC pinlərinin GPIO olaraq yenidən qurulması
NRF52 sancaqlarında defolt olun, P0.09 və P0.10 NFC kimi istifadə üçün konfiqurasiya edilmiş və NFC anteninə qoşulmasını gözləyir. Bunları ümumi məqsədli G/Ç pinləri (GPIO) olaraq istifadə etməlisinizsə, o zaman bu lövhənin… menu.softdevice.s132.build.extra_flags məcmuələrini taxt.txt sənədində tərtib etmək üçün müəyyən bir -DCONFIG_NFCT_PINS_AS_GPIOS əlavə etməlisiniz.
Məsələn, pfod_lp_nrf52.zip, G/Ç olaraq istifadə üçün GT832E_01 sancaqlarını yenidən konfiqurasiya edir. Board.txt faylında bu lövhənin GT832E_01 bölməsinə aşağıdakı tərif əlavə edilmişdir
GT832E_01.menu.softdevice.s132.build.extra_flags = -DNRF52 -DS132 -DNRF51_S132 -DCONFIG_NFCT_PINS_AS_GPIOS
Pfod_lp_nrf52.zip -dəki bağlayıcı skript də bu ayarı qorumaq üçün dəyişdirildi və dəyişdirilməsinə ehtiyac yoxdur.
Addım 7: Nəticə
Bu dərslik, SKYLAB SKB369 modulundan istifadə edərək Redbear NanoV2 üçün bir əvəz təqdim etdi. SKYLAB modulu üçün Arduinoda çox aşağı enerjili BLE layihəsi olaraq bir batareya/günəş enerjisi ilə işləyən Temperatur Rütubət Monitoru istifadə edilmişdir. ~ 29uA təchizatı cərəyanları, əlaqə parametrlərinin tənzimlənməsi ilə əldə edilir. Bu, CR2032 sikkə hüceyrəli batareyanın ömrünü ~ 10 aya çatdırdı. Daha yüksək tutumlu sikkə hüceyrələri və batareyalar üçün daha uzun. İki ucuz günəş batareyası əlavə etmək, batareyanın ömrünü 50% və ya daha çox uzatdı. Günəş batareyalarından monitoru gücləndirmək üçün parlaq bir otaq işığı və ya bir masa lampası kifayətdir.
Bu təlimat, əvvəlcədən proqramlaşdırılmış bir nRF52-dən çip qorumasının çıxarılmasını və öz PCB/sxeminizə uyğun yeni bir lövhə tərifinin necə qurulacağını da əhatə edir.
Android proqramlaşdırma tələb olunmur. pfodApp bütün bunları idarə edir.
Tövsiyə:
ATTiny84 əsaslı 3A aşağı-aşağı LED sürücüsü: 7 addım (şəkillərlə)
ATTiny84 əsaslı 3A aşağı-aşağı LED sürücüsü: 10W LED-ləri gücləndirmək istəyirsinizsə, bu 3A LED sürücüsündən istifadə edə bilərsiniz. 3 Cree XPL LED ilə 3000 lümen əldə edə bilərsiniz
150 dollardan aşağı böyük çevik şəffaf LED matris. Hazırlanması asan: 8 addım (şəkillərlə)
150 dollardan aşağı böyük çevik şəffaf LED matris. Hazırlanması asandır. Peşəkar olmadığımı, elektronikada heç bir dərəcəm olmadığını söyləməklə başlamaq istəyirəm. Əllərimlə işləməkdən və hər şeyi başa düşməkdən zövq alıram. Bunu mənim kimi bütün qeyri -peşəkarlara həvəsləndirmək üçün deyirəm. Bacarıqlarınız var
Pilləkən Gecə Lampası - Çox Aşağı Güc və 2 Sensor: 5 Addım
Pilləkən Gecə Lampası - Çox Aşağı Güc və 2 Sensor: Bu aşağı güclü pilləkənli gecə lampasını iki infraqırmızı hərəkət sensoru ilə qurdum, belə ki, pilləkəndə yarı yolda tək bir cihaz quraşdıra bilərəm və ya kimsə yuxarı qalxır və ya gəlir. pilləkənlərdən aşağı. Dizaynımı da çox aşağı gücdə etdim
Çox yönlü və aşağı qiymətli rəqəmsal sayğac: 5 addım (şəkillərlə birlikdə)
Çox yönlü və aşağı qiymətli rəqəmsal sayğac: Bu hack, ucuz mənbədən əldə edilən bir kalkulyatoru çox yönlü bir sayma maşına çevirəcək. Təkər, qamış açarı və maqnitdən istifadə edərək məsafəni ölçmək üçün ucuz bir üsul olaraq istifadə edilə bilər (velosiped odometrini düşünün). Bəs başqa nə soruşa bilərsən? Yaxşı, hə
Kompüteriniz üçün daha çox güc. (İkinci PSU Güc Təchizatı): 3 addım
Kompüteriniz üçün daha çox güc. (İkinci PSU Güc Təchizatı): Bu təlimat, video kartınız (və ya yalnız bir 12V rayınız varsa, həm cpu, həm də video karta daha çox güc verə biləcəksə) sizə bir az sərbəstlik verməyi göstərəcək. Başlamazdan əvvəl bu, qurulan usta və qul deyil