Draadlose beheer van Lego-motors met die stoombeheerder

Draadlose beheer van Lego-motors met die stoombeheerder

Toe ek jonk was, wou ek altyd Lego-tegnologieΓ« hΓͺ om cool goed mee te bou. Outonome tenks met draaiende torings wat Lego-stene afvuur. Maar toe het ek nie so 'n stel gehad nie.

En daar was nie eens gewone Lego-stene nie. Ek het net 'n vriend gehad wie se broer al hierdie duur speelgoed gehad het.

En nou het ek 'n seun van daardie ouderdom. En hy bou tenks wat ... dom vorentoe totdat hulle teen die muur vasval πŸ™‚

En nou is dit tyd vir die ESP32 en die magie van die soldeerbout – kom ons stel die regte afstandbeheerder vir hulle bymekaar!

Nee, natuurlik weet ek van die bestaan ​​van sulke afstandbeheerders. Maar nie een van hulle pas perfek by my nie. Hulle is Γ³f infrarooi, met 80's tegnologie, Γ³f te groot. Of duurs. En die belangrikste, ek sal nie vir my seun van enige van hulle kan sΓͺ nie: "Ek het dit spesiaal vir jou gedoen!"

Laat ons dus 'n nuwe, verbeterde afstandbeheerder maak om almal te regeer!

Draadlose beheer van Lego-motors met die stoombeheerder

Bestanddele:

  • ESP32-WROOM-32D | WiFi, BLE en verwerker met I/O - genoeg om twee te beheer motors ΠΈ LED.
  • DRV8833 | dubbele H-brug met genoeg krag vir die motors.
  • TPS62162 | verlaag spanning na 17V, ook vir die pret wanneer die WSON-8 2x2mm-kas gesoldeer word
  • CP2104 | vir ESP32-programmering
  • verbindings vir die koppeling van motors en diodes. Sny die drade en soldeer dit aan die onderkant, en plak die Lego-aansluiting bo-op.

Dit alles sal op 'n taamlik klein bord geplaas word - hier is die verskyning daarvan in die EasyEDA-redigeerder:

Draadlose beheer van Lego-motors met die stoombeheerder

Die draad, wat in die titelfoto sigbaar is, is nie nodig om sommige foute reg te stel nie, maar om krag vanaf USB te voorsien. Dit is dalk nie genoeg vir die motor nie, maar ongelukkig het kontakte uit China nog nie na my toe gekom nie. Daarom gaan ek eers die werking van die LED's na. Vir skoonheid in die foto sit ek net die koppelstuk van die motor op die bord.

Weergawe 1.1 van my bord (anders as weergawe 1.2 reeds op EasyEDA) het geen LED's gehad nie, so ek het twee anti-parallelle diodes aan die uitset gesoldeer sodat ek kon sien wat gebeur. As jy mooi kyk, wys die video die alternatiewe aanskakeling van 'n paar diodes 0603, wat vorentoe / agtertoe beweging aandui.

Wat die afstandbeheer betref, wou ek eers net 'n bykomende bord met knoppies en nog 'n ESP32 saamstel - 'n klassieke afstandbeheer.

Maar toe onthou ek dat die stoombeheerders 'n Bluetooth Low Energy (BLE) werkingsmodus het. Ek het besluit om hierdie probleem te hanteer, en na 'n paar uur het ek geleer hoe om pakkies van die kontroleerder te ontvang.

Om dit te doen, moet jy net soek na 'n HID-toestel wat homself die SteamController noem en daaraan koppel. En gebruik dan 'n ongedokumenteerde diens van Valve en 'n paar ongedokumenteerde opdragte, wat die oordrag van pakkies toelaat.

Draadlose beheer van Lego-motors met die stoombeheerder

Ek het ook op 'n ongedokumenteerde verslagformaat afgekom wat ek met die hand ontleed het.

Draadlose beheer van Lego-motors met die stoombeheerder

Na ongeveer 'n uur het die betekenis van die vlae en waardes vir my duidelik geword, en ek het daarin geslaag om die LED te knip met die stoombeheerder en ESP32. Β―_(ツ)_/Β―

lΓͺers

v1.0: "proefbenadering"
- die eerste opsie waarvoor ek die verkeerde spanningsreguleerder gekies het. Die TPS62291 neem net die spanning tot 6 V. Ek was besig om verskeie projekte in parallel te ontwikkel, en ek het vergeet dat die toestel met 9V moet werk.

v1.1: "goed genoeg"
- hierdie opsie is sigbaar in die video's, en alles werk

v1.2: "finaal"
- het aanwyser-LED's by die uitset gevoeg en die grootte en uitleg van die bord geoptimaliseer

Die volgende kort video wys die verbindingsfase (1-3 sekondes na aanskakeling) en beheer van die motoruitsette. Connector van Lego is nog nie gekoppel nie. Dit sal na die leΓ« spasie langs die ander verbindings gaan, gemerk met 'n wit reghoek.

My seun gebruik nou gereeld hierdie kontroleerder om die masjiene wat hy aanmekaar gesit het te beheer.

Tydens die strestoets het ek net een probleem teΓ«gekom: ek het gedink dat die "vinnige verval"-modus [vinnige verval] van die motorbestuurder die beste sou werk, maar as gevolg daarvan, na 'n paar sekondes se werking, het die motorspoed baie gedaal . So ek het die kode verander sodat dit "stadige verval" [stadige verval] gebruik.

Draadlose beheer van Lego-motors met die stoombeheerder

Terwyl ek nie seker is hoe die DRV werk en hoekom die motor eers vinnig draai nie, en dan na 10 sekondes begin dit geleidelik stadiger word. Miskien is die MOSFET's besig om op te warm en hul weerstand neem te veel toe.

Ek hoop dat hierdie voorbeeld van hoe om die Arduino te gebruik moeiteloos ander mense inspireer en hulle in staat stel om hul kinders aan elektronika bekend te stel.

Bron: will.com

Voeg 'n opmerking