Sisällysluettelo:

Helppo erittäin pienitehoinen BLE Arduinossa, osa 3 - Nano V2 -vaihto - Rev 3: 7 vaihetta (kuvilla)
Helppo erittäin pienitehoinen BLE Arduinossa, osa 3 - Nano V2 -vaihto - Rev 3: 7 vaihetta (kuvilla)

Video: Helppo erittäin pienitehoinen BLE Arduinossa, osa 3 - Nano V2 -vaihto - Rev 3: 7 vaihetta (kuvilla)

Video: Helppo erittäin pienitehoinen BLE Arduinossa, osa 3 - Nano V2 -vaihto - Rev 3: 7 vaihetta (kuvilla)
Video: Output DC or AC Voltage using MCP4725 DAC with LCD and PWM to Voltage Converter with Arduino 2024, Marraskuu
Anonim
Helppo erittäin pienitehoinen BLE Arduinossa, osa 3 - Nano V2 -vaihto - versio 3
Helppo erittäin pienitehoinen BLE Arduinossa, osa 3 - Nano V2 -vaihto - versio 3
Helppo erittäin pienitehoinen BLE Arduinossa, osa 3 - Nano V2 -vaihto - versio 3
Helppo erittäin pienitehoinen BLE Arduinossa, osa 3 - Nano V2 -vaihto - versio 3
Helppo erittäin pienitehoinen BLE Arduinossa, osa 3 - Nano V2 -vaihto - versio 3
Helppo erittäin pienitehoinen BLE Arduinossa, osa 3 - Nano V2 -vaihto - versio 3

Päivitys: 7. huhtikuuta 2019 - Rev 3 of lp_BLE_TempHumidity, lisää päivämäärä/aika -käyrät pfodApp V3.0.362+-toiminnon avulla ja automaattinen kuristus datan lähettämisessä

Päivitys: 24. maaliskuuta 2019 - lp_BLE_TempHumidity Rev 2, lisää piirtovaihtoehtoja ja i2c_ClearBus, lisää GT832E_01 -tuen

Johdanto

Tämä opetusohjelma, A Redbear Nano V2 Replacement, on osa 3: sta 3. Tämä on tämän projektin versio 2. Versio 2 PCB sisältää nappipariston ja anturin asennuksen, yksinkertaistaa rakennetta ja parantaa ilmavirtaa anturin ympärillä ja suojaa sitä suoralta auringonvalolta. Versio 1 on täällä.

Osa 1 - Hyvin pienitehoisten BLE -laitteiden rakentaminen helpoksi Arduinon kansien avulla Arduinon asettaminen koodaamaan nRF52 pienitehoiset laitteet, ohjelmointimoduuli ja syöttövirran mittaus. Se kattaa myös erikoistehokkaat pienitehoiset ajastimet ja vertailijat sekä poistetut tulot ja pfodApp -sovelluksen käyttämisen nRF52 -laitteen yhdistämiseen ja ohjaamiseen.

Osa 2 - Erittäin alhaisen tehon lämpötilan kosteusmonitori kattaa käyttämällä Redbear Nano V2 -moduulia ja Si7021 -lämpötila- / kosteusanturia pienitehoisen akun / aurinkomonitorin rakentamiseen. Se kattaa myös Si7021 -kirjaston muuttamisen pienitehoiseksi, BLE -laitteen virittämisen virrankulutuksen pienentämiseksi <29uA: een ja mukautetun lämpötila-/kosteusnäytön suunnittelun matkapuhelimeesi.

Osa 3 - Redbear Nano V2 -varaus, tämä, kattaa muiden nRF52 -pohjaisten moduulien käytön Nano V2: n sijasta. Se kattaa syöttökomponenttien valinnan, rakentamisen, nRF52 -sirun ohjelmointisuojauksen poistamisen, NFC -nastojen käytön normaalina GPIO: na ja uuden nRF52 -kortin määrittämisen Arduinossa.

Tämä opas on käytännön sovellus osassa 1 Rakennetaan erittäin pienitehoisia BLE -laitteita, jotka on tehty helpoiksi Arduinolla rakentamalla erittäin pienitehoinen BLE -lämpötila- ja kosteusmonitori käyttämällä SKYLAB SBK369 -levyä Nano V2 -lisälaitteena. Tämä opetusohjelma kattaa uuden piirilevyn määrittelyn luomisen ja nRF52-ohjelmointisuojan poistamisen, jotta se voidaan ohjelmoida uudelleen. Tämä opetusohjelma käyttää samaa luonnosta kuin osa 2 samoilla viritetyillä BLE -parametreilla pienen virrankulutuksen saamiseksi, ja sitä voidaan käyttää paristosta TAI akusta + aurinko- tai aurinkoenergiasta. BLE -parametrien viritys pienelle teholle katettiin osassa 2

Rev 3 of lp_BLE_TempHumidity piirtää tiedot päivämäärän ja kellonajan mukaan käyttäen vain Arduino millis (). Katso Arduinon päivämäärä ja aika käyttämällä millis () ja pfodApp käyttäen pfodAppin uusinta versiota (V3.0.362+).

Pfod_lp_nrf52.zip: n versio 4 tukee myös GT832E_01 -moduulia, ja tämä opetusohjelma kattaa NFC nRF52 -nastojen käytön vakiona GPIO: na.

Täällä rakennettu näyttö toimii vuosia kolikkokennolla tai 2 x AAA -paristolla, jopa pidempään aurinkoavustimella. Sen lisäksi, että näyttö näyttää nykyisen lämpötilan ja kosteuden, näyttö tallentaa viimeiset 36 tuntia 10 minuutin mittausta ja viimeiset 10 päivää tunnit. Nämä voidaan kartoittaa Android -mobiililaitteellasi ja arvot voidaan tallentaa lokitiedostoon. Android -ohjelmointia ei tarvita, pfodApp hoitaa kaiken. Android -näyttöä ja -kartoitusta ohjaa täysin Arduino -luonnoksesi, joten voit muokata sitä tarpeen mukaan.

Osa 2 käytti Redbear Nano V2 -levyä nRF52832 BLE -komponentille. Tämä projekti korvaa sen halvemmalla SKYLAB SKB369 -levyllä. Kuten osassa 2, lämpötila- / kosteusanturissa käytetään Sparkfun Si7021 -katkolevyä. Si7021: n kanssa käytetään muokattua pienitehoista kirjastoa.

Vaihe 1: Miksi Nano V2: n vaihto?

i) Nano V2 oli poissa tuotannosta useita kuukausia, eikä se näytä sopivan Particle.io -kokoonpanoon, joten ei ole selvää, kuinka kauan se on saatavilla.

ii) Nano V2 on kalliimpi. Siinä on kuitenkin myös lisäominaisuuksia. Katso alempaa.

iii) Nano V2: ssa on komponentteja molemmilla puolilla, mikä antaa sille paremman profiilin ja vaikeuttaa asennusta.

iv) Nano V2 -laitteessa on rajoitettu määrä I/O -nastoja, ja D6: n ja D10: n käyttäminen vaatii lentäviä johtoja.

Vaikka Nano V2 -kortti on kalliimpi kuin SKYLAB SKB369 -levy, ~ US17 verrattuna ~ US5, Nano V2: ssa on enemmän ominaisuuksia. Nano V2 sisältää 3,3 V: n säätimen ja syöttökondensaattorit, lisäkomponentit nRF52 DC/DC -muuntimen käyttöön, siruantennin ja uFL SMT -antenniliittimen.

Toinen vaihtoehto on GT832E_01 -moduuli, jota www.homesmartmesh.com käyttää. Pfod_lp_nrf52.zip -version versio 4 tukee myös GT832E_01 -moduulin ohjelmointia. SKYLAB SKB369 ja GT832E_01 ovat saatavilla osoitteesta

Redbearissa (Particle.io) on myös paljas moduuli ilman 3V3 -säädintä, DC/DC -komponentteja tai 32 kHz: n kristallikomponentteja.

Ääriviivat

Tässä projektissa on 4 suhteellisen itsenäistä osaa:-

Komponenttien valinta ja rakenne nRF52 -koodaussuoja -lipun poistaminen ja luonnoksen ohjelmointi Uuden Arduino nRF52 -kortin määritelmän luominen nRF52 -NFC -nastojen määrittäminen uudelleen GPIO: ksi

Vaihe 2: Komponenttien valinta ja rakentaminen

Komponenttien valinta

Osassa 2 valittujen nRF52832- ja Si7021 -komponenttien lisäksi tämä projekti lisää 3,3 V: n säätimen ja syöttökondensaattorit.

Jännitteen säätimen komponentti

Tässä käytetty säädin on MC87LC33-NRT. Se voi käsitellä jopa 12 V: n tuloja ja sen lepovirta on <3,6uA, tyypillisesti 1,1uA. Nano V2: n TLV704 -säätimellä on hieman suurempi lepovirta, tyypillisesti 3,4uA, ja se pystyy käsittelemään korkeampia tulojännitteitä, jopa 24 V. MC87LC33-NRT valittiin sen sijaan, koska sen tietolomake määrittää, miten se reagoi, kun tulojännite laskee alle 3,3 V: n, kun TLV704-tietolomake ei.

TLV704 määrittää vähintään 2,5 V: n syöttöjännitteen, eikä taulukosta käy selväksi, mitä sen alla tapahtuu. NRF52832: n jännite laskee 1,7 volttiin ja Si7023: n 1,9 volttiin. Toisaalta MC87LC33-NRT määrittää tulo-/lähtöjänniteerot 0V: iin asti pienillä virroilla (taulukko 18). Komponenttien valinnan vuoksi MC87LC33-NRT valittiin, koska sillä on määritetty suorituskyky.

Syöttökondensaattorit

MC87LC33-NRT-säädin tarvitsee joitain syöttökondensaattoreita vakauden ja vasteen aikaansaamiseksi. Lähtökondensaattoria> 0,1uF suositellaan teknisissä tiedoissa. SKYLAB SBK369 määrittää myös 10uF/0,1uF kondensaattorit virtalähteeseen lähellä korttia. Suuremmat kondensaattorit auttavat syöttämään nRF52 TX -virtapiikkejä. Tässä käytettiin 4 x 22uF 25V ja 3 x 0,1uF 50V keraamisia kondensaattoreita. Yksi 22uF ja 0,1uF kondensaattori sijoitettiin SKYLAB SBK369: n lähelle, 0,1uF sijoitettiin lähelle MC87LC33-NRT: n lähtöä vakauden varmistamiseksi ja 22uF ja 0,1uF sijoitettiin MC87LC33-NRT: n tuloon ja lisäksi 2 x 22uF kondensaattoria juotettuna Vin/GND -nastojen poikki lisävirtasäiliönä. Vertailun vuoksi NanoV2 -kortilla on 22uF / 0,1uF TLV704 -säätimen tulossa ja 0,1uF ulostulossa.

Lisävirtasäiliön kondensaattorit asennettiin 3,3 V: n säätimen tuloon, jotta ne latautuisivat korkeammalle jännitteelle käytettäessä aurinkokennoja. Lataaminen korkeammalle jännitteelle vastaa suuremman virran tallentamista Tx -piikkien syöttämiseksi.

Keraamisia X5R -kondensaattoreita käytetään, koska niillä on alhainen sarjavastus ja pieni vuotovirta. Vastus on tyypillisesti 100 000 000 Ω tai 1 000 MΩ - µF, joka on aina pienempi. Joten 22uF: lle meillä on 22000 MΩ, eli 0,15 nA vuoto 3,3 V: n jännitteellä tai 0,6 nA neljällä 22uF kondensaattorilla. Se on vähäpätöinen. Vertailun vuoksi Alhainen ESR, pieni vuoto Panasonicin elektrolyyttikondensaattoreiden vuotovirrat ovat <0,01 CV. Joten 22uF 16V kondensaattorin vuoto on <10uA. Huomautus: Tämä on vuoto nimellisjännitteellä, tässä tapauksessa 16 V. Vuoto on pienempi pienemmillä jännitteillä, eli <2,2uA 3,3 V: n jännitteellä.

Osaluettelo

Arvioidut yksikkökustannukset joulukuun 2018 aikana, ~ US $ 61, ilman toimituskuluja ja ohjelmoijaa osasta 1

  • SKYLAB SKB369 ~ US $ 5 esim. Aliexpress
  • Sparkfun Si7021 -katkaisulauta ~ 8 dollaria
  • 2 x 53mm x 30mm 0,15W 5V aurinkokennoja, esim. Overfly ~ US $ 1.10
  • 1 x piirilevy SKYLAB_TempHumiditySensor_R2.zip ~ US $ 25 5 off www.pcbcart.com
  • 1 x MC78LC33 3.3V -säädin, esim. Digikey MC78LC33NTRGOSCT-ND ~ US $ 1
  • 2 x 0.1uF 50V keraaminen C1608X5R1H104K080A esim. Digikey 445-7456-1-ND ~ US $ 0.3
  • 4 x 22uF 16V keraaminen GRM21BR61C226ME44L esim. Digikey 490-10747-1-ND ~ US $ 2
  • 1 x BAT54CW, esim. Digikey 497-12749-1-ND ~ US $ 0.5
  • 1 x 470R 0,5W 1% vastus esim. Digikey 541-470TCT-ND ~ US $ 0.25
  • 1 x 10V 1W zener SMAZ10-13-F esim. Digikey SMAZ10-FDICT-ND ~ 0,5 dollaria
  • 3 mm x 12 mm nailonruuvit, esim. Jaycar HP0140 ~ 3 AUD
  • 3 mm x 12 mm nailonmutterit, esim. Jaycar HP0146 ~ 3 dollaria
  • Scotch Pysyvä asennusnauha Cat 4010 esim. Amazonista ~ US $ 6.6
  • CR2032 -paristopidike, esim. HU2032-LF ~ 1,5 dollaria
  • CR2032 -akku ~ 1 USD
  • Perspex -arkki, 3,5 mm ja 8 mm
  • pfodApp ~ 10 dollaria
  • Juotospasta esim. Jaycar NS-3046 ~ AUD 13 dollaria

Vaihe 3: Rakentaminen

Rakentaminen
Rakentaminen
Rakentaminen
Rakentaminen
Rakentaminen
Rakentaminen

Projekti on rakennettu pienelle piirilevylle. PCBcart.com valmisti piirilevyn näistä Gerber -tiedostoista, SKYLAB_TempHumiditySensor_R2.zip. Piirilevy jäljittelee Nano V2 -pistoketta ja on riittävän yleiskäyttöinen käytettäväksi muissa BLE -projekteissa.

Tämä on kaavio (pdf -versio)

Juotetaan ensin SMD -komponentit ja asennetaan sitten SKYLAB SKB369 -levy

Lähes kaikki komponentit ovat pinta -asennuslaitteita (SMD). Kondensaattoreita ja IC: itä voi olla vaikea juottaa käsin. Ehdotettu menetelmä on pitää piirilevy ruuvipuristimena ja levittää pieni määrä juotospastaa tyynyille ja asettaa SMD -komponentit, lukuun ottamatta SKB369 -levyä piirilevylle. Käytä sitten lämpöpistoolilla lämpöä piirilevyn alapuolelle, kunnes juotospasta sulaa, ja suorita sitten nopea kulku levyn yläosan yli varoen räjäyttämästä komponentteja pois. Kosketa komponentteja lopuksi pienellä juotosraudalla. Ole varovainen kondensaattoreiden ja vastuksen kanssa, koska on helppo sulattaa molemmat päät ja saada komponentti irtoamaan juotettaessa toinen pää.

Tämä versio lisää ylimääräisiä 22uF 16V keraamisia kondensaattoreita. Nämä ylimääräiset kondensaattorit vähentävät akusta peräisin olevia virtapiikkejä ja vähentävät myös jännitehäviöitä, kun niitä syötetään aurinkokennoista. Niin kauan kuin aurinkokennojen jännite pysyy akun jännitteen yläpuolella, akusta ei oteta virtaa.

Kun SMD -komponentit on asennettu, voit juottaa SKYLAB SKB369 -levyyn. SKB369 -kielekkeiden toisella puolella on kaksi testipisteen reikää. Aseta kaksi tappia pahvipohjaan SKB369 -levyn sijoittamiseksi ja kohdista tapit varovasti. (Katso esimerkkikuva yllä Revision 1 -piirilevyä käyttäen) Juotos sitten yksi vastakkaisen puolen tappi pitämään levy paikallaan ennen muiden nastojen juottamista.

Huomaa Gnd -linkkilanka CLK: sta GND: hen valmiissa osassa. Tämä asennetaan ohjelmoinnin JÄLKEEN estääkseen kohinaa CLK -tulossa käynnistämästä nRF52 -sirun suurvirran virheenkorjaustilaan

Asennuskotelo

Asennuskotelo valmistettiin kahdesta perspex -kappaleesta, 110 mm x 35 mm, 3 mm paksu. Aurinkokennojen alla olevaa 3,5 mm: n kappaletta napautettiin 3 mm: n nailonruuvien ottamiseksi. Tämä uudistettu rakenne yksinkertaistaa versiota 1 ja parantaa ilmavirtaa anturin ympärillä. Kummassakin päässä olevat ylimääräiset reiät ovat asennusta varten, esimerkiksi nippusiteillä.

Vaihe 4: NRF52 -koodaussuojalipun poistaminen

NRF52 -koodaussuojalipun poistaminen
NRF52 -koodaussuojalipun poistaminen
NRF52 -koodaussuojalipun poistaminen
NRF52 -koodaussuojalipun poistaminen
NRF52 -koodaussuojalipun poistaminen
NRF52 -koodaussuojalipun poistaminen

Liitä lämpötila-/kosteuslevy osassa 1 kuvattuun ohjelmoijaan yllä kuvatulla tavalla.

Kun aurinkokennot ja akut on irrotettu pistorasiasta, Vin ja Gnd on kytketty ohjelmoijan Vdd- ja Gnd -liittimiin (keltainen ja vihreä johto) ja SWCLK ja SWDIO yhdistetään ohjelmointilaitteen Clk- ja SIO -liittimiin (valkoinen ja harmaa johto)

NRF52 -ohjelman suojauksen poistaminen

Nordic Semi - Debug and Trace -sivulta DAP - Debug Access Port. Ulkoinen virheenkorjaaja voi käyttää laitetta DAP: n kautta. DAP käyttää tavallista ARM® CoreSight ™ -sarjan langallista virheenkorjausporttia (SW-DP). SW-DP toteuttaa Serial Wire Debug -protokollan (SWD), joka on kaksinapainen sarjaliitäntä, SWDCLK ja SWDIO

Tärkeää: SWDIO-linjassa on sisäinen vetovastus. SWDCLK-linjassa on sisäinen vedettävä vastus.

CTRL -AP - Ohjaa pääsyporttia. Control Access Port (CTRL-AP) on mukautettu pääsyportti, joka mahdollistaa laitteen ohjaamisen, vaikka pääsyportin suojaus poistaisi käytöstä muut DAP: n pääsyportit. Käyttöporttien suojaus estää virheenkorjaimen luku- ja kirjoitusoikeuden kaikkiin suoritinrekistereihin ja muistiin yhdistettyihin osoitteisiin. Poista pääsyportin suojaus käytöstä. Pääsyportin suojaus voidaan poistaa käytöstä vain antamalla ERASEALL-komento CTRL-AP: n kautta. Tämä komento poistaa Flash-, UICR- ja RAM -muistit.

Valitse CMSIS-DAP Particle's Debugger -ohjelmoijaksi ja valitse nRF5 Flash SoftDevice

Jos salama toimii, se on OK, mutta usein moduulit on suojattu uudelleen ohjelmointia vastaan ja saat tämän virheilmoituksen Arduino-ikkunassa

Open On-Chip Debugger 0.10.0-dev-00254-g696fc0a (10.4.2016: 13) Lisensoitu GNU GPL v2: n avulla. debug_level: 2 Info: vain yksi kuljetusvaihtoehto; autoselect 'swd' -sovittimen nopeus: 10000 kHz cortex_m reset_config sysresetreq Info: CMSIS-DAP: SWD Tuetut tiedot: CMSIS-DAP: Interface Initialised (SWD) Info: CMSIS-DAP: FW Version = 1.10 Info: SWCLK/TCK = 1 SWDIO/ TMS = 1 TDI = 0 TDO = 0 nTRST = 0 nRESET = 1 Info: CMSIS-DAP: Liitäntävalmis Info: nopeuspyynnön pienentäminen: 10000 kHz-5000 kHz maksimi Info: kellotaajuus 10000 kHz Info: SWD IDCODE 0x2ba01477 Virhe: MEM ei löydy -AP ytimen ohjaamiseen Virhe: Kohdetta ei ole vielä tutkittu Virhe vilkkuvan SoftDevice -laitteen kanssa.

Siinä tapauksessa sinun on asetettava ERASEALL -komentorekisteri nRF52: een muistin tyhjentämiseksi ja laitteen ohjelmoimiseksi uudelleen. Sandeepmistry nRF52: n mukana toimitettu openOCD -versio ei sisällä apreg -komentoa, joka tarvitaan kirjoittamiseen ERASEALL -komentorekisteriin, joten sinun on asennettava uudempi versio.

Asenna OpenOCD-versio OpenOCD-20181130 tai uudempi. Windowsin valmiiksi koottu versio on saatavana osoitteesta https://gnutoolchains.com/arm-eabi/openocd/ Uusin koodi on saatavilla osoitteesta

Avaa komentokehote ja muuta dir OpenOCD -asennushakemistoon ja anna komento

bin / openocd.exe -d2 -f -käyttöliittymä/cmsis -dap.cfg -f target/nrf52.cfg

Vastaus on

Open On-Chip Debugger 0.10.0 (2018-11-30) [https://github.com/sysprogs/openocd]Lisensoitu GNU GPL v2 -standardin mukaisesti. bugs.html debug_level: 2 Info: ensimmäisen käytettävissä olevan istunnon kuljetuksen "swd" automaattinen valinta. Voit ohittaa siirto valitsemalla. sovittimen nopeus: 1000 kHz cortex_m reset_config sysresetreq Info: Kuuntelu portilla 6666 tcl-yhteyksille Info: Kuuntelu portilla 4444 telnet-yhteyksille Info: CMSIS-DAP: SWD Tuetut tiedot: CMSIS-DAP: FW-versio = 1.10 Info: CMSIS-DAP: Käyttöliittymän alustus (SWD) Info: SWCLK/TCK = 1 SWDIO/TMS = 1 TDI = 0 TDO = 0 nTRST = 0 nRESET = 1 Info: CMSIS-DAP: Interface ready Info: kellotaajuus 1000 kHz Info: SWD DPIDR 0x2ba01477 Virhe: Ei löytynyt MEM-AP: tä ydinohjaimen ohjaamiseen. Info: Portin 3333 kuuntelu gdb-yhteyksiä varten

Avaa sitten pääteikkuna esim. TeraTerm (Windows) tai CoolTerm (Mac) ja muodosta yhteys 127.0.0.1 -porttiin 4444

Telnet -ikkunassa näkyy> ja komentokehotteessa näkyy Info: Telnet -yhteyden hyväksyminen laitteessa tcp/4444

Telnet -ikkunassa (eli TeraTerm) typenrf52.dap apreg 1 0x04tätä palauttaa 0x00000000, joka osoittaa, että siru on suojattu. Sitten typenrf52.dap apreg 1 0x04 0x01ja thennrf52.dap apreg 1 0x04this palauttaa 0x00000001, joka osoittaa, että siru on nyt asetettu ERASEALL -arvoon seuraavan uudelleenkäynnistyksen yhteydessä.

Sulje telnet-yhteys ja käytä myös Ctrl-C poistuaksesi OpenOCD-ohjelmasta komentokehotteessa ja käynnistä sitten nRF52-moduuli uudelleen ja se on nyt valmis ohjelmoimaan.

Yritä nyt vilkaista pehmeä laite uudelleen.

Voit nyt ohjelmoida nRF52 -moduulin Arduinolta.

Vaihe 5: SKYLAB SKB369 -ohjelmointi

SKYLAB SKB369 -ohjelmointi
SKYLAB SKB369 -ohjelmointi
SKYLAB SKB369 -ohjelmointi
SKYLAB SKB369 -ohjelmointi
SKYLAB SKB369 -ohjelmointi
SKYLAB SKB369 -ohjelmointi

Sulje Arduino ja asenna pfod_lp_nrf52-tuen uusin versio uudelleen noudattamalla Asenna pfod_lp_nrf52 -laitteen tuen ohjeita. Uusin pfod_lp_nrf52 sisältää SKYLAB SKB369 Nano2 -levyn. Valitse se tauluksi ja voit sitten ohjelmoida sen lp_BLE_TempHumidity -version 3, lp_BLE_TempHumidity_R3.zip avulla osassa 2 kuvatulla tavalla.

Jos ohjelmointi epäonnistuu. Sulje kaikki Arduino -ikkunat, irrota USB -kaapelit, käynnistä Arduino uudelleen ja kytke ohjelmoijan USB -kaapeli takaisin ja kytke nRF52 -moduulin USB -liitäntä takaisin ja yritä uudelleen.

Muodosta sitten yhteys pfodAppin kautta näyttääksesi nykyisen ja historiallisen lämpötilan ja kosteuden. Kun olet näyttänyt historiallisen käyrän, lukemat millisekunnin aikaleimoilla tallennetaan matkapuhelimesi lokitiedostoon ja ovat myös saatavilla raakatietojen näytössä.

Lokitiedosto sisältää myös lisätiedot, jotka ovat tarpeen päivämäärän ja kellonajan uudelleen luomiseksi laskentataulukkoon. Katso lisätietoja Arduinon päivämäärästä ja kellonajasta millis (): n ja pfodAppin avulla

Vaihe 6: Uuden Arduino NRF52 -levyn määritelmän luominen

Uuden Arduino NRF52 -levyn määritelmän luominen
Uuden Arduino NRF52 -levyn määritelmän luominen
Uuden Arduino NRF52 -levyn määritelmän luominen
Uuden Arduino NRF52 -levyn määritelmän luominen
Uuden Arduino NRF52 -levyn määritelmän luominen
Uuden Arduino NRF52 -levyn määritelmän luominen
Uuden Arduino NRF52 -levyn määritelmän luominen
Uuden Arduino NRF52 -levyn määritelmän luominen

Jos haluat tukea uutta nRF52 -korttia, sinun on a) lisättävä uusi hakemisto varianttihakemistoon levytiedostojen kanssa ja b) muokattava boards.txt -tiedostoa ja lisättävä uusi levy Arduinolle.

Lisätään uusi nRF52 -levyversio

Kuten osassa 1, Laitteiston pfod_lp_nrf52 asentaminen on kuvattu, etsi sandeepmistry-paketin laitteisto-alihakemisto, jonka olet päivittänyt pfod_lp_nrf52-tuella. Avaa / hardware / nRF5 / 0.6.0 / variantti-alihakemisto ja luo uusi hakemisto uudelle levyllesi, esim. variant.cpp ja pins_arduino.h Voit kopioida ne muiden levyn varianttien hakemistojen kautta. SKYLAB_SKB369_Nano2 -korvausta varten kopioin aluksi tiedostot RedBear_BLENano2 -variantista.

pins_arduino.h -tiedosto

Tiedostoa pins_arduino.h ei tarvitse muuttaa. Se sisältää vain variant.h -tiedoston

variant.h -tiedosto

Muokkaa variant.h -tiedostoa ja määritä taulullasi olevien nastojen kokonaismäärä, PINS_COUNT

HUOMAUTUS: Sandeepmistry -paketissa NUM_DIGITAL_PINS, NUM_ANALOG_INPUTS ja NUM_ANALOG_OUTPUTS asetuksia ohitetaan

Jos korttisi tarjoaa enemmän tai vähemmän analogisia nastoja, päivitä / * Analogiset nastat * / -osa variant.h -tiedostosta.

HUOMAUTUS: NanoV2- ja SKYLAB -levyissä analogiset nastat on yhdistetty digitaalisiin nastoihin A0 == D0 jne

Tämä ei ole välttämätöntä. Voit määrittää analogiset tulot mihin tahansa kätevään Arduino -nastaan. Katso esimerkkejä sinisistä/variant.h- ja blue/variant.cpp -tiedostoista.

NRF52832 -sirussa on 8 analogista sisääntulonappia, mutta SKYLAB_SKB369_Nano2 -vaihtolevy tarjoaa vain 6 niistä, jotka vastaavat Nano2: ta.

Kaikki PIN -numerot, paitsi RESET_PIN, variant.h -tiedostossa ovat Arduino -pin -numeroita. Eli #define PIN_A0 (0) tarkoittaa, että arduino -luonnoksen D0 on sama tappi kuin A0. RESET_PIN on poikkeus. Tämä numero on nRF52823 -sirun nastan numero ja 21 on ainoa kelvollinen valinta. Pfod_lp_nrf52 -tuki ei kuitenkaan salli nRF52832 -nollaustappia

variant.cpp -tiedosto

Variant.cpp -tiedostossa on vain yksi merkintä, g_ADigitalPinMap -matriisi, joka yhdistää Arduino -pin -numerot nRF52832 -sirulle P0.. nastat

HUOMAUTUS: NanoV2- ja SKYLAB -korteilla Arduino -analogiset nastat A0, A1… ovat samat kuin Arduino -digitaaliset nastat D0, D1… joten ensimmäisten merkintöjen g_ADigitalPinMap PITÄÄ kartoittaa AINx -nastanumeroihin nRF52832 -sirulla

Korttisi tarjoamille analogisille tuloille g_ADigitalPinMap : n merkintöjen on yhdistettävä nRF52832 AIN0, AIN1, AIN2 jne. eli AIN0 on sirutappi P0.02, AIN1 on sirutappi P0.03 jne. katso yllä oleva nRF52832 -nastainen asettelu.

Käytä (uint32_t) -1 virheellisiin määrityksiin. Esimerkiksi SKYLAB_SKB369_Nano2-vaihtolevyssä ei ole sisäänrakennettua LED-valoa D13, joten sen sijainti on määritetty (uint32_t) -1

Pfod_lp_nrf52.zip-versiossa Redbear NanoV2-, SKYLAB SKB369- ja GT832E_01-alihakemistot sisältävät kuvia, jotka osoittavat variant.cpp: n määrittämät kartoitukset. (Katso yllä olevat kuvat)

SKYLAB SKB369: n tapauksessa tappeja on runsaasti. Vain tarpeeksi kartoitetaan vastaamaan NanoV2: ta. GT832E_01: n tapauksessa kaikki käytettävissä olevat nastat on kartoitettava. Silloinkin käytettävissä on vain kolme (3) analogista tuloa NanoV2: n kuuden (6) sijasta. Tämän lisäksi molemmat NFC-nastat, P0.09 ja P0.10, on määritettävä uudelleen GPIO: ksi. Katso jäljempänä nRF52 NFC -nastojen uudelleenkonfigurointi GPIO: ksi.

Boards.txt -tiedoston päivittäminen

Tässä on SKYLAB_SKB369_Nano2replacement -merkintä boards.txt -tiedostossa.

## SKYLAB_SKB369 Nano2 ReplacementSKYLAB_SKB369_NANO2_REPLACEMENT.name =*SKYLAB SKB369 Nano2 Replacement

SKYLAB_SKB369_NANO2_REPLACEMENT.upload.tool = sandeepmistry: openocd

SKYLAB_SKB369_NANO2_REPLACEMENT. SKYLAB_SKB369_NANO2_REPLACEMENT.upload.use_1200bps_touch = false SKYLAB_SKB369_NANO2_REPLACEMENT.upload.wait_for_upload_port = false SKYLAB_SKB369_NANO2_REPLACEMENT.bload.native_us

SKYLAB_SKB369_NANO2_REPLACEMENT.bootloader.tool = sandeepmistry: openocd

SKYLAB_SKB369_NANO2_REPLACEMENT.build.mcu = aivokuori-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 = kova -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 Asetukset

Kommentit - #: lla alkavat rivit ovat kommentteja.

Etuliite - jokainen levy tarvitsee yksilöllisen etuliitteen arvojensa tunnistamiseksi. Tässä etuliite onSKYLAB_SKB369_NANO2_REPLACEMENT.

Nimi - SKYLAB_SKB369_NANO2_REPLACEMENT.name -rivi määrittää tämän kortin nimen, joka näytetään Arduinon tauluvalikossa.

Lataustyökalu - SKYLAB_SKB369_NANO2_REPLACEMENT.upload -lohko määrittää lataamiseen käytettävän työkalun. Jos käytät Particle Debuggeria, käytä protokollaa = cmsis-dap kuten yllä.

Bootloader - Tämä rivi on sama kaikille boards.txt -levyille

Koostaminen - Vain kaksi riviä on päivitettävä tässä lohkossa. SKYLAB_SKB369_NANO2_REPLACEMENT.build.variantti-rivi määrittää tämän levyn hakemiston nimen variantti-alihakemistossa. SKYLAB_SKB369_NANO2_REPLACEMENT.build.board on arvo, joka liitetään ARDUINO_ -koodiin ja määritetään sitten koodia koottaessa. esim. -DARDUINO_SKYLAB_SKB369_Nano2replacement Tämän avulla voit ottaa käyttöön tai poistaa käytöstä koodin osia tietyille levyille.

Matalan taajuuden kello - Tämä rivi, SKYLAB_SKB369_NANO2_REPLACEMENT.menu.lfclk.lfrc.build.lfclk_flags, määrittää lp_timerissa käytettävän matalataajuisen kellon lähteen. Vaihtoehtoja on kolme: -DUSE_LFXO, -DUSE_LFRC ja -DUSE_LFSYNT. Paras valinta on -DUSE_LFXO, jos piirilevyssä on ulkoinen 32 kHz: n kide. Jos ei, käytä -DUSE_LFRC, joka käyttää sisäistä RC -oskillaattoria ja kuluttaa hieman enemmän virtaa, ~ 10uA enemmän ja on paljon vähemmän epätarkka. Älä käytä -DUSE_LFSYNT -laitetta, koska se pitää sirun käynnissä koko ajan, mikä johtaa mA: n virranottoon.

Softdevice - pfod_lp_nrf52 tukee vain nRF52 -siruja ja softdevice s132, joten tähän lohkoon ei tarvitse tehdä muita muutoksia kuin etuliite.

NRF52 NFC -nastojen määrittäminen uudelleen GPIO: ksi

Oletusarvoisesti nRF52 -nastat, P0.09 ja P0.10 on määritetty käytettäväksi NFC -ominaisuutena ja odottavat olevan liitetty NFC -antenniin. Jos sinun on käytettävä näitä yleiskäyttöisinä I/O -nastoina (GPIO), sinun on lisättävä määritelmä, -DCONFIG_NFCT_PINS_AS_GPIOS, kyseisen levyn… menu.softdevice.s132.build.extra_flags -kokoamisasetuksiin boards.txt -tiedostossa.

Esimerkiksi pfod_lp_nrf52.zip määrittää GT832E_01-nastat uudelleen käytettäväksi I/O: na. Tämän kortin GT832E_01 -osioon, boards.txt -tiedostoon, on lisätty seuraava määritelmä

GT832E_01.menu.softdevice.s132.build.extra_flags = -DNRF52 -DS132 -DNRF51_S132 -DCONFIG_NFCT_PINS_AS_GPIOS

Myös linkin komentosarjaa pfod_lp_nrf52.zip -tiedostossa on muutettu tämän asetuksen säilyttämiseksi, eikä sitä tarvitse muuttaa.

Vaihe 7: Johtopäätös

Tässä opetusohjelmassa on esitetty korvaava Redbear NanoV2 SKYLAB SKB369 -moduulilla. Paristo-/aurinkoenergialla toimivaa lämpötilan kosteusmonitoria käytettiin esimerkkinä erittäin pienitehoisesta BLE -projektista Arduinossa SKYLAB -moduulille. Syöttövirrat ~ 29uA, jos ne saavutetaan virittämällä yhteysparametrit. Tämä johti CR2032 -nappipariston käyttöikään ~ 10 kuukautta. Pidempään suuremman kapasiteetin nappikennoille ja paristoille. Kahden halvan aurinkokennon lisääminen pidentää akun käyttöikää helposti 50% tai enemmän. Kirkas huonevalo tai pöytälamppu riittää näytön virran saamiseen aurinkokennoista.

Tämä opetusohjelma kattoi myös sirun suojauksen poistamisen esiohjelmoidusta nRF52: sta ja uuden kortin määrittelyn asettamisesta vastaamaan omaa piirilevyäsi/piiriäsi

Android -ohjelmointia ei tarvita. pfodApp hoitaa kaiken.

Suositeltava: