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

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

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

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

Видео: Гэртээ робот хэрхэн бүтээх вэ (зурагтай)
Видео: Строим дом. Узнай как не попасть на деньги и где могут обмануть строители 2024, Дөрөвдүгээр сар
Anonim

Та өөрөө робот бүтээх талаар сурмаар байна уу? Өөрөө хийж болох олон төрлийн роботууд байдаг. Ихэнх хүмүүс роботыг А цэгээс В цэг рүү шилжих энгийн ажлыг гүйцэтгэхийг харахыг хүсдэг. Та роботыг аналог бүрэлдэхүүн хэсгээс бүрэн бүтээх эсвэл эхнээс нь гарааны иж бүрдэл худалдаж авах боломжтой! Өөрийнхөө роботыг бүтээх нь электроник болон компьютерийн програмчлалын аль алинд нь өөрийгөө заах гайхалтай арга юм.

Алхам

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

1123333 1
1123333 1

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

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

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

Алхам 2. Батерейны хайрцгийг дээш нь харуулан тэгшхэн нуруугаа дээш харуул

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

1123333 3
1123333 3

Алхам 3. Батерейны төгсгөлд байгаа хоёр servo -г тэгшлээрэй

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

1123333 4
1123333 4

Алхам 4. Сервийг тууз эсвэл цавуугаар наа

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

Серво нь одоо батерейны арын талыг авах ёстой

1123333 5
1123333 5

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

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

1123333 6
1123333 6

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

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

1123333 7
1123333 7

Алхам 7. Дугуйг servos дээр тавь

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

1123333 8
1123333 8

Алхам 8. Кастерыг талхны тавцангийн доод хэсэгт бэхлээрэй

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

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

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

1123333 9
1123333 9

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

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

1123333 10
1123333 10

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

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

1123333 11
1123333 11

Алхам 3. Серво кабелийг толгой руу холбож, зүүн талд нь хар кабелийг холбоно уу (1 ба 6 -р зүү)

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

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

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 руу холбоно уу

Батерейны арын үүрийг Arduino дээрх холбогч руу залгаарай.

1123333 32
1123333 32

Алхам 3. Arduino -г USB -ээр компьютерт холбоно уу

Windows нь төхөөрөмжийг танихгүй байх магадлалтай.

1123333 33
1123333 33

Алхам 4. дарна уу

⊞ Win+R ба төрөл devmgmt.msc.

Энэ нь төхөөрөмжийн менежерийг ажиллуулах болно.

1123333 34
1123333 34

Алхам 5. "Бусад төхөөрөмжүүд" хэсгийн "Үл мэдэгдэх төхөөрөмж" дээр хулганы баруун товчийг дараад "Жолоочийн програм хангамжийг шинэчлэх" командыг сонгоно уу

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

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

1123333 40
1123333 40

Алхам 3. Програмыг бүтээж, байршуулна уу

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

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

1123333 41
1123333 41

Алхам 4. Kill switch функцийг нэмнэ үү

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

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 объектыг үүсгэдэг 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 хэт авианы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 pin -д үлдээдэг зүүнMotor.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 = millis (); }} void stateMachine () {if (state == DRIVE_FORWARD) // хэрэв ямар нэгэн саад тотгор илрээгүй бол {if (ultrasonic2Distance> 6 || ultrasonic2Distance <0) // хэрэв роботын өмнө юу ч байхгүй бол. хэт авианыБусад саад байхгүй тохиолдолд хэт авианы хувьд зай сөрөг байх болно {// урагш хөтлөх rightMotor.write (180); leftMotor.write (0); } өөр // хэрэв бидний өмнө объект байгаа бол {state = TURN_LEFT; }} else if (төлөв == 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 (хэт авианы2TrigPin, 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 (хэт авианы2Distance); Цуваа.хэвлэх ("см"); Serial.println (); timeSerialDelay = millis (); }}

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