Та өөрөө робот бүтээх талаар сурмаар байна уу? Өөрөө хийж болох олон төрлийн роботууд байдаг. Ихэнх хүмүүс роботыг А цэгээс В цэг рүү шилжих энгийн ажлыг гүйцэтгэхийг харахыг хүсдэг. Та роботыг аналог бүрэлдэхүүн хэсгээс бүрэн бүтээх эсвэл эхнээс нь гарааны иж бүрдэл худалдаж авах боломжтой! Өөрийнхөө роботыг бүтээх нь электроник болон компьютерийн програмчлалын аль алинд нь өөрийгөө заах гайхалтай арга юм.
Алхам
6 -р хэсгийн 1 -р хэсэг: Роботыг угсрах
Алхам 1. Бүрэлдэхүүн хэсгүүдийг цуглуул
Үндсэн робот бүтээхийн тулд танд хэд хэдэн энгийн бүрэлдэхүүн хэсгүүд хэрэгтэй болно. Та эдгээр бүрэлдэхүүн хэсгүүдийн ихэнхийг нь биш бол орон нутгийн электроникийн хобби дэлгүүр эсвэл хэд хэдэн онлайн борлуулагчдаас олж болно. Зарим үндсэн иж бүрдэлд эдгээр бүх бүрэлдэхүүн хэсгүүдийг багтааж болно. Энэ робот нь гагнах шаардлагагүй:
- Arduino Uno (эсвэл бусад микроконтроллер)
- 2 тасралтгүй эргүүлэх servo
- Сервод тохирох 2 дугуй
- 1 кастер галзуу
- 1 жижиг гагнуургүй талхны хавтан (тал бүр дээр хоёр эерэг ба сөрөг шугамтай талхны самбар хайх)
- 1 зайны мэдрэгч (дөрвөн зүү холбогч кабельтай)
- 1 мини товчлууртай унтраалга
- 10 кВ эсэргүүцэл
- 1 USB A - B кабель
- Салах толгойн 1 багц
- 9 вольтын тогтмол гүйдлийн залгуур бүхий 1 ширхэг х 6 АА зайтай
- 1 багц холбогч утас эсвэл 22 хэмжигч холбох утас
- Хүчтэй хоёр талт соронзон хальс эсвэл халуун цавуу
Алхам 2. Батерейны хайрцгийг дээш нь харуулан тэгшхэн нуруугаа дээш харуул
Та батерейны батерейг суурь болгон ашиглан роботын биеийг бүтээх болно.
Алхам 3. Батерейны төгсгөлд байгаа хоёр servo -г тэгшлээрэй
Энэ нь батерейны утас гарч байгаа төгсгөл байх ёстой. Серво нь ёроолд хүрч, тус бүрийн эргэх механизм нь батерейны хажуу тал руу харсан байх ёстой. Дугуйнууд шулуун явахын тулд servo -г зөв тохируулсан байх ёстой. Сервод зориулсан утаснууд нь батерейны арын хэсэгт байх ёстой.
Алхам 4. Сервийг тууз эсвэл цавуугаар наа
Тэд батерейны багцад бат бэх бэхлэгдсэн эсэхийг шалгаарай. Сервогийн ар тал нь батерейны арын хэсэгт жигд байх ёстой.
Серво нь одоо батерейны арын талыг авах ёстой
Алхам 5. Талхны хавтанг батерейны задгай хэсэгт перпендикуляр байрлуулна
Энэ нь батерейны урд талд бага зэрэг өлгөгдсөн байх ёстой бөгөөд тал бүрээс цааш үргэлжлэх болно. Үргэлжлүүлэхийн өмнө найдвартай бэхэлсэн эсэхийг шалгаарай. "А" эгнээ нь servo -той хамгийн ойр байх ёстой.
Алхам 6. Arduino микроконтроллерыг servo -ийн дээд хэсэгт холбоно уу
Хэрэв та servos -ийг зөв холбосон бол тэдгээр нь хүрэхэд хавтгай зай байх ёстой. Arduino -ийн USB ба Power холбогчийг ар тал руу нь (талбараас хол) харуулахын тулд Arduino самбарыг энэ хавтгай орон дээр наалдуул. Arduino -ийн урд талхны хавтанг бараг л давхцуулж байх ёстой.
Алхам 7. Дугуйг servos дээр тавь
Дугуйг servo -ийн эргэх механизм дээр чанга дарна уу. Дугуйнууд нь хамгийн сайн зүтгүүрийг аль болох чанга барихаар зохион бүтээгдсэн тул үүнд ихээхэн хүч шаардагдах болно.
Алхам 8. Кастерыг талхны тавцангийн доод хэсэгт бэхлээрэй
Хэрэв та явах эд ангиудыг эргүүлбэл батерейны хайрцгийн дэргэдэх талхны хавтан харагдаж байна. Шаардлагатай бол ус өргөгчийг ашиглан энэхүү өргөтгөсөн хэсэгт кастерийг бэхлээрэй. Кастер нь урд дугуйны үүргийг гүйцэтгэдэг бөгөөд роботыг ямар ч чиглэлд амархан эргүүлэх боломжийг олгодог.
Хэрэв та иж бүрдэл худалдаж авсан бол цутгуур нь газарт хүрэхийн тулд ашиглаж болох хэд хэдэн өргөгчтэй байж магадгүй юм. би
6 -ийн 2 -р хэсэг: Роботыг холбох
Алхам 1. 3 зүү бүхий хоёр толгойг таслах
Та эдгээрийг servo -ийг талхны самбартай холбоход ашиглах болно. Тээглүүрийг толгойноос доош нь түлхэж, тээглүүр нь хоёр талаас тэнцүү зайд гарч ирнэ.
Алхам 2. Хоёр толгойг талхны хавтангийн E эгнээний 1-3 ба 6-8-р зүү рүү оруулна
Тэдгээрийг сайтар бэхэлсэн эсэхийг шалгаарай.
Алхам 3. Серво кабелийг толгой руу холбож, зүүн талд нь хар кабелийг холбоно уу (1 ба 6 -р зүү)
Энэ нь servos -ийг талхны самбартай холбох болно. Зүүн servo нь зүүн толгойтой, баруун servo нь баруун толгойтой холбогдсон эсэхийг шалгаарай.
Алхам 4. C2 ба C7 тээглүүрээс улаан холбогч утсыг улаан (эерэг) төмөр замын голтой холбоно
Талхны тавцангийн ар талд улаан төмөр замыг ашиглаж байгаа эсэхээ шалгаарай (явах эд ангийн үлдсэн хэсэгт ойрхон).
Алхам 5. B1 ба B6 тээглүүрээс хар холбогч утсыг цэнхэр (газрын) төмөр замын тээглүүртэй холбоно
Талхны тавцангийн ард цэнхэр төмөр замыг ашиглаж байгаа эсэхийг шалгаарай. Тэднийг улаан төмөр замын тээглүүрт бүү залгаарай.
Алхам 6. Arduino дээрх 12 ба 13 -р зүү бүхий цагаан холбогч утсыг A3 ба A8 руу холбоно уу
Ингэснээр Arduino нь servos -ийг хянаж, дугуйгаа эргүүлэх боломжтой болно.
Алхам 7. Мэдрэгчийг талхны урд талд хавсаргана уу
Энэ нь талхны самбар дээрх гадна талын цахилгаан төмөр замд залгагддаггүй, харин оронд нь үсэглэсэн тээглүүрийн эхний эгнээнд (J) залгагддаг. Үүнийг яг төвд байрлуулсан эсэх, тал бүр дээр тэнцүү тооны тээглүүр байгаа эсэхийг шалгаарай.
Алхам 8. I14 зүүгээс хар холбогч утсыг мэдрэгчийн зүүн талд байгаа цэнхэр төмөр замын анхны зүү рүү холбоно уу
Энэ нь мэдрэгчийг газардуулах болно.
Алхам 9. I17 зүүгээс улаан холбогч утсыг мэдрэгчийн баруун талд байгаа анхны улаан төмөр замын зүү рүү холбоно уу
Энэ нь мэдрэгчийг асаах болно.
Алхам 10. Цагаан холбогч утсыг I15 зүүгээс Arduino дээрх 9 -р зүү, I16 -аас 8 -р зүү рүү холбоно уу
Энэ нь мэдрэгчээс микроконтроллер руу мэдээлэл өгөх болно.
6 -р хэсгийн 3 -р хэсэг: Эрчим хүчийг холбох
Алхам 1. Багцанд байгаа батерейг харахын тулд роботыг хажуу тийш нь эргүүлээрэй
Батерейны кабелийг доод талд нь зүүн тийш гаргахаар чиглүүл.
Алхам 2. Улаан утсыг доод талаас зүүнээс хоёр дахь булаг руу холбоно уу
Зайны багц зөв чиглэсэн эсэхийг шалгаарай.
Алхам 3. Хар утсыг баруун доод буланд байгаа сүүлчийн хавар руу холбоно уу
Эдгээр хоёр кабель нь Arduino -ийг зөв хүчдэлээр хангахад тусална.
Алхам 4. Улаан, хар утсыг талхны тавцангийн ард байрлах баруун, улаан, цэнхэр тээглүүрт холбоно уу
Хар кабелийг 30 -р зүү дээр цэнхэр төмөр замын зүү рүү, улаан кабелийг 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 товчлуурыг бүртгэх боломжтой болно.
6 -ийн 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. "Бусад төхөөрөмжүүд" хэсгийн "Үл мэдэгдэх төхөөрөмж" дээр хулганы баруун товчийг дараад "Жолоочийн програм хангамжийг шинэчлэх" командыг сонгоно уу
" Хэрэв та энэ сонголтыг харахгүй бол "Properties" дээр дарж "Driver" табыг сонгоод "Driver -ийг шинэчлэх" дээр дарна уу.
Алхам 6. "Драйверын програм хангамжийг миний компьютерээс хайж олоорой
" Энэ нь Arduino IDE -тэй хамт ирсэн драйверыг сонгох боломжийг танд олгоно.
Алхам 7. "Browse" дээр дараад өмнө нь гаргаж авсан фолдер руу очно уу
Та дотор нь "жолооч" фолдерыг олох болно.
Алхам 8. "Жолооч" фолдерыг сонгоод "OK" дээр дарна уу
" Үл мэдэгдэх програм хангамжийн талаар анхааруулсан тохиолдолд үргэлжлүүлэхийг хүсч байгаагаа баталгаажуулна уу.
6 -ийн 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); // тасралтгүй эргэлддэг, 180 нь servo -ийг "урагшаа" бүрэн хурдаар хөдлөхийг хэлдэг. баруун мотор. бичих (0); // хэрэв эдгээр хоёулаа 180 -д байвал робот тойрог замаар явах болно, учир нь servos эргэдэг. "0" гэж түүнд бүх чиглэлд "ухрах" хөдөлгөөн хийхийг хэлнэ. }
Алхам 3. Програмыг бүтээж, байршуулна уу
Зүүн дээд буланд байгаа баруун сумны товчлуур дээр дарж програмыг холбогдсон Arduino-д байршуулж, байршуулна уу.
Програмыг байршуулсны дараа робот үргэлжлүүлэн урагшлах тул та роботыг газрын гадаргаас дээш өргөхийг хүсч магадгүй юм
Алхам 4. Kill switch функцийг нэмнэ үү
Дараах кодыг кодынхоо "void loop ()" хэсэгт нэмээд "write ()" функцын дээр kill switch -ийг идэвхжүүлнэ үү.
if (digitalRead (2) == HIGH) // энэ нь Arduino {while (1) {leftMotor.write (90) 2 -р зүү дээр товчлуур дарагдсан үед бүртгэгддэг; // "90" бол servo -ийн төвийг сахисан байрлал бөгөөд энэ нь тэднийг баруун тийш эргэхээ болихыг хэлдэг. Motor.write (90); }}
Алхам 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 (); }}