Cuprins:
- Pasul 1: Hardware
- Pasul 2: Calibrare
- Pasul 3: Asamblare
- Pasul 4: Blynk
- Pasul 5: Software
- Pasul 6: Pași viitori
Video: PlotClock, WeMos și Blynk Playing Vintage AMI Jukebox: 6 pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:41
Patru inovații tehnice au făcut posibil acest proiect: Rowe AMI Jukebox din 1977, kitul brațului robotului PlotClock, microcontrolerul WeMos / ESP 8266 și serviciul Blynk App / Cloud.
NOTĂ: Dacă nu aveți la îndemână Jukebox - nu încetați să citiți! Acest proiect poate fi adoptat cu ușurință pentru a controla diferite lucruri controlate de degetele umane. Un exemplu ar putea fi un deget robot care cântă la xilofon tradițional - poate că acest lucru instructiv vine de la tine!
Rowe AMI R-81 Jukebox, în vârstă de 40 de ani, funcționează încă bine cântând single-uri de vinil de epocă din anii '60, '70 și 80. Cu o greutate de peste 160 kg (360 lbs), acest player nu este la fel de portabil ca playerele MP moderne, dar trăind în epoca internetului, acum este posibil să transporti tonomatul și 200 de discuri de vinil în buzunar - practic, desigur! Și puteți utiliza chiar și propriile playlisturi stocate în microcontroler!
Robotul uimitor PlotClock este conceput inițial pentru a arăta ora curentă, trasând cifre de timp pe placa ștergabilă. Adaptarea mea pentru PlotClock este să îl folosesc ca deget robot pentru apăsarea butoanelor de selecție a melodiei Jukebox.
„Degetul” Plotclock este acționat de 3 servouri controlate de microcontrolerul WeMos. Această minune este (aproape) compatibilă cu Arduino Uno și are capacități WiFi, astfel încât este posibil să controlați tonomatul fără fir de oriunde din lume.
Crema de pe tort provine din aplicația incredibilă ușor de utilizat Blynk și serverul lor Blynk Cloud, oferind o interfață de utilizare a telefonului mobil / tabletă cu mobilitate completă.
Pasul 1: Hardware
Tonomat
Jukebox-ul proiectului este 1977 Rowe AMI R-81. Orice tonomat vechi cu butoane de selecție va funcționa - menționând câteva limitări ale PlotClock: designul original al brațelor PlotClock poate acoperi o suprafață de aproximativ 5 x 12 cm, astfel încât aspectul butonului tonomatului (zona care include toate butoanele de selecție) trebuie să fie de aproximativ acea dimensiune. Este posibil ca butoanele tonomatelor mai vechi să aibă nevoie de mai multă putere de împingere decât pot oferi servo-urile PlotClock.
AMI R-81 are o memorie în care poate stoca toate cele 200 de selecții. Selecțiile sunt redate pe baza ordinii în care sunt stocate în revista de înregistrări (tip carusel), nu în ordinea în care sunt selectate. Selecțiile multiple pentru o singură înregistrare sunt redate o singură dată.
PlotClock
Plotclock este un kit DIY disponibil în comerț, care include piese mecanice, 3 servo-uri, Arduino Uno R3, placa extensie Arduino și cablu USB. Pentru aproximativ 30 USD, aceasta este o cumpărare bună (de exemplu, Banggood.com). Arduino, placa de extensie și cablul USB nu sunt utilizate pentru acest proiect.
Există mai multe tutoriale bune pe internet / YouTube pentru a compune Plotclock - de ex. aceasta: instrucțiuni PlotClock
static1.squarespace.com/static/52cb189ee4b012ff9269fa8e/t/5526946be4b0ed8e0b3cd296/1428591723698/plotclock_final_instructions.pdf
WeMos
WeMos D1 R2 este un microcontroler bazat pe ESP8266. Poate fi programat folosind Arduino IDE și are capacități WiFi, deci este o piesă hardware perfectă pentru acest proiect.
Pasul 2: Calibrare
Calibrarea este sarcina de a găsi valori precise ale unghiurilor pentru unghiurile servo (între 0 și 180 de grade) pentru a corespunde pozițiilor fizice pentru butoanele de selecție. Valorile unghiului pot fi găsite prin aritemitici de trigonometrie sau folosind un software CAD. Am primit valori aproximative de la prietenul meu care știa să folosească AutoCad.
Cu toate acestea, calibrarea finală trebuia făcută prin încercare și eroare. Utilizarea aspectului butonului desenat pe bucata de hârtie Este posibil să efectuați „testarea desktopului” pentru a găsi valorile unghiului corecte.
Pasul 3: Asamblare
Cablare
Conexiunea de la servo-uri Plotclock la Wemos se face cu 5 fire: +5, GND, D4, D5 și D6. Vedeți detalii în imagini și cod.
Instalarea pe Jukebox
Nu am vrut să fac găuri de șurub la tonomatul vechi de 40 de ani care a supraviețuit atât de mult fără daune majore. Folosind un material de etanșare din cauciuc moale, am fixat o bucată de listă de unghiuri din aluminiu sub consola jukebox. Etanșantul din cauciuc face o fixare strânsă și poate fi îndepărtat fără a lăsa urme. Corpul PlotClock avea nevoie de două unghiuri mici de aluminiu pentru a-l monta pe placa acrilică. Placa acrilică este apoi montată pe lista unghiurilor cu două cleme cu arc, lăsând posibilitatea de a face ajustările finale pe verticală și orizontală.
Pasul 4: Blynk
Blynk este o aplicație gratuită pentru controlul de la distanță a mai multor tipuri de microcontrolere. Cu Blynk puteți crea cu ușurință o interfață de utilizator plăcută folosind mai multe tipuri de widget-uri. Este necesar un singur widget pentru acest proiect: widgetul Table.
Pasul 5: Software
Aplicația Blynk
Nu există codificare în partea aplicației. „Conversația” dintre aplicație (Blynk) și microcontroler (WeMos) este gestionată de „pini virtuali”, care sunt în esență canale pentru trimiterea și primirea de informații între cele două. Pinul virtual este de exemplu folosit pentru a trimite numărul de rând al melodiei selectate din aplicația Blynk către WeMos, iar Wemos se ocupă de restul, adică. trimiterea de comenzi către servo-urile Plotclock.
Cod WeMos
/**************************************************************
Widget de masă la V2 *********************************************** **************** / #define BLYNK_PRINT Serial #include #include #include char auth = "--CODUL AUTORULUI TĂU--"; // Jukebox project char ssid = "--YOUR SSID--"; char pass = "- PAROLA TA WIFI--"; int c [50]; // Matrice pentru pozițiile de înregistrare Jukebox (100-299) Servo myservo1; // ridicarea Servo myservo2; // brațul stâng Servo myservo3; // brațul drept int pos1 = 0; int pos2 = 0; int pos3 = 0; int btn = 0; void setup () {myservo1.attach (2); // pinul D4, ridicați myservo2.attach (14); // pinul D5, stânga myservo3.attach (12); // pinul D6, dreapta myservo1.write (140); myservo2.write (90); myservo3.write (90); Serial.begin (115200); Blynk.begin (auth, ssid, pass); // Notificați imediat la pornire // String msg = "Jukebox WeMos conectat la:"; //Blynk.notify(msg + ssid); // ștergeți tabelul la început Blynk.virtualWrite (V2, "clr"); populateTable (); } BLYNK_WRITE (V2) // Primiți comenzi din widgetul Table V2 {String cmd = param [0].asStr (); // param [0] = "selectați" sau "deselectați", param [1] = rând Serial.print ("\ nTabel: BLYNK_WRITE (V2) cmd:"); Serial.print (cmd); int selection = c [param [1].asInt ()]; // Numărul rândului selectat se află în param [1] Serial.println ("\ nSelecție:"); Serial.println (selecție); selectare_proces (selecție); } void populateTable () {int i = 0; Serial.println ("Tabel populator …"); Blynk.virtualWrite (V2, "add", 0, "Be My Baby - The Supremes", 112); c = 112; Blynk.virtualWrite (V2, "add", 1, "Number One - Jerry Williams", 176); i ++; c = 176; Blynk.virtualWrite (V2, "add", 2, "All My Loving - The Beatles", 184); i ++; c = 184; Blynk.virtualWrite (V2, "add", 3, "In Summertime - Mungo Jerry", 236); i ++; c = 236; Blynk.virtualWrite (V2, "add", 4, "Black Cloud - Chubby Checker", 155); i ++; c = 155; Blynk.virtualWrite (V2, "add", 5, "Mamy Blue - Pop-Tops", 260); i ++; c = 260; Blynk.virtualWrite (V2, "add", 6, "It's Gonna Be Alright - Gerry & Pacemakers", 145); i ++; c = 145; Blynk.virtualWrite (V2, "add", 7, "My Way - Tom Jones", 193); i ++; c = 193; Blynk.virtualWrite (V2, "add", 8, "San Bernadino - Christie", 149); i ++; c = 149; Blynk.virtualWrite (V2, "add", 9, "The Twist - Chubby Checker", 169); i ++; c = 169;
întârziere (1000);
} void process_selection (int selection) {// analizați selecția din 3 cifre (ex. 178) la 3 butoane: int btn1 = int (selection / 100); // primul buton Serial.println ("\ nBtn1:"); Serial.println (btn1); dacă (btn1 == 1 || btn1 == 2) // primul buton trebuie să fie 1 sau 2 - în caz contrar, resetați {push_button (btn1); selectie = selectie - (btn1 * 100); int btn2 = int (selecție / 10); // al doilea buton Serial.println ("\ nBtn2:"); Serial.println (btn2); push_button (btn2); selectie = selectie - (btn2 * 10); int btn3 = int (selecție); // al treilea buton Serial.println ("\ nBtn3:"); Serial.println (btn3); push_button (btn3); } else {push_button (11); // buton reset} // resetează pozițiile servo când totul a fost întârziat (2000); myservo1.write (140); myservo2.write (90); myservo3.write (90);} void push_button (int btn) {// aceasta se numește de 3 ori pentru fiecare selecție // apăsarea butonului efectiv se face după fiecare buton (găsiți „apăsarea butonului real”) comutator (btn) {caz 1: set_servo_angles (134, 136); // 1 pauză; caz 2: set_servo_angles (128, 110); // 2 pauza; caz 3: set_servo_angles (112, 88); // 3 pauză; caz 4: set_servo_angles (89, 68); // 4 pauză; caz 5: set_servo_angles (62, 55); // 5 pauză; caz 6: set_servo_angles (172, 131); // 6 pauză; caz 7: set_servo_angles (163, 106); // 7 pauză; caz 8: set_servo_angles (140, 83); // 8 pauză; caz 9: set_servo_angles (104, 58); // 9 pauză; caz 0: set_servo_angles (75, 36); // 0 pauza; cazul 11: set_servo_angles (36, 30); // 11 pauză; } // end switch} void set_servo_angles (int pos2, int pos3) {myservo2.write (pos2); myservo3.write (pos3); // Poziții servo gata - efectuați apăsarea butonului efectiv: întârziere (500); myservo1.write (60); // întârziere în jos (500); myservo1.write (140); // întârziere până (500); } void loop () {Blynk.run (); }
Pasul 6: Pași viitori
Widget video - flux video și audio live în aplicația Blynk (deja testat - funcționează)
Widget Webhook - descărcare playlist la cerere din cloud (deja testat - funcțional)
Widget de masă - unele mici îmbunătățiri ale widgetului sunt binevenite (sugestii trimise dezvoltatorilor Blynk)
Recomandat:
Cara Menggunakan Wemos D1 R1 / Wemos D1 Mini / Node MCU: 7 pași
Cara Menggunakan Wemos D1 R1 / Wemos D1 Mini / NodeMCU: Pada tutorial pertama ini, Saya ingin mengajak Anda bagaimana caranya menggunakan papan mikrokontroler yang sudah ada Module WiFi ESP8266 di dalamnya dan juga sering dijumpai (Contoh: Wemos D1 R1 Mini ) dengan menggunakan aplikasi
Robot controlat Wi-Fi folosind Wemos D1 ESP8266, Arduino IDE și aplicația Blynk: 11 pași (cu imagini)
Robot controlat prin Wi-Fi folosind Wemos D1 ESP8266, Arduino IDE și aplicația Blynk: În acest tutorial vă arăt cum să realizați un rezervor robotizat controlat de Wi-Fi controlat de pe un smartphone folosind aplicația Blynk. În acest proiect a fost utilizată o placă ESP8266 Wemos D1, dar pot fi utilizate și alte modele de plăci (NodeMCU, Firebeetle etc.) și pr
Trimiteți temperatura și umiditatea către aplicația Blynk (Wemos D1 Mini Pro) .: 15 pași (cu imagini)
Trimiteți temperatura și umiditatea către aplicația Blynk (Wemos D1 Mini Pro)
Construiți un UFD bootabil pentru BIOS AMI intermitent: 12 pași
Construiți un UFD bootabil pentru BIOS AMI intermitent: Atât computerele notebook, cât și cele desktop necesită ocazional actualizări BIOS. Când vizitați site-ul web al unui furnizor (fie PC mfgr, fie BIOS maker) și descoperiți un BIOS nou cu caracteristicile dorite sau actualizările necesită un BIOS nou, este timpul să puneți toate informațiile
Detector de mișcare cu notificări Blynk (WeMos D1 Mini + HC-SR04): 4 pași (cu imagini)
Detector de mișcare cu notificări Blynk (WeMos D1 Mini + HC-SR04): Vă rugăm să VOTAȚI acest proiect în concursul wireless. Actualizare nr.2 - Puține modificări (versiunea 2.2), puteți configura senzorul (intervalul și numele) chiar în definiție. De asemenea, uneori s-a întâmplat ca senzorul să citească valori greșite și să trimită notificări