สารบัญ:

Arduino Hot Wheels Speed Track Part #2 - รหัส: 5 ขั้นตอน
Arduino Hot Wheels Speed Track Part #2 - รหัส: 5 ขั้นตอน

วีดีโอ: Arduino Hot Wheels Speed Track Part #2 - รหัส: 5 ขั้นตอน

วีดีโอ: Arduino Hot Wheels Speed Track Part #2 - รหัส: 5 ขั้นตอน
วีดีโอ: HotWheels Speed Track - Part #2 - The code and Testing 2024, กรกฎาคม
Anonim
Image
Image

ในส่วนแรกของโครงการนี้ เราได้สร้างฮาร์ดแวร์สำหรับต้นแบบบนเขียงหั่นขนม 2 อัน

และในส่วนนี้เราจะพูดถึงโค้ดว่ามันทำงานอย่างไรและทดสอบดู

อย่าลืมดูวิดีโอด้านบนสำหรับการตรวจสอบโค้ดทั้งหมดและการแสดงโค้ดการทำงาน

ขั้นตอนที่ 1: ทั้ง MASTER และ SLAVE ในรหัสเดียวกัน

รหัสอยู่ใน 2 ส่วน แต่อยู่ในไฟล์เดียวกัน ฉันใช้ #define และ #ifdef เพื่อกำหนดว่าโค้ดใดที่จะคอมไพล์หรือละเว้น เพื่อให้ฉันสามารถแยกโค้ดใดๆ ที่มีไว้สำหรับเขียงหั่นขนม MASTER และโค้ดที่ใช้สำหรับเขียงหั่นขนม SLAVE เท่านั้น

โดยทั่วไป หากพบdefine MASTER โค้ดใดๆ ที่อยู่ในบล็อคโค้ด MASTER จะถูกคอมไพล์ และโค้ดใดๆ นอกบล็อกนั้นจะถูกลบออกในเวลาคอมไพล์

#ifdef มาสเตอร์

//รหัสเฉพาะมาสเตอร์อยู่ในนี้

#อื่น

#define ทาส

// รหัสเฉพาะของ Slave อยู่ในนี้

#endif

ฉันยังใช้เทคนิคเดียวกันนี้ในการ #define SLAVE เมื่อรวบรวม MASTER ดังนั้นคุณจะต้องกังวลเกี่ยวกับการกำหนด MASTER หรือไม่เปิดใช้งาน SLAVE เพื่อกำหนด

ขั้นตอนที่ 2: โมดูล BLUETOOTH พูดคุยผ่านการอ่านและเขียนแบบอนุกรม

ในโครงการนี้ มีเพียงเขียงหั่นขนม SLAVE เท่านั้นที่คุยกับเขียงหั่นขนม MASTER MASTER ไม่เคยพูดตอบ แต่จะฟังและดำเนินการกับข้อมูลที่เข้ามาเท่านั้น

โมดูลพูดและฟังโดยใช้คลาส Serial ในตัวในระบบนิเวศการเข้ารหัส Arduino

โมดูล Bluetooth สื่อสารที่ 38400 บอด ดังนั้นเส้นทางรหัสทั้งสองจึงเริ่มต้นการสื่อสารแบบอนุกรมโดยใช้:

Serial.begin(38400);

และทาสใช้:

Serial.write (ข้อมูลที่นี่);

ในการพูดคุยกับ MASTER และ MASTER ใช้:

ข้อมูล = Serial.read();

เพื่อฟังซีเรียลสตรีมและอ่านเนื้อหาและเก็บไว้ในตัวแปร

ขั้นตอนที่ 3: ควบคุมการแข่งขัน

SLAVE จะบอก MASTER ว่าอยู่ในโหมด race more หรือ ready ผ่านปุ่มสีเขียวที่เชื่อมต่อกับไมโครคอนโทรลเลอร์ ในโหมดพร้อม เซ็นเซอร์ IR จะไม่ทำอะไรเลย และ MASTER จะแสดงเส้นประ 8 เส้นบนจอแสดงผลเพื่อระบุว่าอยู่ในโหมดพร้อม

เมื่อสเลฟบอกอาจารย์ว่าการแข่งขันกำลังจะเริ่มต้น สเลฟจะเริ่มสำรวจเซ็นเซอร์ IR ที่ด้านข้าง (จุดเริ่มต้นของสนามแข่ง) เพื่อให้รถผ่านด้านล่าง

เมื่อรถแต่ละคันผ่านใต้เซ็นเซอร์ IR แต่ละตัว มันจะส่ง A (รถ 1) หรือ B (รถ 2) ไปยัง MASTER

เมื่อ MASTER ได้รับ A หรือ B จะเปิดใช้งานตัวจับเวลาสำหรับรถยนต์คันนั้น ๆ จากนั้นรอให้รถผ่านใต้เซ็นเซอร์ IR ที่สอดคล้องกันที่เส้นชัย

จอแสดงผลจะอัปเดตทุก ๆ 50ms เพื่อแสดงเวลาปัจจุบันของรถแต่ละคันในหน่วยวินาทีโดยมีทศนิยม 2 ตำแหน่ง

เมื่อรถทั้งสองคันเข้าเส้นชัย MASTER จะตัดสินว่ารถคันใดเร็วที่สุดและกะพริบเวลานั้นบนหน้าจอเพื่อระบุผู้ชนะ

ขั้นตอนที่ 4: ส่วนที่เหลือของรหัส

รหัสที่เหลือเป็นเพียงรหัสยูทิลิตี้ที่ควบคุมการแสดงข้อมูลบนจอแสดงผล 8 หลักหรือจัดการตรรกะการกดปุ่มเป็นต้น

ในตอนท้ายของวิดีโอในส่วนแนะนำของโปรเจ็กต์นี้ ฉันจะแสดงตัวอย่างโค้ดที่ทำงานบนบอร์ดทดลอง 2 อัน ดังนั้นอย่าลืมลองดู!

คุณสามารถคว้ารหัสสำหรับโครงการนี้จาก repo github ของฉัน

ขั้นตอนที่ 5: อะไรต่อไป?

แค่นี้แหละ… ในตอนที่ 3 เราจะดูการย้ายส่วนประกอบออกจากเขียงหั่นขนมและไปยังสิ่งที่ถาวรกว่านี้… คอยติดตาม!

ฉันหวังว่าคุณจะสนุกกับโครงการนี้!

ติดตามฉันได้ที่:

www.youtube.com/c/unexpectedmaker

twitter.com/unexpectedmaker

www.facebook.com/unexpectedmaker

www.instagram.com/unexpectedmaker

www.tindie.com/stores/seonr/

แนะนำ: