Evdə bir robot necə qurulacaq (şəkillərlə birlikdə)

Mündəricat:

Evdə bir robot necə qurulacaq (şəkillərlə birlikdə)
Evdə bir robot necə qurulacaq (şəkillərlə birlikdə)

Video: Evdə bir robot necə qurulacaq (şəkillərlə birlikdə)

Video: Evdə bir robot necə qurulacaq (şəkillərlə birlikdə)
Video: Где бесплатно скачать SketchUp на русском? 2024, Bilər
Anonim

Öz robotunuzu necə qurmağı öyrənmək istəyirsiniz? Öz əlinizlə edə biləcəyiniz bir çox növ robot var. Bir çox insan robotun A nöqtəsindən B nöqtəsinə keçməyin sadə vəzifələrini yerinə yetirməsini görmək istəyir. Bir robotu tamamilə analoq komponentlərdən hazırlaya və ya sıfırdan bir başlanğıc dəsti ala bilərsiniz! Öz robotunuzu qurmaq həm özünüzə həm elektronikanı, həm də kompüter proqramlaşdırmasını öyrətməyin əla bir yoludur.

Addımlar

6 -dan 1 -ci hissə: Robotun montajı

1123333 1
1123333 1

Addım 1. Komponentlərinizi toplayın

Əsas robot yaratmaq üçün bir neçə sadə komponentə ehtiyacınız olacaq. Bu komponentlərin hamısını olmasa da çoxunu yerli elektronika hobbi mağazanızda və ya bir neçə onlayn satıcıda tapa bilərsiniz. Bəzi əsas dəstlər bütün bu komponentləri də əhatə edə bilər. Bu robot heç bir lehimləmə tələb etmir:

  • Arduino Uno (və ya digər mikro nəzarətçi)
  • 2 davamlı fırlanma servosu
  • Servolara uyğun 2 təkər
  • 1 ədəd rulon
  • 1 kiçik lehimsiz çörək taxtası (hər tərəfində iki müsbət və mənfi xətləri olan bir çörək taxtasına baxın)
  • 1 məsafə sensoru (dörd pinli bağlayıcı kabel ilə)
  • 1 mini düymə açarı
  • 1 10kΩ müqavimət
  • 1 USB A - B kabeli
  • 1 dəstə ayrılan başlıq
  • 9V DC güc girişi olan 1 x 6 AA batareya tutacağı
  • 1 paket tullanan tel və ya 22 ölçülü bağlama teli
  • Güclü iki tərəfli lent və ya isti yapışqan
1123333 2
1123333 2

Addım 2. Batareyanı arxa tərəfi yuxarıya baxacaq şəkildə çevirin

Batareya paketini əsas olaraq istifadə edərək robotun bədənini quracaqsınız.

1123333 3
1123333 3

Addım 3. Batareya paketinin ucundakı iki servo hizalayın

Bu, batareya paketinin telinin çıxdığı son olmalıdır. Servoların dibinə toxunmalı və hər birinin fırlanma mexanizmləri batareya paketinin tərəflərinə baxmalıdır. Təkərlər düz getməsi üçün servolar düzgün şəkildə hizalanmalıdır. Servo telləri batareya paketinin arxasından çıxmalıdır.

1123333 4
1123333 4

Addım 4. Servoları bant və ya yapışqanla yapışdırın

Batareya paketinə möhkəm bağlandığından əmin olun. Servoların arxası batareya dəstinin arxası ilə eyni hizada olmalıdır.

İndi servolar batareya paketinin arxa yarısını almalıdır

1123333 5
1123333 5

Addım 5. Çörək taxtasını batareya paketindəki açıq yerə dik olaraq yapışdırın

Batareyanın ön tərəfinə bir az asılmalıdır və hər tərəfdən kənara çıxacaq. Davam etməzdən əvvəl möhkəm bağlandığından əmin olun. "A" sırası servolara ən yaxın olmalıdır.

1123333 6
1123333 6

Addım 6. Arduino mikro nəzarətçisini servoların zirvələrinə bağlayın

Servoları düzgün bir şəkildə bağlamısınızsa, toxunaraq düz bir yer olmalıdır. Arduino kartını bu düz yerə yapışdırın ki, Arduino USB və Güc konnektorları arxaya baxsın (çörək taxtasından uzaqda). Arduinonun ön tərəfi çörək taxtasını çətinliklə üst -üstə qoymalıdır.

1123333 7
1123333 7

Addım 7. Təkərləri servolara qoyun

Təkərləri servonun fırlanan mexanizminə möhkəm bastırın. Təkərlər ən yaxşı dartma üçün mümkün qədər sıx şəkildə oturacaq şəkildə dizayn edildiyindən, bu, böyük miqdarda güc tələb edə bilər.

1123333 8
1123333 8

Addım 8. Çörəyi taxtanın altına yapışdırın

Şassini çevirsəniz, batareya paketinin yanından uzanan bir az çörək taxtası görməlisiniz. Lazım gələrsə yükselticilərdən istifadə edərək çarxı bu genişləndirilmiş parçaya yapışdırın. Çarx robotun istənilən istiqamətə asanlıqla dönməsinə imkan verən ön təkər rolunu oynayır.

Bir dəst satın almış olsanız, dökümçünün yerə çatmasını təmin etmək üçün istifadə edə biləcəyiniz bir neçə qaldırıcı ilə gəlmiş ola bilər. i

6 -dan 2 -ci hissə: Robotun naqilləri

1123333 9
1123333 9

Addım 1. İki 3 pinli başlığı ayırın

Bunları servoları çörək taxtasına bağlamaq üçün istifadə edəcəksiniz. Pimləri başlıqdan aşağıya itələyin ki, pinlər hər iki tərəfdən bərabər məsafədə çıxsın.

1123333 10
1123333 10

Addım 2. İki başlığı çörək taxtasının E sırasındakı 1-3 və 6-8 sancaqlarına daxil edin

Sıx bir şəkildə yerləşdirildiklərindən əmin olun.

1123333 11
1123333 11

Addım 3. Servo kabelləri başlıqlara, sol tərəfində qara kabel ilə bağlayın (1 və 6 -cı pinlər)

Bu, servoları çörək taxtasına bağlayacaq. Sol servonun sol başlığa və sağ servonun sağ başlığa bağlı olduğundan əmin olun.

1123333 12
1123333 12

Addım 4. C2 və C7 sancaqlarından qırmızı keçid tellərini qırmızı (pozitiv) rels pinlərinə bağlayın

Çörək taxtasının arxasındakı qırmızı ştrixdən istifadə etdiyinizə əmin olun (şassinin qalan hissəsinə yaxın).

1123333 13
1123333 13

Addım 5. Qara tullanan telləri B1 və B6 sancaqlarından mavi (torpaq) rels pinlərinə bağlayın

Çörək taxtasının arxasındakı mavi rayı istifadə etdiyinizə əmin olun. Onları qırmızı dəmir sancaqlarına bağlamayın.

1123333 14
1123333 14

Addım 6. Arduino üzərindəki 12 və 13 -cü pinlərdən ağ tullanan telləri A3 və A8 -ə bağlayın

Bu, Arduinoya servoları idarə etməyə və təkərləri çevirməyə imkan verəcək.

1123333 15
1123333 15

Addım 7. Sensoru çörək taxtasının önünə bağlayın

Çörək taxtasındakı xarici elektrik raylarına deyil, hərfli sancaqların ilk sırasına (J) bağlanır. Hər tərəfdə bərabər sayda sancaqlar ilə tam mərkəzə yerləşdirdiyinizə əmin olun.

1123333 16
1123333 16

Addım 8. Qara keçid telini I14 pinindən sensorun solundakı ilk mavi rəngli pinə bağlayın

Bu sensoru yerə qoyacaq.

1123333 17
1123333 17

Addım 9. I17 pinindən qırmızı keçid telini sensorun sağındakı ilk mövcud qırmızı dəmir pinə bağlayın

Bu sensoru işə salacaq.

1123333 18
1123333 18

Addım 10. Ağ tullanan telləri I15 pinindən Arduino -da 9 -a, I16 -dan 8 -ə qədər bağlayın

Bu məlumatı sensordan mikro nəzarətçiyə ötürəcək.

6 -dan 3 -cü hissə: Gücün qurulması

1123333 19
1123333 19

Addım 1. Robotu yan tərəfə çevirin ki, paketdəki batareyaları görə biləsiniz

Batareya paketi kabeli aşağıdan sola çıxacaq şəkildə istiqamətləndirin.

1123333 20
1123333 20

Addım 2. Altdakı soldan ikinci yaya qırmızı bir tel bağlayın

Batareya paketinin düzgün istiqamətləndirildiyinə əmin olun.

1123333 21
1123333 21

Addım 3. Sağ altdakı son yaya qara bir tel bağlayın

Bu iki kabel Arduinoya düzgün gərginlik verməyə kömək edəcək.

1123333 22
1123333 22

Addım 4. Qırmızı və qara telləri çörək taxtasının arxasındakı ən sağdakı qırmızı və mavi sancaqlara bağlayın

Qara kabel pin 30 -da mavi ray piminə, qırmızı kabel isə pin 30 -da qırmızı ray pininə bağlanmalıdır.

1123333 23
1123333 23

Addım 5. Arduino üzərindəki GND pinindən qara mavi rayı arxa mavi raya bağlayın

Mavi raydakı pin 28 -ə bağlayın.

1123333 24
1123333 24

Addım 6. Arxa mavi raydan hər biri üçün pin 29 -da ön mavi raylıya qara bir tel bağlayın

Qırmızı rayları bağlamayın, çünki çox güman ki, Arduinoya ziyan vuracaqsınız.

1123333 25
1123333 25

Addım 7. Ön qırmızı dəmirdən 30 -cu pindəki qırmızı teli Arduino üzərindəki 5V pininə bağlayın

Bu, Arduinoya güc verəcək.

1123333 26
1123333 26

Addım 8. Düymə düyməsini 24-26 sancaqlardakı sıralar arasındakı boşluğa daxil edin

Bu keçid robotu elektrikdən çıxarmadan söndürməyə imkan verəcək.

1123333 27
1123333 27

Addım 9. Sensorun sağındakı növbəti mövcud pindəki H24 -dən qırmızı telə qırmızı raylı bağlayın

Bu düyməni işə salacaq.

1123333 28
1123333 28

Addım 10. H26 -nı mavi dəmir yolu ilə birləşdirmək üçün rezistordan istifadə edin

Bir neçə addım əvvəl bağladığınız qara telin yanındakı pinə bağlayın.

1123333 29
1123333 29

Addım 11. G26 -dan ağ bir tel Arduino 2 pininə bağlayın

Bu, Arduino'ya düyməni qeyd etməyə imkan verəcək.

6 -dan 4 -cü hissə: Arduino Proqramının Qurulması

1123333 30
1123333 30

Addım 1. Arduino IDE -ni yükləyin və çıxarın

Bu Arduino inkişaf mühitidir və daha sonra Arduino mikro nəzarətçinizə yükləyə biləcəyiniz təlimatları proqramlaşdırmağa imkan verir. Arduino.cc/en/main/software -dən pulsuz yükləyə bilərsiniz. Yüklənmiş faylı iki dəfə tıklayaraq açın və içərisindəki qovluğu asan bir yerə daxil edin. Əslində proqramı qurmayacaqsınız. Bunun əvəzinə arduino.exe faylına iki dəfə tıklayaraq çıxarılan qovluqdan işlədəcəksiniz.

1123333 31
1123333 31

Addım 2. Batareya paketini Arduinoya qoşun

Güc vermək üçün batareyanın arxa yuvasını Arduino konnektoruna qoşun.

1123333 32
1123333 32

Addım 3. Arduino'yu USB vasitəsilə kompüterinizə qoşun

Windows çox güman ki, cihazı tanımayacaq.

1123333 33
1123333 33

Addım 4. basın

⊞ Win+R və yazın devmgmt.msc.

Bu cihaz menecerini işə salacaq.

1123333 34
1123333 34

Addım 5. "Digər cihazlar" bölməsindəki "Naməlum cihaz" ı sağ basın və "Sürücü Proqramını Yeniləyin" seçin

" Bu seçimi görmürsənsə, bunun əvəzinə "Xüsusiyyətlər" düyməsini basın, "Sürücü" sekmesini seçin və sonra "Sürücüyü Yeniləyin" düyməsini basın.

1123333 35
1123333 35

Addım 6. "Sürücü proqramı üçün kompüterimə göz atın

" Bu, Arduino IDE ilə gələn sürücünü seçməyə imkan verəcəkdir.

1123333 36
1123333 36

Addım 7. "Gözdən keçir" düyməsini basın, sonra əvvəllər çıxardığınız qovluğa gedin

İçəridə "Sürücülər" qovluğu tapa bilərsiniz.

1123333 37
1123333 37

Addım 8. "Sürücülər" qovluğunu seçin və "OK" düyməsini basın

" Naməlum proqram təminatı haqqında xəbərdarlıq alsanız davam etmək istədiyinizi təsdiq edin.

6 -dan 5 -ci hissə: Robotun proqramlaşdırılması

1123333 38
1123333 38

Addım 1. IDE qovluğunda arduino.exe faylını iki dəfə tıklayaraq Arduino IDE-ni işə salın

Sizi boş bir layihə qarşılayacaq.

1123333 39
1123333 39

Addım 2. Robotunuzun düz getməsi üçün aşağıdakı kodu yapışdırın

Aşağıdakı kod Arduino cihazınızı davamlı olaraq irəli aparacaq.

#include // bu "Servo" kitabxanasını proqrama əlavə edir // aşağıdakı iki servo obyekt yaradır Servo leftMotor; Sağ servo motor; void setup () {leftMotor.attach (12); // təsadüfən servolarınızın pin nömrələrini dəyişdirmisinizsə, buradakı nömrələri sağa dəyişə bilərsinizMotor.attach (13); } void loop () {leftMotor.write (180); // davamlı fırlanma ilə 180, servoya "irəli" tam sürətlə hərəkət etməsini bildirir. sağ motor yaz (0); // bunların hər ikisi 180 -də olarsa, robot bir dairədə gedəcək, çünki servolar çevrilir. "0", tam sürətlə "geriyə" hərəkət etməsini söyləyir. }

1123333 40
1123333 40

Addım 3. Proqramı qurun və yükləyin

Proqramı qurmaq və əlaqəli Arduinoya yükləmək üçün yuxarı sol küncdəki sağ ox düyməsini basın.

Robotu səthdən qaldırmaq istəyə bilərsiniz, çünki proqram yükləndikdən sonra irəli getməyə davam edəcək

1123333 41
1123333 41

Addım 4. kill switch funksiyasını əlavə edin

"Write ()" funksiyalarının üstündəki öldürmə düyməsini aktivləşdirmək üçün kodunuzun "void loop ()" bölməsinə aşağıdakı kodu əlavə edin.

if (digitalRead (2) == YÜKSƏK) // bu düymə Arduinonun pin 2 -də basıldığında qeyd olunur {while (1) {leftMotor.write (90); // "90", servoların sağa dönməyi dayandırmalarını bildirən neytral mövqedir. Motor.write (90); }}

1123333 42
1123333 42

Addım 5. Kodunuzu yükləyin və sınayın

Kill switch kodu əlavə edildikdə, robotu yükləyə və sınaya bilərsiniz. Düyməni basana qədər irəli getməyə davam etməlidir, bu zaman hərəkət etməyi dayandıracaq. Tam kod belə görünməlidir:

#include // aşağıdakılar iki servo obyekt yaradır Servo leftMotor; Sağ servo motor; 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 -cı hissə: Nümunə

Addım 1. Bir nümunə izləyin

Aşağıdakı kod, bir maneə ilə qarşılaşdıqda robotun sola dönməsini təmin etmək üçün ona bağlı olan sensordan istifadə edəcək. Hər hissənin nə etdiyini bilmək üçün koddakı şərhlərə baxın. Aşağıdakı kod bütün proqramdır.

#daxil Servo leftMotor; Sağ servo motor; const int serialPeriod = 250; // bu konsola çıxışı 1/4 saniyədə bir dəfə imzasız uzun müddətlə məhdudlaşdırırSerialDelay = 0; const int loopPeriod = 20; // bu, sensorun nə qədər tez -tez 50 Hz işarəsiz uzun müddət oxuduğunu 20ms -ə qədər təyin edirLoopDelay = 0; // bu, TRIG və ECHO funksiyalarını Arduino üzərindəki pinlərə təyin edir. Fərqli şəkildə bağlandığınız təqdirdə rəqəmlərə düzəlişlər edin const int ultrasonic2TrigPin = 8; const int ultrasonic2EchoPin = 9; int ultrasonic2Distance; int ultrasonic2Duration; // bu, robot üçün iki mümkün vəziyyəti müəyyən edir: irəli sürmək və ya sola dönmək #define DRIVE_FORWARD 0 #define TURN_LEFT 1 int state = DRIVE_FORWARD; // 0 = irəli sür (DEFAULT), 1 = sola döndür void setup () {Serial.begin (9600); // bu pin pin konfiqurasiyaları pinMode (ultrasonic2TrigPin, ÇIXIŞ); pinMode (ultrasəs2EchoPin, GİRİŞ); // bu, motorları Arduino pinlərinə leftMotor.attach (12) təyin edir; rightMotor.attach (13); } void loop () {if (digitalRead (2) == HIGH) // bu öldürmə açarını algılar {while (1) {leftMotor.write (90); rightMotor.write (90); }} debugOutput (); // bu, (millis () - timeLoopDelay> = loopPeriod) {readUltrasonicSensors (); // bu sensora ölçülmüş məsafələri oxumağı və saxlamağı əmr edir stateMachine (); timeLoopDelay = milis (); }} void stateMachine () {if (state == DRIVE_FORWARD) // heç bir maneə aşkar edilməzsə {if (ultrasonic2Distance> 6 || ultrasonic2Distance <0) // robotun qarşısında heç nə yoxdursa. heç bir maneə olmadıqda ultrasonikDistance bəzi ultrasəslər üçün mənfi olacaq {// irəli sağaMotor.write (180); leftMotor.write (0); } başqa // qarşımızda bir obyekt varsa {state = TURN_LEFT; }} else if (vəziyyət == TURN_LEFT) // bir maneə aşkarlanarsa, sola dönün {işarəsiz uzun müddətToTurnLeft = 500; // 90 dərəcə dönmək üçün təxminən 5 saniyə çəkir. Əgər təkərləriniz işarəsiz uzun turnStartTime = millis () nümunəsindən fərqli ölçüdədirsə, bunu tənzimləməyinizə ehtiyac ola bilər. // dönərkən başladığımız vaxta qənaət edin ((millis ()-turnStartTime) <timeToTurnLeft) // timeToTurnLeft bitənə qədər bu döngədə qalın {// sola dönün, unutmayın ki, hər ikisi "180" olaraq təyin olunanda dönəcək. rightMotor.write (180); leftMotor.write (180); } dövlət = DRIVE_FORWARD; }} void readUltrasonicSensors () {// bu ultrasəs 2 üçündür. Fərqli bir sensor istifadə edirsinizsə bu əmrləri dəyişdirməyiniz lazım ola bilər. digitalWrite (ultrasonic2TrigPin, HIGH); gecikməMikrosaniyələr (10); // ən azı 10 mikrosaniyə digitalWrite (ultrasonic2TrigPin, LOW) üçün tetik pinini yüksək saxlayır; ultrasonic2Duration = pulseIn (ultrasonic2EchoPin, HIGH); ultrasonic2Distance = (ultrasonic2Duration/2)/29; } // aşağıdakılar konsolda səhvlərin düzəldilməsi üçündür. boş debugOutput () {if ((millis () - timeSerialDelay)> serialPeriod) {Serial.print ("ultrasonic2Distance:"); Serial.print (ultrasəs2Distance); Serial.print ("sm"); Serial.println (); timeSerialDelay = milis (); }}

Tövsiyə: