Kategoria: tinybrd

tinyBrd 2.0: Wstęp do pracy z płytką

Cześć, w dzisiejszym artykule zajmiemy się płytką tinyBrd 2.0. Jest to niewielka płytka deweloperska oparta o procesor ATtiny84 wyposażona w specjalne złącze służące do zamontowania modułu komunikacji radiowej NRF24L01+. Jeżeli kliknęliście w linki to pewnie zauważyliście już, że połączenie tych dwóch urządzeń to nic innego jak super tanie arduino z możliwością komunikacji bezprzewodowej :) Pokażę Wam w jaki sposób dobrze polutować płytki oraz jak wgrać na tinyBrd pierwszy program.

Czytaj dalej...

tinyBrd zasilane z USB

TinyBrd 2.0 dzięki regulatorowi napięcia może być zasilane np 5V. Jest to napięcie jakie jest dostarczane w ramach standardu USB, co za tym idzie, każdy powerbank do zasilania komórki zapewnia nam duuużo energii dla tinyBrd. Jak podłączyć zasilanie z power banku? Bierzemy wtyczkę USB oraz jakieś przewody typu F-M i lutujemy: Zwróć uwagę na polaryzację, czyli gdzie jest plus a gdzie masa. Na zdjęciu czerwony przewód to plus. Przyjrzyj się wtyczce, położona jest tak, że widoczne otwory na metalowym złączu są zaślepione plastikiem. A najlepiej – podłącz wtyczkę do powerbanku i zmierz miernikiem gdzie jest 5V a gdzie GND :) 

Czytaj dalej...

tinyBrd: deepSleep, czyli poniżej 1 µA

TinyBrd od samego początku miał mieć zastosowania w energooszczędnych scenariuszach. Właśnie pojawiła się nowa wersja Nettigo tinyBrd Core, która w bibliotece Battery.h ma oprócz znanej już funkcji sleep, nową funkcję – deepSleep. Jak nazwa sugeruje usypia ona tinyBrd w taki sposób, że pobór prądu jeszcze bardziej spada. deepSleep w odróżnieniu od “zwykłego” sleep wyłącza również układ watchdoga w procesorze ATtiny84. Konsekwencją tego jest to, że ze takiego trybu pracy może wybudzić tylko przerwanie (pinChangeInterrupt wprowadzone w poprzedniej wersji tinyBrd Core). Nie można podać czasu po jakim tinyBrd sam się wybudzi. Jest to pewna niedogodność, która pozwala tylko w niektórych przypadkach

Czytaj dalej...

tinyBrd – przerwania

tinyBrd to fajne narzędzie. Niecałe 5 µA w trybie uśpienia… to długie tygodnie pracy na zwykłej baterii CR2032. Nasz testowy tinyBrd w tej chwili działa już 9 tygodni, wysyłają co 30 sekund temperaturę z DS18B20. A co jeżeli nie potrzebujesz wysyłać danych regularnie? Mając taki uniwersalny, programowalny i zdalny czujnik jak tinyBrd można mieć pomysły na reakcję gdy tylko coś się zdarzy. Mowa o nieregularnych zdarzeniach, w przeciwieństwie do cyklicznej pracy jak np wysyłania pomiaru co 30 sekund. Pomyślmy, np wysłanie informacji o jakiś nieregularnych zdarzeniach, odczytanych np z czujnika zbliżeniowego (kontaktronu). Dotychczas wymagało to regularnego wybudzania i sprawdzania czy

Czytaj dalej...

Pomiar temperatury – tinyBrd i wejście analogowe

Nasz sztandarowy przykład dla platformy tinyBrd to pomiar temperatury z użyciem czujnika DS18B20. Działa on świetnie, jednak z naszego punktu widzenia ma jedną wadę. Napięcie zasilające. Co z nim nie tak? Wg karty katalogowej wymaga co najmniej 3V. Przy zasilaniu z dwóch akumulatorów AA osiągamy maks 2.8-2.9V, co już jest poniżej wartości katalogowej. Na szczęście nasze testy pokazują, że DS18B20 dobrze pracuje nawet z napięciem lekko ponad 2.5V ale gwarancji poprawnej pracy nie ma w takim przypadku. Pomiar temperatury z analogowym czujnikiem Dla porównania wzięliśmy na warsztat analogowy czujnik MCP9700. Jest to dobrze znany czujnik z naszego Starter Kitu dla

Czytaj dalej...

Czego nowego o NRFach się dowiedzieliśmy

Ostatnie tygodnie dużo testowaliśmy nasze tinyBrd. Po pierwsze, trzeba było dokładnie przetestować pobór prądu. Wprowadziliśmy kilka zmian w kodzie i już od pewnego czasu (od wersji Core 1.1b) udało się jeszcze obniżyć pobór prądu. I tak od tej pory, w sleep całe tinyBrd + NRF24L01 (i DS18B20) pobierają prąd 4-5 µA (poprzednio 9-10 µA). W czasie nadawania pobór prądu spadł z ok 18 mA do 15 mA. Jak się to ma do naszego wzorcowego przykładu, czyli wysyłania co 30 sekund temperatury z DS18B20 do RPi, zasilany tinyBrd z baterii CR2032?

Czytaj dalej...

Biblioteka RadioNRF24 działa też na Arduino

Jedną z zalet tinyBrd jest prosty, intuicyjny interfejs do NRF24L01. Dzięki temu wysyłanie i odbieranie danych jest bardzo proste. Dotąd biblioteka Radio była włączona w skład Nettigo tinyBrd Core, czyli rozszerzeniu Arduino IDE wspierającego programowanie tinyBrd. Ponieważ otrzymywaliśmy takie prośby, przenieśliśmy bibliotekę Radio na Arduino UNO. Zmian praktycznie nie trzeba było wprowadzać, poza kilkoma organizacyjnymi. Po pierwsze – w zarządcy bibliotek w Arduino IDE jest już biblioteka Radio (służąca do obsługi modułów FM), więc chce on nam nadpisywać uparcie nasze Radio, nawet to z tinyBrd Core, więc zmieniliśmy nazwę biblioteki na RadioNRF24. W konsekwencji zmienił nazwę globalny obiekt – dotąd

Czytaj dalej...

Wysyłanie poleceń z Raspberry do tinyBrd

Dotychczas tinyBrd wysyłało przez NRF24L01 dane do Raspberry. Zarówno gdy testowaliśmy jakość połączenia jak i gdy wysyłaliśmy dane z DS18B20. Tym razem na warsztat weźmiemy odwrotny przykład. Plan jest następujący: Raspberry będzie wysyłało żądanie odczytu stanu wejścia analogowego w tinyBrd a po otrzymaniu stanu będzie wysyłać polecenie zapalenia odpowiedniej ilości diod podłączonych do tinyBrd. Plan jest znany, to może pokażemy co wyszło finalnie: Pierwsze podejście do implementacji jest takie: RPi wysyła pakiet z jednym bajtem o wartości 99, co znaczy ‘podaj mi stan wejścia analogowego’, tinyBrd odeśle wtedy wartość. Raspberry odbierze dane od tinyBrd i wyśle dwa bajty do tinyBrd,

Czytaj dalej...