Ö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ı
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ı
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.
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.
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
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.
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.
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.
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
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.
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.
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.
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).
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.
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.
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.
Addım 8. Qara tullanan teli I14 pinindən sensorun solundakı ilk mavi dəmir pinə bağlayın
Bu sensoru yerə qoyacaq.
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.
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ı
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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ı
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.
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.
Addım 3. USB vasitəsilə kompüterinizə Arduino daxil edin
Çox güman ki, Windows cihazı tanımayacaq.
Addım 4. basın
Win+R və yazın devmgmt.msc.
Bu əmr Cihaz Menecerini açacaq.
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.
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.
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.
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ı
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.
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. }
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
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); }}
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 (); }}