Мазмұны:
- 1 -қадам: Жабдық
- 2 -қадам: калибрлеу
- 3 -қадам: құрастыру
- 4 -қадам: Блинк
- 5 -қадам: Бағдарламалық қамтамасыз ету
- 6 -қадам: Болашақ қадамдар
Бейне: PlotClock, WeMos және Blynk Vintage AMI Jukebox ойнауда: 6 қадам (суреттермен)
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:22
Төрт техникалық инновация бұл жобаны жүзеге асыруға мүмкіндік берді: 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 әзірлеушілеріне ұсыныстар жіберіледі)
Ұсынылған:
BBC Micro: бит және Scratch - интерактивті руль және жүргізуші ойыны: 5 қадам (суреттермен)
BBC Micro: бит және Scratch - интерактивті руль және көлік жүргізу ойыны: Менің осы аптадағы тапсырмаларымның бірі - біз жазған Scratch бағдарламасымен интерфейс жасау үшін BBC Micro: bit пайдалану. Мен бұл ThreadBoard тақтасын ендірілген жүйені құрудың тамаша мүмкіндігі деп ойладым! Менің сызатқа шабытым
ScanUp NFC оқу құралы/жазушысы және зағиптарға, нашар көретіндерге және басқа адамдарға арналған дыбыс жазғыш: 4 қадам (суреттермен)
ScanUp NFC Reader/жазушы және зағиптарға, нашар көретіндерге және басқаларға арналған аудиожазғыш: Мен өнеркәсіптік дизайнды оқимын, бұл жоба менің семестрімнің жұмысы. Мақсаты - көру қабілеті нашар және зағип жандарға SD картасына WAV форматында дыбыс жазуға және NFC белгісімен қоңырау шалуға мүмкіндік беретін құрылғы арқылы қолдау көрсету. Сонымен
Bluetooth LE және RaspberryPi көмегімен температураны бақылау және жазу: 9 қадам (суреттермен)
Bluetooth LE және RaspberryPi көмегімен температураны бақылау және тіркеу: Бұл нұсқаулық Blue RADIO (BLEHome) мен RaspberryPi 3B Bluetooth LE сенсорлы қатесі бар температуралық бақылаудың көп түйінді жүйесін қалай қосуға болатындығы туралы. Bluetooth LE стандартының арқасында. қазір қол жетімді
Wemos D1 ESP8266, Arduino IDE және Blynk қосымшасын қолданатын Wi-Fi басқарылатын робот: 11 қадам (суреттермен)
Wemos D1 ESP8266, Arduino IDE және Blynk қосымшасын қолданатын Wi-Fi басқарылатын робот: Бұл оқулықта мен сізге смартфоннан Blynk қосымшасы арқылы басқарылатын Wi-Fi басқарылатын роботтық резервуарды қалай жасау керектігін көрсетемін. Бұл жобада ESP8266 Wemos D1 тақтасы қолданылды, бірақ басқа пластиналық модельдерді де қолдануға болады (NodeMCU, Firebeetle және т
Wemos D1 Mini және Blynk қосылған 6CH ақылды қуат жолағы: 5 қадам
Wemos D1 Mini мен Blynk көмегімен 6CH Smart Power Strip: Бұл жоба Blynk және Wemos D1 mini R2 смартфондарымен басқарылатын әлемнің кез келген жерінде Интернетті қолдана отырып басқарылатын 6CH ақылды қуат таспасын қалай жасау керектігін сипаттайды. : Ескерту: Бұл жоба