Мазмұны:

ESP32 камералық робот - FPV: 6 қадам
ESP32 камералық робот - FPV: 6 қадам

Бейне: ESP32 камералық робот - FPV: 6 қадам

Бейне: ESP32 камералық робот - FPV: 6 қадам
Бейне: ESP32-CAM - Быстрый старт 2024, Қараша
Anonim
Image
Image
ESP32 камералық робот - FPV
ESP32 камералық робот - FPV
ESP32 камералық робот - FPV
ESP32 камералық робот - FPV

ESP32 Camera модулі - бұл арзан және қуатты PLC. Ол тіпті бетті тануды қамтиды!

Сіз борттық веб-интерфейс арқылы басқарылатын First Person Viewpoint роботын жасайық!

Бұл жобада OV2640 камерасы бар Geekcreit ESP32 модулі қолданылады. Ол AIThinker модуліне негізделген.

Көптеген ESP32 камералық клондары бар. Біреулер жұмыс істейді, біреулер жұмыс жасамайды. Мен сіз жасаған модульді қолдануды ұсынамын, осылайша сізде табысқа жетуге жақсы мүмкіндік бар.

Робот келесідей жұмыс істейді.

ESP32 веб-URL мекенжайын таратады, ол камераның кейбір функцияларын орындауға арналған құсбелгілермен тікелей бейне ағыны ұсынады. Ол сонымен қатар веб -бетке жіберілген пернелерді пернетақтадан алады, олар роботқа бағытталған командалар. Сіз роботты пернетақта пәрмендерін терудің орнына джойстикпен басқара алатын USB джойстик қалқанын жасағыңыз келуі мүмкін.

ESP32 пернелерін басқанда, ол байттарды Arduino Nano -ға жібереді, содан кейін моторды роботтың қозғалуына мәжбүр етеді.

Бұл жоба орташа-жоғары күрделілікке ие. Өтінемін, асықпаңыз.

Бастайық!

Жабдықтар

  • OV2640 камерасы бар ESP -32 камера модулі - мен Geekcreit өнімін ұсынар едім
  • Сигнал күшін жоғарылату үшін ESP-32 сыртқы антеннасы
  • Ардуино Нано
  • Джойстик модулі үшін Ардуино Леонардо (бізге Леонардо берген USB пернетақтасының эмуляциясы қажет)
  • Жалпы джойстик модулі
  • L293D Quad H-көпір микросхемасы
  • ESP32-ге қуат беру үшін 5В шығысы бар DC-DC Buck Coverter
  • ESP32 бағдарламалауға арналған FTDI сериялық адаптері
  • Екі редукторы бар жалпы робот шассиі - кез келген шасси жұмыс істейді. 3 -тен 6В дейінгі қозғалтқыштар ұсынылады
  • ESP32 мен қозғалтқыштарды қуаттандыратын 2 x 7.4V 1300mAh LiPo батареялары (немесе ұқсас)
  • Arduino Nano -ны қуаттандыратын 1 х 9В батарея

1 -қадам: ESP32 камерасын бағдарламалау

ESP32 камерасын бағдарламалау
ESP32 камерасын бағдарламалау
ESP32 камерасын бағдарламалау
ESP32 камерасын бағдарламалау

Нан тақтасын пайдаланып, ESP32 камерасын FTDI адаптеріне келесідей қосыңыз:

FTDI ESP32

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

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

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

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

Сонымен қатар, IO0 түйреуішін («көз-нөл-нөл») GND-ге қосыңыз. ESP32 бағдарламалау режиміне қою үшін мұны істеу керек.

Esp32CameraWebRobotforInstructable.zip файлын ашыңыз.

Бұл жобада 4 файл бар:

esp32CameraWebRobotforInstructable.ino - бұл Arduino нобайы.

ap_httpd.cpp - бұл веб -серверді басқаратын және веб -беттен камера мүмкіндіктерін орнатумен және веб -беттен пернелерді басуды қабылдаумен айналысатын код.

camera_index.h веб -қосымшаның HTML/JavaScript кодын байт массивтері ретінде қамтиды. Веб -қосымшаны өзгерту бұл жобаның ауқымынан тыс. Мен кейінірек HTML/JavaScript -ті өзгертуге сілтеме қосамын.

camera_pins.h - бұл ESP32 камерасының түйреуіш конфигурациясына қатысты тақырыптық файл.

ESP32 бағдарламалау режиміне қою үшін IO0 («көз-нөл-нөл») жерге қосу керек.

Arduino IDE іске қосыңыз және Құралдар/тақталар/тақталар менеджеріне өтіңіз. Esp32 іздеңіз және esp32 кітапханасын орнатыңыз.

Жобаны Arduino IDE -де ашыңыз.

Маршрутизатордың желі идентификаторы мен пароліңізді жоғарыдағы суретте көрсетілген жолдарға енгізіңіз. Жобаны сақтаңыз.

Құралдар мәзіріне өтіп, жоғарыдағы суретте көрсетілгендей таңдау жасаңыз.

Басқару тақтасы: ESP32 Wrover

Жүктеу жылдамдығы: 115200

Бөлу схемасы: «Үлкен APP (3MB OTA жоқ)»

және FTDI адаптері қосылған портты таңдаңыз.

«Жүктеу» түймесін басыңыз.

Енді кейде ESP32 жүктеуді бастамайды. Жүктеу кезінде консольде… ---… таңбаларын көре бастағанда, ESP32 артындағы RESET түймесін басуға дайын болыңыз. Содан кейін ол жүктеуді бастайды.

Консольде 'RST пернесін басу' дегенді көргенде, жүктеу аяқталды.

Жерден IO0 ажырату. FTDI адаптері мен ESP32 арасындағы 3.3В желісін ажыратыңыз.

ESP32 камерасы жақсы жұмыс істеуі үшін көп ток қажет. 5V 2A қуат адаптерін ESP32 құрылғысындағы 5V және GND түйреуіштеріне қосыңыз.

Сериялық мониторды ашыңыз, жіберу жылдамдығын 115200 деп орнатыңыз, содан кейін ESP32 қайта жүктелгенін қараңыз. Ақырында, сіз сервердің URL мекенжайын көресіз.

Браузерге өтіп, URL мекенжайын енгізіңіз. Веб -сайт жүктелген кезде «Ағынды бастау» түймесін басыңыз, содан кейін тікелей бейне ағыны басталуы керек. Егер сіз 'Floodlight' құсбелгісін қойсаңыз, борттық жарықдиодты шам жануы керек. Қауіптену! ЖАРҚЫН!

2 -қадам: роботты жасаңыз

Робот құрастыру
Робот құрастыру

Сізге екі доңғалақты робот шассиі қажет. Кез келген адам жасайды. Шассиді өндірушінің нұсқауларына сәйкес жинаңыз.

Содан кейін схемаға сәйкес роботты қосыңыз.

L293D қозғалтқыштарды басқару үшін қолданылады. Назар аударыңыз, чиптің жартысы ESP32-ге қатысты.

Әдетте Arduino -да екі қозғалтқышты басқару үшін 6 түйреуіш қажет.

Бұл роботқа тек 4 түйреуіш қажет және әлі де толық жұмыс істейді.

1 және 9 түйреуіштер Arduino 5В көзіне қосылады, сондықтан олар үнемі жоғары болады. Роботты осылай сыммен қосу моторларды басқару үшін бізге Arduino -да екі түйреуіш аз болуы керек дегенді білдіреді.

Алға бағытта INPUT түйреуіштері LOW күйіне, ал қозғалтқыштың импульстік толқын модуляциясының түйреуіштері 0 мен 255 арасындағы мәндерге 0 мәнін OFF және 255 максималды жылдамдықты білдіреді.

Кері бағытта INPUT түйреуіштері HIGH мәніне орнатылады және PWM мәндері кері қайтарылады. 0 максималды жылдамдықты және 255 өшіруді білдіреді.

ArduinoMotorControl эскизін ашыңыз және Arduino Nano -ға жүктеңіз.

3 -қадам: ЕЙ! Бір секунд күтіңіз! Неліктен маған Arduino Nano қажет?

Мүмкін сіз «Эй! ESP32 камерасында кемінде 4 IO түйреуіші бар. Неліктен оларды қозғалтқыштарды басқару үшін пайдалана алмаймын?»

Рас, ESP32 -де түйреуіштер келесідей:

IO0 - ESP32 бағдарламалау режиміне қою үшін қажет

IO2 - қол жетімді

IO4 - жарық диоды

IO12, IO13, IO14, IO15, IO16 - қосымша GPIO түйреуіштері.

Егер сіз түйреуіштерді PWM командаларымен басқару үшін ESP32 -ге негізгі эскизді жүктесеңіз, олар жұмыс істейді.

Алайда, эскиздердегі CAMERA кітапханаларын белсендіргеннен кейін, бұл түйреуіштер енді қол жетімді болмайды.

Ең қарапайым нәрсе - моторларды PWM арқылы басқару үшін наноды пайдалану және ESP32 командаларын бір сыммен (ESP32 U0T Arduino Rx0) және GND арқылы жіберу. Өте қарапайым.

4 -қадам: USB джойстикін қосыңыз (міндетті емес)

Сіз роботты келесі түрде веб -бетке басу арқылы жібере аласыз:

8 - Алға

9 - Алға оңға

7 - Алға, солға

4 - солға бұру

5 - Тоқтаңыз

1 - кері солға

2 - Кері

3 - Оңға кері.

USB джойстикінің эскизі джойстиктің кірістерін пернелер тіркесіміне аударады және оларды роботты басқару үшін Arduino -ға жіберетін веб -интерфейске жібереді.

Джойстикті Arduino LEONARDO -ға келесідей қосыңыз:

Леонардо Джойстик

5V ---------- VCC

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

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

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

UsbJoyStick эскизін ашып, тақта ретінде Ардуино Леонардоны таңдап, оны Леонардоға жүктеңіз.

Егер сіз оны тексергіңіз келсе, компьютерде мәтіндік редакторды ашып, терезеде тышқанды шертіп, джойстикті жылжытыңыз. Терезеде 1 -ден 9 -ға дейінгі мәндерді көру керек

5 -қадам: КЕЛЕМІЗ

Уақыт бөліп, сымдарды тексеріп, бәрі дұрыс екеніне көз жеткізіңіз.

Содан кейін батареяларды келесідей қосыңыз.

1. ESP32 камерасын қосыңыз. Веб -серверді іске қосу үшін бірнеше секунд қажет.

2. Arduino Nano -ны қосыңыз.

3. Қозғалтқыштарды қосыңыз.

Браузерді іске қосыңыз және ESP32 URL мекенжайына өтіңіз.

Ағынды бастау түймешігін басыңыз.

Браузер экранының кез келген жерінде тышқанды шертіңіз, сонда экран фокусқа айналады.

Роботты джойстикпен (немесе пернетақта) басқаруды бастаңыз.

Мен әдепкі кадр өлшемі WiFi арқылы тікелей бейнені дұрыс тарату үшін жақсы жұмыс істейтінін білдім. Бірақ кадр өлшемін ұлғайта отырып, ағын күрт өзгереді, себебі сіз үлкенірек суреттерді таратуға тырысасыз.

Бұл сізге тікелей бейне ағынымен жұмыс жасауға және WiFi арқылы роботты басқаруға мүмкіндік беретін күрделі жоба. Сізге қызықты болды деп сенемін!

ҚАЗІР БАРЫП, бір нәрсені керемет ет!

2020 жылдың қаңтар айының жаңартуы - соңғы фотосуреттер роботтың қатты дәнекерленген және шассиге мықтап бекітілген соңғы нұсқасын көрсетеді.

Алдыңғы орнатылған үш қосқыш келесідей:

Сол жақта - моторлы батарея

Орталығы - Arduino батареясы

Оң жақта - ESP32 камералық батареясы

Мен үлкен аккумуляторлық трансформаторлары бар бір үлкен батареяны қолдана аламын (мен оны ESP32 үшін қолданамын-бұл фотосуреттің төменгі оң жағында), бірақ қарапайымдылық үшін мен тек 3 батареяны сақтаймын.

Робот енді кіру нүктесінде

Маған бұл роботты үйден тыс жерде көрсету қиынға соғады, себебі менің мектептің кәсіпорын желісі оған робот веб -серверін қосуға мүмкіндік бермейді. Шешім ретінде мен ESP32 веб -серверінің Access Point мүмкіндігін пайдалану бойынша зерттеулер жүргіздім. Бұл біраз еңбекті қажет етеді, бірақ ESP32 таратылымын өзінің IP -адресін жасау үшін негізгі робот эскизіне ең аз өзгерістерді қажет етеді. Бұл арнайы жоғары жылдамдықты Wi -Fi хабы сияқты күшті емес (егер сіз тым жылдам қозғалсаңыз, кейде ол өшіп қалады), бірақ ол өте жақсы жұмыс істейді, енді мен роботты желіге қоспай -ақ қалаған жерімде көрсете аламын! Роботты жұмысқа алғаннан кейін, оны Access Point -ке өзіңіз түрлендіріп көріңіз!

6 -қадам: Веб -сервер үшін HTML/Javascript кодын қалай өзгерту керектігі туралы толық ақпарат

Бұл қажет емес, бірақ менде бірнеше өтініш бар.

Мен бұл Google Doc -қа CyberChef -ті HTML/Javascript пен kamera_index.h файлындағы байт массивінің презентациялары арасында түрлендіру үшін қалай қолдану керектігі туралы толық ақпарат бердім.

Ұсынылған: