Բովանդակություն:
- Քայլ 1: Ուսումնական ձեռնարկի գտնվելու վայրը փոխված է
- Քայլ 2. Կառուցեք SnappyXO դիֆերենցիալ շարժիչ ռոբոտը
- Քայլ 3: Միացրեք էլեկտրոնիկան
- Քայլ 4: Տեղադրեք PreciseMovement Arduino գրադարանը
- Քայլ 5: Կոդ
- Քայլ 6: Ինչպես է այն աշխատում
Video: SnappyXO ճշգրիտ շարժիչ ռոբոտ ՝ 6 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:49
Ստիպեք ձեր Arduino ռոբոտին ուղիղ գնալ որոշակի հեռավորության վրա կամ պտտվել որոշակի անկյան տակ ՝ օգտագործելով PreciseMovement Arduino գրադարանը:
Ռոբոտին անհրաժեշտ է պտտվող գնդակի պտուտակ կամ համարժեք ՝ պտտվելիս շփումը նվազագույնի հասցնելու համար:
www.pololu.com/product/954
Դուք կարող եք ռոբոտին ասել, որ առաջ գնա որոշակի հեռավորության վրա կամ պտտվի որոշակի անկյան տակ: Programրագիրը որոշում է իր դիրքը `օգտագործելով մահացած հաշիվ: Քանի որ դիրքի գնահատականները հիմնված են միայն անիվի արագության վրա, սայթաքումը զգալի սխալ կբերի: Ռոբոտի դիզայները պետք է զգույշ լինի, որպեսզի նվազագույնի հասցվի սայթաքման վտանգը:
Սա փորձարկվել է SnappyXO ռոբոտի հետ աշխատելու համար:
Քայլ 1: Ուսումնական ձեռնարկի գտնվելու վայրը փոխված է
Ձեռնարկը տեղափոխվել է ստորև բերված էջ: Այս ձեռնարկը այլևս չի պահպանվում:
sites.google.com/stonybrook.edu/premo
Քայլ 2. Կառուցեք SnappyXO դիֆերենցիալ շարժիչ ռոբոտը
PreciseMovement գրադարանը, որը մենք կօգտագործենք, համատեղելի է միայն դիֆերենցիալ շարժիչով ռոբոտների հետ: Կարող եք ընտրել օգտագործել 2 անիվ ունեցող ռոբոտներ:
Քայլ 3: Միացրեք էլեկտրոնիկան
Ստանդարտ SnappyXO օպտիկական կոդավորիչի համար
D0 (կոդավորիչի ելք) -> Arduino թվային փին
VCC -> Arduino 5V
GND -> GND
Շարժիչ և Arduino Power:
Շարժիչի էներգիայի աղբյուրը պետք է համարժեք լինի ձեր օգտագործած շարժիչներին: SnappyXO հավաքածուի համար շարժիչի հզորության համար օգտագործվում են 4AA մարտկոցներ և Arduino հզորության համար `9V մարտկոց: Համոզվեք, որ նրանք բոլորն ունեն ընդհանուր GND:
Քայլ 4: Տեղադրեք PreciseMovement Arduino գրադարանը
Բեռնել:
github.com/jaean123/PreciseMovement-library/releases
Ինչպես տեղադրել Arduino գրադարանը
wiki.seeedstudio.com/How_to_install_Arduino_Library/
Քայլ 5: Կոդ
Arduino կոդ:
create.arduino.cc/editor/hileloop/7a35299d-4e73-409d-9f39-2c517b3000d5/preview
Այս պարամետրերը պահանջում են ճշգրտում: Կոդի վրա առաջարկվող պիտակավորված այլ պարամետրերը կարող են ճշգրտվել `ավելի լավ կատարման համար:
- Ստուգեք և տեղադրեք շարժիչի կապում ARDUINO PINS- ի տակ:
-
Սահմանեք LENGTH և RADIUS:
- LENGTH- ը ձախ անիվից մինչև աջ անիվի հեռավորությունն է:
- RADIUS- ը անիվի շառավիղն է:
-
Սահմանեք PULSES_PER_REV, որը մեկ անիվի պտույտի համար կոդավորիչի ելքերի իմպուլսների թիվն է:
- Ուշադրություն դարձրեք, սա տարբերվում է մեկ շարժիչ լիսեռի պտույտի համար կոդավորիչի ելքերի իմպուլսների քանակից, եթե կոդավորիչները միացված չեն անիվի լիսեռից ուղղակիորեն կարդալու համար:
- PULSES_PER_REV = (իմպուլսներ շարժիչի լիսեռի մեկ պտույտի համար) x (փոխանցման հարաբերակցություն)
-
Սահմանեք STOP_LENGTH, եթե տեսնեք, որ ռոբոտը գերազանցում է առաջ շարժումից հետո:
Ռոբոտը կանգ կառնի, երբ գնահատված դիրքը գտնվում է թիրախից STOP_LENGTH հեռավորության վրա: Այսպիսով, STOP_LENGTH- ը ռոբոտի կանգառի համար պահանջվող մոտավոր հեռավորությունն է:
-
PID պարամետրեր
KP_FW. Սա առաջ շարժման համամասնական բաղադրիչն է: Բարձրացրեք սա մինչև ռոբոտը ուղիղ գնա: Եթե դուք չեք կարող դա կարգաբերել ՝ կարգաբերելով դա, ապա, ամենայն հավանականությամբ, ապարատային սարքավորումների մեղքն է: (օրինակ ՝ անիվների անհամապատասխանություն և այլն)
KP_TW: Սա շրջադարձային շարժման PID- ի համամասնական բաղադրիչն է: Ուղղակի սկսեք ցածր արժեքից և ավելացրեք դա մինչև շրջադարձի արագությունը կամ պտտվելիս ռոբոտի անկյունային արագությունը բավականաչափ արագ լինի, բայց չի առաջացնում գերազանցում: Դիտարկումներ կատարելու համար դուք կարող եք ռոբոտին փոխարինել 0 -ից 90 և հետ ՝ օղակի գործառույթում տեղադրելով հետևյալը
Տեղադրեք սա հանգույցում ՝ KP_FW- ն կարգավորելու համար
շարժիչ. առաջ (99999);
Տեղադրեք սա հանգույցում ՝ 0 -ից 90 -ը փոխարինելու համար ՝ KP_TW կարգավորելու համար
mover.twist (90); // Twist 90 CW
ուշացում (2000);
mover.twist (-90) // Twist 90 CCW
ուշացում (2000);
Նկատի ունեցեք, որ TARGET_TWIST_OMEGA- ում անկյունային արագությունն իրականում պտտելու համար KI_TW- ն նույնպես պետք է կարգավորվի, քանի որ համամասնական կարգավորիչը երբեք չի հաստատվի ճշգրիտ թիրախի վրա: Այնուամենայնիվ, անհրաժեշտ չէ շրջվել հենց այդ անկյունային արագությամբ: Անկյունային արագությունը պարզապես պետք է բավականաչափ դանդաղ լինի:
Քայլ 6: Ինչպես է այն աշխատում
Եթե ձեզ հետաքրքիր է, թե ինչպես է այն աշխատում, ապա կարդացեք:
Առաջ շարժումը պահվում է ուղիղ ՝ օգտագործելով մաքուր հետապնդման ալգորիթմը ՝ ուղիղ գծով: Ավելին ՝ մաքուր հետապնդման մասին ՝
Պտտվող PID կարգավորիչը փորձում է պտույտի անկյունային արագությունը պահել TARGET_TWIST_OMEGA- ում: Նկատի ունեցեք, որ այս անկյունային արագությունը ամբողջ ռոբոտի ոչ թե անիվների անկյունային արագությունն է: Օգտագործվում է միայն մեկ PID վերահսկիչ, իսկ ելքը `ձախ և աջ շարժիչների PWM գրելու արագությունն է: Մահացած հաշիվը կատարվում է անկյունը հաշվարկելու համար: Երբ անկյունը հասնում է սխալի շեմին, ռոբոտը կանգ է առնում:
Խորհուրդ ենք տալիս:
Arduino ճշգրիտ և ճշգրիտ վոլտաչափ (0-90V DC) ՝ 3 քայլ
Arduino ճշգրիտ և ճշգրիտ վոլտաչափ (0-90V DC). Այս ուսանելի ծրագրում ես կառուցել եմ վոլտմետր `չափելու բարձր լարման DC (0-90v) հարաբերական ճշգրտությամբ և ճշգրտությամբ` օգտագործելով Arduino Nano- ն: Իմ կողմից կատարված փորձարկման չափումները բավական ճշգրիտ էին, հիմնականում փաստացի լարման 0.3 վ -ի սահմաններում, որը չափվում էր
Շարժիչ շարժիչ ՝ աչքով հետևելով ՝ 8 քայլ
Շարժիչ շարժիչ ՝ աչքերով հետևելու համար. Ներկայումս աչքի հետևման տվիչները ավելի տարածված են տարբեր ոլորտներում, բայց առևտրային առումով դրանք առավել հայտնի են ինտերակտիվ խաղերով: Այս ձեռնարկը չի հավակնում սենսորների մշակմանը, քանի որ այն շատ բարդ է և ավելի ու ավելի տարածված օգտագործման պատճառով
«5 րոպե» առանց խոզանակի շարժիչ շարժիչ բզեզ քաշային մարտական ռոբոտների համար ՝ 6 քայլ
«5 րոպե» առանց խոզանակի շարժիչ շարժիչ ՝ բզեզ քաշով մարտական ռոբոտների համար. «5 րոպեանոց անխոզանակ փոխանցման շարժիչի» գաղափարը, կարծես, որոշ ժամանակ պտտվում էր առցանց ֆորումներում/Ֆեյսբուքի խմբերում ՝ որպես բզեզ քաշով բոտերում շարժիչ միջոց: Քանի որ առանց խոզանակի շարժիչները մեծ ուժ են հավաքում իրենց չափի/քաշի համար, սա գրավիչ է
Հավասարակշռող ռոբոտ / 3 անիվի ռոբոտ / STEM ռոբոտ ՝ 8 քայլ
Հավասարակշռող ռոբոտ / 3 անիվի ռոբոտ / STEM ռոբոտ. Մենք կառուցել ենք համակցված հավասարակշռող և եռանիվ ռոբոտ `կրթական օգտագործման համար դպրոցներում և դպրոցից հետո կրթական ծրագրերում: Ռոբոտը հիմնված է Arduino Uno- ի, սովորական վահանի վրա (շինարարության բոլոր մանրամասները տրամադրված են), Li Ion մարտկոցի տուփով (բոլորը կառուցված են
[Arduino Robot] Ինչպես պատրաստել շարժիչով գրավող ռոբոտ - Մեծ մատներ ռոբոտ - Սերվո շարժիչ - Աղբյուրի կոդ ՝ 26 քայլ (նկարներով)
[Arduino Robot] Ինչպես պատրաստել շարժիչով գրավող ռոբոտ | Մեծ մատներ ռոբոտ | Սերվո շարժիչ | Աղբյուրի կոդ ՝ Thumbs Robot: Օգտագործվել է MG90S servo շարժիչի պոտենցիոմետր: Դա շատ զվարճալի և հեշտ է: Կոդը շատ պարզ է: Այն ընդամենը մոտ 30 տող է: Կարծես շարժման գրավում լինի: Խնդրում ենք թողնել որևէ հարց կամ կարծիք: [Հրահանգ] Աղբյուրի կոդը ՝ https: //github.c