Obsah:

ROADRUNNER: 5 kroků
ROADRUNNER: 5 kroků

Video: ROADRUNNER: 5 kroků

Video: ROADRUNNER: 5 kroků
Video: CALIFORNIAN EARTH-CUCKOO: The fastest roadrunner that eats snakes and lizards 2024, Listopad
Anonim
ROADRUNNER
ROADRUNNER

Roadrunner je malé automatizované vozidlo, které má funkci přepravy nápojových plechovek žíznivým uživatelům.

Jak to funguje? Na horní základnu vozidla je umístěna plechovka a hmotnost plechovky spustí malé tlačítko, které přepravě oznámí, že je připravena pracovat. Aby se Roadrunner nechal vést, sleduje po zemi cestu v podobě černé čáry, která ukazuje, kam má jít, a díky použití fotosenzorů je schopen detekovat, kdy vyjede z cesty, přičemž koriguje svůj směr, zůstat tímto způsobem, vždy uvnitř trati. Jakmile vozidlo dorazí k uživateli, zvedne plechovku s nápojem a zastaví malou přepravku na stejném místě. Nebude znovu posuzovat svůj pochod, dokud na něj uživatel nevrátí plechovku, aby se vrátil do výchozího bodu a dokončil svou práci.

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: Montáž hardwaru

Sestava hardwaru
Sestava hardwaru
Sestava hardwaru
Sestava hardwaru
Sestava hardwaru
Sestava hardwaru

1. TĚLO

Na korpus jsme použili hliníkovou desku, kterou jsme nařezali a ohýbali tvarem, jaký jsme chtěli. Vyrobili jsme také všechny otvory, které budou pro šrouby vyžadovány.

2. KOLA

Použili jsme 2 kola z hry Mecano, která se perfektně hodila k našemu robotovi. Serva jdou pod desku spojenou pomocí šroubů. Pro přední kolo jsme použili „volné“kolo, takže se může snadno pohybovat jakýmkoli směrem.

3. FOTOSENZORY

Pro fotosenzory RDL jsme použili desku s obvody a přivařili jsme k ní obvod, který obsahuje odpor, LDR, kladný, záporný a signál.

4. ARDUINO Board

Desku Arduino jsme připevnili k desce pomocí šroubů. Pak jsme k němu jen připojili celý obvod. K napájení desky jsme použili 2 9V baterie, které jsme spojili a zapojili do Arduina.

5. NEJLEPŠÍ DESKA

Na horní desku jsme použili laserový řezací stroj na řezání PMMA. Tento tvar jsme navrhli pomocí aplikace AutoCad. Skládá se z velké desky, 3 kruhových prstenů a kruhového kusu, který se vejde do prstenů. Dali jsme prostor talíři, aby se nám vešel knoflík.

Krok 3: Elektrická připojení

Elektrická připojení
Elektrická připojení

1. Připojení servomotorů:

Servomotory se skládají ze tří kabelů; jeden žlutý nebo oranžový pro signál, červený pro napájení (Vcc) a černý nebo hnědý pro uzemnění (GND). Červený a hnědý jsou připojeny k odpovídajícím kolíkům na Arduinu (5V a GND). Jedno servo je zapojeno na pin 10 PWM a druhé na pin 11 PWM.

2. Tlačítko pro připojení:

Elektronická tlačítka fungují poněkud zvláštním způsobem; umožňují průchod napětí napříč piny diagonálně, to znamená, že pokud máme čtyři piny, musíme připojit vstup a výstup pouze na dva piny, 1-4 nebo 2-3, aby fungovaly. Pokud například zvolíme piny 1-4, připojíme uzemnění (GND) ke kolíku 4 a výstup se připojí ke kolíku PWM 9 a naopak společně s odporem 1 kOhm jej připojíme k 5 V (Vcc).

3. Připojení fotosenzorů:

Pro připojení fotosenzorů musíme umístit jednu z nožiček přímo na napájení Vcc a druhou ji současně připojit k analogovému kolíku (v tomto případě k pinům A0 a A1) a k uzemnění GND společně s odpor 1 kOhm.

Poznámka:

Malé vodiče můžete k vodičům připájet, pokud se dráty nevejdou přímo do Arduina, nebo použít protoboard k usnadnění různých připojení. V tomto projektu jsme použili spojovací pásy pro různé spoje.

Krok 4: Programování Arduina

Programování Arduina
Programování Arduina
Programování Arduina
Programování Arduina

KÓD

#include Servo myservoL;

Servo myservoR;

int inPin = 7;

int buttonVal = 1;

neplatné nastavení () {

// SERVOMOTORY

myservoL.attach (10);

myservoR.attach (11);

Serial.begin (9600); }

prázdná smyčka () {

int LDR_L = analogRead (A2);

int LDR_R = analogRead (A1);

buttonVal = digitalRead (inPin);

// BALENÍ VLEVO

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

myservoL.write (180);

//Serial.println(LDR_L); }

jinak {

myservoL.write (92);

//Serial.println(LDR_L);

}

// BALENÍ SPRÁVNĚ

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

myservoR.write (-270);

//Serial.println(LDR_R); }

jinak {

myservoR.write (92);

//Serial.println(LDR_R); }

}

Doporučuje: