Уурын хянагчтай лего моторыг утасгүй удирдах

Уурын хянагчтай лего моторыг утасгүй удирдах

Залуу байхдаа би үргэлж л лего техно иж бүрдэл авч, гайхалтай зүйлсийг бүтээхийг хүсдэг байсан. Lego тоосго галладаг эргэдэг цамхаг бүхий автономит танкууд. Гэхдээ дараа нь надад ийм багц байгаагүй.

Мөн ердийн лего тоосго ч байсангүй. Надад энэ бүх үнэтэй тоглоом ахад нь байсан найз л байсан.

Тэгээд одоо тэр насны хүүтэй болсон. Тэгээд тэр танкуудыг ... хана мөргөх хүртэл тэнэгээр урагшилдаг танкуудыг бүтээдэг 🙂

Одоо ESP32 ба гагнуурын төмрийн ид шидийн цаг болжээ - тэдэнд тохирох алсын удирдлагыг угсарцгаая!

Үгүй ээ, мэдээжийн хэрэг би ийм алсын удирдлага байдаг талаар мэддэг. Гэхдээ аль нь ч надад төгс тохирохгүй. Тэдгээр нь хэт улаан туяаны, 80-аад оны технологитой эсвэл хэт том хэмжээтэй байдаг. Эсвэл үнэтэй. Хамгийн гол нь би хүүдээ тэдний хэн нэгнийх нь тухай хэлж чадахгүй: "Би үүнийг чамд зориулж хийсэн!"

Тиймээс хүн бүрийг удирдах шинэ, сайжруулсан алсын удирдлага хийцгээе!

Уурын хянагчтай лего моторыг утасгүй удирдах

Орц:

  • ESP32-WROOM-32D | WiFi, BLE болон I/O бүхий процессор - хоёрыг удирдахад хангалттай моторууд и LED.
  • DRV8833 | моторт хангалттай хүч чадал бүхий давхар H-гүүр.
  • TPS62162 | WSON-17 8x2mm хайрцгийг гагнахдаа хөгжилтэй байхын тулд хүчдэлийг 2V хүртэл бууруулна
  • CP2104 | ESP32 програмчлалын хувьд
  • Холбогчууд мотор ба диодыг холбох зориулалттай. Утаснуудыг хайчилж, доод талд нь гагнах ба дээр нь Lego холбогчийг наа.

Энэ бүгдийг нэлээд жижиг самбар дээр байрлуулах болно - EasyEDA редактор дээр түүний дүр төрх энд байна:

Уурын хянагчтай лего моторыг утасгүй удирдах

Гарчгийн зураг дээр харагдах утас нь зарим алдааг засахын тулд биш, харин USB-ээс тэжээл өгөхөд хэрэгтэй. Энэ нь моторт хангалттай биш байж болох ч харамсалтай нь Хятадаас холбоо барих мэдээлэл надад ирээгүй байна. Тиймээс би эхлээд LED-ийн ажиллагааг шалгадаг. Зурган дээрх гоо үзэсгэлэнгийн хувьд би мотороос холбогчийг самбар дээр тавьсан.

Миний самбарын 1.1 хувилбар (EasyEDA дээр суулгасан 1.2 хувилбараас ялгаатай нь) ямар ч LED байхгүй байсан тул юу болж байгааг харахын тулд би гаралтын эсрэг хоёр диодыг гагнасан. Хэрэв та анхааралтай ажиглавал видео нь 0603 хос диодыг ээлжлэн асааж байгааг харуулж байгаа бөгөөд энэ нь урагш / арагш хөдөлгөөнийг харуулж байна.

Алсын удирдлагын хувьд эхлээд би товчлуур бүхий нэмэлт самбар, өөр ESP32 - сонгодог алсын удирдлага угсрахыг хүссэн.

Гэсэн хэдий ч, дараа нь би уурын хянагч нь Bluetooth бага эрчим хүч (BLE) горимтой гэдгийг санав. Би энэ асуудлыг шийдэхээр шийдсэн бөгөөд хэдхэн цагийн дараа би хянагчаас пакетуудыг хэрхэн хүлээж авахыг сурсан.

Үүнийг хийхийн тулд та өөрийгөө SteamController гэж нэрлэдэг HID төхөөрөмжийг хайж, түүнд холбогдох хэрэгтэй. Тэгээд дараа нь Valve болон цөөн хэдэн баримт бичиггүй үйлчилгээг ашиглана уу бичиг баримтгүй тушаалууд, пакетуудыг дамжуулах боломжийг олгодог.

Уурын хянагчтай лего моторыг утасгүй удирдах

Би мөн гараар задлан шинжилсэн баримтжуулаагүй тайлангийн форматтай таарсан.

Уурын хянагчтай лего моторыг утасгүй удирдах

Нэг цаг орчмын дараа тугнууд болон үнэт зүйлсийн утга нь надад тодорхой болж, би Steam хянагч болон ESP32 ашиглан LED-ийг анивчуулж чадсан. ¯_(ツ)_/¯

Файлууд

v1.0: "туршилтын арга"
- миний буруу хүчдэлийн зохицуулагчийг сонгосон эхний сонголт. TPS62291 нь зөвхөн 6V хүртэл хүчдэлийг авдаг.Би хэд хэдэн төслийг зэрэгцүүлэн боловсруулж байсан бөгөөд төхөөрөмж 9V-тэй ажиллах шаардлагатай гэдгийг мартсан.

v1.1: "хангалттай сайн"
- энэ сонголт нь видеон дээр харагдаж байгаа бөгөөд бүх зүйл ажилладаг

v1.2: "эцсийн"
- гаралтад заагч LED-уудыг нэмж, самбарын хэмжээ, зохион байгуулалтыг оновчтой болгосон

Дараах богино хэмжээний видео нь холболтын үе шат (асаалтаас хойш 1-3 секундын дараа) болон моторын гаралтын хяналтыг харуулж байна. Lego-ийн холбогч хараахан холбогдоогүй байна. Энэ нь цагаан тэгш өнцөгтөөр тэмдэглэгдсэн бусад холбогчдын хажууд байгаа хоосон зайд очно.

Хүү маань угсарсан машинуудаа энэ хянагчаар байнга удирддаг болсон.

Стресс тестийн үеэр би зөвхөн нэг л асуудалтай тулгарсан: моторын жолоочийн "хурдан муудах" горим хамгийн сайн ажиллана гэж бодсон боловч үүнээс болж хэдхэн секундын дараа хөдөлгүүрийн хурд маш их буурсан. . Тиймээс би кодыг "удаан задрал" [удаан задрал] ашиглахаар өөрчилсөн.

Уурын хянагчтай лего моторыг утасгүй удирдах

DRV хэрхэн ажилладаг, яагаад мотор эхлээд хурдан эргэлддэгийг мэдэхгүй ч 10 секундын дараа аажмаар удааширч эхэлдэг. Магадгүй MOSFET-ууд халж, эсэргүүцэл нь хэт их нэмэгдэж байгаа байх.

Arduino-г хэрхэн хялбар ашиглах тухай энэ жишээ бусад хүмүүст урам зориг өгч, хүүхдүүдээ электрониктой танилцуулах боломжийг олгоно гэж найдаж байна.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх