Isi kandungan:

Arduino Hot Wheels Speed Track Bahagian # 2 - Kod: 5 Langkah
Arduino Hot Wheels Speed Track Bahagian # 2 - Kod: 5 Langkah

Video: Arduino Hot Wheels Speed Track Bahagian # 2 - Kod: 5 Langkah

Video: Arduino Hot Wheels Speed Track Bahagian # 2 - Kod: 5 Langkah
Video: How to make a Race Start/Finish Line Timer and Speed Measurer for Hot Wheels diecast racing cars 2024, November
Anonim
Image
Image

Pada bahagian pertama projek ini, kami membina perkakasan untuk prototaip pada 2 papan roti.

Dan di bahagian ini kita akan membahas kodnya, bagaimana ia berfungsi dan kemudian mengujinya.

Pastikan untuk menonton video di atas untuk keseluruhan tinjauan kod dan pameran kod yang berfungsi.

Langkah 1: Kedua-dua MASTER dan SLAVE dalam Kod yang Sama

Kodnya terdapat dalam 2 bahagian, tetapi di dalam fail yang sama. Saya menggunakan #define dan #ifdef untuk menentukan kod mana yang akan disusun atau diabaikan sehingga saya dapat memisahkan mana-mana kod yang hanya untuk papan roti MASTER dan kod yang hanya untuk papan roti SLAVE.

Pada asasnya, jika menentukan MASTER dijumpai, maka setiap kod yang berada di dalam blok kod MASTER akan disusun dan mana-mana kod di luar blok itu akan dikeluarkan pada waktu kompilasi.

#ifdef MASTER

// Kod khusus induk ada di sini

#selamat

#tentukan SLAVE

// Kod khusus hamba ada di sini

#endif

Saya juga menggunakan teknik yang sama untuk # mendefinisikan SLAVE ketika MASTER disusun sehingga anda hanya perlu bimbang untuk menentukan MASTER atau tidak untuk membolehkan SLAVE didefinisikan.

Langkah 2: Modul BLUETOOTH Bicara Melalui Serial Baca & Tulis

Dalam projek ini hanya papan roti SLAVE bercakap dengan papan roti MASTER. MASTER tidak pernah bercakap, ia hanya mendengar dan kemudian bertindak berdasarkan data yang masuk.

Modul bercakap dan mendengar menggunakan kelas Serial terbina dalam ekosistem pengekodan Arduino.

Modul Bluetooth berkomunikasi pada 38400 baud, jadi kedua-dua jalur kod memulakan komunikasi Serial mereka menggunakan:

Serial.begin (38400);

Dan SLAVE menggunakan:

Serial.write (data di sini);

Untuk bercakap dengan MASTER, dan MASTER menggunakan:

data = Serial.read ();

Untuk mendengar aliran bersiri dan membaca kandungannya dan menyimpannya di dalam pemboleh ubah.

Langkah 3: Mengawal Perlumbaan

SLAVE memberitahu MASTER jika berada dalam perlumbaan lebih atau mod siap melalui butang hijau yang disambungkan ke pengawal mikro. Dalam mod siap, sensor IR tidak melakukan apa-apa dan MASTER akan menunjukkan 8 tanda hubung pada paparan untuk menunjukkan bahawa ia berada dalam mod siap.

Apabila SLAVE memberitahu MASTER bahawa perlumbaan akan dimulakan, SLAVE mula mengundi sensor IR di sebelahnya (Permulaan trek perlumbaan) agar kereta melintas di bawahnya.

Oleh kerana setiap kereta melewati setiap sensor IR, ia menghantar A (kereta 1) atau B (kereta 2) ke MASTER.

Apabila MASTER menerima A atau B, ia membolehkan pemasa untuk kereta tertentu dan kemudian menunggu kereta melintas di bawah sensor IR yang sesuai di garisan penamat.

Paparan dikemas kini setiap 50 ms untuk memaparkan waktu semasa untuk setiap kereta dalam beberapa saat dengan 2 tempat perpuluhan.

Setelah kedua-dua kereta mencapai garisan penamat, MASTER memutuskan kereta mana yang terpantas dan berkelip pada masa itu di paparan untuk menunjukkan pemenang.

Langkah 4: Selebihnya Kod

Selebihnya kod hanyalah kod utiliti yang mengawal pemaparan data pada paparan 8 digit, atau menangani butang tekan logik dll.

Pada akhir video di bahagian intro projek ini, saya menunjukkan contoh kod yang berjalan di 2 papan roti, jadi pastikan anda menyemaknya!

Anda boleh mengambil kod untuk projek ini dari repo github saya.

Langkah 5: Apa Seterusnya?

Itu sahaja buat masa ini … di bahagian 3 kita akan melihat memindahkan komponen dari papan roti dan ke sesuatu yang lebih kekal … nantikan!

Saya harap anda menikmati projek ini!

Ikut saya:

www.youtube.com/c/unantedmaker

twitter.com/unuddenmaker

www.facebook.com/unuddenmaker

www.instagram.com/unuddenmaker

www.tindie.com/stores/seonr/

Disyorkan: