Բովանդակություն:
Video: Ինքնուսուցման քաոսային ռոբոտ. 3 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:51
Դուք հետաքրքրվա՞ծ եք մեքենայական ուսուցմամբ, AI և ռոբոտներով: Պետք չէ ինչ -որ շքեղ համալսարանում աշխատել: Սա իմ քաոսային ռոբոտի նկարագրությունն է: Դա շատ պարզ ռոբոտ է ՝ ցույց տալու համար, թե ինչպես օգտագործել ինքնուսուցման կոդը և ինչպես այն կիրառել arduino հարթակում, այս դեպքում ՝ Arduino due- ի միջոցով: Դա շատ էժան հարթակ է:
Կոդը զարգացնում է ռոբոտը, որպեսզի ռոբոտը սովորի սողալ: Այն հետադարձ կապ է ստանում մկնիկից: Կոդը «գենետիկ» է: Սա նշանակում է, որ մի շարք անհատներ փորձարկվում են, իսկ լավագույնները պահվում են և երեխաներ կունենան: Սա նշանակում է, որ ծածկագիրը զարգանում է էվոլյուցիոն ճանապարհով:
Քայլ 1. Սարքավորումներ AKA ռոբոտը
Քեզ պետք է:
- 1 Arduino Due
- 8 միկրոսերվոս
- 1 ձիաուժ/2 մուկ
- 1 մակարդակի փոփոխիչ
- սենսորային վահանի կամ դրա նման այլ տարբերակ, ես հոգնել էի սենսորային վահանից և եռակցել իմը:
-լարերը
-արտաքին հոսանքի մատակարարում 5 Վ սերվերի համար
- որոշ մետաղի ջարդոն, մի քանի սոսինձ և մի քանի պողպատե թել: Եվ ժապավեն!
Այսպիսով, Due- ն դրեք հատակին: Սերվոները դրեք օղակի շուրջը: Դրեք դրանք մետաղի ջարդոնով, սոսինձով և թելով: Սա քաոսի մասն է: Քանի որ այն քաոսային է իր ձևավորման մեջ, անկանխատեսելի է որոշել, թե ինչպես շարժվել, որպեսզի այն սողա: Ահա թե ինչու է ինքնուսուցման ծածկագիրը ճանապարհը:
Խորհուրդներ. Օգտագործեք բավականին ծանր մետաղական մասեր, դա հեշտացնում է ռոբոտի տեղաշարժը:
Սերվոները միացրեք պատշաճին, իմ դեպքում դրանք միացված են D39, 41, 43, 45, 47, 49, 51, 53:
Սպասարկիչները միացրեք արտաքին 5 Վ էլեկտրամատակարարմանը: Դրա համար կառուցեք ինչ -որ վահան կամ օգտագործեք սենսորային վահան կամ նմանատիպ: ՄԻ՛ մատակարարեք սերվերին 5 Վ -ի վճարից, դա բավարար չէ, Պատճառը այրվելու է: Ես օգտագործեցի փոքր նախատիպի տախտակ ՝ 5 Վ -ը բոլոր սերվոներին բաժանելու համար: Այս տախտակը ունի նաև մակարդակի փոփոխիչ PS/2 մկնիկի ժամացույցի և տվյալների գծերի համար: Տախտակը մկնիկին սնուցում է նաև 5 Վ լարման միջոցով: Հիշեք, որ արտաքին հոսանքից միացրեք գետնին Arduino- ին: սխեմաները ցույց են տալիս, թե ինչպես միացնել այդ ամենը:
PS/2 -ը միացրեք հոսանքին (5V) և գետնին: PS/2- ի ժամացույցը և տվյալների գիծը միացրեք փոխանցման մակարդակին `մակարդակի փոխարկիչի միջոցով: (վճարման ժամկետը ՝ 3.3 Վ, PS/2 -ը ՝ 5 Վ): Միացրեք ժամացույցը D12- ին և տվյալները D13- ին:
PS/2 արձանագրության մանրամասների համար սա շատ լավ ուսանելի է.
www.instructables.com/id/Optical-Mouse-Od…
PS/2 գրադարանը jazzycamel- ով, որը ես օգտագործել եմ ՝
Քայլ 2: Կոդ
Սկզբում թույլ տվեք ասել. Ես ծրագրավորող չեմ: Որոշ մասեր շատ ընդարձակ են, հմուտ ծրագրավորողը, իհարկե, կարող է կրճատել այն և այլն և այլն:
Կոդն ինքնուսուցում է, և սա նախագծի առանցքն է: Սա դրա զվարճալի մասն է: Դա նշանակում է, որ ռոբոտը զարգանում է և ավելի ու ավելի լավանում, այս դեպքում այն ավելի լավ է դառնում սողալով: Այս ամենի զարմանալին այն է, որ ռոբոտը կզարգանա այնպես, ինչպես երբևէ սնուցում եք այն: Այս դեպքում այն քաշում է PS/2 մկնիկը և որքան երկար է մկնիկը քաշվում, այնքան ավելի բարձր միավորներ է ստանում:
Սա նաև նշանակում է, որ դուք կարող եք օգտագործել այս ծածկագիրը ՝ ձեր ռոբոտին վարժեցնելու համար այլ բան անել, քանի դեռ այն չափված է և հետ է տրվում ռոբոտին:
Ինչպես տեսնում եք պատկերներում, մկնիկը քաշվում է բարակ լարի վրա: Սկզբում այն քաշվեց մկնիկի մալուխի մեջ: Այնուամենայնիվ, մալուխը մի տեսակ թունդ է, ուստի ռոբոտը սովորեց թափահարել մկնիկը ՝ այն քարշ տալու փոխարեն: Թափահարումը բարձր միավորներ բերեց…
Կոդն օգտագործում է 50 անհատականություն: Սրա միջուկը 50x50 բայթ զանգված է:
Անհատը բայթերի զանգված է: Երբ անհատը օգտագործվում է ռոբոտը գործարկելու համար, այն ուղարկվում է «tolken» կոչվող կոդի գործառույթին:
Վազքի սկզբում կա 8 փոփոխական m1, m2, m3, m4, m5, m6, m7 և m8 (մեկը յուրաքանչյուր սերվոյի համար): Այս ռոբոտում նրանք բոլորն ունեն մշտական մեկնարկային արժեքներ: «Tolken» - ում mś- ն փոխակերպվում է գործի/swich հանգույցի ՝ կախված անհատի արժեքներից: օրինակ «1» արժեքը կատարում է հետևյալը. m1 = m1 + m2:
Եթե անհատը ՝ 1, 2, 3, 0, 0, 0, 0….. ապա mś- ն կփոխակերպվի հետևյալ կերպ.
մ 1 = մ 1 + մ 2;
մ 1 = մ 1 + մ 3;
մ 1 = մ 1 + մ 4;
Tolken- ը 256 տարբեր մաթեմատիկական գործողությունների ցանկ է, ուստի առանձին զանգվածների յուրաքանչյուր հնարավոր արժեքը ներկայացնում է m արժեքների մաթեմատիկական փոփոխություն:
Հաշվարկի գործընթացը կատարվում է 4 անգամ ՝ յուրաքանչյուր շրջագծի միջև ընթերցմամբ, յուրաքանչյուր «մ» -ի համար ստեղծելով չորս տարբեր շարժիչ-կոդեր: Մոտոցիկլերն այն արժեքներն են, որոնք հետագայում ուղարկվում են սպասարկողներին:
Everyարգացման յուրաքանչյուր քայլում 4 անհատ մրցում են սողացող: Երկու լավագույն անհատները կլինեն երկու երեխայի ծնողներ, երեխաները կփոխարինեն երկու վատագույն անհատներին: Երբ երեխաները պատրաստվում են, մի ծնողից «գենետիկական կոդի» միացումը փոխանակվում է մյուս ծնողի մի կտորի հետ, ինչը ստեղծում է երկու նոր անհատ:
Եթե ընդհանրապես որևէ անհատ հանդես չի գալիս, ապա անհատների մուտացիա տեղի կունենա ՝ նորերը գեներացնելու համար:
Դուք կարող եք գտնել կոդը GitHub- ում ՝
Քայլ 3: Ինչպե՞ս վարժեցնել այն:
Սա բարդ մասն է: Properlyիշտ մարզվելու համար հարկավոր է այն «վերագործարկել» ամեն վազքից հետո: Սա նշանակում է, որ ամեն անգամ այն պետք է դնես նույն դիրքում:
Ես մի քանի ստուգման կետ եմ տեղադրել ծածկագրի ներսում `համոզվելու համար, որ ռոբոտը գտնվում է իր սկզբնական դիրքում:
Այսպիսով, հավասարեցրեք ռոբոտը և թող աշխատի:
Այն ստուգում է 4 անհատների, այնուհետև ընտրում է լավագույն 2 -ին ՝ ծնողներ լինելու համար: Ամենավատը նորածիններով փոխարինելուց հետո այն տպում է անհատների կատարողականի վերաբերյալ որոշ տվյալներ: Այն նաև տպում է 50x50 զանգվածը: Խելամիտ է սա պատճենել Excel թերթիկի կամ նմանատիպի մեջ: (կամ մշակման ընթացքում գրեք անհրաժեշտության ծածկագիր) Եթե Dueամկետը վերակայվի (դա տեղի է ունենում տարբեր պատճառներով), ապա դուք չեք կորցնի ձեր ուսուցման աշխատանքը: Դուք կարող եք պատճենել/տեղադրեք զանգվածը ծածկագրի մեջ և շարունակել մարզվելը, եթե մնացել եք:
Իմ ռոբոտը սովորեց սողալ մի քանի ժամից: Ներբեռնեք տեսանյութը ՝ այն սողալու համար: Այն չգնաց այն ուղղությամբ, ինչ ես կարծում էի:
Փորձեք նաև տարբեր հարկեր: Իմ ռոբոտը լավագույնս ցուցադրեց նեյլոնե գորգի վրա:
Հնարավոր բարելավումներ.
1. Ավելի լավ կլիներ ունենալ առանձին նանո ՝ PS/2 մկնիկը կարդալու համար, իսկ սերիայի միջոցով տեղափոխված հեռավորությունը նանոյին ուղարկել: Իմ PS/2 մկնիկի ընթերցումը մի փոքր ցնցված է: Սա է պատճառը, որ մկնիկը կարդում/մաքրում է ծածկագրի հատվածները:
2. ինչ -որ փորձարկման սարք, որը ռոբոտին հետ էր քաշում իր սկզբնական դիրքը, կարագացներ ուսուցումը:
3. Կարծում եմ, որ իմաստուն է այն վարժեցնել մի փոքր ավելի դանդաղ, քան ես: Դանդաղ ուսուցումը վստահեցնում է, որ այն վերապատրաստվում է «ճիշտ ուղղությամբ»: Մի քանի փորձարկումների միջին կատարումը կարող էր հնարավոր լինել:
Խորհուրդ ենք տալիս:
Արդուինո - Լաբիրինթոս լուծող ռոբոտ (MicroMouse) Wall հետևող ռոբոտ. 6 քայլ (նկարներով)
Արդուինո | Maze Solving Robot (MicroMouse) Wall After Robot: Բարի գալուստ, ես Իսահակն եմ, և սա իմ առաջին ռոբոտն է " Striker v1.0 ". Այս ռոբոտը նախատեսված էր պարզ լաբիրինթոս լուծելու համար: Մրցույթում մենք ունեինք երկու լաբիրինթոս և ռոբոտը կարողացավ դրանք բացահայտել: Լաբիրինթոսում ցանկացած այլ փոփոխություն կարող է պահանջել փոփոխություն
Ինքնուսուցման Maze Crab Robot PROTOTYPE 1 STATUS INCOLETE: 11 Steps
Ինքնուսուցման Maze Crab Robot PROTOTYPE 1 STATUS INCOLETE: ՀԱISՈ !!Ո !!ԹՅՈ !!Ն !! Բարև, ներողություն եմ խնդրում աղքատ նկարների համար, ես ավելի շատ ցուցումներ և գծապատկերներ կավելացնեմ հետագայում (և ավելի կոնկրետ մանրամասներ: Ես չեմ փաստաթղթավորել գործընթացը (փոխարենը ես պարզապես պատրաստել եմ time lapse տեսանյութ): Նաև այս ուսանելիը թերի է, ինչպես ես արեցի
RC վերահսկվող ռոբոտ XLR8- ում: Կրթական ռոբոտ ՝ 5 քայլ
RC վերահսկվող ռոբոտ XLR8- ում: Կրթական ռոբոտ. Բարև, այս հոդվածում ձեզ ցույց կտա, թե ինչպես կառուցել հիմնական ռոբոտ: «Ռոբոտ» բառը բառացիորեն նշանակում է «ստրուկ»: կամ «աշխատող»: Արհեստական բանականության ոլորտում առաջընթացների շնորհիվ ռոբոտներն այլևս պարզապես Իսակ Ասիմովի գիտաֆանտաստիկայի մի մասը չեն
Հավասարակշռող ռոբոտ / 3 անիվի ռոբոտ / STEM ռոբոտ ՝ 8 քայլ
Հավասարակշռող ռոբոտ / 3 անիվի ռոբոտ / STEM ռոբոտ. Մենք կառուցել ենք համակցված հավասարակշռող և եռանիվ ռոբոտ `կրթական օգտագործման համար դպրոցներում և դպրոցից հետո կրթական ծրագրերում: Ռոբոտը հիմնված է Arduino Uno- ի, սովորական վահանի վրա (շինարարության բոլոր մանրամասները տրամադրված են), Li Ion մարտկոցի տուփով (բոլորը կառուցված են
[Arduino Robot] Ինչպես պատրաստել շարժիչով գրավող ռոբոտ - Մեծ մատներ ռոբոտ - Սերվո շարժիչ - Աղբյուրի կոդ ՝ 26 քայլ (նկարներով)
[Arduino Robot] Ինչպես պատրաստել շարժիչով գրավող ռոբոտ | Մեծ մատներ ռոբոտ | Սերվո շարժիչ | Աղբյուրի կոդ ՝ Thumbs Robot: Օգտագործվել է MG90S servo շարժիչի պոտենցիոմետր: Դա շատ զվարճալի և հեշտ է: Կոդը շատ պարզ է: Այն ընդամենը մոտ 30 տող է: Կարծես շարժման գրավում լինի: Խնդրում ենք թողնել որևէ հարց կամ կարծիք: [Հրահանգ] Աղբյուրի կոդը ՝ https: //github.c