ROADRUNNER: 5 krokov
ROADRUNNER: 5 krokov
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); }

}