Үйдө роботту кантип куруу керек (сүрөттөрү менен)

Мазмуну:

Үйдө роботту кантип куруу керек (сүрөттөрү менен)
Үйдө роботту кантип куруу керек (сүрөттөрү менен)

Video: Үйдө роботту кантип куруу керек (сүрөттөрү менен)

Video: Үйдө роботту кантип куруу керек (сүрөттөрү менен)
Video: Обход аккаунта гугл после сброса. Как разблокировать телефон: Забыл пароль, Забыл графический ключ. 2024, Апрель
Anonim

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

Кадамдар

6 -жылдын 1 -бөлүгү: Роботту чогултуу

1123333 1
1123333 1

Кадам 1. Компоненттериңизди чогултуп алыңыз

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

  • Arduino Uno (же башка микроконтроллер)
  • 2 үзгүлтүксүз айлануу сервосу
  • Серваларга туура келген 2 дөңгөлөк
  • 1 ролик
  • 1 кичине ширетилбеген нан (эки жагында эки оң жана терс сызыгы бар нан табыңыз)
  • 1 аралык сенсор (төрт-пин туташтыргычы кабели менен)
  • 1 мини баскыч баскычы
  • 1 10kΩ каршылык
  • 1 USB A - B кабели
  • 1 бөлүнүүчү баш аттар топтому
  • 9V DC кубат уячасы бар 1 6 х АА батарея кармагычы
  • 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. Эки башты нан табактын E катарындагы 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. Ардуинодогу 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. Арткы көк темир жолдон кара зымды алдыңкы көк темир жолго туташтырыңыз

Кызыл рельстерди туташтырбаңыз, анткени сиз Arduinoго зыян келтиришиңиз мүмкүн.

1123333 25
1123333 25

Кадам 7. Ардуинодогу 5В төөнөгүчтөгү 30 алдындагы кызыл темир жолдон кызыл зымды туташтырыңыз

Бул 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/en/main/softwareден бекер жүктөп алсаңыз болот. Жүктөлүп алынган файлды эки жолу чыкылдатып ачыңыз жана папканы ичине оңой жетүү үчүн жылдырыңыз. Сиз иш жүзүндө программаны орнотпойсуз. Анын ордуна, сиз аны чыгарылган папкадан arduino.exe файлын эки жолу басуу менен иштетесиз.

1123333 31
1123333 31

Кадам 2. Батарейканы Ардуиного туташтырыңыз

Батарейканын арткы уячасын 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. "Browse" чыкылдатыңыз, андан кийин сиз мурда чыгарган папкага өтүңүз

Сиз ичинде "драйверлер" папкасын таба аласыз.

1123333 37
1123333 37

Кадам 8. "Айдоочулар" папкасын тандап, "OK" дегенди басыңыз

" Белгисиз программалык камсыздоо жөнүндө эскертүү алсаңыз, улантууну каалаарыңызды ырастаңыз.

6 -жылдын 5 -бөлүгү: Роботту программалоо

1123333 38
1123333 38

Кадам 1. IDE папкасындагы arduino.exe файлын эки жолу басуу менен Arduino IDEди баштаңыз

Сизди бош проект менен тосуп алышат.

1123333 39
1123333 39

Кадам 2. Роботуңуздун түз жүрүшү үчүн төмөнкү кодду чаптаңыз

Төмөндөгү код сиздин Arduinoңузду үзгүлтүксүз алдыга жылдырат.

#include // бул "Серво" китепканасын программага кошот // төмөндө Servo leftMotor эки servo объектин түзөт; 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. өлтүргүч алмаштыргычтын функциясын кошуңуз

Кодуңуздун "void loop ()" бөлүмүнө "switch ()" функцияларынын үстүндө өлтүрүү которгучун иштетүү үчүн төмөнкү кодду кошуңуз.

if (digitalRead (2) == HIGH) // бул баскыч Arduino {2 (2) пининде басылганда катталат {while (1) {leftMotor.write (90); // "90" - бул servo үчүн нейтралдуу позиция, бул аларга оңго бурууну токтотууну айтат. Motor.write (90); }}

1123333 42
1123333 42

Кадам 5. Жүктөө жана кодуңузду текшерүү

Өлтүрүү которуу коду кошулганда, сиз жүктөп жана роботту сынай аласыз. Ал которгучту басмайынча алдыга айдоону уланта бериши керек, бул учурда ал кыймылын токтотот. Толук код мындай болушу керек:

#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; // бул сенсор 20мске чейин канчалык көп окуй тургандыгын аныктайт, бул 50Гц жыштыксыз узак убакытLoopDelay = 0; // бул TRIG жана ECHO функцияларын Arduinoдогу казыктарга дайындайт. Эгерде сиз башкача туташсаңыз, бул жердеги сандарга түзөтүүлөрдү киргизиңиз ultrasonic2TrigPin = 8; const int ultrasonic2EchoPin = 9; int ultrasonic2Distance; int ultrasonic2Duration; // бул роботтун эки мүмкүн болгон абалын аныктайт: алдыга же солго бурулуу #аныктоо DRIVE_FORWARD 0 #define TURN_LEFT 1 int state = DRIVE_FORWARD; // 0 = алдыга айда (DEFAULT), 1 = солго буру боштукту орнотуу () {Serial.begin (9600); // бул сенсордун пин конфигурациялары pinMode (ultrasonic2TrigPin, OUTPUT); pinMode (ultrasonic2EchoPin, INPUT); // бул моторлорду Arduino пиндерине leftMotor.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 эч кандай тоскоолдук болбосо, кээ бир ультрадыбыштар үчүн терс болот {// алдыга карай оңго кыймылдат.write (180); leftMotor.write (0); } башка // эгерде биздин алдыбызда объект болсо {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); delayMicroseconds (10); // триггер пинди эң аз дегенде 10 микросекунд digitalWrite (ultrasonic2TrigPin, LOW) бийик кармайт; ultrasonic2Duration = pulseIn (ultrasonic2EchoPin, HIGH); ultrasonic2Distance = (ultrasonic2Duration/2)/29; } // төмөнкүлөр консолдогу каталарды оңдоо үчүн. void debugOutput () {if ((millis () - timeSerialDelay)> serialPeriod) {Serial.print ("ultrasonic2Distance:"); Serial.print (ultrasonic2Distance); Serial.print ("см"); Serial.println (); timeSerialDelay = millis (); }}

Сунушталууда: