Jeffrey Cross
Jeffrey Cross

Tehnologia Bluetooth LE-a-thon la tabăra ITP

Tehnologia Bluetooth LE-a-thon la tabăra ITP

Sunt în prezent la New York pentru tabăra ITP din acest an, un loc de joacă neconvențional și tehnologie de 4 săptămâni pentru oameni aglomerați. Organizată în fiecare lună la ITP, ea reunește un grup divers de producători, artiști, muzicieni și creativi de tot felul - de a face lucruri, de a auzi difuzoare la vârf în tehnologie și artă și de a colabora cu persoane pe care nu le-ar întâlni în mod normal .

Este, de asemenea, un loc pentru a face lucruri pe care nu le-ați reușit să găsiți timp și probabil că nu ar fi altfel, și de aceea săptămâna trecută am stat jos - împreună cu Tom Igoe, Don Coleman, Sandeep Mistry, Guan Yang, JB Kim și alții - pentru o perioadă de două zile Bluetooth LE doc-a-thon.

Noi toti lucram cu dispozitivele Bluetooth LE - impreuna cu Don si Sandeep scriu o carte pentru Make: pe Bluetooth LE, telefoane mobile si senzori, in timp ce Guan si JB au o instalatie Bluetooth LE - dar noi toti suntem de acord că începerea utilizării tehnologiei Bluetooth LE era mult mai dificilă decât ar fi trebuit să fie și că mulți oameni de treabă au reușit să se scufunde pe podea (sau, mai rău, au făcut din nou), deoarece oamenii nu știau că există. Am decis să ne așezăm și să facem ceva în legătură cu asta.

Deci, ca parte a doc-a-thon-ului nostru, am adunat documentație, clipuri video și exemple de coduri pe care am sperat că le-ar face exact așa.

Cum este diferit Bluetooth LE?

Bluetooth LE este foarte diferit de Bluetooth clasic, de fapt, cel mai mult singurul lucru care este același este numele.

Tom Igoe și Don Coleman oferă o imagine de ansamblu a energiei joase Bluetooth.

Probabil că te-ai gândit la radiouri ca la o conexiune serială care funcționează în mod similar cu un apel telefonic între două telefoane - odată ce stabilești o conexiune, fiecare persoană vorbește ca și cealaltă ascultă și invers. Ei rămân conectați, chiar dacă nici unul nu spune nimic, până când unul se închide și apelul se termină.

În astfel de sisteme, datele sunt transferate utilizând o coadă și atunci când datele sunt citite de către receptor, acestea sunt șterse din coadă, la fel cum odată ce cuvintele îmi ajung la urechi de-a lungul telefonului, nu mai sunt în canalul de comunicații. Eficace funcționează modul în care funcționează funcția "Classic" Bluetooth.

Bluetooth LE este foarte diferit. În loc să comunice printr-o conexiune punct-la-punct ca un telefon, un radio Bluetooth LE acționează ca un buletin comunitar, fiecare radio acționând fie ca un consiliu, fie ca un cititor al consiliului.

Dacă radioul dvs. este un panou de bord - numit dispozitiv periferic în parola Bluetooth LE - postarea datelor pe tabloul său pentru ca toată lumea din comunitate să citească. Dacă radioul dvs. este un dispozitiv cititor numit un dispozitiv central în termeni Bluetooth LE - acesta poate citi de pe oricare dintre placile (dispozitivele periferice) care au informații despre care le pasă.

Dacă nu vă place această analogie, vă puteți gândi, de asemenea, de dispozitive periferice ca servere într-o tranzacție client-server. În mod similar, dispozitivele centrale sunt clienții din lumea Bluetooth LE deoarece aceștia citesc informații de la periferice.

Dar îmi plac conexiunile în serie?

Cele mai multe (probabil toate?) Ale plăcilor de detectare a radiourilor Bluetooth LE disponibile pentru producători chiar acum - Red BearLab BLE mini și Adafruit Bluefruit LE de exemplu - pretind că ar arăta ca dispozitive seriale pentru simplitate și prezintă un serviciu UART pentru utilizator. Efectiv aceste radiouri sunt "falsificate" de comunicare în stil vechi de serie pe partea de sus a paradigmei de bord de bord. Este un hack, și de fapt nu este un hack bun.

În timp ce simplifică lucrurile din partea Arduino a lucrurilor, prin utilizarea radioului în acest fel renunți la partea "low energy" a Bluetooth LE. Radiourile vor fi mereu în permanență și dacă proiectul tău este bazat pe baterie, este o problemă mare.

Tom Igoe și Don Coleman vorbesc despre servicii și Bluetooth LE.

Imaginați-vă un exemplu în care doriți să controlați un LED conectat la o placă Arduino de la telefonul nostru prin Bluetooth LE. Dacă folosim o conexiune serială, conexiunea va fi deschisă continuu, dar va fi folosită doar periodic - când trimitem 1 sau 0 în aer spre placa Arduino pentru a porni sau opri LED-ul.

Ca alternativă, puteți reduce în mod semnificativ consumul de energie al proiectului dvs. utilizând Bluetooth LE, cum ar trebui să fie utilizat și implementarea unui serviciu personalizat pentru radioul conectat la Arduino, pentru a-și face publicitatea în ceea ce privește capacitatea acestuia de a activa sau dezactiva LED-ul.

Revenind la exemplul nostru de bord, creăm o placă (serviciul) care are o notă post-it atașată (cunoscută ca o caracteristică în parola Bluetooth LE) pe care o putem citi, informându-ne dacă LED-ul este pornit sau oprit , sau scrie-la-permite-ne pentru a controla LED-ul.

Construirea unui serviciu personalizat

Din păcate, până acum, construirea de servicii personalizate pentru Bluetooth LE a fost de fapt destul de complicată și nu pentru cei slabi. Cu toate acestea, devine tot mai simplu, deoarece acum există câteva instrumente bune pentru a face cea mai mare parte a ridicării grele pentru tine.

În lumina acestui fapt, am decis să ne uităm la o platformă - radioul Nordic Semiconductor nRF8001 - și să găsim un set complet de unelte care să vă permită să construiți un serviciu personalizat pentru radio și să utilizați acest serviciu dintr-un proiect Arduino. Am ales acest radio special pentru că este ușor disponibil și există suport bun pentru bibliotecă.

Primul lucru pe care trebuie să-l faci atunci când se ocupă de nRF8001 este să instalați nRFGo Studio Nordic și, în timp ce nRFGo este o aplicație Windows Window, rulează foarte bine pe Mac în OS X folosind Wine. Această aplicație este instrumentul de care aveți nevoie pentru a crea fișierul de configurare pentru serviciile Bluetooth LE pe care radioul le va face publicitate și, ca produs, creează, de asemenea, un fișier antet services.h pe care veți avea nevoie ca parte a proiectului dvs. Arduino.

"Comutatorul inteligent de lumină"

Conectați exemplul comutatorului de lumină inteligentă.

Am vrut să construim ceva cu servicii multiple, așa că am decis să construim un comutator de lumină "inteligent", în care nu puteai să porniți sau să opriți lumina prin Bluetooth LE, ci să obțineți starea curentă a comutatorului de lumină controlați lumina) și obțineți notificarea când comutatorul a fost comutat.

Controlul luminii prin Bluetooth LE.

Lucru frumos despre acest exemplu este cât de simplu este, dincolo de placa Arduino și de radio nRF8001 - am decis să folosim bordul Adafruit Bluefruit LE - aveți nevoie doar de câteva fire, rezistoare și alte piese disponibile în mod obișnuit.

Construirea fișierului de configurare services.h folosind nRFGo Studio este probabil cea mai dificilă parte a întregului set de instrumente și am petrecut mult timp găsind cel mai simplu mod de a vă permite să includeți fișierul services.h generat în interiorul proiectului dvs. Arduino, trebuie să o includă în biblioteca Arduino nRF8001.

Deși a însemnat o solicitare de tragere pentru administratorul bibliotecii și câteva modificări manuale ale fișierului services.h, în cele din urmă am reușit să lucrăm și asta înseamnă că lucrați în întregime în ID-ul Arduino odată ce ați generat configurația de servicii .

Mai multe detalii și întregul cod sursă pentru proiectele de exemplu sunt disponibile pe Github ca parte a documentației și a exemplelor de cod pe care le-am pus în timpul doc-a-thon.

Concluzie

Există acum un număr imens de dispozitive Bluetooth LE, de la telefoane mobile până la încuietori, de la telefoane până la becuri - și, desigur, există întotdeauna omniprezentul iBeacon - dar există și un număr tot mai mare de placi de dezvoltare care înseamnă utilizarea aceste dispozitive off-the-shelf de la proiectul dvs. Arduino (sau de a deveni unul), de asemenea, devine tot mai simplu. Sperăm că doc-a-thon se va dovedi a fi de ajutor pentru a accelera acest proces, și cum este totul la contribuțiile lui Github sunt, desigur, foarte binevenite.

Acțiune

Lasa Un Comentariu