Draadloze kontrôle fan Lego-motoren mei de Steam Controller

Draadloze kontrôle fan Lego-motoren mei de Steam Controller

Doe't ik jong wie, woe ik altyd Lego-techsets hawwe, sadat ik der allerhanne koele dingen mei bouwe koe. Autonome tanks mei rotearjende tuorkes dy't Lego-stiennen sjitte. Mar doe hie ik sa'n set net.

En der wiene net iens gewoane Lego-stiennen. Ik hie mar in freon waans broer al dit djoere boartersguod hie.

En no haw ik sels in soan fan dizze leeftyd. En hy bout tanks dy't ... dom foarút geane oant se yn 'e muorre botse :)

En no is it tiid foar de ESP32 en de magy fan it soldeerbout - lit ús de juste ôfstânsbetsjinning foar har gearstalle!

Nee, fansels wit ik fan it bestean fan sokke ôfstânsbestjoerings. Mar net ien fan harren past my hielendal. Se binne of ynfraread, 80's technology, of te grut. Of djoere. En it wichtichste, ik sil myn soan net oer ien fan har fertelle kinne: "Ik haw dit spesjaal foar jo dien!"

Dat litte wy in nije en ferbettere ôfstân meitsje om se allegear te regearjen!

Draadloze kontrôle fan Lego-motoren mei de Steam Controller

Yngrediades:

  • ESP32-WROOM-32D | WiFi, BLE en prosessor mei I / O - genôch om twa te kontrolearjen motors и LED.
  • DRV8833 | dûbele H-brêge mei genôch krêft foar motors.
  • TPS62162 | spanningsreduksje nei 17 V, lykas foar wille by it solderen fan de WSON-8 2x2 mm saak
  • CP2104 | foar programmearring ESP32
  • Connectors foar it ferbinen fan motoren en diodes. Wy snije de triedden en solder se op 'e boaiem, en lym de Lego Connector boppe.

Dit alles sil passe op in frij lyts boerd - hjir is it ferskinen yn 'e EasyEDA-bewurker:

Draadloze kontrôle fan Lego-motoren mei de Steam Controller

De draad dy't te sjen is yn 'e titelfoto is net nedich om flaters te korrigearjen, mar om stroom te leverjen fan USB. It kin net genôch wêze foar de motor, mar spitigernôch haw ik noch gjin kontakten krigen fan Sina. Dat ik kontrolearje earst de wurking fan 'e LED's. Foar skientme yn 'e foto set ik gewoan de ferbining fan' e motor op it boerd.

Op ferzje 1.1 fan myn boerd (oars as ferzje 1.2, dat is al op EasyEDA), der wiene gjin LED's, dus ik soldered twa anty-parallelle diodes oan 'e útfier, sadat ik koe sjen wat der bart. As jo ​​sjogge goed, de fideo toant de ôfwikseljende aktivearring fan in pear diodes 0603, oanjout foarút / efterút beweging.

Wat it kontrôlepaniel oanbelanget, woe ik earst gewoan in ekstra boerd mei knoppen en in oare ESP32 gearstalle - in klassike ôfstânsbetsjinning.

Doe herinnerde ik my lykwols dat Steam Controllers in Bluetooth Low Energy (BLE) wurkmodus hawwe. Ik besleat dit probleem oan te pakken, en nei in pear oeren learde ik pakketten te ûntfangen fan 'e controller.

Om dit te dwaan, moatte jo gewoan sykje nei in HID-apparaat dat himsels SteamController neamt en dêrmei ferbine. En brûk dan in net-dokumintearre tsjinst fan Valve en ferskate net dokumintearre kommando's, wêrtroch de oerdracht fan pakketten mooglik is.

Draadloze kontrôle fan Lego-motoren mei de Steam Controller

Ik kaam ek in net-dokumintearre rapportformaat tsjin, dat ik mei de hân parsearde.

Draadloze kontrôle fan Lego-motoren mei de Steam Controller

Nei sawat in oere waard de betsjutting fan 'e flaggen en wearden my dúdlik, en ik slagge de LED te knipperen mei de Steam-controller en ESP32. ¯_(ツ)_/¯

Bestannen

v1.0: "proefbenadering"
- de earste opsje wêrfoar ik de ferkearde spanningsregulator keas. De TPS62291 ferheget allinich de spanning nei 6 V. Ik ûntwikkele ferskate projekten parallel, en fergeat dat it apparaat moat wurkje mei 9 V.

v1.1: "goed genôch"
- dizze opsje is sichtber yn 'e fideo's, en alles wurket

v1.2: "finale"
- LED's tafoege oan 'e útfier en optimalisearre de grutte en yndieling fan it boerd

De folgjende koarte fideo toant de ferbiningsfaze (1-3 sekonden nei it ynskeakeljen fan 'e macht) en de kontrôle fan' e motorútgongen. De Lego-ferbining is noch net ferbûn. It sil gean nei de lege romte neist de oare Anschlüsse, markearre mei in wite rjochthoeke.

Myn soan brûkt no regelmjittich dizze controller om de apparaten te kontrolearjen dy't hy hat boud.

Tidens de stresstest kaam ik mar ien probleem tsjin: ik tocht dat de "snelle ferfal"-modus fan 'e motorbestjoerder it bêste soe wurkje, mar it feroarsake dat de motorsnelheid dramatysk sakke nei in pear sekonden fan operaasje. Dat ik feroare de koade om stadige ferfal te brûken.

Draadloze kontrôle fan Lego-motoren mei de Steam Controller

Ik bin noch net wis hoe't de DRV wurket en wêrom't de motor earst fluch draait, en dan nei 10 sekonden begjint stadichoan te fertrage. Miskien binne de MOSFET's opwaarme en har wjerstân nimt tefolle op.

Ik hoopje dat dit sûnder muoite gebrûk fan Arduino sil tsjinje as ynspiraasje foar oaren om har bern yn elektroanika te krijen.

Boarne: www.habr.com

Add a comment