[085] Arduino hackuje panele urządzeń - cz. 1

[085] Arduino hackuje panele urządzeń - cz. 1

Czym jest hackowanie? Właściwie to nikt do końca nie wie, bo tak określa się wszystko, co jest związane z włamywaniem się do programów czy systemów i zmienianiem ich zachowania na swoją modłę. Tak więc pojęcie to jest szerokie, podobnie jak motywy – od ciekawości, usprawnień, przez omijanie ograniczeń, czasem postawionych świadomie, po działalność już stricte nielegalną. Ponieważ mówimy tutaj o Arduino, poprzestanę na węższym nieco znaczeniu hackowania i celu: będziemy włamywać się do sprzętu, by uczynić jego pracę wygodniejszą. W każdym razie – na początek.


Czym jest interfejs? To także szerokie zagadnienie, bo dotyczy ogólnie tego, co łączy maszynę ze światem. Ale czasem sięga nie tylko po złącza, gniazdka i kable, a także panel sterujący, którym maszynę obsługujemy. Jedno i drugie jest ze sobą ściśle związane i tym właśnie będę chciał się zająć: usprawnieniem owych interfejsów, najczęściej nie do końca takich, jakich oczekujemy. Oczywiście paneli jest tyle, ile urządzeń, choć ostatnio mniej, gdyż wiele z nich migruje do smartfona. Tam korzystamy z paneli wyświetlanych, ale problem wcale nie został rozwiązany.

Gratuluję pomysłodawcy tego interfejsu – szybkie wyzerowanie tej pozycji jest bardzo trudne. Ktoś po wielokroć nie pomyślał, dał nam krótki suwak, zbędny zakres aż 12 jednostek EV, z czego używa się może czterech i rozdzielczość 1/6 jednostki, gdy potrzeba połowy, najwyżej 1/3. W tym przypadku możemy liczyć na upgrade, choć to zwykle nadzieje płonne. Rzućmy okiem na inne urządzenie, które będzie bohaterem artykułu.

Oto taki typowy, tak zwany chiński monitorek, przydatny przede wszystkim filmowcom, a ostatnio także fanom retro komputerów. Posiada nie tylko najbardziej dziś popularne wejście HD, ale dwa analogowe zespolone i profesjonalne – komponentowe. Monitor ten wybrałem do przedstawienia idei hackowania interfejsów z kilku względów: oryginalny panel jest mało intuicyjny, ze względu na marne przyciski fatalnie się go obsługuje, cechuje się lagami i czasem trafienie w wybraną pozycję wymaga kilku prób, a do tego włamanie się do klawiatury stworzyło szereg nowych problemów, a więc wyzwań. Tak więc to będzie bardzo fajny przykład jak sobie radzić z niemiłymi urządzeniami, który pokaże wszystkie potencjalne problemy i podpowie rozwiązania. I tu moja uwaga: to nie jest artykuł o hackowaniu tego konkretnego monitora, tylko o metodach i na tym się skupimy.

Wrócę jeszcze do bardziej ogólnej myśli: po co w ogóle zaprzątać głowę jakimś hackowaniem? Tutaj trzeba użyć wyobraźni. Przykład z monitorkiem może nie będzie miał mocno praktycznego wymiaru, ale istnieje mnóstwo ciekawych urządzeń, które są ograniczone ze względu na interfejs. Może jakiś przykład.

Po lewej widzimy tani multi efekt do gitary, który brzmi jako tako, ale właściwie nie da się go używać na scenie poza zmianą presetów. Po prawej - jest ten sam efekt wbudowany w podręczny piecyk, który dla odmiany jest bardzo łatwy i szybki w użyciu, bo każdy istotny parametr możemy natychmiast zmienić, używając gałek – jedna gałka dla jednego parametru. Na scenie jest to bezcenne: żadnego menu, przewijania, szukania i zastanawiania się co dany skrót może znaczyć. Tak, to jest dokładnie to samo urządzenie, tylko niebywale wygodniej sterowane. Pomyślmy teraz o różnego rodzaju wieżach audio, odtwarzaczach wideo, telewizorach i tym podobnych urządzeniach, w których producent poskąpił gałek, ofiarując jedynie kilka niewygodnych przycisków, czasem ukrytych gdzieś, a bywa że dotykowych, co już w ogóle jest tragedią. Gdy mamy pilota, rzeczy nie wyglądają tak źle, ale czasem go nie mamy albo jest on równie nieintuicyjny, co panel lokalny. Bierzmy się zatem do roboty, etap po etapie. Pierwszym z nich będzie rozpoznanie sprzętowe.

Etap I - kradniemy sygnały

Po rozkręceniu monitorka okazało się, że marna klawiatura bierze się z budowy: malutkie membrany są przyklejone taśmą klejącą do pól miedzianych, bynajmniej nie złoconych, więc czasem styk jest, a czasem nie i trzeba się z przyciskami siłować. Możemy to poprawić, ale nie jest to celem naszych działać. Trzeba przyjrzeć się temu jak to tu działa i gdzie możemy się włamać, by narobić się jak najmniej. Z tej strony – bieda. Nie wiadomo nic na temat tego, co tu z czym zwieramy. Oczywiście można zerwać te membrany i przylutować w ich miejscach przewody, ale wtedy stracimy panel, a tego nie chcemy – chcemy mieć możliwość pracy po staremu i za pomocą nowego interfejsu równocześnie. To jest jedna z zasad, o której powinniśmy pamiętać: jeśli to tylko możliwe, nie niszczymy oryginalnego sposobu pracy urządzenia.

Odwróćmy płytkę i okręćmy je jeszcze o 90 stopni. Przyciski znajdują się mniej więcej po przeciwnej stronie tych przelotek. Zatem możemy założyć, że te ścieżki są zwierane z… zakładam, że z masą, ale to trzeba będzie jeszcze sprawdzić. W tym celu wykorzystamy w multimetrze funkcję wykrywania zwarć. Jedną z elektrod połączmy najlepiej z obudową gniazdka HDMI, bo to na pewno jest masa. Drugą będziemy przykładać do ścieżek. Tylko że na nich znajduje się lakier izolujący. Można go zeskrobać lekko, ale zaraz… odwróćmy raz jeszcze płytkę.

Mamy sporo szczęścia: po drugiej stronie ścieżki biegną do pustych pól lutowniczych, w które nic nie wstawiono. Wynika z tego, że płytka jest używana w serii monitorów, gdzie w niektórych wypadkach klawiatura sterująca stanowi osobną płytkę, którą łączy się przewodami z bazową. A ponieważ tutaj klawiatura została osadzona lokalnie, złącz nie wlutowano. Bierzemy więc wspomniany miernik zwarć i łączymy po kolei wszystkie styki, wciskając przyciski na panelu frontowym. Po chwili mamy już całą rozpiskę. Jak widać, nie ma tutaj styku wyłącznika monitora, ale z tego zrezygnuję, bo wydaje mi się, że nie ma sensu nim sterować – służy tylko do włączania i wyłączania urządzenia. Pozostałych sześć styków przyda nam się, więc podłączymy sześć przewodów, lutując je wprost albo używając godlpinów i gniazdek.

Obok ładnie podpisano masę, więc siódmy przewód podłączymy tam. Użyłem taśmy dwustronnej, która bardzo dobrze trzyma przewody na miejscu, więc nie wyrwiemy ich przypadkiem. Obudowę monitora lekko spiłowałem, wysuwając przez szczelinę z boku taśmę. Całość możemy już skręcić, nie będzie nam potrzebna. Acz za chwilę jeszcze tam zaglądnę.

Etap II - jak sterować monitorem?

Gdy teraz będziemy zwierać ze sobą masę i kolejne przewody, otrzymamy symulację pracy klawiaturki. Wszystko działa jak należy, więc trzeba przejść do kolejnego etapu. I tu zaczną się schody.

Najprościej byłoby podłączyć się do arduino wprost. Niski stan – oznacza zwarcie, czyli wciśnięcie przycisku, natomiast puszczenie oznacza… No właśnie, to wcale nie musi być stan wysoki, a powinien być stanem tak zwanej wysokiej impedancji, jako że oryginalnie w taki właśnie wpadają linie klawiatury niewciskanej. Ale może jednak dla monitora będzie to tożsame ze stanem wysokim, czyli napięciem równym 5 woltów?

Podłączamy woltomierz i… niewciskana klawiatura to napięcie 3,3 wolta. Istnieje ryzyko, że gdy podamy tam pięć woltów, zniszczymy nasz monitor. Rozwiązania są dwa: pierwsze to przejść na Arduino trzywoltowe. Można, ale wciąż będziemy połączeni z urządzeniem, a niesie to ze sobą szereg problemów. Interfejs klawiatury niekoniecznie był zaprojektowany w ten sposób, by można było tam podłączać jakieś rozbudowane systemy i mogą pojawiać się przekłamania i różnego rodzaju bliżej nieokreślone kłopoty. A gdybyśmy tak hackowali jakieś urządzenia z wyższym napięciem, bardziej rozbudowane, albo wręcz połączone w sieć? Tworzymy kolejne pętle mas, sprzężenia i tak dalej. Zasadą projektowania takich rozwiązań jest izolacja. A tę mogą zapewnić transoptory albo przekaźniki.

Przekaźnik jest idealny w teorii i taki sobie w praktyce. Nie można nim pstrykać bez opamiętania, jest też szybki. Wymaga prądu, a więc i wzmacniaczy, kosztuje i generuje zakłócenia. Ale zwarcie to zwarcie, zero omów, a brak zwarcia to nieskończenie dużo omów.

Transoptor nie ma żadnej z wymienionych wad przekaźnika, ale nie da zera omów przy oświetleniu siedzącej wewnątrz diody świecącej i spadek napięcia na fototranzystorze także nie będzie zerowy. Zwykle będzie się mieścił w przedziale napięć interpretowanych jako stan niski, ale – no właśnie: zwykle. Okazało się, że Chińczycy wcale łatwo się nie poddają – ale o tym w następnym artykule.

Powiązane tematy

Płytka edukacyjna TME-EDU-ARD-2Płytka edukacyjna TME-EDU-ARD-2Sprawdź tutaj

Przeczytaj również

Nasi partnerzy

TMETech Master EventTME EducationPoweredby
Copyright © 2025 arduino.pl