Kazalo:
- Zaloge
- Korak: Mobilni robot avto
- 2. korak: Mobilni robotski avto - vezje
- Korak: Mobilni robotski avtomobil - montaža (motorji)
- 4. korak: Mobilni robotski avtomobil - montaža (senzor razdalje)
- 5. korak: Mobilni robotski avtomobil - montaža (ESP32 CAM)
- Korak 6: Mobilni robotski avtomobil - montaža (razpršilnik čipov)
- Korak 7: Mobilni robotski avto - montaža (piškotki!)
- 8. korak: Mobilni robotski avto - Arduino koda
- 9. korak: Mobilni robotski avtomobil - koda ESP32
- 10. korak: Razpršilnik za čips
- 11. korak: igralna palica
- 12. korak: Krmilna palica - vezje
- Korak: Joystick - Emulator tipkovnice
- 14. korak: Omrežna komunikacija
- Korak 15: Vse skupaj
Video: Robot za virtualno prisotnost: 15 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:02
Ta mobilni robot komunicira s svojim fizičnim okoljem in predstavlja "virtualno prisotnost" osebe, ki ga upravlja na daljavo. Do njega lahko dostopa vsakdo, kjer koli na svetu, da si razdeli dobrote in se igra z vami.
To delo razvijata dve osebi (ena v Nemčiji in ena v ZDA) kot poskus preseganja tradicionalnih sredstev internetne komunikacije z ustvarjanjem fizičnega vmesnika za oddaljeno interakcijo. Ker COVID-19 še naprej vpliva na svet in so vsi odgovorni za omejevanje fizične izpostavljenosti ljudi, poskušamo vrniti oprijemljivo povezavo, ki je del fizične interakcije.
Temelji na ESP32-Camera-Robot-FPV-Teacher-Entry Instructable in spremenjeni tako, da vključuje senzor razdalje, razdeljevalec zdravil in možnost "nadzora od kjer koli na svetu", če imate nekoliko stabilno internetno povezavo.
Zaloge
Projekt ima štiri glavne dele - mobilni robot, razdelilnik čipov, igralno palico in nastavitev omrežne komunikacije.
Mobilni avtomobilski robot
- Ogledna plošča
- 2 Kolesni pogonski motor in komplet robotskih podvozjev (vključuje kolesa, enosmerne motorje, montažno ploščo in vijake)
- Arduino Mega 2560 (če gradite brez senzorja razdalje ali razdelilnika čipov, bo Uno imel dovolj zatičev)
- (3) 9V baterije (imejte jih še nekaj, saj jih boste odpravili pri odpravljanju napak)
- LM2596 Napajalni modul DC/DC Buck 3A regulator (ali podoben)
- ESP32-CAM modul Wifi
- FT232RL FTDI Serijski pretvornik USB v TTL (za programiranje ESP32-CAM)
- HC-SR04 Ultrazvočni senzor razdalje
- L298N Gonilnik motorja
- (3) LED (katere koli barve)
- (3) 220 ohmski upori
Dozator za čips
- (2) Servomotorji SG90
- Karton / Karton
Igralna palica
- Arduino Uno
- Modul igralne palice
- Mini plošča, (1) LED, (1) 220 ohmski upor (neobvezno)
Drugo
Veliko skakalnih žic za lesene plošče Dodatni karton / karton Trak ŠkarjeRavnilo / merilni trakMalen izvijač Philips Majhen ploski izvijač
Potrpežljivost =)
Korak: Mobilni robot avto
Podvozje Robot Car služi kot mobilna platforma z Arduino MEGA kot glavnim mikrokrmilnikom, ki poganja motorje, bere vrednosti senzorjev in aktivira servomotorje. Večina dejanj se izvede tako, da Arduino MEGA po serijski komunikaciji prejme ukaze, poslane iz ESP32-CAM. Medtem ko ESP32 omogoča prenos kamere v živo za nadzor robota, je njegova druga funkcija upravljanje brezžične povezave med robotom in strežnikom, kar uporabnikom omogoča upravljanje z vsega sveta. ESP32 prejema ukaze s spletne strani s pritiskom na tipko in jih kot vrednosti char pošlje v Arduino MEGA. Na podlagi prejete vrednosti bo avto šel naprej, nazaj itd. Ker je daljinsko upravljanje prek interneta odvisno od številnih zunanjih dejavnikov, vključno z veliko zakasnitvijo, slabo kakovostjo toka in celo odklopi, je vgrajen senzor razdalje, ki preprečuje, da bi se robot zrušil v predmete.*Zaradi visokih in nihajočih potreb po moči čipa ESP32 je za uporabo z napajanjem iz akumulatorja priporočljiv regulator napajanja (glejte diagram ožičenja).
2. korak: Mobilni robotski avto - vezje
Vodili vas bomo skozi sestavo tega postopka.
Korak: Mobilni robotski avtomobil - montaža (motorji)
Ko sestavite ohišje 2WD, začnemo s povezovanjem motorjev in akumulatorja na Arduino MEGA prek gonilnika L298N.
4. korak: Mobilni robotski avtomobil - montaža (senzor razdalje)
Ker je za povezovanje kar nekaj komponent, dodajmo osnovo, da lahko lažje povežemo napajanje in deljena tla. Ko ponovno organiziramo žice, povežemo senzor razdalje in ga pritrdimo na sprednji strani robota.
5. korak: Mobilni robotski avtomobil - montaža (ESP32 CAM)
Nato priključite modul ESP32-CAM in ga pritrdite poleg senzorja razdalje blizu sprednjega dela robota. Ne pozabite, da ta precej lahka komponenta potrebuje lastno baterijo in regulator DC.
Korak 6: Mobilni robotski avtomobil - montaža (razpršilnik čipov)
Zdaj pa dodajmo razdeljevalec čipov (več o tem v razdelku »Razpršilnik čipov«). Povežite dva servomotorja v skladu z diagramom Fritzing in razdelilnik pritrdite na rep robota.
Korak 7: Mobilni robotski avto - montaža (piškotki!)
Nazadnje v dozirnik dodamo priboljške!
8. korak: Mobilni robotski avto - Arduino koda
RobotCar_Code je koda, ki jo boste morali naložiti na Arduino Mega.
Takole deluje: Arduino posluša bajte, ki jih pošlje iz ESP32 po serijski komunikaciji na pasu 115200. Na podlagi prejetega bajta se bo avto premikal naprej, nazaj, levo, desno itd. Tako, da bo motorjem poslal visoko ali nizko napetost za nadzor smeri, pa tudi spremenljivko PWM med 0-255 za nadzor hitrosti. Da bi se izognili trkom, ta koda bere tudi vrednosti, ki prihajajo iz senzorja razdalje, in če je razdalja manjša od določenega praga, se robot ne premakne naprej. Nazadnje, če Arduino prejme ukaz za točenje poslastice, bo aktiviral servomotorje v razdelilniku čipov.
9. korak: Mobilni robotski avtomobil - koda ESP32
ESP32 omogoča komunikacijo med strežnikom in Arduinom prek Wi -Fi -ja. Programiran je ločeno od Arduina in ima svojo kodo:
- ESP32_Code.ino je koda, s katero ESP32 pošilja podatke v Arduino
- app_httpd.cpp je koda, ki je potrebna za privzeti spletni strežnik ESP32 in nastavi funkcijo za poslušanje pritiskov tipk. Dobro za odpravljanje napak in testiranje na lokalnem wifiju. Ne uporablja se za komunikacijo zunaj lokalnega omrežja.
- camera_index.h je html koda za privzeto spletno aplikacijo
- camera_pins.h definira nožice, odvisno od modela ESP32
Koda ESP32 uporablja knjižnico Wifi in dodatek ESP32, ki ju je mogoče namestiti v Arduino IDE tako:
- V Arduino IDE pojdite na Datoteka> Nastavitve
- Nato na zavihku Nastavitve pod URL -jem dodatnega upravitelja plošč vnesite naslednje "https://dl.espressif.com/dl/package_esp32_index.json"
- Zdaj odprite upravitelja plošč in pojdite na Orodja> deska> Upravitelj plošč in poiščite ESP32 tako, da vnesete »ESP32«
- Videti bi morali "esp32 by Espressif Systems". Kliknite Namesti.
- Zdaj je treba namestiti dodatek ESP32. Če želite preveriti, se vrnite v Arduino IDE in pojdite na Orodja> Kartica in izberite »ESP32 Wrover Module«.
- Ponovno pojdite na Orodja> Hitrost nalaganja in nastavite na "115200".
- Nazadnje pojdite na Orodja> Shema particij in nastavite na "Ogromna aplikacija (3 MB brez OTA/1 MB SPIFFS)
- Ko to dokončate, priporočam, da sledite tej vadnici RandomNerdTutorials, ki podrobno razlaga, kako dokončati nastavitev ESP32 in naložiti kodo s programerjem FTDI Programiranje ESP32
10. korak: Razpršilnik za čips
Dozator za čips je poceni dodatek k mobilnemu robotu, ki lahko vpliva na lokalno okolje in komunicira z ljudmi / živalmi tako, da pusti okusno poslastico. Sestavljen je iz zunanje škatle iz kartona z dvema servomotorjema, pa tudi iz notranje kartuše iz kartona, v kateri so shranjeni predmeti (na primer sladkarije ali pasji priboljški). En servo deluje kot vrata, drugi pa potisne izdelek ven.
*Vse mere so v milimetrih
11. korak: igralna palica
Čeprav je upravljanje robota s tipkovnico lahko zabavno, je uporaba krmilne palice še bolj zabavna in intuitivna, kjer robot reagira neposredno glede na smer, ki jo pritisnete. Ker se ta robot aktivira s pritiski tipk, zabeleženimi na spletni strani, smo za posnemanje tipkovnice potrebovali krmilno palčko. Na ta način lahko uporabniki brez krmilne palice še vedno upravljajo robota neposredno s tipkovnice, drugi pa lahko uporabljajo krmilno palčko.
V ta namen smo imeli samo Arduino Uno, ki nima možnosti uporabe knjižnice, zato smo ga programirali neposredno z uporabo protokola USB, znanega kot Posodobitev vdelane programske opreme naprave (DFU), ki omogoča, da se arduino utripa z generično strojno programsko opremo USB HID.. Z drugimi besedami, ko je arduino priključen na USB, se ne prepozna več kot arduino, ampak kot tipkovnica!
12. korak: Krmilna palica - vezje
Evo, kako smo priklopili igralno palico.
Korak: Joystick - Emulator tipkovnice
Če želite, da vaš Arduino Uno posnema tipkovnico, morate neposredno programirati čip Atmega16u2 na Arduinu prek ročne posodobitve vdelane programske opreme naprave (DFU). Naslednji koraki bodo opisali postopek za računalnik z operacijskim sistemom Windows in upamo, da se boste izognili nekaterim težavam, na katere smo naleteli.
Prvi korak je ročni zapis gonilnika Atmel usb v Arduino, tako da je prepoznan kot USB in ne kot Arduino, kar mu omogoča bliskanje s programerjem FLIP.
- Prenesite Atmelov programer FLIP od tukaj
- Priključite svoj Arduino Uno
- Pojdite v Upravitelj naprav in poiščite Arduino. To bo pod COM ali neznana naprava. Priključite in izklopite, da zagotovite, da je to prava naprava.
- Ko v upravitelju naprav najdete Arduino Uno, ga kliknite z desno miškino tipko in izberite lastnosti> Gonilnik> Posodobi gonilnik> Prebrskaj moj računalnik za programsko opremo gonilnika> Naj izberem s seznama gonilnikov, ki so na voljo v mojem računalniku> Najdi disk> Poišči datoteko "atmel_usb_dfu.inf" in jo izberite. To bi moralo biti v mapi, kjer je bil nameščen vaš programer Atmel FLIP. V mojem računalniku je tukaj: C: / Program Files (x86) Atmel / Flip 3.4.7 / usb / atmel_usb_dfu.inf
- Namestite gonilnik
- Zdaj se vrnite v Upravitelj naprav, kjer bi morali videti "Atmel USB naprave" z Arduino Uno, ki je zdaj označen kot ATmega16u2!
Zdaj, ko računalnik prepozna Arduino Uno kot napravo USB, ga lahko s programerjem FLIP utripamo s tremi ločenimi datotekami in ga spremenimo v tipkovnico.
Če ste po prvem delu odklopili Arduino Uno, ga znova priključite.
- Odprite FLIP
- Ponastavite Arduino Uno tako, da na kratko priključite napajanje na ozemljitev.
- Kliknite Izbor naprave (ikona kot mikročip) in izberite ATmega16U2
- Kliknite Izberi medij za komunikacijo (ikona, kot je USB kabel) in izberite USB. Če ste prvi del pravilno izpolnili, bi morali drugi sivi gumbi postati uporabni.
- Pojdite na Datoteka> Naloži šestnajstiško datoteko> in naložite datoteko Arduino-usbserial-uno.hex
- V oknu FLIP bi morali videti tri razdelke: Operacijski tok, Informacije o vmesnem pomnilniku FLASH in ATmega16U2. V poteku operacij potrdite polja za Izbriši, Program in Preveri in kliknite Zaženi.
- Ko se ta postopek zaključi, kliknite Zaženi aplikacijo v razdelku ATmega16U2.
- Vklopite arduino tako, da ga odklopite iz računalnika in ga znova priključite.
- Ponastavite Arduino Uno tako, da na kratko priključite napajanje na ozemljitev.
- Odprite Arduino IDE in naložite datoteko JoyStickControl_Code.ino na ploščo.
- Vklopite cikel arduina tako, da ga odklopite iz računalnika in ga znova priključite.
- Ponastavite arduino tako, da na kratko priključite napajanje na ozemljitev.
- Vrnite se na FLIP in se prepričajte, da na izbiri naprave piše Atmega16U2
- Kliknite Izberi medij za komunikacijo in izberite USB.
- Pojdite na Datoteka> Naloži šestnajstiško datoteko> in naložite datoteko Arduino-keyboard-0.3.hex
- V oknu FLIP bi morali videti tri razdelke: Operacijski tok, Informacije o vmesnem pomnilniku FLASH in ATmega16U2. V poteku operacij potrdite polja za Izbriši, Program in Preveri, nato kliknite Zaženi.
- Ko se ta postopek zaključi, kliknite Zaženi aplikacijo v razdelku ATmega16U2.
- Vklopite arduino tako, da ga odklopite iz računalnika in ga znova priključite.
- Zdaj, ko greste v Upravitelj naprav, bi morala biti pod Tipkovnice nova naprava HID tipkovnice.
- Odprite beležnico ali kateri koli urejevalnik besedil in začnite premikati krmilno palčko. Videti bi morali vnos številk!
Če želite spremeniti kodo v skici Arduino, na primer pisati nove ukaze na igralno palico, jo boste morali vsakič utripati z vsemi tremi datotekami.
Nekaj koristnih povezav: Arduino DFUAtLibUsbDfu.dll ni mogoče najti
Ta emulator tipkovnice temelji na tej vadnici Michaela 24. junija 2012.
14. korak: Omrežna komunikacija
Za sprejem videotoka in pošiljanje ukazov robotu od koder koli po svetu potrebujemo način pridobivanja podatkov v ESP32-CAM in iz njega. To poteka v dveh delih: upravljalnik povezav v lokalnem omrežju in javni strežnik. Če želite to narediti, prenesite tri datoteke:
- Handlers.py: posreduje informacije iz ESP32-CAM in javnega strežnika (preizkušeno na Pythonu 3.8)
- Flask_app.py: določa, kako se vaša aplikacija odziva na dohodne zahteve.
- Robot_stream.html: upodobi video v brskalniku in posluša ukaze prek tipkovnice / igralne palice (preizkušeno v Chromu)
Upravljavec povezave To lahko kodirate neposredno v app_httpd.cpp, vendar za lažje odpravljanje napak uporabljamo skript Python, ki se izvaja v računalniku, povezanem v isto omrežje. Odprite handlers.py in posodobite naslov IP in uporabniško ime na svoje in pripravljeni ste. Tok se bo začel, ko zaženete to datoteko.
Javni strežnik Za dostop do vsega v internetu lahko zaženete strežnik s PaaS po vaši izbiri. Na pythonanywhere (PA) nastavitev traja manj kot 5 minut:
- Prijavite se za račun in se prijavite
- Pojdite na zavihek »Splet« in pritisnite »Dodaj novo spletno aplikacijo«, izberite Flask in Python 3.6
- Kopirajte flask_app.py v imenik /mysite
- Kopirajte robot_stream.html v imenik /mysite /templates
- Kliknite »Ponovno naloži«
In … vse je pripravljeno!
Izjava o omejitvi odgovornosti: Ta potek dela v omrežju je hiter in preprost, vendar zelo daleč od idealnega. RTMP ali vtičnice bi bile bolj primerne za pretakanje, vendar niso podprte v PA in zahtevajo nekaj izkušenj z omrežjem in nastavitvijo strežnika. Priporočljivo je tudi, da dodate nekaj varnostnega mehanizma za nadzor dostopa.
Korak 15: Vse skupaj
Zdaj vklopite svojega robota, zaženite handlers.py v računalniku (povezan z istim omrežjem kot robot) in robota lahko upravljate iz brskalnika glede na URL, ki ste ga nastavili od koder koli želite. (npr.
Priporočena:
Ustvarjanje ukrivljenega uporabniškega vmesnika v Unityju za virtualno resničnost: 4 koraki
Ustvarjanje ukrivljenega uporabniškega vmesnika v Unityju za virtualno resničnost: če iščete brezplačno in enostavno rešitev za ustvarjanje ukrivljenega uporabniškega vmesnika za vašo aplikacijo za navidezno resničnost ali igro VR, ste na pravem mestu. V tem spletnem dnevniku se boste naučili ustvariti ukrivljen element uporabniškega vmesnika v enotnosti z razširitvami uporabniškega vmesnika Unity.
Naredite svoja očala za virtualno resničnost: 4 koraki
Naredite si svoja očala za virtualno resničnost: Materiali:- kartonska škatla za čevlje- škarje / nož X-Acto- 2 45 mm bikonveksne leče- 4 trakovi z ježkom- lepilo
Očala za virtualno in mešano resničnost: 15 korakov (s slikami)
Očala za virtualno in mešano resničnost: Uvod: Med magistrskim tečajem Tehnologija za oblikovanje konceptov smo bili naprošeni, da raziščemo nastajajočo tehnologijo, ki ustreza našemu glavnemu projektu, in preizkusimo to tehnologijo z izdelavo prototipa. Tehnologiji, ki smo jo izbrali, sta virtualni reali
Sparky - DIY spletni spletni robot za prisotnost: 15 korakov (s slikami)
Sparky - DIY spletni spletni telepresence robot: Ime Sparky temelji na okrajšavi za "Self Portrait Artefact?" Roving Chassis I? neroden naslov umetniškega projekta, ki se je začel v zgodnjih devetdesetih letih. Od takrat se je Sparky razvil iz prevelike igrače z daljinskim upravljalnikom z nekaj "baby monitorjem"? video ca
Kako virtualno namestiti datoteko diska: 3 koraki
Kako virtualno namestiti datoteko diska: V tem navodilu se boste naučili, kako narediti datoteko iso iz skupine datotek ali diskov, nato pa to datoteko namestiti na navidezni trdi disk, kot da bi bil disk. Ta posebna programska oprema podpira do 15 virtualnih pogonov, ki so lahko vsi