Maciej Korsan

–

IoT LEGO Millennium Falcon

Raspberry Pi i JavaScript w klockowym Sokole sterowanym z telefonu

  • hardware,
  • IoT
Ręka trzyma telefon z niebieskim rysunkiem Sokoła Millennium nad podświetlonym na niebiesko modelem LEGO; obok napis Millennium-Falcon.js

Zwykły model Sokoła Millennium z LEGO przerobiłem na zdalnie sterowany, świecący i grający statek – za pomocą technologii frontendowych. W środku siedzi Raspberry Pi Zero W, a całością steruje JavaScript: od pinów GPIO po aplikację na telefonie. Nie budowałem tego dla ideału, tylko dla zabawy i żeby bezkarnie poznać nowe dla mnie technologie.

Jak to działa

Hipernapęd to niebieski pasek LED na baterię 12 V. Raspberry Pi daje najwyżej 5 V, więc pasek włączam przez tranzystor – obwód pomógł mi rozpisać znajomy doktorant z Wojskowej Akademii Technicznej. Białe diody oświetlają kokpit z Chewbaccą i Hanem Solo oraz przód statku. Piny ustawiam w Node.js (paczka onoff). Dźwięk przez Bluetooth po trzech dniach walki odpuściłem; ostatecznie gra przez przejściówkę HDMI–VGA z wyjściem audio, która została mi z czasów wykładania.

Kod na pokład wysyłam przez balena.io: zwykły git push buduje kontener i sam aktualizuje Sokoła. Ze światem statek łączy się przez WebSockety w Syncano – wywołanie endpointu wysyła wiadomość, a skrypt na Raspberry Pi włącza odpowiednie światła. Hipernapęd sam gaśnie po 10 sekundach, żeby nie rozładować baterii. Pilotem jest prosta PWA: rysunek Sokoła w tle i niewidzialne przyciski, bez frameworków, z ikoną na ekranie głównym telefonu.

Widok z góry na rozebranego Sokoła Millennium z LEGO: w środku Raspberry Pi, plątanina kabli, bateria i elementy elektroniki
Okablowanie w środku Sokoła.

Na koniec dodałem aplikację GitHuba z webhookiem: każda nowa gwiazdka na moim koncie odpala hipernapęd i dźwięk R2-D2.

Historia

Pierwsza wersja działała tylko lokalnie – prosty serwer HTTP i backend w PHP. Na slajdach „Lego ❤️ Syncano” z kwietnia 2018 roku pokazywałem już wersję przepiętą na Syncano i Node.js. Pełny opis budowy, „Z JavaScriptem w nadprzestrzeń!”, opublikowałem na devstyle.pl w maju 2019 roku, razem z kodem na GitHubie.

Model Sokoła Millennium z LEGO w akrylowej gablocie, obok gitara akustyczna
Sokół w gablocie.

Źródła

github.com/maciejkorsan/millenniumfalcon.js