Mündəricat:

ROADRUNNER: 5 addım
ROADRUNNER: 5 addım

Video: ROADRUNNER: 5 addım

Video: ROADRUNNER: 5 addım
Video: Обзор автомобильного видеорегистратора Prestigio RoadRunner 520 2024, Noyabr
Anonim
ROADRUNNER
ROADRUNNER

Roadrunner, susuz istifadəçilərə içki qutuları daşımaq funksiyasına malik kiçik bir avtomatlaşdırılmış avtomobildir.

Bu necə işləyir? Avtomobilin üst hissəsinə bir banka qoyulur və qutunun çəkisi nəqliyyata işə hazır olduğunu bildirən kiçik bir düyməni işə salır. Özünü istiqamətləndirmək üçün Roadrunner, qara bir xətt şəklində yerdəki bir yolu izləyir və bu, hara getməli olduğunu göstərir və fotosensorların istifadəsi sayəsində yoldan çıxdıqda, istiqamətini düzəltmək imkanı əldə edir., bu şəkildə qalmaq, həmişə trek daxilində. Nəqliyyat vasitəsi istifadəçiyə çatdıqda, içki qutusunu götürür və kiçik nəqliyyatı eyni yerdə saxlayır. Başlanğıc nöqtəsinə qayıtmaq və işini bitirmək üçün istifadəçi qutunu yenidən taxana qədər yürüşünü yenidən yoxlamayacaq.

Addım 1: Alətlər və materiallar

Alətlər və materiallar
Alətlər və materiallar
Alətlər və materiallar
Alətlər və materiallar

Addım 2: Avadanlıq Montajı

Avadanlıq Montajı
Avadanlıq Montajı
Avadanlıq Montajı
Avadanlıq Montajı
Avadanlıq Montajı
Avadanlıq Montajı

1. Bədən

Bədən üçün istədiyimiz forma ilə kəsib əydiyimiz bir alüminium lövhədən istifadə etdik. Vintlər üçün lazım olacaq bütün delikləri də etdik.

2. Təkərlər

Robotumuza mükəmməl uyğun Mecano oyunundan 2 təkər istifadə etdik. Servo vintlərin köməyi ilə birləşdirilmiş boşqabın altına girir. Ön təkər üçün "sərbəst" təkərdən istifadə etdik, buna görə istənilən istiqamətdə asanlıqla gedə bilər.

3. FOTOSENSORLAR

RDL fotosensorları üçün bir dövrə lövhəsi istifadə etdik və dövrəni qaynaqladıq, buna bir müqavimət, LDR, müsbət, mənfi və siqnal daxildir.

4. ARDUINO BOARD

Arduino lövhəsini vintlərdən istifadə edərək boşqaba bağladıq. Sonra bütün dövrəni ona bağladıq. Lövhəni təchiz etmək üçün birləşdirdiyimiz və Arduino'ya qoşduğumuz 2 9V batareyadan istifadə etdik.

5. YÜKLƏK PLAKA

Üst boşqab üçün PMMA kəsmək üçün lazer kəsmə maşını istifadə etdik. Bu formanı AutoCad ilə dizayn etdik. Böyük bir boşqabdan, 3 dairəvi halqadan və halqalara sığacaq dairəvi parçadan ibarətdir. Bir düyməyə sığdırmaq üçün boşqaba yer verdik.

Addım 3: Elektrik Bağlantıları

Elektrik Bağlantıları
Elektrik Bağlantıları

1. Servomotorların birləşdirilməsi:

Servomotorlar üç kabeldən ibarətdir; siqnal üçün bir sarı və ya narıncı, güc üçün qırmızı (Vcc) və yer üçün qara və ya qəhvəyi (GND). Qırmızı və qəhvəyi rəng Arduino (5V və GND) üzərindəki pinlərə yapışdırılır. Bir servo PWM pin 10 -a, digəri isə PWM pin 11 -ə bağlanır.

2. Birləşdirmə düyməsi:

Elektron düymələr bir qədər özünəməxsus şəkildə işləyir; sancaqlar üzərindəki gərginliyi diaqonal olaraq keçirməyə icazə verin, yəni dörd sancağımız varsa, giriş və çıxışı işləmək üçün 1-4 və ya 2-3 pinlə birləşdirməliyik. Məsələn, 1-4 sancaqları seçsək, torpağı (GND) 4-cü pinlə bağlayacağıq və çıxış PWM 9 pininə qoşulacaq və öz növbəsində 1kOhm müqavimətlə birlikdə 5V-ə bağlayacağıq (Vcc).

3. Fotosensorları birləşdirmək:

Fotosensorları bağlamaq üçün ayaqlardan birini birbaşa Vcc təchizatına, digərini isə eyni vaxtda analoq pinlə (bu halda A0 və A1 sancaqlarına) və yerə GND ilə birləşdirməliyik. 1kOhm müqavimət.

Qeyd:

Kiçik bağlayıcıları tellərə birbaşa Arduino -ya uyğun gəlmirsə və ya fərqli əlaqələri asanlaşdırmaq üçün protoboarddan istifadə edə bilərsiniz. Bu layihədə fərqli birləşmələr üçün birləşdirici zolaqlar istifadə etdik.

Addım 4: Arduino proqramlaşdırılması

Arduino proqramlaşdırma
Arduino proqramlaşdırma
Arduino proqramlaşdırma
Arduino proqramlaşdırma

KOD

#Servo myservoL daxil edin;

Servo myservoR;

int inPin = 7;

int buttonVal = 1;

boş quraşdırma () {

// SERVOMOTORS

myservoL.attach (10);

myservoR.attach (11);

Serial.begin (9600); }

boşluq döngəsi () {

int LDR_L = analogRead (A2);

int LDR_R = analogRead (A1);

buttonVal = digitalRead (inPin);

// PAKET SOL

əgər (LDR_L> 590 && buttonVal == 0) {

myservoL.write (180);

//Serial.println(LDR_L); }

başqa {

myservoL.write (92);

//Serial.println(LDR_L);

}

// SAĞ PAKET

əgər (LDR_R> 750 && buttonVal == 0) {

myservoR.write (-270);

//Serial.println(LDR_R); }

başqa {

myservoR.write (92);

//Serial.println(LDR_R); }

}

Tövsiyə: