Mundarija:

Lego Duplo poyezdi uchun yog'ochdan yasalgan Bluetooth masofadan boshqarish pulti: 3 qadam (rasmlar bilan)
Lego Duplo poyezdi uchun yog'ochdan yasalgan Bluetooth masofadan boshqarish pulti: 3 qadam (rasmlar bilan)

Video: Lego Duplo poyezdi uchun yog'ochdan yasalgan Bluetooth masofadan boshqarish pulti: 3 qadam (rasmlar bilan)

Video: Lego Duplo poyezdi uchun yog'ochdan yasalgan Bluetooth masofadan boshqarish pulti: 3 qadam (rasmlar bilan)
Video: Part 2: Tutorial 10, Interlocking Crochet 2024, Noyabr
Anonim
Lego Duplo poezdi uchun yog'ochdan yasalgan Bluetooth masofadan boshqarish pulti
Lego Duplo poezdi uchun yog'ochdan yasalgan Bluetooth masofadan boshqarish pulti
Lego Duplo poezdi uchun yog'ochdan yasalgan Bluetooth masofadan boshqarish pulti
Lego Duplo poezdi uchun yog'ochdan yasalgan Bluetooth masofadan boshqarish pulti

Mening bolalarim Lego Duplo -ning bu kichkina poezdini yaxshi ko'rishardi, ayniqsa, so'zlar bilan gaplasha olmaydigan, eng kichigi, shuning uchun men unga kattalar yoki telefonlar/planshetlardan qat'i nazar, poezd bilan o'ynashga yordam beradigan narsa qurmoqchi edim. Poezdga qo'shimcha hajm qo'shadigan va unga qo'shimcha o'yin qiymatini beradigan narsa

Lego to'plamida poezdni boshqarishning bir necha yo'li bor, siz uni oldinga siljitib, to'xtatish uchun ushlab turishingiz mumkin, siz yo'lda ketadigan rangli teglar yordamida boshqarishingiz mumkin, shuning uchun poezd uning ustidan o'tib ketganda turli harakatlarni keltirib chiqaradi. oldinga, teskari, o'yin tovushlari chiroqlarni yoqadi. Siz poezdga bluetooth orqali ulanadigan telefon yoki planshet uchun ilovani ham yuklab olishingiz mumkin.

Bu erda poezdning to'liq sharhi

Internetda ov qilgandan so'ng, men poezdni boshqarish uchun tayyor yozma kodga ega bo'lgan juda kam odam borligini topdim. Nathan.kellenicki (https://nathan.kellenicki.com/node-poweredup/) tomonidan yozilgan "Poweredup" tuguni juda yaxshi boshlanganga o'xshardi, men Javascript yordamida yozilganman. java asosidagi mikrochipni topa olardi, bu yaxshi boshlanish bo'lardi.

Yana Internetda ov qilgandan so'ng, men espruino tizimini topdim, bu ardiunoga o'xshaydi, lekin javascript atrofida. Espriuno kodini bluetooth joylashtirilgan MDBT42Q mikrosxemasiga yuklash mumkin. Agar men "quvvatlantirilgan" modulni yuklay olsam, yarim yo'lda bo'laman, deb o'yladim, lekin bu oddiy kutubxonalar uchun MDBT42Q -ni yuklash uchun katta hajmdagi modul emas edi, shuning uchun menga kerak oddiy echim toping ….

1 -qadam: Kod

Kodeks
Kodeks

Esprinuo

Espruino platformasini bilmaganlar uchun https://www.espruino.com (va men bilmaganman) bu Arduino -ga juda o'xshashmi, u erda bir nechta asosiy farqlar bor, ular javascript uchun yozilgan, aksincha, biroz yangi ko'rinadi misollar yo'q, lekin forumlar orqali qo'llab -quvvatlash juda yaxshi va juda foydali.

Javascript poezd bilan uchrashadi

Birinchi to'siq bluetooth orqali poezdga ulanish edi, buni espruino kodida yuboriladigan NRF klassi yordamida amalga oshirish mumkin.

NRF.connect poezdga ulanish uchun ishlatilishi mumkin, lekin birinchi navbatda poezdning manzilini topishingiz kerak, siz bu ma'lumotni olish uchun NRF.findDevices -dan foydalanishingiz mumkin.

Buni qilganingizdan so'ng, siz poezd bilan o'zaro bog'lanish uchun poezdga ikkita qiymat yuborishingiz kerak, chunki mening poezdim "00001623-1212-efde-1623-785feabcd123" va keyin "00001624-1212-efde-1623-785feabcd123" edi. Bu barcha bug 'poezdlari uchun bir xil bo'ladi, lekin boshqa versiyalar, ya'ni yuk to'plami boshqacha bo'lishi mumkin

Buni olganingizdan so'ng, siz poezdni quyidagi funktsiyadan foydalanib ulashingiz mumkin, poezd qachon ulanganligini ayta olasizmi, chunki u ko'k chiroqni yonadi.

NRF.connect ("e0: 7d: ea: 0c: 03: 29"), keyin (funktsiya (g) {

console.log ("Ulanishni boshlash 2"); gatt = g; qaytish gatt.getPrimaryService ("00001623-1212-efde-1623-785feabcd123"); }). keyin (funktsiya (xizmat) {return service.getCharacteristic ("00001624-1212-efde-1623-785feabcd123");}). keyin (funksiya (xarakteristikasi) {Characteristic_store = xarakteristikasi; qaytish xarakteristikasi.readValue ();} keyin. (qiymat => {console.log (qiymat);}). keyin

Qiziqarli narsalar

Endi siz poezdga ulandingiz, uni oldinga siljitish, ovoz chiqarish va chiroqni yoqish va o'chirish kabi barcha qiziqarli narsalar vaqti keldi. Poyezdga tayyorgarlik qiymatini, so'ngra haqiqiy buyruqni yuborish oddiy vazifadir

play_horn () {funktsiyasi

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

Men ishlatgan buyruqlardan boshqa buyruqlarni topish uchun siz biroz qazishingiz kerak bo'lishi mumkin

Tugmalar va dastaklar

Masofadan boshqarish pultining old tomoni juda to'g'ri - to'rtta tugma (tovushlarni ijro etish, chiroqlarni yoqish va o'chirish) va bitta potentsiometr, u dastagiga ulanadi, shunda siz poezdning tezligi va yo'nalishini boshqarishingiz mumkin.

Tugmani tortish qarshiligiga hojat yo'q, buning o'rniga siz buni kodda qilishingiz mumkin, ya'ni

pinMode (D15, 'input_pulldown');

Siz potentsiometrni kirishlardan biriga ulashingiz va uni quyidagi buyruq yordamida analog signalni o'qishingiz mumkin

var o'qish = analogRead (D31);

Arduinoning boshqa farqi shundaki, esprunioda sozlash va pastadir yo'q. Shunday qilib, men barcha alohida buyruqlarni/tetiklarni funktsiyalarga joylashtiraman va keyin har 100 millisekundda aylanadigan setIntervalni o'rnataman, tugmani tinglayman va tugma bosilganda kerakli funktsiyani ishga tushiraman.

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

Qo'lni boshqarish biroz murakkabroq edi, chunki tezlikni bosqichma -bosqich sozlash mumkin edi, shuning uchun avval analog qiymatni funktsiyaga yuborishim kerak edi.

var o'qish = analogRead (D31);

poezd yo'nalishi (o'qish * 1024);

Keyin train_direction funktsiyasida men pot qiymatiga qarab buyruqni 6 xil bosqichga ajratdim

Butun yo'l bo'ylab, poezdga oldinga to'liq tezlik bilan borishini aytadi

Yarim yo'lgacha, poezdga 50% tezlikda oldinga borishini aytadi

O'rta, poezdga to'xtashini aytadi

Yarim pastga, poezdga 50% tezlikda orqaga ketishni aytadi

To'liq pastga, poezdga teskari yo'nalishda to'liq tezlikni ketishini aytadi

ya'ni

train_direction funktsiyasi (dir_val) {

//console.log("message = ", Characteristic_store); const prepval = yangi Uint8Array ([0x0a, 0x00, 0x41, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01]); const sendvalue = yangi 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 (sendvalue);}); }

To'liq kod quyidagi havola uchun bo'lishi mumkin

2 -qadam: simlarni ulash

Simlar
Simlar
Simlar
Simlar

Simlarni ulash eng oddiy qismi edi

Bu faqat D15, D16, D17 va D18 ga ulangan 4 ta tugmachadan iborat edi, bu qarshilikni o'chirish rezistoridan iborat edi, chunki bu kodda qilingan va D31 ga ulangan 10k rezistor.

Men hali ham quvvat manbai ustida ishlayapman, lekin hozirda barcha quvvat mikro usb uzilishidan kelib chiqadi va bu ularni to'g'ridan -to'g'ri quvvat bankiga yoki USB portiga ulash mumkin.

3 -qadam: Qurilish

Qurilish
Qurilish
Qurilish
Qurilish
Qurilish
Qurilish
Qurilish
Qurilish

Masofadan boshqarish pulti asosan 3 mm, 6 mm yoki 9 mm A4 o'lchamdagi kontrplakdan yasalgan bo'lib, ular mening CNC dastgohimni kesadi, lekin shablon yordamida men qo'lda qilish imkonsiz bo'lardi.

Umid qilamanki, shablon va fotosuratlar sizga kerak bo'lgan hamma narsani beradi, ammo yordam beradigan bir nechta eslatmalar

3 mm bosish tugmachasi tugmachani yopish uchun mo'ljallangan, bo'sh joy tugmachani to'g'ri joyiga qo'yadi, lekin biz sizga orqa tarafdagi oyoqqa kirishga ruxsat beramiz, shunda siz mikrochipga lehim qila olasiz, aksincha MDBT42Q ni o'rnatishingiz mumkin. bir oz elim yordamida. Old tomondan siz ko'pik qo'shishingiz kerak bo'ladi, shuning uchun tugmachalarni bosganingizda, siz buloqlardan foydalanishingiz mumkin.

9 mm tugmachalarga logotipning bo'yog'i, o'yma yoki boshqa tugma nima kerakligini ko'rsatadigan biror narsa kerak bo'ladi

Qo'lni/dastani qatlamli qilish kerak, men ularni 6 mm dübel bilan ishlatib, ularni to'g'ri holatga keltirdim.

Tavsiya: