Kontrola bêtêl a motorên Lego bi Kontrolkerê Steam

Kontrola bêtêl a motorên Lego bi Kontrolkerê Steam

Dema ku ez ciwan bûm, min her gav dixwest ku min setên teknolojiya Lego hebin da ku ez bikaribim bi wan re her cûre tiştên xweş ava bikim. Tankên xweser ên bi tûpên zivirî yên ku kerpîçên Lego diavêjin. Lê paşê min seteke wisa tune bû.

Û tewra kerpîçên Lego yên birêkûpêk jî tune bûn. Tenê hevalekî min hebû ku birayê wî hemû pêlîstokên biha hebûn.

Û niha kurekî min ê vî temenî heye. Û ew tankan çêdike ku ... bi ehmeqî ber bi pêş ve diçin heya ku di dîwar de diqelişin :)

Û naha, dem ji bo ESP32 û sêrbaziya hesinê lêdanê ye - ka em ji bo wan kontrolê ji dûr ve rast berhev bikin!

Na, bê guman ez bi hebûna van kontrolên dûr ve dizanim. Lê yek ji wan bi tevahî li min nayê. Ew an infrared in, teknolojiya 80-an, an jî pir mezin in. An jî yên biha. Û ya herî girîng jî, ez ê nikaribim ji kurê xwe re ji wan re bibêjim: "Min ev bi taybetî ji bo te kir!"

Ji ber vê yekê bila em ji dûr ve nû û pêşkeftî çêbikin ku hemî wan hukum bike!

Kontrola bêtêl a motorên Lego bi Kontrolkerê Steam

Kişandin:

  • ESP32-WROOM-32D | WiFi, BLE û pêvajoyek bi I/O - bes e ku du kontrol bikin motors и LED.
  • DRV8833 | du qat H-pira bi hêza bes ji bo motors.
  • TPS62162 | kêmkirina voltajê heya 17 V, û hem jî ji bo kêfê dema ku kasa WSON-8 2x2 mm tê kelandin
  • CP2104 | ji bo bernameya ESP32
  • Têkelên ji bo girêdana motor û diodan. Em ê têlan bibirrin û li binê wan biqelînin, û girêdana Legoyê li ser bixin.

Hemî ev ê li ser tabloyek pir piçûk bicîh bibin - li vir xuyangê wê di edîtorê EasyEDA de ye:

Kontrola bêtêl a motorên Lego bi Kontrolkerê Steam

Têla ku di wêneya sernavê de tê dîtin ji bo rastkirina xeletiyan ne hewce ye, lê ji bo peydakirina hêzê ji USB-yê hewce ye. Dibe ku ew ji bo motorê ne bes be, lê mixabin, min hîn jî têkilî ji Chinaînê negirtiye. Ji ber vê yekê ez pêşî xebata LED-an kontrol dikim. Ji bo bedewiya di wêneyê de, min bi tenê girêdana ji motorê datîne ser panelê.

Li ser guhertoya 1.1 ya panela min (bervajî guhertoya 1.2, ku jixwe li ser EasyEDA ye), LED tune bûn, ji ber vê yekê min du diodên antî-paralel li ser derketinê zevt kir da ku ez bibînim ka çi diqewime. Ger hûn ji nêz ve lê mêze bikin, vîdyoyê çalakkirina alternatîf a cotek dîodên 0603 nîşan dide, ku tevgera pêş / paş ve nîşan dide.

Di derbarê panela kontrolê de, di destpêkê de min tenê dixwest ku panelek pêvek bi bişkok û ESP32-ek din - kontrolek dûr a klasîk kom bikim.

Lêbelê, wê gavê hat bîra min ku Kontrolkerên Steam xwedan moda xebitandinê ya Bluetooth Low Energy (BLE) ne. Min biryar da ku ez vê pirsgirêkê çareser bikim, û piştî çend demjimêran ez fêr bûm ku pakêtan ji kontrolkerê werbigirim.

Ji bo vê yekê, hûn tenê hewce ne ku li amûrek HID-ê ku ji xwe re dibêjin SteamController bigerin û pê ve girêbidin. Û dûv re karûbarek bêbelge ji Valve û çendan bikar bînin fermanên bêbelge, rê dide veguhestina pakêtan.

Kontrola bêtêl a motorên Lego bi Kontrolkerê Steam

Di heman demê de ez rastî formatek raporek bêbelge hatim, ku min bi destan pars kir.

Kontrola bêtêl a motorên Lego bi Kontrolkerê Steam

Nêzîkî saetek şûnda, wateya ala û nirxan ji min re zelal bû, û min karî LED-ê bi karanîna kontrolkera Steam û ESP32 vebikim. ¯_(ツ)_/¯

Pelan

v1.0: "nêzîkatiya ceribandinê"
- Vebijarka yekem a ku min regulatorê voltaja xelet hilbijart. TPS62291 tenê voltaja digihîje 6 V. Min çend proje bi paralel pêşdixist, û ji bîr kir ku pêdivî ye ku amûr bi 9 V re bixebite.

v1.1: "têra xwe baş"
- ev vebijark di vîdyoyan de xuya ye, û her tişt dixebite

v1.2: "dawî"
- LED-ên nîşanker li derketinê zêde kirin û mezinahî û sêwirana panelê xweştir kirin

Vîdyoya kurt a jêrîn qonaxa pêwendiyê (1-3 çirkeyan piştî vekirina hêzê) û kontrolkirina derketinên motorê nîşan dide. Têkiliya Lego hîn ne girêdayî ye. Ew ê biçe cîhê vala li tenişta girêdanên din, ku bi çargoşeyek spî hatî nîşankirin.

Kurê min naha bi rêkûpêk vê kontrolkerê bikar tîne da ku amûrên ku çêkiriye kontrol bike.

Di dema ceribandina stresê de ez tenê bi pirsgirêkek re rû bi rû bûm: Min fikir kir ku moda "hilweşîna bilez" a ajokarê motorê dê çêtirîn bixebite, lê ew bû sedem ku leza motorê piştî çend saniyeyên xebitandinê bi rengek berbiçav dakeve. Ji ber vê yekê min kod guhert da ku hilweşîna hêdî bikar bîne.

Kontrola bêtêl a motorên Lego bi Kontrolkerê Steam

Ez hîn nebawer im ka DRV çawa dixebite û çima motor di destpêkê de zû dizivire, û dûv re piştî 10 çirkeyan hêdî hêdî hêdî hêdî dest pê dike. Dibe ku MOSFET germ dibin û berxwedana wan pir zêde dibe.

Ez hêvî dikim ku ev karanîna bêhêvî ya Arduino dê ji yên din re bibe îlhamek da ku zarokên xwe bigihînin elektronîkê.

Source: www.habr.com

Add a comment