Բովանդակություն:
- Պարագաներ
- Քայլ 1. Programրագրեք ESP32 տեսախցիկը
- Քայլ 2: Կառուցեք ռոբոտը
- Քայլ 3: HEY! Մի վայրկյան սպասի՛ր: Ինչու՞ է ինձ պետք Arduino Nano- ն:
- Քայլ 4. Միացրեք USB ջոյսթիկը (ըստ ցանկության)
- Քայլ 5: ԱIDԵՆՔ:
- Քայլ 6: Մանրամասներ, թե ինչպես փոփոխել HTML/Javascript ծածկագիրը վեբ սերվերի համար
Video: ESP32 տեսախցիկի ռոբոտ - FPV ՝ 6 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:46
ESP32 Camera մոդուլը էժան և հզոր PLC է: Այն ներառում է նույնիսկ դեմքի ճանաչում:
Եկեք կառուցենք Առաջին անձի տեսակետի ռոբոտ, որը դուք վարում եք ներկառուցված վեբ ինտերֆեյսով:
Այս նախագիծը օգտագործում է Geekcreit ESP32 մոդուլը OV2640 տեսախցիկով: Այն հիմնված է AIThinker մոդուլի վրա:
Կան բազմաթիվ տարբեր ESP32 տեսախցիկների կլոններ: Ոմանք աշխատում են, ոմանք ՝ ոչ: Ես կառաջարկեի օգտագործել նույն մոդուլը, ինչ ես արել եմ, որպեսզի հաջողակ լինելու լավ հնարավորություն ունենաք:
Ռոբոտը գործում է հետևյալ կերպ.
ESP32- ը ձեր ցանցին է փոխանցում վեբ հասցե, որը ներկայացնում է ուղիղ տեսահոսքը տեսախցիկի որոշ գործառույթներ գործարկելու որոշ վանդակներ: Այն նաև ստանում է ստեղնաշարից վեբ էջ ուղարկված հիմնական սեղմումներ, որոնք ռոբոտի համար ուղղորդված հրամաններ են: Հնարավոր է, որ ցանկանաք կառուցել USB վահանի վահանը, որպեսզի կարողանաք ռոբոտին քշել ջոյսթիկով, այլ ոչ թե մուտքագրել ստեղնաշարի հրամաններ:
Երբ ESP32- ը ստանում է ստեղնային սեղմումներ, այն փոխանցում է այդ բայթերը Arduino Nano- ին, որն այնուհետև շարժիչներին մղում է ռոբոտին շարժելու համար:
Այս նախագիծը միջինից բարձր դժվարության է: Խնդրում ենք ժամանակ տրամադրել:
Եկեք սկսենք!
Պարագաներ
- ESP -32 Խցիկի մոդուլ OV2640 տեսախցիկով - ես խորհուրդ կտայի Geekcreit արտադրանքը
- ESP-32- ի արտաքին սեղմիչային ալեհավաք ՝ ազդանշանի ուժգնությունը առավելագույնի հասցնելու համար
- Արդուինո Նանո
- Arduino Leonardo Joystick մոդուլի համար (մեզ անհրաժեշտ է Լեոնարդոյի կողմից տրամադրված USB ստեղնաշարի նմանակում)
- Ընդհանուր Joystick մոդուլ
- L293D Quad H- կամուրջ չիպ
- ESP32- ը սնուցելու համար DC-DC Buck Coverter 5V ելքով
- FTDI սերիական ադապտեր ESP32 ծրագրավորման համար
- Երկու ընդհանուր շարժիչով ռոբոտի ընդհանուր շասսի. Ցանկացած շասսի կաշխատի: Առաջարկվում է 3 -ից 6 Վ շարժիչներ
- 2 x 7.4V 1300mAh LiPo մարտկոց (կամ նման) ESP32- ի և շարժիչների սնուցման համար
- 1 x 9V մարտկոց ՝ Arduino Nano- ին սնուցելու համար
Քայլ 1. Programրագրեք 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- ը mingրագրավորման ռեժիմի մեջ դնելու համար պետք է IO0- ը («աչք-օ-զրո») միացնել գետնին:
Գործարկեք ձեր Arduino IDE- ն և գնացեք Գործիքներ/տախտակներ/տախտակների կառավարիչ: Որոնեք esp32 և տեղադրեք esp32 գրադարանը:
Բացեք նախագիծը ձեր Arduino IDE- ում:
Տեղադրեք ձեր երթուղիչի ցանցի ID- ն և ձեր գաղտնաբառը վերևում նկարում ընդգծված տողերի մեջ: Պահպանեք նախագիծը:
Գնացեք Գործիքներ ընտրացանկ և կատարեք ընտրությունները, ինչպես ցույց է տրված վերևում նկարում:
Տախտակ `ESP32 Wrover
Բեռնման արագություն ՝ 115200
Բաժանման սխեմա. «Հսկայական ծրագիր (3 ՄԲ առանց OTA)»
և ընտրեք այն նավահանգիստը, որին միացված է ձեր FTDI ադապտերը:
Կտտացրեք «Վերբեռնել» կոճակին:
Այժմ, երբեմն, ESP32- ը չի սկսում վերբեռնել: Այսպիսով, պատրաստ եղեք ESP32- ի հետևի մասում սեղմել RESET կոճակը, երբ սկսում եք տեսնել… ---… նիշերը կոնսոլում հայտնվում են բեռնման ընթացքում: Այնուհետև այն կսկսի բեռնել:
Երբ տեսնում եք «սեղմեք RST» վահանակի վրա, վերբեռնումն ավարտված է:
ԱՐISԱՆԵՔ IO0- ը գետնից: Անջատեք 3.3V գիծը FTDI ադապտերի և ESP32- ի միջև:
ESP32 տեսախցիկը լավ հոսանք աշխատելու համար շատ հոսանք է պահանջում: Միացրեք 5V 2A հոսանքի ադապտեր ESP32- ի 5V և GND կապումներին:
Բացեք Serial Monitor- ը, baud փոխարժեքը սահմանեք 115200, այնուհետև դիտեք ESP32- ի վերաբեռնումը: Ի վերջո, դուք կտեսնեք սերվերի URL- ը:
Գնացեք ձեր դիտարկիչ և մուտքագրեք URL- ը: Երբ վեբ կայքը բեռնում է, կտտացրեք «Սկսել հոսք» կոճակին, և պետք է սկսվի կենդանի տեսահոսքը: Եթե սեղմում եք «Floodlight» վանդակի վրա, ապա ներսում գտնվող ֆլեշ LED- ը պետք է լուսավորվի: Watchգուշացե՛ք: ԱՌԱ Է!
Քայլ 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: HEY! Մի վայրկյան սպասի՛ր: Ինչու՞ է ինձ պետք Arduino Nano- ն:
Դուք հավանաբար մտածում եք.
Դե, ճիշտ է, ESP32- ի վրա կան կապեր հետևյալ կերպ.
IO0 - անհրաժեշտ է ESP32- ը ծրագրավորման ռեժիմի մեջ դնելու համար
IO2 - առկա է
IO4 - Flash LED
IO12, IO13, IO14, IO15, IO16 - լրացուցիչ GPIO կապում:
Եթե դուք պարզապես բեռնում եք հիմնական ուրվագիծը ESP32- ում `PWM հրահանգներով կապերը վերահսկելու համար, դրանք աշխատում են:
Այնուամենայնիվ, երբ ձեր ուրվագծերում ակտիվացնեք CAMERA գրադարանները, այս կապումներն այլևս հասանելի չեն:
Այսպիսով, ամենահեշտ բանը պարզապես Nano- ն օգտագործել PWM- ով շարժիչները կառավարելու և ESP32- ից հրամաններն ուղարկելու համար մեկ լարով (ESP32 U0T Arduino Rx0- ին և GND- ին): Շատ պարզ.
Քայլ 4. Միացրեք USB ջոյսթիկը (ըստ ցանկության)
Դուք կարող եք քշել ռոբոտին ՝ առանցքային սեղմումներ ուղարկելով վեբ էջ հետևյալ կերպ.
8 - առաջ
9 - առաջ աջ
7 - առաջ ձախ
4 - Պտտել ձախ
5 - կանգ առեք
1 - Հակառակ ձախ
2 - հակադարձ
3 - Հակադարձ իրավունք:
USB ջոյսթիկի էսքիզը ժոյսթիկի մուտքերը թարգմանում է առանցքային սեղմիչների և ուղարկում դրանք վեբ ինտերֆեյս, որն էլ դրանք փոխանցում է Arduino- ին ՝ ռոբոտին քշելու համար:
Connectոյստիկը միացրեք Arduino LEONARDO- ին հետևյալ կերպ.
Լեոնարդո Jոյստիկ
5V ---------- VCC
GND ---------- GND
A0 ---------- VRx
A1 ---------- VRy
Բացեք usbJoyStick էսքիզը, որպես տախտակ ընտրեք Arduino Leonardo- ն և տեղադրեք այն Leonardo- ում:
Եթե ցանկանում եք ստուգել այն, պարզապես համակարգչում բացեք տեքստային խմբագիր, պատուհանում սեղմեք մկնիկը և սկսեք տեղաշարժել ժոշտիկը: Պատուհանում պետք է տեսնեք 1 -ից 9 -ի արժեքները
Քայլ 5: ԱIDԵՆՔ:
Որոշ ժամանակ տրամադրեք և անցեք ձեր էլեկտրագծերը `համոզվելու համար, որ ամեն ինչ ճիշտ է:
Հաջորդը, միացրեք մարտկոցները հետևյալ կերպ.
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: Մանրամասներ, թե ինչպես փոփոխել HTML/Javascript ծածկագիրը վեբ սերվերի համար
Սա անհրաժեշտ չէ, բայց ես որոշ խնդրանքներ ունեի:
Այս Google Doc- ին ես տրամադրել եմ մանրամասներ, թե ինչպես օգտագործել CyberChef- ը HTML/Javascript- ի և camera_index.h ֆայլի մեջ HTML/Javascript- ի և բայտ զանգվածների ներկայացումների միջև փոխադարձ փոխակերպման համար:
Խորհուրդ ենք տալիս:
Արդուինո - Լաբիրինթոս լուծող ռոբոտ (MicroMouse) Wall հետևող ռոբոտ. 6 քայլ (նկարներով)
Արդուինո | Maze Solving Robot (MicroMouse) Wall After Robot: Բարի գալուստ, ես Իսահակն եմ, և սա իմ առաջին ռոբոտն է " Striker v1.0 ". Այս ռոբոտը նախատեսված էր պարզ լաբիրինթոս լուծելու համար: Մրցույթում մենք ունեինք երկու լաբիրինթոս և ռոբոտը կարողացավ դրանք բացահայտել: Լաբիրինթոսում ցանկացած այլ փոփոխություն կարող է պահանջել փոփոխություն
RC վերահսկվող ռոբոտ XLR8- ում: Կրթական ռոբոտ ՝ 5 քայլ
RC վերահսկվող ռոբոտ XLR8- ում: Կրթական ռոբոտ. Բարև, այս հոդվածում ձեզ ցույց կտա, թե ինչպես կառուցել հիմնական ռոբոտ: «Ռոբոտ» բառը բառացիորեն նշանակում է «ստրուկ»: կամ «աշխատող»: Արհեստական բանականության ոլորտում առաջընթացների շնորհիվ ռոբոտներն այլևս պարզապես Իսակ Ասիմովի գիտաֆանտաստիկայի մի մասը չեն
Հավասարակշռող ռոբոտ / 3 անիվի ռոբոտ / STEM ռոբոտ ՝ 8 քայլ
Հավասարակշռող ռոբոտ / 3 անիվի ռոբոտ / STEM ռոբոտ. Մենք կառուցել ենք համակցված հավասարակշռող և եռանիվ ռոբոտ `կրթական օգտագործման համար դպրոցներում և դպրոցից հետո կրթական ծրագրերում: Ռոբոտը հիմնված է Arduino Uno- ի, սովորական վահանի վրա (շինարարության բոլոր մանրամասները տրամադրված են), Li Ion մարտկոցի տուփով (բոլորը կառուցված են
Trekking Pole Monopod փոքր տեսախցիկի/տեսախցիկի համար `4 քայլ
Rekբոսանքների բևեռի միապաղաղ փոքր տեսախցիկի/տեսախցիկի համար. Ես սիրում եմ շատ լուսանկարներ անել արշավելիս, բայց իմ եռոտանը փոքր-ինչ ծանր է ցանկացած լուրջ արշավների համար, և իմ գորիլա-պատանի ոճի եռոտանին շատ ժամանակ է պահանջվում `ճիշտ տեղում հայտնվելու համար: և շատ կայուն չէ (ես պետք է ավելի լավը գնեի): Այս պարզ գ
Ավելացրեք համակարգչի համաժամացման խցիկ Nikon Sc-28 Ttl մալուխին (տեսախցիկի բռնկման համար օգտագործեք ավտոմատ կարգավորումներ և միացրեք տեսախցիկի բռնկումները !!) ՝ 4 քայլ
Ավելացրեք համակարգչի համաժամացման խցիկ Nikon Sc-28 Ttl մալուխին (օգտագործեք ավտոմատ կարգավորումներ ՝ խցիկի բռնկման համար և միացրեք տեսախցիկի բռնկումները !!). Nikon SC-28 անջատված տեսախցիկի TTL մալուխի կողքին և այն փոխարինել ստանդարտ ԱՀ համաժամացման միակցիչով: սա թույլ կտա օգտագործել հատուկ ֆլեշ