SensorTag czyli Bluetooth LE dla opornych…

SensorTag Bluetooth LE

Jak byłem dzieckiem bardzo lubiłem z Tatą bawić się w elektronika… znaczy Tato robił coś na poważnie, a ja mu w tym „pomagałem”. Robiliśmy radyjka z diody i słuchawek oraz bardziej zaawansowane projekty. Po tych zabawach został mi sentyment do „elektronicznych zabawek”.
Dziś dzięki SensorTag i iPhone będę mógł połączyć pasję majsterkowicza-elektronika z programowaniem!



Wiodący producent wszelakich układów elektronicznych, firma Texas Instruments wpadła na genialny pomysł jak zachęcić do realizacji własnych pomysłów deweloperów, którzy chcą coś zrobić z użyciem technologi sensorów i Bluetooth LE ale się boją. Boją się np. programowania mikrokontrolerów, doboru układów i tym podobnych strasznych rzeczy. Do tej grupy należę i ja.
SensorTag (bo taką nazwę nadano temu urządzeniu) jest też wspaniałą pomocą naukową przydającą się w wielu dziedzinach (od fizyki przez matematykę stosowaną po informatykę i telekomunikację). Idealne narzędzie dla edukacji. Kolejna zaleta SensorTag to cena urządzenia: 25$ (UWAGA: z przesyłką do Polski). Takie podejście sprawia, że po eksperymentach z tym zestawem od Texas Instruments wielu pomysłodawców będzie wdrażać swoje rozwiązania korzystając właśnie z układów TI i wsparcia jakie ta firma oferuje. I właśnie taka jest rola tego urządzenia. Ma zachęcać do tworzenia i realizacji własnych projektów, edukować i „przywiązać” dewelopera do Texas Instruments. Nie mam nic przeciwko ;-)

Teraz konkrety, a dla niecierpliwych film: SensorTag czyli poligon doświadczalny naszpikowany sensorami dla iPhone lub iPad

SensorTag od Texas Instruments składa się z maleńkiej (55 mm x 25 mm) płytki z układami zasilanej baterią CR2032 i ważącej (z baterią) tylko 9 g. Dodatkowo dostajemy obudowę plastikową z silikonowym etui (masa całości 31 g).
W tym zestawie deweloperskim udało się producentowi zmieścić poza mikrokontrolerem z modułem Bluetooth LE aż 6 sensorów:
  • Bezdotykowy termometr IR – pirometr.
  • Termometr wewnętrzny (wbudowany w układ).
  • Wilgotnościomierz.
  • Barometr (ciśnienie powietrza, altimetr).
  • Żyroskop trzyosiowy.
  • Magnetometr trzyosiowy (kompas).
  • Przyśpieszeniomierz trzyosiowy.
  • A! I jeszcze dwa przyciski.

SensorTag bez obudowy, wymiary

Zestaw komunikuje się z urządzeniami wyposażonymi w Bluetooth 4.0 (LE) czyli np. iPhone 4s, New iPad (3), iPod Touch 5 gen. (i wszystkie nowsze) oraz z komputerami z tym interfejsem. Działa też z pewną ilością urządzeń na Androidzie (ale wymaga najnowszych systemów co bardzo limituje krąg odbiorców). Oczywiście jak jesteśmy bardziej biegli to możemy podłączyć SensorTag bezprzewodowo z Arduino lub innymi mikrokomputerami dla hobbystów.
My zajmiemy się oczywiście współpracą SensorTag z urządzeniami Apple.

Aby wykorzystać możliwości SensorTag na szczęście nie musimy zgłębiać tajników Objective C (główny język programowania dla iOS i OS X). Na początek mogą wystarczyć dostępne w App Store aplikacje od Texas Instruments i niezależnych deweloperów. Ale oczywiście więcej radości sprawi nam pisanie własnych programów za pomocą techBASIC przedstawionego wcześniej w recenzji książki (poświęcę mu dodatkowo następny wpis w tej serii). Jest to całkiem prosty język programowania w którym za pomocą kilkunastu linijek kodu można uzyskać efekty jak przy kilkudziesięciu w ObjC. Zresztą niebawem sami zobaczycie (lub już wiecie, jeżeli jak ja zdecydowaliście się na książkę Mika Westerfielda.

SensorTag program

Teraz trochę więcej o tym czego można się po czujnikach w SensorTag spodziewać.

Pirometr (bezdotykowy termometr) podaje temperaturę obiektu na podstawie jago promieniowania w podczerwieni (-40° do 125°C). Obiekt powinien znajdować się w odległości do 50 cm i mieć wymiary z dwa razy większe od odległości (to zalecenia ale w praktyce jest lepiej). Dodatkowo ten sam sensor ma wbudowany termometr lokalny (w układzie). Czyli dostajemy dwa odczyty temperatury: zdalną (obiektu na który SensorTag „spogląda”) i lokalną temperaturę otoczenia. Odczyt obu temperatur może być wysyłany z częstotliwością od 0,3 do 2,5 sekundy.

Barometr podaje ciśnienie w zakresie od 0,3 do 1,1 atmosfery. Może służyć do pomiaru wysokości na podstawie ciśnienia (altimetr) i dobrze sobie z tym radzi. Dane mogą być przesyłane co 0,1 - 2,5 s. Uwaga: również ma wbudowany termometr (temperatura jest potrzebna przy precyzyjnym obliczaniu ciśnienia).

Wilgotnościomierz podaje wilgotność względną w procentach. Do jej obliczenia również potrzebna jest temperatura, mamy więc kolejny (trzeci) termometr! Dane jest sens doczytywać nie częściej niż co 0,7 s.

Przyśpieszeniomierz (akcelerometr) podaje przyśpieszenie w trzech osiach czyli możemy np. sprawdzić pozycję SensorTag względem ziemi (jak jest względnie nieruchomy) lub poznać przyśpieszenie czyli np. drgania, potrząsanie itp. Standardowo mamy zakres do 2 g (2x przyśpieszenie ziemskie) ale możemy je zmienić wymieniając oprogramowanie w SensorTag do 8 g (jak w rakiecie). Dane można odczytywać maksymalnie z częstotliwością 0,1 sek.

Magnetometr (w uproszczeniu kompas) podaje silę pola magnetycznego w trzech osiach (3D) co maks. 0,1 sekundy. Można to wykorzystać jako kompas lub wykrywać inne zmiany pola magnetycznego w pobliżu SensorTag.

Żyroskop wysyła informacje o zmianach położenia SensorTag względem trzech osi. Nie podaje położenia (do tego lepiej użyć przyśpieszeniomierza) lecz prędkość obrotu. Dane są dostępne z rozdzielczością maks 0,1 sek.

No i na deser dwa przyciski których stan możemy odczytywać i użyć do sterowania aplikacją.

Jak wydać jest to bardzo pokaźny zbiór czujników o różnorakich zastosowaniach. Naprawdę można się wykazać pomysłowością!

SensorTag dla iPhone i iPad Bluetoot LE

Teraz trochę o ograniczeniach.
Urządzenia Bluetooth LE są bardzo energooszczędne. SensorTag i inne urządzenia tego typu zazwyczaj są zasilane baterią „pastylką” CR2032. Zasięg sygnału w otwartej przestrzeni i przy sprzyjających okolicznościach (odpowiednie ułożenie urządzenia i iPhone) jest ograniczony do 30-40 metrów. W budynku zazwyczaj sygnał przejdzie przez jedną ścianę plus jakieś 7-10 metrów.

Każdy z sensorów zużywa prąd, dlatego włącza się je i wyłącza w zależności od potrzeb. Najbardziej energochłonny jest żyroskop. Gdy jest włączony pobiera „aż” 7 mA. Pozostałe sensory mieszczą się w 0,3 mA (barometr tylko 0,005 mA). Co do zasilania to nie musimy ograniczać się do „pastylki”. Możemy doprowadzić zasilanie przez np. złącze diagnostyczne. Napięcie musi być w zakresie od 2,2 V do 3,9 V czyli np. dwie baterie lub akumulatorki „paluszki” będą w sam raz. Można pokusić się też o zasilanie ogniwami fotowoltaicznymi (słonecznymi).

Ostatnie ograniczenie to konieczność „parowania” urządzeń. Standardowo SensorTag oznajmia swoją obecność Światu (przez dwie minuty) po wciśnięciu guzika z boku obudowy. W tym czasie może nastąpić połączenie z programem. Połączenie może trwać bardzo długo i ma bardzo niewielki wpływ na baterię w iPhone ale np. po rozłączeniu lub „zabiciu” programu mamy na nawiązanie kolejnego połączenia znów tylko 2 minuty. Po tym czasie trzeba wcisnąć przycisk. O ile jak SensorTag jest w pobliżu nie jest to problemem to gdy znajdziemy dla niego jakieś zastosowanie „zdalne” może być kłopot. Na to też jest sposób. Należy zmodyfikować firmware SensorTag aby wysyłał sygnały cały czas (ma to pewien wpływ na jego baterię ale jak zasilimy go czymś mocniejszym to problem z głowy).

Teraz znając te możliwości i ograniczenia SensorTag możecie pomyśleć o zastosowaniach dla tego urządzenia bo będzie to (lekko uprzedzając wypadki) jeden z tematów konkursu jaki niebawem, mam nadzieję zorganizować… dam o tym znać tu i na Apple-User.pl

W następnej części postaram się pokazać Wam, że pisanie aplikacji działających z SensortTag na iPhone lub iPadzie nie jest trudne! Użyjemy do tego techBASIC (opisanego w książce: „Projekty elektroniczne na iPhone i iPad. Niekonwencjonalne gadżety z technologią Arduino i techBASIC”.
Dla zwolenników natywnego programowania w ObjC Texas Instruments zapewnia wsparcie w postaci kodu źródłowego i „gotowców” dla XCode.

Kilka przykładów działania SensorTag zobaczycie na filmie (w tym jedno niezamierzone lądowanie SensorTag w rynnie): SensorTag czyli poligon doświadczalny naszpikowany sensorami dla iPhone lub iPad