Mundarija:
Video: Lego Duplo poyezdi uchun yog'ochdan yasalgan Bluetooth masofadan boshqarish pulti: 3 qadam (rasmlar bilan)
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:24
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
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
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
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:
DIY yog'ochdan yasalgan Bluetooth karnay: 8 qadam (rasmlar bilan)
DIY yog'ochdan yasalgan Bluetooth dinamik: Internetda ushbu loyihaning minglab versiyalari mavjud. Nega men uni yaratyapman? Chunki men xohlayman :) Men o'zimning mukammal Bluetooth karnayim haqida o'z tasavvurimga egaman (men uchun mukammal) va men sizga o'z dizaynimni va qurish jarayonimni ko'rsatmoqchiman! Shuningdek,
Taymer funktsiyasi bilan televizorni masofadan boshqarish pulti yordamida uy jihozlarini qanday boshqarish mumkin: 7 qadam (rasmlar bilan)
Uy asbob -uskunalarini masofadan boshqarish pulti bilan taymer funktsiyasi yordamida qanday boshqarish mumkin: Iste'mol bozoriga 25 yil kirganidan keyin ham, infraqizil aloqa so'nggi kunlarda juda dolzarb bo'lib qolmoqda. Bu sizning 55 dyuymli 4K televizoringiz yoki avtomobilingizning ovoz tizimidan qat'i nazar, hamma narsaga javob berish uchun IQ masofadan boshqarish pulti kerak
DIY yog'ochdan yasalgan Bluetooth dinamik: 8 qadam (rasmlar bilan)
DIY yog'ochdan yasalgan Bluetooth karnay: bu maxsus Bluetooth karnay qiziqarli loyiha edi va u har qanday yoshdagi odamlarni yog'ochni qayta ishlash va elektronika bilan shug'ullanishga undashi mumkin, chunki hozirgi kunda hamma o'z telefonlari bilan shug'ullanadi. Bu 1/2 dan qilingan " yong'oq va chinor, Parts Expr to'plami bilan
Yog'ochdan yasalgan portativ Bluetooth dinamik: 9 qadam (rasmlar bilan)
Yog'ochdan yasalgan ko'chma Bluetooth karnay: Hammaga salom, men bu erda oxirgi marta joylashtirganimga ancha bo'ldi, shuning uchun men o'z loyihamni nashr etaman deb o'yladim. Ilgari men bir nechta portativ dinamiklarni ishlab chiqarganman, lekin ularning aksariyati plastik/akrildan tayyorlangan, chunki u bilan ishlash oson va kerak emas
Yog'ochdan yasalgan kuchli va kuchli qo'ltiqni yig'ish uchun bir necha bo'lak yog'ochdan qanday foydalanish kerak: 10 qadam
Yog'ochdan yasalgan bir nechta bo'laklarni qanday qilib yoqimli va kuchli yog'ochdan yasalgan qo'llarga yig'ish mumkin: Robot qo'lining nomi - WoodenArm. Bu juda yoqimli ko'rinadi! Agar siz WoodenArm haqida batafsilroq ma'lumotga ega bo'lishni istasangiz, www.lewansoul.com saytiga murojaat qiling. Endi biz WoodenArm haqida tanishtiruv qilishimiz mumkin, keling, davom etamiz