Kazalo:

Arduino Hot Wheels Speed track 2. del - Koda: 5 korakov
Arduino Hot Wheels Speed track 2. del - Koda: 5 korakov

Video: Arduino Hot Wheels Speed track 2. del - Koda: 5 korakov

Video: Arduino Hot Wheels Speed track 2. del - Koda: 5 korakov
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, November
Anonim
Image
Image

V prvem delu tega projekta smo izdelali strojno opremo za prototip na dveh ploščah.

V tem delu bomo pregledali kodo, kako deluje in jo nato preizkusili.

Za celoten pregled kode in predstavitev delovne kode si oglejte zgornji video.

1. korak: MASTER in SLAVE v isti kodi

Koda je v dveh delih, vendar znotraj iste datoteke. Uporabljam #define in #ifdef, da določim, katera koda bo sestavljena ali prezrta, tako da lahko ločim vsako kodo, ki je samo za matično ploščo MASTER, in kodo, ki je samo za ploščo SLAVE.

V bistvu, če najdemo definicijo MASTER, bo vsaka koda, ki se nahaja znotraj bloka kode MASTER, prevedena in vsa koda zunaj tega bloka bo odstranjena v času prevajanja.

#ifdef MASTER

// Tukaj je glavna koda

#sicer

#define SLAVE

// Tukaj je posebna koda pomožnika

#endif

Isto tehniko uporabljam tudi za #define SLAVE, ko je MASTER sestavljen, zato vas mora skrbeti le, če definirate MASTER ali ne, da omogočite definiranje SLAVE.

2. korak: Moduli BLUETOOTH se pogovarjajo prek zaporednega branja in pisanja

V tem projektu se le plošča SLAVE pogovarja z matično ploščo MASTER. MASTER nikoli ne odgovori, le posluša in nato deluje na podlagi podatkov, ki prihajajo.

Moduli govorijo in poslušajo z uporabo vgrajenega razreda Serial v kodirajočem ekosistemu Arduino.

Moduli Bluetooth komunicirajo s hitrostjo 38400 baud, zato obe kodni poti inicializirata serijsko komunikacijo z:

Serial.begin (38400);

SLAVE pa uporablja:

Serial.write (podatki tukaj);

Za pogovor z mojstrom MASTER uporablja:

podatki = Serial.read ();

Poslušati serijski tok in prebrati vsebino ter ga shraniti v spremenljivko.

3. korak: Nadzor dirke

SLAVE pove zelenemu gumbu, ki je priključen na mikrokrmilnik, MASTER-ju, če je v večji pripravljenosti ali pripravljenosti. V pripravljenem načinu senzorji IR ne storijo ničesar, MASTER pa bo na zaslonu prikazal 8 črtic, ki označujejo, da je v načinu pripravljenosti.

Ko SLAVE pove MASTER -ju, da se bo dirka začela, SLAVE začne anketirati IR senzorje na svoji strani (začetek dirkalne steze), da avtomobili gredo spodaj.

Ko vsak avto preide pod vsak IR senzor, pošlje MASTERU A (avto 1) ali B (avto 2).

Ko MASTER prejme A ali B, omogoči časovnik za določen avtomobil in nato počaka, da avto preide pod ustrezen IR senzor na ciljni črti.

Zaslon se posodobi vsakih 50 ms, da prikaže trenutni čas za vsak avtomobil v sekundah z dvema decimalnima mestoma.

Ko oba avtomobila prideta na cilj, se MASTER odloči, kateri avto je bil najhitrejši, in na prikazovalniku takrat utripa, da označi zmagovalca.

4. korak: Preostali del kode

Preostala koda je samo koda pripomočka, ki nadzoruje prikaz podatkov na 8 -mestnem zaslonu ali upravlja logiko pritiska na gumb itd.

Na koncu videoposnetka v uvodnem delu tega projekta prikažem primer kode, ki se izvaja na dveh ploščah, zato to preverite!

Kodo za ta projekt lahko dobite v mojem github repo.

5. korak: Kaj sledi?

To je to zaenkrat … v tretjem delu bomo pogledali premik komponent z mize in na nekaj bolj trajnega … spremljajte nas!

Upam, da uživate v tem projektu!

Sledite mi na:

www.youtube.com/c/unexpectedmaker

twitter.com/unexpectedmaker

www.facebook.com/unexpectedmaker

www.instagram.com/unexpectedmaker

www.tindie.com/stores/seonr/

Priporočena: