İçindekiler:

ROADRUNNER: 5 Adım
ROADRUNNER: 5 Adım

Video: ROADRUNNER: 5 Adım

Video: ROADRUNNER: 5 Adım
Video: Jefe X Bekom X Bar-B - "ROADRUNNER" [Official Music Video] 2024, Kasım
Anonim
YOL SÜRÜCÜSÜ
YOL SÜRÜCÜSÜ

Roadrunner, içecek kutularını susamış kullanıcılara taşıma işlevine sahip küçük bir otomatik araçtır.

Nasıl çalışır? Aracın üst tabanına bir kutu yerleştirilir ve kutunun ağırlığı, nakliyeciye çalışmaya hazır olduğunu bildiren küçük bir düğmeyi tetikler. Roadrunner, kendisine rehberlik etmek için yerde, nereye gitmesi gerektiğini gösteren siyah bir çizgi şeklinde bir yol izler ve fotosensörlerin kullanımı sayesinde, yoldan çıktığında algılayarak yönünü düzeltebilir., bu şekilde kalmak, her zaman pistin içinde. Araç kullanıcıya ulaştığında içecek kutusunu alarak küçük nakliye aracını aynı yerde durdurur. Kullanıcı başlangıç noktasına geri dönmek ve işini bitirmek için kutuyu tekrar yerine koyana kadar yürüyüşünü yeniden değerlendirmeyecektir.

Adım 1: Araçlar ve Malzemeler

Araçlar ve Malzemeler
Araçlar ve Malzemeler
Araçlar ve Malzemeler
Araçlar ve Malzemeler

Adım 2: Donanım Montajı

Donanım Montajı
Donanım Montajı
Donanım Montajı
Donanım Montajı
Donanım Montajı
Donanım Montajı

1. GÖVDE

Gövde için alüminyum levha kullandık, istediğimiz şekilde kesip büktük. Ayrıca vidalar için gerekli olacak tüm delikleri de yaptık.

2. TEKERLEKLER

Robotumuza mükemmel şekilde uyan bir Mecano oyunundan 2 tekerlek kullandık. Servolar vidalar yardımıyla birleştirilen plakanın altına girer. Ön tekerlek için "serbest" bir tekerlek kullandık, böylece her yöne kolayca gidebilir.

3. FOTOSENSÖRLER

RDL fotosensörleri için bir devre kartı kullandık ve devreyi ona kaynakladık, bir direnç, LDR, pozitif, negatif ve sinyal içeriyor.

4. ARDUINO KURULU

Arduino kartını vidalarla plakaya tutturduk. Sonra tüm devreyi ona bağladık. Kartı beslemek için birleştirdiğimiz ve Arduino'ya taktığımız 2 adet 9V pil kullandık.

5. ÜST PLAKA

Üst plaka için PMMA'yı kesmek için bir lazer kesim makinesi kullandık. Bu şekli AutoCad ile tasarladık. Büyük bir plaka, 3 dairesel halka ve halkaların içine sığacak dairesel bir parçadan oluşur. Bir düğme sığdırmak için plakaya boşluk bıraktık.

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

Elektrik bağlantıları
Elektrik bağlantıları

1. Servomotorların Bağlanması:

Servo motorlar üç kablodan oluşur; sinyal için bir sarı veya turuncu, güç için kırmızı (Vcc) ve toprak için siyah veya kahverengi (GND). Kırmızı ve kahverengi olan Arduino'daki (5V ve GND) ilgili pinlere bağlanır. Bir servo PWM pin 10'a ve diğeri PWM pin 11'e bağlanmıştır.

2. Bağlantı Düğmesi:

Elektronik düğmeler biraz tuhaf bir şekilde çalışır; voltajı pinler arasında çapraz olarak geçirmemize izin verin, yani dört pinimiz varsa, giriş ve çıkışı sadece 1-4 veya 2-3 numaralı iki pinde bağlamamız gerekir. Örneğin, 1-4 pinlerini seçersek, toprağı (GND) pin 4'e bağlayacağız ve çıkış PWM 9 pinine bağlanacak ve sırayla 1kOhm'luk bir dirençle birlikte 5V'a bağlayacağız (Vcc).

3. Fotosensörlerin Bağlanması:

Fotosensörleri bağlamak için, ayaklardan birini doğrudan Vcc kaynağına, diğerini aynı anda bir analog pime (bu durumda A0 ve A1 pimlerine) ve GND ile birlikte toprağa bağlamalıyız. 1kOhm'luk bir direnç.

Not:

Teller doğrudan Arduino'ya uymuyorsa küçük konektörleri tellere lehimleyebilir veya farklı bağlantıları kolaylaştırmak için bir protokol kullanabilirsiniz. Bu projede farklı derzler için bağlantı şeritleri kullandık.

Adım 4: Arduino'yu Programlama

Arduino'yu Programlama
Arduino'yu Programlama
Arduino'yu Programlama
Arduino'yu Programlama

KOD

#include Servo myservoL;

Servo myservoR;

int inPin = 7;

int düğmeDeğeri = 1;

geçersiz kurulum() {

//SERVO MOTORLAR

myservoL.attach(10);

myservoR.attach(11);

Seri.başla(9600); }

boşluk döngüsü () {

int LDR_L = analogRead(A2);

int LDR_R = analogRead(A1);

buttonVal = digitalRead(inPin);

//PAKET SOL

if (LDR_L > 590 && buttonVal == 0) {

myservoL.write(180);

//Serial.println(LDR_L); }

Başka {

myservoL.write (92);

//Serial.println(LDR_L);

}

//SAĞA PAKETLE

if (LDR_R > 750 && buttonVal == 0) {

myservoR.write(-270);

//Serial.println(LDR_R); }

Başka {

myservoR.write (92);

//Serial.println(LDR_R); }

}

Önerilen: