Prosty parser stringów na Arduino / Teensy

Dzisiejszy artykuł będzie trochę z innej beczki, bo zamiast pokazywać jak napisać kod  do danego sprzętu zbudujemy sobie sprzęt, który będzie pomagał w zrozumieniu kodu :) Czasem istnieje konieczność skomunikowania naszego urządzenia np. z komputerem przez konwerter USB-UART, telefonem przez bluetooth lub między 2 naszymi urządzeniami przez UART. Początkującym może to sprawić pewne problemy, dlatego dziś zajmiemy się zagadnieniem jakim jest interpretowanie komend przychodzących do naszego urządzenia przez port szeregowy oraz odpowiednie reagowanie na nie i wysyłanie informacji zwrotnych.

Czytaj dalej

Mini projekt: Andrzejkowa zabawa w wersji na Teensy

img_4889Hej! Już za kilka dni będziemy świętowali Andrzejki, a w związku z tym nie ominą nas przeróżne andrzejkowe zabawy i wróżby takie jak lanie wosku przez oczko od klucza, przebijanie kartek z imionami czy np. układanie butów od ściany do progu drzwi. Spróbujmy więc zrealizować tę ostatnią zabawę w wersji cyfrowej jako luźny projekt w klimatach zbliżającego się święta.

Czytaj dalej

LinuxMagazine nr 153

Linux Magazine 153Dotarła do nas informacja od wydawcy o kolejnym, 153 już numerze Linux Magazine:

Cykl artykułów poświęcony Raspberry Pi w listopadowym wydaniu „Linux Magazine” zawiera analizę specyfikacji Raspberry Pi 3 z szybkim, 64-bitowym procesorem i wsparciem dla WiFi i Bluetootha oraz instrukcje uzyskiwania dostępu do usług na Raspberry Pi przez Sieć dzięki Weaved i tworzenia animacji poklatkowej ze Scratchem i kamerką Raspberry Pi.

Temat wiodący obejmuje artykuły na temat Samby, które opisują uruchamianie jej w trybie klastrowym z Cephem oraz nowe funkcje wydania 4 – mające ułatwić podjęcie decyzji, czy warto migrować z klasycznej domeny Samby do Samby 4, czy lepiej czy poczekać. Jest też analiza przyszłości klasycznego NFS-a.

Na dołączonym DVD znajduje się najpopularniejsze Linux na świecie – Ubuntu w najnowszej wersji 16.10.

Wewnątrz wydania również: tworzenie kopii zapasowych danych, obrazów i innych przy użyciu qt4-fsarchivera, budowa własnego robota indeksującego ze Scrapy, LibreOffice Online i ownCloud w Collabora Cloud Suite, sposoby na Linuksa na uwolnionym Chromebooku, łatwe tworzenie atrakcyjnych zdjęć z efektem wychodzenia poza ramkę Out-of-Bounds, szybki test narzędzi Fstools 20160322, Sup 1.1, MuPDF 1.8, Cryptsetup 1.7.1, Netjukebox 6.09.2 i Pass 1.6.5 oraz inne tematy: http://linuxmagazine.pl/index.php/issues/153

Wydanie jest na allegro (bezpłatna dostawa). e-wydanie „Linux Magazine” 10/2016 na allegro (poprzedni numer, bez płyty DVD). Pakiety Linux Magazine na allegro.

NOWOŚĆ
megapakiety Linux Magazine na allegro: http://allegro.pl/megapakiet-wydan-linux-magazine-z-dvd-i6404755490.html i http://allegro.pl/megapakiet-e-wydan-linux-magazine-i6403798011.html

 

Teensy Audio Board – Halloweenowy straszak

Pumpkiny nie są nawet w połowie tak straszne jak nasz straszak!

Pumpkiny nie są nawet w połowie tak straszne jak nasz straszak!

Halloween już tuż tuż, zróbmy więc z tej okazji szybki projekt z wykorzystaniem Teensy oraz płytki Audio Board. Ciekawym pomysłem wpisującym się w klimaty święta jest straszak oparty o czujkę ruchu. Kiedy ktoś pojawi się w obszarze widzenia naszego „straszaka” zostanie zupełnie znienacka potraktowany jakimś strasznym dźwiękiem. Bierzmy się więc do pracy!

Czytaj dalej

Teensy Audio Board – pierwsze kroki

Teensy Audio Board

Teensy Audio Board

Niewielkich rozmiarów płytka developerska Teensy 3.2 oferuje ogromne możliwości, szczególnie jeśli połączymy ją z różnego rodzaju płytkami rozszerzającymi możliwości. Taką płytką jest Audio Board, którą weźmiemy dziś na warsztat :) Niedawno pisaliśmy o niej, ale tylko teoretycznie. Teraz czas na trochę praktyki.

Myślę, że warto zacząć od krótkiego opisu narzędzia, które producent przygotował w celu łatwiejszego projektowania zależności pomiędzy wejściami, wyjściami, generatorami audio itp. Jest to bardzo dobry sposób dla początkujących na zapoznanie się z funkcjami do obsługi dźwięku. Interfejs jest bardzo intuicyjny i można sobie wszystko bez problemu „wyklikać”.

Czytaj dalej

Jak poradzić sobie z czasem na Arduino

Zmagania z czasem na Arduino potrafią uprzykrzyć życie, zwłaszcza początkującym. O czym piszę? O działaniach które mają być wykonywane przez jakiś czas albo dopiero po upłynięciu jakiegoś czasu.

Pierwsze podejście, kogoś kto rozpoczął swoją przygodę z Arduino będzie pewnie próba użycia delay. Hej, kto z nas tego nie próbował… Problem pojawia się wtedy gdy nasze Arduino musi coś robić w czasie czekania. A delay… no cóż, czekanie z delay to jest jedyna rzecz jaką może robić Arduino  na raz.

Jak sobie poradzić z oczekiwaniem gdy musimy robić kilka rzeczy na raz?

By nie gadać po próżnicy, omówmy to na konkretnym przykładzie. Niedawno dla klienta robiliśmy urządzenie, które miało zliczać dane z czujników odległości. A konkretnie, chodziło o określenie ile osób przyłożyło głowę do urządzenia. Jeśli czujnik przez określoną liczbę sekund wskazywał dostatecznie mały odczyt, wówczas mieliśmy zliczyć osobę, która podeszła do czujnika. Podobnie, dopiero gdy na określoną ilość sekund oddaliła się od czujnika dopiero wtedy miało być zwolnione miejsce i czujnik miał być gotowy do zarejestrowania kolejnej osoby. Na dodatek – były dwa czujniki, które miały być obsługiwane jednocześnie.

Próba zbudowania tego na ifach jest raczej skazana na porażkę. Nie, że to nie da się tak zrobić, ale… zmiana wymagań, jak np dodanie jakiegoś kryterium czy nawet drobna zmiana zachowania urządzenia może oznaczać długie i mozolne grzebanie w kodzie.

Wybrnąć z takiej sytuacji pozwala zwykle model matematyczny określany nazwą maszyną stanów (lub automat skończony). W prostych słowach – mamy skończony zbiór stanów w których może znaleźć się nasz system. Do tego potrzebujemy określić warunki w jakich następują przejścia pomiędzy stanami.

Czytaj dalej

[Tip] Fritzing – wstawianie dedykowanych płytek

W poprzednim poście użyty został taki schemat połączeń. Jest tam moduł konwertera I2C dla LCD znakowych:

Podłączenie LCD do RPi

Podłączenie LCD do RPi

Schemat został wygenerowany w programie Fritzing. Ma on dość bogatą bibliotekę z gotowymi modułami (Arduino, Raspberry i inne od Adafruit, Seeed czy Sparkfun).

Jeśli programu jeszcze nie znasz, to warto poznać, bo świetnie nadaje się do dokumentowania własnych prac. Ale nie tylko, również proste PCB w nim zrobisz.

Mimo, że biblioteka jest dość bogata to nie wszystkie elementy tam są. Nie ma też tego konwertera I2C/LCD. Jest  za to możliwość tworzenia własnych modułów. Dodajesz grafikę, do tego definiujesz gdzie są piny i taki element zachowuje się tak jak moduły dostępne po zainstalowaniu Fritzinga.

Możesz je przeciągać na widoku płytki, a przyczepione przewody przesuną się razem z nim. Możesz zdefiniować jego widok na PCB czy w schemacie. Wszystko pięknie, ale definicja takiego modułu to jednak trochę pracy. Dlatego jest możliwość szybkiego wstawienia obrazka, tak jak właśnie zostało zrobione na powyższym schemacie z konwerterem I2C do LCD znakowych (to czarne coś)

Zaletą jest prostota operacji i szybkość. Wadą – że nie jest to pełnoprawny moduł w rozumieniu Fritzinga, także nie wie on gdzie ma nasz moduł np złącza. Przez to nie jest w stanie przesuwać np przewodów gdy przeciągniemy moduł. Ale jeżeli chcesz jakiś swój projekt udokumentować – świetnie poprawia widok i czytelność schematu.

Jak wstawić taki moduł w trybie ad-hoc?

Czytaj dalej