Ö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ı
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
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.
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.
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
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.
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.
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.
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
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.
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.
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.
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).
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.
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.
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.
Addım 8. Qara keçid telini I14 pinindən sensorun solundakı ilk mavi rəngli pinə bağlayın
Bu sensoru yerə qoyacaq.
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.
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ı
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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ı
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.
Addım 2. Batareya paketini Arduinoya qoşun
Güc vermək üçün batareyanın arxa yuvasını Arduino konnektoruna qoşun.
Addım 3. Arduino'yu USB vasitəsilə kompüterinizə qoşun
Windows çox güman ki, cihazı tanımayacaq.
Addım 4. basın
⊞ Win+R və yazın devmgmt.msc.
Bu cihaz menecerini işə salacaq.
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.
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.
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.
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ı
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.
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. }
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
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); }}
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 (); }}