Անկանու՞մ եք սովորել, թե ինչպես պատրաստել ձեր սեփական ռոբոտը: Կան բազմաթիվ տարբեր տեսակի ռոբոտներ, որոնք կարող եք ինքներդ կառուցել: Մարդկանց մեծամասնությունը ցանկանում է տեսնել, որ ռոբոտը հեշտությամբ կատարում է աշխատանքը A կետից B: Ձեր սեփական ռոբոտը պատրաստելը հիանալի միջոց է էլեկտրոնիկա և համակարգչային ծրագրավորում սովորելու համար:
Քայլ
5 -րդ մաս 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 մալուխներ կամ մեկ մալուխ
- Մեկուսացում առաջ և առաջ (կրկնակի ժապավեն) կամ սոսինձ ատրճանակ
Քայլ 2. Պտտեք մարտկոցի խցիկը այնպես, որ նրա հարթ հետևը ուղղված լինի դեպի վեր:
Դուք կկառուցեք ռոբոտի մարմինը ՝ մարտկոցի խցիկը հիմք ընդունելով:
Քայլ 3. Կազմակերպեք երկու սերվո, որոնք նայում են նույն ուղղությամբ, մարտկոցի ծոցի վերջում:
Այս վերջը այն վերջն է, որտեղ մալուխը դուրս է գալիս մարտկոցից: Սերվերը պետք է դիպչեն ներքևին, և յուրաքանչյուր սերվոյի պտտման մեխանիզմը պետք է ուղղված լինի մարտկոցի խցիկի կողքերից դեպի դուրս: Կարևոր է, որ այդ սերվոները ճիշտ դասավորվեն այնպես, որ անիվներն ուղիղ լինեն: Servo- ի մալուխները պետք է դուրս գան մարտկոցի խցիկի հետևի մասից:
Քայլ 4. Սոսնձեք սերվերը ձեր մեկուսացմամբ կամ սոսինձով:
Համոզվեք, որ servo- ն ամուր ամրացված է մարտկոցի խցիկին: Servo- ի հետևի մասը պետք է հավասարեցված լինի մարտկոցի խցիկի հետևի հետ:
Այժմ սերվոները պետք է զբաղեցնեն մարտկոցի խոռոչի հետևի տարածքի կեսը:
Քայլ 5. Կպչեք փորձարկման տախտակին `մարտկոցի խցիկի մնացած տարածքին ուղղահայաց:
Այս փորձարկման տախտակը փոքր -ինչ կախված կլինի մարտկոցի խցիկի առջևից և կտարածվի երկու կողմերում: Շարունակելուց առաջ համոզվեք, որ փորձարկման տախտակը ամուր է: «A» տողը պետք է ամենամոտ լինի սերվոյին:
Քայլ 6. Կցեք Arduino միկրոկառավարիչը սերվոյի վերևում:
Եթե դուք ճիշտ կցում եք սերվոյին, ապա պետք է երկու սերվոյի հարթ հատվածը դիպչի միմյանց: Կպչեք Arduino- ի տախտակին այս հարթ տեղում, որպեսզի USB և Arduino միակցիչները թեքվեն ներքև (փորձարկման տախտակից հեռու): Arduino- ի ճակատը համընկնելու է փորձնական տախտակի հետ:
Քայլ 7. Տեղադրեք անիվները սերվերի վրա:
Ամուր սեղմեք անիվները պտտվող սերվոյի մեխանիզմի վրա: Սա կարող է զգալի ուժ պահանջել, քանի որ անիվները նախատեսված են ունենալու անցքեր, որոնք ճշգրտորեն համապատասխանում են servo հուշիչի ձևին:
Քայլ 8. Տեղադրեք անվճար անիվը փորձարկման տախտակի ներքևում:
Եթե ռոբոտը գլխիվայր շրջեք, կտեսնեք մարտկոցի խցիկից կախված փոքրիկ փորձնական տախտակ: Կցեք անվճար անիվը այս կախովի հատվածին: Անհրաժեշտության դեպքում օգտագործեք սեպ: Անվճար անիվը ծառայում է որպես առջևի անիվ, որը թույլ է տալիս ռոբոտին հեշտությամբ շրջվել ցանկացած ուղղությամբ:
Եթե դուք ձեռք եք բերել հավաքածու, անվճար անիվը կարող է ունենալ որոշ սեպեր, որոնք կարող եք օգտագործել ՝ ապահովելու համար, որ անիվն ազատ է դիպչել գետնին:
Մաս 2 5 -ից. Ռոբոտի լարերի միացում
Քայլ 1. Կտրեք երկու 3-փին վերնագիր:
Դուք կօգտագործեք սա սերվոն փորձարկման տախտակին միացնելու համար: Գլխարկների միջով ներքև սեղմեք կապումներն այնպես, որ նրանք երկու կողմերից դուրս գան հավասար հեռավորության վրա:
Քայլ 2. Երկու վերնագրերը տեղադրեք փորձնական տախտակի վրա E տողի 1-3 և 6-8 շարասյուների մեջ:
Համոզվեք, որ դրանք ամուր կամ ամուր տեղադրված են:
Քայլ 3. Սերվո լարերը միացրեք վերնագրով, ձախ կողմում `սև մետաղալարով (1 և 6 կապում):
Սա միացնելու է servo- ն փորձարկման տախտակին: Համոզվեք, որ ձախ սերվոն միացված է ձախ վերնագրին, իսկ աջը `աջ վերնագրին:
Քայլ 4. Միացրեք կարմիր jumper մետաղալարը C2 և C7 կապումներից դեպի կարմիր երկաթուղու քորոց (դրական):
Համոզվեք, որ օգտագործում եք կարմիր ռելսերը փորձարկման տախտակի հետևի մասում (ավելի մոտ ռոբոտի մնացած մարմնին):
Քայլ 5. Միացրեք սև ցատկող մետաղալարը B1 և B6 կապումներից դեպի կապույտ երկաթգծի քորոց (գետնին):
Համոզվեք, որ օգտագործում եք կապույտ ռելսերը փորձարկման տախտակի հետևի մասում: Մի ամրացրեք մալուխը կարմիր երկաթուղային քորոցին:
Քայլ 6. Arduino- ի 12 -րդ և 13 -րդ կապում տեղադրված սպիտակ թռիչքային լարերը միացրեք A3 և A8- ին:
Սա թույլ կտա Arduino- ին կառավարել servo- ն և շրջել անիվը:
Քայլ 7. Կցեք սենսորը փորձարկման տախտակի առջևի մասում:
Սենսորը տեղադրված չէ փորձարկման տախտակի արտաքին հոսանքի գծի վրա, այլ գրված (J) առաջին երկու տողերի վրա: Համոզվեք, որ այն տեղադրեք հենց մեջտեղում ՝ յուրաքանչյուր կողմում հավասար թվով դատարկ կապում:
Քայլ 8. Միացրեք սև ցատկող մետաղալարը I14- ից պտուտակից դեպի սենսորի ձախ կողմում գտնվող առաջին կապույտ երկաթուղային քորոցը:
Սա կհանգեցնի սենսորը:
Քայլ 9. Միացրեք կարմիր ցատկիչի մետաղալարը I17 պինից դեպի սենսորի աջ կողմում գտնվող առաջին կարմիր երկաթուղային քորոցը:
Սա էներգիա կտրամադրի սենսորին:
Քայլ 10. Միացրեք սպիտակ ցատկերի լարերը I15- ից մինչև Arduino- ի 9 -րդ կապը, իսկ I16- ից մինչև 8 -ը:
Սա տեղեկատվություն կտրամադրի սենսորից մինչև միկրոկոնտրոլեր:
Մաս 3 -ից 5 -ում. Էլեկտրական մալուխի տեղադրում
Քայլ 1. Շրջեք ռոբոտը, որպեսզի տեսնեք մարտկոցի խցիկը ներսում:
Տեղադրեք մարտկոցի խցիկը այնպես, որ մալուխը դուրս գա ներքևի ձախ մասից:
Քայլ 2. Կարմիր մետաղալարը միացրեք ձախից ներքևի երկրորդ գարնան հետ:
Համոզվեք, որ մարտկոցի խցիկը ճիշտ է դասավորված կամ ուղղված է ճիշտ ուղղությանը:
Քայլ 3. Սև մետաղալարը միացրեք ներքևի աջ կողմում գտնվող վերջին գարնան հետ:
Այս երկու լարերը կօգնեն ապահովել Arduino- ի ճիշտ լարումը:
Քայլ 4. Կարմիր և սև լարերը միացրեք կարմիր և կապույտ կապումներին, որոնք գտնվում են փորձարկման տախտակի հետևի աջ կողմում:
Սև մետաղալարը պետք է անցնի կապույտ երկաթգծի 30 -րդ կապում:
Քայլ 5. Միացրեք սև մետաղալարը Arduino- ի GND կապից դեպի կապույտ երկաթուղու հետևի հատվածը:
Միացրեք մետաղալարը կապույտ երկաթուղու 28 -րդ կապին:
Քայլ 6. Միացրեք սև մետաղալարը կապույտ երկաթուղու հետևի մասից դեպի կապույտ երկաթուղու առջև 29 -րդ կապում երկու ռելսերի համար:
Մի միացրեք կարմիր երկաթուղին, քանի որ կարող եք վնասել Arduino- ն:
Քայլ 7. Միացրեք կարմիր մետաղալարը կարմիր երկաթգծի առջևից 30 -րդ կապում Arduino- ի 5V կապին:
Սա ուժ կտա Arduino- ին:
Քայլ 8. Տեղադրեք կոճակի անջատիչը 24-26 կապումների միջև ընկած տարածության մեջ:
Այս անջատիչը թույլ կտա անջատել ռոբոտը ՝ առանց հոսանքը անջատելու:
Քայլ 9. Միացրեք կարմիր մետաղալարը H24- ից կարմիր ռելսին ՝ սենսորի աջ կողմում գտնվող հաջորդ դատարկ կապում:
Սա ուժ կտա կոճակին:
Քայլ 10. Օգտագործեք դիմադրություն `H26 կապույտ երկաթուղուն միացնելու համար:
Միացրեք այն քորոցին անմիջապես այն սև մետաղալարի կողքին, որը դուք պարզապես միացրել եք նախորդ քայլերում:
Քայլ 11. Միացրեք սպիտակ մետաղալարը G26- ից Arduino- ի 2 -րդ կապին:
Սա թույլ կտա Arduino- ին հայտնաբերել սեղմման կոճակները:
5 -րդ մաս 4 -ից. Arduino ծրագրաշարի տեղադրում
Քայլ 1. Ներբեռնեք և հանեք Arduino IDE- ն:
Հենց այստեղ է մշակվում Arduino- ն և թույլ է տալիս ծրագրավորել հրահանգներ, որոնք այնուհետև կարող եք վերբեռնել ձեր Arduino միկրոկառավարիչում: Դուք կարող եք այն անվճար ներբեռնել arduino.cc/hy/main/software կայքից: Բեռնել ներբեռնված ֆայլը երկու անգամ սեղմելով ֆայլի վրա և այն պարունակող թղթապանակը տեղափոխելով հեշտ հասանելի վայր: Դուք իրականում չեք տեղադրի ծրագիրը, փոխարենը պարզապես գործարկեք այն թղթապանակից, որը արդյունահանվել է arduino.exe- ի կրկնակի սեղմումով:
Քայլ 2. Միացրեք մարտկոցի խցիկը Arduino- ին:
Տեղադրեք մարտկոցի հետևի վարդակը Arduino- ի միակցիչի մեջ `այն սնուցելու համար:
Քայլ 3. Տեղադրեք Arduino- ն ձեր համակարգչի միջոցով USB- ի միջոցով:
Հավանական է, որ Windows- ը չի ճանաչի սարքը:
Քայլ 4. Սեղմեք:
Win+R և մուտքագրեք devmgmt.msc.
Այս հրամանը կբացի Սարքի կառավարիչը:
Քայլ 5. Աջ սեղմեք Անհայտ սարքի վրա Այլ սարքերի ներքո և ընտրեք Թարմացնել վարորդի ծրագրակազմը:
Եթե չեք տեսնում այս տարբերակը, կտտացրեք Հատկություններ, ընտրեք Վարորդի ներդիրը, այնուհետև կտտացրեք Թարմացնել վարորդին:
Քայլ 6. Ընտրեք Browse my computer for driver software:
Սա թույլ կտա Ձեզ ընտրել ներկառուցված վարորդներ, որոնք ուղեկցվել են Arduino IDE- ով:
Քայլ 7. Կտտացրեք Փնտրել, ապա բացեք ավելի վաղ արդյունահանված թղթապանակը:
Դրա մեջ կգտնեք վարորդների թղթապանակը:
Քայլ 8. Ընտրեք վարորդների թղթապանակը և կտտացրեք OK:
Հաստատեք, որ ցանկանում եք շարունակել, եթե ձեզ զգուշացնեն անհայտ ծրագրակազմի մասին:
5 -րդ մաս 5 -ից. Ռոբոտների ծրագրավորում
Քայլ 1. Բացեք Arduino IDE- ն ՝ IDE թղթապանակում կրկնակի սեղմելով arduino.exe ֆայլին:
Ձեզ կդիմավորեն դատարկ նախագծով:
Քայլ 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» - ն ռոբոտին ասում է, որ ամբողջ արագությամբ «հետ» շարժվի: }
Քայլ 3. Ստեղծեք և վերբեռնեք ծրագիրը:
Կտտացրեք աջ սլաքի կոճակին վերին ձախ անկյունում `միացված Arduino- ում ծրագիր ստեղծելու և վերբեռնելու համար:
Հնարավոր է, որ դուք ցանկանաք ռոբոտին մակերեսից բարձրացնել, քանի որ ծրագիրը բեռնվելուց հետո ռոբոտը կշարունակի առաջ գնալ:
Քայլ 4. Ավելացրեք կանգառի անջատիչի գործառույթ (սպանել անջատիչ):
Ձեր ծածկագրի «void loop ()» բաժնում ավելացրեք հետևյալ ծածկագիրը ՝ «գրել ()» ֆունկցիայի գագաթին stop switch գործառույթ ավելացնելու համար:
if (digitalRead (2) == HIGH) // այս հրամանը գործարկվում է, երբ կոճակը սեղմվում է Arduino 2 կապում {while (1) {leftMotor.write (90); // «90» -ը սերվոյի համար չեզոք դիրքն է, որը սերվոյին ասում է դադարեցնել աջ շրջվելը Motor.write (90); }}
Քայլ 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 (); }}