Mundarija:

PlotClock, WeMos va Blynk Vintage AMI Jukebox -da o'ynaydi: 6 qadam (rasmlar bilan)
PlotClock, WeMos va Blynk Vintage AMI Jukebox -da o'ynaydi: 6 qadam (rasmlar bilan)

Video: PlotClock, WeMos va Blynk Vintage AMI Jukebox -da o'ynaydi: 6 qadam (rasmlar bilan)

Video: PlotClock, WeMos va Blynk Vintage AMI Jukebox -da o'ynaydi: 6 qadam (rasmlar bilan)
Video: DIY Esp8266 wifi Clock OLED DS3231 2024, Iyul
Anonim
PlotClock, WeMos va Blynk Vintage AMI Jukebox -da o'ynaydi
PlotClock, WeMos va Blynk Vintage AMI Jukebox -da o'ynaydi
PlotClock, WeMos va Blynk Vintage AMI Jukebox -da o'ynaydi
PlotClock, WeMos va Blynk Vintage AMI Jukebox -da o'ynaydi

To'rtta texnik yangilik bu loyihani amalga oshirishga imkon berdi: 1977 yilgi Rowe AMI Jukebox, PlotClock robot qo'llar to'plami, WeMos/ESP 8266 mikrokontroller va Blynk App/Cloud xizmati.

QAYD: Agar sizda Jukebox bo'lmasa - o'qishni to'xtatmang! Ushbu loyiha inson barmoqlari tomonidan boshqariladigan turli narsalarni boshqarish uchun osonlikcha qabul qilinishi mumkin. Bir misol, an'anaviy ksilofonda o'ynaydigan robot barmog'i bo'lishi mumkin - ehtimol bu sizdan kelgan!

Mening 40 yoshli Rowe AMI R-81 Jukebox hali ham 60-70-80-yillarning vintage vinil singllarini ijro etishda yaxshi ishlamoqda. Og'irligi 160 kg dan oshadigan bu o'yinchi zamonaviy mp-pleyerlar kabi ko'chma emas, lekin Internet davrida yashaganingizda, endi cho'ntagingizda jukebox va 200 ta vinil yozuvlarini olib yurish mumkin-deyarli albatta! Va siz hatto mikrokontrolda saqlangan o'z ijro ro'yxatlaridan foydalanishingiz mumkin!

Ajoyib PlotClock roboti dastlab o'chiriladigan doskaga vaqt raqamlarini chizish orqali hozirgi vaqtni ko'rsatish uchun mo'ljallangan. Mening PlotClock -ga moslashuvim - uni Jukebox qo'shiq tanlash tugmachalarini bosish uchun robot barmog'i sifatida ishlatish.

Plotclock "barmog'i" WeMos mikrokontroller tomonidan boshqariladigan 3 ta servo tomonidan boshqariladi. Bu hayratlanarli narsa (deyarli) Arduino Uno bilan mos keladi va Wi -Fi imkoniyatlariga ega, shuning uchun dunyoning istalgan joyidan simsiz musiqa qutisini boshqarish mumkin.

Kekdagi krem Blynk ilovasi va ularning Blynk Cloud Server -dan foydalanishning aql bovar qilmaydigan darajada yaxshi mobil telefon/planshet foydalanuvchi interfeysi bilan ta'minlangan.

1 -qadam: Uskuna

Uskuna
Uskuna
Uskuna
Uskuna

Musiqa qutisi

Loyiha kutubxonasi 1977 yil Rowe AMI R-81. Tanlash tugmachalari bo'lgan har qanday eski kutubxona bajaradi - PlotClock cheklovlarini eslatib o'tadi: PlotClock -ning asl qurollari taxminan 5x12 sm maydonni qamrab olishi mumkin, shuning uchun musiqa qutisi tugmachasining joylashuvi (barcha tanlash tugmachalarini o'z ichiga olgan maydon) shu o'lchamda bo'lishi kerak. Eski musiqa qutilarining tugmalari PlotClock servosidan ko'ra ko'proq kuchga muhtoj bo'lishi mumkin.

AMI R-81 xotirasida 200 ta tanlovni saqlash mumkin. Tanlovlar ular tanlangan tartibda emas, balki yozuvlar jurnalida saqlanadigan tartib (karusel turi) bo'yicha o'tkaziladi. Bitta yozuv uchun bir nechta tanlov faqat bir marta ijro etiladi.

PlotClock

Plotclock - bu mexanik qismlar, 3 servo, Arduino Uno R3, Arduino kengaytmasi va USB kabelidan iborat DIY to'plami. Taxminan 30 AQSh dollari - bu yaxshi xarid (masalan, Banggood.com). Arduino, kengaytma paneli va USB kabeli bu loyihada ishlatilmaydi.

Plotclock -ni yozish uchun bir nechta yaxshi Internet/YouTube darsliklari mavjud - masalan. bu: PlotClock ko'rsatmalari

static1.squarespace.com/static/52cb189ee4b012ff9269fa8e/t/5526946be4b0ed8e0b3cd296/1428591723698/plotclock_final_instructions.pdf

WeMos

WeMos D1 R2 - ESP8266 asosidagi mikrokontroller. U Arduino IDE yordamida dasturlashtirilishi mumkin va WiFi imkoniyatlariga ega, shuning uchun bu loyiha uchun mukammal uskunadir.

2 -qadam: Kalibrlash

Kalibrlash
Kalibrlash

Kalibrlash - bu servo burchaklar uchun aniq burchak qiymatlarini (0 dan 180 darajagacha) tanlash tugmachalarining jismoniy holatiga mos keladigan vazifa. Burchak qiymatlarini trigonometriya aritemiti yoki SAPR dasturidan foydalanib topish mumkin. Men AutoCad -dan qanday foydalanishni biladigan do'stimdan taxminiy qiymatlarni oldim.

Biroq, oxirgi kalibrlash sinov va xato bilan amalga oshirilishi kerak edi. Qog'ozga chizilgan tugma sxemasidan foydalanib, burchakning to'g'ri qiymatlarini topish uchun "ish stoli testini" o'tkazish mumkin.

3 -qadam: yig'ish

O'rnatish
O'rnatish
O'rnatish
O'rnatish
O'rnatish
O'rnatish
O'rnatish
O'rnatish

Ulanish

Plotclock servosidan Wemos -ga ulanish 5 ta sim bilan amalga oshiriladi: +5, GND, D4, D5 va D6. Tafsilotlarni rasm va kodda ko'ring.

Jukebox -ga o'rnatish

Men 40 yildan buyon katta zarar ko'rmagan tirik qolgan musiqa qutisiga vintlardek teshik qilmoqchi emas edim. Yumshoq kauchuk plomba yordamida men yuk qutisi konsoli ostidagi alyuminiy burchaklar ro'yxatini tuzatdim. Kauchuk plomba qattiq ushlab turadi va hech qanday iz qoldirmasdan olib tashlanishi mumkin. PlotClock korpusini akril plastinkaga joylashtirish uchun ikkita kichik alyuminiy burchak kerak edi. Keyin akril plastinka burchaklar ro'yxatiga ikkita buloqli qisqich bilan o'rnatiladi, bu esa vertikal va gorizontal ravishda oxirgi sozlash imkoniyatini beradi.

4 -qadam: Blynk

Blynk
Blynk

Blynk - bu bir nechta mikrokontrollerlarni masofadan boshqarish uchun bepul dastur. Blynk yordamida siz bir necha turdagi vidjetlar yordamida qulay foydalanuvchi interfeysi yaratishingiz mumkin. Bu loyiha uchun faqat bitta vidjet kerak: Table vidjeti.

5 -qadam: dasturiy ta'minot

Blynk ilovasi

Ilova tomonida kodlash yo'q. Ilova (Blynk) va mikrokontroller (WeMos) o'rtasidagi "suhbat" asosan "ikkalasi o'rtasida ma'lumot yuborish va qabul qilish kanallari bo'lgan" Virtual pinlar yordamida amalga oshiriladi. Virtual pin, masalan, Blynk ilovasidan tanlangan qo'shiqning qator raqamini WeMos -ga yuborish uchun ishlatiladi, qolganini esa Wemos boshqaradi, ya'ni. Plotclock servosiga buyruq yuborish.

WeMos kodi

/**************************************************************

V2 jadval jadval vidjeti ******************************************** ****************/ #define BLYNK_PRINT Serial #include #include #include char auth = "--SIZNING AVTO KODI--"; // Jukebox loyihasi char ssid = "-SIZNING SSID-"; char pass = "--SIZNING WIFI PAROLINGIZ-"; int c [50]; // Jukebox rekord pozitsiyalari uchun qator (100-299) Servo myservo1; // Servo myservo2 ni ko'tarish; // chap qo'l Servo myservo3; // o'ng qo'l int pos1 = 0; int pos2 = 0; int pos3 = 0; int btn = 0; void setup () {myservo1.attach (2); // pin D4, myservo2.attachni ko'taring (14); // pin D5, chap myservo3.attach (12); // pin D6, o'ng myservo1.write (140); myservo2.write (90); myservo3.write (90); Serial.begin (115200); Blynk.begin (auth, ssid, pass); // Ishga tushganda darhol xabar bering // String msg = "WeMos kutubxonasi ulandi:"; //Blynk.notify(msg + ssid); // ochiq jadval Blynk.virtualWrite (V2, "clr"); populateTable (); } BLYNK_WRITE (V2) // V2 vidjet jadvalidan buyruqlar qabul qilish {String cmd = param [0].asStr (); // param [0] = "tanlash" yoki "bekor qilish", param [1] = qator Serial.print ("\ nJadval: BLYNK_WRITE (V2) cmd:"); Ketma -ket chop etish (cmd); int tanlash = c [param [1].asInt ()]; // Tanlangan qator raqami paramda [1] Serial.println ("\ nSelection:"); Serial.println (tanlash); jarayonni tanlash (tanlash); } void populateTable () {int i = 0; Serial.println ("To'ldiriladigan jadval …"); Blynk.virtualWrite (V2, "qo'shish", 0, "Mening chaqalog'im bo'l - ustunlar", 112); c = 112; Blynk.virtualWrite (V2, "qo'shish", 1, "Birinchi raqam - Jerri Uilyams", 176); i ++; c = 176; Blynk.virtualWrite (V2, "qo'shish", 2, "Mening barcha sevganlarim - Bitlzlar", 184); i ++; c = 184; Blynk.virtualWrite (V2, "qo'shish", 3, "Yozda - Mungo Jerri", 236); i ++; c = 236; Blynk.virtualWrite (V2, "qo'shish", 4, "Qora bulut - Chubby Checker", 155); i ++; c = 155; Blynk.virtualWrite (V2, "qo'shish", 5, "Mamy Blue - Pop -Tops", 260); i ++; c = 260; Blynk.virtualWrite (V2, "qo'shish", 6, "Hammasi yaxshi bo'ladi - Gerri va yurak stimulyatorlari", 145); i ++; c = 145; Blynk.virtualWrite (V2, "qo'shish", 7, "Mening yo'lim - Tom Jons", 193); i ++; c = 193; Blynk.virtualWrite (V2, "qo'shish", 8, "San -Bernadino - Kristi", 149); i ++; c = 149; Blynk.virtualWrite (V2, "add", 9, "Twist - Chubby Checker", 169); i ++; c = 169;

kechikish (1000);

} void process_selection (int tanlash) {// 3 xonali tanlovni (masalan, 178) 3 tugmachaga ajratish: int btn1 = int (tanlash/100); // birinchi tugma Serial.println ("\ nBtn1:"); Serial.println (btn1); agar (btn1 == 1 || btn1 == 2) // birinchi tugma 1 yoki 2 bo'lishi kerak - aks holda reset {push_button (btn1); tanlash = tanlash - (btn1 * 100); int btn2 = int (tanlash/10); // ikkinchi tugma Serial.println ("\ nBtn2:"); Serial.println (btn2); push_button (btn2); tanlash = tanlash - (btn2 * 10); int btn3 = int (tanlov); // uchinchi tugma Serial.println ("\ nBtn3:"); Serial.println (btn3); push_button (btn3); } boshqa {push_button (11); // tiklash tugmasi} // hamma narsa kechiktirilganda servo pozitsiyalarini tiklash (2000); myservo1.write (140); myservo2.write (90); myservo3.write (90);} void push_button (int btn) {// bu har bir tanlov uchun 3 marta chaqiriladi // haqiqiy tugmani bosish har bir tugmachadan keyin amalga oshiriladi ("haqiqiy tugmani bosish" ni toping) (btn) {1 -holat: set_servo_angles (134, 136); // 1 ta tanaffus; 2 -holat: set_servo_angles (128, 110); // 2 ta tanaffus; 3 -holat: set_servo_angles (112, 88); // 3 ta tanaffus; 4 -holat: set_servo_angles (89, 68); // 4 ta tanaffus; 5 -holat: set_servo_angles (62, 55); // 5 ta tanaffus; 6 -holat: set_servo_angles (172, 131); // 6 ta tanaffus; 7 -holat: set_servo_angles (163, 106); // 7 ta tanaffus; 8 -holat: set_servo_angles (140, 83); // 8 ta tanaffus; 9 -holat: set_servo_angles (104, 58); // 9 ta tanaffus; 0 holat: set_servo_angles (75, 36); // 0 tanaffus; 11 -holat: set_servo_angles (36, 30); // 11 ta tanaffus; } // tugatish tugmasi} void set_servo_angles (int pos2, int pos3) {myservo2.write (pos2); myservo3.write (pos3); // Servo pozitsiyalari tayyor - tugmani haqiqiy bosilishini bajaring: kechiktirish (500); myservo1.write (60); // pastga kechikish (500); myservo1.write (140); // kechikish (500); } void loop () {Blynk.run (); }

6 -qadam: Kelgusi qadamlar

Video vidjet - Blynk ilovasiga video va audio translyatsiyasi (allaqachon sinovdan o'tgan - ishlaydi)

Vebhook vidjeti - pleylistni talab bo'yicha bulutdan yuklab olish (allaqachon sinovdan o'tgan - ishlaydi)

Jadval vidjeti - vidjetni biroz yaxshilash mumkin (takliflar Blynk ishlab chiquvchilariga yuborilgan)

Tavsiya: