Мазмұны:
- Жабдықтар
- 1 -қадам: ESP32 камерасын бағдарламалау
- 2 -қадам: роботты жасаңыз
- 3 -қадам: ЕЙ! Бір секунд күтіңіз! Неліктен маған Arduino Nano қажет?
- 4 -қадам: USB джойстикін қосыңыз (міндетті емес)
- 5 -қадам: КЕЛЕМІЗ
- 6 -қадам: Веб -сервер үшін HTML/Javascript кодын қалай өзгерту керектігі туралы толық ақпарат
Бейне: ESP32 камералық робот - FPV: 6 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:23
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 камерасын 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 файлындағы байт массивінің презентациялары арасында түрлендіру үшін қалай қолдану керектігі туралы толық ақпарат бердім.
Ұсынылған:
Peltier TEC модулімен DIY температурасы басқарылатын камералық қорап: 4 қадам (суреттермен)
Peltier TEC модулі бар DIY температуралық бақыланатын камералық қорап: Мен шағын электронды тақталарды сынау үшін температураны басқаратын камералық қорапты жинадым. Бұл оқулықта мен өз жобамды бөлдім, оның ішінде бастапқы файлдар мен ПХД жасау үшін Gerbers файлдарына сілтеме. Мен тек арзан материалдарды қолдандым
NodeMCU + ескі ноутбуктің камералық модулі бар бейнебақылау камерасы (Blynk қолданумен және онсыз): 5 қадам
NodeMCU + ескі ноутбуктің камералық модулі бар бейнебақылау камерасы (Blynk қолданумен және онсыз): Сәлем балалар! Бұл нұсқаулықта мен CCTV -ге ұқсас нәрсе жасау үшін ескі ноутбуктің камера модулін және nodeMCU қалай қолданғанымды көрсетемін
D4E1 сол жақ камералық көмек: 6 қадам
D4E1 камерасының сол жақтағы көмекшісі: 2012 жылы Annelies Rollez, Cesar Vandevelde және Justin Couturon Barts (Grimonprez) цифрлық камерасына арналған сол жақ камералы камераны жасады. Біз дизайнды қарап шықтық және оны икемді өндіріс процесінде жасауға болатындай етіп параметрледік. Осылайша сол жақ
Time Laps камералық қондырғысы: 6 қадам
Time Lapse камералық қондырғысы: Менің жылдамдықпен жұмыс жасайтын қондырғымда бірінші ұрпақ Pi + өте арзан USB веб-камерасы + бос стенд (бипод) қолданылады. Менің құрастыру критерийлерімнің бір бөлігі-менде бар заттарды қайта пайдалану/жаңарту, әйтпесе мен шығып, Pi камера модулін сатып алып, осы жобаны қолданар едім
ESP32 камералық суретті тіркеу клиенті: 5 қадам
ESP32 Camera Picture Logging Client: ESP32 Camera Picture Logging Client жобасы ESP32 модулінің WiFi мүмкіндігін қолдана отырып, суретке түсіру үшін ESP32 микроконтроллерін қолдануға және оны Интернет арқылы орталық серверге жіберуге бағытталған. Негізгі ПХД тақтасы екі негізгі мақсатты ескере отырып жасалған: