Përmbajtje:

Roboti i kamerës ESP32 - FPV: 6 hapa
Roboti i kamerës ESP32 - FPV: 6 hapa

Video: Roboti i kamerës ESP32 - FPV: 6 hapa

Video: Roboti i kamerës ESP32 - FPV: 6 hapa
Video: ESP32-S3 + Camera Module(OV2640) + LTE Module(SIM7600G-H) 2024, Nëntor
Anonim
Image
Image
Roboti i kamerës ESP32 - FPV
Roboti i kamerës ESP32 - FPV
Roboti i kamerës ESP32 - FPV
Roboti i kamerës ESP32 - FPV

Moduli ESP32 Kamera është një PLC e lirë dhe e fuqishme. Ai madje përfshin njohjen e fytyrës!

Le të ndërtojmë një robot të Pikëpamjes së Personit të Parë që drejtoni përmes një ndërfaqeje në internet në bord!

Ky projekt përdor modulin Geekcreit ESP32 me Kamera OV2640. Bazohet në modulin AIThinker.

Ka shumë klone të ndryshme të kamerës ESP32 atje. Disa punojnë, disa jo. Unë do të sugjeroj që të përdorni të njëjtin modul që bëra kështu që të keni një mundësi të mirë për të qenë të suksesshëm.

Roboti punon si më poshtë.

ESP32 transmeton një URL në internet në rrjetin tuaj që paraqet transmetimin e drejtpërdrejtë të videos me disa kuti të kontrollit për funksionimin e disa funksioneve të kamerës. Ai gjithashtu merr shtypjet kryesore të dërguara në uebfaqe nga tastiera që janë komanda drejtimi për robotin. Ju mund të dëshironi të ndërtoni mburojën e levës USB në mënyrë që ta drejtoni robotin me levë sesa të shtypni komandat e tastierës.

Kur ESP32 merr shtypet e çelësave, ai i përcjell ato byte në Arduino Nano i cili më pas i drejton motorët për ta bërë robotin të lëvizë.

Ky projekt është me vështirësi mesatare-të lartë. Ju lutemi merrni kohën tuaj.

Le të fillojmë!

Furnizimet

  • Moduli i kamerës ESP -32 me kamerën OV2640 - Unë do të rekomandoja produktin Geekcreit
  • Antenë e jashtme e parakohshme për ESP-32 për të maksimizuar fuqinë e sinjalit
  • Arduino Nano
  • Arduino Leonardo për modulin Joystick (ne kemi nevojë për emulim të tastierës USB të ofruar nga Leonardo)
  • Moduli i përgjithshëm Joystick
  • Lipi L293D Quad H-urë
  • Mbulues DC-DC Buck me dalje 5V për të fuqizuar ESP32
  • Përshtatës serik FTDI për programimin e ESP32
  • Një shasi e përgjithshme robotike me dy motorë të drejtuar - çdo shasi do të funksionojë. Rekomandohen motorë 3 deri në 6V
  • 2 bateri LiPo 7.4V 1300mAh (ose të ngjashme) për të fuqizuar ESP32 dhe motorët
  • Bateri 1 x 9V për të fuqizuar Arduino Nano

Hapi 1: Programoni kamerën ESP32

Programoni kamerën ESP32
Programoni kamerën ESP32
Programoni kamerën ESP32
Programoni kamerën ESP32

Duke përdorur një tabelë buke, lidhni kamerën tuaj ESP32 me përshtatësin FTDI si më poshtë:

FTDI ESP32

3.3V ----------- 3.3V

GND ----------- GND

TX ----------- U0R

Rx ----------- U0T

Për më tepër, lidhni pinin IO0 ("sy-oh-zero") në GND. Ju duhet ta bëni këtë për të vënë ESP32 në modalitetin e programimit.

Zbërtheni skedarin esp32CameraWebRobotforInstructable.zip.

Ka 4 skedarë në këtë projekt:

esp32CameraWebRobotforInstructable.ino është skica Arduino.

ap_httpd.cpp është kodi që menaxhon serverin në internet dhe merret me vendosjen e veçorive të kamerës nga faqja e internetit dhe marrjen e shtypjeve të çelësave nga faqja e internetit.

camera_index.h përmban kodin HTML/JavaScript për aplikacionin në internet si vargje byte. Ndryshimi i aplikacionit në internet është përtej fushëveprimit të këtij projekti. Unë do të përfshijë një lidhje për mënyrën e modifikimit të HTML/JavaScript më vonë.

camera_pins.h është skedari i kokës që ka të bëjë me konfigurimin pin të kamerës ESP32.

Për ta vendosur ESP32 në Modalitetin e Programimit, duhet të lidhni IO0 ("eye-oh-zero") me Ground.

Nisni ID -në tuaj Arduino dhe shkoni te Menaxheri i veglave/bordeve/bordeve. Kërkoni për esp32 dhe instaloni bibliotekën esp32.

Hapni projektin në Arduino IDE tuaj.

Vendosni ID -në e rrjetit TUAJ dhe fjalëkalimin TUAJ në linjat e theksuara në foton e mësipërme. Ruani projektin.

Shkoni te menyja Tools dhe bëni përzgjedhjet siç tregohet në figurën e mësipërme.

Bordi: ESP32 Wrover

Shpejtësia e ngarkimit: 115200

Skema e ndarjes: "APP e madhe (3MB pa OTA)"

dhe zgjidhni portën me të cilën është lidhur përshtatësi juaj FTDI.

Klikoni në butonin "Ngarko".

Tani, ndonjëherë, ESP32 nuk fillon të ngarkohet. Pra, jini gati të shtypni butonin RESET në pjesën e pasme të ESP32 kur filloni të shihni karakteret… ---… që shfaqen në tastierë gjatë ngarkimit. Pastaj do të fillojë të ngarkohet.

Kur shihni "shtypni RST" në tastierë, ngarkimi është i plotë.

SHKCPUNO IO0 nga toka. Shkëputni vijën 3.3V midis përshtatësit FTDI dhe ESP32.

Kamera ESP32 kërkon shumë rrymë për të punuar mirë. Lidhni një përshtatës energjie 5V 2A me kunjat 5V dhe GND në ESP32.

Hapni Serial Monitor, vendosni shkallën e baudit në 115200 dhe më pas shikoni si rindizet ESP32. Përfundimisht, do të shihni URL -në për serverin.

Shkoni te Shfletuesi juaj dhe futni URL -në. Kur faqja e internetit të ngarkohet, klikoni në butonin 'Fillo transmetimin' dhe transmetimi i drejtpërdrejtë i videove duhet të fillojë. Nëse klikoni në kutinë e kontrollit 'Floodlight', LED i blicit në bord duhet të ndizet. Kujdes! 'SHT E SHKURTR!

Hapi 2: Ndërtoni Robotin

Ndërtoni Robotin
Ndërtoni Robotin

Keni nevojë për një shasi robotësh me dy rrota. Çdokush do të bëjë. Mblidhni shasinë sipas udhëzimeve të prodhuesit.

Pastaj lidhni robotin sipas diagramit. Lini lidhjet e baterisë tani për tani.

L293D përdoret për të kontrolluar motorët. Vini re se gjysma e nivelit në çip është DREJT ESP32.

Në mënyrë tipike, nevojiten 6 kunja në Arduino për të kontrolluar dy motorë.

Ky robot kërkon vetëm 4 kunja dhe ende punon plotësisht.

Kunjat 1 dhe 9 janë të lidhur me burimin 5V të Arduino kështu që ato janë përgjithmonë të LARTa. Instalimi i robotit në këtë mënyrë do të thotë që ne kemi nevojë për dy kunja më pak në Arduino për të kontrolluar motorët.

Në drejtimet përpara, kunjat INPUT janë vendosur në LOW dhe kunjat e modulimit të valës së pulsit të motorit janë vendosur në vlerat midis 0 dhe 255 me 0 që do të thotë OFF dhe 255 që do të thotë shpejtësi maksimale.

Në drejtimet e kundërta, kunjat INPUT vendosen në HIGH dhe vlerat PWM përmbysen. 0 do të thotë shpejtësi maksimale dhe 255 do të thotë fikje.

Zbërtheni dhe ngarkoni skicën ArduinoMotorControl në Arduino Nano.

Hapi 3: Hej! Prisni një sekondë! Pse më duhet një Arduino Nano?

Ju ndoshta po mendoni, "Hej! Ka të paktën 4 kunja IO të disponueshëm në kamerën ESP32. Pse nuk mund t'i përdor ato për të kontrolluar motorët?"

Epo, është e vërtetë, ka kunja në ESP32 si më poshtë:

IO0 - nevojitet për vendosjen e ESP32 në modalitetin e programimit

IO2 - në dispozicion

IO4 - LED LED

IO12, IO13, IO14, IO15, IO16 - kunja shtesë GPIO.

Nëse thjesht ngarkoni një skicë bazë në ESP32 për të kontrolluar kunjat me komandat PWM, ato funksionojnë.

Mirëpo, sapo të aktivizoni bibliotekat CAMERA në skicat tuaja, këto kunja nuk janë më të disponueshme.

Pra, gjëja më e lehtë për të bërë është të përdorni vetëm një Nano për të kontrolluar motorët përmes PWM dhe për të dërguar komandat nga ESP32 me anë të komunikimeve serike mbi një tel (ESP32 U0T tek Arduino Rx0) dhe GND. Shume e thjeshte.

Hapi 4: Lidhni Joystick USB (Opsionale)

Ju mund ta drejtoni robotin duke dërguar shtypje të çelësave në faqen e internetit si më poshtë:

8 - Përpara

9 - Përpara Djathtas

7 - Përpara Majtas

4 - Rrotulloni majtas

5 - Ndaloni

1 - Anasjelltas Majtas

2 - Anasjelltas

3 - E drejta e kundërt.

Skica e levës USB përkthen hyrjet e levës në shtypet kryesore dhe i dërgon ato në ndërfaqen e uebit e cila i përcjell në Arduino për të drejtuar robotin.

Lidhni levën me Arduino LEONARDO si më poshtë:

Leonardo Joystick

5V ---------- KQV

GND ---------- GND

A0 ---------- VRx

A1 ---------- VRy

Hapni skicën usbJoyStick, zgjidhni Arduino Leonardo si tabelë dhe ngarkojeni atë te Leonardo.

Nëse doni ta provoni, thjesht hapni një redaktues teksti në kompjuterin tuaj, klikoni miun në dritare dhe filloni të lëvizni levën. Ju duhet të shihni vlerat nga 1 në 9 që shfaqen në dritare

Hapi 5: LE TI UDHTIM

Merrni pak kohë dhe kaloni telat tuaj për t'u siguruar që gjithçka është e saktë.

Tjetra, lidhni bateritë tuaja si më poshtë.

1. Ndizni kamerën ESP32. Duhen disa sekonda për të filluar serverin në internet.

2. Ndizni Arduino Nano -n.

3. Ndizni motorët.

Nisni shfletuesin tuaj dhe shkoni te URL për ESP32.

Klikoni në butonin Start Streaming.

Klikoni miun diku në ekranin e shfletuesit në mënyrë që ekrani të jetë tani fokusi.

Filloni të drejtoni robotin tuaj me levë (ose tastierë).

Kam gjetur se madhësia e paracaktuar e kornizës funksionon mirë për transmetimin e videos drejtpërdrejt me përgjegjësi përmes WiFi. Sidoqoftë, ndërsa rritni madhësinë e kornizës, transmetimi do të bëhet më i trazuar sepse po përpiqeni të transmetoni imazhe më të mëdha.

Ky është një projekt sfidues që ju jep mundësinë të filloni të punoni me transmetimin e drejtpërdrejtë të videove dhe drejtimin e një roboti mbi WiFi. Shpresoj se ju është gjetur argëtuese!

TANI SHKONI DHE B MNI DIÇKA TON MREKULLSHME!

Përditësimi i Janarit 2020 - Fotografitë e fundit tregojnë versionin përfundimtar të robotit, të bashkuar fort dhe të montuar mirë në shasi.

Tre çelsat e montuar para janë si më poshtë:

Majtas - Bateria e fuqisë së motorit

Qendra - bateri Arduino

E djathtë - Bateria e kamerës ESP32

Unë mund të përdor një bateri të madhe me disa transformatorë të fuqisë (përdor një për ESP32-është në pjesën e poshtme të djathtë të fotos së pamjes së përparme), por për hir të thjeshtësisë, unë po mbaj vetëm 3 bateri.

Roboti tani në Access Point

Më duket e rëndë të demonstroj këtë robot jashtë shtëpisë sime sepse rrjeti i ndërmarrjeve të shkollës sime nuk më lejon të lidh serverin e uebit të robotëve me të. Si zgjidhje, unë bëra kërkime për përdorimin e veçorisë së Pikës së Qasjes të serverit në internet ESP32. Duhet pak punë, por kërkon ndryshime mjaft minimale në skicën kryesore të robotit për të bërë që ESP32 të transmetojë adresën IP të vet. Nuk është aq i fuqishëm sa një shpërndarës i dedikuar wifi me shpejtësi të lartë (ndonjëherë varet nëse lëvizni shumë shpejt), por funksionon mjaft mirë dhe tani mund ta demonstroj robotin kudo që dua pa pasur nevojë ta lidh atë me një rrjet! Pasi ta vini robotin në punë, provoni ta konvertoni vetë në Access Point!

Hapi 6: Detajet se si të modifikoni kodin HTML/Javascript për serverin në internet

Kjo nuk është e nevojshme, por kam pasur disa kërkesa.

Unë i kam dhënë këtij Google Doc detaje se si të përdor CyberChef për t'u kthyer mbrapsht midis HTML/Javascript dhe përfaqësimeve të grupit të bajtit në skedarin camera_index.h.

Recommended: