Kontrolli me valë i motorëve Lego me kontrolluesin e avullit

Kontrolli me valë i motorëve Lego me kontrolluesin e avullit

Kur isha i ri, gjithmonë doja të kisha sete tekno Lego për të ndërtuar gjëra interesante. Tanke autonome me frëngji rrotulluese që ndezin tulla Lego. Por atëherë nuk kisha një grup të tillë.

Dhe nuk kishte as tulla të rregullta Lego. Unë kisha vetëm një mik, vëllai i të cilit kishte të gjitha këto lodra të shtrenjta.

Dhe tani kam një djalë të asaj moshe. Dhe ai ndërton tanke që ... marrëzisht përpara derisa përplasen në mur 🙂

Dhe tani, është koha për ESP32 dhe magjinë e saldatorit - le të montojmë telekomandën e duhur për ta!

Jo, sigurisht që di për ekzistencën e telekomandave të tilla. Por asnjëra prej tyre nuk më përshtatet në mënyrë të përsosur. Ato janë ose infra të kuqe, me teknologji të viteve '80, ose shumë të mëdha. Ose ato të shtrenjta. Dhe më e rëndësishmja, nuk do të mund t'i tregoj djalit tim për asnjërën prej tyre: "Unë e bëra atë posaçërisht për ty!"

Pra, le të bëjmë një telekomandë të re, të përmirësuar për të sunduar të gjithë!

Kontrolli me valë i motorëve Lego me kontrolluesin e avullit

Përbërësit:

  • ESP32-WROOM-32D | WiFi, BLE dhe procesor me I/O - mjaftueshëm për të kontrolluar dy motorët и LED.
  • DRV8833 | urë e dyfishtë H me fuqi të mjaftueshme për motorët.
  • TPS62162 | ulni tensionin në 17 V, gjithashtu për argëtim kur bashkoni kutinë WSON-8 2x2 mm
  • CP2104 | për programimin ESP32
  • Mbulim Gjuhësh për lidhjen e motorëve dhe diodave. Pritini telat dhe ngjitini ato në fund dhe ngjitni lidhësin Lego sipër.

E gjithë kjo do të vendoset në një tabelë mjaft të vogël - këtu është pamja e saj në redaktorin EasyEDA:

Kontrolli me valë i motorëve Lego me kontrolluesin e avullit

Teli, i cili është i dukshëm në foton e titullit, nuk nevojitet për të korrigjuar disa gabime, por për të furnizuar energji nga USB. Mund të mos jetë e mjaftueshme për motorin, por, për fat të keq, kontaktet nga Kina nuk kanë ardhur ende tek unë. Prandaj, së pari kontrolloj funksionimin e LED-ve. Për bukurinë në foto, thjesht vendosa lidhësin nga motori në tabelë.

Versioni 1.1 i bordit tim (ndryshe nga versioni 1.2 tashmë në EasyEDA) nuk kishte LED, kështu që bashkova dy dioda anti-paralele në dalje në mënyrë që të shihja se çfarë po ndodhte. Nëse shikoni nga afër, video tregon ndezjen alternative të një çifti diodash 0603, duke treguar lëvizjen përpara / prapa.

Sa i përket telekomandës, në fillim thjesht doja të mblidhja një tabelë shtesë me butona dhe një tjetër ESP32 - një telekomandë klasike.

Sidoqoftë, atëherë m'u kujtua se kontrollorët e avullit kanë një mënyrë funksionimi Bluetooth me energji të ulët (BLE). Vendosa të merrem me këtë çështje dhe pas disa orësh mësova se si të merrja pako nga kontrolluesi.

Për ta bërë këtë, thjesht duhet të kërkoni një pajisje HID që e quan veten SteamController dhe të lidheni me të. Dhe pastaj përdorni një shërbim të padokumentuar nga Valve dhe disa komandat e padokumentuara, duke lejuar transmetimin e paketave.

Kontrolli me valë i motorëve Lego me kontrolluesin e avullit

Kam hasur gjithashtu në një format raporti të padokumentuar që e analizova manualisht.

Kontrolli me valë i motorëve Lego me kontrolluesin e avullit

Pas rreth një ore, kuptimi i flamujve dhe vlerave u bë i qartë për mua, dhe arrita të ndez LED duke përdorur kontrolluesin Steam dhe ESP32. ¯_(ツ)_/¯

fotografi

v1.0: "qasja e provës"
- opsioni i parë për të cilin zgjodha rregullatorin e gabuar të tensionit. TPS62291 merr tensionin vetëm deri në 6 V. Po zhvilloja disa projekte paralelisht dhe harrova që pajisja duhet të punojë me 9 V.

v1.1: "mjaft mirë"
- ky opsion është i dukshëm në video dhe gjithçka funksionon

v1.2: "final"
- shtoi LED tregues në dalje dhe optimizoi madhësinë dhe paraqitjen e tabelës

Videoja e shkurtër e mëposhtme tregon fazën e lidhjes (1-3 sekonda pas ndezjes) dhe kontrollin e daljeve të motorit. Lidhësi nga Lego nuk është lidhur ende. Do të shkojë në hapësirën boshe pranë lidhësve të tjerë, të shënuar me një drejtkëndësh të bardhë.

Djali im tani e përdor rregullisht këtë kontrollues për të kontrolluar makinat që ka montuar.

Gjatë testit të stresit, hasa vetëm një problem: mendova se modaliteti "prishje e shpejtë" [prishja e shpejtë] e drejtuesit të motorit do të funksiononte më mirë, por për shkak të tij, pas disa sekondash funksionimi, shpejtësia e motorit ra shumë. . Kështu që e ndryshova kodin në mënyrë që të përdorë "shkatërrim i ngadalshëm" [shkatërrim i ngadalshëm].

Kontrolli me valë i motorëve Lego me kontrolluesin e avullit

Ndërsa nuk jam i sigurt se si funksionon DRV dhe pse motori rrotullohet shpejt në fillim, dhe më pas pas 10 sekondash fillon të ngadalësohet gradualisht. Ndoshta MOSFET-et po nxehen dhe rezistenca e tyre po rritet shumë.

Shpresoj se ky shembull se si të përdoret Arduino pa sforcim i frymëzon njerëzit e tjerë dhe i lejon ata t'i prezantojnë fëmijët e tyre me elektronikë.

Burimi: www.habr.com

Shto një koment