Lego motorren haririk gabeko kontrola Steam Controller-ekin

Lego motorren haririk gabeko kontrola Steam Controller-ekin

Gaztea nintzenean, beti nahi nuen Legoko teknikariak edukitzea gauza politak eraikitzeko. Lego adreiluak jaurtitzen dituzten dorre birakariak dituzten tanke autonomoak. Baina orduan ez nuen halako multzorik.

Eta ez zeuden ohiko Lego adreilurik ere. Lagun bat baino ez nuen anaiak jostailu garesti horiek guztiak zituen.

Eta orain adin horretako seme bat daukat. Eta tankeak eraikitzen ditu ... ergelki aurrera egiten duten horman talka egin arte πŸ™‚

Eta orain, ESP32 eta soldadura-burdinaren magiaren garaia da - munta diezaiegun urrutiko aginte egokia!

Ez, noski badakit halako urrutikoen existentzia. Baina horietako bat ere ez zait ondo egokitzen. Infragorriak dira, 80ko hamarkadako teknologiarekin, edo handiegiak. Edo garestiak. Eta garrantzitsuena, ezin izango diot nire semeari horietako bati buruz esan: β€œZuregatik egin dut bereziki!”.

Beraz, egin dezagun urruneko kontrol berri eta hobetua denak gobernatzeko!

Lego motorren haririk gabeko kontrola Steam Controller-ekin

Osagaiak:

  • ESP32-GOLA-32D | WiFi, BLE eta I/O duen prozesadorea - bi kontrolatzeko nahikoa motorrak ΠΈ LED.
  • DRV8833 | H bikoitzeko zubi motorrentzako nahikoa potentzia duena.
  • TPS62162 | jaitsi tentsioa 17V-ra, WSON-8 2x2mm-ko kaxa soldatzerakoan ere dibertitzeko
  • CP2104 | ESP32 programaziorako
  • konektoreak motorrak eta diodoak konektatzeko. Moztu hariak eta soldatu behean, eta itsatsi Lego konektorea gainean.

Hori guztia arbel txiki samarrean jarriko da - hona hemen bere agerpena EasyEDA editorean:

Lego motorren haririk gabeko kontrola Steam Controller-ekin

Tituluko argazkian ikusgai dagoen kablea ez da akats batzuk zuzentzeko behar, USBtik energia hornitzeko baizik. Agian ez da nahikoa motorra, baina, zoritxarrez, oraindik ez zaizkit Txinako kontaktuak iritsi. Hori dela eta, lehenengo LEDen funtzionamendua egiaztatzen dut. Argazkian edertasuna lortzeko, motorreko konektorea taula gainean jarri dut.

Nire plakaren 1.1 bertsioak (EasyEDA-n dagoen 1.2 bertsioak ez bezala) ez zuen LEDrik, beraz, paraleloen aurkako bi diodo soldatu nituen irteeran, zer gertatzen ari zen ikusi ahal izateko. Arretaz begiratuz gero, bideoak 0603 diodo pare baten txandakako piztea erakusten du, aurrera / atzera mugimendua adieraziz.

Urruneko aginteari dagokionez, hasiera batean, botoiekin eta beste ESP32 batekin taula gehigarri bat muntatu nahi nuen, urruneko kontrol klasikoa.

Hala ere, orduan gogoratu nintzen Steam Controllerek Bluetooth Low Energy (BLE) funtzionamendu modua dutela. Arazo honi aurre egitea erabaki nuen, eta ordu batzuen buruan kontrolagailutik paketeak nola jasotzen ikasi nuen.

Horretarako, bere burua SteamController deitzen duen HID gailu bat bilatu eta harekin konektatu besterik ez duzu behar. Eta gero erabili Valve-ren dokumenturik gabeko zerbitzu bat eta gutxi batzuk dokumenturik gabeko komandoak, paketeen transmisioa ahalbidetuz.

Lego motorren haririk gabeko kontrola Steam Controller-ekin

Dokumentu gabeko txosten formatu batekin ere egin nuen topo, eskuz analizatu nuena.

Lego motorren haririk gabeko kontrola Steam Controller-ekin

Ordubete inguru igaro ondoren, banderen eta balioen esanahia argi geratu zitzaidan, eta LED-a keinu egitea lortu nuen Steam kontrolagailua eta ESP32 erabiliz. Β―_(ツ)_/Β―

fitxategiak

v1.0: "proba planteamendua"
- tentsio-erregulatzaile okerra aukeratu dudan lehen aukera. TPS62291-k 6V-ra arteko tentsioa hartzen du.Hainbat proiektu paraleloan garatzen ari nintzen, eta gailuak 9V-rekin funtzionatu behar duela ahaztu nuen.

v1.1: "nahikoa"
- aukera hau bideoetan ikusgai dago, eta dena funtzionatzen du

v1.2: "finala"
- LED adierazleak gehitu ditu irteeran eta taularen tamaina eta diseinua optimizatu ditu

Hurrengo bideo laburrak konexio-fasea (1-3 segundo piztu ondoren) eta motorraren irteeren kontrola erakusten du. Lego-ren konektorea oraindik ez dago konektatuta. Beste konektoreen ondoan dagoen hutsunera joango da, laukizuzen zuri batekin markatuta.

Nire semeak aldian-aldian erabiltzen du kontrolagailu hau muntatu dituen makinak kontrolatzeko.

Estres-proban, arazo bakarra topatu nuen: motorraren gidariaren "desintegrazio azkarra" modua [desintegrazio azkarra] hobekien funtzionatuko zuela uste nuen, baina horregatik, segundo batzuk funtzionatu ondoren, motorraren abiadura asko jaitsi zen. . Beraz, kodea aldatu nuen "slow decay" [slow decay] erabil zezan.

Lego motorren haririk gabeko kontrola Steam Controller-ekin

Ez nagoen ziur nola funtzionatzen duen DRV eta zergatik motorrak bizkor egiten duen hasieran, eta gero 10 segundoren buruan pixkanaka moteltzen hasten da. Agian MOSFETak berotzen ari dira eta haien erresistentzia gehiegi igotzen ari da.

Espero dut Arduino erabiltzeko moduaren adibide honek beste pertsona batzuk inspiratzea eta haien seme-alabak elektronika ezagutzera ematea ahalbidetzea.

Iturria: www.habr.com

Gehitu iruzkin berria