Obsah:

Speed Track Arduino Hot Wheels Část 2 - Kód: 5 kroků
Speed Track Arduino Hot Wheels Část 2 - Kód: 5 kroků

Video: Speed Track Arduino Hot Wheels Část 2 - Kód: 5 kroků

Video: Speed Track Arduino Hot Wheels Část 2 - Kód: 5 kroků
Video: Lesson 24: Smart Car Part 2: Moving Forwared, Reverse, left and right and Controling Speed of Car 2024, Červenec
Anonim
Image
Image

V první části tohoto projektu jsme vybudovali hardware pro prototyp na 2 prkénkách.

A v této části si projdeme kód, jak funguje, a poté ho vyzkoušíme.

Nezapomeňte se podívat na video výše, kde najdete celou recenzi kódu a ukázku pracovního kódu.

Krok 1: MASTER i SLAVE ve stejném kódu

Kód je rozdělen na 2 části, ale uvnitř stejného souboru. Používám #define a #ifdef k určení, který kód bude kompilován nebo ignorován, abych mohl oddělit jakýkoli kód, který je jen pro MASTER breadboard a kód, který je jen pro SLAVE breadboard.

V zásadě platí, že pokud je definován MASTER nalezen, bude zkompilován jakýkoli kód, který je umístěn v bloku kódu MASTER, a jakýkoli kód mimo tento blok bude při kompilaci odstraněn.

#ifdef MASTER

// Zde je hlavní kód

#jiný

#define SLAVE

// Zde je kód specifický pro slave

#endif

Stejnou technikou také používám #define SLAVE, když je MASTER sestaven, takže si musíte dělat starosti jen s definováním MASTERu, nebo není povoleno definovat SLAVE.

Krok 2: Moduly BLUETOOTH hovoří prostřednictvím sériového čtení a zápisu

V tomto projektu hovoří pouze SLAVE breadboard s MASTER breadboardem. MASTER nikdy nehovoří, pouze naslouchá a poté jedná podle vstupujících dat.

Moduly mluví a poslouchají pomocí vestavěné třídy Serial v kódovacím ekosystému Arduino.

Moduly Bluetooth komunikují rychlostí 38 400 baudů, takže obě cesty kódu inicializují svou sériovou komunikaci pomocí:

Serial.begin (38400);

A SLAVE používá:

Serial.write (data zde);

K rozhovoru s MASTEREM a MASTER používá:

data = Serial.read ();

Chcete -li poslouchat sériový proud, přečíst si jeho obsah a uložit jej do proměnné.

Krok 3: Ovládání závodu

SLAVE řekne MASTEROVI, zda je v závodním režimu nebo v režimu připravenosti, prostřednictvím zeleného tlačítka připojeného k jeho mikrořadiči. V pohotovostním režimu infračervené senzory nedělají nic a MASTER zobrazí na displeji 8 pomlček, což znamená, že je v režimu připravenosti.

Když SLAVE řekne MASTEROVI, že závod začne, SLAVE začne vyzvedávat infračervené senzory na jeho straně (začátek závodní dráhy), aby projížděla auta pod ním.

Jak každé auto projde pod každým IR senzorem, pošle A (auto 1) nebo B (auto 2) na MASTER.

Když MASTER obdrží A nebo B, aktivuje časovač pro toto konkrétní auto a poté čeká, až vůz projede pod odpovídajícím IR senzorem v cílové rovince.

Displej je aktualizován každých 50 ms, aby zobrazoval aktuální čas pro každé auto v sekundách se 2 desetinnými místy.

Jakmile obě auta dorazí do cíle, MASTER rozhodne, které auto bylo nejrychlejší, a na displeji bliká, aby označil vítěze.

Krok 4: Zbytek kódu

Zbytek kódu je pouze obslužný kód, který buď ovládá zobrazování dat na 8místném displeji, nebo zpracovává logiku stisknutí tlačítka atd.

Na konci videa v úvodní části tohoto projektu ukazuji příklad kódu běžícího na 2 prkénkách, takže si to určitě zkontrolujte!

Můžete získat kód pro tento projekt z mého github repo.

Krok 5: Co bude dál?

To je prozatím vše … v části 3 se podíváme na přesun komponent z prkénka na něco trvalejšího … zůstaňte naladěni!

Doufám, že se vám tento projekt líbí!

Následujte mě na:

www.youtube.com/c/unexpectedmaker

twitter.com/unexpectedmaker

www.facebook.com/unexpectedmaker

www.instagram.com/unexpectedmaker

www.tindie.com/stores/seonr/

Doporučuje: