ProHoster > Blog > İdarə > 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!
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üşü:
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.
Mən də əl ilə təhlil etdiyim sənədsiz hesabat formatına rast gəldim.
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. ¯_(ツ)_/¯
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.
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.