Роботты үйде қалай жасауға болады (суреттермен)

Мазмұны:

Роботты үйде қалай жасауға болады (суреттермен)
Роботты үйде қалай жасауға болады (суреттермен)

Бейне: Роботты үйде қалай жасауға болады (суреттермен)

Бейне: Роботты үйде қалай жасауға болады (суреттермен)
Бейне: Майнкрафттағы житель жасырып келген құпия! Шынайы өмірге қалай барады? Қазақша майнкрафт 2024, Мамыр
Anonim

Сіз өзіңіздің жеке робот жасауды үйренгіңіз келе ме? Роботтардың көптеген түрлері бар, оларды өзіңіз жасай аласыз. Көптеген адамдар роботты А нүктесінен В нүктесіне оңай жылжытқанын көргісі келеді. Сіз роботты аналогтық компоненттерден толығымен құрастыра аласыз немесе стартер жинағын сатып ала аласыз. Жеке робот жасау - электроника мен компьютерлік бағдарламалауды үйренудің тамаша әдісі.

Қадам

5 бөлімнің 1 бөлігі: роботты құрастыру

1123333 1
1123333 1

Қадам 1. Компоненттерді жинаңыз

Негізгі робот жасау үшін сізге бірнеше қарапайым компоненттер қажет. Сіз бұл компоненттердің көпшілігін немесе барлығын жергілікті электроника хобби дүкенінен немесе кейбір онлайн сатушылардан таба аласыз. Кейбір жиынтықтар осы компоненттердің барлығын қамтиды. Бұл робот дәнекерлеуді қажет етпейді:

  • Arduino Uno (немесе басқа микроконтроллер)
  • 360 градусқа 2 сервис
  • Сервоға сәйкес келетін 2 доңғалақ
  • 1 бос дөңгелек
  • Дәнекерленбеген 1 сынақ тақтасы (нан тақтасы немесе жобалық тақта) (әр жағында екі оң және теріс жолдары бар тест тақтасын іздеңіз)
  • 1 жақындық сенсоры (төрт істікшелі қосқыш кабелі бар)
  • 1 батырмалы қосқыш
  • 1 резистор 10 кОм
  • 1 USB A - B кабелі
  • Бөлінетін тақырыптардың 1 жиынтығы
  • 9 В тұрақты ток розеткасы бар 1 6 x АА батарея ұстағышы
  • 22 пакеттік кабельдер немесе бір кабельден тұратын 1 пакет
  • Алға -артқа оқшаулау (қос таспа) немесе желім пистолеті
1123333 2
1123333 2

2 -қадам. Батарея бөлімін артқы жағын жоғары қаратып бұрыңыз

Сіз робот корпусын негіз ретінде аккумулятор бөлімін пайдаланып жасайсыз.

1123333 3
1123333 3

Қадам 3. Батарея ұясының соңында бір бағытқа қарайтын екі серво орналастырыңыз

Бұл соңы батареядан кабель шығатын жер. Серво төменгі жағына тиіп тұруы керек, ал әрбір серводың айналу механизмі батарея бөлімінің бүйірлерінен сыртқа қарауы керек. Бұл сервалардың дөңгелектері түзу болуы үшін олардың дұрыс орналасуы маңызды. Сервоға арналған кабельдер батарея бөлімінің артқы жағынан шығуы керек.

1123333 4
1123333 4

Қадам 4. Серводы оқшаулағышпен немесе желіммен жабыстырыңыз

Серво батарея бөліміне мықтап бекітілгеніне көз жеткізіңіз. Серваның артқы жағы батарея бөлімінің артқы жағымен туралануы керек.

Енді серво батарея ұясының артындағы кеңістіктің жартысын алуы керек

1123333 5
1123333 5

Қадам 5. Сынақ тақтасын батарея бөліміндегі қалған бос орынға перпендикуляр жабыстырыңыз

Бұл сынақ тақтасы батарея бөлімінің алдыңғы жағына сәл ілінеді және екі жаққа да созылады. Жалғастырмас бұрын сынақ тақтасының тығыз екеніне көз жеткізіңіз. «А» жолы сервоға ең жақын болуы керек.

1123333 6
1123333 6

Қадам 6. Arduino микроконтроллерін серваның жоғарғы жағына бекітіңіз

Егер сервоприводты дұрыс бекітетін болсаңыз, онда екі серваның бір -біріне тиіп тұратын жазық бөлігі болуы керек. Arduino тақтасын USB мен Arduino қуат қосқыштары төмен қарайтындай етіп (тест тақтасынан алыс) осы тегіс жерге жабыстырыңыз. Arduino -ның алдыңғы жағы тест тақтасымен қабаттасады.

1123333 7
1123333 7

Қадам 7. Дөңгелектерді сервоға орнатыңыз

Дөңгелектерді айналмалы серво механизміне мықтап басыңыз. Бұл үшін үлкен күш қажет болуы мүмкін, себебі дөңгелектер серво ұшының пішініне сәйкес келетін тесіктерге арналған.

1123333 8
1123333 8

Қадам 8. Бос дөңгелекті тест тақтасының төменгі жағына орнатыңыз

Егер сіз роботты төңкерсеңіз, батарея бөлімінде ілулі тұрған кішкене сынақ тақтасын көресіз. Бос дөңгелекті осы ілулі бөлікке бекітіңіз. Қажет болса, сынаны қолданыңыз. Бос доңғалақ алдыңғы дөңгелектің рөлін атқарады, бұл роботқа кез келген бағытта оңай айналуға мүмкіндік береді.

Егер сіз жинақ сатып алған болсаңыз, онда дөңгелектің жерге тиіп кетпеуін қамтамасыз ету үшін бос дөңгелекте кейбір сыналар болуы мүмкін

5 бөлімнің 2 бөлігі: Роботты қосу

1123333 9
1123333 9

Қадам 1. Екі 3 істікшелі тақырыптарды кесіңіз

Сіз мұны серводы тест тақтасына қосу үшін қолданасыз. Түйреуіштерді тақырыптар арқылы төмен қарай итеріңіз, осылайша олар екі жағынан бірдей қашықтықта шығады.

1123333 10
1123333 10

Қадам 2. Екі тақырыпты тест тақтасындағы Е қатарындағы 1-3 және 6-8 түйреуіштерге енгізіңіз

Олардың мықтап немесе мықтап салынғанын тексеріңіз.

1123333 11
1123333 11

Қадам 3. Серво сымдарын үстіңгі жағымен, қара сымды сол жақта (1 және 6 түйреуіштер) жалғаңыз

Бұл сервоны тест тақтасына қосады. Сол жақ серво сол жақ тақырыпқа, ал оң жақ серво оң жақ тақырыпқа қосылғанын тексеріңіз.

1123333 12
1123333 12

4 -қадам. 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. Ақ өтпелі сымдарды I15 шнурынан Arduino -ға 9 -шы түйінге, ал I16 -дан 8 -ге дейін жалғаңыз

Бұл сенсордан микроконтроллерге ақпарат береді.

5 бөлімнің 3 бөлігі: Қуат кабелін орнату

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 -дегі 5В істікшеге қосыңыз

Бұл 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/kz/main/software сайтынан ақысыз жүктей аласыз. Файлды екі рет шертіп, ондағы қалтаны қол жетімді жерге жылжыту арқылы жүктелген файлды ашыңыз. Сіз бағдарламаны нақты орнатпайсыз, керісінше оны arduino.exe файлын екі рет шерту арқылы шығарылған қалтадан іске қосасыз.

1123333 31
1123333 31

Қадам 2. Батарея бөлімін Arduino -ға қосыңыз

Батареяның артқы ұясын қуаттандыру үшін Arduino коннекторына салыңыз.

1123333 32
1123333 32

Қадам 3. USB арқылы компьютерге Arduino салыңыз

Мүмкін, 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. Драйверлер қалтасын таңдап, OK түймесін басыңыз

Егер сізге белгісіз бағдарламалық қамтамасыз ету туралы ескертілсе, жалғастырғыңыз келетінін растаңыз.

5 бөлімнің 5 бөлігі: Роботтарды бағдарламалау

1123333 38
1123333 38

Қадам 1. IDE қалтасындағы arduino.exe файлын екі рет басу арқылы Arduino IDE ашыңыз

Сізді бос жоба қарсы алады.

1123333 39
1123333 39

Қадам 2. Роботты жетілдіру үшін келесі кодты қойыңыз немесе қойыңыз

Төмендегі код сіздің Arduino жұмысын жалғастырады.

#include // бұл бағдарламаға «Servo» кітапханасын қосады // келесі команда Servo leftMotor екі серво объектісін жасайды; Оң жақ мотор; void setup () {leftMotor.attach (12); // егер сіз кездейсоқ серво үшін түйреуіш нөмірлерін ауыстырып қойсаңыз, сандарды осы жерден ауыстыра аласыз rightMotor.attach (13); } void loop () {leftMotor.write (180); // 360 градусқа бұрылу кезінде (үздіксіз айналу) 180 саны сервоға толық жылдамдықпен «алға» жылжуды нұсқайды. rightMotor.write (0); // егер екі мән де 180 болса, робот шеңбер бойымен айналады, себебі серво кері болады. «0» роботқа толық жылдамдықпен «артқа» жылжуын айтады. }

1123333 40
1123333 40

Қадам 3. Бағдарламаны құрыңыз және жүктеңіз

Қосылған Arduino бағдарламасын құру және жүктеу үшін сол жақ жоғарғы бұрыштағы оң жақ көрсеткі түймесін басыңыз.

Сіз роботты бетінен көтергіңіз келуі мүмкін, себебі бағдарлама жүктелгеннен кейін робот алға қарай жүре береді

1123333 41
1123333 41

Қадам 4. Тоқтату қосқыш функциясын қосыңыз (өлтіру қосқышы)

«Write ()» функциясының үстіне тоқтау функциясын қосу үшін кодтың «void loop ()» бөліміне келесі кодты қосыңыз.

if (digitalRead (2) == HIGH) // бұл пәрмен түйме 2 Arduino {while (1) {leftMotor.write (90) түймені басқанда орындалады; // «90» - бұл сервоға бейтарап позиция, ол сервоға оңға бұрылуды тоқтатуды айтадыMotor.write (90); }}

1123333 42
1123333 42

Қадам 5. Кодыңызды жүктеңіз және тексеріңіз

Тоқтату қосқышының коды бұрын қосылған болса, сіз кодты жүктеп, роботты тексере аласыз. Робот тоқтап қалу түймесін басқанға дейін алға қарай жүруі керек, бұл роботтың тоқтауына әкеледі. Толық код келесідей болады:

#include // келесі команда екі Servo leftMotor серво объектісін жасайды; Оң жақ мотор; 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; Оң жақ мотор; const int serialPeriod = 250; // бұл код консольдің шығу уақытының артта қалуын 1/4 секунд сайын (250 мс) белгісіз ұзақ уақытқа бередіSerialDelay = 0; const int loopPeriod = 20; // бұл код сенсордың оқу жиілігін 20 мс етіп орнатады, бұл 50 Гц белгісіз ұзақ уақытLLopDelay = 0; // бұл код TRDU және ECHO функцияларын Arduino түйреуіштеріне тағайындайды. Егер сіз оларды басқа жолмен қоссаңыз, сандарды осында реттеңіз const int ultrasonic2TrigPin = 8; const int ultrasonic2EchoPin = 9; int ultrasonic2Distance; int ultrasonic2Duration; // бұл код роботтың екі мүмкін жағдайын анықтайды: алға қарай жүру немесе солға бұрылу #define DRIVE_FORWARD 0 #define TURN_LEFT 1 int күйі = DRIVE_FORWARD; // 0 = алға қарай жалғастыру (DEFAULT), 1 = солға бұрылу void setup () {Serial.begin (9600); // бұл сенсор түйіннің конфигурациясын pinMode анықтайды (ultrasonic2TrigPin, OUTPUT); pinMode (ультрадыбыстық2EchoPin, INPUT); // бұл қозғалтқышты leftMotor.attach Arduino түйреуіштеріне тағайындайды (12); rightMotor.attach (13); } void loop () {if (digitalRead (2) == HIGH) // бұл код '' тоқтауды '' анықтайды {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) // егер роботтың алдында ештеңе болмаса. ультрадыбыстықҚашықтық кейбір ультрадыбыспен теріс болады, егер кедергілер болмаса {// алға қарай оңға жылжытыңызMotor.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 () {// бұл ультрадыбыстық 2 үшін. Егер басқа сенсорды қолдансаңыз, сізге бұл пәрменді өзгерту қажет болуы мүмкін. digitalWrite (ultrasonic2TrigPin, HIGH); кешіктіруМикросекундтар (10); // TRIG түйреуішін жоғары қарай 10 микросекундқа жоғары тартыңыз digitalWrite (ultrasonic2TrigPin, LOW); ultrasonic2Duration = pulseIn (ultrasonic2EchoPin, HIGH); ultrasonic2Distance = (ultrasonic2Duration/2)/29; } // төмендегілер консольдегі қателерді түзетуге арналған. void debugOutput () {if ((millis () - timeSerialDelay)> serialPeriod) {Serial.print («ultrasonic2Distance:»); Serial.print (ультрадыбыстық2Distance); Serial.print («см»); Serial.println (); timeSerialDelay = миллис (); }}

Ұсынылған: