Daftar Isi:

Remote Bluetooth Kayu untuk Kereta Lego Duplo: 3 Langkah (dengan Gambar)
Remote Bluetooth Kayu untuk Kereta Lego Duplo: 3 Langkah (dengan Gambar)

Video: Remote Bluetooth Kayu untuk Kereta Lego Duplo: 3 Langkah (dengan Gambar)

Video: Remote Bluetooth Kayu untuk Kereta Lego Duplo: 3 Langkah (dengan Gambar)
Video: Lego berbentuk motor jadi berantakan gara gara ini 2024, November
Anonim
Remote Bluetooth Kayu untuk Kereta Lego Duplo
Remote Bluetooth Kayu untuk Kereta Lego Duplo
Remote Bluetooth Kayu untuk Kereta Lego Duplo
Remote Bluetooth Kayu untuk Kereta Lego Duplo

Anak-anak saya menyukai kereta Lego Duplo kecil ini, terutama anak bungsu saya yang kesulitan berkomunikasi dengan kata-kata, jadi saya ingin membuatkan sesuatu untuknya yang akan membantunya bermain dengan kereta secara terpisah dari orang dewasa atau ponsel/tablet. Sesuatu yang akan menambah dimensi ekstra pada kereta dan memberikan nilai permainan ekstra

Set Lego sudah memiliki beberapa cara untuk mengontrol kereta, Anda dapat mendorongnya ke depan untuk memulai dan menahannya untuk menghentikannya, Anda dapat mengontrolnya menggunakan tag warna yang ada di trek sehingga ketika kereta melewatinya memicu tindakan yang berbeda yaitu maju, mundur, putar suara nyalakan lampu. Anda juga dapat mengunduh aplikasi untuk ponsel atau tablet Anda yang dapat terhubung ke kereta melalui bluetooth.

Berikut ulasan lengkap tentang kereta api

Setelah mencari-cari di internet saya menemukan ada beberapa orang berbeda yang semuanya memiliki kode tertulis yang siap untuk mengendalikan kereta. Node 'Poweredup' yang ditulis oleh nathan.kellennicki (https://nathan.kellennicki.com/node-poweredup/) tampak seperti awal yang sempurna, Itu ditulis menggunakan Javascript yang sebagian tidak saya kenal tetapi berpikir jika saya dapat menemukan microchip berbasis java, ini akan menjadi awal yang baik.

Sekali lagi setelah mencari-cari di internet lagi saya menemukan sistem espruino, ini mirip dengan ardiuno tetapi berbasis javascript. Kode espriuno dapat dimuat ke mircochip MDBT42Q yang memiliki penyematan bluetooth. Saya pikir jika saya dapat memuat modul "bertenaga" ke sana, saya akan berada di tengah jalan, namun hal ini tidak terjadi karena modul yang berisi banyak perpustakaan terlalu besar untuk dimuat di MDBT42Q, jadi sepertinya saya harus melakukannya temukan solusi yang lebih sederhana ….

Langkah 1: Kode

Kode
Kode

Esprinuo

Bagi mereka yang tidak tahu platform Espruino https://www.espruino.com (dan saya tidak tahu) apakah itu sangat mirip dengan Arduino, Ada beberapa perbedaan utama yang ditulis untuk javascript daripada c, Rasanya sedikit lebih baru jadi jangan sampai ada contoh namun dukungan melalui forum sangat bagus dan sangat membantu.

Javascript bertemu kereta

Rintangan pertama adalah terhubung ke kereta melalui bluetooth, Hal ini dapat dilakukan dengan menggunakan kelas NRF yang dikirimkan dengan kode espruino.

NRF.connect dapat digunakan untuk terhubung ke kereta namun pertama-tama Anda perlu menemukan alamat kereta itu sendiri, Anda dapat menggunakan NRF.findDevices untuk mendapatkan info ini

Setelah Anda melakukan ini, Anda perlu mengirim dua nilai kereta untuk berjabat tangan dengan kereta, untuk kereta saya ini adalah "00001623-1212-efde-1623-785feabcd123" diikuti oleh "00001624-1212-efde-1623-785feabcd123" Saya percaya ini akan sama untuk semua set kereta uap tetapi versi lain yaitu set kargo mungkin berbeda

Setelah Anda memiliki ini, Anda dapat menghubungkan kereta menggunakan fungsi seperti berikut, dapatkah Anda memberi tahu kapan kereta telah terhubung karena akan berkedip lampu biru

NRF.connect("e0:7d:ea:0c:03:29").then(function(g) {

console.log("Mulai menghubungkan2"); gatt = g; return gatt.getPrimaryService("00001623-1212-efde-1623-785feabcd123"); }).lalu(fungsi(layanan) { kembali layanan.getKarakteristik("00001624-1212-efde-1623-785feabcd123"); }).lalu(fungsi(karakteristik) { Characteristic_store = karakteristik; kembali karakteristik.readValue(); }).lalu(nilai => { console.log(nilai); }).kemudian(fungsi() { console.log("Kereta Terhubung"); terhubung = 1;

Hal-hal yang menyenangkan

Sekarang Anda terhubung ke kereta, saatnya untuk semua hal menyenangkan seperti menggerakkannya ke depan, membuat suara, dan menyalakan dan mematikan lampu. Ini pekerjaan sederhana untuk mengirim kereta nilai persiapan, diikuti dengan perintah yang sebenarnya yaitu

fungsi play_horn() {

console.log("pesan = ", Toko_karakteristik); const prepval = new Uint8Array([0x0a, 0x00, 0x41, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01]); const nilai kirim = new Uint8Array([0x08, 0x00, 0x81, 0x01, 0x11, 0x51, 0x01, 0x09]); Characteristic_store.writeValue(prepval).then(_ => { Characteristic_store.writeValue(sendvalue); }); }

Anda mungkin harus melakukan sedikit penggalian untuk menemukan perintah lain selain yang saya gunakan

Tombol dan Tuas

Sisi fisik remote sangat lurus ke depan empat tombol (untuk memutar suara, menyalakan dan mematikan lampu) dan satu potensiometer yang terhubung ke tuas sehingga Anda dapat mengontrol kecepatan dan arah kereta

Tombol tidak perlu menarik resistor sebagai gantinya Anda dapat melakukan ini dalam kode, yaitu

pinMode(D15, 'input_pulldown');

Anda dapat menghubungkan potensiometer ke salah satu input dan kemudian membacanya sinyal analog menggunakan perintah berikut:

var membaca = analogRead(D31);

Perbedaan lain dengan arduino adalah esprunio tidak memiliki setup dan loop. Jadi alih-alih saya menempatkan semua perintah/pemicu terpisah ke dalam fungsi dan kemudian mengatur setInterval yang berulang setiap 100 milidetik, mendengarkan tombol kemudian menjalankan fungsi yang diperlukan ketika tombol telah ditekan.

if (digitalRead(D15) == 1) { play_horn(); }

Menggerakkan tuas sedikit lebih rumit karena ingin dapat menyesuaikan kecepatan secara bertahap, jadi pertama-tama saya harus mengirim nilai analog agar berfungsi

var membaca = analogRead(D31);

train_direction(membaca * 1024);

Kemudian dalam fungsi train_direction saya memecah perintah menjadi 6 kenaikan berbeda berdasarkan nilai pot

Sepanjang jalan, memberi tahu kereta untuk melaju dengan kecepatan penuh

Setengah jalan, memberitahu kereta untuk maju dengan kecepatan 50%

Tengah, menyuruh kereta berhenti

Setengah jalan, memberitahu kereta untuk mundur dengan kecepatan 50%

Sepanjang jalan, memberitahu kereta untuk melaju dengan kecepatan penuh secara terbalik

yaitu

fungsi train_direction(dir_val) {

//console.log("pesan = ", Toko_karakteristik); const prepval = new Uint8Array([0x0a, 0x00, 0x41, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01]); const nilai kirim = new Uint8Array([0x08, 0x00, 0x81, 0x00, 0x01, 0x51, 0x00, 0x00]); if (dir_val > 300 && dir_val 400 && dir_val 500) { const sendvalue = new Uint8Array([0x08, 0x00, 0x81, 0x00, 0x01, 0x51, 0x00, 0x64]); } if (dir_val 200) { const sendvalue = new Uint8Array([0x08, 0x00, 0x81, 0x00, 0x01, 0x51, 0x00, 0xe2]); } if (dir_val 100) { const sendvalue = new Uint8Array([0x08, 0x00, 0x81, 0x00, 0x01, 0x51, 0x00, 0xce]); } if (dir_val { Characteristic_store.writeValue(nilai kirim); }); }

Kode lengkapnya bisa di bawah untuk link di bawah ini

Langkah 2: Pengkabelan

Pengkabelan
Pengkabelan
Pengkabelan
Pengkabelan

Pengkabelan adalah bagian yang paling sederhana

Itu hanya terdiri dari 4 tombol tekan yang terhubung ke D15, D16, D17 dan D18 tanpa resistor pull up karena ini dilakukan dalam kode dan 1 resistor 10k terhubung ke D31

Saya masih mengerjakan catu daya tetapi saat ini semua daya berasal dari pelarian usb mikro dan ini dapat dihubungkan langsung ke bank daya atau port USB

Langkah 3: Membangun

Membangun
Membangun
Membangun
Membangun
Membangun
Membangun
Membangun
Membangun

Remote sebagian besar terbuat dari 3mm, 6mm atau 9mm A4 lembaran kayu lapis, Mereka dipotong pada mesin CNC saya namun menggunakan template yang disediakan saya akan melakukannya meskipun tidak mungkin dilakukan dengan tangan

Saya berharap template dan foto akan memberikan semua yang Anda butuhkan untuk membuat ulang namun ada beberapa catatan yang mungkin bisa membantu

Dudukan Tombol Tekan 3mm adalah untuk menempelkan tombol tekan, celah akan memposisikan tombol di tempat yang benar tetapi kami memungkinkan Anda mengakses kaki di bagian belakang sehingga Anda dapat menyolder ke microchip, sebaliknya Anda juga dapat memasang MDBT42Q menggunakan sedikit lem. Di bagian depan Anda perlu menambahkan busa sehingga membuat tombol sedikit memantul saat Anda menekannya, Anda juga bisa menggunakan pegas

Tombol 9mm akan membutuhkan cat logo, ukiran atau sesuatu yang lain untuk menunjukkan tombol apa yang berfungsi

Tuas/Pegangan perlu berlapis, saya menggunakan pasak 6mm untuk membantu menyelaraskannya di semua posisi yang benar

Direkomendasikan: