W poprzedniej części opisałem laserową zabawkę jako gotowe urządzenie dla zwykłego użytkownika, w tym poście pokażę jak to wszystko powstało, a na początku był... projekt 😇
PCB - strona opisowa |
PCB - strona miedzi |
To tyle jeśli chodzi o projekt, teraz trzeba to zmaterializować. Jak zwykle w garażowym zaciszu metodą "żelazkową" - elektronicy używają żelazka zdecydowanie częściej jak ich partnerki 😅 - powstaje mała płytka.
Płytka została zabezpieczona przed utlenianiem lakierem PVB 16.
Całą robotę wykonuje tutaj tani i lubiany układ ESP8266, który posiada moduł WiFi. Dioda laserowa jest zasilana źródłem prądowym dodatkowo kluczowanym z PWM-a co pozwala płynnie regulować jasność od 0% do 100%.
Skoro już bebechy mam, to teraz trzeba to wszystko złożyć w całość. Obudowę wykonałem ze sklejki wyciętej laserowo, składanej na wczepy palcowe.
No to składamy.
No i sprzęt jest gotowy, ale co nam po sprzęcie jak on zupełnie nie wie co ma robić? Nie wie, że teraz trzeba machać tym laserkiem tak żeby kot ganiał w tę i we w tę 😉 Trzeba to wszystko zaprogramować.
Uruchamiamy nasze ulubione IDE czyli Visual Studio Code z wtyczką PlatformIO i zaczynamy pisać program. Soft został napisany z wykorzystaniem Arduino Core, a na całość składa się kilka części:
- główny program sterujący silniczkami, wyznaczanie losowych ścieżek.
- serwer www, który udostępnia ładny panel sterowania.
- konfiguracja sieci WiFi z wykorzystaniem Captive Portal.
- multicast DNS.
- stworzenie strony www (html + css + javascript).
- obsługa komunikacji po websockecie.
- zdalne wgrywanie plików przez stronę www, np. zmiana wyglądu głównej strony.
- zdalna aktualizacja oprogramowania bez zbędnych kabli.
W oczekiwaniu na gotowe oprogramowanie tester cierpliwie czeka.
Panel sterujący dostępny z poziomu przeglądarki internetowej nie jest hostowany nigdzie na zewnątrz, całość znajduje się w zabawce, wykorzystałem bootstrapa plus kilka dodatkowych komponentów.
Zastosowany mDNS pozwala połączyć się z urządzeniem wpisując w przeglądarce adres "lasercat.local" zamiast adresu IP. Niestety na chwilę obecną android nie wspiera tego typu rozwiązań, ale na iPhonach działa to bardzo dobrze.
A tak wygląda stronka przez którą możemy sterować zabawką.
Udostępniasz może wsady programowe? Fajnie byłoby zbudować taką zabawkę nie pisząc wszystkiego od zera :)
OdpowiedzUsuńPostaram się opracować źródła :) W kolejce na opis również czeka kilka nowych projektów.
Usuń