Obsah:

ROADRUNNER: 5 krokov
ROADRUNNER: 5 krokov

Video: ROADRUNNER: 5 krokov

Video: ROADRUNNER: 5 krokov
Video: WHO WINS THIS FIGHT? 2024, November
Anonim
ROADRUNNER
ROADRUNNER

Roadrunner je malé automatizované vozidlo, ktoré má za úlohu prepravovať nápojové plechovky smädným užívateľom.

Ako to funguje? Na hornú základňu vozidla je umiestnená plechovka a hmotnosť plechovky spustí malé tlačidlo, ktoré transportu oznámi, že je pripravený pracovať. Roadrunner, ktorý sa chce viesť, sleduje po zemi cestu vo forme čiernej čiary, ktorá naznačuje, kam má ísť, a vďaka použitiu fotosenzorov je schopný odhaliť, keď zíde z cesty, pričom koriguje svoj smer., zostať takýmto spôsobom, vždy vo vnútri trate. Akonáhle vozidlo príde k užívateľovi, zdvihne plechovku od nápoja a zastaví malú transportnú stanicu na tom istom mieste. Svoj pochod nebude znova posudzovať, kým na neho používateľ plechovku nevráti, aby sa vrátil k východiskovému bodu a dokončil prácu.

Krok 1: Nástroje a materiály

Nástroje a materiály
Nástroje a materiály
Nástroje a materiály
Nástroje a materiály

Krok 2: Zostavenie hardvéru

Zostava hardvéru
Zostava hardvéru
Zostava hardvéru
Zostava hardvéru
Zostava hardvéru
Zostava hardvéru

1. TELO

Na telo sme použili hliníkový plech, ktorý sme nastrihali a ohýbali v tvare, aký sme chceli. Tiež sme urobili všetky otvory, ktoré budú potrebné pre skrutky.

2. KOLESÁ

Použili sme 2 kolesá z hry Mecano, ktoré sa perfektne hodili k nášmu robotovi. Serva prechádzajú pod dosku spojenú pomocou skrutiek. Na predné koleso sme použili „voľné“koleso, takže sa môže ľahko pohybovať v ľubovoľnom smere.

3. FOTOSENZORY

Pre fotosenzory RDL sme použili obvodovú dosku a privarili sme k nej obvod, ktorý obsahuje odpor, LDR, kladný, záporný a signál.

4. ARDUINO DOSKA

Dosku Arduino sme pripevnili k doske pomocou skrutiek. Potom sme k nemu už len pripojili celý obvod. Na napájanie dosky sme použili 2 9V batérie, ktoré sme spojili a zapojili do Arduina.

5. HORNÁ DOSKA

Na hornú dosku sme použili laserový rezací stroj na rezanie PMMA. Tento tvar sme navrhli pomocou programu AutoCad. Skladá sa z veľkého taniera, 3 kruhových krúžkov a kruhového kusu, ktorý sa zmestí do krúžkov. Dali sme priestor tanieru, aby sme zmestili gombík.

Krok 3: Elektrické pripojenia

Elektrické pripojenia
Elektrické pripojenia

1. Pripojenie servomotorov:

Servomotory pozostávajú z troch káblov; jeden žltý alebo oranžový pre signál, červený pre napájanie (Vcc) a čierny alebo hnedý pre uzemnenie (GND). Červený a hnedý je pripevnený k zodpovedajúcim kolíkom na Arduino (5V a GND). Jedno servo je zapojené na pin 10 PWM a druhé na pin PWM 11.

2. Pripojovacie tlačidlo:

Elektronické tlačidlá pôsobia trochu zvláštnym spôsobom; umožniť priechod napätia cez piny diagonálne, to znamená, že ak máme štyri piny, musíme zapojiť vstup a výstup iba na dva piny, 1-4 alebo 2-3, aby fungovali. Ak napríklad zvolíme piny 1-4, pripojíme uzemnenie (GND) na kolík 4 a výstup sa spojí s kolíkom PWM 9 a naopak spolu s odporom 1 kOhm ho spojíme s 5 V (Vcc).

3. Pripojenie fotosenzorov:

Aby sme pripojili fotosenzory, musíme umiestniť jednu z nôh priamo na napájanie Vcc a druhé ju súčasne pripojiť na analógový kolík (v tomto prípade na kolíky A0 a A1) a na uzemnenie GND spolu s odpor 1 kOhm.

Poznámka:

Malé vodiče môžete k vodičom spájkovať, ak sa drôty nehodia priamo do Arduina, alebo použiť protoboard na uľahčenie rôznych spojení. V tomto projekte sme použili spojovacie pásy pre rôzne spoje.

Krok 4: Programovanie Arduina

Programovanie Arduina
Programovanie Arduina
Programovanie Arduina
Programovanie Arduina

KÓD

#include Servo myservoL;

Servo myservoR;

int inPin = 7;

int buttonVal = 1;

neplatné nastavenie () {

// SERVOMOTORY

myservoL.attach (10);

myservoR.attach (11);

Serial.begin (9600); }

prázdna slučka () {

int LDR_L = analogRead (A2);

int LDR_R = analogRead (A1);

buttonVal = digitalRead (inPin);

// BALIŤ VĽAVO

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

myservoL.write (180);

//Serial.println(LDR_L); }

inak {

myservoL.write (92);

//Serial.println(LDR_L);

}

// BALIŤ SPRÁVNE

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

myservoR.write (-270);

//Serial.println(LDR_R); }

inak {

myservoR.write (92);

//Serial.println(LDR_R); }

}

Odporúča: