Мазмұны:

PlotClock, WeMos және Blynk Vintage AMI Jukebox ойнауда: 6 қадам (суреттермен)
PlotClock, WeMos және Blynk Vintage AMI Jukebox ойнауда: 6 қадам (суреттермен)

Бейне: PlotClock, WeMos және Blynk Vintage AMI Jukebox ойнауда: 6 қадам (суреттермен)

Бейне: PlotClock, WeMos және Blynk Vintage AMI Jukebox ойнауда: 6 қадам (суреттермен)
Бейне: Remote Robot finger playing Vintage AMI Jukebox 2024, Қараша
Anonim
PlotClock, WeMos және Blynk Vintage AMI Jukebox ойнауда
PlotClock, WeMos және Blynk Vintage AMI Jukebox ойнауда
PlotClock, WeMos және Blynk Vintage AMI Jukebox ойнауда
PlotClock, WeMos және Blynk Vintage AMI Jukebox ойнауда

Төрт техникалық инновация бұл жобаны жүзеге асыруға мүмкіндік берді: 1977 Rowe AMI Jukebox, PlotClock роботтар жиынтығы, WeMos/ESP 8266 микроконтроллері және Blynk App/Cloud қызметі.

ЕСКЕРТУ: Егер қолыңызда Jukebox болмаса - оқуды тоқтатпаңыз! Бұл жобаны адам саусақтарымен басқарылатын әр түрлі заттарды басқару үшін оңай қабылдауға болады. Бір мысал дәстүрлі ксилофонды ойнайтын робот саусақ болуы мүмкін - мүмкін, бұл нұсқаулық сізден шығар!

Менің 40 жастағы Rowe AMI R-81 Jukebox 60-70-80-ші жылдардағы винилді винил синглдерінде әлі де жақсы жұмыс істейді. Салмағы 160 кг-нан (360 фунт) асатын бұл ойыншы қазіргі заманғы mp-плеерлер сияқты портативті емес, бірақ интернет дәуірінде өмір сүру кезінде қазір қалтаңызда джукбокс пен 200 винил жазбасын алып жүруге болады-әрине! Сіз тіпті микроконтроллерде сақталған жеке ойнату тізімдерін пайдалана аласыз!

Таңғажайып PlotClock роботы бастапқыда өшірілетін тақтаға уақыт сандарын салу арқылы ағымдағы уақытты көрсетуге арналған. Менің PlotClock үшін бейімделуім - оны Jukebox әнін таңдау түймелерін басу үшін робот саусақ ретінде пайдалану.

Plotclock «саусағы» WeMos микроконтроллері басқаратын 3 серво арқылы басқарылады. Бұл таңғажайып нәрсе (дерлік) Arduino Uno үйлесімді және WiFi мүмкіндіктеріне ие, сондықтан әлемнің кез келген жерінен джукбоксты сымсыз басқаруға болады.

Тортқа арналған крем Blynk қосымшасы мен олардың Blynk Cloud Server -дің керемет мобильділігі бар ұялы телефон/планшеттің жақсы интерфейсін беретін керемет оңай қолданудан келеді.

1 -қадам: Жабдық

Аппараттық құрал
Аппараттық құрал
Аппараттық құрал
Аппараттық құрал

Jukebox

Jukebox жобасы-1977 Rowe AMI R-81. Таңдау түймелері бар кез келген ескі джукбок орындайды - PlotClock шектеулеріне назар аударады: PlotClock -тың түпнұсқалық конструкциясы шамамен 5х12 см аумақты қамтуы мүмкін, сондықтан джукбокс түймелерінің орналасуы (барлық таңдау түймелерін қосқанда) сол өлшемге сәйкес болуы керек. Ескі джукбокстардың түймелері PlotClock сервосымен қамтамасыз етілгенге қарағанда көбірек итеру қуатын қажет етуі мүмкін.

AMI R-81 барлық 200 таңдауды сақтай алатын жады бар. Таңдау олар таңдалған рет бойынша емес, журнал журналында (карусель түрі) сақталу реті бойынша ойналады. Бір жазбаның бірнеше таңдауы тек бір рет ойнатылады.

PlotClock

Plotclock - бұл коммерциялық қол жетімді DIY жиынтығы, оның ішінде механикалық бөлшектер, 3 серво, Arduino Uno R3, Arduino кеңейту тақтасы мен USB кабелі бар. Шамамен 30 АҚШ долларына бұл жақсы сатып алу (мысалы, Banggood.com). Бұл жоба үшін Arduino, кеңейту тақтасы мен USB кабелі қолданылмайды.

Plotclock құруға арналған бірнеше жақсы интернет/YouTube оқулықтары бар - мысалы. бұл: PlotClock нұсқаулары

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

WeMos

WeMos D1 R2 - бұл ESP8266 негізіндегі микроконтроллер. Ол Arduino IDE көмегімен бағдарламалануы мүмкін және WiFi мүмкіндіктері бар, сондықтан бұл жоба үшін тамаша жабдық.

2 -қадам: калибрлеу

Калибрлеу
Калибрлеу

Калибрлеу - бұл таңдау түймелерінің физикалық позицияларына сәйкес келетін серво бұрыштарының (0 -ден 180 градусқа дейін) дәл бұрыштық мәндерін табуға арналған тапсырма. Бұрыштық мәндерді тригонометриялық аритемитика немесе CAD бағдарламалық жасақтамасы арқылы табуға болады. Мен AutoCad -ты қолдануды білетін досымнан шамамен мәндерді алдым.

Алайда, соңғы калибрлеу сынақ және қателік арқылы жасалуы керек еді. Қағазға салынған түйменің орналасуын қолданып, бұрыштың дұрыс мәндерін табу үшін «жұмыс үстелі тестілеуін» жүргізуге болады.

3 -қадам: құрастыру

Ассамблея
Ассамблея
Ассамблея
Ассамблея
Ассамблея
Ассамблея
Ассамблея
Ассамблея

Сымдар

Plotclock сервосынан Wemos -қа қосылу 5 сыммен жүзеге асырылады: +5, GND, D4, D5 және D6. Мәліметтерді суреттен және кодтан қараңыз.

Jukebox -қа орнату

Мен ұзақ уақыт бойы үлкен зақымсыз аман қалған 40 жастағы джукбоксқа бұрандалы тесіктер жасағым келмеді. Мен жұмсақ резеңке тығыздағышты пайдаланып, алюминий бұрышының тізімін джукбокс консолінің астына қойдым. Резеңке тығыздағыш тығыз ұстайды және оны із қалдырмай алып тастауға болады. PlotClock корпусына акрил пластинасына бекітуге көмектесетін екі кішкентай алюминий бұрышы қажет болды. Акрил пластинасы бұрыштық тізімге екі серіппелі қысқышпен орнатылады, бұл тігінен және көлденеңінен соңғы түзетулер енгізуге мүмкіндік береді.

4 -қадам: Блинк

Блинк
Блинк

Blynk - бұл микроконтроллерлердің бірнеше түрін қашықтан басқаруға арналған ақысыз бағдарлама. Blynk көмегімен виджеттердің бірнеше түрін қолдана отырып, жақсы интерфейс құруға болады. Бұл жобаға тек бір виджет қажет: Table виджеті.

5 -қадам: Бағдарламалық қамтамасыз ету

Blynk қосымшасы

Бағдарлама жағында кодтау жоқ. Қолданба (Blynk) мен микроконтроллер (WeMos) арасындағы «сөйлесуді» «виртуалды түйреуіштер» басқарады, олар негізінен осы екеуінің арасында ақпаратты жіберуге және алуға арналған арналар болып табылады. Виртуалды түйін, мысалы, Blynk қосымшасынан WeMos -қа таңдалған әннің жол нөмірін жіберу үшін пайдаланылады, ал қалғанын Wemos өңдейді, яғни. Plotclock сервосына командаларды жіберу.

WeMos коды

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

V2 кесте виджеті ******************************************** ****************/ #define BLYNK_PRINT Serial #include #include #include char auth = «-АВТО КОДЫҢЫЗ--»; // Jukebox жобасы char ssid = «-Сіздің SSID-»; char pass = «--СІЗДІҢ WIFI ПАРОЛЫҢЫЗ-»; int c [50]; // Jukebox рекордтық позициялары үшін массив (100-299) Servo myservo1; // көтеру Servo myservo2; // сол қол Servo myservo3; // оң қол int pos1 = 0; int pos2 = 0; int pos3 = 0; int btn = 0; void setup () {myservo1.attach (2); // түйреу D4, myservo2.attach көтеру (14); // түйін D5, сол жақ myservo3.attach (12); // пин D6, оң myservo1.write (140); myservo2.write (90); myservo3.write (90); Serial.begin (115200); Blynk.begin (auth, ssid, pass); // Іске қосылған кезде дереу хабарлаңыз // String msg = «WeMos Jukebox қосылған:»; //Blynk.notify(msg + ssid); // кестені тазарту Blynk.virtualWrite (V2, «clr»); populateTable (); } BLYNK_WRITE (V2) // V2 кесте виджетінен командаларды алу {String cmd = param [0].asStr (); // param [0] = «таңдау» немесе «таңдауды алып тастау», param [1] = жол Serial.print («\ nКесте: BLYNK_WRITE (V2) cmd:»); Serial.print (cmd); int таңдау = c [парам [1].asInt ()]; // Таңдалған жол нөмірі параметрде [1] Serial.println («\ nТаңдау:»); Serial.println (таңдау); процесті таңдау (таңдау); } void populateTable () {int i = 0; Serial.println («Толық кесте…»); Blynk.virtualWrite (V2, «қосу», 0, «Менің балам бол - Үлкендер», 112); c = 112; Blynk.virtualWrite (V2, «қосу», 1, «Бірінші нөмір - Джерри Уильямс», 176); i ++; c = 176; Blynk.virtualWrite (V2, «add», 2, «All My Loving - The Beatles», 184); i ++; c = 184; Blynk.virtualWrite (V2, «қосу», 3, «Жаз мезгілінде - Мунго Джерри», 236); i ++; c = 236; Blynk.virtualWrite (V2, «қосу», 4, «Қара бұлт - толқынды тексеруші», 155); i ++; c = 155; Blynk.virtualWrite (V2, «қосу», 5, «Mamy Blue - Pop -Tops», 260); i ++; c = 260; Blynk.virtualWrite (V2, «қосу», 6, «Бәрі жақсы болады - Герри және кардиостимуляторлар», 145); i ++; c = 145; Blynk.virtualWrite (V2, «қосу», 7, «Менің жолым - Том Джонс», 193); i ++; c = 193; Blynk.virtualWrite (V2, «қосу», 8, «Сан -Бернадино - Кристи», 149); i ++; c = 149; Blynk.virtualWrite (V2, «add», 9, «The Twist - Chubby Checker», 169); i ++; c = 169;

кешіктіру (1000);

} void process_selection (int selection) {// 3 таңбалы таңдауды (мысалы, 178) 3 түймені талдау: int btn1 = int (таңдау/100); // бірінші түйме Serial.println («\ nBtn1:»); Serial.println (btn1); егер (btn1 == 1 || btn1 == 2) // бірінші түйме 1 немесе 2 болуы керек - әйтпесе қалпына келтіруді {push_button (btn1) жасаңыз; таңдау = таңдау - (btn1 * 100); int btn2 = int (таңдау/10); // екінші түйме Serial.println («\ nBtn2:»); Serial.println (btn2); push_button (btn2); таңдау = таңдау - (btn2 * 10); int btn3 = int (таңдау); // үшінші түйме Serial.println («\ nBtn3:»); Serial.println (btn3); push_button (btn3); } басқа {push_button (11); // ысыру батырмасы} // барлық кешіктірілген кезде серво позицияларын қалпына келтіру (2000); myservo1.write (140); myservo2.write (90); myservo3.write (90);} void push_button (int btn) {// бұл әр таңдау үшін 3 рет шақырылады // нақты батырманы басу әр түйме («нақты батырманы басу» табылғаннан кейін) орындалады (btn) {1 жағдай: set_servo_angles (134, 136); // 1 үзіліс; 2 -жағдай: set_servo_angles (128, 110); // 2 үзіліс; 3 -жағдай: set_servo_angles (112, 88); // 3 үзіліс; 4 -жағдай: set_servo_angles (89, 68); // 4 үзіліс; 5 -жағдай: set_servo_angles (62, 55); // 5 үзіліс; 6 -жағдай: set_servo_angles (172, 131); // 6 үзіліс; 7 -жағдай: set_servo_angles (163, 106); // 7 үзіліс; 8 -жағдай: set_servo_angles (140, 83); // 8 үзіліс; 9 -жағдай: set_servo_angles (104, 58); // 9 үзіліс; 0 жағдай: set_servo_angles (75, 36); // 0 үзіліс; 11 -жағдай: set_servo_angles (36, 30); // 11 үзіліс; } // аяқтау қосқышы} void set_servo_angles (int pos2, int pos3) {myservo2.write (pos2); myservo3.write (pos3); // Серво позициялары дайын - нақты батырманы басуды орындау: кешіктіру (500); myservo1.write (60); // төмен кідіріс (500); myservo1.write (140); // жоғары кідіріс (500); } void loop () {Blynk.run (); }

6 -қадам: Болашақ қадамдар

Бейне виджеті - Blynk қосымшасына тікелей бейне мен аудио ағыны (қазірдің өзінде тексерілген - жұмыс істейді)

Webhook виджеті - бұлттан сұраныс бойынша ойнату тізімі (қазірдің өзінде тексерілген - жұмыс істейді)

Кесте виджеті - виджеттің кейбір жақсартулары құпталады (Blynk әзірлеушілеріне ұсыныстар жіберіледі)

Ұсынылған: