Qanday qilib uyda robot yasash mumkin (rasmlar bilan)

Mundarija:

Qanday qilib uyda robot yasash mumkin (rasmlar bilan)
Qanday qilib uyda robot yasash mumkin (rasmlar bilan)

Video: Qanday qilib uyda robot yasash mumkin (rasmlar bilan)

Video: Qanday qilib uyda robot yasash mumkin (rasmlar bilan)
Video: MINECRAFT O`YINI TARIXI | MINECRAFTNI KIM YARATGAN? | MINECRAFT QACHON YARALGAN? 2024, Aprel
Anonim

O'z qo'lingiz bilan robot yasashni o'rganmoqchimisiz? Robotlarning ko'p turlari mavjud, ularni o'zingiz qurishingiz mumkin. Ko'pchilik robotni A nuqtadan Bgacha osonroq bajarilishini ko'rishni xohlaydi. Siz robotni analog komponentlardan to'liq qurishingiz yoki boshlang'ich to'plamini sotib olishingiz mumkin. O'z robotingizni yaratish - elektronika va kompyuter dasturlarini o'rganishning ajoyib usuli.

Qadam

5 -qismning 1 -qismi: Robotni yig'ish

1123333 1
1123333 1

Qadam 1. Komponentlaringizni yig'ing

Asosiy robotni yaratish uchun sizga bir nechta oddiy komponentlar kerak bo'ladi. Siz ushbu komponentlarning ko'pini yoki barchasini mahalliy elektronika sevimli mashg'ulotlari do'konida yoki ba'zi onlayn sotuvchilarda topishingiz mumkin. Ba'zi to'plamlar ushbu komponentlarning barchasini o'z ichiga oladi. Ushbu robot lehimlashni talab qilmaydi:

  • Arduino Uno (yoki boshqa mikrokontroller)
  • 360 daraja 2 ta servo
  • Servo mos keladigan 2 g'ildirak
  • 1 bepul g'ildirak
  • Lehimlanmagan 1 ta sinov taxtasi (non paneli yoki loyiha taxtasi) (har bir tomonida ikkita ijobiy va salbiy qatorli test taxtasini qidiring)
  • 1 yaqinlik sensori (to'rt pinli ulagich kabeli bilan)
  • 1 tugmachali tugma
  • 1 qarshilik 10 kΩ
  • 1 USB A - B kabeli
  • 1 ta buziladigan sarlavhalar to'plami
  • 9V doimiy quvvat manbaiga ega 6 ta AA batareya ushlagichi
  • 22 ta o'tish kabellari yoki bitta kabelli 1 ta paket
  • Oldinga va orqaga izolyatsiya (er -xotin lenta) yoki yopishtiruvchi qurol
1123333 2
1123333 2

Qadam 2. Batareya bo'linmasini aylantiring, shunda uning orqa qismi yuqoriga qaraydi

Siz robot korpusini asos sifatida batareya bo'linmasidan qurasiz.

1123333 3
1123333 3

Qadam 3. Batareya bo'linmasining uchida bir xil yo'nalishga qaragan ikkita servo joylashtiring

Bu uchi batareyadan kabel chiqib ketadigan joy. Servo pastki qismga tegishi kerak va har bir servoning aylanish mexanizmi batareya bo'linmasining yon tomoniga qaragan bo'lishi kerak. G'ildiraklar tekis bo'lishi uchun bu servolarni to'g'ri tartibga solish muhim. Servo uchun kabellar batareya bo'linmasining orqa qismidan chiqishi kerak.

1123333 4
1123333 4

4 -qadam. Servolarni izolyatsiyangiz yoki elim bilan yopishtiring

Servo batareya bo'linmasiga mahkam o'rnatilganligiga ishonch hosil qiling. Servo orqasi batareya bo'linmasining orqa qismiga to'g'ri kelishi kerak.

Endi servolar batareya joyining orqa qismidagi bo'sh joyning yarmini egallashi kerak

1123333 5
1123333 5

Qadam 5. Sinov taxtasini batareya bo'linmasidagi qolgan bo'shliqqa perpendikulyar yopishtiring

Bu sinov paneli akkumulyator bo'linmasining old tomoniga bir oz osilib turadi va ikkala tomonga cho'ziladi. Davom etishdan oldin test taxtasi mahkamlanganligiga ishonch hosil qiling. "A" qatori servoga eng yaqin bo'lishi kerak.

1123333 6
1123333 6

Qadam 6. Arduino mikrokontrollerini servoning yuqori qismiga ulang

Agar siz servoni to'g'ri biriktirsangiz, ikkita servoning tekis qismi bir -biriga tegib turishi kerak. Arduino kartasini USB va Arduino quvvat ulagichlari pastga qaragan holda (test kartasidan uzoqda) shunday tekis joyga yopishtiring. Arduino -ning old qismi sinov paneli bilan bir -biriga to'g'ri keladi.

1123333 7
1123333 7

Qadam 7. G'ildiraklarni servolarga o'rnating

G'ildiraklarni aylanadigan servo mexanizmga mahkam bosing. Bu katta kuch talab qilishi mumkin, chunki g'ildiraklar servo uchining shakliga to'liq mos keladigan teshiklarga ega bo'lishi uchun mo'ljallangan.

1123333 8
1123333 8

Qadam 8. Bo'sh g'ildirakni test taxtasining pastki qismiga o'rnating

Agar siz robotni teskari aylantirsangiz, batareya bo'linmasiga osilgan kichik sinov taxtasini ko'rasiz. Erkin g'ildirakni bu osilgan qismga ulang. Agar kerak bo'lsa, pichoqni ishlating. Erkin g'ildirak old g'ildirak bo'lib xizmat qiladi, bu esa robotni istalgan tomonga osonlik bilan burilishiga imkon beradi.

Agar siz to'plam sotib olgan bo'lsangiz, bo'sh g'ildirakda g'ildirakning erga tekkanligini ta'minlash uchun foydalanishingiz mumkin

5 -qismning 2 -qismi: Robotni ulash

1123333 9
1123333 9

Qadam 1. Ikkita 3 pinli sarlavhani kesib oling

Siz buni servoni test kartasiga ulash uchun ishlatasiz. Pimlarni sarlavhalar orasidan pastga suring, shunda ular har ikki tomondan teng masofada chiqadi.

1123333 10
1123333 10

Qadam 2. Ikkita sarlavhani test taxtasidagi E qatoridagi 1-3 va 6-8 pinlarga joylashtiring

Ularning mahkam yoki mahkam o'rnatilganligiga ishonch hosil qiling.

1123333 11
1123333 11

Qadam 3. Servo simlarni sarlavha bilan, qora simni chap tomonda (1 va 6 -pinlar) ulang

Bu servoni sinov paneli bilan bog'laydi. Chap servo chap sarlavhaga, o'ng servo esa o'ng sarlavhaga ulanganligiga ishonch hosil qiling.

1123333 12
1123333 12

Qadam 4. C2 va C7 pinlaridan qizil o'tish simini qizil temir yo'l piniga ulang (musbat)

Sinov taxtasining orqa qismidagi qizil temirdan foydalanganingizga ishonch hosil qiling (robot tanasining qolgan qismiga yaqinroq).

1123333 13
1123333 13

Qadam 5. Qora o'tish simini B1 va B6 pinlaridan ko'k temir yo'l piniga (erga) ulang

Sinov taxtasining orqa tomonidagi ko'k temirdan foydalanganingizga ishonch hosil qiling. Kabelni qizil temir pinga ulamang.

1123333 14
1123333 14

Qadam 6. Arduino -dagi 12 va 13 -pinlardan oq o'tish simlarini A3 va A8 ga ulang

Bu Arduino -ga servo boshqaruvini va g'ildirakni burish imkonini beradi.

1123333 15
1123333 15

Qadam 7. Sensorni test kartasining old qismiga ulang

Sensor sinov taxtasidagi tashqi quvvat panjarasiga o'rnatilmagan, lekin (J) harfi bilan yozilgan dastlabki ikki qatorli pinlarga o'rnatiladi. Siz uni o'rtasiga qo'yganingizga ishonch hosil qiling, har tomondan teng miqdordagi bo'sh pim.

1123333 16
1123333 16

Qadam 8. Qora o'tish simini I14 pinidan sensorning chap tomonidagi birinchi ko'k temir rishtaga ulang

Bu sensorni ishdan chiqaradi.

1123333 17
1123333 17

Qadam 9. I17 pinidan qizil o'tish simini sensorning o'ng tomonidagi birinchi qizil temir pinga ulang

Bu sensorga quvvat beradi.

1123333 18
1123333 18

Qadam 10. Oq o'tish simlarini I15 pinidan Arduino -dagi 9 -pingacha va I16 -dan 8 -pingacha ulang

Bu sensordan mikrokontrollerga ma'lumot beradi.

5 -qismning 3 -qismi: Elektr kabelini o'rnatish

1123333 19
1123333 19

Qadam 1. Robotni aylantiring, shunda siz ichidagi batareya bo'linmasini ko'rasiz

Batareya bo'linmasini shunday joylashtiringki, kabel chap pastki qismdan chiqadi.

1123333 20
1123333 20

Qadam 2. Qizil simni pastdan chapdan ikkinchi buloq bilan ulang

Batareya bo'linmasining to'g'ri joylashtirilganligiga yoki to'g'ri tomonga qaraganligiga ishonch hosil qiling.

1123333 21
1123333 21

Qadam 3. Qora simni pastki o'ngdagi oxirgi buloq bilan ulang

Bu ikkita sim Arduino uchun to'g'ri kuchlanishni ta'minlashga yordam beradi.

1123333 22
1123333 22

Qadam 4. Qizil va qora simlarni test kartasining orqa tomonidagi o'ng tomonda joylashgan qizil va ko'k pinlarga ulang

Qora sim 30 -pinli ko'k rangli temir yo'l piniga o'tishi kerak.

1123333 23
1123333 23

Qadam 5. Arduino -dagi GND pinidan qora simni ko'k rayning orqa qismiga ulang

Telni ko'k yo'lakchadagi 28 -pinli simga ulang.

1123333 24
1123333 24

Qadam 6. Qora simni ko'k relsning orqa qismidan ko'k relsning old tomoniga, har ikkala rels uchun 29 -pinda ulang

Qizil temir yo'lni ulamang, chunki siz Arduino -ga zarar etkazishingiz mumkin.

1123333 25
1123333 25

Qadam 7. Qizil simni 30 -gachasi qizil relsning old qismidan Arduino -dagi 5V -pinga ulang

Bu Arduino -ni quvvat bilan ta'minlaydi.

1123333 26
1123333 26

Qadam 8. 24-26-pinlar orasidagi bo'shliqqa tugmachani joylashtiring

Bu kalit robotni quvvatni o'chirmasdan o'chirishga imkon beradi.

1123333 27
1123333 27

Qadam 9. H24 dan qizil simni sensorning o'ng tomonidagi keyingi bo'sh pimdagi qizil relsga ulang

Bu tugmani quvvat bilan ta'minlaydi.

1123333 28
1123333 28

Qadam 10. H26 ni ko'k rayga ulash uchun rezistordan foydalaning

Uni avvalgi bosqichlarda ulangan qora simning yonidagi pinga ulang.

1123333 29
1123333 29

Qadam 11. G26 dan oq simni Arduino 2 -piniga ulang

Bu Arduino -ga tugmachalarni aniqlash imkonini beradi.

5dan 4 qism: Arduino dasturini o'rnatish

1123333 30
1123333 30

Qadam 1. Arduino IDE -ni yuklab oling va chiqarib oling

Bu erda Arduino ishlab chiqilgan va siz dasturlarni Arduino mikrokontroleriga yuklashingiz mumkin bo'lgan dasturlarni o'rnatishga imkon beradi. Siz uni arduino.cc/en/main/software dan bepul yuklab olishingiz mumkin. Faylni ikki marta bosish va undagi papkani kirish oson bo'lgan joyga ko'chirish orqali yuklab olingan faylni oching. Siz dasturni o'rnatolmaysiz, aksincha uni arduino.exe faylini ikki marta bosish orqali chiqarilgan papkadan ishga tushirasiz.

1123333 31
1123333 31

Qadam 2. Batareya bo'linmasini Arduino -ga ulang

Quvvat olish uchun batareyaning orqa rozetkasini Arduino ulagichiga joylashtiring.

1123333 32
1123333 32

Qadam 3. Arduino -ni kompyuteringizga USB orqali joylashtiring

Ehtimol, Windows qurilmani tanimaydi.

1123333 33
1123333 33

Qadam 4. bosing

Win+R va yozing devmgmt.msc.

Bu buyruq bilan qurilma menejeri ochiladi.

1123333 34
1123333 34

Qadam 5. Boshqa qurilmalar ostida Noma'lum qurilmani o'ng tugmasini bosing va Drayv dasturini yangilash-ni tanlang

Agar siz ushbu parametrni ko'rmasangiz, "Xususiyatlar" ni bosing, "Haydovchi" yorlig'ini tanlang va "Drayverni yangilash" ni bosing.

1123333 35
1123333 35

Qadam 6. Drayv dasturi uchun Kompyuterimni ko'rib chiqish -ni tanlang

Bu sizga Arduino IDE bilan birga o'rnatilgan drayverlarni tanlash imkonini beradi.

1123333 36
1123333 36

Qadam 7. Ko'rish -ni bosing, keyin ilgari chiqarilgan papkani oching

Siz haydovchilar papkasini topasiz.

1123333 37
1123333 37

Qadam 8. Drayvlar papkasini tanlang va OK ni bosing

Agar noma'lum dasturiy ta'minot haqida ogohlantirilsa, davom ettirishni xohlayotganingizni tasdiqlang.

5 -qism 5: Robotlar dasturlash

1123333 38
1123333 38

Qadam 1. IDE papkasidagi arduino.exe faylini ikki marta bosish orqali Arduino IDE-ni oching

Sizni bo'sh loyiha kutib oladi.

1123333 39
1123333 39

Qadam 2. Quyidagi kodni joylashtiring yoki joylashtiring

Quyidagi kod Arduino -ni davom ettiradi.

#include // bu dasturga "Servo" kutubxonasini qo'shadi // quyidagi buyruq ikkita servo ob'ektni yaratadi Servo leftMotor; O'ng servo dvigatel; void setup () {leftMotor.attach (12); // agar siz tasodifan pin raqamlarini servo uchun almashtirgan bo'lsangiz, bu erdagi raqamlarni o'ngga o'zgartirishingiz mumkinMotor.attach (13); } void loop () {leftMotor.write (180); // 360 graduslik burilish (uzluksiz aylanish) bilan 180 raqami servoga to'liq tezlikda "oldinga" harakat qilishni buyuradi. rightMotor.write (0); // agar ikkala qiymat ham 180 bo'lsa, robot aylana bo'ylab aylanadi, chunki servo teskari. "0" robotga "orqaga" to'liq tezlikda harakat qilishini aytadi. }

1123333 40
1123333 40

Qadam 3. Dasturni yarating va yuklang

Bog'langan Arduino -ga dastur yaratish va yuklash uchun yuqori chap burchakdagi o'ng o'q tugmasini bosing.

Siz robotni sirtdan ko'tarishni xohlashingiz mumkin, chunki dastur yuklanganidan keyin robot oldinga yurishda davom etadi

1123333 41
1123333 41

Qadam 4. To'xtatish tugmachasi funktsiyasini qo'shing (o'chirish tugmasi)

"Write ()" funktsiyasining ustiga to'xtatish tugmachasini qo'shish uchun kodingizning "void loop ()" bo'limiga quyidagi kodni qo'shing.

agar (digitalRead (2) == YUQORI) // bu buyruq Arduino 2 pin 2 tugmasi bosilganda ishlaydi (1) {leftMotor.write (90); // "90" - servo uchun neytral holat, bu servoga o'ngga burilishni to'xtatishni bildiradiMotor.write (90); }}

1123333 42
1123333 42

Qadam 5. Yuklab oling va kodingizni tekshiring

Stop switch kodi allaqachon qo'shilgan bo'lsa, siz kodni yuklashingiz va robotni sinab ko'rishingiz mumkin. Robot to'xtash tugmachasini bosmaguningizcha robot oldinga siljishi kerak, bu esa robotning to'xtashiga olib keladi. To'liq kod quyidagicha ko'rinadi:

#include // quyidagi buyruq ikkita Servo leftMotor servo moslamasini yaratadi; O'ng dvigatel; 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); }

Misol

Quyidagi kod robot to'siqqa duch kelganida uni chapga burish uchun robotga o'rnatilgan sensorlardan foydalanadi. Har bir qismdan qanday foydalanish haqida batafsil ma'lumot olish uchun koddagi izohlarga qarang. Quyidagi kod butun dastur.

#xato Servo chapMotor; O'ng dvigatel; const int serialPeriod = 250; // bu kod konsolning chiqish vaqtini har 1/4 soniyada (250 ms) imzosiz uzoq vaqtga beradi. SerialDelay = 0; const int loopPeriod = 20; // bu kod sensorning o'qish chastotasini 20 ms ga o'rnatadi, bu 50 Hz imzosiz uzoq vaqtLoopDelay = 0; // bu kod TRIG va ECHO funktsiyalarini Arduino pimlariga tayinlaydi. Raqamlarni bu erga to'g'rilang, agar ularni boshqa yo'l bilan ulashsangiz const int ultrasonic2TrigPin = 8; const int ultrasonic2EchoPin = 9; int ultrasonic2Distance; int ultrasonic2Duration; // bu kod ikkita mumkin bo'lgan robot holatini belgilaydi: oldinga siljiting yoki chapga buriling #define DRIVE_FORWARD 0 #define TURN_LEFT 1 int holati = DRIVE_FORWARD; // 0 = oldinga davom etish (DEFAULT), 1 = voidni chapga burish () {Serial.begin (9600); // bu sensor pinMode konfiguratsiyasini aniqlaydi (ultrasonic2TrigPin, OUTPUT); pinMode (ultrasonik2EchoPin, Kirish); // bu motorni Arduino pinlariga leftMotor.attach (12) tayinlaydi; rightMotor.attach (13); } void loop () {if (digitalRead (2) == HIGH) // bu kod "stop" ni aniqlaydi {while (1) {leftMotor.write (90); rightMotor.write (90); }} debugOutput (); // bu kod disk raskadrovka xabarlarini ketma -ket konsolda chop etadi, agar (millis () - timeLoopDelay> = loopPeriod) {readUltrasonicSensors (); // bu kod sensorga o'lchangan masofa holati haqidagi ma'lumotlarni o'qish va saqlashni o'rgatadiMachine (); timeLoopDelay = millis (); }} void stateMachine () {if (state == DRIVE_FORWARD) // agar hech qanday to'siq aniqlanmasa {if (ultrasonik2Distance> 6 || ultrasonic2Distance <0) // agar robot oldida hech narsa bo'lmasa. ultrasonikDisk hech qanday to'siq bo'lmasa, ba'zi ultrasoniklar uchun salbiy bo'ladi {// oldinga haydash o'ngMotor.write (180); leftMotor.write (0); } else // agar oldimizda ob'ekt bo'lsa {state = TURN_LEFT; }} else if (holat == TURN_LEFT) // agar to'siq aniqlansa, chapga buriling {unsigned long timeToTurnLeft = 500; // 90 gradusga burilish uchun taxminan 0,5 soniya kerak bo'ladi. Agar sizning g'ildiraklaringiz o'lchamdagi misoldan uzun belgisiz uzun turnStartTime = millis () o'lchamidan farq qilsa, siz bu qiymatni o'zgartirishingiz kerak bo'ladi; // robot aylana boshlaganda shartni saqlang ((millis ()-turnStartTime) <timeToTurnLeft) // timeToTurnLeft (500) o'tguncha bu tsiklni saqlang {// chapga buriling, esda tutingki, ikkalasi ham "180", robot aylanadi. rightMotor.write (180); leftMotor.write (180); } holat = DRIVE_FORWARD; }} void readUltrasonicSensors () {// bu ultratovushli 2 uchun. Agar siz boshqa sensor ishlatayotgan bo'lsangiz, bu buyruqni o'zgartirishingiz kerak bo'lishi mumkin. digitalWrite (ultrasonik2TrigPin, HIGH); kechikish mikrosaniyalari (10); // TRIG pinini kamida 10 mikrosaniyagacha digitalWrite (ultrasonik2TrigPin, LOW) baland torting; ultrasonic2Duration = pulseIn (ultrasonik2EchoPin, HIGH); ultrasonic2Distance = (ultrasonic2Duration/2)/29; } // quyida konsolda xatolarni tuzatish uchun. void debugOutput () {if ((millis () - timeSerialDelay)> serialPeriod) {Serial.print ("ultrasonic2Distance:"); Serial.print (ultrasonik2Distance); Serial.print ("sm"); Serial.println (); timeSerialDelay = millis (); }}

Tavsiya: