Kazalo:

ROADRUNNER: 5 korakov
ROADRUNNER: 5 korakov

Video: ROADRUNNER: 5 korakov

Video: ROADRUNNER: 5 korakov
Video: HENRY Birdwatching: 5. Roadrunners Racing - "The President's Own" United States Marine Band 2024, November
Anonim
ROADRUNNER
ROADRUNNER

Roadrunner je majhno avtomatizirano vozilo, ki ima funkcijo transporta pločevink za pijačo do žejnih uporabnikov.

Kako deluje? Na zgornji podnožje vozila je nameščena pločevinka, teža pločevinke pa sproži majhen gumb, ki prevozniku pove, da je pripravljen za delo. Roadrunner za vodenje sledi poti na tleh v obliki črne črte, ki označuje, kam naj gre, zahvaljujoč uporabi fotosenzorjev pa lahko zazna, kdaj se umakne, in popravi svojo smer, da ostanejo na ta način, vedno znotraj proge. Ko vozilo prispe do uporabnika, prevzame pločevinko za pijačo, zaradi česar se mali prevoz ustavi na istem mestu. Svojega pohoda ne bo prenovil, dokler uporabnik nanj ne postavi pločevinke, da se vrne na izhodišče in konča svoje delo.

Korak: Orodja in materiali

Orodja in materiali
Orodja in materiali
Orodja in materiali
Orodja in materiali

2. korak: Sestavljanje strojne opreme

Sestavljanje strojne opreme
Sestavljanje strojne opreme
Sestavljanje strojne opreme
Sestavljanje strojne opreme
Sestavljanje strojne opreme
Sestavljanje strojne opreme

1. TELO

Za telo smo uporabili aluminijasto ploščo, ki smo jo razrezali in upognili v želeni obliki. Naredili smo tudi vse luknje, ki bodo potrebne za vijake.

2. KOLESA

Uporabili smo 2 kolesi iz igre Mecano, ki se popolnoma prilegata našemu robotu. Servomotorji gredo pod ploščo, spojeno s pomočjo vijakov. Za sprednje kolo smo uporabili "prosto" kolo, tako da lahko zlahka gre v katero koli smer.

3. FOTOSENZORJI

Za fotosenzorje RDL smo uporabili vezje in vanj privarili vezje, ki vključuje upor, LDR, pozitiven, negativen in signal.

4. TABLA ARDUINO

Ploščo Arduino smo pritrdili na ploščo z vijaki. Nato smo samo povezali vse vezje z njim. Za dobavo plošče smo uporabili 2 9V bateriji, ki smo jih združili in priključili v Arduino.

5. Zgornja plošča

Za zgornjo ploščo smo uporabili laserski stroj za rezanje PMMA. To obliko smo oblikovali s programom AutoCad. Sestavljen je iz velike plošče, 3 krožnih obročev in krožnega kosa, ki se prilega obročem. Plošči smo dali prostor, da smo lahko namestili gumb.

3. korak: Električne povezave

Električni priključki
Električni priključki

1. Priključitev servomotorjev:

Servomotorji so sestavljeni iz treh kablov; ena rumena ali oranžna za signal, rdeča za napajanje (Vcc) in črna ali rjava za maso (GND). Rdeča in rjava sta pritrjena na ustrezne zatiče na Arduinu (5V in GND). En servo je priključen na PWM pin 10, drugi pa na PWM pin 11.

2. Gumb za povezovanje:

Elektronski gumbi delujejo nekoliko nenavadno; dovolite, da napetost preide preko zatičev diagonalno, to je, če imamo štiri zatiče, moramo vhod in izhod povezati le v dveh zatičih, 1-4 ali 2-3, da delujeta. Na primer, če izberemo zatiče 1-4, bomo ozemljitev (GND) priključili na pin 4, izhod pa se bo priključil na pin 9 PWM in ga skupaj z uporom 1kOhm priključil na 5V (Vcc).

3. Priključitev fotosenzorjev:

Za priključitev fotosenzorjev moramo eno nogo namestiti neposredno na napajanje Vcc, drugo pa istočasno priključiti na analogni zatič (v tem primeru na zatiča A0 in A1) in na ozemljitveni GND skupaj z odpornost 1 kOhm.

Opomba:

Majhne konektorje lahko spajkate na žice, če se žice ne prilegajo neposredno v Arduino, ali uporabite protoboard za olajšanje različnih povezav. V tem projektu smo uporabili povezovalne trakove za različne spoje.

4. korak: Programiranje Arduina

Programiranje Arduina
Programiranje Arduina
Programiranje Arduina
Programiranje Arduina

KODA

#include Servo myservoL;

Servo myservoR;

int inPin = 7;

int buttonVal = 1;

void setup () {

// SERVOMOTORJI

myservoL.attach (10);

myservoR.attach (11);

Serial.begin (9600); }

void loop () {

int LDR_L = analogno branje (A2);

int LDR_R = analogno branje (A1);

buttonVal = digitalno branje (inPin);

// PAKIRAJTE LEVO

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

myservoL.write (180);

//Serial.println(LDR_L); }

drugače {

myservoL.write (92);

//Serial.println(LDR_L);

}

// PAKIRAJ DESNO

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

myservoR.write (-270);

//Serial.println(LDR_R); }

drugače {

myservoR.write (92);

//Serial.println(LDR_R); }

}

Priporočena: