Turinys:
- Prekės
- 1 veiksmas: užprogramuokite ESP32 kamerą
- 2 žingsnis: Sukurkite robotą
- 3 žingsnis: Sveiki! Palaukite sekundę! Kodėl man reikia „Arduino Nano“?
- 4 veiksmas: prijunkite USB vairasvirtę (neprivaloma)
- 5 žingsnis: VAŽIUOKIME
- 6 veiksmas: išsami informacija apie tai, kaip pakeisti tinklalapio serverio HTML/„JavaScript“kodą
Video: ESP32 kameros robotas - FPV: 6 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:45
ESP32 kameros modulis yra nebrangus ir galingas PLC. Tai netgi apima veido atpažinimą!
Sukurkime „First Person Viewpoint“robotą, kurį vairuoji naudodamasis žiniatinklio sąsaja!
Šiame projekte naudojamas „Geekcreit ESP32“modulis su „OV2640“kamera. Jis pagrįstas „AIThinker“moduliu.
Yra daug įvairių ESP32 fotoaparatų klonų. Vieni dirba, kiti ne. Aš siūlau jums naudoti tą patį modulį, kurį aš padariau, kad turėtumėte gerą galimybę sėkmingai dirbti.
Robotas veikia taip.
ESP32 transliuoja žiniatinklio URL į jūsų tinklą, kuriame pateikiamas tiesioginis vaizdo srautas su kai kuriais žymės langeliais, skirtais kai kurioms fotoaparato funkcijoms valdyti. Jis taip pat gauna klavišų paspaudimus, siunčiamus į tinklalapį iš klaviatūros, kurie yra nukreipimo komandos robotui. Galbūt norėsite sukurti USB vairasvirtės skydą, kad galėtumėte vairuoti robotą vairasvirte, o ne vesti klaviatūros komandas.
Kai ESP32 gauna klavišų paspaudimus, jis perduoda tuos baitus „Arduino Nano“, kuris tada varo variklius, kad robotas judėtų.
Šis projektas yra vidutinio sunkumo. Prašome neskubėti.
Pradėkime!
Prekės
- ESP -32 kameros modulis su OV2640 kamera - rekomenduočiau „Geekcreit“produktą
- Išorinė užsegama antena ESP-32, siekiant padidinti signalo stiprumą
- Arduino Nano
- „Arduino Leonardo“, skirtas „Joystick“moduliui (mums reikia USB klaviatūros emuliacijos, kurią teikia „Leonardo“)
- Bendras vairasvirtės modulis
- L293D keturių H tiltų mikroschema
- DC-DC „Buck Coverter“su 5 V išėjimu ESP32 maitinti
- FTDI serijos adapteris ESP32 programavimui
- Bendra robotų važiuoklė su dviem reduktoriais - bet kokia važiuoklė veiks. Rekomenduojami 3–6 V varikliai
- 2 x 7.4V 1300mAh LiPo baterijos (ar panašios) ESP32 ir varikliams maitinti
- 1 x 9 V baterija, skirta „Arduino Nano“maitinti
1 veiksmas: užprogramuokite ESP32 kamerą
Naudodami duonos lentą, prijunkite savo ESP32 kamerą prie FTDI adapterio taip:
FTDI ESP32
3.3V ----------- 3.3V
GND ----------- GND
TX ----------- U0R
Rx ----------- U0T
Be to, prijunkite kaištį IO0 („akis-nulis“) prie GND. Tai turite padaryti, kad įjungtumėte ESP32 į programavimo režimą.
Išpakuokite failą esp32CameraWebRobotforInstructable.zip.
Šiame projekte yra 4 failai:
esp32CameraWebRobotforInstructable.ino yra „Arduino“eskizas.
ap_httpd.cpp yra kodas, valdantis žiniatinklio serverį ir susijęs su fotoaparato funkcijų nustatymu iš tinklalapio ir klavišų paspaudimu iš tinklalapio.
„camera_index.h“yra žiniatinklio programos HTML/„JavaScript“kodas kaip baitų masyvai. Žiniatinklio programos modifikavimas gerokai viršija šio projekto taikymo sritį. Vėliau įdėsiu nuorodą, kaip pakeisti HTML/„JavaScript“.
camera_pins.h yra antraštės failas, susijęs su ESP32 kameros kaiščio konfigūracija.
Norėdami įjungti ESP32 į programavimo režimą, prie žemės turite prijungti IO0 („eye-oh-zero“).
Paleiskite „Arduino IDE“ir eikite į „Tools/Boards/Boards Manager“. Ieškokite esp32 ir įdiekite esp32 biblioteką.
Atidarykite projektą savo „Arduino IDE“.
Įveskite SAVO maršrutizatoriaus tinklo ID ir SAVO slaptažodį į eilutes, paryškintas aukščiau esančiame paveikslėlyje. Išsaugoti projektą.
Eikite į meniu Įrankiai ir pasirinkite, kaip parodyta aukščiau esančiame paveikslėlyje.
Lenta: ESP32 Wrover
Įkėlimo greitis: 115200
Skirstymo schema: „Didžiulė programa (3 MB be OTA)“
ir pasirinkite prievadą, prie kurio prijungtas jūsų FTDI adapteris.
Spustelėkite mygtuką „Įkelti“.
Dabar kartais ESP32 nepradės įkelti. Taigi būkite pasirengę paspausti mygtuką RESET, esantį ESP32 gale, kai pradėsite matyti… ---… simbolius konsolėje, rodomus įkėlimo metu. Tada jis pradės įkelti.
Kai konsolėje matote „paspauskite RST“, įkėlimas baigtas.
ATJUNGTI IO0 nuo žemės. Atjunkite 3.3V liniją tarp FTDI adapterio ir ESP32.
Kad ESP32 fotoaparatas gerai veiktų, jam reikia daug srovės. Prijunkite 5V 2A maitinimo adapterį prie ESP32 5V ir GND kaiščių.
Atidarykite serijinį monitorių, nustatykite duomenų perdavimo spartą į 115200 ir stebėkite, kaip ESP32 paleidžiamas iš naujo. Galų gale pamatysite serverio URL.
Eikite į savo naršyklę ir įveskite URL. Kai svetainė įkeliama, spustelėkite mygtuką „Pradėti srautą“ir tiesioginis vaizdo įrašo srautas turėtų prasidėti. Jei spustelėsite žymimąjį laukelį „Floodlight“, blykstės šviesos diodas turėtų užsidegti. Saugokis! TAI ŠVIESU!
2 žingsnis: Sukurkite robotą
Jums reikia dviejų ratų roboto važiuoklės. Bet kuris padarys. Surinkite važiuoklę pagal gamintojo instrukcijas.
Tada prijunkite robotą pagal schemą. Kol kas palikite akumuliatoriaus jungtis.
L293D naudojamas varikliams valdyti. Atkreipkite dėmesį, kad pusė lusto yra į ESP32.
Paprastai, norint valdyti du variklius, „Arduino“reikia 6 kaiščių.
Šiam robotui reikia tik 4 kaiščių ir jis vis dar veikia.
1 ir 9 kaiščiai yra prijungti prie „Arduino“5 V šaltinio, todėl jie yra nuolat AUKŠTI. Tokiu būdu prijungus robotą, mums reikia dviejų „Arduino“kaiščių, kad galėtume valdyti variklius.
Į priekį INPUT kaiščiai yra nustatyti į LOW, o variklio impulsų bangos moduliacijos kaiščiai - nuo 0 iki 255, o 0 reiškia OFF ir 255 reiškia maksimalų greitį.
Atvirkštinėmis kryptimis INPUT kaiščiai nustatomi į HIGH, o PWM reikšmės keičiamos. 0 reiškia maksimalų greitį, o 255 - išjungimą.
Išpakuokite ir įkelkite „ArduinoMotorControl“eskizą į „Arduino Nano“.
3 žingsnis: Sveiki! Palaukite sekundę! Kodėl man reikia „Arduino Nano“?
Jūs tikriausiai galvojate: "Ei! ESP32 fotoaparate yra bent 4 IO kaiščiai. Kodėl aš negaliu jų naudoti varikliams valdyti?"
Tiesa, ESP32 kaiščiai yra tokie:
IO0 - reikalingas ESP32 įjungimui į programavimo režimą
IO2 - yra
IO4 - blykstės šviesos diodas
IO12, IO13, IO14, IO15, IO16 - papildomi GPIO kaiščiai.
Jei tiesiog įkeliate pagrindinį eskizą į ESP32, kad galėtumėte valdyti kaiščius PWM komandomis, jie veikia.
Tačiau, kai eskizuose suaktyvinsite CAMERA bibliotekas, šių smeigtukų nebebus.
Taigi paprasčiausias dalykas yra tiesiog naudoti „Nano“valdyti variklius per PWM ir siųsti komandas iš ESP32 nuosekliu ryšiu per vieną laidą (ESP32 U0T į „Arduino Rx0“) ir GND. Labai paprasta.
4 veiksmas: prijunkite USB vairasvirtę (neprivaloma)
Galite vairuoti robotą siųsdami klavišus į tinklalapį taip:
8 - Pirmyn
9 - Pirmyn į dešinę
7 - į priekį kairėn
4 - pasukti į kairę
5 - Sustokite
1 - Atvirkštinė kairė
2 - Atvirkštinis
3 - Atvirkštinė Dešinė.
USB kreiptuko eskizas paverčia kreiptuko įvestis į klavišų paspaudimus ir siunčia juos į žiniatinklio sąsają, kuri juos persiunčia į „Arduino“, kad galėtų vairuoti robotą.
Prijunkite vairasvirtę prie „Arduino LEONARDO“taip:
Leonardo vairasvirtė
5V ---------- VCC
GND ---------- GND
A0 ---------- VRx
A1 ---------- VRy
Atidarykite „usbJoyStick“eskizą, pasirinkite „Arduino Leonardo“kaip lentą ir įkelkite jį į „Leonardo“.
Jei norite tai išbandyti, tiesiog atidarykite teksto rengyklę savo kompiuteryje, spustelėkite pelę lange ir pradėkite judinti vairasvirtę. Lange turėtumėte matyti reikšmes nuo 1 iki 9
5 žingsnis: VAŽIUOKIME
Skirkite šiek tiek laiko ir peržiūrėkite laidus, kad įsitikintumėte, jog viskas teisinga.
Tada prijunkite baterijas taip.
1. Įjunkite ESP32 kamerą. Norint paleisti žiniatinklio serverį, reikia kelių sekundžių.
2. Įjunkite „Arduino Nano“.
3. Įjunkite variklius.
Paleiskite naršyklę ir eikite į ESP32 URL.
Spustelėkite mygtuką Pradėti srautą.
Spustelėkite pelę kažkur naršyklės ekrane, kad dabar ekranas būtų fokusuotas.
Pradėkite vairuoti robotą naudodami vairasvirtę (arba klaviatūrą).
Radau, kad numatytasis kadro dydis puikiai tinka transliuojant tiesioginį vaizdo įrašą gana greitai per „WiFi“. Tačiau, padidinus kadrų dydį, srautas taps neramesnis, nes bandysite transliuoti didesnius vaizdus.
Tai sudėtingas projektas, suteikiantis jums galimybę pradėti dirbti su tiesioginio vaizdo transliacija ir vairuoti robotą per „WiFi“. Tikiuosi, kad jums buvo smagu!
DABAR EIK IR PADARYK KAŽKĄ NUOSTABIĄ!
2020 m. Sausio mėn. Atnaujinimas - paskutinėse nuotraukose parodyta galutinė roboto versija, kietai lituota ir patikimai pritvirtinta prie važiuoklės.
Trys priekyje sumontuoti jungikliai yra šie:
Kairė - variklio maitinimo baterija
Centras - „Arduino“baterija
Dešinėje - ESP32 fotoaparato baterija
Galėčiau naudoti vieną didelę bateriją su kai kuriais „buck-boost“transformatoriais (vieną naudoju ESP32-apatinėje dešinėje nuotraukos iš priekio vaizdo), tačiau dėl paprastumo aš tik pasilieku 3 baterijas.
Robotas dabar prieigos taške
Manau, kad sunku demonstruoti šį robotą ne savo namuose, nes mano mokyklos įmonės tinklas neleidžia man prie jo prijungti roboto žiniatinklio serverio. Kaip sprendimą aš ištyriau, kaip naudotis ESP32 žiniatinklio serverio prieigos taško funkcija. Tai reikalauja šiek tiek darbo, tačiau norint, kad ESP32 transliuotų savo IP adresą, reikia atlikti gana minimalius pagrindinio roboto eskizo pakeitimus. Jis nėra toks galingas kaip specialus didelės spartos „Wi -Fi“koncentratorius (kartais pakimba, jei judate per greitai), tačiau veikia gana gerai ir dabar galiu pademonstruoti robotą bet kur, kur tik man nereikia, neprisijungus prie tinklo! Kai tik robotas pradės veikti, pabandykite pats jį konvertuoti į prieigos tašką!
6 veiksmas: išsami informacija apie tai, kaip pakeisti tinklalapio serverio HTML/„JavaScript“kodą
Tai nėra būtina, bet aš turėjau keletą prašymų.
Pateikiau šiam „Google“dokumentui išsamią informaciją, kaip naudoti „CyberChef“, norint konvertuoti pirmyn ir atgal tarp HTML/„JavaScript“ir baitų masyvo atvaizdų, esančių faile camera_index.h.
Rekomenduojamas:
Arduino - Labirinto sprendimo robotas („MicroMouse“) Sieninis robotas: 6 žingsniai (su paveikslėliais)
Arduino | Labirinto sprendimų robotas („MicroMouse“) Sienų sekimo robotas: Sveiki, aš esu Izaokas ir tai yra mano pirmasis robotas „Striker v1.0“. Šis robotas buvo sukurtas paprastam labirintui išspręsti. Konkurse turėjome du labirintus ir robotą sugebėjo juos identifikuoti. Dėl bet kokių kitų labirinto pakeitimų gali prireikti pakeisti
RC valdomas robotas XLR8! Švietimo robotas: 5 žingsniai
RC valdomas robotas XLR8! Švietimo robotas: Sveiki, šiame straipsnyje bus parodyta, kaip sukurti pagrindinį robotą. Žodis „robotas“pažodžiui reiškia „vergas“arba „darbininkas“. Dėl dirbtinio intelekto pažangos robotai nebėra tik Issac Asimov mokslinės fantastikos dalis
Darbo su ESP32 CAM pradžia - Vaizdo transliacija naudojant ESP CAM per „Wifi“- ESP32 apsaugos kameros projektas: 8 žingsniai
Darbo su ESP32 CAM pradžia | Vaizdo transliacija naudojant ESP CAM per „Wifi“| ESP32 apsaugos kameros projektas: Šiandien mes išmoksime naudoti šią naują ESP32 CAM plokštę ir kaip galime ją koduoti, naudoti kaip apsaugos kamerą ir gauti vaizdo transliaciją per „Wi -Fi“
Balansavimo robotas / 3 ratų robotas / STEM robotas: 8 žingsniai
Balansavimo robotas / 3 ratų robotas / STEM robotas: Mes sukūrėme kombinuotą balansavimo ir 3 ratų robotą, skirtą naudoti mokyklose ir po pamokų. Robotas sukurtas naudojant „Arduino Uno“, pasirinktinį skydą (pateikiama visa konstrukcijos informacija), „Li Ion“akumuliatorių paketą (visa tai atitinka
PATVIRTINTAS PAMATINIO KAMEROS KAMEROS NUOTEKIO DETEKTORIUS: 7 žingsniai (su paveikslėliais)
PATVIRTINTAS PAMATINIO KAMEROS KAMEROS NUOTEKIO DETEKTORIUS: Praėjusiais metais ankstesnė šio povandeninio fotoaparato korpuso nuotėkio detektoriaus versija buvo paskelbta „Instructables“, kur dizainas buvo pagrįstas „Atmel AVR“pagrindu pagamintu „AdaFruit“niekučiu. Šioje patobulintoje versijoje naudojamas „Atmel SAMD M0“pagrindu pagamintas „AdaFruit“niekučius. Iš naujo