Jeffrey Cross
Jeffrey Cross

Bluetoothi ​​LE doc-a-thon ITP laagris

Bluetoothi ​​LE doc-a-thon ITP laagris

Olen praegu New Yorgis selle aasta ITP laagris, 4 nädala pikkune lepitus- ja tehnoloogia mänguväljak hõivatud inimestele. Igal juunil ITP-s peetakse see kokku mitmesuguste tegijate, kunstnike, muusikute ja reklaamide grupiga, et teha asju, kuulda esinejaid tehnoloogia ja kunsti tipptasemel ning teha koostööd inimestega, keda nad tavaliselt ei vasta .

Samuti on see koht, kus asju teha, et pole suutnud leida aega ja tõenäoliselt ei oleks muidu, ja see oli põhjus, miks eelmisel nädalal istusin koos Tom Igoe, Don Coleman, Sandeep Mistry, Guan Yang, JB Kim ja teised - kahepäevase Bluetooth LE doc-a-thoni jaoks.

Kõik me oleme töötanud Bluetoothi ​​LE-seadmetega - koos Don ja Sandeepiga Kirjutan raamatut „Make“: Bluetooth LE-s, mobiiltelefonides ja andurites, samas kui Guanil ja JB-l on käivitushooned Bluetooth LE-seadmed, kuid me kõik oleme sellega nõus Bluetoothi ​​LE kasutamise alustamine oli palju raskem, kui oleks pidanud, ja et paljud suured tööd, mida inimesed tegid, langesid põrandale (või veel halvemini uuesti), sest inimesed ei teadnud, et see on olemas. Me otsustasime istuda ja teha sellega midagi.

Nii koguti meie doc-a-thoni osana dokumentatsiooni, videoid ja koodinäiteid, mida me lootsime just seda teha.

Kuidas Bluetooth LE on erinev?

Bluetooth LE on väga erinev klassikalisest Bluetooth-seadmest, tegelikult on ainus asi, mis on sama nimi.

Tom Igoe ja Don Coleman annavad ülevaate Bluetoothi ​​madalast energiast.

Tõenäoliselt olete mõelnud raadiodele, nagu näiteks seeriaühendus, mis töötab sarnaselt telefonikõnedele kahe telefoni vahel - pärast ühenduse loomist räägib iga inimene, kui teine ​​kuulab ja vastupidi. Nad jäävad ühendatuks, isegi kui kumbki ei ütle midagi, kuni keegi ei rippu ja kõne lõpetatakse.

Sellistes süsteemides edastatakse andmeid järjekorda kasutades ning kui vastuvõtja loeb andmeid, kustutatakse see järjekorrast, nagu ka siis, kui minu sõnad telefoni teel kätte jõuavad, on need sidekanalist väljas. Tegelikult töötab see nii, nagu "Classic" Bluetooth töötab.

Bluetooth LE on väga erinev. Selle asemel, et suhelda punkt-punkti-ühenduse kaudu nagu telefon, toimib Bluetooth LE-raadio nagu kogukonna teadetetahvel, kusjuures iga raadio tegutseb laua või plaadi lugejana.

Kui teie raadio on teadetetahvel, mida nimetatakse välisseadmeks Bluetoothi ​​LE-teates - see postitab andmed oma pardale, et kõik kogukonna kasutajad seda lugeksid. Kui teie raadio on lugeja, mida nimetatakse keskseadmeks Bluetoothi ​​LE-terminites, võib see lugeda üheltki plaadilt (välisseadmelt), millel on teavet, mida see hoolib.

Kui teile ei meeldi see analoogia, võite mõelda ka perifeersetele seadmetele kliendi-serveri tehingu serveritena. Samamoodi on kesksed seadmed Bluetooth LE kliendi kliendid, sest nad loevad välisseadmetelt teavet.

Aga mulle meeldib seeriaühendused?

Enamik (võib-olla kõik?) Bluetooth LE raadiosidetahvlitest, mis on nüüd kättesaadavad tegijale - näiteks RedBearLab BLE mini ja Adafruit Bluefruit LE - näevad välja nagu lihtsad ja seeriaviisilised seadmed ning esitavad kasutajale UART-teenuse. Tegelikult on need raadiod vanas stiilis seeriaviisardid, mis on põhiteadete pardal põhineva paradigma peal. See on häkkimine ja tegelikult mitte hea häkk.

Kuigi see lihtsustab asju Arduino asjade küljest, kasutades raadiot sellisel viisil, et te eirate Bluetooth LE „madala energiaga” osa. Raadiod on pidevalt kogu aeg ja kui teie projekt on akupõhine, on see suur probleem.

Tom Igoe ja Don Coleman räägivad teenustest ja Bluetooth LE-st.

Kujutage ette näidet, kus soovite juhtida oma telefonilt Arduino plaadiga ühendatud LED Bluetooth LE abil. Kui me kasutame seeriaühendust, on ühendus pidevalt avatud, kuid seda kasutatakse ainult perioodiliselt - kui saadame 1 või 0 üle Arduino plaadile, et LED sisse või välja lülitada.

Teise võimalusena saate oma projekti energiatarbimist oluliselt vähendada, kasutades selleks sellist Bluetoothi ​​LE, nagu seda peaks kasutama, ja rakendama kohandatud teenust raadio jaoks, mis on ühendatud Arduinoga, et reklaamida oma võimet LED sisse või välja lülitada.

Pöördudes tagasi meie teadetetahvlite näite juurde, loome me plaadi (teenus), millel on post-it-märkus (mida tuntakse Bluetoothi ​​LE-märgisena), mida me mõlemad loeme, andes meile teada, kui LED on sisse või välja lülitatud või kirjutage — võimaldab meil juhtida LED-i.

Kohandatud teenuse loomine

Kahjuks on hiljuti Bluetooth LE jaoks kohandatud teenuste loomine olnud üsna keeruline ja mitte nõrga südamega. Siiski on üha lihtsam, kui praegu on mitu head tööriista, et teha suurema osa raskest tõstmisest.

Seda silmas pidades otsustasime vaadata ühe platvormi - Nordic Semiconductor nRF8001 raadiot - ja selgitada välja täielik tööriistariba, mis võimaldab teil raadio jaoks kohandatud teenust ehitada ja kasutada seda teenust Arduino projektist. Me valisime selle konkreetse raadio, sest see on kergesti kättesaadav ja seal on hea raamatukogu tugi.

Esimene asi, mida peate tegema nRF8001-ga tegelemisel, on paigaldada Põhjamaade nRFGo Studio ja kuigi nRFGo on MS Windowsi rakendus, töötab see lihtsalt Mac OS-is operatsioonisüsteemis OS X, kasutades veini. See rakendus on tööriist, mida peate looma konfiguratsioonifaili Bluetoothi ​​LE teenustele, mida raadio reklaamib, ning tootena luuakse ka teenus.h päisefail, mida vajate oma Arduino projekti osana.

Nutikas valguslüliti

Meie nutika valguse lüliti näide.

Me tahtsime ehitada midagi mitme teenusega, nii et me otsustasime ehitada „nutika“ valguslüliti, kus te ei suutnud valguse sisse lülitada või välja lülitada Bluetoothi ​​LE kaudu, kuid saada valguslüliti praegune olek (mis võib ka sõltumatult olla) kontrollida valgust) ja saada teada, kui lüliti lülitati.

Valguse juhtimine Bluetoothi ​​LE kaudu.

Kena asi selles näites on see, kui lihtne see on, peale Arduino plaadi ja raadio nRF8001, otsustasime kasutada Adafruit Bluefruit LE vaheajaplaati - vajate tõesti vaid mõningaid juhtmeid, takisti ja muid üldkasutatavaid osi.

Teenuste.h konfiguratsioonifaili loomine nRFGo Studio abil on tõenäoliselt kogu tööriistaketi kõige keerulisem osa ja me veetsime palju aega, et selgitada välja kõige lihtsam viis, kuidas saaksite luua genereeritud teenus.h faili Arduino projekti sees peab see kaasama nRF8001 Arduino raamatukogu.

Kuigi see tähendas raamatukogu hooldaja tõmbenõudeid ja mõningaid manuaalseid muudatusi teenuses.h, saime lõpuks selle töö ja see tähendab, et te töötate täielikult Arduino IDE-s, kui olete oma teenuste konfiguratsiooni loonud .

Rohkem üksikasju ja kogu näidisprojektide lähtekoodi on Githubis saadaval dokumentatsiooni ja koodinäidete osana, mida me doc-a-thoni ajal esitame.

Järeldus

Praegu on suur hulk off-the-shelf Bluetooth LE seadmeid alates kuluvatest kuni lukkudeni, droneidest kuni lambipirnideni - ja loomulikult on alati olemas üldlevinud iBeacon, kuid seal on ka kasvav arv arendusplaate, mis tähendavad, et lihtsam on ka teie Arduino projekti (või selle üheks saamine) väljapoole jäävad seadmed. Loodetavasti osutub meie doc-a-thon kasulikuks selle protsessi kiirendamiseks ja kuna see kõik on Githubi toetusel, on loomulikult väga teretulnud.

Osa

Jätnud Kommentaari