Mundarija:

Arduino Hot Wheels Speed Track #2 -qism - Kod: 5 qadam
Arduino Hot Wheels Speed Track #2 -qism - Kod: 5 qadam

Video: Arduino Hot Wheels Speed Track #2 -qism - Kod: 5 qadam

Video: Arduino Hot Wheels Speed Track #2 -qism - Kod: 5 qadam
Video: HotWheels Speed ​​Track — Часть №2 — Код и тестирование 2024, Iyul
Anonim
Image
Image

Loyihaning birinchi qismida biz 2 ta taxtada prototip uchun uskunalar o'rnatdik.

Va bu qismda biz kodni, uning qanday ishlashini ko'rib chiqamiz va keyin uni sinab ko'ramiz.

Kodni ko'rib chiqish va ish kodini ko'rsatish uchun yuqoridagi videoni tomosha qilganingizga ishonch hosil qiling.

1 -qadam: MASTER ham, qul ham xuddi shu kodda

Kod 2 qismdan iborat, lekin bir xil fayl ichida. Men #define va #ifdef -dan foydalanib, qaysi kod tuzilishini yoki e'tiborga olinmasligini aniqlayman, shuning uchun men MASTER paneli uchun har qanday kodni va faqat SLAVE paneli uchun kodni ajratishim mumkin.

Asosan, agar MASTER ta'rifi topilsa, MASTER kod bloki ichida joylashgan har qanday kod tuziladi va bu blokdan tashqaridagi har qanday kod kompilyatsiya vaqtida o'chiriladi.

#ifdef MASTER

// Maxsus kod bu erda

#boshqa

#QULni aniqlang

// Qullarga xos kod bu erda

#endif

Men ham xuddi shu usuldan MASTER kompilyatsiya qilinganida, "SLAVE" ni aniqlash uchun foydalanmoqdaman, shuning uchun siz faqat MASTERni aniqlash yoki qulni aniqlashni yoqmaslik haqida qayg'urishingiz kerak.

2 -qadam: BLUETOOTH modullari ketma -ket o'qish va yozish orqali suhbat

Bu loyihada MASTER non paneli bilan faqat SLAVE non paneli gaplashadi. MASTER hech qachon javob bermaydi, u faqat eshitadi va keyin keladigan ma'lumotlarni bajaradi.

Modullar Arduino kodlash ekotizimidagi o'rnatilgan Serial sinfidan foydalanib gaplashadi va tinglaydi.

Bluetooth modullari 38400 bodda aloqa o'rnatadi, shuning uchun ikkala kodli yo'l ham ketma -ket aloqani ishga tushiradi:

Serial.begin (38400);

Va SLAVE quyidagilarni qo'llaydi:

Serial.write (ma'lumotlar shu erda);

MASTER bilan gaplashish uchun MASTER quyidagilarni ishlatadi:

ma'lumotlar = Serial.read ();

Seriya oqimini tinglash va uning tarkibini o'qish va uni o'zgaruvchiga saqlash.

3 -qadam: Musobaqani boshqarish

QUL MASTERga, agar u musobaqada ko'proq yoki tayyor rejimda bo'lsa, uning mikro-boshqaruvchisiga ulangan yashil tugma orqali xabar beradi. Tayyor rejimda, IQ sensorlar hech narsa qilmaydi va MASTER displeyda 8 ta chiziqni ko'rsatib, uning tayyor holatda ekanligini ko'rsatadi.

QUL MASTERGA poyga boshlanishini aytganda, qul uning ostidagi mashinalar o'tishi uchun uning yonidagi IR sensorlarini (poyga yo'lining boshlanishi) so'roq qila boshlaydi.

Har bir mashina har bir IQ sensori ostidan o'tayotganda, MASTERga A (mashina 1) yoki B (mashina 2) yuboradi.

MASTER A yoki B ni qabul qilganda, u o'ziga xos mashina taymerini ishga tushiradi, so'ngra marshrutda mashinaning mos keladigan IQ sensori ostidan o'tishini kutadi.

Displey har 50 soniyada yangilanadi va har bir mashina uchun joriy vaqtni 2 sonli kasrli soniyalarda ko'rsatadi.

Ikkala mashina ham marra chizig'iga etib kelganidan so'ng, MASTER qaysi avtomobil eng tez bo'lganini aniqlaydi va shu vaqtda displeyda g'olibni ko'rsatish uchun yonadi.

4 -qadam: Kodning qolgan qismi

Qolgan kod - bu faqat 8 -raqamli displeyda ma'lumotlarni ko'rsatishni boshqaradigan yoki tugmachalarni bosish mantig'ini boshqaradigan yordamchi kod.

Videoning oxirida, ushbu loyihaning kirish qismida, men 2 ta taxtada ishlaydigan kodning misolini ko'rsataman, shuning uchun buni tekshirib ko'ring!

Siz ushbu loyihaning kodini github repo -dan olishingiz mumkin.

5 -qadam: Keyin nima bo'ladi?

Hozircha shunday … 3 -qismda biz tarkibiy qismlarni non panelidan boshqa doimiy narsaga ko'chirishni ko'rib chiqamiz … bizni kuzatib turing!

Umid qilamanki, sizga bu loyiha yoqadi!

Meni kuzatib boring:

www.youtube.com/c/unexpectedmaker

twitter.com/unexpectedmaker

www.facebook.com/unexpectedmaker

www.instagram.com/unexpectedmaker

www.tindie.com/stores/seonr/

Tavsiya: