Բովանդակություն:

WiBot: 10 քայլ (նկարներով)
WiBot: 10 քայլ (նկարներով)

Video: WiBot: 10 քայլ (նկարներով)

Video: WiBot: 10 քայլ (նկարներով)
Video: WiBot ! 2024, Նոյեմբեր
Anonim
WiBot
WiBot

Այս հրահանգը մանրամասնում է ZYBO հարթակում Wi-Fi ռոբոտ ստեղծելու գործընթացը: Այս նախագիծը օգտագործում է իրական ժամանակի օպերացիոն համակարգ օբյեկտների հայտնաբերման, հեռավորության չափման և արձագանքող կառավարման համար: Այս ուղեցույցը կներառի ZYBO- ի ՝ ծայրամասային սարքերի հետ միացում, անհատական որոնվածի գործարկում և Java հավելվածի միջոցով հաղորդակցություն: Ստորև ներկայացված է այս ծրագրի համար անհրաժեշտ բոլոր հիմնական բաղադրիչների ցանկը.

  • 1 ZYBO զարգացման խորհուրդ
  • 1 TL-WR802N անլար երթուղիչ
  • 1 ստվերային շասսի
  • 2 65 մմ անիվներ
  • 2 140rpm Gearmotors
  • 2 անիվի կոդավորիչ
  • 1 HC-SR04 ուլտրաձայնային տվիչ
  • 1 BSS138 Տրամաբանական մակարդակի փոխարկիչ
  • 1 L293 H-Bridge շարժիչ
  • 1 12V- ից 5V DC/DC փոխարկիչ
  • 1 2200 mAh LiPo մարտկոց
  • 1 Ethernet մալուխ
  • 1 USB Micro-B մալուխ
  • 1 իգական XT60 միակցիչ
  • 2 Արականից իգական ցատկող լարեր
  • 30 Արականից տղամարդու ցատկող լարեր
  • 2 10kΩ դիմադրիչներ
  • 1 Հացաթուղթ

Բացի այդ, նպատակային համակարգչի վրա պետք է տեղադրվեն հետևյալ ծրագրակազմը.

  • Xilinx Vivado Design Suite 2018.2
  • Digilent Adept 2.19.2
  • FreeRTOS 10.1.1
  • Java SE զարգացման հավաքածու 8.191

Քայլ 1: Հավաքեք ռոբոտի շասսի

Հավաքեք ռոբոտի շասսի
Հավաքեք ռոբոտի շասսի
Հավաքեք ռոբոտի շասսի
Հավաքեք ռոբոտի շասսի
Հավաքեք ռոբոտի շասսի
Հավաքեք ռոբոտի շասսի

Հավաքեք ստվերային շասսին և ամրացրեք փոխանցման շարժիչները և կոդավորիչները ներքևի շրջանակին: ZYBO- ն, տախտակը և ուլտրաձայնային տվիչը կարող են տեղադրվել տրամադրված մասերով, որոնք կարող են 3D տպվել և ամրացվել շասսիի վրա ՝ օգտագործելով կանգառներ և երկկողմանի ժապավեն: Մարտկոցը պետք է տեղադրված լինի ռոբոտի հետևի մասում և ցանկալի է վերևի և ներքևի շրջանակներ: Տեղադրեք երթուղիչը ZYBO- ին մոտ և DC/DC փոխարկիչը `հացատախտակին մոտ: Անիվները հենց վերջում ամրացրեք փոխանցման շարժիչներին:

Քայլ 2: Լարային էլեկտրոնիկա

Լարային էլեկտրոնիկա
Լարային էլեկտրոնիկա
Լարային էլեկտրոնիկա
Լարային էլեկտրոնիկա
Լարային էլեկտրոնիկա
Լարային էլեկտրոնիկա

Միացրեք DC/DC փոխարկիչի մուտքն ու ելքը համապատասխանաբար երկու տախտակի վրա գտնվող հոսանքի երկու ռելսերին: Դրանք կծառայեն որպես համակարգի 12 Վ և 5 Վ լարման աղբյուրներ: Միացրեք ZYBO- ն 5V ռելսին, ինչպես ցույց է տրված նկարում: Օգտագործեք USB Micro-B մատակարարման մալուխ `երթուղիչը միացնելու համար նաև 5 Վ ռելսին: XT60 մալուխը պետք է ամրացվի 12 Վ ռելսին: Մի միացրեք մարտկոցը, մինչև էլեկտրոնիկայի մնացած մասը ճիշտ միացված չէ: Ուլտրաձայնային տվիչը պետք է միացված լինի 5V ռելսին: Ստեղծեք 3.3V երկաթուղի տախտակի վրա ՝ օգտագործելով ZMB- ի Pmod նավահանգստի JC- ի 6 -րդ կապը: Տրամաբանական փոխարկիչի բարձր լարման մուտքը պետք է միացված լինի 5 Վ ռելսին, իսկ տրամաբանական փոխարկիչի ցածր լարման մուտքը `3.3 Վ ռելսին: Միացրեք շարժիչի կոդավորիչները 3.3V ռելսին: Շարժիչի վարորդի VCC1- ը միացրեք 5V ռելսին և միացրեք VCC2- ը 12V ռելսին: Կապեք EN բոլոր կապումներն 5 Վ -ի հետ և հիմնավորեք GND- ի բոլոր կապանքները:

Միացրեք ուլտրաձայնային տվիչի TRIG և ECHO կապերը համապատասխանաբար տրամաբանական փոխարկիչի HV1 և HV2- ին: LV1- ը պետք է միացված լինի JC4- ին, իսկ LV2- ը `JC3- ին: Pmod pinouts- ի համար դիմեք գծապատկերին: Միացրեք շարժիչները շարժիչի վարորդին: Y1- ը պետք է միացված լինի աջ շարժիչի դրական տերմինալին, իսկ Y2- ը `աջ շարժիչի բացասական տերմինալին: Նմանապես, Y3- ը պետք է միացված լինի ձախ շարժիչի դրական տերմինալին, իսկ Y4- ը `ձախ շարժիչի բացասական տերմինալին: A1, A2, A3 և A4 համապատասխանաբար պետք է քարտեզագրվեն JB2, JB1, JB4 և JB3 համարներին: Կապի համարների համար դիմեք սխեմատիկին: Հաղորդալար JC2 դեպի աջ կոդավորիչ և JC1 դեպի ձախ կոդավորիչ: Համոզվեք, որ ձգվող ռեզիստորներն օգտագործվում են այս ազդանշանները 3.3V ռելսին կապելու համար: Վերջապես, օգտագործեք ethernet մալուխը ՝ ZYBO- ը երթուղիչին միացնելու համար:

Քայլ 3. Ստեղծեք արգելափակման դիագրամ Vivado- ում

Ստեղծեք արգելափակման դիագրամ Vivado- ում
Ստեղծեք արգելափակման դիագրամ Vivado- ում

Ստեղծեք նոր RTL նախագիծ Vivado- ում: Համոզվեք, որ այս պահին որևէ աղբյուր չեք նշում: Որոնեք «xc7z010clg400-1» և սեղմեք ավարտին: Ներբեռնեք encoder_driver.sv և ultrasonic_driver.sv: Տեղադրեք դրանք իրենց սեփական թղթապանակներում: Բացեք «IP Packager» - ը «Գործիքներ» բաժնում և ընտրեք փաթեթավորել նշված գրացուցակը: Տեղադրեք ծածկագրիչի վարորդը պարունակող թղթապանակի ուղին և կտտացրեք «Հաջորդ»: Կտտացրեք «փաթեթ IP» և կրկնեք ուլտրաձայնային տվիչի վարորդի գործընթացները: Դրանից հետո, կարգավորումների ընտրացանկում անցեք պահեստի կառավարիչ `IP ենթաբաժնի ներքո: Ավելացրեք վարորդի թղթապանակների ուղիները և կտտացրեք կիրառել ՝ դրանք IP գրադարանում ներառելու համար:

Ստեղծեք նոր բլոկ -դիագրամ և ավելացրեք «ZYNQ7 մշակման համակարգ»: Կրկնակի սեղմեք արգելափակման վրա և ներմուծեք տրամադրված ZYBO_zynq_def.xml ֆայլը: «MIO Configuration» բաժնում միացրեք Timer 0 և GPIO MIO: սեղմեք «OK» ՝ կազմաձևը պահպանելու համար: Ավելացրեք 3 «AXI GPIO» բլոկ և 4 «AXI ժմչփ» բլոկ: Գործարկեք արգելափակման ավտոմատացումը, որին հաջորդում է կապի ավտոմատացումը S_AXI- ի համար: Կրկնակի սեղմեք GPIO բլոկների վրա `դրանք կազմաձևելու համար: Մեկ բլոկը պետք է լինի երկակի ալիք `4-բիթանոց մուտքով և 4-բիթանոց ելքով: Այս կապերը դարձրեք արտաքին և նշեք մուտքի համար SW, իսկ ելքի համար `LED: Երկրորդ բլոկը նույնպես պետք է լինի երկակի ալիքով ՝ 2 32-բիթանոց մուտքերով: GPIO- ի վերջին բլոկը կլինի 32 բիթանոց մեկ մուտք: Յուրաքանչյուր ժամաչափի բլոկից թողեք pwm0 ելքը արտաքին: Պիտակեք դրանք PWM0, PWM1, PWM2 և PWM3:

Ավելացրեք ծածկագրիչի վարորդը բլոկ -դիագրամում և միացրեք CLK- ը FCLK_CLK0- ին: Միացրեք OD0- ը և OD1- ը երկրորդ GPIO բլոկի մուտքային ալիքներին: ENC- ն դարձնել արտաքին և ENC_0- ը վերանվանել ENC: Ավելացրեք ուլտրաձայնային տվիչների բլոկ և միացրեք CLK- ը FCLK_CLK0- ին: TRIG- ը և ECHO- ն դարձնել արտաքին և վերանվանել TRIG_0- ը ՝ TRIG, իսկ ECHO_0- ը ՝ ECHO: Միացրեք ՌԴ -ն երրորդ GPIO բլոկին: Անդրադառնալու համար տրամադրեք տրամադրված բլոկ -դիագրամը:

Աջ սեղմեք Աղբյուրների պատուհանում գտնվող ձեր բլոկ -դիագրամ ֆայլին և ստեղծեք HDL ծածկոց: Համոզվեք, որ թույլատրեք օգտվողի խմբագրումները: Ավելացրեք տրամադրված ZYBO_Master.xdc ֆայլը որպես սահմանափակում: Կտտացրեք «Ստեղծեք Bitstream» և սուրճի ընդմիջում կատարեք:

Քայլ 4: Կարգավորեք ծրագրակազմի զարգացման միջավայրը

Գնացեք «Ֆայլ» բաժնում ՝ սարքավորումները Vivado SDK- ին արտահանելու համար: Համոզվեք, որ ներառում է bitstream- ը: Ներմուծեք RTOSDemo նախագիծը «CORTEX_A9_Zynq_ZC702» ներսում: Այն տեղակայված կլինի FreeRTOS տեղադրման գրացուցակում: Ստեղծեք խորհրդի նոր փաթեթ, ընտրեք lwip202 գրադարանը: RTOSDemo նախագծում հղված BSP- ը փոխեք ձեր ստեղծած BSP- ի*:

*Այս Instructable- ը գրելու պահին, FreeRTOS- ը, կարծես, սխալ ունի `ճիշտ BSP- ին հղում անելով: Դա շտկելու համար ստեղծեք նոր BSP նույն պարամետրերով, ինչ առաջինը: Փոխեք հղված BSP- ը նորի, այնուհետև փոխեք այն հինի, երբ այն չի կառուցվում: FreeRTOS- ը այժմ պետք է կազմի առանց սխալների: Ազատորեն ջնջեք չօգտագործված BSP- ն:

Քայլ 5. Փոփոխեք ցուցադրական ծրագիրը

RTOSDemo- ի «src» գրացուցակի տակ ստեղծեք նոր թղթապանակ «վարորդներ» անունով: Պատճենեք տրամադրված gpio.h. gpio.c, pwm.h, pwm.c, odometer.h, odometer.c, rangefinder.c, rangefinder.h, motor.h և motor.c ֆայլերը «վարորդների» գրացուցակում:

Բացեք main.c- ը և սահմանեք mainSELECTED_APPLICATION- ը 2. Փոխարինեք main_lwIP.c- ը «lwIP_Demo» բաժնում ՝ թարմացված տարբերակով: BasicSocketCommandServer.c «lwIP_Demo/apps/BasicSocketCommandServer» բաժնում նույնպես պետք է թարմացնել նոր տարբերակով: Վերջապես, անցեք «FreeRTOSv10.1.1/FreeRTOS-Plus/Դեմո/Ընդհանուր/FreeRTOS_Plus_CLI_Demos» և փոխարինեք Sample-CLI-commands.c- ը տրամադրված տարբերակով: Կառուցեք նախագիծը և ապահովեք, որ ամեն ինչ հաջողությամբ կազմվի:

Քայլ 6: Flash որոնվածը QSPI- ին

Flash որոնվածը QSPI- ին
Flash որոնվածը QSPI- ին
Flash որոնվածը QSPI- ին
Flash որոնվածը QSPI- ին
Flash որոնվածը QSPI- ին
Flash որոնվածը QSPI- ին

Ստեղծեք «Applicationրագրի նախագիծ» ՝ «FSBL» անունով ՝ օգտագործելով «Zynq FSBL» ձևանմուշը: FSBL նախագիծը կազմելուց հետո ստեղծեք RTOSDemo ծրագրի բեռնման պատկերը: Համոզվեք, որ «FSBL/Debug/FSBL.elf» - ը ընտրված է որպես bootloader «Boot image partitions» բաժնում: Ձեռքով ավելացրեք այս ֆայլի ուղին, եթե այն նշված չէ:

JP5 jumper- ը ZYBO- ի վրա տեղափոխեք «JTAG»: Օգտագործեք USB Micro-B մալուխ `ձեր համակարգիչը ZYBO- ին միացնելու համար: Միացրեք մարտկոցը և միացրեք ZYBO- ն: Գործարկեք Adept- ը `համոզվելու համար, որ ZYBO- ն ճիշտ է ճանաչված համակարգչի կողմից: Vivado SDK- ում կտտացրեք «Flashրագրի Flash» և տրամադրեք RTOSDemo- ի BOOT.bin ֆայլի և FSBL- ում FSBL.elf ֆայլի ուղիները: Համոզվեք, որ ընտրեք «Ստուգեք բռնկումից հետո», նախքան «րագիր» կոճակին հարվածելը: Դիտեք վահանակը ՝ ապահովելու համար, որ փայլատակումների աշխատանքը հաջողությամբ ավարտված լինի: Դրանից հետո անջատեք ZYBO- ն և անջատեք USB մալուխը: JP5 jumper- ը տեղափոխեք «QSPI»:

Քայլ 7: Կարգավորեք անլար մուտքի կետը

Մարտկոցը դեռ միացված վիճակում միացեք երթուղիչի Wi-Fi ցանցին: Լռելյայն SSID- ն ու գաղտնաբառը պետք է լինեն երթուղղիչի ներքևում: Դրանից հետո անցեք https://tplinkwifi.net և մուտք գործեք ՝ օգտվողի անվան և գաղտնաբառի համար օգտագործելով «admin»: Գործարկեք արագ տեղադրման հրաշագործը ՝ երթուղիչը մուտքի կետի ռեժիմում կարգավորելու համար ՝ DHCP- ն միացված: Համոզվեք, որ թարմացնեք նաև սարքի կանխադրված օգտվողի անունը և գաղտնաբառը: Ավարտելուց հետո երթուղիչը պետք է ինքնաբերաբար վերագործարկվի մուտքի կետի ռեժիմի:

Միացրեք ZYBO- ն և միացեք երթուղիչին ՝ ձեր կողմից նշանակված SSID- ի միջոցով: Ամենայն հավանականությամբ, երթուղիչը կգա կամ 192.168.0.100 IP հասցեով կամ 192.160.0.101 IP հասցեով: ZYBO- ին կտրամադրվի այն հասցեն, որը երթուղիչը չունի: Երթուղղիչի IP հասցեն արագ որոշելու համար կարող եք «ipconfig» - ը գործարկել windows- ի հրամանի տողից կամ «ifconfig» ՝ Linux- ի կամ MacOS- ի տերմինալից: Եթե դուք դեռ միացված եք երթուղիչին, ապա ձեր անլար ինտերֆեյսի կողքին կտեսնեք դրա IP հասցեն: Օգտագործեք այս տեղեկատվությունը `ZYBO- ի IP հասցեն որոշելու համար: ZYBO- ի IP հասցեն հաստատելու համար կարող եք կամ պինգ անել հրամանի տողից կամ դրան միանալ telnet- ի միջոցով:

Քայլ 8: Գործարկեք Java ծրագիրը

Գործարկել Java ծրագիրը
Գործարկել Java ծրագիրը

Ներբեռնեք RobotClient.java- ն և կազմեք ֆայլը ՝ օգտագործելով հրամանի տողից «javac RobotClient.java» հրահանգը: Գործարկեք «java RobotClient» հրամանը, որտեղ «ip_address» - ը ZYBO- ի IP հասցեն է: Հսկիչ GUI- ը կհայտնվի, եթե հաջողակ կապ հաստատվի համակարգչի և ZYBO- ի միջև: Պատուհանը կենտրոնացնելուց հետո ռոբոտը պետք է կառավարելի լինի `օգտագործելով ստեղնաշարի սլաքների ստեղները: Սեղմեք փախուստի կոճակը ՝ նիստն ավարտելու և ռոբոտից անջատվելու համար:

GUI- ն կնշի սեղմված ստեղները և ցույց կտա շարժիչի ելքը վերևի աջ մասում: Ձախ կողմում գտնվող հեռաչափը լրացնում է ձողը յուրաքանչյուր 2 մետրից մինչև առավելագույնը 10 մետր:

Քայլ 9: Կալիբրացնել հեռահար որոնիչ

ZYBO- ի վրա գտնվող անջատիչները կարող են օգտագործվել ինքնաթիռի հեռաչափաչափը կազմաձևելու համար: Բացահայտման նվազագույն հեռավորությունը d տրվում է որպես անջատիչի մուտքի գործառույթ i:

d = 50i + 250

Ամբողջական քայլերով մուտքագրումը կարող է տատանվել 0 -ից 15 -ի միջև: Սա նշանակում է 0.25 մետրից մինչև 1 մետր հեռավորության տիրույթ: Նվազագույն հեռավորության վրա առաջին LED- ը կսկսի թարթել: LED- ների քանակը, որոնք ակտիվ են, համամասնական է օբյեկտի մոտիկությանը:

Քայլ 10: Մատչելիություն

Այս ռոբոտը շատ հեշտ հասանելի է: Իր վերահսկողության պարզության շնորհիվ այն կարող է ամբողջությամբ վերահսկվել ընդամենը մեկ մատով: Մատչելիությունը բարելավելու համար լրացուցիչ մուտքային սարքերի աջակցությունը կարող է ավելացվել: Սա կարող է թույլ տալ հաշմանդամներին ռոբոտին վերահսկել իրենց մարմնի այլ մասով:

Խորհուրդ ենք տալիս: