Sisukord:

Virtuaalse kohaloleku robot: 15 sammu
Virtuaalse kohaloleku robot: 15 sammu

Video: Virtuaalse kohaloleku robot: 15 sammu

Video: Virtuaalse kohaloleku robot: 15 sammu
Video: ASMR SIRI 🍏🤪 Iphone Виртуальный Ассистент Сири АСМР / Virtual Assistant 2024, November
Anonim
Image
Image
Mobiilne robotauto
Mobiilne robotauto

See mobiilne robot suhtleb oma füüsilise ümbrusega, esindades seda eemalt juhtiva inimese "virtuaalset kohalolekut". Sellele pääseb ligi igaüks ja kõikjal maailmas, et maiustusi väljastada ja teiega mängida.

Siinset tööd arendavad kaks inimest (üks Saksamaal ja teine USA-s), püüdes minna kaugemale traditsioonilistest Interneti-põhistest suhtlusvahenditest, luues füüsilise liidese kaugsuhtluseks. Kuna COVID-19 mõjutab maailma jätkuvalt ja igaüks vastutab meie füüsilise kokkupuute piiramise eest inimestega, proovime tuua tagasi käegakatsutava ühenduse, mis on osa füüsilisest suhtlusest.

See põhineb juhendil ESP32-kaamera-robot-FPV-õpetaja-sisenemine ja seda on muudetud nii, et see hõlmaks kaugusandurit, raviautomaati ja võimalust juhtida kõikjal maailmas, eeldusel, et teil on mõnevõrra stabiilne Interneti-ühendus.

Tarvikud

Projekt koosneb neljast põhiosast - mobiilne robotauto, kiibidosaator, juhtkang ja võrguside seadistamine.

Mobiilne robotauto

  • Leivalaud
  • 2 -veoline mootor ja šassii robotikomplekt (sisaldab rattaid, alalisvoolumootoreid, kinnitusplaati ja kruvisid)
  • Arduino Mega 2560 (kui ehitate ilma kaugusanduri või kiibidosaatorita, on Unol piisavalt tihvte)
  • (3) 9V patareid (hoidke neid veel paar ringi, kuna tühjendate need silumiseks)
  • LM2596 toiteplokk DC/DC Buck 3A regulaator (või sarnane)
  • ESP32-CAM WiFi-moodul
  • FT232RL FTDI USB-TTL jadamuundur (ESP32-CAM programmeerimiseks)
  • HC-SR04 ultraheli kaugusandur
  • L298N mootorijuht
  • (3) LED -id (mis tahes värvi)
  • (3) 220 oomi takistid

Laastude jaotur

  • (2) SG90 servod
  • Papp / papp

Juhtkang

  • Arduino Uno
  • Joystick moodul
  • Mini leivalaud, (1) LED, (1) 220 oomi takisti (valikuline)

Muu

Palju leivaplaadi hüppajajuhtmeid Ekstra papp / papp Kleeplindid Kärud Joonlaud / mõõdulint Väike Philipsi kruvikeeraja Väike lameda kruvikeeraja

Kannatust =)

Samm: mobiilne robotauto

Robot Car šassii toimib mobiilse platvormina, Arduino MEGA on peamine mikrokontroller, mis juhib mootoreid, loeb andurite väärtusi ja käivitab servosid. Enamik toiminguid tehakse nii, et Arduino MEGA võtab käsud vastu jadaühenduse kaudu, mis saadetakse ESP32-CAM-ist. Kuigi ESP32 pakub roboti juhtimiseks kaamera otseülekannet, on selle teine ülesanne juhtida traadita ühendust roboti ja serveri vahel, võimaldades seega kasutajatel seda juhtida kõikjalt maailmast. ESP32 võtab veebilehelt käsud klahvivajutuse kaudu vastu ja saadab need Arduino MEGA -le sümboliväärtustena. Saadud väärtuse põhjal liigub auto edasi, tagasi jne. Kuna Interneti kaudu kaugjuhtimine sõltub paljudest välistest teguritest, sealhulgas suurest latentsusest, voo halvast kvaliteedist ja isegi katkestustest, on robotil kokkupõrke vältimiseks lisatud kaugusandur *ESP32 kiibi suurte ja kõikuvate energiavajaduste tõttu on toiteallikaga regulaatorit soovitatav kasutada koos akutoitega (vt ühendusskeemi).

2. samm: mobiilne robotauto - vooluahela skeem

Mobiilne robotauto - vooluahela skeem
Mobiilne robotauto - vooluahela skeem

Me juhendame teid samm -sammult selle kokkupanekul.

3. samm: mobiilne robotauto - kokkupanek (mootorid)

Mobiilse robotauto kokkupanek (mootorid)
Mobiilse robotauto kokkupanek (mootorid)

Pärast 2WD šassii kokkupanemist alustame mootorite ja aku ühendamisest Arduino MEGA -ga draiveri L298N kaudu.

4. samm: mobiilne robotauto - kokkupanek (kaugusandur)

Mobiilse robotauto kokkupanek (kaugusandur)
Mobiilse robotauto kokkupanek (kaugusandur)

Kuna ühendamiseks on üsna palju komponente, lisame leivaplaadi, et saaksime toite ja jagatud maa kergemini ühendada. Pärast juhtmete ümberkorraldamist ühendage kaugusandur ja kinnitage see roboti esiküljele.

5. samm: mobiilse robotauto kokkupanek (ESP32 CAM)

Mobiilse robotauto kokkupanek (ESP32 CAM)
Mobiilse robotauto kokkupanek (ESP32 CAM)

Seejärel ühendage ESP32-CAM moodul ja kinnitage see roboti esiosa lähedal asuva kaugusanduri kõrvale. Pidage meeles, et see üsna energiatarbiv komponent nõuab oma akut ja alalisvoolu regulaatorit.

6. samm: mobiilne robotauto - kokkupanek (kiibidosaator)

Mobiilse robotauto kokkupanek (kiibidosaator)
Mobiilse robotauto kokkupanek (kiibidosaator)

Lisage nüüd kiibidosaator (selle kohta lähemalt jaotisest "Kiibidosaator"). Ühendage kaks servot vastavalt Fritzingu skeemile ja kinnitage jaotur roboti saba külge.

7. samm: mobiilne robotauto - kokkupanek (küpsised!)

Mobiilse robotauto kokkupanek (küpsised!)
Mobiilse robotauto kokkupanek (küpsised!)

Lõpuks lisame dosaatorisse maiustused!

8. samm: mobiilne robotauto - Arduino kood

RobotCar_Code on kood, mille peate Arduino Mega laadima.

See toimib järgmiselt: Arduino kuulab baite, mis saadetakse ESP32 -lt 115200 sagedusalas jadaühenduse kaudu. Saadud baidi põhjal liigub auto edasi, tagasi, vasakule, paremale jne, saates mootoritele suuna juhtimiseks kas KÕRGE või MADAL pinge, samuti kiiruse reguleerimiseks muutuja PWM vahemikus 0–255. Kokkupõrgete vältimiseks loeb see kood ka kaugusandurilt saabuvaid väärtusi ja kui vahemaa on väiksem kui määratud lävi, ei liigu robot edasi. Lõpuks, kui Arduino saab käsu maiuse väljastamiseks, aktiveerib see kiibidosaatoris olevad servod.

9. samm: mobiilne robotauto - ESP32 -kood

ESP32 võimaldab suhelda serveri ja Arduino vahel Wifi kaudu. See on programmeeritud Arduinost eraldi ja sellel on oma kood:

  • ESP32_Code.ino on ESP32 kood Arduinole teabe saatmiseks
  • app_httpd.cpp on vaikimisi ESP32 veebiserveri jaoks vajalik kood ja määrake funktsioon klahvivajutuste kuulamiseks. Sobib silumiseks ja kohaliku wifi testimiseks. Seda ei kasutata suhtlemiseks väljaspool kohalikku võrku.
  • camera_index.h on vaikimisi veebirakenduse html -kood
  • camera_pins.h määratleb tihvtid sõltuvalt ESP32 mudelist

ESP32 kood kasutab Wifi teeki ja ESP32 lisandmoodulit, mille saab Arduino IDE-sse installida järgmiselt.

  1. Arduino IDE -s valige Fail> Eelistused
  2. Seejärel sisestage vahekaardi Seaded täiendavate tahvlite halduri URL -i all järgmine tekst: "https://dl.espressif.com/dl/package_esp32_index.json"
  3. Nüüd avage tahvlite haldur ja valige Tööriistad> Tahvel> Tahvlite haldur ja otsige ESP32, sisestades "ESP32"
  4. Peaksite nägema "esp32 by Espressif Systems". Klõpsake nuppu Installi.
  5. Nüüd tuleks ESP32 lisandmoodul installida. Kontrollimiseks minge tagasi Arduino IDE -le ja valige Tööriistad> Tahvel ja valige "ESP32 Wrover Module".
  6. Minge uuesti menüüsse Tööriistad> Üleslaadimiskiirus ja seadke see väärtusele "115200".
  7. Lõpuks minge jaotisse Tööriistad> Jaotusskeem ja seadke see valikule „Hiiglaslik rakendus (3 MB No OTA/1 MB SPIFFS)
  8. Kui olete selle lõpetanud, soovitan järgida seda RandomNerdTutorialsi õpetust, milles selgitatakse üksikasjalikult, kuidas ESP32 seadistamine lõpule viia ja kood FTDI programmeerijaga üles laadida ESP32 programmeerimine

10. samm: kiibidosaator

Laastude jaotur
Laastude jaotur

Kiibidosaator on mobiilse roboti odav lisand, mis võimaldab sellel mõjutada kohalikku keskkonda ja suhelda inimeste / loomadega, jättes maitsva maiuse. See koosneb papist väliskastist, mille sisse on paigaldatud 2 servot, ning sisemisest papist padrunist, mis hoiab väljastamiseks esemeid (näiteks kommid või koeratoidud). Üks servo toimib väravana, teine aga lükkab eseme välja.

*Kõik mõõtmed on millimeetrites

Samm: juhtnupp

Juhtkang
Juhtkang

Kuigi roboti juhtimine klaviatuuriga võib olla lõbus, on veelgi lõbusam ja intuitiivsem kasutada juhtkangi, kus robot reageerib otseselt vastavalt teie suunale. Kuna see robot käivitatakse veebilehel salvestatud klahvivajutuste abil, vajasime klaviatuuri jäljendamiseks juhtkangi. Nii saavad juhtkangita kasutajad robotit juhtida otse klaviatuurilt, kuid teised saavad juhtkangi kasutada.

Selleks oli meil ainult Arduino Uno, millel pole võimalust raamatukogu kasutada, seega programmeerisime selle otse, kasutades USB -protokolli, mida tuntakse seadme püsivara värskendusena (DFU), mis võimaldab arduinot välgutada üldise USB HID -klaviatuuri püsivaraga. Teisisõnu, kui arduino on USB -ga ühendatud, ei tunta seda enam arduino, vaid klaviatuurina!

12. samm: juhtnupp - vooluahela skeem

Juhtkang - vooluahela skeem
Juhtkang - vooluahela skeem

Siin on juhtkangi ühendamine.

Samm 13: juhtnupp - klaviatuuri emulaator

Selleks, et teie Arduino Uno klaviatuuri jäljendaks, peate Arduino kiibi Atmega16u2 otse programmeerima seadme püsivara käsitsi värskendamise (DFU) kaudu. Järgmised sammud kirjeldavad Windowsi masina protsessi ja loodetavasti aitavad teil vältida mõningaid probleeme, millega kokku puutusime.

Esimene samm on Atmeli USB -draiveri käsitsi kirjutamine Arduinole, nii et seda tuntakse USB -na, mitte Arduino -na, mis võimaldab seda FLIP -programmeerijaga välgutada.

  1. Laadige siit alla Atmeli FLIP -programmeerija
  2. Ühendage Arduino Uno
  3. Minge seadmehaldurisse ja leidke Arduino. See asub COM või tundmatu seadme all. Ühendage see vooluvõrku ja veenduge, et see on õige seade.
  4. Kui olete Arduino Uno seadmehaldurist leidnud, paremklõpsake seda ja valige Atribuudid> Draiver> Värskenda draiverit> Sirvige minu arvutit draiveritarkvara jaoks> Lubage mul valida oma arvutis saadaolevate draiverite loendist> Kas on ketas> Sirvige faili "atmel_usb_dfu.inf" ja valige see. See peaks olema kaustas, kuhu teie Atmel FLIP programmeerija installiti. Minu arvutis on see siin: C: / Program Files (x86) Atmel / Flip 3.4.7 / usb / atmel_usb_dfu.inf
  5. Installige draiver
  6. Nüüd minge tagasi seadmehaldurisse ja peaksite nägema "Atmeli USB -seadmeid", mille Arduino Uno on nüüd märgistatud kui ATmega16u2!

Nüüd, kui arvuti tunneb Arduino Uno USB -seadmena ära, saame FLIP -programmeerija abil seda kolme eraldi failiga välgutada ja klaviatuuriks muuta.

Kui ühendasite Arduino Uno pärast esimest osa vooluvõrgust lahti, ühendage see uuesti.

  1. Avage FLIP
  2. Lähtestage Arduino Uno, ühendades lühidalt toite maaga.
  3. Klõpsake seadme valikul (ikoon nagu mikrokiip) ja valige ATmega16U2
  4. Klõpsake valikul Sideandmekandja (ikoon nagu USB -juhe) ja valige USB. Kui täitsite esimese osa õigesti, peaksid teised hallid nupud olema kasutatavad.
  5. Avage Fail> Laadi Hex-fail> ja laadige üles fail Arduino-usbserial-uno.hex
  6. FLIP -aknas peaksite nägema kolme jaotist: Operatsioonide voog, FLASH -puhveriteave ja ATmega16U2. Märkige toimingute voos ruudud Kustuta, Programmeeri ja Kinnita, seejärel klõpsake nuppu Käivita.
  7. Kui see protsess on lõpule jõudnud, klõpsake jaotises ATmega16U2 nuppu Käivita rakendus.
  8. Ühendage arduino tsükkel, eemaldades selle arvutist ja ühendades selle uuesti.
  9. Lähtestage Arduino Uno, ühendades lühidalt toite maaga.
  10. Avage Arduino IDE ja laadige tahvlile fail JoyStickControl_Code.ino.
  11. Ühendage arduino tsükkel, eemaldades selle arvutist ja ühendades selle uuesti.
  12. Lähtestage arduino, ühendades lühidalt toite maaga.
  13. Minge tagasi FLIP -i ja veenduge, et seadme valikul on kirjas Atmega16U2
  14. Klõpsake valikul Sideandmekandja ja valige USB.
  15. Avage Fail> Laadi Hex-fail> ja laadige üles fail Arduino-keyboard-0.3.hex
  16. FLIP -aknas peaksite nägema kolme jaotist: Operatsioonide voog, FLASH -puhveriteave ja ATmega16U2. Märkige toimingute voos ruudud Kustuta, Programmeeri ja Kinnita, seejärel klõpsake nuppu Käivita.
  17. Kui see protsess on lõpule jõudnud, klõpsake jaotises ATmega16U2 nuppu Käivita rakendus.
  18. Ühendage arduino tsükkel, eemaldades selle arvutist ja ühendades selle uuesti.
  19. Nüüd, kui lähete seadmehaldurisse, peaks klaviatuuride all olema uus HID -klaviatuuriseade.
  20. Avage märkmik või mõni tekstiredaktor ja hakake juhtkangi liigutama. Te peaksite nägema numbrite trükkimist!

Kui soovite Arduino visandis koodi muuta, näiteks juhtkangile uusi käske kirjutada, peate seda iga kord kõigi kolme failiga vilkuma.

Mõned kasulikud lingid: Arduino DFUAtLibUsbDfu.dll ei leitud

See klaviatuuri emulaator põhineb sellel Michaeli õpetusel 24. juunil 2012.

14. samm: võrgusuhtlus

Võrgusuhtlus
Võrgusuhtlus

Videovoo vastuvõtmiseks ja robotile käskude saatmiseks kõikjalt maailmast vajame viisi andmete edastamiseks ESP32-CAM-i ja sealt välja. Seda tehakse kahes osas: teie kohaliku võrgu ühenduse haldur ja avalik server. Selle saavutamiseks laadige alla kolm faili:

  • Handlers.py: edastab teavet ESP32-CAM-ist ja avalikust serverist (testitud Python 3.8-ga)
  • Flask_app.py: määrab, kuidas teie rakendus sissetulevatele päringutele reageerib.
  • Robot_stream.html: renderdab teie brauseris video ja kuulab käske klaviatuuri / juhtnupu abil (testitud Chrome'is)

Ühenduse käitleja Saate seda otse rakenduses app_httpd.cpp kodeerida, kuid silumise hõlbustamiseks kasutame sama võrguga ühendatud arvutis töötavat Pythoni skripti. Avage handlers.py ja värskendage IP -aadress ja kasutajanimi enda omaks ning oletegi valmis. Oja algab selle faili käivitamisel.

Avalik server Internetis kõigele juurdepääsemiseks võite käivitada serveri teie valitud PaaS -iga. Pythonanywhere (PA) seadistamine võtab vähem kui 5 minutit:

  1. Registreeruge kontole ja logige sisse
  2. Minge vahekaardile „Veeb” ja vajutage „Lisa uus veebirakendus”, valige Flask and Python 3.6
  3. Kopeerige flask_app.py kataloogi /mysite
  4. Kopeerige robot_stream.html kataloogi /mysite /templates
  5. Klõpsake "Laadi uuesti"

Ja… olete valmis!

Vastutusest loobumine: see võrgutöövoog on kiire ja lihtne, kuid ideaalist väga kaugel. RTMP või pistikupesad oleksid voogesituse jaoks sobivamad, kuid need ei toeta PA -d ning nõuavad mõningast kogemust võrguühenduse ja serveri seadistamisega. Samuti on soovitatav juurdepääsu kontrollimiseks lisada mõni turvamehhanism.

15. samm: pange see kõik kokku

Nüüd lülitage oma robot sisse, käivitage arvutis käsk handrs.py (mis on ühendatud robotiga samasse võrku) ja saate robotit juhtida brauserist, lähtudes teie määratud URL -ist, kus iganes soovite. (nt

Soovitan: