Daftar Isi:
- Langkah 1: MASTER dan SLAVE dalam Kode yang Sama
- Langkah 2: Modul BLUETOOTH Berbicara Melalui Serial Baca & Tulis
- Langkah 3: Mengontrol Balapan
- Langkah 4: Sisa Kode
- Langkah 5: Apa Selanjutnya?
Video: Arduino Hot Wheels Speed Track Bagian #2 - Kode: 5 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:57
Pada bagian pertama dari proyek ini kami membangun perangkat keras untuk prototipe pada 2 papan tempat memotong roti.
Dan di bagian ini kita akan membahas kodenya, cara kerjanya dan kemudian mengujinya.
Pastikan untuk menonton video di atas untuk keseluruhan tinjauan kode dan tampilan kode kerja.
Langkah 1: MASTER dan SLAVE dalam Kode yang Sama
Kode dalam 2 bagian, tetapi di dalam file yang sama. Saya menggunakan #define dan #ifdef untuk menentukan kode mana yang akan dikompilasi atau diabaikan sehingga saya dapat memisahkan kode apa pun yang hanya untuk papan tempat memotong roti MASTER dan kode yang hanya untuk papan tempat memotong roti SLAVE.
Pada dasarnya, jika definisi MASTER ditemukan, maka kode apa pun yang berada di dalam blok kode MASTER akan dikompilasi dan kode apa pun di luar blok itu akan dihapus pada waktu kompilasi.
#ifdef MASTER
//Kode khusus master ada di sini
#lain
#definisikan BUDAK
// Kode khusus budak ada di sini
#berakhir jika
Saya juga menggunakan teknik yang sama untuk #define SLAVE ketika MASTER dikompilasi sehingga Anda hanya perlu khawatir tentang mendefinisikan MASTER atau tidak mengaktifkan SLAVE untuk didefinisikan.
Langkah 2: Modul BLUETOOTH Berbicara Melalui Serial Baca & Tulis
Dalam proyek ini hanya papan tempat memotong roti SLAVE yang berbicara dengan papan tempat memotong roti MASTER. MASTER tidak pernah berbicara kembali, ia hanya mendengarkan dan kemudian bertindak berdasarkan data yang masuk.
Modul berbicara dan mendengarkan menggunakan kelas Serial bawaan di ekosistem pengkodean Arduino.
Modul Bluetooth berkomunikasi pada 38400 baud, sehingga kedua jalur kode menginisialisasi komunikasi Serial mereka menggunakan:
Serial.begin(38400);
Dan SLAVE menggunakan:
Serial.write(data di sini);
Untuk berbicara dengan MASTER, dan MASTER menggunakan:
data = Serial.read();
Untuk mendengarkan aliran serial dan membaca isinya dan menyimpannya di dalam variabel.
Langkah 3: Mengontrol Balapan
SLAVE memberitahu MASTER jika sedang dalam mode race more atau ready melalui tombol hijau yang terhubung ke mikrokontrolernya. Dalam mode siap, sensor IR tidak melakukan apa-apa dan MASTER akan menampilkan 8 garis putus-putus pada layar untuk menunjukkan mode siap.
Ketika SLAVE memberi tahu MASTER bahwa balapan akan dimulai, SLAVE mulai melakukan polling pada sensor IR di sisinya (Awal trek balap) agar mobil dapat lewat di bawahnya.
Saat setiap mobil lewat di bawah setiap sensor IR, ia mengirimkan A (mobil 1) atau B (mobil 2) ke MASTER.
Ketika MASTER menerima A atau B, itu mengaktifkan timer untuk mobil tertentu dan kemudian menunggu mobil lewat di bawah sensor IR yang sesuai di garis finish.
Layar diperbarui setiap 50 ms untuk menampilkan waktu saat ini untuk setiap mobil dalam hitungan detik dengan 2 tempat desimal.
Setelah kedua mobil mencapai garis finis, MASTER memutuskan mobil mana yang tercepat dan berkedip saat itu di layar untuk menunjukkan pemenangnya.
Langkah 4: Sisa Kode
Kode lainnya hanyalah kode utilitas yang mengontrol tampilan data pada tampilan 8 digit, atau menangani logika tekan tombol, dll.
Di akhir video di bagian intro proyek ini, saya menunjukkan contoh kode yang berjalan di 2 papan tempat memotong roti, jadi pastikan Anda memeriksanya!
Anda dapat mengambil kode untuk proyek ini dari repo github saya.
Langkah 5: Apa Selanjutnya?
Itu saja untuk saat ini… di bagian 3 kita akan melihat memindahkan komponen dari papan tempat memotong roti dan ke sesuatu yang lebih permanen… tetap disini!
Saya harap Anda menikmati proyek ini!
Ikuti saya di:
www.youtube.com/c/unexpectedmaker
twitter.com/unexpectedmaker
www.facebook.com/unexpectedmaker
www.instagram.com/unexpectedmaker
www.tindie.com/stores/seonr/
Direkomendasikan:
BLE Daya Sangat Rendah Mudah di Arduino Bagian 2 -- Monitor Suhu/Kelembaban -- Rev 3: 7 Langkah
BLE Daya Sangat Rendah Mudah di Arduino Bagian 2 -- Monitor Suhu/Kelembaban -- Rev 3: Pembaruan: 23 November 2020 – Penggantian pertama baterai 2 x AAA sejak 15 Januari 2019 yaitu 22 bulan untuk 2xAAA AlkalineUpdate: 7 April 2019 – Rev 3 dari lp_BLE_TempHumidity, menambahkan plot Tanggal/Waktu, menggunakan pfodApp V3.0.362+, dan pembatasan otomatis saat
Arduino-tomation Bagian 5: LE TUNNEL DE CHAUFFE: 4 Langkah
Arduino-tomation Bagian 5: LE TUNNEL DE CHAUFFE: Dua bulan lalu saya memutuskan untuk memasang kembali sistem kecil yang terlupakan yang disimpan di gudang tempat saya bekerja. Sistem ini dibuat untuk memanaskan dan menghangatkan perangkat elektronik atau apa pun yang dipasang pada suhu tinggi khusus menolak ban berjalan. Jadi saya membuat beberapa
Arduino-tomation Bagian 4: TRI DE BRIQUE: 5 Langkah
Arduino-tomation Bagian 4: TRI DE BRIQUE: Dalam Instruksi ini saya akan berbicara tentang mesin lain yang dipasang dan dikendalikan oleh papan klon Arduino yang terbuat dari Atmega1284p. Papan ini dapat mendukung perisai ethernet dan dapat diawasi oleh SCADA (AdvancedHMI, Unigo) atau
Cara Memodifikasi Hot Wheels Standar ke R/C Hot Wheels :D: 6 Langkah (dengan Gambar)
Cara Memodifikasi Hot Wheels Standar ke R/C Hot Wheels :D: Sejak kecil, saya suka Mobil Hot Wheels. Itu memberi saya inspirasi untuk merancang kendaraan fantasi. Kali ini mereka mengalahkan diri mereka sendiri dengan Star War Hot Wheels, C-3PO. Namun, saya ingin lebih dari sekadar mendorong atau melakukan perjalanan di trek, saya memutuskan, “L
SMD SOLDER 101 - MENGGUNAKAN HOT PLATE, HOT AIR BLOWER, SMD STENCIL DAN HAND SOLDERING: 5 Langkah
SMD SOLDER 101 | MENGGUNAKAN HOT PLATE, HOT AIR BLOWER, SMD STENCIL DAN HAND SOLDERING: Halo! Sangat mudah untuk melakukan penyolderan…. Oleskan sedikit fluks, Panaskan permukaan dan oleskan solder. Tetapi ketika menyolder komponen SMD, itu membutuhkan sedikit keterampilan dan beberapa alat dan aksesori. Dalam Instruksi ini, saya akan menunjukkan