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: Ijtimoiy tarmoqlardan foydalanish odobi | Rasmga qanday tushish kerak? 2024, May
Anonim

O'zingizning robotingizni yaratishni o'rganmoqchimisiz? O'z qo'lingiz bilan yasashingiz mumkin bo'lgan juda ko'p turdagi robotlar mavjud. Ko'pchilik robotni A nuqtadan B nuqtaga o'tishning oddiy vazifalarini bajarishini ko'rishni xohlaydi. Siz robotni analog komponentlardan butunlay yasashingiz yoki boshlang'ich to'plamini noldan sotib olishingiz mumkin! O'z robotingizni yaratish - o'zingizga elektronika va kompyuter dasturlarini o'rgatishning ajoyib usuli.

Qadamlar

6 -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, agar bo'lmasa ham, mahalliy elektronika sevimli mashg'ulotlari do'konida yoki bir nechta onlayn sotuvchilarda topishingiz mumkin. Ba'zi asosiy to'plamlar ushbu komponentlarning barchasini o'z ichiga olishi mumkin. Ushbu robot lehimlashni talab qilmaydi:

  • Arduino Uno (yoki boshqa mikrokontroller)
  • 2 ta doimiy aylanish servolari
  • Servoga mos keladigan 2 ta g'ildirak
  • 1 g'ildirakli rulon
  • 1 ta kichik lehimsiz non taxtasi (har bir tomonida ikkita ijobiy va salbiy chiziqli non taxtasini qidiring)
  • 1 masofa sensori (to'rt pinli ulagich kabeli bilan)
  • 1 ta mini tugmachali kalit
  • 1 10 kΩ qarshilik
  • 1 USB A - B kabeli
  • 1 ta ajraladigan sarlavhalar to'plami
  • 9V DC quvvat ulagichi bilan 6 x AA batareya ushlagichi
  • 1 to'plamli o'tish simlari yoki 22 o'lchovli ulash simlari
  • Kuchli ikki tomonlama lenta yoki issiq elim
1123333 2
1123333 2

Qadam 2. Batareya to'plamini teskari o'girilib, tepaga qarating

Siz batareya to'plamini tayanch sifatida ishlatib, robotning tanasini qurasiz.

1123333 3
1123333 3

Qadam 3. Batareya to'plamining oxiridagi ikkita servolarni tekislang

Batareya to'plamining simlari chiqib ketayotganining oxiri shu bo'lishi kerakki, servolarning pastki qismiga tegib turishi kerak va har birining aylanish mexanizmlari batareya to'plamining yon tomoniga qaragan bo'lishi kerak. G'ildiraklar to'g'ri ketishi uchun servo moslashtirilgan bo'lishi kerak. Servo uchun simlar batareyaning orqa qismidan chiqib ketishi kerak.

1123333 4
1123333 4

4 -qadam. Servolarni lenta yoki elim bilan yopishtiring

Batareya paketiga mahkam yopishtirilganligiga ishonch hosil qiling. Servolarning orqa tomoni batareya to'plamining orqa tomoniga to'g'ri kelishi kerak.

Endi servo batareyalar to'plamining orqa yarmini olishi kerak

1123333 5
1123333 5

5 -qadam. Non paneli batareyaning ochiq joyiga perpendikulyar ravishda joylashtiriladi

U batareyaning old tomoniga bir oz osilgan bo'lishi kerak va u har tomondan kengayadi. Davom etishdan oldin uning mahkamlanganligiga ishonch hosil qiling. "A" qatori servolarga eng yaqin bo'lishi kerak.

1123333 6
1123333 6

Qadam 6. Arduino mikrokontrollerini servolarning yuqori qismiga ulang

Agar siz servolarni to'g'ri biriktirgan bo'lsangiz, ular tegib turadigan tekis joy bo'lishi kerak. Arduino platasini shu tekis joyga yopishtiring, shunda Arduino USB va Quvvat ulagichlari orqa tomonga (non panelidan) qaraydi. Arduino -ning old paneli faqat taxtani bir -biriga yopishtirib qo'yishi kerak.

1123333 7
1123333 7

Qadam 7. G'ildiraklarni servolarga qo'ying

G'ildiraklarni servoning aylanish mexanizmiga mahkam bosing. Bu katta kuch talab qilishi mumkin, chunki g'ildiraklar iloji boricha mahkamroq tortish uchun mo'ljallangan.

1123333 8
1123333 8

Qadam 8. G'ildirakni non taxtasining pastki qismiga mahkamlang

Agar siz shassisni ag'darib qo'ysangiz, batareya paketining yonidan o'tayotganini ko'rishingiz kerak. G'ildirakni bu kengaytirilgan qismga mahkamlang, agar kerak bo'lsa, ko'targichlardan foydalaning. G'ildirak old g'ildirak vazifasini bajaradi, bu esa robotga istalgan tomonga osongina burilish imkonini beradi.

Agar siz to'plam sotib olgan bo'lsangiz, g'ildirak erga etib borishini ta'minlash uchun foydalanishingiz mumkin bo'lgan bir nechta ko'targichlar bilan kelgan bo'lishi mumkin. i

6 -dan 2 -qism: Robotni ulash

1123333 9
1123333 9

Qadam 1. Ikkita 3-pinli sarlavhalarni uzing

Siz ularni servolarni non paneliga ulash uchun ishlatasiz. Pimlarni sarlavhadan pastga suring, shunda pinlar har ikki tomondan teng masofada chiqadi.

1123333 10
1123333 10

2-qadam. Ikkita sarlavhani non taxtasining E qatoridagi 1-3 va 6-8 pinlariga joylashtiring

Ularning mahkam o'rnatilganligiga ishonch hosil qiling.

1123333 11
1123333 11

Qadam 3. Servo kabellarni sarlavhalarga ulang, chap tomonda qora kabel (1 va 6 -pinlar)

Bu servolarni non paneliga ulaydi. Chap servo chap va o'ng servo o'ng sarlavhaga ulanganligiga ishonch hosil qiling.

1123333 12
1123333 12

Qadam 4. C2 va C7 pinlaridan qizil o'tish simlarini qizil (musbat) relsli pinlarga ulang

Non taxtasining orqa qismidagi qizil temirdan foydalanganingizga ishonch hosil qiling (shassisning qolgan qismiga yaqinroq).

1123333 13
1123333 13

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

Non taxtasining orqa tomonidagi ko'k temirdan foydalanganingizga ishonch hosil qiling. Ularni qizil temir yo'l pinlariga 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 servolarni boshqarish va g'ildiraklarni aylantirish imkonini beradi.

1123333 15
1123333 15

Qadam 7. Sensorni non taxtasining old qismiga ulang

U non panelidagi tashqi quvvat panjaralariga ulanmaydi, aksincha harfli pimlarning birinchi qatoriga (J) ulanadi. To'g'ri markazga qo'yganingizga ishonch hosil qiling, har tomondan teng miqdordagi pim bor.

1123333 16
1123333 16

Qadam 8. Qora o'tish simini I14 pinidan sensorning chap tomonidagi mavjud bo'lgan birinchi ko'k temir pinga ulang

Bu sensorni ishdan chiqaradi.

1123333 17
1123333 17

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

Bu sensorni quvvat bilan ta'minlaydi.

1123333 18
1123333 18

10 -qadam. Oq o'tish simlarini I15 pinidan Arduino -ning 9 -pinigacha va I16 -dan 8 -pingacha ulang

Bu ma'lumotni sensordan mikrokontrollerga uzatadi.

6 -dan 3 -qism: Quvvatni ulash

1123333 19
1123333 19

Qadam 1. Paketdagi batareyalarni ko'rish uchun robotni yon tomoniga burang

Batareya to'plami kabeli pastki qismdan chapga chiqadigan qilib yo'naltiring.

1123333 20
1123333 20

Qadam 2. Qizil simni pastdan chapdan ikkinchi buloqqa ulang

Batareya to'plami to'g'ri yo'naltirilganligiga ishonch hosil qiling.

1123333 21
1123333 21

Qadam 3. Qora simni pastki o'ngdagi oxirgi buloqqa ulang

Bu ikkita kabel Arduino -ga to'g'ri kuchlanishni ta'minlashga yordam beradi.

1123333 22
1123333 22

Qadam 4. Qizil va qora simlarni non taxtasining orqa qismidagi o'ng va o'ngdagi qizil va ko'k pinlarga ulang

Qora simi 30 -pinli ko'k rangli temir yo'l piniga ulangan bo'lishi kerak.

1123333 23
1123333 23

Qadam 5. Arduino -dagi GND pinidan qora simni orqa ko'k yo'lakka ulang

Uni ko'k yo'lda 28 -pin bilan ulang.

1123333 24
1123333 24

Qadam 6. Qora simni orqa ko'k yo'ldan oldingi ko'k yo'lakka har birining 29 -pinida ulang

Qizil relslarni ulamang, chunki siz Arduino -ga zarar etkazishingiz mumkin.

1123333 25
1123333 25

Qadam 7. Old qizil temirdan 30 -pinli qizil simni Arduino -dagi 5V -ga ulang

Bu Arduino -ni quvvat bilan ta'minlaydi.

1123333 26
1123333 26

Qadam 8. 24-26-gachasi pinlardagi qatorlar orasidagi bo'shliqqa tugmachali kalitni joylashtiring

Bu kalit robotni elektr tarmog'idan uzmasdan turib o'chirish imkonini beradi.

1123333 27
1123333 27

Qadam 9. H24 dan qizil simni sensorning o'ng tomonidagi navbatdagi pimdagi qizil rayga ulang

Bu tugmani yoqadi.

1123333 28
1123333 28

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

Uni bir necha qadam oldin ulangan qora simning yonidagi pinga ulang.

1123333 29
1123333 29

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

Bu Arduino -ga tugmachani ro'yxatdan o'tkazishga imkon beradi.

6 -dan 4 -qism: Arduino dasturini o'rnatish

1123333 30
1123333 30

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

Bu Arduino ishlab chiqish muhiti va sizga Arduino mikrokontroleriga yuklashingiz mumkin bo'lgan ko'rsatmalarni dasturlash imkonini beradi. Siz uni arduino.cc/en/main/software dan bepul yuklab olishingiz mumkin. Yuklab olingan faylni ikki marta bosish orqali oching va ichidagi papkani kirish oson bo'lgan joyga o'tkazing. Siz aslida dasturni o'rnatolmaysiz. Buning o'rniga, siz arduino.exe faylini ikki marta bosish orqali uni chiqarilgan papkadan ishga tushirasiz.

1123333 31
1123333 31

Qadam 2. Batareya to'plamini Arduino -ga ulang

Quvvat berish uchun batareyaning orqa raz'emini Arduino ulagichiga ulang.

1123333 32
1123333 32

Qadam 3. Arduino -ni kompyuterga USB orqali ulang

Windows qurilmani tanimasligi mumkin.

1123333 33
1123333 33

Qadam 4. bosing

⊞ Win+R va yozing devmgmt.msc.

Bu qurilma menejerini ishga tushiradi.

1123333 34
1123333 34

Qadam 5. "Boshqa qurilmalar" bo'limidagi "Noma'lum qurilma" ni o'ng tugmasini bosing va "Drayv dasturini yangilash" -ni tanlang

" Agar siz bu variantni ko'rmasangiz, uning o'rniga "Xususiyatlar" ni bosing, "Haydovchi" yorlig'ini tanlang va "Haydovchini yangilash" ni bosing.

1123333 35
1123333 35

Qadam 6. "Kompyuterimni haydovchi dasturi uchun ko'rib chiqing

" Bu sizga Arduino IDE bilan birga kelgan drayverni tanlash imkonini beradi.

1123333 36
1123333 36

Qadam 7. "Ko'zdan kechirish" tugmasini bosing, keyin siz ilgari chiqarilgan papkaga o'ting

Siz "haydovchilar" papkasini topasiz.

1123333 37
1123333 37

Qadam 8. "Drayvlar" papkasini tanlang va "OK" tugmasini bosing

" Agar noma'lum dasturiy ta'minot haqida ogohlantirilsa, davom ettirish kerakligini tasdiqlang.

6 -dan 5 -qism: Robotni dasturlash

1123333 38
1123333 38

Qadam 1. IDE papkasidagi arduino.exe faylini ikki marta bosish orqali Arduino IDE dasturini ishga tushiring

Sizni bo'sh loyiha kutib oladi.

1123333 39
1123333 39

Qadam 2. Robotingiz to'g'ri yo'lga tushishi uchun quyidagi kodni joylashtiring

Quyidagi kod sizning Arduino -ni doimiy ravishda oldinga siljitadi.

#include // bu dasturga "Servo" kutubxonasini qo'shadi // quyidagi ikkita servo ob'ektni yaratadi Servo leftMotor; O'ng dvigatel; void setup () {leftMotor.attach (12); // agar siz tasodifan o'z servolaringiz uchun pin raqamlarini almashtirgan bo'lsangiz, bu erdagi raqamlarni o'ngga o'zgartirishingiz mumkinMotor.attach (13); } void loop () {leftMotor.write (180); // uzluksiz aylanishda, 180 servoga "oldinga" to'liq tezlikda harakat qilishini aytadi. o'ng motor yozish (0); // agar bu ikkalasi ham 180 da bo'lsa, robot aylana bo'ylab yuradi, chunki servolari aylantiriladi. "0", unga "orqaga" to'liq tezlikda harakat qilishini aytadi. }

1123333 40
1123333 40

Qadam 3. Dasturni tuzing va yuklang

Dasturni ulangan Arduino-ga o'rnatish va yuklash uchun yuqori chap burchakdagi o'ng o'q tugmasini bosing.

Siz robotni sirtdan ko'tarishni xohlashingiz mumkin, chunki u dastur yuklanganidan keyin oldinga siljishni davom ettiradi

1123333 41
1123333 41

Qadam 4. kill switch funksiyasini qo'shing

O'chirish tugmachasini yoqish uchun kodingizning "void loop ()" bo'limiga "write ()" funktsiyasi ustidagi quyidagi kodni qo'shing.

if (digitalRead (2) == YUQORI) // bu tugma Arduino {while (1) {leftMotor.write (90) 2 -piniga bosilganda qayd qilinadi; // "90" - servo uchun neytral pozitsiya, bu ularga o'ngga burilishni to'xtatishni bildiradiMotor.write (90); }}

1123333 42
1123333 42

Qadam 5. Kodni yuklang va sinab ko'ring

Kill switch kodi qo'shilsa, siz robotni yuklashingiz va sinab ko'rishingiz mumkin. U tugmachani bosmaguningizcha oldinga siljishni davom ettirishi kerak, shu vaqtda u to'xtaydi. To'liq kod shunday bo'lishi kerak:

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

6 -dan 6 -qism: Misol

Qadam 1. Misol keltiring

Quyidagi kod robotga to'siq qo'yilganda uni chap tomonga burish uchun o'rnatilgan sensordan foydalanadi. Har bir qism nima qilishi haqida batafsil ma'lumot olish uchun koddagi izohlarga qarang. Quyidagi kod butun dastur.

#Servo chapMotorni qo'shing; O'ng servo dvigatel; const int serialPeriod = 250; // bu konsoldagi chiqishni har 1/4 soniyada bir marta imzosiz uzoq vaqt cheklaydiSerialDelay = 0; const int loopPeriod = 20; // bu sensorning tezligini 20 ms ga qanchalik tez -tez belgilashini belgilaydi, bu 50 Gts chastotali imzosiz uzoq vaqtLoopDelay = 0; // bu TRIG va ECHO funktsiyalarini Arduino pimlariga yuklaydi. Agar siz boshqacha ulansangiz, bu erda raqamlarga o'zgartirishlar kiriting ultrasonic2TrigPin = 8; const int ultrasonic2EchoPin = 9; int ultrasonic2Distance; int ultrasonic2Duration; // bu robotning ikkita mumkin bo'lgan holatini belgilaydi: oldinga yoki chapga burilish #define DRIVE_FORWARD 0 #define TURN_LEFT 1 int holati = DRIVE_FORWARD; // 0 = oldinga haydash (DEFAULT), 1 = voidni chapga burish () {Serial.begin (9600); // bu pin pin konfiguratsiyasi pinMode (ultrasonic2TrigPin, OUTPUT); pinMode (ultrasonik2EchoPin, Kirish); // bu motorlarni Arduino pinlariga soladiMotor.attach (12); rightMotor.attach (13); } void loop () {if (digitalRead (2) == HIGH) // bu o'chirish kalitini aniqlaydi {while (1) {leftMotor.write (90); rightMotor.write (90); }} debugOutput (); // bu disk raskadrovka xabarlarini ketma -ket konsolda chop etadi, agar (millis () - timeLoopDelay> = loopPeriod) {readUltrasonicSensors (); // bu sensorga o'lchangan masofalarni o'qish va saqlashni o'rgatadi stateMachine (); timeLoopDelay = millis (); }} void stateMachine () {if (state == DRIVE_FORWARD) // agar hech qanday to'siq aniqlanmasa {if (ultrasonic2Distance> 6 || ultrasonic2Distance <0) // agar robot oldida hech narsa bo'lmasa. ultrasonicDistance hech qanday to'siq bo'lmasa, ba'zi ultrasoniklar uchun salbiy bo'ladi {// oldinga haydash rightMotor.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 gradusni burish uchun taxminan 5 soniya kerak bo'ladi. Agar siz g'ildiraklaringiz o'lchagichidan farqli o'laroq uzun burilishStartTime = millis (); // biz aylana boshlagan vaqtni tejang ((millis ()-turnStartTime) <timeToTurnLeft) // timeToTurnLeft tugamaguncha shu tsiklda qoling {// chapga buriling, shuni esda tutingki, ikkalasi ham "180" ga o'rnatilganda u aylanadi.. rightMotor.write (180); leftMotor.write (180); } holat = DRIVE_FORWARD; }} void readUltrasonicSensors () {// bu ultrasonik 2 uchun. Agar siz boshqa sensordan foydalansangiz, bu buyruqlarni o'zgartirishingiz kerak bo'lishi mumkin. digitalWrite (ultrasonik2TrigPin, HIGH); kechikish mikrosaniyalari (10); // trig -pinni kamida 10 mikrosaniyagacha digitalWrite (ultrasonik2TrigPin, LOW) baland ushlab turadi; 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: