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

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

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

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

Video: Ինչպես կառուցել ռոբոտ տանը (նկարներով)
Video: Ինչպես օգտագործել ՆՈԹԱՏԵՏՐԵՐԸ // ՄՏՔԵՐ 2024, Մայիս
Anonim

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

Քայլեր

Մաս 1 -ից 6 -ից. Ռոբոտի հավաքում

1123333 1
1123333 1

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

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

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

Քայլ 2. Մարտկոցի տուփը շրջեք այնպես, որ հարթ հետևը դեպի վեր լինի:

Դուք կկառուցեք ռոբոտի մարմինը ՝ մարտկոցը որպես հիմք օգտագործելով:

1123333 3
1123333 3

Քայլ 3. Հավասարեցրեք երկու սերվերը մարտկոցի տուփի վերջում:

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

1123333 4
1123333 4

Քայլ 4. Կպչեք սերվերին ձեր ժապավենով կամ սոսինձով:

Համոզվեք, որ դրանք ամուր ամրացված են մարտկոցի տուփին: Սպասարկիչների հետևը պետք է հավասարեցված լինեն մարտկոցի տուփի հետևի հետ:

Այժմ սպասարկողները պետք է վերցնեն մարտկոցի տուփի հետևի կեսը:

1123333 5
1123333 5

Քայլ 5. Կցեք տախտակը ուղղահայաց մարտկոցի տուփի բաց տարածության վրա:

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

1123333 6
1123333 6

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

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

1123333 7
1123333 7

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

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

1123333 8
1123333 8

Քայլ 8. Կցորդիչը ամրացրեք տախտակի ներքևի մասում:

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

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

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

1123333 9
1123333 9

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

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

1123333 10
1123333 10

Քայլ 2. Տեղադրեք երկու վերնագրերը տախտակի E տողի 1-3 և 6-8 կապում:

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

1123333 11
1123333 11

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

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

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- ին վերահսկել սերվոզները և պտտել անիվները:

1123333 15
1123333 15

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

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

1123333 16
1123333 16

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

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

1123333 17
1123333 17

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

Սա կաշխատի սենսորին:

1123333 18
1123333 18

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

Սա տեղեկատվությունը սենսորից սնուցելու է միկրոկոնտրոլերին:

Մաս 3 -ից 6 -ից. Էլեկտրաէներգիայի միացում

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- ին գրանցել սեղմման կոճակը:

Մաս 4 -ից 6 -ից. 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. Ընտրեք «Փնտրեք իմ համակարգիչը վարորդի ծրագրակազմի համար:

" Սա թույլ կտա Ձեզ ընտրել Arduino IDE- ի հետ եկած վարորդը:

1123333 36
1123333 36

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

Ներսում կգտնեք «վարորդների» թղթապանակ:

1123333 37
1123333 37

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

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

Մաս 5 -ից 6 -ից. Ռոբոտի ծրագրավորում

1123333 38
1123333 38

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

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

1123333 39
1123333 39

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

Ստորև բերված ծածկագիրը կստիպի ձեր Arduino- ին շարունակաբար առաջ շարժվել:

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

1123333 40
1123333 40

Քայլ 3. Կառուցեք և վերբեռնեք ծրագիրը:

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

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

1123333 41
1123333 41

Քայլ 4. Ավելացրեք kill switch ֆունկցիոնալությունը:

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

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

1123333 42
1123333 42

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

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

#include // հետեւյալը ստեղծում է երկու servo օբյեկտ Servo leftMotor; 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); }

6 -րդ մաս 6 -ից. Օրինակ

Քայլ 1. Հետևեք օրինակին:

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

#ներառել Servo leftMotor; Servo rightMotor; const int serialPeriod = 250; // սա սահմանափակում է վահանակի ելքը մինչև 1/4 վայրկյան անստորագիր երկար ժամանակ մեկ անգամ SerialDelay = 0; const int loopPeriod = 20; // սա սահմանում է, թե որքան հաճախ է սենսորը ընթերցումը հասցնում 20ms- ի, ինչը 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) // սա հայտնաբերում է kill անջատիչը {while (1) {leftMotor.write (90); rightMotor.write (90); }} debugOutput (); // սա տպում է վրիպազերծման հաղորդագրությունները սերիական վահանակում, եթե (millis () - timeLoopDelay> = loopPeriod) {readUltrasonicSensors (); // սա հրահանգ է տալիս սենսորին կարդալ և պահել չափված հեռավորությունները stateMachine (); timeLoopDelay = միլիլ (); }} void stateMachine () {if (state == DRIVE_FORWARD) // եթե խոչընդոտներ չեն հայտնաբերվել {if (ultrasonic2Distance> 6 || ultrasonic2Distance <0) // եթե ռոբոտի դիմաց ոչինչ չկա: ultrasonicDistance- ը որոշ ուլտրաձայնային հետազոտությունների դեպքում բացասական կլինի, եթե խոչընդոտ չլինի {// քշել առաջ rightMotor.write (180); leftMotor.write (0); } else // եթե մեր առջև օբյեկտ կա {state = TURN_LEFT; }} else if (state == TURN_LEFT) // եթե խոչընդոտ է հայտնաբերվել, թեքվեք ձախ {unsigned long timeToTurnLeft = 500; // 90 աստիճանի պտտվելու համար պահանջվում է մոտ.5 վայրկյան: Հնարավոր է, որ դա անհրաժեշտ լինի կարգավորել, եթե ձեր անիվներն այլ չափ ունեն, քան անստորագիր երկար turnStartTime = millis () օրինակը: // խնայել այն ժամանակը, երբ մենք սկսել էինք շրջվել ((millis ()-turnStartTime) <timeToTurnLeft) // մնալ այս օղակում մինչև timeToTurnLeft- ի ավարտը {// թեքվեք ձախ, հիշեք, որ երբ երկուսն էլ «180» -ի վրա դրվեն, այն կշրջվի. rightMotor.write (180); leftMotor.write (180); } վիճակ = DRIVE_FORWARD; }} void readUltrasonicSensors () {// սա ուլտրաձայնայինի համար է: Այլ սենսոր օգտագործելու դեպքում կարող է անհրաժեշտ լինել փոխել այս հրամանները: digitalWrite (ultrasonic2TrigPin, HIGH); միկրովայրկյաններ (10); // ձգանի քորոցը բարձր է պահում առնվազն 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 (); }}

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