Мазмуну:

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

Video: ESP32 камералуу робот - FPV: 6 кадам

Video: ESP32 камералуу робот - FPV: 6 кадам
Video: ESP32, более мощная чем любая другая Ардуино 2024, Ноябрь
Anonim
Image
Image
ESP32 камералуу робот - FPV
ESP32 камералуу робот - FPV
ESP32 камералуу робот - FPV
ESP32 камералуу робот - FPV

ESP32 Камера модулу арзан жана күчтүү PLC. Ал тургай жүздү таанууну камтыйт!

Келгиле, борттогу веб-интерфейс аркылуу айдаган First Person Viewpoint роботун куралы!

Бул долбоор OV2640 Камерасы бар Geekcreit ESP32 модулун колдонот. Бул AIThinker модулуна негизделген.

Ал жерде ар кандай ESP32 Камера клондору бар. Кээ бирлери иштейт, кээ бири иштебейт. Мен ийгиликтүү болууга жакшы мүмкүнчүлүккө ээ болуу үчүн мен жасаган модулду колдонууну сунуштаар элем.

Робот төмөнкүдөй иштейт.

ESP32 камераңыздын кээ бир функцияларын иштетүү үчүн кээ бир белгилөө кутучалары менен жандуу видео агымын көрсөтүүчү тармагыңызга веб-URL таркатат. Ал ошондой эле роботко багытталган буйруктар болгон клавиатурадан веб -баракчага жөнөтүлгөн негизги пресстерди алат. Сиз роботту клавиатура буйруктарын терүүдөн көрө джойстик менен башкара алгыдай USB джойстик калканчын түзүүнү каалашыңыз мүмкүн.

ESP32 баскычтарды басканда, ал байттарды Arduino Nanoго жөнөтөт, андан кийин моторлорду роботту кыймылга келтирет.

Бул долбоор орточо-жогорку кыйынчылыкта. Сураныч, шашпаңыз.

Кел, баштайлы!

Жабдуулар

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

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де ачыңыз.

Роутериңиздин тармак идентификаторун жана сырсөзүңүздү жогорудагы сүрөттө белгиленген саптарга салыңыз. Долбоорду сактоо.

Tools менюсуна барып, жогорудагы сүрөттө көрсөтүлгөндөй кылып тандаңыз.

Такта: ESP32 Wrover

Жүктөө ылдамдыгы: 115200

Бөлүү схемасы: "Чоң APP (3MB жок OTA)"

жана FTDI адаптериңиз туташкан портту тандаңыз.

"Жүктөө" баскычын чыкылдатыңыз.

Эми, кээде, ESP32 жүктөп баштайт. Жүктөө учурунда консолдо… ---… белгилери пайда боло баштаганда, ESP32дин артындагы RESET баскычын басууга даяр болуңуз. Андан кийин жүктөө башталат.

Консолдо "RST баскычын" көргөнүңүздө, жүктөө аяктады.

IO0'ду жерден ажыратыңыз. FTDI адаптери менен ESP32 ортосундагы 3.3V линиясын ажыратыңыз.

ESP32 Камерасы жакшы иштеши үчүн көп ток талап кылынат. 5V 2A күч адаптерин ESP32деги 5V жана GND казыктарына туташтырыңыз.

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

Браузериңизге барып, URL дарегин киргизиңиз. Веб -сайт жүктөлгөндө, 'Агымды баштоо' баскычын чыкылдатыңыз жана түз видео агымы башталууга тийиш. Эгерде сиз 'Floodlight' белгилөө кутучасын бассаңыз, борттогу флеш-диод күйүп турушу керек. Абайла! Бул ЖАРКЫН!

2 -кадам: Роботту куруңуз

Роботту куруу
Роботту куруу

Сизге эки дөңгөлөктүү робот шасси керек. Ким болбосун кылат. Өндүрүүчүнүн көрсөтмөсүнө ылайык шассини чогултуп алыңыз.

Андан кийин диаграммага ылайык роботту зым менен байланыштырыңыз. Батарея байланыштарын азырынча калтырыңыз.

L293D моторлорду башкаруу үчүн колдонулат. Байкаңыз, чиптин жарымы ESP32 ТУУРА.

Адатта, Arduinoдо эки моторду көзөмөлдөө үчүн 6 төөнөгүч керек.

Бул роботко 4 казык гана талап кылынат жана дагы эле толук иштейт.

1 жана 9 -пиндер Arduino 5V булагына туташкан, андыктан алар биротоло БИЙИК. Роботту ушундай жол менен туташтыруу, моторлорду башкаруу үчүн бизге Arduino'го азыраак эки казык керек дегенди билдирет.

Алга карай, INPUT казыктары LOW жана мотор Pulse Wave Modulation казандары 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 батареяны сактап жатам.

Робот азыр Access Pointте

Мен бул роботту үйүмдүн сыртында көрсөтүү кыйын деп эсептейм, анткени менин мектептин ишкана тармагы мага роботтун веб -серверин туташтырууга уруксат бербейт. Чечим катары мен ESP32 веб -серверинин Access Point мүмкүнчүлүгүн колдонуу боюнча изилдөө жүргүздүм. Бул бир аз иштөөнү талап кылат, бирок ESP32 уктуруусун өзүнүн IP дареги кылуу үчүн негизги роботтун эскизине өтө аз өзгөрүүлөрдү талап кылат. Бул атайын жогорку ылдамдыктагы wifi хабындай күчтүү эмес (кээде өтө тез кыймылдасаңыз, илинип калат), бирок ал абдан жакшы иштейт, эми мен роботту каалаган жерге көрсөтө алам, аны тармакка кошпостон! Роботту иштеткенден кийин, аны өзүңүз Access Pointге айлантып көрүңүз!

6 -кадам: Webserver үчүн HTML/Javascript кодун кантип өзгөртүү керектиги жөнүндө маалымат

Бул кереги жок, бирок менде кээ бир өтүнүчтөр болгон.

Мен бул Google Документке CyberChefти HTML/Javascript менен camera_index.h файлындагы байт массивинин өкүлдөрүнүн ортосунда алдыга жана артка айландыруу үчүн кантип колдонуу керектиги жөнүндө маалымат бердим.

Сунушталууда: