Satura rādītājs:
- 1. darbība: gan MASTER, gan vergs vienā un tajā pašā kodā
- 2. darbība: BLUETOOTH moduļi runā, izmantojot sērijveida lasīšanu un rakstīšanu
- 3. solis: sacensību kontrole
- 4. darbība: pārējais kods
- 5. darbība. Kas notiks tālāk?
Video: Arduino Hot Wheels ātruma celiņš 2. daļa - kods: 5 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:57
Šī 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:
Motora ātruma mērīšana, izmantojot Arduino: 6 soļi
Motora ātruma mērīšana, izmantojot Arduino: Vai ir grūti izmērīt motora apgriezienus ??? Es nedomāju. Šeit ir viens vienkāršs risinājums. To var izdarīt tikai viens IR sensors un Arduino jūsu komplektā. Šajā rakstā es sniegšu vienkāršu pamācību, kurā paskaidrots, kā izmērīt jebkura motora apgriezienus, izmantojot IR sensoru un A
Pakāpiena ātruma kontroles izvēlne, kas darbojas Arduino: 6 soļi
Arduino darbināmā pakāpju ātruma kontroles izvēlne: Šī SpeedStepper bibliotēka ir pārrakstīta no AccelStepper bibliotēkas, lai varētu kontrolēt pakāpju motoru. SpeedStepper bibliotēka ļauj mainīt iestatīto motora apgriezienu skaitu un pēc tam paātrināt/palēnināt līdz jaunajam iestatītajam ātrumam, izmantojot to pašu algoritmu
Kā izveidot precīzu gaisa plūsmas ātruma sensoru, izmantojot Arduino par COVID-19 ventilatoru, kas mazāks par 20 £: 7 soļi
Kā izveidot precīzu gaisa plūsmas ātruma sensoru ar Arduino par COVID-19 ventilatoru, kas mazāks par 20 sterliņu mārciņām: lūdzu, skatiet šo ziņojumu, lai uzzinātu jaunāko šī atveres plūsmas sensora dizainu: https://drive.google.com/file/d/1TB7rhnxQ6q6C1cNb. ..Šīs pamācības parāda, kā izveidot gaisa plūsmas ātruma sensoru, izmantojot zemu izmaksu spiediena starpības sensoru un viegli
Kā vadīt bezpilota bezkaršu līdzstrāvas motoru (3 vadu tips), izmantojot HW30A motora ātruma regulatoru un Arduino UNO: 5 soļi
Kā vadīt bezpilota bezkaršu līdzstrāvas motoru (3 vadu tips), izmantojot HW30A motora ātruma regulatoru un Arduino UNO: Apraksts: HW30A motora ātruma regulatoru var izmantot ar 4-10 NiMH/NiCd vai 2-3 šūnu LiPo baterijām. BEC ir funkcionāls ar līdz pat 3 LiPo šūnām. To var izmantot, lai kontrolētu bezsuku līdzstrāvas motora (3 vadi) ātrumu ar maksimālo līdz 12 Vdc. Īpaši
Arduino Hot Wheels ātruma celiņš - 1. daļa - prototips: 4 soļi
Arduino Hot Wheels Speed Track - 1. daļa - prototips: nevajadzētu pārsteigt, ka manam dēlam patīk karstie riteņi un sacīkšu mašīnas pa visu māju! Viena no viņa iecienītākajām lietām ir sacensties ar visām savām automašīnām (tagad vairāk nekā 100), lai noteiktu, kura ir ātrākā automašīna. Šobrīd viņš to visu dara ar aci un