Evdə Robot Necə Hazırlanır (Şəkillərlə birlikdə)

Mündəricat:

Evdə Robot Necə Hazırlanır (Şəkillərlə birlikdə)
Evdə Robot Necə Hazırlanır (Şəkillərlə birlikdə)

Video: Evdə Robot Necə Hazırlanır (Şəkillərlə birlikdə)

Video: Evdə Robot Necə Hazırlanır (Şəkillərlə birlikdə)
Video: En güçlü 5 Minecraft efsanesi #boralo #codeman #minecraft 2024, Noyabr
Anonim

Öz robotunuzu necə düzəltməyi öyrənmək istəyirsiniz? Özünüz qura biləcəyiniz çox fərqli robotlar var. Əksər insanlar bir robotun A nöqtəsindən B nöqtəsinə keçməsini görmək istəyirlər. Tamamilə analoq komponentlərdən bir robot qura və ya bir başlanğıc dəsti ala bilərsiniz. Öz robotunuzu hazırlamaq elektronika və kompüter proqramlaşdırma öyrənmək üçün əla bir yoldur.

Addım

5 -dən 1 -ci hissə: Robotun montajı

1123333 1
1123333 1

Addım 1. Komponentlərinizi yığın

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

  • Arduino Uno (və ya digər mikro nəzarətçi)
  • 360 dərəcə 2 servo
  • 2 təkər servoya uyğun gəlir
  • 1 pulsuz təkər
  • Lehimlənməmiş 1 test lövhəsi (çörək taxtası və ya layihə lövhəsi) (hər tərəfində iki müsbət və mənfi sıra olan bir test lövhəsinə baxın)
  • 1 yaxınlıq sensoru (dörd pinli bağlayıcı kabel ilə)
  • 1 düymə açarı
  • 1 rezistor 10 kΩ
  • 1 USB A - B kabeli
  • 1 dəst parçalana bilən başlıq
  • 9V DC prizli 1 x 6 AA batareya tutacağı
  • 1 paket 22. keçid kabelləri və ya tək kabel
  • Geri və irəli izolyasiya (ikiqat lent) və ya yapışqan tabancası
1123333 2
1123333 2

Addım 2. Batareya yuvasını düz arxası yuxarıya baxacaq şəkildə çevirin

Batareya bölməsini əsas olaraq istifadə edərək robot gövdəsini quracaqsınız.

1123333 3
1123333 3

Addım 3. Batareya yuvasının ucunda eyni istiqamətə baxan iki servo düzün

Bu uc kabelin batareyadan çıxdığı yerdir. Servolar dibinə toxunmalı və hər bir servonun fırlanma mexanizmi batareya yuvasının yanlarından yuxarıya baxmalıdır. Bu servoların təkərlərin düz olması üçün düzgün qurulması vacibdir. Servo üçün kabellər batareya bölməsinin arxasından çıxmalıdır.

1123333 4
1123333 4

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

Servonun batareya bölməsinə möhkəm bağlandığından əmin olun. Servonun arxası batareya bölməsinin arxasına uyğun olmalıdır.

İndi servolar batareya yuvasının arxasındakı yerin yarısını tutmalıdır

1123333 5
1123333 5

Addım 5. Test kartını batareya bölməsindəki qalan yerə dik olaraq yapışdırın

Bu test lövhəsi batareya bölməsinin ön tərəfində bir az asılacaq və hər iki tərəfə uzanacaq. Davam etməzdən əvvəl test lövhəsinin sıx olduğundan əmin olun. "A" sırası servoya ən yaxın olmalıdır.

1123333 6
1123333 6

Addım 6. Arduino mikro nəzarətçisini servonun yuxarısına bağlayın

Servo düzgün bağlasanız, iki servonun bir -birinə toxunan düz bir hissəsi olmalıdır. Arduino lövhəsini USB və Arduino güc konnektorlarının aşağıya doğru (test lövhəsindən uzaqda) görünməsi üçün bu düz yerə yapışdırın. Arduinonun ön tərəfi test lövhəsi ilə üst -üstə düşəcək.

1123333 7
1123333 7

Addım 7. Təkərləri servolara quraşdırın

Təkərləri fırlanan servo mexanizminə möhkəm bastırın. Təkərlər servo ucunun şəklinə tam uyğun olan deliklərə malik olması üçün nəzərdə tutulduğundan bu, böyük güc tələb edə bilər.

1123333 8
1123333 8

Addım 8. Sərbəst təkəri test lövhəsinin altına quraşdırın

Robotu alt -üst etsəniz, batareya bölməsindən asılmış kiçik bir test lövhəsi görərsiniz. Sərbəst təkəri bu asılı hissəyə bağlayın. Gerekirse bir paz istifadə edin. Pulsuz təkər, robotun istənilən istiqamətə rahatlıqla dönməsinə imkan verən ön təkər kimi xidmət edir.

Bir dəst satın alsanız, pulsuz təkərin təkərin yerə sərbəst toxunmasını təmin etmək üçün istifadə edə biləcəyiniz bəzi takozlar ola bilər

5 -dən 2 -ci hissə: Robotun naqilləri

1123333 9
1123333 9

Addım 1. İki 3 pinli başlıq kəsin

Bunu servoyu test lövhəsinə bağlamaq üçün istifadə edəcəksiniz. Sancaqları başlıqlardan aşağıya itələyin ki, hər iki tərəfdən bərabər məsafədə çıxsınlar.

1123333 10
1123333 10

Addım 2. İki başlığı test lövhəsindəki E sıra 1-3 və 6-8 pinlərinə daxil edin

Sıx və ya möhkəm bir şəkildə daxil edildiklərindən əmin olun.

1123333 11
1123333 11

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

Bu servoyu test lövhəsi ilə birləşdirəcəkdir. Sol servonun sol başlığa, sağ servonun isə sağ başlığa bağlı olduğundan əmin olun.

1123333 12
1123333 12

Addım 4. Qırmızı keçid telini C2 və C7 sancaqlarından qırmızı dəmir pinə bağlayın (müsbət)

Test kartının arxasındakı qırmızı rayı istifadə etdiyinizə əmin olun (robot gövdəsinin qalan hissəsinə yaxın).

1123333 13
1123333 13

Addım 5. B1 və B6 sancaqlarından qara keçid telini mavi dəmir yolu pininə (yerə) bağlayın

Test lövhəsinin arxasındakı mavi rayı istifadə etdiyinizə əmin olun. Kabeli qırmızı dəmir pinə bağlamayın.

1123333 14
1123333 14

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

Bu, Arduinoya servo idarə etməyə və təkəri döndərməyə imkan verəcək.

1123333 15
1123333 15

Addım 7. Sensoru test lövhəsinin önünə bağlayın

Sensor test lövhəsindəki xarici elektrik rayına deyil, hərflə yazılmış ilk iki sıra sancağa (J) quraşdırılmışdır. Hər tərəfdə bərabər sayda boş sancaqlar ilə tam ortasına qoyduğunuzdan əmin olun.

1123333 16
1123333 16

Addım 8. Qara tullanan teli I14 pinindən sensorun solundakı ilk mavi dəmir pinə bağlayın

Bu sensoru yerə qoyacaq.

1123333 17
1123333 17

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

Bu sensora güc verəcəkdir.

1123333 18
1123333 18

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

Bu sensordan mikro nəzarətçiyə məlumat verəcəkdir.

5 -dən 3 -cü hissə: Elektrik Kabelinin Qurulması

1123333 19
1123333 19

Addım 1. İçərisində olan batareya bölməsini görə bilmək üçün robotu çevirin

Batareya bölməsini elə yerləşdirin ki, kabel sol altdan çıxsın.

1123333 20
1123333 20

Addım 2. Qırmızı teli altdan soldan ikinci yayla bağlayın

Batareya bölməsinin düzgün şəkildə hizalandığından və ya doğru istiqamətə baxdığından əmin olun.

1123333 21
1123333 21

Addım 3. Qara teli sağ altdakı son yayla bağlayın

Bu iki tel Arduinoya doğru gərginliyi təmin etməyə kömək edəcək.

1123333 22
1123333 22

Addım 4. Qırmızı və qara telləri test lövhəsinin arxasındakı sağ tərəfdəki qırmızı və mavi sancaqlara bağlayın

Qara tel 30 -cu pindəki mavi dəmir pinə getməlidir. Qırmızı tel 30 -cu pindəki qırmızı dəmir pininə getməlidir.

1123333 23
1123333 23

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

Gəmini mavi raydakı 28 pinə bağlayın.

1123333 24
1123333 24

Addım 6. Mavi rayın arxasındakı qara teli hər iki ray üçün pin 29 -da mavi rayın önünə bağlayın

Qırmızı rayı bağlamayın, çünki Arduinoya zərər verə bilərsiniz.

1123333 25
1123333 25

Addım 7. 30 -cu pindəki qırmızı dəmir yolunun önündən qırmızı teli Arduino -dakı 5V pininə bağlayın

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

1123333 26
1123333 26

Addım 8. Düymə açarını 24-26 sancaqlar arasındakı boşluğa daxil edin

Bu keçid robotu gücü söndürmədən söndürməyə imkan verəcək.

1123333 27
1123333 27

Addım 9. H24 -dən gələn qırmızı teli sensorun sağındakı növbəti boş pimin qırmızı rayına bağlayın

Bu düyməyə güc verəcəkdir.

1123333 28
1123333 28

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

Əvvəlki addımlarda bağladığınız qara telin yanındakı birbaşa pinə bağlayın.

1123333 29
1123333 29

Addım 11. G26 -dan ağ teli Arduino -dakı 2 -ci pinlə bağlayın

Bu, Arduinoya düymələri aşkar etməyə imkan verəcək.

5 -dən 4 -cü hissə: Arduino Proqramının Qurulması

1123333 30
1123333 30

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

Arduinonun hazırlandığı yerdir və Arduino mikro nəzarətçisinə 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. Faylın üzərinə iki dəfə tıklayaraq və içindəki qovluğu əlçatan bir yerə köçürərək yüklənmiş faylı açın. Proqramı əslində qurmayacaqsınız, bunun əvəzinə arduino.exe üzərinə iki dəfə basaraq çıxarılan qovluqdan işlədəcəksiniz.

1123333 31
1123333 31

Addım 2. Batareya bölməsini Arduino -ya qoşun

Batareyanın arxa yuvasını gücləndirmək üçün Arduino konnektoruna daxil edin.

1123333 32
1123333 32

Addım 3. USB vasitəsilə kompüterinizə Arduino daxil edin

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

1123333 33
1123333 33

Addım 4. basın

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

Bu əmr Cihaz Menecerini açacaq.

1123333 34
1123333 34

Addım 5. Digər cihazlar altından Bilinməyən cihazı sağ vurun və Sürücü Proqramını Yeniləyin seçin

Bu seçimi görmürsənsə, Xüsusiyyətlər düyməsini vurun, Sürücü sekmesini seçin və Sürücünü Yeniləyin.

1123333 35
1123333 35

Addım 6. Sürücü proqramı üçün Kompüterimə göz at seçin

Bu, Arduino IDE ilə birlikdə gələn sürücüləri 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ğu açın

İçərisində sürücülər qovluğunu tapacaqsınız.

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ı barədə xəbərdarlıq alsanız davam etmək istədiyinizi təsdiq edin.

5 -ci hissə 5: Proqramlaşdırma Robotları

1123333 38
1123333 38

Addım 1. IDE qovluğundakı arduino.exe faylına iki dəfə tıklayaraq Arduino IDE-ni açın

Sizi boş bir layihə qarşılayacaq.

1123333 39
1123333 39

Addım 2. Robotunuzu inkişaf etdirmək üçün aşağıdakı kodu yapışdırın və ya yapışdırın

Aşağıdakı kod Arduino cihazınızı davam etdirəcək.

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

1123333 40
1123333 40

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

Bağlı Arduinoya proqram yaratmaq və yükləmək üçün sol üst küncdəki sağ ox düyməsini basın.

Proqram yükləndikdən sonra robot irəli getməyə davam edəcəyi üçün robotu səthdən qaldırmaq istəyə bilərsiniz

1123333 41
1123333 41

Addım 4. Bir dayanma açarı funksiyası əlavə edin (öldürmə açarı)

Kodun "void loop ()" bölümünə "write ()" funksiyasının üstünə bir stop keçmə funksiyası əlavə etmək üçün aşağıdakı kodu əlavə edin.

əgər (digitalRead (2) == YÜKSƏK) // bu əmr, düymə 2 Arduino {düyməsinə basıldığında işləyir {while (1) {leftMotor.write (90); // "90", servoya sağa dönməyi dayandırmasını bildirən servo üçün neytral mövqedir. Motor.write (90); }}

1123333 42
1123333 42

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

Artıq əlavə edilmiş stop switch kodu ilə kodu yükləyə və robotu sınaya bilərsiniz. Robotun dayanmasına səbəb olacaq stop düyməsinə basana qədər robot irəli getməlidir. Tam kod belə görünəcək:

#include // aşağıdakı əmr iki Servo leftMotor servo obyekti yaradır; 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); }

Misal

Aşağıdakı kod, robot bir maneə ilə qarşılaşdıqda sola dönməsini təmin etmək üçün robotda quraşdırılmış sensorlar istifadə edəcək. Hər hissənin necə istifadə ediləcəyi ilə bağlı ətraflı məlumat üçü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 kod konsolun çıxış müddətinin hər 1/4 saniyədə (250 ms) işarəsiz uzun müddətdə olmasını təmin edirSerialDelay = 0; const int loopPeriod = 20; // bu kod sensorun oxuma tezliyini 20 ms olaraq təyin edir, bu da 50 Hz işarəsiz uzun müddətdirLoopDelay = 0; // bu kod TRDU və ECHO funksiyalarını Arduino üzərindəki sancaqlara təyin edir. Onları fərqli bir şəkildə bağlasanız nömrələri buradan tənzimləyin const int ultrasonic2TrigPin = 8; const int ultrasonic2EchoPin = 9; int ultrasonic2Distance; int ultrasonic2Duration; // bu kod iki mümkün robot vəziyyətini təyin edir: irəli davam edin və ya sola dönün #define DRIVE_FORWARD 0 #define TURN_LEFT 1 int state = DRIVE_FORWARD; // 0 = irəliləməyə davam edin (VARSAYILAN), 1 = sola dönün void setup () {Serial.begin (9600); // bu sensor pin konfiqurasiyasını təyin edir pinMode (ultrasonic2TrigPin, ÇIXIŞ); pinMode (ultrasəs2EchoPin, GİRİŞ); // bu motoru Arduino pinlərinə leftMotor.attach (12) təyin edir; rightMotor.attach (13); } void loop () {if (digitalRead (2) == HIGH) // bu kod bir '' stop '' {while (1) {leftMotor.write (90); rightMotor.write (90); }} debugOutput (); // bu kod, (millis () - timeLoopDelay> = loopPeriod) {readUltrasonicSensors (); // bu kod sensora ölçülmüş məsafə vəziyyəti haqqında məlumatları oxumağı və saxlamağı tapşırır 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ç bir şey yoxdursa. heç bir maneə olmadığı təqdirdə bəzi ultrasəs cihazları üçün məsafə mənfi olacaq {// irəli sürmək sağMotor.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 0,5 saniyə çəkir. Təkərlərinizin ölçüsü işarəsiz uzun turnStartTime = millis () nümunəsindəki ölçüdən fərqlənirsə, bu dəyəri tənzimləməyiniz lazım ola bilər. // robot dönməyə başlayanda vəziyyəti saxla ((millis ()-turnStartTime) <timeToTurnLeft) // timeToTurnLeft (500) keçənə qədər bu dövrəni saxla {// sola dön, hər ikisi "180" olduqda, robot 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 əmri dəyişdirməyiniz lazım ola bilər. digitalWrite (ultrasonic2TrigPin, HIGH); gecikməMikrosaniyələr (10); // TRIG pinini ən azı 10 mikrosaniyə digitalWrite (ultrasonic2TrigPin, LOW) üçün yüksək çəkin; 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ə: