Satura rādītājs:

Viegli ļoti zema enerģijas patēriņa BLE Arduino 3. daļā - Nano V2 nomaiņa - 3. redakcija: 7 soļi (ar attēliem)
Viegli ļoti zema enerģijas patēriņa BLE Arduino 3. daļā - Nano V2 nomaiņa - 3. redakcija: 7 soļi (ar attēliem)

Video: Viegli ļoti zema enerģijas patēriņa BLE Arduino 3. daļā - Nano V2 nomaiņa - 3. redakcija: 7 soļi (ar attēliem)

Video: Viegli ļoti zema enerģijas patēriņa BLE Arduino 3. daļā - Nano V2 nomaiņa - 3. redakcija: 7 soļi (ar attēliem)
Video: Торий: энергетическое решение - THORIUM REMIX 2011 2024, Novembris
Anonim
Viegli ļoti zemas jaudas BLE Arduino 3. daļā - Nano V2 nomaiņa - 3. red
Viegli ļoti zemas jaudas BLE Arduino 3. daļā - Nano V2 nomaiņa - 3. red
Viegli ļoti zemas jaudas BLE Arduino 3. daļā - Nano V2 nomaiņa - 3. red
Viegli ļoti zemas jaudas BLE Arduino 3. daļā - Nano V2 nomaiņa - 3. red
Viegli ļoti zemas jaudas BLE Arduino 3. daļā - Nano V2 nomaiņa - 3. red
Viegli ļoti zemas jaudas BLE Arduino 3. daļā - Nano V2 nomaiņa - 3. red

Atjauninājums: 2019. gada 7. aprīlis - lp_BLE_TempHumidity 3. red., Pievieno datuma/laika grafikus, izmantojot pfodApp V3.0.362+, un automātisko droselēšanu, nosūtot datus

Atjauninājums: 2019. gada 24. marts - lp_BLE_TempHumidity 2. red., Pievieno citas sižeta iespējas un i2c_ClearBus, pievieno GT832E_01 atbalstu

Ievads

Šī apmācība, Redbear Nano V2 nomaiņa, ir 3. daļa no 3. Šī ir šī projekta 2. pārskatīšana. 2. versijas PCB ietver monētas elementa un sensora montāžu, vienkāršo konstrukciju un uzlabo gaisa plūsmu ap sensoru, vienlaikus pasargājot to no tiešiem saules stariem. 1. redakcija ir klāt.

1. daļa - Ļoti vienkāršas ļoti zemas jaudas BLE ierīču izveide, izmantojot Arduino vākus, iestatot Arduino kodēt nRF52 mazjaudas ierīces, programmēšanas moduli un mērot barošanas strāvu. Tas ietver arī specializētus mazjaudas taimerus un salīdzinātājus, kā arī atslēgtas ieejas un pfodApp izmantošanu, lai izveidotu savienojumu un kontrolētu nRF52 ierīci.

2. daļa - Ļoti zemas jaudas temperatūras mitruma monitora vāki, izmantojot Redbear Nano V2 moduli un Si7021 temperatūras / mitruma sensoru, lai izveidotu mazjaudas akumulatoru / saules monitoru. Tas ietver arī Si7021 bibliotēkas pārveidošanu par mazjaudīgu, BLE ierīces noregulēšanu, lai samazinātu tās pašreizējo patēriņu līdz <29uA, un pielāgota temperatūras/mitruma displeja izstrādi jūsu mobilajam tālrunim.

3. daļa - Redbear Nano V2 nomaiņa, šī, aptver citu nRF52 moduļu izmantošanu, nevis Nano V2. Tas ietver piegādes komponentu izvēli, konstrukciju, nRF52 mikroshēmu programmēšanas aizsardzības noņemšanu, NFC tapas izmantošanu kā parastu GPIO un jaunas nRF52 plates definēšanu Arduino.

Šī pamācība ir 1. daļas praktisks pielietojums ļoti zemas jaudas BLE ierīču izveidei, kas ir padarīta vienkārša ar Arduino, izveidojot ļoti zemas jaudas BLE temperatūras un mitruma monitoru, izmantojot SKYLAB SBK369 plāksni kā Nano V2 nomaiņu. Šī apmācība aptver, kā izveidot jaunu paneļa definīciju un kā noņemt nRF52 programmēšanas aizsardzību, lai to varētu pārprogrammēt. Šī apmācība izmanto to pašu skici kā 2. daļa ar tādiem pašiem noregulētiem BLE parametriem zemam enerģijas patēriņam, un to var darbināt no akumulatora VAI akumulatora + saules vai saules enerģijas. BLE parametru pielāgošana mazai jaudai tika apskatīta 2. daļā

Lp_BLE_TempHumidity 3. red. Attēlo datus attiecībā pret datumu un laiku, izmantojot tikai Arduino millis (). Skatiet Arduino datumu un laiku, izmantojot millis () un pfodApp, izmantojot jaunāko pfodApp versiju (V3.0.362+).

Pfod_lp_nrf52.zip 4. versija atbalsta arī moduli GT832E_01, un šī apmācība aptver NFC nRF52 tapu izmantošanu kā standarta GPIO.

Šeit uzbūvētais monitors darbosies gadiem ilgi, izmantojot monētu šūnu vai 2 x AAA baterijas, pat ilgāk ar saules palīdzību. Monitors ne tikai parāda pašreizējo temperatūru un mitrumu, bet arī saglabā pēdējās 36 stundas 10 minūšu rādījumus un pēdējās 10 dienas stundu rādījumus. Tos var attēlot jūsu Android mobilajā ierīcē un vērtības, kas saglabātas žurnāla failā. Android programmēšana nav nepieciešama, pfodApp to visu apstrādā. Android displeju un diagrammu pilnībā kontrolē jūsu Arduino skice, lai jūs varētu to pielāgot pēc vajadzības.

2. daļā nRF52832 BLE komponentam tika izmantota Redbear Nano V2 plāksne. Šis projekts aizstāj to ar lētāku SKYLAB SKB369 plāksni. Tāpat kā 2. daļā, temperatūras / mitruma sensoram tiek izmantots Sparkfun Si7021 sadalīšanas panelis. Ar Si7021 tiek izmantota modificēta mazjaudas bibliotēka.

1. darbība. Kāpēc jānomaina Nano V2?

i) Nano V2 tika pārtraukta ražošana vairākus mēnešus un, šķiet, neiederas Particle.io rindā, tāpēc nav skaidrs, cik ilgi tas būs pieejams.

ii) Nano V2 ir dārgāks. Tomēr tam ir arī papildu funkcijas. Skatīt zemāk.

iii) Nano V2 abās pusēs ir komponenti, kas tam piešķir augstāku profilu un apgrūtina uzstādīšanu.

iv) Nano V2 ir pieejamas ierobežotas I/O tapas, un, izmantojot D6 līdz D10, ir nepieciešami lidojoši vadi.

Lai gan Nano V2 plate ir dārgāka nekā SKYLAB SKB369 plate, ~ US17 pret ~ US5, Nano V2 ir vairāk funkciju. Nano V2 ietver 3.3V regulatoru un barošanas kondensatorus, papildu komponentus nRF52 līdzstrāvas/līdzstrāvas pārveidotāja izmantošanai, mikroshēmas antenu un uFL SMT antenas savienotāju.

Vēl viena alternatīva ir modulis GT832E_01, ko izmanto www.homesmartmesh.com. Pfod_lp_nrf52.zip 4. versija atbalsta arī GT832E_01 moduļa programmēšanu. SKYLAB SKB369 un GT832E_01 ir pieejami vietnē

Redbear (Particle.io) ir arī tukšs modulis bez 3V3 regulatora, DC/DC komponentiem vai 32Khz kristāla komponentiem.

Kontūra

Šim projektam ir 4 relatīvi neatkarīgas daļas:-

Sastāvdaļu izvēle un konstrukcija nRF52 kodēšanas aizsardzības karoga noņemšana un skices programmēšana Jauna Arduino nRF52 plates definīcijas izveide nRF52 NFC tapas kā GPIO konfigurēšana

2. darbība: komponentu izvēle un uzbūve

Komponentu izvēle

Papildus nRF52832 un Si7021 komponentiem, kas atlasīti 2. daļā, šis projekts pievieno 3.3V regulatoru un barošanas kondensatorus.

Sprieguma regulatora sastāvdaļa

Šeit izmantotais regulators ir MC87LC33-NRT. Tas var apstrādāt līdz 12 V ieejas, un tā mierīgā strāva ir <3,6uA, parasti 1,1uA. Nano V2 izmantotajam TLV704 regulatoram ir nedaudz lielāka klusuma strāva, parasti 3,4uA, un tā var apstrādāt augstāku ieejas spriegumu līdz 24V. Tā vietā tika izvēlēts MC87LC33-NRT, jo tā datu lapā ir norādīts, kā tā reaģē, ja ieejas spriegums nokrītas zem 3,3 V, bet kā TLV704 datu lapā nav.

TLV704 norāda minimālo ieejas spriegumu 2,5 V, un no datu lapas nav skaidrs, kas notiks zem tā. NRF52832 darbosies līdz 1.7V, bet Si7023 līdz 1.9V. MC87LC33-NRT, no otras puses, norāda ieejas/izejas sprieguma atšķirības līdz 0 V zemām strāvām (datu lapas 18. attēls). Tātad, ņemot vērā komponentu izvēli, tika izvēlēts MC87LC33-NRT, jo tam ir norādītā veiktspēja.

Piegādes kondensatori

Regulatoram MC87LC33-NRT ir nepieciešami daži padeves kondensatori, lai nodrošinātu stabilitāti un reakciju. Datu lapā ieteicams izmantot izejas kondensatoru> 0.1uF. SKYLAB SBK369 arī norāda 10uF/0,1uF kondensatorus pie barošanas bloka tuvu. Lielāki kondensatori palīdz piegādāt nRF52 TX strāvas tapas. Šeit tika izmantoti 4 x 22uF 25V un 3 x 0.1uF 50V keramikas kondensatori. Viens 22uF un 0,1uF kondensators tika novietots tuvu SKYLAB SBK369, 0,1uF tika novietots tuvu MC87LC33-NRT izejai, lai nodrošinātu stabilitāti, un 22uF un 0,1uF tika ievietoti MC87LC33-NRT ieejā un vēl 2 x 22uF kondensatori, kas pielodēti pāri Vin/GND tapām kā papildu strāvas rezervuārs. Salīdzinājumam, NanoV2 plates TLV704 ieejā ir 22uF / 0,1uF un izejā 0,1uF.

Papildu strāvas rezervuāra kondensatori tika uzstādīti 3,3 V regulatora ieejā, lai, darbojoties ar saules baterijām, tie uzlādētos līdz augstākam spriegumam. Uzlāde ar augstāku spriegumu ir vienāda ar lielākas strāvas uzkrāšanu Tx tapas piegādei.

Tiek izmantoti keramikas X5R kondensatori, jo tiem ir zema sērijas pretestība un zema noplūdes strāva. Parasti pretestība ir 100 000 000 Ω vai 1000 MΩ - µF, kas jebkad ir mazāka. Tātad attiecībā uz 22uF mums ir 22000MΩ, ti, 0,15 nA noplūde pie 3,3 V vai 0,6 nA četriem 22uF kondensatoriem. Tas ir niecīgi. Salīdzinājumam Zems ESR, zemas noplūdes Panasonic elektrolītisko kondensatoru noplūdes strāva ir <0,01 CV. Tātad 22uF 16V kondensatoram noplūde ir <10uA. Piezīme: šī ir noplūde pie nominālā sprieguma, šajā gadījumā - 16 V. Noplūde ir zemāka pie zemāka sprieguma, t.i., <2,2uA pie 3,3 V.

Detaļu saraksts

Aptuvenās izmaksas par vienību 2018. gada decembrī, ~ 61 ASV dolāri, izņemot piegādi un programmētāju no 1. daļas

  • SKYLAB SKB369 ~ 5 ASV dolāri, piemēram, Aliexpress
  • Sparkfun Si7021 sadalīšanas dēlis ~ 8 ASV dolāri
  • 2 x 53mm x 30mm 0,15W 5V saules baterijas, piem. Overfly ~ 1,10 ASV dolāri
  • 1 x PCB SKYLAB_TempHumiditySensor_R2.zip ~ 25 ASV dolāri par 5 atlaidēm www.pcbcart.com
  • 1 x MC78LC33 3.3V regulators, piem. Digikey MC78LC33NTRGOSCT-ND ~ 1 ASV dolārs
  • 2 x 0.1uF 50V keramikas C1608X5R1H104K080A piem. Digikey 445-7456-1-ND ~ 0,3 ASV dolāri
  • 4 x 22uF 16V keramikas GRM21BR61C226ME44L piem. Digikey 490-10747-1-ND ~ 2 ASV dolāri
  • 1 x BAT54CW, piem. Digikey 497-12749-1-ND ~ 0,5 ASV dolāri
  • 1 x 470R 0,5W 1% rezistors piem. Digikey 541-470TCT-ND ~ 0,25 ASV dolāri
  • 1 x 10V 1W zener SMAZ10-13-F piem. Digikey SMAZ10-FDICT-ND ~ 0,5 ASV dolāri
  • 3 mm x 12 mm neilona skrūves, piem. Jaycar HP0140 ~ 3 AUD
  • 3 mm x 12 mm neilona uzgriežņi, piem. Jaycar HP0146 ~ 3 AUD
  • Scotch Pastāvīgā montāžas lente Cat 4010 piem. no Amazon ~ 6,6 ASV dolāri
  • CR2032 akumulatora turētājs, piem. HU2032-LF ~ 1,5 ASV dolāri
  • CR2032 akumulators ~ 1 ASV dolārs
  • Perspex loksne, 3,5 mm un 8 mm
  • pfodApp ~ 10 ASV dolāri
  • Lodēšanas ielīmēt piem. Jaycar NS-3046 ~ 13 ASV dolāri

3. solis: būvniecība

Būvniecība
Būvniecība
Būvniecība
Būvniecība
Būvniecība
Būvniecība

Projekts ir veidots uz neliela PCB. PCB izgatavoja pcbcart.com no šiem Gerber failiem, SKYLAB_TempHumiditySensor_R2.zip. PCB atdarina Nano V2 kontaktdakšu un ir pietiekami universāls, lai to varētu izmantot citiem BLE projektiem.

Šī ir shēma (pdf versija)

Vispirms pielodējiet SMD komponentus, pēc tam piestipriniet SKYLAB SKB369 plāksni

Gandrīz visas sastāvdaļas ir virsmas montāžas ierīces (SMD). Kondensatorus un IC var būt grūti lodēt ar rokām. Ieteicamā metode ir turēt PCB netikumā un uzlikt spilventiņiem nelielu daudzumu lodēšanas pastas un novietot SMD komponentus, izņemot SKB369 plāksni uz PCB. Pēc tam, izmantojot siltuma pistoli, uzkarsējiet PCB apakšpusi, līdz lodēšanas pasta izkūst, un pēc tam veiciet ātru pāreju pa plāksnes augšpusi, uzmanoties, lai sastāvdaļas nenopūstos. Visbeidzot pieskarieties detaļām ar nelielu lodāmuru. Esiet piesardzīgs ar kondensatoriem un rezistoru, jo ir viegli izkausēt abus galus un komponents ir atbrīvojies, lodējot vienu galu.

Šī pārskatīšana pievieno papildu 22uF 16V keramikas kondensatorus. Šie papildu kondensatori samazina strāvas kāpumus, kas rodas no akumulatora, kā arī samazina sprieguma kritumus, kad tie tiek darbināti no saules baterijām. Kamēr saules bateriju spriegums paliek virs akumulatora sprieguma, no akumulatora netiek ņemta strāva.

Pēc SMD komponentu uzstādīšanas varat lodēt SKYLAB SKB369 plāksnē. SKB369 cilņu vienā pusē ir divi pārbaudes punktu caurumi. Izmantojiet divas tapas kartona pamatnē, lai novietotu SKB369 plāksni un uzmanīgi izlīdzinātu tapas. (Skatiet fotoattēla piemēru iepriekš, izmantojot 1. pārskatīšanas PCB) Pēc tam pielodējiet vienu pretējās puses tapu, lai turētu plāksni vietā, pirms lodējat citas tapas.

Ievērojiet Gnd saites vadu no CLK līdz GND pabeigtajā daļā. Tas tiek instalēts PĒC programmēšanas, lai novērstu troksni CLK ievadē, izraisot nRF52 mikroshēmu augstas strāvas atkļūdošanas režīmā

Montāžas futrālis

Montāžas korpuss tika izgatavots no diviem perspex gabaliem, 110 mm x 35 mm, 3 mm biezs. 3,5 mm gabals zem saules baterijām tika piesitināts, lai paņemtu 3 mm neilona skrūves. Šī pārskatītā konstrukcija ir vienkāršāka, salīdzinot ar 1. versiju, un uzlabo gaisa plūsmu ap sensoru. Papildu caurumi katrā galā ir paredzēti montāžai, piemēram, izmantojot kabeļu saites.

4. darbība. Kodēšanas aizsardzības karoga NRF52 noņemšana

Kodēšanas aizsardzības karoga NRF52 noņemšana
Kodēšanas aizsardzības karoga NRF52 noņemšana
Kodēšanas aizsardzības karoga NRF52 noņemšana
Kodēšanas aizsardzības karoga NRF52 noņemšana
Kodēšanas aizsardzības karoga NRF52 noņemšana
Kodēšanas aizsardzības karoga NRF52 noņemšana

Pievienojiet temperatūras/mitruma paneli programmētājam, kas aprakstīts 1. daļā, kā parādīts iepriekš.

Ja saules baterijas un baterijas ir atvienotas, Vin un Gnd ir pievienoti programmētāja Vdd un Gnd (dzeltenie un zaļie vadi), un SWCLK un SWDIO ir savienoti ar programmētāja galvenes plates Clk un SIO (baltie un pelēkie vadi)

Programmas nRF52 aizsardzības noņemšana

No Nordic Semi - Debug and Trace lapas DAP - Debug Access Port. Ārējais atkļūdotājs var piekļūt ierīcei, izmantojot DAP. DAP ievieš standarta ARM® CoreSight ™ seriālo vadu atkļūdošanas portu (SW-DP). SW-DP ievieš seriālo vadu atkļūdošanas protokolu (SWD), kas ir divu kontaktu seriālais interfeiss, SWDCLK un SWDIO

Svarīgi: SWDIO līnijai ir iekšējs pievilkšanas rezistors. SWDCLK līnijai ir iekšējais nolaižamais rezistors.

CTRL -AP - vadības piekļuves ports. Vadības piekļuves ports (CTRL-AP) ir pielāgots piekļuves ports, kas ļauj kontrolēt ierīci pat tad, ja piekļuves porta aizsardzība atspējo citus piekļuves portus DAP. Piekļuves porta aizsardzība bloķē atkļūdotājam lasīšanas un rakstīšanas piekļuvi visiem CPU reģistriem un atmiņas kartētajām adresēm. Atspējot piekļuves porta aizsardzību. Piekļuves porta aizsardzību var atspējot tikai, izdodot komandu ERASEALL, izmantojot CTRL-AP. Šī komanda izdzēsīs zibatmiņu, UICR un RAM.

Atlasiet CMSIS-DAP kā daļiņu atkļūdotāja programmētāju un atlasiet nRF5 Flash SoftDevice

Ja zibspuldze darbojas, tad tas ir labi, bet bieži vien moduļi būs aizsargāti pret pārprogrammēšanu, un jūs saņemsit šo kļūdas izvadi Arduino logā

Atvērt On-Chip atkļūdotāju 0.10.0-dev-00254-g696fc0a (2016-04-10-10: 13) Licencēts saskaņā ar GNU GPL v2 Kļūdu ziņojumus skatiet vietnē https://openocd.org/doc/doxygen/bugs.html debug_level: 2 Info: tikai viena transporta iespēja; automātiskās atlases “swd” adaptera ātrums: 10000 kHz cortex_m reset_config sysresetreq Informācija: CMSIS-DAP: SWD Atbalstītā informācija: CMSIS-DAP: Interfeisa inicializētā (SWD) informācija: CMSIS-DAP: FW versija = 1.10 Informācija: SWCLK/TCK = 1 SWDIO/ TMS = 1 TDI = 0 TDO = 0 nTRST = 0 nRESET = 1 Informācija: CMSIS-DAP: saskarnei gatava informācija: ātruma samazināšanas pieprasījums: 10000 kHz līdz 5000 kHz maksimālā informācija: pulksteņa ātrums 10000 kHz Info: SWD IDCODE 0x2ba01477 Kļūda: nevarēja atrast MEM -AP, lai kontrolētu kodolu Kļūda: Mērķis vēl nav pārbaudīts Kļūda, mirgojot SoftDevice.

Tādā gadījumā nRF52 ir jāiestata komandu reģistrs ERASEALL, lai notīrītu atmiņu un padarītu ierīci atkal programmējamu. OpenOCD versija, kas piegādāta kopā ar sandeepmistry nRF52, neietver apreg komandu, kas nepieciešama, lai ierakstītu komandu reģistrā ERASEALL, tāpēc jums jāinstalē jaunāka versija.

Instalējiet OpenOCD versiju OpenOCD-20181130 vai jaunāku. Iepriekš apkopotā Windows versija ir pieejama vietnē https://gnutoolchains.com/arm-eabi/openocd/ Jaunākais kods ir pieejams vietnē

Atveriet komandu uzvedni un mainiet dir uz OpenOCD instalācijas direktoriju un ievadiet komandu

bin / openocd.exe -d2 -f interfeiss/cmsis -dap.cfg -f target/nrf52.cfg

Atbilde ir

Atvērt On-Chip atkļūdotāju 0.10.0 (2018-11-30) [https://github.com/sysprogs/openocd]Licencēts saskaņā ar GNU GPL v2 Lai uzzinātu par kļūdām, lasiet https://openocd.org/doc/doxygen/ bugs.html debug_level: 2 Informācija: automātiski atlasot pirmās pieejamās sesijas transportu "swd". Lai ignorētu, izmantojiet “transportēšanas atlasi”. adaptera ātrums: 1000 kHz cortex_m reset_config sysresetreq Info: Klausīšanās portā 6666 tcl savienojumiem Info: Klausīšanās portā 4444 telnet savienojumiem Info: CMSIS-DAP: SWD Atbalstītā informācija: CMSIS-DAP: FW versija = 1.10 Info: CMSIS-DAP: Interfeisa inicializētā (SWD) informācija: SWCLK/TCK = 1 SWDIO/TMS = 1 TDI = 0 TDO = 0 nTRST = 0 nRESET = 1 Informācija: CMSIS-DAP: saskarne gatava Info: pulksteņa ātrums 1000 kHz Informācija: SWD DPIDR 0x2ba01477 Kļūda: Nevarēja atrast MEM-AP, lai kontrolētu galveno informāciju. Klausīšanās portā 3333 gdb savienojumiem

Pēc tam atveriet termināļa logu, piem. TeraTerm (Windows) vai CoolTerm (Mac) un izveidojiet savienojumu ar 127.0.0.1 portu 4444

Telnet logā tiks parādīts> un komandu uzvednē tiks parādīta informācija: pieņem “telnet” savienojumu tcp/4444

Telnet logā (ti, TeraTerm) typenrf52.dap apreg 1 0x04šis atgriež 0x00000000, norādot, ka mikroshēma ir aizsargāta. Tad typenrf52.dap apreg 1 0x04 0x01un thennrf52.dap apreg 1 0x04this atgriež 0x00000001, kas parāda, ka mikroshēma nākamajā restartēšanas reizē ir iestatīta uz ERASEALL.

Aizveriet telnet savienojumu un arī izmantojiet Ctrl-C, lai komandu uzvednē izietu no programmas openOCD un pēc tam ieslēgtu nRF52 moduli, un tas būs gatavs programmēšanai.

Tagad mēģiniet mirgot mīkstajā ierīcē.

Tagad jūs varat ieprogrammēt moduli nRF52 no Arduino.

5. darbība: SKYLAB SKB369 programmēšana

SKYLAB SKB369 programmēšana
SKYLAB SKB369 programmēšana
SKYLAB SKB369 programmēšana
SKYLAB SKB369 programmēšana
SKYLAB SKB369 programmēšana
SKYLAB SKB369 programmēšana

Aizveriet Arduino un atkārtoti instalējiet jaunāko pfod_lp_nrf52 atbalsta versiju, izpildot norādījumus par instalēšanu pfod_lp_nrf52. Jaunākajā pfod_lp_nrf52 ietilpst SKYLAB SKB369 Nano2 nomaiņas plāksne. Atlasiet to kā dēli, un pēc tam varat to ieprogrammēt, izmantojot lp_BLE_TempHumidity, lp_BLE_TempHumidity_R3.zip 3. versiju, kā aprakstīts 2. daļā.

Ja programmēšana neizdodas. Aizveriet visus Arduino logus, noņemiet USB kabeļus, restartējiet Arduino un atkal pievienojiet programmētāja USB kabeli un atkal pievienojiet nRF52 moduļa USB padevi un mēģiniet vēlreiz.

Pēc tam izveidojiet savienojumu, izmantojot pfodApp, lai parādītu pašreizējo un vēsturisko temperatūru un mitrumu. Kad esat parādījis vēsturisko diagrammu, rādījumi ar milisekundes laika zīmogiem tiek saglabāti jūsu mobilā žurnāla failā un pieejami arī neapstrādātu datu ekrānā.

Žurnāla failā ir arī papildu dati, kas nepieciešami, lai izklājlapā atkārtoti izveidotu datuma un laika grafikus. Skatiet Arduino datumu un laiku, izmantojot milis () un pfodApp

6. darbība: jaunas Arduino NRF52 plates definīcijas izveide

Jaunas Arduino NRF52 plates definīcijas izveide
Jaunas Arduino NRF52 plates definīcijas izveide
Jaunas Arduino NRF52 plates definīcijas izveide
Jaunas Arduino NRF52 plates definīcijas izveide
Jaunas Arduino NRF52 plates definīcijas izveide
Jaunas Arduino NRF52 plates definīcijas izveide
Jaunas Arduino NRF52 plates definīcijas izveide
Jaunas Arduino NRF52 plates definīcijas izveide

Lai atbalstītu jaunu nRF52 plāksni, jums a) jāpievieno jauns direktorijs direktoriju variantos ar tāfeles failiem un b) jārediģē fails boards.txt, lai pievienotu jauno dēli Arduino.

Pievienojot jaunu nRF52 plates variantu

Kā aprakstīts 1. daļā, Pfod_lp_nrf52 aparatūras atbalsta instalēšana, atrodiet sandeepmistry pakotnes aparatūras apakšdirektoriju, kuru esat atjauninājis ar pfod_lp_nrf52 atbalstu. Atveriet apakšdirektoriju / aparatūra / nRF5 / 0.6.0 / varianti un izveidojiet jaunu direktoriju savai jaunajai plāksnei, piem. variant.cpp un pins_arduino.h Jūs varat tos kopēt no citiem dēļu variantu direktorijiem. SKYLAB_SKB369_Nano2 aizstāšanai es sākotnēji nokopēju failus no RedBear_BLENano2 varianta.

failu pins_arduino.h

Fails pins_arduino.h nav jāmaina. Tas vienkārši ietver failu var.h

variants.h fails

Rediģējiet failu Variant.h, lai noteiktu kopējo tāfelei piesprausto tapu skaitu, PINS_COUNT

PIEZĪME. Sandeepmistry paketē tiek ignorēti NUM_DIGITAL_PINS, NUM_ANALOG_INPUTS un NUM_ANALOG_OUTPUTS iestatījumi

Ja jūsu dēlis padara pieejamus vairāk vai mazāk analogās tapas, atjauniniet / * Analog Pins * / sadaļu variant.h failā.

PIEZĪME. NanoV2 un SKYLAB paneļiem analogās tapas ir kartētas ar digitālajām tapām A0 == D0 utt

Tas nav būtiski. Jūs varat piešķirt analogās ieejas jebkurai ērtai Arduino tapai. Piemēru skatiet failos blue/variant.h un blue/variant.cpp.

Mikroshēmai nRF52832 ir 8 analogās ieejas tapas, bet SKYLAB_SKB369_Nano2 nomaiņas dēlis padara pieejamus tikai 6 no tiem, lai tie atbilstu Nano2.

Visi pin numuri, izņemot RESET_PIN, failā variant.h ir Arduino pin numuri. Tas ir, #define PIN_A0 (0) nozīmē, ka D0 arduino skicē ir tāda pati tapa kā A0. RESET_PIN ir izņēmums. Šis skaitlis ir nRF52823 mikroshēmas tapas numurs, un 21 ir vienīgā derīgā izvēle. Tomēr pfod_lp_nrf52 atbalsts neiespējo nRF52832 atiestatīšanas tapu

variants.cpp fails

Failā variant.cpp ir tikai viens ieraksts - masīvs g_ADigitalPinMap , kas kartē Arduino pin numurus ar nRF52832 mikroshēmu P0.. tapas

PIEZĪME. Plātnēs NanoV2 un SKYLAB Arduino analogās tapas A0, A1… ir tādas pašas kā Arduino digitālās tapas D0, D1… tāpēc pirmajiem ierakstiem g_ADigitalPinMap ir jābūt kartē uz AINx tapu numuriem mikroshēmā nRF52832

Attiecībā uz analogo ieeju, ko nodrošina jūsu dēlis, šiem ierakstiem g_ADigitalPinMap ir jāatbilst nRF52832 AIN0, AIN1, AIN2 uc pin numuriem. i., AIN0 ir mikroshēmas tapa P0.02, AIN1 ir mikroshēmas tapa P0.03 utt. skatiet iepriekš minēto nRF52832 tapu izkārtojumu.

Nederīgu kartējumu gadījumā izmantojiet (uint32_t) -1. Piemēram, SKYLAB_SKB369_Nano2 nomaiņas plāksnei nav iebūvēta gaismas diode D13, tāpēc tā pozīcija ir kartēta uz (uint32_t) -1

Failā pfod_lp_nrf52.zip Redbear NanoV2, SKYLAB SKB369 un GT832E_01 variantu apakškatalogos ir attēli, kuros parādīti kartējumi, kas izveidoti pēc varianta.cpp. (Skatīt attēlus iepriekš)

SKYLAB SKB369 gadījumā ir daudz adatas, no kurām izvēlēties. Tiek kartēts tikai pietiekami daudz, lai tas atbilstu NanoV2. GT832E_01 gadījumā ir jākartē visas pieejamās tapas. Pat tad ir pieejami tikai trīs (3) analogie ievadi, nevis seši (6) NanoV2. Tāpat kā šīs divas NFC tapas, P0.09 un P0.10, ir jākonfigurē kā GPIO. Skatiet tālāk nRF52 NFC tapas kā GPIO konfigurēšana.

Faila boards.txt atjaunināšana

Šeit ir ieraksts SKYLAB_SKB369_Nano2replacement failā boards.txt.

## SKYLAB_SKB369 Nano2 nomaiņaSKYLAB_SKB369_NANO2_REPLACEMENT.name =*SKYLAB SKB369 Nano2 aizstāšana

SKYLAB_SKB369_NANO2_REPLACEMENT.upload.tool = smilšu ķīmija: openocd

SKYLAB_SKB369_NANO2_REPLACEMENT.upload.protocol = cmsis-dap SKYLAB_SKB369_NANO2_REPLACEMENT.upload.target = nrf52 SKYLAB_SKB369_NANO2_REPLACEMENT. SKYLAB_SKB369_NANO2_REPLACEMENT.upload.use_1200bps_touch = false

SKYLAB_SKB369_NANO2_REPLACEMENT.bootloader.tool = smilšu ķīmija: openocd

SKYLAB_SKB369_NANO2_REPLACEMENT.build.mcu = garoza-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 = cieta -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 Iestatījumi

Komentāri - rindas, kas sākas ar #, ir komentāri.

Prefikss - katrai tāfelei ir nepieciešams unikāls prefikss, lai identificētu tās vērtības. Šeit prefikss irSKYLAB_SKB369_NANO2_REPLACEMENT.

Nosaukums - SKYLAB_SKB369_NANO2_REPLACEMENT.name rindā ir norādīts tāfeles nosaukums, kas jāparāda Arduino tāfeles izvēlnē.

Augšupielādes rīks - augšupielādes bloks SKYLAB_SKB369_NANO2_REPLACEMENT.upload nosaka, kuru rīku izmantot augšupielādei. Ja izmantojat daļiņu atkļūdotāju, izmantojiet protokolu = cmsis-dap, kā parādīts iepriekš.

Bootloader - šī rinda ir vienāda visiem dēļiem šajā boards.txt

Veidot - šajā blokā ir jāatjaunina tikai divas rindas. Rindā SKYLAB_SKB369_NANO2_REPLACEMENT.build.variant ir norādīts šī paneļa direktorija nosaukums variantu apakšdirektorijā. SKYLAB_SKB369_NANO2_REPLACEMENT.build.board ir vērtība, kas pievienota ARDUINO_ un pēc tam definēta, apkopojot kodu. piem. -DARDUINO_SKYLAB_SKB369_Nano2replacement Tas ļauj iespējot/atspējot koda daļas noteiktiem dēļiem.

Zemas frekvences pulkstenis - šī rinda, SKYLAB_SKB369_NANO2_REPLACEMENT.menu.lfclk.lfrc.build.lfclk_flags, norāda zemfrekvences pulksteņa avotu, ko izmanto lp_timer. Ir trīs iespējas: -DUSE_LFXO, -DUSE_LFRC un -DUSE_LFSYNT. Labākā izvēle ir -DUSE_LFXO, ja plāksnei ir ārējs 32Khz kristāls. Ja nē, tad izmantojiet -DUSE_LFRC, kas izmanto iekšējo RC oscilatoru un patērē nedaudz vairāk strāvas, par ~ 10uA vairāk un ir daudz retāk mazāk precīzs. Nelietojiet -DUSE_LFSYNT, jo tādējādi mikroshēma visu laiku darbojas, kā rezultātā rodas mA strāvas samazināšanās.

Softdevice - pfod_lp_nrf52 atbalsta tikai nRF52 mikroshēmas un softdevice s132, tāpēc šim blokam nav vajadzīgas nekādas izmaiņas, izņemot prefiksu.

NRF52 NFC tapas pārkonfigurēšana kā GPIO

Pēc noklusējuma nRF52 tapas, P0.09 un P0.10 ir konfigurētas izmantošanai kā NFC un paredzētas savienošanai ar NFC antenu. Ja jums tie jāizmanto kā vispārējas nozīmes I/O tapas (GPIO), jums jāpievieno definīcija, -DCONFIG_NFCT_PINS_AS_GPIOS, šīs dēļa… menu.softdevice.s132.build.extra_flags apkopot iestatījumus failā boards.txt.

Piemēram, pfod_lp_nrf52.zip, pārkonfigurē GT832E_01 tapas izmantošanai kā I/O. Šīs plates sadaļai GT832E_01 failā boards.txt ir pievienota šāda definīcija

GT832E_01.izvēlne.softdevice.s132.build.extra_flags = -DNRF52 -DS132 -DNRF51_S132 -DCONFIG_NFCT_PINS_AS_GPIOS

Arī saites skripts pfod_lp_nrf52.zip ir mainīts, lai saglabātu šo iestatījumu, un tas nav jāmaina.

7. solis. Secinājums

Šajā apmācībā ir parādīts Redbear NanoV2 aizstājējs, izmantojot SKYLAB SKB369 moduli. Ar akumulatoru/saules enerģiju darbināms temperatūras mitruma monitors tika izmantots kā piemērs ļoti zemas jaudas BLE projektam Arduino SKYLAB modulim. Padeves strāvas ~ 29uA, kur tas tiek sasniegts, noregulējot savienojuma parametrus. Tā rezultātā CR2032 monētu šūnu akumulatora darbības laiks bija ~ 10 mēneši. Ilgāk lielākas ietilpības monētu elementiem un baterijām. Pievienojot divas lētas saules baterijas, akumulatora darbības laiks tika pagarināts par 50% vai vairāk. Spilgtai istabas gaismai vai galda lampai pietiek, lai monitoru darbinātu no saules baterijām.

Šī apmācība aptvēra arī mikroshēmas aizsardzības noņemšanu no iepriekš ieprogrammēta nRF52 un to, kā iestatīt jaunu plates definīciju, lai tā atbilstu jūsu PCB/shēmai

Android programmēšana nav nepieciešama. PfodApp to visu apstrādā.

Ieteicams: