Isi kandungan:
- Langkah 1: Kedua-dua MASTER dan SLAVE dalam Kod yang Sama
- Langkah 2: Modul BLUETOOTH Bicara Melalui Serial Baca & Tulis
- Langkah 3: Mengawal Perlumbaan
- Langkah 4: Selebihnya Kod
- Langkah 5: Apa Seterusnya?
Video: Arduino Hot Wheels Speed Track Bahagian # 2 - Kod: 5 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:11
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:
Mudah Daya Sangat Rendah BLE di Arduino Bahagian 2 - Monitor Suhu / Kelembapan - Langkah 3: 7
Mudah Sangat Rendah BLE di Arduino Bahagian 2 - Monitor Suhu / Kelembapan - Rev 3: Kemas kini: 23 November 2020 - Penggantian pertama 2 x bateri AAA sejak 15 Januari 2019 iaitu 22 bulan untuk 2xAAA Alkaline Kemas kini: 7 April 2019 - Rev 3 dari lp_BLE_TempHumidity, menambah petak Tarikh / Masa, menggunakan pfodApp V3.0.362 +, dan automatik pemacu
Arduino-tomation Bahagian 5: LE TUNNEL DE CHAUFFE: 4 Langkah
Arduino-tomation Bahagian 5: LE TUNNEL DE CHAUFFE: Dua bulan yang lalu saya memutuskan untuk memasang semula sistem terlupa kecil yang tersimpan di gudang tempat saya bekerja. Sistem ini dibuat untuk memanaskan dan memanaskan alat elektronik atau apa sahaja yang diletakkan pada suhu tinggi khas tahan tali sawat. Oleh itu, saya membuat beberapa
Arduino-tomation Bahagian 4: TRI DE BRIQUE: 5 Langkah
Arduino-tomation Bahagian 4: TRI DE BRIQUE: Dalam Instructables ini saya akan membincangkan anda mengenai mesin lain yang dipasang dan dikendalikan oleh papan klon Arduino yang terbuat dari Atmega1284p. Papan ini dapat menyokong perisai ethernet dan dapat diawasi oleh SCADA (AdvancedHMI, Unigo) atau industri
Arduino LTC6804 BMS - Bahagian 2: Papan Imbangan: 5 Langkah
Arduino LTC6804 BMS - Bahagian 2: Papan Imbangan: Bahagian 1 ada di siniSistem Pengurusan Bateri (BMS) merangkumi fungsi untuk merasakan parameter pek bateri yang penting termasuk voltan sel, arus bateri, suhu sel, dan lain-lain. julat yang ditentukan, pek itu boleh disko
Robot Mecanum Omni Wheels With GRBL Stepper Motors Arduino Shield: 4 Langkah
Mecanum Omni Wheels Robot With GRBL Stepper Motors Arduino Shield: Mecanum Robot - Projek yang saya ingin bina sejak saya melihatnya di blog mekatronik giliran Dejan: howtomechatronics.com Dejan benar-benar membuat pekerjaan yang baik merangkumi semua aspek dari perkakasan, percetakan 3D , elektronik, kod dan aplikasi Android (MIT