Lego mootorite juhtmevaba juhtimine aurukontrolleriga

Lego mootorite juhtmevaba juhtimine aurukontrolleriga

Noorena tahtsin alati omada Lego techno komplekte, millega lahedaid asju ehitada. Autonoomsed tankid pöörlevate tornikestega, mis tulistavad legoklotse. Aga siis mul sellist komplekti ei olnud.

Ja seal polnud isegi tavalisi legoklotse. Mul oli ainult sõber, kelle vennal olid kõik need kallid mänguasjad.

Ja nüüd on mul selles vanuses poeg. Ja ta ehitab tanke, mis ... rumalalt edasi, kuni vastu seina põrkuvad 🙂

Ja nüüd on aeg ESP32 ja jootekolvi võlude käes – paneme nende jaoks kokku õige kaugjuhtimispuldi!

Ei, loomulikult ma tean selliste pultide olemasolust. Kuid ükski neist ei sobi mulle ideaalselt. Need on kas infrapuna, 80ndate tehnoloogiaga või liiga suured. Või kallid. Ja mis kõige tähtsam, ma ei saa oma pojale neist ühegi kohta öelda: "Ma tegin seda spetsiaalselt teie jaoks!"

Nii et teeme uue, täiustatud kaugjuhtimispuldi, mis juhib kõiki!

Lego mootorite juhtmevaba juhtimine aurukontrolleriga

Koostis:

  • ESP32-WROOM-32D | WiFi, BLE ja I/O-ga protsessor – piisab kahe juhtimiseks mootorid и LED.
  • DRV8833 | topelt H-sild, millel on mootoritele piisavalt jõudu.
  • TPS62162 | alandage pinge 17 V-ni, ka lõbu pärast WSON-8 2x2mm korpuse jootmisel
  • CP2104 | ESP32 programmeerimiseks
  • Pistikud mootorite ja dioodide ühendamiseks. Lõika juhtmed ära ja joota need alt ning liimi peale Lego pistik.

Kõik see paigutatakse üsna väikesele tahvlile - siin on selle välimus EasyEDA redaktoris:

Lego mootorite juhtmevaba juhtimine aurukontrolleriga

Tiitelfotol nähtav juhe on vajalik mitte mõne vea parandamiseks, vaid USB-st toite andmiseks. Mootori jaoks ei pruugi sellest piisata, kuid kahjuks pole Hiinast veel kontakte minu juurde tulnud. Seetõttu kontrollin esmalt LED-ide tööd. Fotol oleva ilu huvides panin lihtsalt mootori pistiku tahvlile.

Minu tahvli versioonil 1.1 (erinevalt EasyEDA versioonist 1.2) polnud LED-e, nii et jootsin väljundisse kaks antiparalleelset dioodi, et saaksin näha, mis toimub. Kui vaatate tähelepanelikult, näitab video dioodipaari 0603 vahelduvat sisselülitamist, mis näitab edasi-/tagasi liikumist.

Mis puutub kaugjuhtimispulti, siis alguses tahtsin lihtsalt kokku panna nuppudega lisaplaadi ja veel ühe ESP32 - klassikalise puldi.

Küll aga meenus siis, et Steam Controlleritel on Bluetooth Low Energy (BLE) töörežiim. Otsustasin selle probleemiga tegeleda ja mõne tunni pärast õppisin, kuidas kontrollerilt pakette vastu võtta.

Selleks peate lihtsalt otsima HID-seadme, mis nimetab end SteamControlleriks, ja sellega ühenduse luua. Seejärel kasutage Valve'i ja mõne muu dokumentideta teenust dokumenteerimata käsud, mis võimaldab pakette edastada.

Lego mootorite juhtmevaba juhtimine aurukontrolleriga

Leidsin ka dokumentideta aruandevormingu, mille sõelusin käsitsi.

Lego mootorite juhtmevaba juhtimine aurukontrolleriga

Umbes tunni pärast sai lippude ja väärtuste tähendus mulle selgeks ning mul õnnestus Steami kontrolleri ja ESP32 abil LED-i vilkuda. ¯_(ツ)_/¯

Failid

v1.0: "proovilähenemine"
- esimene variant, mille jaoks valisin vale pingeregulaatori. TPS62291 võtab pinget ainult kuni 6V. Arendasin paralleelselt mitut projekti ja unustasin, et seade peab töötama 9V-ga.

v1.1: "piisavalt hea"
- see valik on videos nähtav ja kõik töötab

v1.2: "lõplik"
- lisati väljundile indikaator-LED-id ning optimeeriti plaadi suurust ja paigutust

Järgnev lühike video näitab ühendamisetappi (1-3 sek pärast sisselülitamist) ja mootori väljundite juhtimist. Lego pistik pole veel ühendatud. See läheb teiste pistikute kõrval asuvasse tühja ruumi, mis on tähistatud valge ristkülikuga.

Mu poeg kasutab nüüd regulaarselt seda kontrollerit enda kokkupandud masinate juhtimiseks.

Koormustesti ajal puutusin kokku ainult ühe probleemiga: arvasin, et mootorijuhi kiire lagunemise režiim [fast decay] töötab kõige paremini, kuid selle tõttu langes mootori kiirus pärast mõnesekundilist töötamist väga palju. . Nii et muutsin koodi nii, et see kasutaks "aeglast lagunemist" [aeglast lagunemist].

Lego mootorite juhtmevaba juhtimine aurukontrolleriga

Kuigi ma pole kindel, kuidas DRV töötab ja miks mootor alguses kiiresti pöörleb, ja siis 10 sekundi pärast hakkab see järk-järgult aeglustuma. Võib-olla MOSFETid kuumenevad ja nende takistus tõuseb liiga palju.

Loodan, et see näide, kuidas Arduino vaevata kasutada, inspireerib teisi inimesi ja võimaldab neil oma lastele elektroonikat tutvustada.

Allikas: www.habr.com

Lisa kommentaar