Przesyłanie danych przez wyjście słuchawkowe

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

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.