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

Мазмұны:

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

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

Бейне: Роботты үйде қалай жасауға болады (суреттермен)
Бейне: SketchUp 3d модельдеу ортасында үйдің нысанын салу 2024, Мамыр
Anonim

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

Қадамдар

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

1123333 1
1123333 1

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

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

  • Arduino Uno (немесе басқа микроконтроллер)
  • 2 үздіксіз айналмалы серво
  • Сервоға сәйкес келетін 2 доңғалақ
  • 1 дөңгелек ролик
  • 1 кішкене дәнекерленген нан тақтасы (әр жағында екі оң және теріс сызығы бар тақтаны іздеңіз)
  • 1 қашықтық датчигі (төрт істікшелі қосқыш кабелі бар)
  • 1 мини батырмалы қосқыш
  • 1 10 кОм резистор
  • 1 USB A - B кабелі
  • Бөлінетін тақырыптардың 1 жиынтығы
  • 9 В тұрақты ток қуат ұясы бар 1 6 x АА батарея ұстағышы
  • Өткізгіш сымдардың 1 пакеті немесе 22 калибрлі сым
  • Күшті екі жақты таспа немесе ыстық желім
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 тақтасын Arduino USB және Power коннекторлары артқа қарайтындай етіп орналастырыңыз. Ардуиноның алдыңғы жағы нан тақтасын әрең жауып тұруы керек.

1123333 7
1123333 7

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

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

1123333 8
1123333 8

Қадам 8. Құймақ тақтаның түбіне бекітіңіз

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

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

6 -дан 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 -ге дейін жалғаңыз

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

6 -дан 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. Ардуинодағы 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 -ға батырманы тіркеуге мүмкіндік береді.

6 -дан 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. 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. «Драйверлер» қалтасын таңдап, «ОК» түймесін басыңыз

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

6 -дан 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); // үздіксіз айнала отырып, 180 сервоға «алға» толық жылдамдықпен қозғалуды айтады. оң қозғалтқыш. жазу (0); // егер олардың екеуі де 180 -де болса, робот шеңбер бойымен айналады, себебі сервопроводтар аударылады. «0» оған толық жылдамдықпен «артқа» жылжуды айтады. }

1123333 40
1123333 40

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

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

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

1123333 41
1123333 41

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

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

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

1123333 42
1123333 42

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

Kill switch коды қосылған кезде сіз роботты жүктеп, тексере аласыз. Ол коммутаторды басқанша алға қарай жүруді жалғастыруы керек, сол кезде ол қозғалуды тоқтатады. Толық код келесідей болуы керек:

#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); }

6 -дан 6 -бөлім: Мысал

Қадам 1. Мысалға жүгініңіз

Келесі код роботқа бекітілген сенсорды қолданады, ол кедергілерге тап болған кезде оны солға бұрады. Әр бөліктің не істейтіні туралы ақпарат алу үшін кодтағы түсініктемелерді қараңыз. Төмендегі код - бұл бүкіл бағдарлама.

#қосу Servo leftMotor; Оң жақ мотор; const int serialPeriod = 250; // бұл консольге шығуды 1/4 секунд сайын қол қойылмаған ұзақ уақыт бойы шектейдіSerialDelay = 0; const int loopPeriod = 20; // бұл сенсордың 20 мс дейінгі жиілікті көрсететін жиілігін белгілейді, бұл 50 Гц жиілігі белгісіз ұзақ уақытқа созыладыLoopDelay = 0; // бұл TRIG және ECHO функцияларын Arduino түйреуіштеріне тағайындайды. Егер сіз басқаша қосылсаңыз, сандарға түзетулер енгізіңіз const ultr ultrasonic2TrigPin = 8; const int ultrasonic2EchoPin = 9; int ultrasonic2Distance; int ultrasonic2Duration; // бұл роботтың екі ықтимал күйін анықтайды: алға немесе солға бұрылу #DEFINE DRIVE_FORWARD 0 #define TURN_LEFT 1 int state = DRIVE_FORWARD; // 0 = алға қарай жылжу (ӘДЕБИЕТ), 1 = солға бұрылу void setup () {Serial.begin (9600); // бұл pinMode сенсорының түйреуіш конфигурациясы (ultrasonic2TrigPin, OUTPUT); pinMode (ультрадыбыстық2EchoPin, INPUT); // бұл қозғалтқыштарды Arduino істіктеріне solMotor.attach тағайындайды (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) // егер роботтың алдында ештеңе болмаса. ultrasonicDistance егер ешқандай кедергі болмаса, кейбір ультрадыбыс үшін теріс болады {// алға қарай оңға қозғалт. Mite.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 () {// бұл ультрадыбыстық 2 үшін. Егер басқа сенсорды қолдансаңыз, сізге бұл пәрмендерді өзгерту қажет болуы мүмкін. digitalWrite (ultrasonic2TrigPin, HIGH); кешіктіруМикросекундтар (10); // триггердің штырын кемінде 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 = миллис (); }}

Ұсынылған: