Obsah:
- Zásoby
- Krok 1: Mobilný robotický automobil
- Krok 2: Mobilný robotický automobil - schéma zapojenia
- Krok 3: Mobilný robotický automobil - zostava (motory)
- Krok 4: Mobilný robotický automobil - montáž (snímač vzdialenosti)
- Krok 5: Mobilný robotický automobil - zostava (ESP32 CAM)
- Krok 6: Mobilný robotický automobil - montáž (dávkovač čipov)
- Krok 7: Mobilný robotický automobil - montáž (súbory cookie!)
- Krok 8: Mobilný robotický automobil - kód Arduino
- Krok 9: Mobilný robotický automobil - kód ESP32
- Krok 10: Dávkovač čipov
- Krok 11: Joystick
- Krok 12: Joystick - schéma zapojenia
- Krok 13: Joystick - emulátor klávesnice
- Krok 14: Sieťová komunikácia
- Krok 15: Dajte to všetko dohromady
Video: Robot virtuálnej prítomnosti: 15 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:55
Tento mobilný robot interaguje so svojim fyzickým prostredím tým, že predstavuje „virtuálnu prítomnosť“osoby, ktorá ho ovláda na diaľku. Prístup k nemu má ktokoľvek, kdekoľvek na svete, aby vám mohol rozdávať maškrty a hrať sa s vami.
Prácu tu vyvíjajú dvaja ľudia (jeden v Nemecku a jeden v USA) ako pokus posunúť sa za hranice tradičných spôsobov internetovej komunikácie vytvorením fyzického rozhrania pre vzdialenú interakciu. Keďže COVID-19 naďalej ovplyvňuje svet a každý je zodpovedný za obmedzenie nášho fyzického kontaktu s ľuďmi, snažíme sa obnoviť hmatateľné spojenie, ktoré je súčasťou fyzickej interakcie.
Je založený na pokynoch ESP32-Camera-Robot-FPV-Teacher-Entry Instructable a upravený tak, aby zahŕňal snímač vzdialenosti, automat na ošetrenie a „ovládanie odkiaľkoľvek na svete“za predpokladu, že máte trochu stabilné internetové pripojenie.
Zásoby
Projekt má 4 hlavné časti - mobilné robotické auto, dávkovač čipov, joystick a nastavenie sieťovej komunikácie.
Mobilné robotické auto
- Breadboard
- Robotická súprava motora a podvozku s 2 kolesami (obsahuje kolesá, jednosmerné motory, montážnu dosku a skrutky)
- Arduino Mega 2560 (ak budete stavať bez snímača vzdialenosti alebo dávkovača čipov, bude mať Uno dostatok pinov)
- (3) 9V batérie (nechajte ich niekoľko ďalších, pretože ich vybíjate pri ladení)
- LM2596 Napájací modul DC/DC Buck 3A regulátor (alebo podobný)
- Wifi modul ESP32-CAM
- FT232RL FTDI Sériový prevodník USB na TTL (na programovanie ESP32-CAM)
- Ultrazvukový snímač vzdialenosti HC-SR04
- Ovládač motora L298N
- (3) LED diódy (akejkoľvek farby)
- (3) 220 ohmové odpory
Dávkovač čipov
- (2) Serva SG90
- Kartón / Kartón
Joystick
- Arduino Uno
- Modul joysticku
- Mini Breadboard, (1) LED, (1) Rezistor 220 Ohm (voliteľné)
Iné
Veľa prepojovacích drôtov na chlebovú dosku Extra kartón / lepenka Páska Nožnice Pravítko / meracia páska Malý skrutkovač Philips Malý plochý skrutkovač
Trpezlivosť =)
Krok 1: Mobilný robotický automobil
Podvozok Robot Car slúži ako mobilná platforma, pričom Arduino MEGA ako hlavný mikro-ovládač poháňa motory, číta hodnoty senzorov a aktivuje servá. Väčšina akcií sa vykonáva tak, že Arduino MEGA prijíma príkazy prostredníctvom sériovej komunikácie odosielanej z ESP32-CAM. Aj keď ESP32 poskytuje živý prenos z kamery na ovládanie robota, jeho ďalšou funkciou je správa bezdrôtového pripojenia medzi robotom a serverom, čo umožňuje používateľom ovládať ho odkiaľkoľvek na svete. ESP32 prijíma príkazy z webovej stránky stlačením klávesu a odosiela ich do Arduino MEGA ako hodnoty char. Na základe prijatej hodnoty pôjde auto dopredu, dozadu atď. Pretože diaľkové ovládanie cez internet závisí od mnohých vonkajších faktorov vrátane vysokej latencie, zlej kvality streamu a dokonca aj odpojení, je integrovaný snímač vzdialenosti, aby robot nepadol. do predmetov.*Vzhľadom na vysoké a kolísavé požiadavky na výkon čipu ESP32 sa odporúča používať regulátor napájania z batérie (pozri schému zapojenia).
Krok 2: Mobilný robotický automobil - schéma zapojenia
Krok za krokom vás prevedieme montážou.
Krok 3: Mobilný robotický automobil - zostava (motory)
Potom, čo zostavíte šasi 2WD, začneme pripojením motorov a batérie k Arduino MEGA prostredníctvom ovládača L298N.
Krok 4: Mobilný robotický automobil - montáž (snímač vzdialenosti)
Pretože je k dispozícii pomerne veľa komponentov na pripojenie, pridajme dosku, aby sme mohli jednoduchšie pripojiť napájanie a zdieľanú zem. Potom, čo znova usporiadame vodiče, pripojte snímač vzdialenosti a upevnite ho v prednej časti robota.
Krok 5: Mobilný robotický automobil - zostava (ESP32 CAM)
Potom pripojte modul ESP32-CAM a pripevnite ho k senzoru vzdialenosti v blízkosti prednej časti robota. Pamätajte si, že tento dosť energeticky náročný komponent vyžaduje vlastnú batériu a DC regulátor.
Krok 6: Mobilný robotický automobil - montáž (dávkovač čipov)
Teraz pridáme dávkovač čipov (viac o tom v časti „Dávkovač čipov“). Pripojte dve servá podľa Fritzingovho diagramu a pripevnite dávkovač k chvostu robota.
Krok 7: Mobilný robotický automobil - montáž (súbory cookie!)
Nakoniec do dávkovača pridáme maškrty!
Krok 8: Mobilný robotický automobil - kód Arduino
RobotCar_Code je kód, ktorý budete musieť načítať do Arduino Mega.
Funguje to takto: Arduino počúva bajty, ktoré sú odosielané z ESP32 prostredníctvom sériovej komunikácie v pásme 115200. Na základe prijatého bajtu sa auto bude pohybovať dopredu, dozadu, doľava, doprava atď. Odoslaním buď VYSOKÉHO alebo NÍZKEHO napätia do motorov na ovládanie smeru, ako aj premennej PWM medzi 0-255 na ovládanie rýchlosti. Aby sa zabránilo kolíziám, tento kód tiež číta hodnoty prichádzajúce zo snímača vzdialenosti a ak je vzdialenosť menšia ako špecifikovaná prahová hodnota, robot sa nepohne dopredu. Nakoniec, ak Arduino dostane príkaz na vydanie maškrty, aktivuje serva v dávkovači čipov.
Krok 9: Mobilný robotický automobil - kód ESP32
ESP32 umožňuje komunikáciu medzi serverom a Arduino prostredníctvom Wifi. Programuje sa oddelene od Arduina a má svoj vlastný kód:
- ESP32_Code.ino je kód pre ESP32 na odosielanie informácií do Arduina
- app_httpd.cpp je kód potrebný pre predvolený webový server ESP32 a nastavuje funkciu na počúvanie stlačení klávesov. Dobré na ladenie a testovanie na miestnej wifi. Neslúži na komunikáciu mimo lokálnej siete.
- camera_index.h je html kód pre predvolenú webovú aplikáciu
- camera_pins.h definuje kolíky v závislosti od modelu ESP32
Kód ESP32 používa knižnicu Wifi a tiež doplnok ESP32, ktorý je možné nainštalovať do Arduino IDE podľa týchto krokov:
- V Arduino IDE prejdite na Súbor> Predvoľby
- Potom na karte Nastavenia v časti Adresa URL doplnkového ovládača zadajte nasledujúci príkaz „https://dl.espressif.com/dl/package_esp32_index.json“
- Teraz otvorte Správcu dosiek a prejdite na Nástroje> Doska> Správca dosiek a vyhľadajte ESP32 zadaním „ESP32“
- Mali by ste vidieť „esp32 od spoločnosti Espressif Systems“. Kliknite na Inštalovať.
- Teraz by mal byť nainštalovaný doplnok ESP32. Ak to chcete skontrolovať, vráťte sa do Arduino IDE a prejdite na Nástroje> Doska a vyberte „Modul ESP32 Wrover“.
- Znova prejdite na Nástroje> Rýchlosť odovzdávania a nastavte ho na „115200“.
- Nakoniec prejdite na Nástroje> Schéma oddielov a nastavte ho na „Obrovská aplikácia (3 MB bez OTA/1 MB SPIFFS)
- Akonáhle to dokončíte, odporúčam nasledovať tento návod RandomNerdTutorials, ktorý podrobne vysvetľuje, ako dokončiť nastavenie ESP32 a nahrať kód pomocou programátora FTDI Programovanie ESP32
Krok 10: Dávkovač čipov
Dávkovač čipov je lacný doplnok k mobilnému robotovi, ktorý mu umožňuje ovplyvniť miestne prostredie a interagovať s ľuďmi / zvieratami, pričom zanechá chutnú pochúťku. Skladá sa z vonkajšej škatule z lepenky s dvoma servami namontovanými vo vnútri, ako aj z vnútornej lepenkovej kazety, do ktorej sa dajú vydávať položky (napríklad sladkosti alebo psie maškrty). Jedno servo funguje ako brána, zatiaľ čo druhé tlačí položku von.
*Všetky rozmery sú v milimetroch
Krok 11: Joystick
Aj keď môže byť ovládanie robota pomocou klávesnice zábavné, ešte zábavnejšie a intuitívnejšie je používanie joysticku, kde robot reaguje priamo podľa smeru, ktorým tlačíte. Pretože sa tento robot ovláda pomocou stlačení kláves zaznamenaných na webovej stránke, potrebovali sme náš joystick na emuláciu klávesnice. Používatelia bez joysticku tak môžu stále ovládať robota priamo z klávesnice, ostatní však môžu používať joystick.
Na to sme mali iba Arduino Uno, ktoré nemá možnosť používať knižnicu, preto sme ho naprogramovali priamo pomocou protokolu USB známeho ako Device Firmware Update (DFU), ktorý umožňuje arduino flashovať pomocou generického firmvéru klávesnice USB HID. Inými slovami, keď je arduino zapojené do USB, už nie je rozpoznané ako arduino, ale ako klávesnica!
Krok 12: Joystick - schéma zapojenia
Tu je návod, ako sme zapojili joystick.
Krok 13: Joystick - emulátor klávesnice
Aby vaše Arduino Uno mohlo emulovať klávesnicu, musíte čip Ardeaino 16u2 na Arduine naprogramovať priamo prostredníctvom manuálnej aktualizácie firmvéru zariadenia (DFU). Nasledujúce kroky popíšu proces pre počítač so systémom Windows a dúfajme, že vám pomôžu vyhnúť sa niektorým problémom, s ktorými sme sa stretli.
Prvým krokom je manuálne zapísanie ovládača USB Atmel do Arduina, aby bol rozpoznaný ako USB, a nie ako Arduino, ktorý mu umožní blikať pomocou programátora FLIP.
- Stiahnite si Atmel's FLIP Programmer odtiaľto
- Pripojte svoje Arduino Uno
- Prejdite do Správcu zariadení a nájdite Arduino. Bude pod COM alebo Neznáme zariadenie. Pripojte ho a odpojte, aby ste sa uistili, že je to správne zariadenie.
- Akonáhle nájdete Arduino Uno v Správcovi zariadení, kliknite naň pravým tlačidlom myši a zvoľte vlastnosti> Ovládač> Aktualizovať ovládač> V počítači vyhľadať softvér ovládača> Nechám si vybrať zo zoznamu dostupných ovládačov v počítači> Z diskety> Prejsť na súbor "atmel_usb_dfu.inf" a vyberte ho. To by malo byť v priečinku, kde bol nainštalovaný váš Atmel FLIP Programmer. Na mojom počítači je tu: C: / Program Files (x86) Atmel / Flip 3.4.7 / usb / atmel_usb_dfu.inf
- Nainštalujte ovládač
- Teraz sa vráťte do Správcu zariadení, mali by ste vidieť „zariadenia Atmel USB“s Arduino Uno, ktoré je teraz označené ako ATmega16u2!
Teraz, keď počítač rozpozná Arduino Uno ako zariadenie USB, môžeme pomocou programátora FLIP nahrať 3 samostatné súbory a zmeniť ich na klávesnicu.
Ak ste odpojili Arduino Uno po prvej časti, znova ho zapojte.
- Otvorte FLIP
- Resetujte Arduino Uno krátkym pripojením napájania k zemi.
- Kliknite na položku Výber zariadenia (ikona ako mikročip) a vyberte ATmega16U2
- Kliknite na položku Vybrať komunikačné médium (ikona ako kábel USB) a vyberte položku USB. Ak ste správne dokončili prvú časť, ostatné sivé tlačidlá by mali byť použiteľné.
- Prejdite na Súbor> Načítať hexadecimálny súbor> a nahrajte súbor Arduino-usbserial-uno.hex
- V okne FLIP by ste mali vidieť tri sekcie: Operations Flow, FLASH Buffer Information a ATmega16U2. V toku činností začiarknite políčka Vymazať, Programovať a Overiť a potom kliknite na položku Spustiť.
- Po dokončení tohto procesu kliknite na položku Spustiť aplikáciu v sekcii ATmega16U2.
- Zapojte arduino do zásuvky a odpojte ho od počítača a znova ho zapojte.
- Resetujte Arduino Uno krátkym pripojením napájania k zemi.
- Otvorte Arduino IDE a nahrajte súbor JoyStickControl_Code.ino na dosku.
- Zapnite arduino tak, že ho odpojíte od počítača a znova zapojíte.
- Resetujte arduino krátkym pripojením napájania k zemi.
- Vráťte sa na stránku FLIP a uistite sa, že Výber zariadenia hovorí Atmega16U2
- Kliknite na položku Vybrať komunikačné médium a vyberte položku USB.
- Prejdite na Súbor> Načítať hexadecimálny súbor> a nahrajte súbor Arduino-keyboard-0.3.hex
- V okne FLIP by ste mali vidieť tri sekcie: Operations Flow, FLASH Buffer Information a ATmega16U2. V toku činností začiarknite políčka Vymazať, Programovať a Overiť a potom kliknite na položku Spustiť.
- Po dokončení tohto procesu kliknite na položku Spustiť aplikáciu v sekcii ATmega16U2.
- Zapojte arduino do zásuvky a odpojte ho od počítača a znova ho zapojte.
- Keď teraz prejdete do Správcu zariadení, v časti Klávesnice by malo byť nové zariadenie klávesnice HID.
- Otvorte poznámkový blok alebo ľubovoľný textový editor a začnite pohybovať joystickom. Mali by ste vidieť zadávané čísla!
Ak chcete zmeniť kód v náčrte Arduino, napríklad písať nové príkazy na joystick, budete ho musieť zakaždým blikať so všetkými 3 súbormi.
Niekoľko užitočných odkazov: Arduino DFUAtLibUsbDfu.dll nebol nájdený
Tento emulátor klávesnice je založený na tomto návode od Michaela z 24. júna 2012.
Krok 14: Sieťová komunikácia
Na prijímanie video streamu a odosielanie príkazov robotovi z ľubovoľného miesta na svete potrebujeme spôsob získavania údajov z a do ESP32-CAM. To sa deje v dvoch častiach, obsluhe pripojenia vo vašej lokálnej sieti a verejnom serveri. Na tento účel stiahnite tri súbory:
- Handlers.py: prenáša informácie z ESP32-CAM a verejného servera (testované na Pythone 3.8)
- Flask_app.py: definuje, ako vaša aplikácia reaguje na prichádzajúce požiadavky.
- Robot_stream.html: vykresľuje video vo vašom prehliadači a počúva príkazy pomocou klávesnice / joysticku (testované v prehliadači Chrome)
Môžete to kódovať priamo v app_httpd.cpp, ale na jednoduchšie ladenie používame skript Python spustený na počítači pripojenom k rovnakej sieti. Otvorte handlers.py a aktualizujte IP adresu a používateľské meno na svoje vlastné a môžete ísť. Stream sa spustí, keď spustíte tento súbor.
Verejný server Na prístup k všetkému na internete môžete spustiť server s PaaS podľa vlastného výberu. Na pythonanywhere (PA) toto nastavenie trvá menej ako 5 minút:
- Zaregistrujte sa a vytvorte si účet
- Prejdite na kartu „Web“a kliknite na „Pridať novú webovú aplikáciu“, zvoľte Flask a Python 3.6
- Skopírujte súbor flask_app.py do adresára /mysite
- Skopírujte robot_stream.html do adresára /mysite /templates
- Kliknite na „Znova načítať“
A … ste pripravení!
Vylúčenie zodpovednosti: Tento pracovný postup v sieti je rýchly a jednoduchý, ale veľmi vzdialený od ideálu. Na streamovanie by boli vhodnejšie RTMP alebo zásuvky, ale nie sú podporované na PA a vyžadujú si určité skúsenosti so sieťou a nastavením servera. Odporúča sa tiež pridať nejaký mechanizmus zabezpečenia na ovládanie prístupu.
Krok 15: Dajte to všetko dohromady
Teraz zapnite robota, spustite handlers.py na počítači (pripojenom k rovnakej sieti ako robot) a robota môžete ovládať z prehliadača na základe adresy URL, ktorú nastavíte, kdekoľvek chcete. (napr.
Odporúča:
Detektor prítomnosti postele Zigbee: 8 krokov
Detektor prítomnosti postele Zigbee: Už nejaký čas som hľadal spôsob, ako zistiť, kedy sme v posteli. Je to kvôli použitiu týchto informácií na Homeassistant. S týmito informáciami by som mohol urobiť automatizáciu vypínania svetiel v noci alebo napríklad aktivovať poplašný systém v mojom
Senzor prítomnosti: 12 krokov
Senzor prítomnosti: Nositeľné zariadenia sú zvyčajne zariadenia s podporou BLE. Je bežné, že periodicky inzerujú niektoré údaje pozdĺž svojej MAC adresy. ESP používame na skenovanie týchto údajov a spustenie udalosti prostredníctvom internetu, keď nájde konkrétnu adresu MAC. Tento konkrétny
Domáci simulátor prítomnosti a zariadenie na kontrolu zabezpečenia: 6 krokov (s obrázkami)
Simulátor prítomnosti domova a zariadenie na kontrolu zabezpečenia: Tento projekt nám umožňuje simulovať prítomnosť a detekovať pohyby v našom dome. Môžeme nakonfigurovať sieť zariadení nainštalovaných v rôznych miestnostiach nášho domova, všetky ovládané hlavným zariadením. Tento projekt kombinuje tieto funkcie na jednom d
Horné tlačidlo virtuálnej steny IRobot: 6 krokov
Horné tlačidlo virtuálnej steny IRobot: Mrzí ma, že to, čo na vrchu virtuálnej steny iRobot vyzerá ako veľké tlačidlo, nie je vypínač. Vyzerá to tak, že by to malo byť, ale nie je to tak. Musím teda vstúpiť a pridať prepínač do hornej časti virtuálnej steny
Pridanie virtuálnej stránky Drupal k úplne oddelenej farme Drupal: 3 kroky
Pridanie virtuálnej stránky Drupal na úplne oddelenú farmu Drupal: Drupal je systém na správu obsahu (CMS). Jednou z jeho charakteristických vlastností je jednoduchosť správy viacerých stránok z jednej kódovej základne - veľmi vychvaľovanej farmy Drupal. Tento návod bude zameraný na to, aby vám pomohol vytvoriť úplne oddelený