Gordon Williams jest twórcą płytki kontrolera – Espruino Pico. Oferuje ją na Kickstarterze. Płytka charakteryzuje się tym, że jest programowalna w JavaScript.
Ale ja nie o tym.
Jest coraz więcej urządzeń komputerowych, które coraz trudniej podłączyć do kontrolerów, a co za tym idzie – naszych wynalazków. Tablety, zegarki, Chromebooki i inne sprzęty. Mają wystarczająco dużo mocy by obsługiwać duży system operacyjny, ale za mało miejsca na nasze hobby.
Duża część z nich posiada komunikację radiową Bluetooth. Jeśli robisz pro urządzenie, możesz skorzystać z dostępnych modułów BT z Nettigo.
Problem polega na tym, że wysyłanie danych przez BT jest dość trudne. Trzeba dobrze programować w języku urządzenia – Javie, Swift lub C#.
Gordon Williams połączył kilka faktów i wpadł na pomysł jak to zrobić łatwiej. Pomyślał, żeby podłączyć kontroler do wyjścia słuchawkowego gadżetu i zamiast muzyki wysyłać dane.
Od strony elektronicznej układ jest bardzo prosty. Składa się z kondensatora elektrolitycznego 1 uF i rezystora 47 kOhm.
Obrazek pochodzi ze strony forum.espruino.com
Urządzenie podłącza się do wejścia analogowego kontrolera.
Układ jest dostosowany do urządzeń o napięciu poziomów logicznych 3,3 V. Wymaga wejścia analogowego z włączonym wewnętrznym rezystorem pullup.
Zasada działania jest prosta. Gdy z układu wychodzi napięcie 1,546 V to znaczy, że nadawana jest 1 logiczna. Gdy napięcie jest poniżej 1,166 V to znaczy że nadawane jest 0 logiczne.
Od strony programu nadającego, zaskoczenie jest jeszcze większe. Do nadawania danych wystarczy przeglądarka internetowa z obsługą biblioteki WebAudio – czyli Firefox, Chrome, Safari i inne oparte na silniku Webkit. WebAudio sprawia, że przeglądarka może generować wydajnie dowolne zaprogramowane dźwięki.
Gordon wymyślił, że będzie nadawał dane szeregowo z prędkością 9600 bodów. Jeden bit startu o wartości 0, 8 bitów danych i 2 bity stopu o wartości 1.
Dlaczego piszę o tym tak ogólnie i nie dostarczam w tym wpisie gotowych rozwiązań? Bo chciałem, ciebie zainspirować byś wykorzystał swoją ulubioną płytkę kontrolera do odbierania danych przez wyjście audio 🙂
Jeśli ci się uda, napisz o tym na swoim blogu i podziel się z nami swoim rozwiązaniem. Ja też zamierzam się włączyć do zabawy. Kto wie, może uda się uzyskać nawet większą szybkość transmisji.
Na koniec dodam sztuczkę. Jeśli chcesz włączyć rezystor pullup w wejściu analogowym Arduino napisz w funkcji “setup” pinMode(A0, INPUT_PULLUP);.
Jeśli tego ci mało, autor zamieścił też schemat komunikacji 2 kierunkowej. Można ją wykorzystać w urządzeniach, które mają gniazdo mini jack z 4 wyprowadzeniami – do zestawu słuchawek z mikrofonem.
Obrazek pochodzi ze strony forum.espruino.com
Oczywiście schemat jest dostosowany do układów o napięciu 3,3 V. Jeśli masz układ o poziomach logicznych 5 V, musisz dostosować dzielnik napięcia dla mikrofonu do wartości około 1 V.
Powodzenia w eksperymentach
Sprae