Wireless nga pagkontrol sa mga Lego nga motor gamit ang Steam Controller

Wireless nga pagkontrol sa mga Lego nga motor gamit ang Steam Controller

Sa bata pa ko, gusto nako kanunay nga adunay mga set sa Lego techno aron magamit ang mga cool nga butang. Autonomous nga mga tangke nga adunay nagtuyok nga mga turret nga nagsunog sa mga tisa sa Lego. Apan wala akoy ingon nga set.

Ug wala'y bisan regular nga mga tisa sa Lego. Naa ra koy amigo kansang igsoon aduna niining tanan nga mahalon nga mga dulaan.

Ug karon aduna na koy anak nga lalaki sa maong edad. Ug nagtukod siya og mga tangke nga ... binuang sa unahan hangtod nga nahagsa sila sa bungbong πŸ™‚

Ug karon, panahon na alang sa ESP32 ug sa salamangka sa soldering iron - atong tipunon ang husto nga remote control alang kanila!

Dili, siyempre nahibal-an ko ang bahin sa paglungtad sa ingon nga mga remote. Apan walay usa kanila nga haum kanako. Mahimo sila nga infrared, nga adunay teknolohiya sa 80s, o dako kaayo. O mga mahal. Ug labaw sa tanan, dili nako masulti sa akong anak ang bisan kinsa kanila: "Gibuhat ko kini labi na alang kanimo!"

Mao nga maghimo kita usa ka bag-o, gipaayo nga remote control aron madumala ang tanan!

Wireless nga pagkontrol sa mga Lego nga motor gamit ang Steam Controller

Sagol:

  • ESP32-WROOM-32D | WiFi, BLE ug processor nga adunay I/O - igo aron makontrol ang duha motor ΠΈ LED.
  • DRV8833 | doble nga H-bridge nga adunay igo nga gahum alang sa mga motor.
  • TPS62162 | ipaubos ang boltahe ngadto sa 17V, alang usab sa kalingawan sa dihang ibaligya ang WSON-8 2x2mm nga kaso
  • CP2104 | alang sa ESP32 programming
  • Mga Sumbon alang sa pagkonektar sa mga motor ug diode. Guntinga ang mga alambre ug ibaligya kini sa ubos, ug ipapilit ang Lego connector sa ibabaw.

Kining tanan ibutang sa gamay nga tabla - ania ang dagway niini sa editor sa EasyEDA:

Wireless nga pagkontrol sa mga Lego nga motor gamit ang Steam Controller

Ang wire, nga makita sa titulo nga litrato, gikinahanglan dili sa pagtul-id sa pipila ka mga sayop, apan sa paghatag og gahum gikan sa USB. Tingali dili kini igo alang sa motor, apan, sa kasubo, ang mga kontak gikan sa China wala pa moabut kanako. Busa, una nakong susihon ang operasyon sa mga LED. Alang sa katahum sa litrato, gibutang ko lang ang konektor gikan sa motor sa board.

Ang Bersyon 1.1 sa akong board (dili sama sa bersyon 1.2 na sa EasyEDA) walay mga LED, mao nga akong gibaligya ang duha ka anti-parallel diodes sa output aron akong makita kung unsa ang nahitabo. Kung tan-awon nimo pag-ayo, gipakita sa video ang alternate switch sa usa ka pares sa diodes 0603, nga nagpakita sa unahan / paatras nga paglihok.

Sama sa alang sa hilit nga kontrol, sa una gusto lang nako mag-assemble og dugang nga board nga adunay mga buton ug lain nga ESP32 - usa ka klasiko nga hilit nga kontrol.

Bisan pa, nahinumduman nako nga ang Steam Controllers adunay Bluetooth Low Energy (BLE) mode sa operasyon. Nakahukom ko nga atubangon kini nga isyu, ug pagkahuman sa pipila ka oras nahibal-an nako kung giunsa ang pagdawat mga pakete gikan sa controller.

Aron mahimo kini, kinahanglan nimo pangitaon ang usa ka HID device nga nagtawag sa kaugalingon nga SteamController ug magkonektar niini. Ug dayon gamita ang dili dokumentado nga serbisyo gikan sa Valve ug pipila walay dokumento nga mga sugo, nagtugot sa pagpasa sa mga pakete.

Wireless nga pagkontrol sa mga Lego nga motor gamit ang Steam Controller

Nakakita sab ko og undocumented report format nga akong gi-parse sa mano-mano.

Wireless nga pagkontrol sa mga Lego nga motor gamit ang Steam Controller

Human sa mga usa ka oras, ang kahulogan sa mga bandila ug mga bili nahimong tin-aw kanako, ug nakahimo ako sa pagpamilok sa LED gamit ang Steam controller ug ESP32. Β―_(ツ)_/Β―

Mga file

v1.0: "pagsulay nga pamaagi"
- ang una nga kapilian diin gipili nako ang sayup nga regulator sa boltahe. Ang TPS62291 nagkuha lamang sa boltahe hangtod sa 6V. Nagpalambo ako og daghang mga proyekto nga managsama, ug nakalimot ako nga ang aparato kinahanglan nga magtrabaho sa 9V.

v1.1: "maayo ra"
- kini nga kapilian makita sa mga video, ug ang tanan molihok

v1.2: "katapusan"
- gidugang indicator LEDs sa output ug gi-optimize ang gidak-on ug layout sa board

Ang musunod nga mubu nga video nagpakita sa hugna sa koneksyon (1-3 sec pagkahuman sa power up) ug pagkontrol sa mga output sa motor. Ang konektor gikan sa Lego wala pa konektado. Moadto kini sa walay sulod nga luna sunod sa ubang mga konektor, nga gimarkahan og puti nga rektanggulo.

Ang akong anak nga lalaki karon kanunay nga naggamit niini nga controller aron makontrol ang mga makina nga iyang gi-assemble.

Atol sa stress test, usa lang ka problema ang akong nasugatan: Nagtuo ko nga ang β€œpaspas nga pagkadunot” mode [paspas nga pagkadunot] sa drayber sa motor labing maayo, apan tungod niini, human sa pipila ka segundos sa operasyon, ang gikusgon sa motor mius-os pag-ayo. . Mao nga giusab nako ang code aron magamit ang "hinay nga pagkadunot" [hinay nga pagkadunot].

Wireless nga pagkontrol sa mga Lego nga motor gamit ang Steam Controller

Samtang dili ako sigurado kung giunsa ang paglihok sa DRV ug kung ngano nga ang motor kusog nga nagtuyok sa una, ug pagkahuman pagkahuman sa 10 segundos nagsugod kini nga hinayhinay nga hinay. Tingali ang mga MOSFET nagkainit ug ang ilang resistensya mitaas pag-ayo.

Nanghinaut ko nga kini nga panig-ingnan kung giunsa ang paggamit sa Arduino dali nga makapadasig sa ubang mga tawo ug gitugotan sila sa pagpaila sa ilang mga anak sa elektroniko.

Source: www.habr.com

Idugang sa usa ka comment