Sendrata kontrolo de Lego-motoroj kun la Vapora Regilo

Sendrata kontrolo de Lego-motoroj kun la Vapora Regilo

Kiam mi estis juna, mi ĉiam volis havi Lego-tekno-arojn por konstrui bonegajn aferojn. Aŭtonomaj tankoj kun turniĝantaj gvatturetoj kiuj pafas Lego-brikojn. Sed tiam mi ne havis tian aron.

Kaj eĉ ne estis regulaj Lego-brikoj. Mi havis nur amikon, kies frato havis ĉiujn tiujn multekostajn ludilojn.

Kaj nun mi havas filon de tiu aĝo. Kaj li konstruas tankojn kiuj ... stulte antaŭen ĝis ili frakasas kontraŭ la muro 🙂

Kaj nun, estas tempo por la ESP32 kaj la magio de la lutfero - ni kunvenu la ĝustan teleregilon por ili!

Ne, kompreneble mi scias pri la ekzisto de tiaj teleremoloj. Sed neniu el ili perfekte konvenas al mi. Ili estas aŭ infraruĝaj, kun 80-aj jaroj, aŭ tro grandaj. Aŭ multekostaj. Kaj plej grave, mi ne povos diri al mia filo pri iu el ili: "Mi faris tion speciale por vi!"

Do ni faru novan, plibonigitan teleregilon por regi ĉiujn!

Sendrata kontrolo de Lego-motoroj kun la Vapora Regilo

Ingrediencoj:

  • ESP32-WROOM-32D | WiFi, BLE kaj procesoro kun I/O - sufiĉe por kontroli du motoroj и LED.
  • DRV8833 | duobla H-ponto kun sufiĉe da potenco por la motoroj.
  • TPS62162 | malsupreniru la tension al 17V, ankaŭ por amuzo dum lutado de la kazo WSON-8 2x2mm
  • CP2104 | por ESP32-programado
  • Konektiloj por konekti motorojn kaj diodojn. Tranĉu la dratojn kaj ludu ilin malsupre, kaj gluu la Lego-konektilon supre.

Ĉio ĉi estos metita sur sufiĉe malgranda tabulo - jen ĝia apero en la redaktilo de EasyEDA:

Sendrata kontrolo de Lego-motoroj kun la Vapora Regilo

La drato, kiu estas videbla en la titolfoto, estas bezonata ne por korekti iujn erarojn, sed por provizi potencon de USB. Eble ne sufiĉas por la motoro, sed, bedaŭrinde, kontaktoj el Ĉinio ankoraŭ ne venis al mi. Tial mi unue kontrolas la funkciadon de la LED-oj. Por beleco en la foto, mi ĵus metis la konektilon de la motoro sur la tabulo.

La versio 1.1 de mia tabulo (malsame kun la versio 1.2 jam ĉe EasyEDA) ne havis LED-ojn, do mi lutis du kontraŭparalelan diodojn al la eligo, por ke mi povu vidi kio okazas. Se vi rigardas atente, la video montras la alternan ŝaltadon de paro da diodoj 0603, indikante antaŭen/malantaŭen movadon.

Koncerne la teleregilon, mi komence volis nur kunmeti plian tabulon kun butonoj kaj alian ESP32 - klasikan teleregilon.

Tamen, tiam mi memoris, ke la Vaporaj Regiloj havas funkciantan Bluetooth Low Energy (BLE). Mi decidis trakti ĉi tiun aferon, kaj post kelkaj horoj mi lernis kiel ricevi pakaĵojn de la regilo.

Por fari tion, vi nur bezonas serĉi HID-aparaton, kiu nomas sin SteamController kaj konekti al ĝi. Kaj poste uzu nedokumentitan servon de Valve kaj kelkaj nedokumentitaj komandoj, permesante la dissendon de pakaĵoj.

Sendrata kontrolo de Lego-motoroj kun la Vapora Regilo

Mi ankaŭ renkontis nedokumentitan raportformaton, kiun mi analizis permane.

Sendrata kontrolo de Lego-motoroj kun la Vapora Regilo

Post ĉirkaŭ unu horo, la signifo de la flagoj kaj valoroj evidentiĝis al mi, kaj mi sukcesis palpebrumi la LED per la Steam-regilo kaj ESP32. ¯_(ツ)_/¯

Dosieroj

v1.0: "prova alproksimiĝo"
- la unua opcio por kiu mi elektis la malĝustan tensio-regulilon. La TPS62291 nur prenas la tension ĝis 6V. Mi disvolvis plurajn projektojn paralele, kaj mi forgesis, ke la aparato bezonas labori kun 9V.

v1.1: "sufiĉe bona"
- ĉi tiu opcio estas videbla en la videoj, kaj ĉio funkcias

v1.2: "fina"
- aldonis indikilojn al la eligo kaj optimumigis la grandecon kaj aranĝon de la tabulo

La sekva mallonga video montras la konektan fazon (1-3 sekundojn post ekfunkciigo) kaj kontrolon de la motoraj eliroj. Konektilo de Lego ankoraŭ ne estas konektita. Ĝi iros al la malplena spaco apud la aliaj konektiloj, markita per blanka rektangulo.

Mia filo nun regule uzas ĉi tiun regilon por kontroli la maŝinojn, kiujn li kunvenis.

Dum la streĉa provo, mi renkontis nur unu problemon: mi pensis, ke la reĝimo "rapida kadukiĝo" [rapida kadukiĝo] de la motorŝoforo plej bone funkcios, sed pro tio, post kelkaj sekundoj da funkciado, la motorrapideco tre malpliiĝis. . Do mi ŝanĝis la kodon tiel ke ĝi uzu "slow decay" [malrapida decay].

Sendrata kontrolo de Lego-motoroj kun la Vapora Regilo

Kvankam mi ne certas, kiel funkcias la DRV kaj kial la motoro rapide turniĝas komence, kaj poste post 10 sekundoj ĝi komencas iom post iom malrapidiĝi. Eble la MOSFET-oj varmiĝas kaj ilia rezisto tro altiĝas.

Mi esperas, ke ĉi tiu ekzemplo pri kiel uzi la Arduino senpene inspiras aliajn homojn kaj ebligas al ili prezenti siajn infanojn al elektroniko.

fonto: www.habr.com

Aldoni komenton