INHOUDSOPGAWE:

Arduino Hot Wheels Speed Track Deel #2 - Kode: 5 stappe
Arduino Hot Wheels Speed Track Deel #2 - Kode: 5 stappe

Video: Arduino Hot Wheels Speed Track Deel #2 - Kode: 5 stappe

Video: Arduino Hot Wheels Speed Track Deel #2 - Kode: 5 stappe
Video: PID control on arduino 2024, November
Anonim
Image
Image

In die eerste deel van hierdie projek het ons die hardeware vir die prototipe op 2 broodborde opgebou.

En in hierdie gedeelte gaan ons oor die kode, hoe dit werk en dit dan toets.

Kyk na die video hierbo vir die volledige hersiening van die kode en die vertoon van die werkskode.

Stap 1: Beide MASTER en SLAVE in dieselfde kode

Die kode bestaan uit twee dele, maar in dieselfde lêer. Ek gebruik #define en #ifdef om te bepaal watter kode saamgestel of geïgnoreer sal word, sodat ek enige kode wat net vir die MASTER -broodbord is, kan skei en slegs vir die SLAVE -broodbord.

As die definieer MASTER gevind word, sal enige kode wat binne die MASTER -kodeblok sit, saamgestel word en enige kode buite die blok sal op die tydstip verwyder word.

#ifdef MASTER

// Meesterspesifieke kode is hier

#else

#definieer SLAVE

// Slaafspesifieke kode is hier

#endif

Ek gebruik ook dieselfde tegniek om SLAVE te definieer wanneer MASTER opgestel word, sodat u slegs hoef te bekommer oor die definisie van MASTER of nie om die SLAVE te definieer nie.

Stap 2: BLUETOOTH -modules Praat via seriële lees en skryf

In hierdie projek praat slegs die SLAVE broodbord met die MASTER broodbord. Die MASTER praat nooit terug nie, hy luister net en handel dan oor die data wat inkom.

Die modules praat en luister met behulp van die ingeboude Serial -klas in die Arduino -kodering -ekosisteem.

Bluetooth -modules kommunikeer met 38400 baud, sodat beide kodepaaie hul seriële kommunikasie initialiseer met:

Serial.begin (38400);

En die SLAF gebruik:

Serial.write (data hierin);

Om met die MASTER te praat, en die MASTER gebruik:

data = Serial.read ();

Om na die reeksstroom te luister en die inhoud daarvan te lees en dit in 'n veranderlike te stoor.

Stap 3: Beheer van die wedloop

Die SLAVE sê vir die MASTER of hy in 'n wedloop-meer of gereed-modus is via die groen knoppie wat aan die mikrobeheerder gekoppel is. In die gereedmodus doen die IR -sensors niks nie en die MASTER sal 8 strepies op die skerm wys om aan te dui dat dit gereed is.

As die SLAF vir die MASTER sê dat 'n wedloop gaan begin, begin die SLAF die IR -sensors aan die sykant (die begin van die renbaan), sodat motors daaronder kan verbygaan.

Terwyl elke motor onder elke IR -sensor gaan, stuur dit 'n A (motor 1) of B (motor 2) na die MASTER.

As die MASTER 'n A of B ontvang, stel dit die timer vir die spesifieke motor in staat en wag dan totdat die motor onder die ooreenstemmende IR -sensor by die eindstreep gaan.

Die skerm word elke 50 ms opgedateer om die huidige tyd vir elke motor in sekondes met 2 desimale plekke weer te gee.

Sodra albei motors die wenstreep bereik het, besluit die MASTER watter motor die vinnigste was en flits daardie tyd op die skerm om die wenner aan te dui.

Stap 4: Die res van die kode

Die res van die kode is slegs 'n nutskode wat die vertoning van data op die 8 -syfer -skerm beheer, óf die druk op die knoppie -logika, ens.

Aan die einde van die video in die inleidingsgedeelte van hierdie projek, wys ek 'n voorbeeld van die kode wat op die 2 broodborde loop, dus maak seker dat u dit nagaan!

U kan die kode vir hierdie projek in my github -repo kry.

Stap 5: Wat is volgende?

Dit is dit nou … in deel 3 gaan ons kyk na hoe die komponente van die broodbord verwyder word en na iets meer permanent gaan … bly ingeskakel!

Ek hoop dat u hierdie projek geniet!

Volg my op:

www.youtube.com/c/unexpectedmaker

twitter.com/unexpectedmaker

www.facebook.com/unexpectedmaker

www.instagram.com/unexpectedmaker

www.tindie.com/stores/seonr/

Aanbeveel: