Skip to content

Fecos/esphome_astronaut_star_nebula_projector

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 

Repository files navigation

ESPHome csillag és csillagköd vetítő űrhajós

English version coming soon!

Astronaut projector

Ez az első ilyen formában közzétett projektem, ha bármilyen észrevételed lenne, akkor az építő jellegű javaslatokat szívesen veszem. 😊

Az ötlet

Az alap ötlet két projekt kombinációjából származik:

Szituáció

Gyerekeimnek rendeltünk 3db űrhajóst (éjszakai fénynek) és két esetet szerettem volna kezelni:

  • Sajnos (mint gondolom a gyerekek döntő többsége) rendszeresen elfelejtenek maguk után lekapcsolni minden világítást a szobájukban.
  • A gyári távirányítóval beállítani a kedvenc színkombinációjukat elég nehézkes: ha bekapcsoltad és visszanyerted a látásod - mert 100% fényerővel égeti ki a retinád -, 10-20 gombnyomással már sikerül is.

Okosítás

Az űrhajós gyárilag nem rendelkezik a távirányítón kívül semmilyen interface-szel. A fent említett YouTube videó adta az ötletet, hogy ebben sem lesz túl bonyolult a vezérlés (sőt, sok pénzben mertem volna fogadni, hogy szinte ugyan azt a megoldást fogom megtalálni), és nem is tévedtem sokat.

Szétszerelés

A hátizsákon 4 kupak alatt találhatóak meg a csavarok. A kupakok eltávolítása kicsit nehézkes. Én kilyukasztottam, és úgy húztam ki. (Ha bárki talál rá kevésbé destruktív megoldást, akkor jelezze! 😊)

Opening backpack Opening backpack

3 csatlakozó eltávolításával kiszabadítható a NYÁK:

Removing connectors

Mikrokontroller eltávolítása

Az ötletet adó kivetítőhöz hasonlóan ezen a NYÁK-on is egy kis mikrokontroller van, ami 3.3V-tal működik. Eltávolításához forrólevegős, vagy hagyományos forrasztópáka szükséges.

Removing MCU Removing MCU

Removing MCU

Lábkiosztás

Jöhetett a keresés, mi hova van kivezetve. Mivel XYZ típusú N-Channel MOSFET-tel van vezérelve minden, így egyszerűbb feladat volt visszakeresni: Source->GND, Gate->MCU, Drain->Load->VCC.

Kiméregetve a csatlakozók alapján a lábkiosztás:

Szám Funkció Szám Funkció
1 16
2 15 Státusz LED (kék)
3 Lézer 14 Státusz LED (piros)
4 Infravörös vevő 13 Csillagköd - Motor
5 12
6 Nyomógomb - Csillagköd 11 Csillagköd - Zöld
7 Nyomógomb - Be/Ki 10 Csillagköd - Piros
8 Nyomógomb - Csillagok 9 Csillagköd - Kék

ESP32

"Long story short" - megpróbáltam ESP12-vel is, de a relatív kevés felhasználható I/O port miatt I2C bővítő kellett, emiatt esett a választásom az ESP-WROOM-32 alapú lapkára (Wemos MINI D1 ESP32 néven fut általában).

Astronaut ESP12

Wemos MINI D1 ESP32 modul:

Wemos MINI D1 ESP32 Wemos MINI D1 ESP32

7.5cm hosszú (0.22mm2) vezetékeket forrasztottam az eredeti mikrokontroller csatlakozási helyeire.

Wemos MINI D1 ESP32 to PCB Wemos MINI D1 ESP32 to PCB

Tápegység

Az űrhajós 5V-os USB adapterről működik és bár van rajta 3.3V-os stabilizátor, nem terveztem használni, mindent direktben a betáp csatlakozóra közöttem. A kábelek 7.5cm, illetve 12.5cm hosszúak (0.5mm2).

Power Power

A műtét után az űrhajóshoz legalább 2A-es tápegység kell!

Extrák

A mellékelt ESPHome kód tartalmaz némi extrát, amit az alábbiak szerint kötöttem be:

LED "tábla" az űrhajós testének, illetve műszereinek megvilágítására

  • GPIO19 -> LED_IN

Digital LED Digital LED

Dallas DS18B20 hőmérséklet mérő az úrhajós belső hőmérsékletének méréséhez (Azért terveztem bele, mert az ESP32 belső hőmérséklete 50C feletti értékeket mutatott és nem tudtam, hogy mennyire fog átmelegedni az egész. A tapasztalat azt mutatja, hogy nem létkérdés, kb. szobahőmérséklet van a testében is.)

  • DATA -> GPIO18
  • Vcc -> 3.3V(!)
  • Vcc és GPIO18 közé kell egy 4K7 felhúzó ellenállás

Dallas DS18B20 Dallas DS18B20 Dallas DS18B20 Dallas DS18B20

Együtt az extrák

Dallas + Digital LED

Forrasztás!

Az alábbiak szerint kötöttem össze a két NYÁK-ot:

Csatlakozási pont Wemos Mini / Digital LED
+5V VCC
GND GND
Eredeti IC Wemos Mini Funkció
3 GPIO4 Lézer
4 GPIO33 Infravörös vevő
6 GPIO34 Nyomógomb - Csillagköd
7 GPIO23 Nyomógomb - Be/Ki
8 GPIO35 Nyomógomb - Csillagok
9 GPIO17 Csillagköd - Kék
10 GPIO21 Csillagköd - Piros
11 GPIO16 Csillagköd - Zöld
13 GPIO22 Csillagköd - Motor
14 GPIO32 Státusz LED (piros)
15 GPIO27 Státusz LED (kék)

Ezt a fázist elég nehéz volt fotózni - fogynak a szabadon lévő kábelek:

Soldering Soldering Soldering Soldering

Power LED

A Wemos MINI-n gyárilag van egy LED, ami folyamatosan világít, jelezve, hogy van tápfeszültség. Ezt érdemes leszedni, mert átvilágít az űrhajós testén.

Status LED removal

LED panel rögzítése

Kétoldalas ragasztóval oldottam meg a LED panel rögzítését, és hogy legyen hely közöttük, 3 réteget ragasztottam egymásra. A panelt úgy pozícionáltam, hogy ne takarja az antennát.

LED panel LED panel

Végszerelés, összeállítás

Multiméterrel ellenőriztem a forrasztásokat, majd az eredeti mikrokontrollernél ragasztóval (glue gun) rögzítettem a kábeleket. Kábelkötegelővel szépen össze lehet fogni az egészet és valami ilyesmi lesz a végeredmény:

Final assembly Final assembly Final assembly Final assembly

Hibajavítás

Összeszerelés és a fotók visszanézése közben észrevettem, hogy nem teljesen egyforma a 3 űrhajós panelja, hiába stimmel a verziója. Az R15 és az R16 ellenállások hiányoznak kettőről, ami a 3.3V felhúzó ellenállások lennének a csillagköd és a csillagok nyomógomboknál. SMD-t és főleg ilyen picit sajnos nem tudnék normálisan felforrasztani, ezért maradt a "B" terv: 10K-s ellenállást forrasztottam a mikrokapcsolók lábaira, a másik felét pedig 3.3V-ra kötöttem.

Button pull-up Button pull-up

Program feltöltése

Készítettem egy alap konfigurációs file-t, ezt be kell másolni az ESPHome-ba: ESPHome/astronaut.yaml

Az alábbi részeket javítsd a saját környezetednek megfelelően:

substitutions:
  name: <preferált név>

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

ap:
  ssid: "${name}HotSpot"
  password: !secret wifi_fallback_password

api:
  password: !secret api_password

ota:
  password: !secret ota_password

Ha ez megvan, akkor mehet a telepítés. Az első feltöltéshez mindenképp USB kábelen kell csatlakoztatni a Wemos MINI-t!

Feltöltés után Home Assistant-ban értesítés fog megjelenni, hogy új eszközt talált, konfiguráció után meg kell jelennie az eszközök között.

ESPHome device

Teszt

Még szétszedett állapotban érdemes tesztelni, hogy minden funkció működik-e rendesen, ehhez csak vissza kell dugni a fejből jövő 3 csatlakozót a NYÁK-ra.

Testing Testing

Összeszerelés

Az eredeti "hátizsákban" alig van hely, így ez nem is volt opció, hogy ide próbáljam meg bezsúfolni az egészet. 35mm átmérőjű körkivágóval 2db egymásba érő lyukat vágtam, ügyelve arra, hogy a rögzítési pontokat ne fúrjam el. Így megfelelően nagy nyílás lett a "hátán", hogy könnyedén össze lehessen rakni. A fúrásnál célszerű lassan és óvatosan haladni, mert a hátizsák merevebb műanyagból van, az űrhajós teste viszont puha. Fúrás előtt ellenőrizd, hogy hova fog esni a kivágás! Az alábbi képeken látható is, hogy az alsó lyuk kicsit elcsúszott jobbra és épphogy nem nyílt szét az illesztés.

Drill check Drill check

Fúrás után katasztrófálisan nézett ki nálam mindegyik. Sorjázóval és szikével szépen le lehet takarítani.

Drill cleanup Drill cleanup

A mágnesek, amik a fejet tartják, elég gyengén vannak beragasztva, ezt érdemes orvosolni egy kis ragasztóval. Ha "glue gun"-t használsz, akkor egyszerre csak egy mágnesre nyomj ragasztót és támaszd meg, mert a hő feloldja a rajta lévő ragasztót és kiugrik a helyéről. Én elsőre sajnos úgy jártam, hogy kiugrott mindkét mágnes, és egy szép kis ragasztó csomóvá állt össze az egész.

Magnet fix Magnet fix

Ha idáig eljutottál és nincsenek égési sérüléseid, akkor lehet összeszerelni. Az eredeti NYÁK-ot vissza kell csavarozni a hátizsák hátsó felére, és a fej kábeleit el kell rendezni, hogy a megfelelő helyen (a kivezetésnél) legyen.

Assembly Assembly

A hátizsák műanyag eleménél fogva - és egy kicsit oldalra döntve - összeállítható az egész. Arra érdemes figyelni, hogy a LED panel a lehető leginkább felfelé (a mágnesek felé) legyen.

Assembly Assembly

Astronaut projector

TODO

AZ ESPHome konfiguráció nincs teljesen kész:

  • Kód optimalizálása (működik, használható, nem szép...)
  • Effektek (a csillagköd és a LED panel effektjeit még lehetne szépíteni)
  • Offline működés (utazások alkalmával vinni szoktuk magunkkal, elvileg a "reboot_timeout" lesz a megoldás.)
  • Hátizsák gombok életre keltése (az eredetihez hasonló funkciókhoz még hiányoznak)
  • Távirányító gombok életre keltése (az eredetihez hasonló funkciókhoz még hiányoznak (minta van a kódban))

Távirányító kódok:

Button name Address Command
Power 0xFF00 0xBA45
Timer 0xFF00 0xB847
Nebula 0xFF00 0xBB44
Nebula B+ 0xFF00 0xF609
Nebula B- 0xFF00 0xEA15
Nebula S+ 0xFF00 0xBC43
Nebula S- 0xFF00 0xBF40
Star 0xFF00 0x00FF
Star S+ 0xFF00 0xE619
Star S- 0xFF00 0xB946
Star B+ 0xFF00 0xF20D
Star B- 0xFF00 0xF807

Linkek

HEStore:

Aliexpress (affiliate):

További projektek

Tervezem még közzétenni más projektjeimet is, ahogy időm engedi:

GitHub | YouTube

Ha támogatnád a munkám

Ha hasznosnak találtad ezt a leírást, és köszönenet mondanál, akkor egy ☕, vagy egy 🍺 meghívást szívesen veszek.😊

BMC PAYPAL

ESPHome star and nebula projecting astronaut

English version coming soon!