Гэртээ хэрхэн робот хийх вэ (зурагтай)

Агуулгын хүснэгт:

Гэртээ хэрхэн робот хийх вэ (зурагтай)
Гэртээ хэрхэн робот хийх вэ (зурагтай)

Видео: Гэртээ хэрхэн робот хийх вэ (зурагтай)

Видео: Гэртээ хэрхэн робот хийх вэ (зурагтай)
Видео: 👾 Minecraft дээр таны мэдэхгүй байж болох 13 зүйл 2024, Дөрөвдүгээр сар
Anonim

Та өөрийн гараар робот хийж сурмаар байна уу? Олон төрлийн роботууд байдаг бөгөөд үүнийг өөрөө бүтээх боломжтой. Ихэнх хүмүүс роботыг А цэгээс Б цэг рүү хялбархан хийхийг харахыг хүсдэг. Та аналог бүрэлдэхүүн хэсгээс робот бүтээх эсвэл гарааны иж бүрдэл худалдаж авах боломжтой. Роботоо өөрөө хийх нь электроник, компьютерийн програмчлалын талаар суралцах гайхалтай арга юм.

Алхам

5 -р хэсгийн 1 -р хэсэг: Роботыг угсрах

1123333 1
1123333 1

Алхам 1. Бүрэлдэхүүн хэсгүүдийг угсарна

Үндсэн робот бүтээхийн тулд танд хэдэн энгийн бүрэлдэхүүн хэсгүүд хэрэгтэй болно. Та эдгээр бүрэлдэхүүн хэсгүүдийн ихэнхийг эсвэл бүгдийг дотоодын цахилгаан барааны хобби дэлгүүр эсвэл зарим онлайн дэлгүүрүүдээс олж болно. Зарим иж бүрдэлд эдгээр бүх бүрэлдэхүүн хэсгүүд багтсан болно. Энэ робот нь гагнах шаардлагагүй:

  • Arduino Uno (эсвэл бусад микроконтроллер)
  • 360 градусын 2 servo
  • 2 дугуйтай тохирох servo
  • 1 үнэгүй дугуй
  • Гагнагдаагүй байгаа 1 туршилтын самбар (талх эсвэл төслийн самбар) (тал бүр дээр эерэг ба сөрөг хоёр мөр бүхий туршилтын самбар хайх)
  • 1 ойрхон мэдрэгч (дөрвөн зүү холбогч кабельтай)
  • 1 товчлууртай товчлуур
  • 1 эсэргүүцэл 10 кОм
  • 1 USB A - B кабель
  • 1 багц эвдэрдэг толгой
  • 9V тогтмол гүйдлийн залгуур бүхий 1 ширхэг 6А АА зай эзэмшигч
  • 1 багц 22. холбогч кабель эсвэл дан кабель
  • Урагш нааш цааш дулаалах (давхар соронзон хальс) эсвэл цавуу буу
1123333 2
1123333 2

Алхам 2. Зайны тасалгааг хавтгай нуруугаа дээш харуулан эргүүл

Та батерейны тасалгааг суурь болгон ашиглан роботын биеийг бүтээх болно.

1123333 3
1123333 3

Алхам 3. Зайны зайны төгсгөлд ижил чиглэлтэй хоёр servo байрлуулна

Энэ төгсгөл нь зайнаас кабель гарах төгсгөл юм. Серво нь доод хэсэгт хүрэх ёстой бөгөөд servo бүрийн эргэх механизм нь зайны тасалгааны талаас харсан байх ёстой. Дугуй нь шулуун байхын тулд эдгээр servos -ийг зөв байрлуулах нь чухал юм. Сервод зориулсан кабелиуд нь зайны тасалгааны ар талаас гарах ёстой.

1123333 4
1123333 4

Алхам 4. Сервог тусгаарлагч эсвэл цавуугаар наа

Серво нь батерейны тасалгаанд бат бэх бэхлэгдсэн эсэхийг шалгаарай. Сервогийн ар тал нь зайны тасалгааны ар талтай зэрэгцсэн байх ёстой.

Одоо servos нь зайны арын талбайн хагасыг эзлэх ёстой

1123333 5
1123333 5

Алхам 5. Туршилтын самбарыг зайны тасалгааны үлдсэн зайд перпендикуляр наана

Энэхүү туршилтын самбар нь зайны тасалгааны урд талд бага зэрэг өлгөгдсөн байх бөгөөд хоёр тал руу сунах болно. Үргэлжлүүлэхийн өмнө туршилтын самбар чанга байгаа эсэхийг шалгаарай. "А" эгнээ нь servo -той хамгийн ойр байх ёстой.

1123333 6
1123333 6

Алхам 6. Arduino микроконтроллерийг servo -ийн дээд хэсэгт холбоно уу

Хэрэв та servo -ийг зөв холбосон бол хоёр servo -ийн бие биендээ хүрэх хавтгай хэсэг байх ёстой. USB ба Arduino цахилгаан холбогчийг доош харсан (туршилтын самбараас хол) байлгахын тулд Arduino самбарыг энэ хавтгай газарт наана. Arduino -ийн урд тал нь туршилтын самбартай давхцах болно.

1123333 7
1123333 7

Алхам 7. Дугуйг servos дээр суурилуулна

Дугуйг эргэдэг servo механизм дээр чанга дарна уу. Дугуйнууд нь servo үзүүрийн хэлбэртэй яг таарсан нүхтэй байхаар хийгдсэн тул үүнд ихээхэн хүч шаардагдах болно.

1123333 8
1123333 8

Алхам 8. Туршилтын самбарын доод хэсэгт үнэгүй дугуйг суулгана уу

Хэрэв та роботыг эргүүлж харвал батерейны тасалгаанд өлгөгдсөн бяцхан туршилтын самбар харагдах болно. Чөлөөт дугуйг энэ өлгөөтэй хэсэгт бэхлээрэй. Шаардлагатай бол шаантаг ашиглана уу. Чөлөөт дугуй нь урд дугуйны үүргийг гүйцэтгэдэг бөгөөд энэ нь роботыг аль ч чиглэлд хялбархан эргүүлэх боломжийг олгодог.

Хэрэв та иж бүрдэл худалдаж авсан бол үнэгүй дугуй нь дугуйг газарт хүрэхэд чөлөөтэй байлгахын тулд ашиглаж болох шаантагтай байж болно

5 -р хэсгийн 2 -р хэсэг: Роботыг холбох

1123333 9
1123333 9

Алхам 1. 3 зүү бүхий хоёр толгойг хайчилж ав

Та үүнийг servo -ийг туршилтын самбарт холбоход ашиглах болно. Толгойн дундуур тээглүүрийг түлхэж, хоёр талаас тэнцүү зайд гарч ирнэ.

1123333 10
1123333 10

Алхам 2. Хоёр толгойг туршилтын самбар дээрх Е эгнээний 1-3 ба 6-8 зүү рүү оруулна

Тэдгээрийг хатуу эсвэл бат бэх оруулсан эсэхийг шалгаарай.

1123333 11
1123333 11

Алхам 3. Серво утаснуудыг толгойн хэсэгт, хар утсыг зүүн талд (1 ба 6 -р зүү) холбоно

Энэ нь servo -ийг туршилтын самбартай холбох болно. Зүүн талын servo нь зүүн толгойтой, баруун servo нь баруун толгойтой холбогдсон эсэхийг шалгаарай.

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 нь servo -ийг удирдаж, дугуйг эргүүлэх боломжтой болно.

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 дээрх 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 -д товчлууруудыг илрүүлэх боломжийг олгоно.

5 -р хэсгийн 4: Arduino програм хангамжийг суулгах

1123333 30
1123333 30

Алхам 1. Arduino IDE татаж аваад задлаарай

Энэ бол Arduino -ийг боловсруулсан бөгөөд зааврыг програмчлах боломжийг олгодог бөгөөд дараа нь Arduino микроконтроллер дээрээ байршуулж болно. Та үүнийг arduino.cc/en/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. Бусад төхөөрөмжүүдийн доорх Үл мэдэгдэх төхөөрөмж дээр хулганы баруун товчийг дараад Driver Driver Software Update-ийг сонгоно уу

Хэрэв та энэ сонголтыг харахгүй бол Properties дээр дарж, Driver tab -ийг сонгоод Driver -ийг шинэчлэх дээр дарна уу.

1123333 35
1123333 35

Алхам 6. Драйверын програм хангамжийг үзэхийн тулд миний компьютерийг үзэх командыг сонгоно уу

Энэ нь Arduino IDE-тэй хамт ирсэн драйверуудыг сонгох боломжийг танд олгоно.

1123333 36
1123333 36

Алхам 7. Browse дээр дараад өмнө нь гаргаж авсан фолдерыг нээнэ үү

Та драйверуудын хавтсыг олох болно.

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 объект үүсгэдэг Servo leftMotor; Servo rightMotor; void setup () {leftMotor.attach (12); // хэрэв та зөөвөрлөгчөө санамсаргүйгээр сольсон бол энд байгаа тоонуудыг сольж болноMotor.attach (13); } void loop () {leftMotor.write (180); // 360 градус эргүүлэх үед (тасралтгүй эргүүлэх) 180 дугаар нь servo -ийг бүх хурдтайгаар "урагш" урагшлахыг заадаг. rightMotor.write (0); // хэрэв хоёулаа утгууд 180 байвал ротор нь тойрог хэлбэрээр эргэх болно, учир нь servo нь урвуу байна. "0" нь роботыг бүх хурдтайгаар "ухрах" алхам хийхийг хэлдэг. }

1123333 40
1123333 40

Алхам 3. Хөтөлбөрийг үүсгэж байршуулна уу

Зүүн дээд буланд байгаа баруун сумны товчлуур дээр дарж холбогдсон Arduino руу програм үүсгэж байршуулна уу.

Програмыг байршуулсны дараа робот үргэлжлүүлэн урагшлах тул та роботыг газрын гадаргаас дээш өргөхийг хүсч магадгүй юм

1123333 41
1123333 41

Алхам 4. Зогсоох унтраалгын функцийг нэмнэ үү (switch switch)

Дараах кодыг кодынхоо "void loop ()" хэсэгт нэмээд "write ()" функцын дээр stop switch функцийг нэмнэ үү.

if (digitalRead (2) == HIGH) // энэ тушаалыг Arduino 2 pin 2 товчлуур дээр дарахад {команд (1) {leftMotor.write (90); // "90" бол servo -ийн төвийг сахисан байрлал бөгөөд энэ нь servo -ийг баруун тийш эргэхийг зогсоохыг хэлдэг. Motor.write (90); }}

1123333 42
1123333 42

Алхам 5. Кодыг байршуулж шалгана уу

Stop switch кодыг аль хэдийн нэмсэн тул та кодыг байршуулж, роботыг туршиж үзэх боломжтой. Та зогсоох товчлуурыг дарах хүртэл робот урагшаа үргэлжлүүлэх ёстой бөгөөд ингэснээр робот зогсох болно. Бүрэн код дараах байдлаар харагдах болно.

#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 мс болгож тохируулдаг бөгөөд энэ нь 50 Гц -т гарын үсэг зураагүй урт хугацаа юм LoopDelay = 0; // энэ код нь TRIG болон ECHO функцийг Arduino дээрх зүү рүү оноодог. Хэрэв та тэдгээрийг өөр аргаар холбосон бол энд тохируулаарай const int ultrasonic2TrigPin = 8; const int ultrasonic2EchoPin = 9; int хэт авианы2Distance; int хэт авианы2Хугацаа; // энэ код нь роботын хоёр төлөв байдлыг тодорхойлдог: урагш үргэлжлүүлэх эсвэл зүүн тийш эргэх #тодорхойлох DRIVE_FORWARD 0 #define TURN_LEFT 1 int төлөв = DRIVE_FORWARD; // 0 = урагш үргэлжлүүл (DEFAULT), 1 = зүүн тийш эргэх хоосон тохиргоо () {Serial.begin (9600); // энэ мэдрэгч нь pinMode (ultrasonic2TrigPin, OUTPUT) тохиргоог тодорхойлдог; pinMode (хэт авианы2EchoPin, INPUT); // энэ нь моторыг Arduino pins leftMotor.attach (12) руу хуваарилдаг; rightMotor.attach (13); } void loop () {if (digitalRead (2) == HIGH) // энэ код нь '' stop '' {while (1) {leftMotor.write (90); rightMotor.write (90); }} debugOutput (); // энэ код нь (millis () - timeLoopDelay> = loopPeriod) {readUltrasonicSensors (); // энэ код нь мэдрэгчид хэмжсэн зайн төлөвийн талаархи мэдээллийг уншиж, хадгалахыг зааварчилдаг StateMachine (); timeLoopDelay = millis (); }} void stateMachine () {if (state == DRIVE_FORWARD) // ямар ч саад тотгор илрээгүй бол {if (ultrasonic2Distance> 6 || ultrasonic2Distance <0) // хэрэв роботын урд юу ч байхгүй бол. ямар ч саад байхгүй бол хэт авианы хувьд зай сөрөг байх болно {// урагш хөтлөх rightMotor.write (180); leftMotor.write (0); } өөр // хэрэв бидний өмнө объект байгаа бол {төлөв = TURN_LEFT; }} else if (төлөв == 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 (хэт авианы2TrigPin, HIGH); delayMicroseconds (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.println (); timeSerialDelay = millis (); }}

Зөвлөмж болгож буй: