Та өөрийн гараар робот хийж сурмаар байна уу? Олон төрлийн роботууд байдаг бөгөөд үүнийг өөрөө бүтээх боломжтой. Ихэнх хүмүүс роботыг А цэгээс Б цэг рүү хялбархан хийхийг харахыг хүсдэг. Та аналог бүрэлдэхүүн хэсгээс робот бүтээх эсвэл гарааны иж бүрдэл худалдаж авах боломжтой. Роботоо өөрөө хийх нь электроник, компьютерийн програмчлалын талаар суралцах гайхалтай арга юм.
Алхам
5 -р хэсгийн 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. холбогч кабель эсвэл дан кабель
- Урагш нааш цааш дулаалах (давхар соронзон хальс) эсвэл цавуу буу
Алхам 2. Зайны тасалгааг хавтгай нуруугаа дээш харуулан эргүүл
Та батерейны тасалгааг суурь болгон ашиглан роботын биеийг бүтээх болно.
Алхам 3. Зайны зайны төгсгөлд ижил чиглэлтэй хоёр servo байрлуулна
Энэ төгсгөл нь зайнаас кабель гарах төгсгөл юм. Серво нь доод хэсэгт хүрэх ёстой бөгөөд servo бүрийн эргэх механизм нь зайны тасалгааны талаас харсан байх ёстой. Дугуй нь шулуун байхын тулд эдгээр servos -ийг зөв байрлуулах нь чухал юм. Сервод зориулсан кабелиуд нь зайны тасалгааны ар талаас гарах ёстой.
Алхам 4. Сервог тусгаарлагч эсвэл цавуугаар наа
Серво нь батерейны тасалгаанд бат бэх бэхлэгдсэн эсэхийг шалгаарай. Сервогийн ар тал нь зайны тасалгааны ар талтай зэрэгцсэн байх ёстой.
Одоо servos нь зайны арын талбайн хагасыг эзлэх ёстой
Алхам 5. Туршилтын самбарыг зайны тасалгааны үлдсэн зайд перпендикуляр наана
Энэхүү туршилтын самбар нь зайны тасалгааны урд талд бага зэрэг өлгөгдсөн байх бөгөөд хоёр тал руу сунах болно. Үргэлжлүүлэхийн өмнө туршилтын самбар чанга байгаа эсэхийг шалгаарай. "А" эгнээ нь servo -той хамгийн ойр байх ёстой.
Алхам 6. Arduino микроконтроллерийг servo -ийн дээд хэсэгт холбоно уу
Хэрэв та servo -ийг зөв холбосон бол хоёр servo -ийн бие биендээ хүрэх хавтгай хэсэг байх ёстой. USB ба Arduino цахилгаан холбогчийг доош харсан (туршилтын самбараас хол) байлгахын тулд Arduino самбарыг энэ хавтгай газарт наана. Arduino -ийн урд тал нь туршилтын самбартай давхцах болно.
Алхам 7. Дугуйг servos дээр суурилуулна
Дугуйг эргэдэг servo механизм дээр чанга дарна уу. Дугуйнууд нь servo үзүүрийн хэлбэртэй яг таарсан нүхтэй байхаар хийгдсэн тул үүнд ихээхэн хүч шаардагдах болно.
Алхам 8. Туршилтын самбарын доод хэсэгт үнэгүй дугуйг суулгана уу
Хэрэв та роботыг эргүүлж харвал батерейны тасалгаанд өлгөгдсөн бяцхан туршилтын самбар харагдах болно. Чөлөөт дугуйг энэ өлгөөтэй хэсэгт бэхлээрэй. Шаардлагатай бол шаантаг ашиглана уу. Чөлөөт дугуй нь урд дугуйны үүргийг гүйцэтгэдэг бөгөөд энэ нь роботыг аль ч чиглэлд хялбархан эргүүлэх боломжийг олгодог.
Хэрэв та иж бүрдэл худалдаж авсан бол үнэгүй дугуй нь дугуйг газарт хүрэхэд чөлөөтэй байлгахын тулд ашиглаж болох шаантагтай байж болно
5 -р хэсгийн 2 -р хэсэг: Роботыг холбох
Алхам 1. 3 зүү бүхий хоёр толгойг хайчилж ав
Та үүнийг servo -ийг туршилтын самбарт холбоход ашиглах болно. Толгойн дундуур тээглүүрийг түлхэж, хоёр талаас тэнцүү зайд гарч ирнэ.
Алхам 2. Хоёр толгойг туршилтын самбар дээрх Е эгнээний 1-3 ба 6-8 зүү рүү оруулна
Тэдгээрийг хатуу эсвэл бат бэх оруулсан эсэхийг шалгаарай.
Алхам 3. Серво утаснуудыг толгойн хэсэгт, хар утсыг зүүн талд (1 ба 6 -р зүү) холбоно
Энэ нь servo -ийг туршилтын самбартай холбох болно. Зүүн талын servo нь зүүн толгойтой, баруун servo нь баруун толгойтой холбогдсон эсэхийг шалгаарай.
Алхам 4. C2 ба C7 тээглүүрээс улаан холбогч утсыг улаан төмөр замын зүү рүү холбоно уу (эерэг)
Туршилтын самбарын арын хэсэгт улаан төмөр замыг ашиглаж байгаа эсэхээ шалгаарай (роботын биеийн бусад хэсэгт ойрхон).
Алхам 5. B1 ба B6 тээглүүрээс хар холбогч утсыг цэнхэр төмөр замын зүү (газардуулга) руу холбоно уу
Туршилтын самбарын ард цэнхэр төмөр замыг ашиглаж байгаа эсэхээ шалгаарай. Кабелийг улаан төмөр замын зүү дээр бүү холбоорой.
Алхам 6. Arduino дээрх 12 ба 13 -р зүү бүхий цагаан холбогч утсыг A3 ба A8 руу холбоно уу
Ингэснээр Arduino нь servo -ийг удирдаж, дугуйг эргүүлэх боломжтой болно.
Алхам 7. Туршилтын самбарын урд талд мэдрэгчийг холбоно уу
Мэдрэгчийг туршилтын самбар дээрх гадаад цахилгаан төмөр замд холбоогүй, харин үсгээр бичсэн эхний хоёр эгнээнд (J) бэхлэнэ. Үүнийг хоёр талд нь тэнцүү тооны хоосон зүү байрлуулж, яг дунд нь байрлуулсан эсэхийг шалгаарай.
Алхам 8. I14 зүүгээс хар холбогч утсыг мэдрэгчийн зүүн талд байгаа цэнхэр төмөр замын анхны зүү рүү холбоно уу
Энэ нь мэдрэгчийг газардуулах болно.
Алхам 9. I17 зүү дээрх улаан холбогч утсыг мэдрэгчийн баруун талд байрлах анхны улаан төмөр замын зүү рүү холбоно уу
Энэ нь мэдрэгчийн хүчийг өгөх болно.
Алхам 10. Цагаан холбогч утсыг I15 зүүгээс Arduino дээрх 9 -р зүү, I16 -аас 8 -р зүү рүү холбоно уу
Энэ нь мэдрэгчээс микроконтроллер руу мэдээлэл өгөх болно.
5 -р хэсгийн 3 -р хэсэг: Цахилгаан кабель суурилуулах
Алхам 1. Роботыг эргүүлээд дотор нь байгаа батерейны тасалгааг харж болно
Батерейны тасалгааг кабелийг зүүн доод талаас гарахаар байрлуул.
Алхам 2. Улаан утсыг доод талаас зүүнээс хоёр дахь булагтай холбоно уу
Зайны тасалгааг зөв байрлуулсан эсвэл зөв чиглэлд харсан эсэхийг шалгаарай.
Алхам 3. Хар утсыг баруун доод буланд байгаа сүүлчийн хавартай холбоно уу
Эдгээр хоёр утас нь Arduino -ийг зөв хүчдэлээр хангахад тусална.
Алхам 4. Улаан, хар утсыг туршилтын самбарын ар талд баруун талд байгаа улаан, цэнхэр тээглүүртэй холбоно уу
Хар утас 30 -р зүү дээрх цэнхэр төмөр замын зүү рүү очих ёстой.
Алхам 5. Arduino дээрх GND зүү дээрх хар утсыг цэнхэр төмөр замын арын хэсэгт холбоно уу
Цэнхэр төмөр зам дээрх 28 -р зүү рүү утсыг холбоно уу.
Алхам 6. Цэнхэр төмөр замын ар талын хар утсыг цэнхэр төмөр замын урд талд 29 -р зүү дээр холбоно уу
Улаан төмөр замыг бүү холбоорой, учир нь энэ нь Arduino -ийг гэмтээж болзошгүй юм.
Алхам 7. 30 -р зүү дээрх улаан төмөр замын урд талын улаан утсыг Arduino дээрх 5V зүүтэй холбоно уу
Энэ нь Arduino -ийг эрчим хүчээр хангах болно.
Алхам 8. Товчлуурыг 24-26-р зүү хоорондын зайнд оруулна уу
Энэхүү унтраалга нь хүчийг унтраалгүйгээр роботыг унтраах боломжийг танд олгоно.
Алхам 9. H24 -ээс улаан утсыг мэдрэгчийн баруун талд байрлах дараагийн хоосон зүү дээрх улаан төмөр зам руу холбоно уу
Энэ нь товчлуурыг хүчээр хангах болно.
Алхам 10. H26 -ийг цэнхэр төмөр замд холбохын тулд резистор ашиглана уу
Үүнийг өмнөх алхамуудад дөнгөж холбосон хар утасны хажууд шууд зүүгээр холбоно уу.
Алхам 11. G26 -аас цагаан утсыг Arduino дээрх 2 -р зүү рүү холбоно уу
Энэ нь Arduino -д товчлууруудыг илрүүлэх боломжийг олгоно.
5 -р хэсгийн 4: Arduino програм хангамжийг суулгах
Алхам 1. Arduino IDE татаж аваад задлаарай
Энэ бол Arduino -ийг боловсруулсан бөгөөд зааврыг програмчлах боломжийг олгодог бөгөөд дараа нь Arduino микроконтроллер дээрээ байршуулж болно. Та үүнийг arduino.cc/en/main/software дээрээс үнэгүй татаж авах боломжтой. Татаж авсан файлыг задлахын тулд файл дээр давхар товшоод дотор нь байгаа хавтсыг хялбархан очих боломжтой газар руу зөөнө үү. Та програмыг үнэхээр суулгахгүй, харин үүнийг arduino.exe дээр хоёр дарж гаргаж авсан фолдероос ажиллуулах болно.
Алхам 2. Зайны тасалгааг Arduino руу холбоно уу
Батерейны арын залгуурыг Arduino дээрх холбогч руу оруулаад асаах хэрэгтэй.
Алхам 3. Arduino -г USB -ээр дамжуулан компьютертээ оруулна уу
Windows нь төхөөрөмжийг танихгүй байх магадлалтай.
Алхам 4. дарна уу
Win+R ба төрөл devmgmt.msc.
Энэ тушаал нь төхөөрөмжийн менежерийг нээх болно.
Алхам 5. Бусад төхөөрөмжүүдийн доорх Үл мэдэгдэх төхөөрөмж дээр хулганы баруун товчийг дараад Driver Driver Software Update-ийг сонгоно уу
Хэрэв та энэ сонголтыг харахгүй бол Properties дээр дарж, Driver tab -ийг сонгоод Driver -ийг шинэчлэх дээр дарна уу.
Алхам 6. Драйверын програм хангамжийг үзэхийн тулд миний компьютерийг үзэх командыг сонгоно уу
Энэ нь Arduino IDE-тэй хамт ирсэн драйверуудыг сонгох боломжийг танд олгоно.
Алхам 7. Browse дээр дараад өмнө нь гаргаж авсан фолдерыг нээнэ үү
Та драйверуудын хавтсыг олох болно.
Алхам 8. Жолооч нарын хавтсыг сонгоод OK дарна уу
Үл мэдэгдэх програм хангамжийн талаар анхааруулсан тохиолдолд үргэлжлүүлэхийг хүсч байгаагаа баталгаажуулна уу.
5 -р хэсгийн 5: Робот програмчлах
Алхам 1. IDE фолдер дахь arduino.exe файлыг давхар дарж Arduino IDE-ийг нээнэ үү
Таныг хоосон төсөл угтах болно.
Алхам 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" нь роботыг бүх хурдтайгаар "ухрах" алхам хийхийг хэлдэг. }
Алхам 3. Хөтөлбөрийг үүсгэж байршуулна уу
Зүүн дээд буланд байгаа баруун сумны товчлуур дээр дарж холбогдсон Arduino руу програм үүсгэж байршуулна уу.
Програмыг байршуулсны дараа робот үргэлжлүүлэн урагшлах тул та роботыг газрын гадаргаас дээш өргөхийг хүсч магадгүй юм
Алхам 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); }}
Алхам 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 (); }}