Steam контроллері арқылы Lego қозғалтқыштарын сымсыз басқару

Steam контроллері арқылы Lego қозғалтқыштарын сымсыз басқару

Кішкентай кезімде мен әрқашан керемет заттар жасау үшін Lego техно жинақтарын алғым келді. Лего кірпіштерін жағатын айналмалы мұнаралары бар автономды цистерналар. Бірақ ол кезде менде мұндай жиын болған жоқ.

Тіпті қарапайым Lego кірпіштері де болған жоқ. Менің бір досым бар еді, оның ағасында осы қымбат ойыншықтардың бәрі бар.

Ал қазір сол жастағы ұлым бар. Ол қабырғаға соғылғанша ақымақтықпен алға қарай жүретін танктер жасайды 🙂

Енді, ESP32 және дәнекерлеу үтіктің сиқырының уақыты келді - олар үшін дұрыс қашықтан басқару құралын жинаймыз!

Жоқ, әрине, мен мұндай пульттердің барын білемін. Бірақ олардың ешқайсысы маған толық сәйкес келмейді. Олар не инфрақызыл, 80-ші жылдар технологиясымен немесе тым үлкен. Немесе қымбаттары. Ең бастысы, мен ұлыма олардың ешқайсысы туралы айта алмаймын: «Мен мұны сіз үшін арнайы жасадым!»

Ендеше, барлығын басқару үшін жаңа, жақсартылған қашықтан басқару құралын жасайық!

Steam контроллері арқылы Lego қозғалтқыштарын сымсыз басқару

Құрамы:

  • ESP32-WROOM-32D | WiFi, BLE және I/O бар процессор – екеуін басқаруға жеткілікті қозғалтқыштар и Жарық диодты индикатор.
  • DRV8833 | қозғалтқыштар үшін жеткілікті қуаты бар қос H-көпірі.
  • TPS62162 | кернеуді 17 В дейін төмендетіңіз, сонымен қатар WSON-8 2x2 мм корпусын дәнекерлеу кезінде көңіл көтеру үшін
  • CP2104 | ESP32 бағдарламалау үшін
  • Қосқыштар қозғалтқыштар мен диодтарды қосу үшін. Сымдарды кесіп, астыңғы жағына дәнекерлеңіз, ал Lego қосқышын үстіне жабыстырыңыз.

Мұның бәрі өте кішкентай тақтаға орналастырылады - оның EasyEDA редакторында пайда болуы:

Steam контроллері арқылы Lego қозғалтқыштарын сымсыз басқару

Титулдық фотосуретте көрінетін сым кейбір қателерді түзету үшін емес, USB арқылы қуат беру үшін қажет. Бұл мотор үшін жеткіліксіз болуы мүмкін, бірақ, өкінішке орай, Қытайдан байланыстар маған әлі келген жоқ. Сондықтан мен алдымен жарықдиодты шамдардың жұмысын тексеремін. Фотосуреттегі сұлулық үшін мен қозғалтқыштың қосқышын тақтаға қойдым.

Менің тақтамның 1.1 нұсқасында (EasyEDA жүйесіндегі 1.2 нұсқасынан айырмашылығы) жарық диодтары жоқ, сондықтан мен не болып жатқанын көру үшін шығысқа екі антипараллельді диодты дәнекерледім. Мұқият қарасаңыз, бейнеде алға/артқа қозғалысты көрсететін 0603 диодтарының кезекті қосылуы көрсетілген.

Қашықтан басқару құралына келетін болсақ, алдымен мен түймелері бар қосымша тақтаны және басқа ESP32 - классикалық қашықтан басқару құралын жинағым келді.

Алайда, содан кейін мен бу контроллерлерінің Bluetooth төмен энергиясы (BLE) жұмыс режимі бар екенін есіме түсірдім. Мен бұл мәселемен айналысуды шештім және бірнеше сағаттан кейін контроллерден пакеттерді қалай қабылдау керектігін білдім.

Ол үшін өзін SteamController деп атайтын HID құрылғысын іздеп, оған қосылу керек. Содан кейін Valve және бірнеше құжатсыз қызметті пайдаланыңыз құжатталмаған командалар, пакеттерді жіберуге мүмкіндік береді.

Steam контроллері арқылы Lego қозғалтқыштарын сымсыз басқару

Мен қолмен талдаған құжатсыз есеп пішімін де кездестірдім.

Steam контроллері арқылы Lego қозғалтқыштарын сымсыз басқару

Шамамен бір сағаттан кейін жалаулар мен мәндердің мағынасы маған түсінікті болды, мен Steam контроллері мен ESP32 көмегімен жарық диодты жыпылықтай алдым. ¯_(ツ)_/¯

Файлдар

v1.0: «сынау тәсілі»
- дұрыс емес кернеу реттегішін таңдаған бірінші нұсқа. TPS62291 тек 6В-қа дейін кернеуді қабылдайды.Мен бірнеше жобаларды параллель әзірледім, мен құрылғы 9В жұмыс істеуі керек екенін ұмытып кеттім.

v1.1: «жеткілікті жақсы»
- бұл опция бейнелерде көрінеді және бәрі жұмыс істейді

v1.2: «финал»
- шығысқа индикаторлық жарық диодтары қосылды және тақтаның өлшемі мен орналасуы оңтайландырылды

Келесі қысқа бейнеде қосылу фазасы (қуат қосылғаннан кейін 1-3 секунд) және қозғалтқыш шығыстарын басқару көрсетілген. Lego коннекторы әлі қосылмаған. Ол ақ тіктөртбұрышпен белгіленген басқа қосқыштардың жанындағы бос орынға өтеді.

Менің ұлым қазір осы контроллерді өзі жинаған машиналарды басқару үшін үнемі пайдаланады.

Стресс-тест кезінде мен бір ғана мәселеге тап болдым: мен мотор драйверінің «жылдам ыдырау» режимі [жылдам ыдырау] жақсы жұмыс істейді деп ойладым, бірақ соның арқасында бірнеше секунд жұмыс істегеннен кейін қозғалтқыш жылдамдығы өте төмендеді. . Сондықтан мен кодты «баяу ыдырау» [баяу ыдырау] қолданатын етіп өзгерттім.

Steam контроллері арқылы Lego қозғалтқыштарын сымсыз басқару

Мен DRV қалай жұмыс істейтінін және қозғалтқыштың неліктен алдымен жылдам айналатынын білмеймін, содан кейін 10 секундтан кейін ол біртіндеп баяулай бастайды. Мүмкін, MOSFET-тер қызып жатыр және олардың қарсылығы тым жоғары.

Arduino-ны оңай пайдаланудың бұл мысалы басқа адамдарды шабыттандырады және балаларын электроникамен таныстыруға мүмкіндік береді деп үміттенемін.

Ақпарат көзі: www.habr.com

пікір қалдыру