Satura rādītājs:

Arduino Hot Wheels ātruma celiņš 2. daļa - kods: 5 soļi
Arduino Hot Wheels ātruma celiņš 2. daļa - kods: 5 soļi

Video: Arduino Hot Wheels ātruma celiņš 2. daļa - kods: 5 soļi

Video: Arduino Hot Wheels ātruma celiņš 2. daļa - kods: 5 soļi
Video: CS50 2015 - Week 4 2024, Jūlijs
Anonim
Image
Image

Šī projekta pirmajā daļā mēs izveidojām prototipa aparatūru uz 2 maizes dēļiem.

Un šajā daļā mēs apskatīsim kodu, kā tas darbojas, un pēc tam to pārbaudīsim.

Noteikti skatieties iepriekš redzamo videoklipu, lai skatītu visu kodu un parādītu darba kodu.

1. darbība: gan MASTER, gan vergs vienā un tajā pašā kodā

Kods sastāv no divām daļām, bet tajā pašā failā. Es izmantoju #define un #ifdef, lai noteiktu, kurš kods tiks apkopots vai ignorēts, lai varētu atdalīt jebkuru kodu, kas paredzēts tikai MASTER maizei, un kodu, kas paredzēts tikai SLAVE maizei.

Būtībā, ja definētais MASTER ir atrasts, tad viss kods, kas atrodas MASTER koda blokā, tiks apkopots un jebkurš kods ārpus šī bloka tiks noņemts kompilācijas laikā.

#ifdef MASTER

// Galvenais kods ir šeit

#citādi

#definējiet VERGU

// Vergu specifiskais kods ir šeit

#endif

Es arī izmantoju to pašu paņēmienu, lai #define SLAVE, kad tiek apkopots MASTER, tāpēc jums jāuztraucas tikai par MASTER definēšanu vai par to, ka nav jāiespējo SLAVE.

2. darbība: BLUETOOTH moduļi runā, izmantojot sērijveida lasīšanu un rakstīšanu

Šajā projektā tikai SLAVE maizes dēlis runā ar MASTER maizes dēli. MASTER nekad nerunā pretī, tas tikai klausās un pēc tam rīkojas pēc ienākošajiem datiem.

Moduļi runā un klausās, izmantojot iebūvēto sērijas klasi Arduino kodēšanas ekosistēmā.

Bluetooth moduļi sazinās ar 38400 bodu, tāpēc abi koda ceļi inicializē seriālos sakarus, izmantojot:

Sērijas sākums (38400);

Un vergs izmanto:

Serial.write (dati šeit);

Lai sarunātos ar MASTER, un MASTER izmanto:

dati = Serial.read ();

Lai klausītos sērijveida straumi un lasītu tās saturu un saglabātu to mainīgā.

3. solis: sacensību kontrole

VERGS paziņo meistaram, vai tas ir sacensību vairāk vai gatavs režīmā, izmantojot zaļo pogu, kas savienota ar tā mikrokontrolleri. Gatavības režīmā IR sensori neko nedara, un MASTER displejā parādīs 8 domuzīmes, norādot, ka tas ir gatavības režīmā.

Kad VERGIS pasaka MASTER, ka sacensības sāksies, tas sāk aptaujāt sānos esošos infrasarkanos sensorus (sacīkšu trases sākums), lai automašīnas izietu garām.

Kad katra automašīna iet zem katra IR sensora, tā nosūta A (automašīna 1) vai B (automašīna 2) uz MASTER.

Kad MASTER saņem A vai B, tas iespējo konkrētās automašīnas taimeri un pēc tam gaida, kad automašīna finiša taisnē iet zem atbilstošā IR sensora.

Displejs tiek atjaunināts ik pēc 50 ms, lai parādītu katras automašīnas pašreizējo laiku sekundēs ar 2 zīmēm aiz komata.

Kad abas automašīnas ir sasniegušas finiša līniju, MASTER izlemj, kura automašīna bija ātrākā, un mirgo displejā, lai norādītu uzvarētāju.

4. darbība: pārējais kods

Pārējais kods ir tikai utilītas kods, kas vai nu kontrolē datu parādīšanu 8 ciparu displejā, vai arī apstrādā pogu nospiešanas loģiku utt.

Šī projekta ievada sadaļā esošā videoklipa beigās es parādīšu koda piemēru, kas darbojas uz 2 maizes dēļiem, tāpēc noteikti pārbaudiet to!

Jūs varat iegūt šī projekta kodu no mana github repo.

5. darbība. Kas notiks tālāk?

Tas pagaidām ir viss … 3. daļā mēs apskatīsim komponentu pārvietošanu no maizes dēļa uz kaut ko pastāvīgāku … sekojiet līdzi!

Es ceru, ka jums patīk šis projekts!

Sekojiet man:

www.youtube.com/c/unexpectedmaker

twitter.com/unexpectedmaker

www.facebook.com/unexpectedmaker

www.instagram.com/unexpectedmaker

www.tindie.com/stores/seonr/

Ieteicams: