Բովանդակություն:
- Քայլ 1: Հավաքեք ռոբոտի շասսի
- Քայլ 2: Լարային էլեկտրոնիկա
- Քայլ 3. Ստեղծեք արգելափակման դիագրամ Vivado- ում
- Քայլ 4: Կարգավորեք ծրագրակազմի զարգացման միջավայրը
- Քայլ 5. Փոփոխեք ցուցադրական ծրագիրը
- Քայլ 6: Flash որոնվածը QSPI- ին
- Քայլ 7: Կարգավորեք անլար մուտքի կետը
- Քայլ 8: Գործարկեք Java ծրագիրը
- Քայլ 9: Կալիբրացնել հեռահար որոնիչ
- Քայլ 10: Մատչելիություն
Video: WiBot: 10 քայլ (նկարներով)
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:49
Այս հրահանգը մանրամասնում է 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- ում
Ստեղծեք նոր 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- ին
Ստեղծեք «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 ծրագիրը
Ներբեռնեք 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: Մատչելիություն
Այս ռոբոտը շատ հեշտ հասանելի է: Իր վերահսկողության պարզության շնորհիվ այն կարող է ամբողջությամբ վերահսկվել ընդամենը մեկ մատով: Մատչելիությունը բարելավելու համար լրացուցիչ մուտքային սարքերի աջակցությունը կարող է ավելացվել: Սա կարող է թույլ տալ հաշմանդամներին ռոբոտին վերահսկել իրենց մարմնի այլ մասով:
Խորհուրդ ենք տալիս:
Ինչպես. Raspberry PI 4 Headless (VNC) տեղադրելը Rpi- պատկերիչով և նկարներով. 7 քայլ (նկարներով)
Ինչպես. Raspberry PI 4 Headless (VNC) տեղադրելը Rpi-imager- ով և նկարներով. Ես պլանավորում եմ օգտագործել այս Rapsberry PI- ն իմ բլոգում զվարճալի նախագծերի փունջում: Ազատորեն ստուգեք այն: Ես ուզում էի նորից օգտագործել իմ Raspberry PI- ն, բայց իմ նոր վայրում Ստեղնաշար կամ մկնիկ չկար: Որոշ ժամանակ անց ես ստեղծեցի ազնվամորի
Atari Punk Console With Baby 8 քայլ հաջորդականիչ. 7 քայլ (նկարներով)
Atari Punk Console With Baby 8 Step Sequencer: Այս միջանկյալ կառուցվածքը հանդիսանում է Atari Punk Console- ը և Baby 8 Step Sequencer- ը `բոլորը մեկում: Դուք կարող եք տրորել Bantam Tools Desktop PCB ֆրեզերային մեքենայի վրա: Այն բաղկացած է երկու տպատախտակից ՝ մեկը օգտագործողի միջերեսի (UI) տախտակ է, իսկ մյուսը ՝ կոմունալ ծառայությունների
Ձայնային թռիչք Arduino Uno- ի հետ Քայլ առ քայլ (8 քայլ) `8 քայլ
Ձայնային թռիչք Arduino Uno- ի հետ Քայլ առ քայլ (8 քայլ). Ուլտրաձայնային ձայնային փոխարկիչներ L298N Dc կանացի ադապտեր էներգիայի մատակարարում արական dc pin Arduino UNOBreadboard և անալոգային նավահանգիստներ ՝ կոդը փոխարկելու համար (C ++)
Ինչպես ապամոնտաժել համակարգիչը հեշտ քայլերով և նկարներով. 13 քայլ (նկարներով)
Ինչպես ապամոնտաժել համակարգիչը հեշտ քայլերով և նկարներով. Սա հրահանգ է, թե ինչպես ապամոնտաժել համակարգիչը: Հիմնական բաղադրիչների մեծ մասը մոդուլային են և հեշտությամբ հանվում են: Այնուամենայնիվ, կարևոր է, որ դուք կազմակերպված լինեք դրա վերաբերյալ: Սա կօգնի ձեզ զերծ պահել մասերի կորստից, ինչպես նաև նորից հավաքելիս
Ciclop 3D Scanner My Way Քայլ առ քայլ ՝ 16 քայլ (նկարներով)
Ciclop 3D Scanner My Way Քայլ առ քայլ. Ողջույն, ես գիտակցելու եմ հանրահայտ Ciclop 3D սկաները: Բոլոր այն քայլերը, որոնք լավ բացատրված են սկզբնական նախագծում, ներկա չեն: Ես որոշ շտկումներ կատարեցի ՝ գործընթացը պարզեցնելու համար, նախ Ես տպում եմ հիմքը, իսկ հետո վերականգնում եմ PCB- ն, բայց շարունակում եմ