Lego mühərriklərinin Steam Controller ilə simsiz idarə edilməsi

Lego mühərriklərinin Steam Controller ilə simsiz idarə edilməsi

Mən gənc olanda həmişə gözəl şeylər yaratmaq üçün Lego texno dəstlərinə sahib olmaq istəyirdim. Lego kərpiclərini yandıran fırlanan qüllələri olan avtonom tanklar. Amma sonra belə bir dəstim yox idi.

Hətta adi Lego kərpicləri də yox idi. Mənim yalnız bir dostum var idi, onun qardaşında bütün bu bahalı oyuncaqlar var idi.

İndi də o yaşda bir oğlum var. Və o tanklar qurur ki, ... divara çırpılana qədər axmaqcasına irəli 🙂

İndi ESP32 və lehimləmə dəmirinin sehrinin vaxtı gəldi - gəlin onlar üçün düzgün pultu yığaq!

Xeyr, əlbəttə ki, belə pultların mövcudluğundan xəbərim var. Amma heç biri mənə tam uyğun gəlmir. Onlar ya infraqırmızıdır, 80-ci illərin texnologiyası ilə, ya da çox böyükdür. Və ya bahalı olanlar. Ən əsası, mən oğluma onların heç biri haqqında danışa bilməyəcəm: "Mən bunu xüsusilə sizin üçün etdim!"

Beləliklə, gəlin hamını idarə etmək üçün yeni, təkmilləşdirilmiş uzaqdan idarəetmə yaradaq!

Lego mühərriklərinin Steam Controller ilə simsiz idarə edilməsi

Tərkibi:

  • ESP32-WROOM-32D | WiFi, BLE və I/O ilə prosessor - ikisini idarə etmək üçün kifayətdir mühərriklər и LED.
  • DRV8833 | mühərriklər üçün kifayət qədər gücə malik ikiqat H-körpü.
  • TPS62162 | gərginliyi 17V-ə endirin, həmçinin WSON-8 2x2mm korpusunu lehimləyərkən əylənmək üçün
  • CP2104 | ESP32 proqramlaşdırma üçün
  • Bağlayıcılar mühərrikləri və diodları birləşdirmək üçün. Naqilləri kəsin və dibinə lehimləyin və yuxarıdan Lego konnektorunu yapışdırın.

Bütün bunlar olduqca kiçik bir lövhədə yerləşdiriləcək - EasyEDA redaktorunda onun görünüşü:

Lego mühərriklərinin Steam Controller ilə simsiz idarə edilməsi

Başlıq fotoşəkilində görünən tel bəzi səhvləri düzəltmək üçün deyil, USB-dən enerji təmin etmək üçün lazımdır. Motor üçün bu kifayət etməyə bilər, amma təəssüf ki, Çindən əlaqə hələ mənə gəlməyib. Buna görə ilk növbədə LED-lərin işini yoxlayıram. Şəkildəki gözəllik üçün sadəcə motordan olan bağlayıcını lövhəyə qoyuram.

Lövhəmin 1.1 versiyasında (Artıq EasyEDA-da olan 1.2 versiyasından fərqli olaraq) heç bir LED yox idi, ona görə də nə baş verdiyini görmək üçün çıxışa iki antiparalel diod lehimlədim. Diqqətlə baxsanız, videoda irəli / geri hərəkəti göstərən bir cüt 0603 diodunun alternativ işə salınması göstərilir.

Uzaqdan idarəetməyə gəlincə, əvvəlcə sadəcə düymələri olan əlavə lövhə və başqa bir ESP32 - klassik pult yığmaq istədim.

Ancaq sonra xatırladım ki, Buxar Kontrollerlərində Bluetooth Aşağı Enerji (BLE) iş rejimi var. Mən bu məsələ ilə məşğul olmaq qərarına gəldim və bir neçə saatdan sonra nəzarətçidən paketləri necə qəbul etməyi öyrəndim.

Bunun üçün sadəcə özünü SteamController adlandıran HID cihazını axtarmaq və ona qoşulmaq lazımdır. Və sonra Valve və bir neçə sənədsiz xidmətdən istifadə edin sənədsiz əmrlər, paketlərin ötürülməsinə imkan verir.

Lego mühərriklərinin Steam Controller ilə simsiz idarə edilməsi

Mən də əl ilə təhlil etdiyim sənədsiz hesabat formatına rast gəldim.

Lego mühərriklərinin Steam Controller ilə simsiz idarə edilməsi

Təxminən bir saatdan sonra bayraqların və dəyərlərin mənası mənə aydın oldu və Steam nəzarətçisi və ESP32-dən istifadə edərək LED-i yanıb-sönməyə müvəffəq oldum. ¯_(ツ)_/¯

Fayllar

v1.0: "sınaq yanaşması"
- səhv gərginlik tənzimləyicisini seçdiyim ilk seçim. TPS62291 yalnız 6V-ə qədər gərginliyi götürür.Mən paralel olaraq bir neçə layihə hazırladım və cihazın 9V ilə işləməsi lazım olduğunu unutdum.

v1.1: "kifayət qədər yaxşı"
- bu seçim videolarda görünür və hər şey işləyir

v1.2: "final"
- çıxışa göstərici LED-ləri əlavə etdi və lövhənin ölçüsünü və düzülməsini optimallaşdırdı

Aşağıdakı qısa videoda qoşulma mərhələsi (güc açıldıqdan sonra 1-3 saniyə) və mühərrik çıxışlarına nəzarət göstərilir. Lego konnektoru hələ qoşulmayıb. Ağ düzbucaqlı ilə işarələnmiş digər bağlayıcıların yanındakı boş yerə gedəcək.

İndi oğlum yığdığı maşınları idarə etmək üçün mütəmadi olaraq bu nəzarətçidən istifadə edir.

Stress testi zamanı mən yalnız bir problemlə qarşılaşdım: motor sürücüsünün “sürətli çürümə” rejiminin [sürətli çürümə] daha yaxşı işləyəcəyini düşünürdüm, lakin buna görə bir neçə saniyə işlədikdən sonra motorun sürəti çox aşağı düşdü. . Beləliklə, kodu dəyişdirdim ki, "yavaş çürümə" [yavaş çürümə] istifadə etsin.

Lego mühərriklərinin Steam Controller ilə simsiz idarə edilməsi

DRV-nin necə işlədiyinə və motorun əvvəlcə tez fırlanmasına və 10 saniyədən sonra yavaş-yavaş yavaşlamağa başladığına əmin olmasam da. Ola bilsin ki, MOSFET-lər qızışır və müqavimətləri çox yüksəlir.

Ümid edirəm ki, Arduino-dan asanlıqla necə istifadə olunacağına dair bu nümunə digər insanları ruhlandırır və uşaqlarını elektronika ilə tanış etməyə imkan verir.

Mənbə: www.habr.com

Добавить комментарий