Ինչպես պատրաստել ռոբոտ տանը (նկարներով)

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

Ինչպես պատրաստել ռոբոտ տանը (նկարներով)
Ինչպես պատրաստել ռոբոտ տանը (նկարներով)

Video: Ինչպես պատրաստել ռոբոտ տանը (նկարներով)

Video: Ինչպես պատրաստել ռոբոտ տանը (նկարներով)
Video: "ՀԱՅԵՐԻ ՎԵՐՋԸ ՄՈՏ Է" 2023 ԹՎԱԿԱՆԻՆ ՎԱՆԳԱՅԻ ԳՈՒՇԱԿՈՒԹՅՈՒՆՆԵՐԸ !!!! 2024, Նոյեմբեր
Anonim

Անկանու՞մ եք սովորել, թե ինչպես պատրաստել ձեր սեփական ռոբոտը: Կան բազմաթիվ տարբեր տեսակի ռոբոտներ, որոնք կարող եք ինքներդ կառուցել: Մարդկանց մեծամասնությունը ցանկանում է տեսնել, որ ռոբոտը հեշտությամբ կատարում է աշխատանքը A կետից B: Ձեր սեփական ռոբոտը պատրաստելը հիանալի միջոց է էլեկտրոնիկա և համակարգչային ծրագրավորում սովորելու համար:

Քայլ

5 -րդ մաս 1 -ին. Ռոբոտի հավաքում

1123333 1
1123333 1

Քայլ 1. Հավաքեք ձեր բաղադրիչները:

Հիմնական ռոբոտը կառուցելու համար ձեզ հարկավոր են մի քանի պարզ բաղադրիչներ: Այս բաղադրիչների մեծ մասը կամ բոլորը կարող եք գտնել ձեր տեղական էլեկտրոնիկայի հոբբի խանութում կամ առցանց մանրածախ առևտրականներից: Որոշ հավաքածուներ ներառում են այս բոլոր բաղադրիչները: Այս ռոբոտը չի պահանջում զոդում.

  • Arduino Uno (կամ այլ միկրոկոնտրոլեր)
  • 2 սերվեր 360 աստիճան
  • 2 անիվ, որոնք համապատասխանում են սերվոյին
  • 1 անվճար անիվ
  • 1 փորձարկման տախտակ (տախտակ կամ նախագծային տախտակ), որը չի զոդվել (փնտրեք փորձարկման տախտակ, որը յուրաքանչյուր կողմում ունի երկու դրական և բացասական տող)
  • 1 հարևանության սենսոր (չորս փին միակցիչ մալուխով)
  • 1 կոճակի անջատիչ
  • 1 դիմադրություն 10kΩ
  • 1 USB A- ից B մալուխ
  • Կոտրվող վերնագրերի 1 հավաքածու
  • 1 6 x AA մարտկոցի կրիչ ՝ 9V DC հոսանքի վարդակից
  • 1 տուփ 22. jumper մալուխներ կամ մեկ մալուխ
  • Մեկուսացում առաջ և առաջ (կրկնակի ժապավեն) կամ սոսինձ ատրճանակ
1123333 2
1123333 2

Քայլ 2. Պտտեք մարտկոցի խցիկը այնպես, որ նրա հարթ հետևը ուղղված լինի դեպի վեր:

Դուք կկառուցեք ռոբոտի մարմինը ՝ մարտկոցի խցիկը հիմք ընդունելով:

1123333 3
1123333 3

Քայլ 3. Կազմակերպեք երկու սերվո, որոնք նայում են նույն ուղղությամբ, մարտկոցի ծոցի վերջում:

Այս վերջը այն վերջն է, որտեղ մալուխը դուրս է գալիս մարտկոցից: Սերվերը պետք է դիպչեն ներքևին, և յուրաքանչյուր սերվոյի պտտման մեխանիզմը պետք է ուղղված լինի մարտկոցի խցիկի կողքերից դեպի դուրս: Կարևոր է, որ այդ սերվոները ճիշտ դասավորվեն այնպես, որ անիվներն ուղիղ լինեն: Servo- ի մալուխները պետք է դուրս գան մարտկոցի խցիկի հետևի մասից:

1123333 4
1123333 4

Քայլ 4. Սոսնձեք սերվերը ձեր մեկուսացմամբ կամ սոսինձով:

Համոզվեք, որ servo- ն ամուր ամրացված է մարտկոցի խցիկին: Servo- ի հետևի մասը պետք է հավասարեցված լինի մարտկոցի խցիկի հետևի հետ:

Այժմ սերվոները պետք է զբաղեցնեն մարտկոցի խոռոչի հետևի տարածքի կեսը:

1123333 5
1123333 5

Քայլ 5. Կպչեք փորձարկման տախտակին `մարտկոցի խցիկի մնացած տարածքին ուղղահայաց:

Այս փորձարկման տախտակը փոքր -ինչ կախված կլինի մարտկոցի խցիկի առջևից և կտարածվի երկու կողմերում: Շարունակելուց առաջ համոզվեք, որ փորձարկման տախտակը ամուր է: «A» տողը պետք է ամենամոտ լինի սերվոյին:

1123333 6
1123333 6

Քայլ 6. Կցեք Arduino միկրոկառավարիչը սերվոյի վերևում:

Եթե դուք ճիշտ կցում եք սերվոյին, ապա պետք է երկու սերվոյի հարթ հատվածը դիպչի միմյանց: Կպչեք Arduino- ի տախտակին այս հարթ տեղում, որպեսզի USB և Arduino միակցիչները թեքվեն ներքև (փորձարկման տախտակից հեռու): Arduino- ի ճակատը համընկնելու է փորձնական տախտակի հետ:

1123333 7
1123333 7

Քայլ 7. Տեղադրեք անիվները սերվերի վրա:

Ամուր սեղմեք անիվները պտտվող սերվոյի մեխանիզմի վրա: Սա կարող է զգալի ուժ պահանջել, քանի որ անիվները նախատեսված են ունենալու անցքեր, որոնք ճշգրտորեն համապատասխանում են servo հուշիչի ձևին:

1123333 8
1123333 8

Քայլ 8. Տեղադրեք անվճար անիվը փորձարկման տախտակի ներքևում:

Եթե ռոբոտը գլխիվայր շրջեք, կտեսնեք մարտկոցի խցիկից կախված փոքրիկ փորձնական տախտակ: Կցեք անվճար անիվը այս կախովի հատվածին: Անհրաժեշտության դեպքում օգտագործեք սեպ: Անվճար անիվը ծառայում է որպես առջևի անիվ, որը թույլ է տալիս ռոբոտին հեշտությամբ շրջվել ցանկացած ուղղությամբ:

Եթե դուք ձեռք եք բերել հավաքածու, անվճար անիվը կարող է ունենալ որոշ սեպեր, որոնք կարող եք օգտագործել ՝ ապահովելու համար, որ անիվն ազատ է դիպչել գետնին:

Մաս 2 5 -ից. Ռոբոտի լարերի միացում

1123333 9
1123333 9

Քայլ 1. Կտրեք երկու 3-փին վերնագիր:

Դուք կօգտագործեք սա սերվոն փորձարկման տախտակին միացնելու համար: Գլխարկների միջով ներքև սեղմեք կապումներն այնպես, որ նրանք երկու կողմերից դուրս գան հավասար հեռավորության վրա:

1123333 10
1123333 10

Քայլ 2. Երկու վերնագրերը տեղադրեք փորձնական տախտակի վրա E տողի 1-3 և 6-8 շարասյուների մեջ:

Համոզվեք, որ դրանք ամուր կամ ամուր տեղադրված են:

1123333 11
1123333 11

Քայլ 3. Սերվո լարերը միացրեք վերնագրով, ձախ կողմում `սև մետաղալարով (1 և 6 կապում):

Սա միացնելու է servo- ն փորձարկման տախտակին: Համոզվեք, որ ձախ սերվոն միացված է ձախ վերնագրին, իսկ աջը `աջ վերնագրին:

1123333 12
1123333 12

Քայլ 4. Միացրեք կարմիր jumper մետաղալարը C2 և C7 կապումներից դեպի կարմիր երկաթուղու քորոց (դրական):

Համոզվեք, որ օգտագործում եք կարմիր ռելսերը փորձարկման տախտակի հետևի մասում (ավելի մոտ ռոբոտի մնացած մարմնին):

1123333 13
1123333 13

Քայլ 5. Միացրեք սև ցատկող մետաղալարը B1 և B6 կապումներից դեպի կապույտ երկաթգծի քորոց (գետնին):

Համոզվեք, որ օգտագործում եք կապույտ ռելսերը փորձարկման տախտակի հետևի մասում: Մի ամրացրեք մալուխը կարմիր երկաթուղային քորոցին:

1123333 14
1123333 14

Քայլ 6. Arduino- ի 12 -րդ և 13 -րդ կապում տեղադրված սպիտակ թռիչքային լարերը միացրեք A3 և A8- ին:

Սա թույլ կտա Arduino- ին կառավարել servo- ն և շրջել անիվը:

1123333 15
1123333 15

Քայլ 7. Կցեք սենսորը փորձարկման տախտակի առջևի մասում:

Սենսորը տեղադրված չէ փորձարկման տախտակի արտաքին հոսանքի գծի վրա, այլ գրված (J) առաջին երկու տողերի վրա: Համոզվեք, որ այն տեղադրեք հենց մեջտեղում ՝ յուրաքանչյուր կողմում հավասար թվով դատարկ կապում:

1123333 16
1123333 16

Քայլ 8. Միացրեք սև ցատկող մետաղալարը I14- ից պտուտակից դեպի սենսորի ձախ կողմում գտնվող առաջին կապույտ երկաթուղային քորոցը:

Սա կհանգեցնի սենսորը:

1123333 17
1123333 17

Քայլ 9. Միացրեք կարմիր ցատկիչի մետաղալարը I17 պինից դեպի սենսորի աջ կողմում գտնվող առաջին կարմիր երկաթուղային քորոցը:

Սա էներգիա կտրամադրի սենսորին:

1123333 18
1123333 18

Քայլ 10. Միացրեք սպիտակ ցատկերի լարերը I15- ից մինչև Arduino- ի 9 -րդ կապը, իսկ I16- ից մինչև 8 -ը:

Սա տեղեկատվություն կտրամադրի սենսորից մինչև միկրոկոնտրոլեր:

Մաս 3 -ից 5 -ում. Էլեկտրական մալուխի տեղադրում

1123333 19
1123333 19

Քայլ 1. Շրջեք ռոբոտը, որպեսզի տեսնեք մարտկոցի խցիկը ներսում:

Տեղադրեք մարտկոցի խցիկը այնպես, որ մալուխը դուրս գա ներքևի ձախ մասից:

1123333 20
1123333 20

Քայլ 2. Կարմիր մետաղալարը միացրեք ձախից ներքևի երկրորդ գարնան հետ:

Համոզվեք, որ մարտկոցի խցիկը ճիշտ է դասավորված կամ ուղղված է ճիշտ ուղղությանը:

1123333 21
1123333 21

Քայլ 3. Սև մետաղալարը միացրեք ներքևի աջ կողմում գտնվող վերջին գարնան հետ:

Այս երկու լարերը կօգնեն ապահովել Arduino- ի ճիշտ լարումը:

1123333 22
1123333 22

Քայլ 4. Կարմիր և սև լարերը միացրեք կարմիր և կապույտ կապումներին, որոնք գտնվում են փորձարկման տախտակի հետևի աջ կողմում:

Սև մետաղալարը պետք է անցնի կապույտ երկաթգծի 30 -րդ կապում:

1123333 23
1123333 23

Քայլ 5. Միացրեք սև մետաղալարը Arduino- ի GND կապից դեպի կապույտ երկաթուղու հետևի հատվածը:

Միացրեք մետաղալարը կապույտ երկաթուղու 28 -րդ կապին:

1123333 24
1123333 24

Քայլ 6. Միացրեք սև մետաղալարը կապույտ երկաթուղու հետևի մասից դեպի կապույտ երկաթուղու առջև 29 -րդ կապում երկու ռելսերի համար:

Մի միացրեք կարմիր երկաթուղին, քանի որ կարող եք վնասել Arduino- ն:

1123333 25
1123333 25

Քայլ 7. Միացրեք կարմիր մետաղալարը կարմիր երկաթգծի առջևից 30 -րդ կապում Arduino- ի 5V կապին:

Սա ուժ կտա Arduino- ին:

1123333 26
1123333 26

Քայլ 8. Տեղադրեք կոճակի անջատիչը 24-26 կապումների միջև ընկած տարածության մեջ:

Այս անջատիչը թույլ կտա անջատել ռոբոտը ՝ առանց հոսանքը անջատելու:

1123333 27
1123333 27

Քայլ 9. Միացրեք կարմիր մետաղալարը H24- ից կարմիր ռելսին ՝ սենսորի աջ կողմում գտնվող հաջորդ դատարկ կապում:

Սա ուժ կտա կոճակին:

1123333 28
1123333 28

Քայլ 10. Օգտագործեք դիմադրություն `H26 կապույտ երկաթուղուն միացնելու համար:

Միացրեք այն քորոցին անմիջապես այն սև մետաղալարի կողքին, որը դուք պարզապես միացրել եք նախորդ քայլերում:

1123333 29
1123333 29

Քայլ 11. Միացրեք սպիտակ մետաղալարը G26- ից Arduino- ի 2 -րդ կապին:

Սա թույլ կտա Arduino- ին հայտնաբերել սեղմման կոճակները:

5 -րդ մաս 4 -ից. Arduino ծրագրաշարի տեղադրում

1123333 30
1123333 30

Քայլ 1. Ներբեռնեք և հանեք Arduino IDE- ն:

Հենց այստեղ է մշակվում Arduino- ն և թույլ է տալիս ծրագրավորել հրահանգներ, որոնք այնուհետև կարող եք վերբեռնել ձեր Arduino միկրոկառավարիչում: Դուք կարող եք այն անվճար ներբեռնել arduino.cc/hy/main/software կայքից: Բեռնել ներբեռնված ֆայլը երկու անգամ սեղմելով ֆայլի վրա և այն պարունակող թղթապանակը տեղափոխելով հեշտ հասանելի վայր: Դուք իրականում չեք տեղադրի ծրագիրը, փոխարենը պարզապես գործարկեք այն թղթապանակից, որը արդյունահանվել է arduino.exe- ի կրկնակի սեղմումով:

1123333 31
1123333 31

Քայլ 2. Միացրեք մարտկոցի խցիկը Arduino- ին:

Տեղադրեք մարտկոցի հետևի վարդակը Arduino- ի միակցիչի մեջ `այն սնուցելու համար:

1123333 32
1123333 32

Քայլ 3. Տեղադրեք Arduino- ն ձեր համակարգչի միջոցով USB- ի միջոցով:

Հավանական է, որ Windows- ը չի ճանաչի սարքը:

1123333 33
1123333 33

Քայլ 4. Սեղմեք:

Win+R և մուտքագրեք devmgmt.msc.

Այս հրամանը կբացի Սարքի կառավարիչը:

1123333 34
1123333 34

Քայլ 5. Աջ սեղմեք Անհայտ սարքի վրա Այլ սարքերի ներքո և ընտրեք Թարմացնել վարորդի ծրագրակազմը:

Եթե չեք տեսնում այս տարբերակը, կտտացրեք Հատկություններ, ընտրեք Վարորդի ներդիրը, այնուհետև կտտացրեք Թարմացնել վարորդին:

1123333 35
1123333 35

Քայլ 6. Ընտրեք Browse my computer for driver software:

Սա թույլ կտա Ձեզ ընտրել ներկառուցված վարորդներ, որոնք ուղեկցվել են Arduino IDE- ով:

1123333 36
1123333 36

Քայլ 7. Կտտացրեք Փնտրել, ապա բացեք ավելի վաղ արդյունահանված թղթապանակը:

Դրա մեջ կգտնեք վարորդների թղթապանակը:

1123333 37
1123333 37

Քայլ 8. Ընտրեք վարորդների թղթապանակը և կտտացրեք OK:

Հաստատեք, որ ցանկանում եք շարունակել, եթե ձեզ զգուշացնեն անհայտ ծրագրակազմի մասին:

5 -րդ մաս 5 -ից. Ռոբոտների ծրագրավորում

1123333 38
1123333 38

Քայլ 1. Բացեք Arduino IDE- ն ՝ IDE թղթապանակում կրկնակի սեղմելով arduino.exe ֆայլին:

Ձեզ կդիմավորեն դատարկ նախագծով:

1123333 39
1123333 39

Քայլ 2. Տեղադրեք կամ տեղադրեք հետևյալ կոդը ՝ ձեր ռոբոտին առաջադեմ դարձնելու համար:

Ստորև բերված ծածկագիրը կպահպանի ձեր Arduino- ն:

#include // սա ծրագրին ավելացնում է «Servo» գրադարանը // հետևյալ հրամանը ստեղծում է երկու servo օբյեկտ Servo leftMotor; Servo rightMotor; void setup () {leftMotor.attach (12); // եթե դուք պատահաբար փոխեցիք ձեր սերվոյի համարի համարները, կարող եք թվերը փոխանակել այստեղ rightMotor.attach (13); } void loop () {leftMotor.write (180); // 360 աստիճանի պտույտով (շարունակական պտույտ) 180 թիվը հուշում է սերվոյին շարժվել «առաջ» ամբողջ արագությամբ: rightMotor.write (0); // եթե երկու արժեքներն էլ 180 են, ռոբոտը կշրջվի շրջանագծով, քանի որ servo- ն հակառակն է: «0» - ն ռոբոտին ասում է, որ ամբողջ արագությամբ «հետ» շարժվի: }

1123333 40
1123333 40

Քայլ 3. Ստեղծեք և վերբեռնեք ծրագիրը:

Կտտացրեք աջ սլաքի կոճակին վերին ձախ անկյունում `միացված Arduino- ում ծրագիր ստեղծելու և վերբեռնելու համար:

Հնարավոր է, որ դուք ցանկանաք ռոբոտին մակերեսից բարձրացնել, քանի որ ծրագիրը բեռնվելուց հետո ռոբոտը կշարունակի առաջ գնալ:

1123333 41
1123333 41

Քայլ 4. Ավելացրեք կանգառի անջատիչի գործառույթ (սպանել անջատիչ):

Ձեր ծածկագրի «void loop ()» բաժնում ավելացրեք հետևյալ ծածկագիրը ՝ «գրել ()» ֆունկցիայի գագաթին stop switch գործառույթ ավելացնելու համար:

if (digitalRead (2) == HIGH) // այս հրամանը գործարկվում է, երբ կոճակը սեղմվում է Arduino 2 կապում {while (1) {leftMotor.write (90); // «90» -ը սերվոյի համար չեզոք դիրքն է, որը սերվոյին ասում է դադարեցնել աջ շրջվելը Motor.write (90); }}

1123333 42
1123333 42

Քայլ 5. Վերբեռնեք և ստուգեք ձեր կոդը:

Արդեն ավելացված կանգառի անջատիչի ծածկագրով դուք կարող եք վերբեռնել ծածկագիրը և փորձարկել ռոբոտին: Ռոբոտը պետք է շարունակի առաջ, մինչև չսեղմեք անջատիչի անջատման կոճակը, որը կհանգեցնի ռոբոտի կանգառի: Ամբողջական ծածկագիրն այսպիսի տեսք կունենա.

#include // հետևյալ հրամանը ստեղծում է երկու Servo leftMotor servo օբյեկտ; Servo rightMotor; void setup () {leftMotor.attach (12); rightMotor.attach (13); } void loop () {if (digitalRead (2) == HIGH) {while (1) {leftMotor.write (90); rightMotor.write (90); }} leftMotor.write (180); rightMotor.write (0); }

Օրինակ

Հետևյալ ծածկագիրը կօգտագործի ռոբոտի վրա տեղադրված սենսորները, որպեսզի այն թեքվի ձախ, երբ ռոբոտը բախվի խոչընդոտի: Նայեք ծածկագրի մեկնաբանություններին ՝ յուրաքանչյուր մասի օգտագործման մանրամասների համար: Ստորև բերված կոդը ամբողջ ծրագիրն է:

#ներառել Servo leftMotor; Servo rightMotor; const int serialPeriod = 250; // այս ծածկագիրը տալիս է վահանակի ելքային ժամանակի հետաձգումը յուրաքանչյուր 1/4 վայրկյանում (250 ms) անստորագիր երկար ժամանակSerialDelay = 0; const int loopPeriod = 20; // այս կոդը սենսորի ընթերցման հաճախականությունը դնում է 20 ms- ի վրա, ինչը 50 Հց է առանց ստորագրության երկար ժամանակLoopDelay = 0; // այս ծածկագիրը վերագրում է TRIG և ECHO գործառույթները Arduino- ի կապումներին: Կարգավորեք այստեղ թվերը, եթե դրանք այլ կերպ եք միացնում const int ultrasonic2TrigPin = 8; const int ultrasonic2EchoPin = 9; int ուլտրաձայնային 2 Հեռավորություն; int ուլտրաձայնային 2 Տևողություն; // այս կոդը սահմանում է ռոբոտների երկու հնարավոր վիճակ. շարունակել առաջ կամ թեքել ձախ #սահմանել DRIVE_FORWARD 0 #սահմանել TURN_LEFT 1 int state = DRIVE_FORWARD; // 0 = շարունակել առաջ (ՊԱՇՏՊԱՆՈԹՅՈՆ), 1 = թեքել ձախ դատարկության կարգավորումը () {Serial.begin (9600); // այս սենսորը որոշում է քորոցի կազմաձևման pinMode (ultrasonic2TrigPin, OUTPUT); pinMode (ultrasonic2EchoPin, INPUT); // սա շարժիչը վերագրում է Arduino- ի ձախակողմյան շարժիչներին (12); rightMotor.attach (13); } void loop () {if (digitalRead (2) == HIGH) // այս կոդը հայտնաբերում է '' stop '' {մինչ (1) {leftMotor.write (90); rightMotor.write (90); }} debugOutput (); // այս կոդը տպում է վրիպազերծման հաղորդագրությունները սերիական վահանակին, եթե (millis () - timeLoopDelay> = loopPeriod) {readUltrasonicSensors (); // այս կոդը հրահանգում է սենսորին կարդալ և պահպանել չափված հեռավորության վիճակի մասին տվյալներըMachine (); timeLoopDelay = միլիլ (); }} void stateMachine () {if (state == DRIVE_FORWARD) // եթե ոչ մի խոչընդոտ չի հայտնաբերվում {if (ultrasonic2Distance> 6 || ultrasonic2Distance <0) // եթե ռոբոտի դիմաց ոչինչ չկա: ուլտրաձայնային հեռավորությունը բացասական կլինի որոշ ուլտրաձայնային հետազոտողների համար, եթե չկան խոչընդոտներ {// քշեք առաջ rightMotor.write (180); leftMotor.write (0); } else // եթե մեր առջև օբյեկտ կա {state = TURN_LEFT; }} else if (state == TURN_LEFT) // եթե խոչընդոտ է հայտնաբերվել, թեքվեք ձախ {unsigned long timeToTurnLeft = 500; // 90 աստիճան պտտվելու համար տևում է մոտ 0.5 վայրկյան: Այս արժեքը կարող է անհրաժեշտ լինել, եթե ձեր անիվները չափով տարբերվում են չափից ՝ անստորագիր երկար turnStartTime = millis () օրինակում: // պահպանել այն պայմանը, երբ ռոբոտը սկսում է պտտվել մինչ ((millis ()-turnStartTime) <timeToTurnLeft) // պահել այս ցիկլը մինչև timeToTurnLeft (500) անցնելը {// թեքվել ձախ, հիշեք, որ երբ երկուսն էլ «180» են, ռոբոտը կշրջվի: rightMotor.write (180); leftMotor.write (180); } վիճակ = DRIVE_FORWARD; }} void readUltrasonicSensors () {// սա ուլտրաձայնայինի համար է: Կարող է անհրաժեշտ լինել փոխել այս հրամանը, եթե այլ սենսոր եք օգտագործում: digitalWrite (ultrasonic2TrigPin, HIGH); միկրովայրկյաններ (10); // TRIG կապը բարձր քաշեք առնվազն 10 միկրովայրկյան digitalWrite (ultrasonic2TrigPin, LOW); ultrasonic2Duration = pulseIn (ultrasonic2EchoPin, HIGH); ուլտրաձայնային 2 Հեռավորություն = (ուլտրաձայնային 2 Տևողություն/2)/29; } // ստորև նշված է վահանակում սխալների վրիպազերծման համար: void debugOutput () {if ((millis () - timeSerialDelay)> serialPeriod) {Serial.print ("ultrasonic2Distance:"); Serial.print (ուլտրաձայնային 2Distance); Serial.print ("սմ"); Serial.println (); timeSerialDelay = millis (); }}

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