Taula de continguts:

PlotClock, WeMos i Blynk tocant Vintage AMI Jukebox: 6 passos (amb imatges)
PlotClock, WeMos i Blynk tocant Vintage AMI Jukebox: 6 passos (amb imatges)

Vídeo: PlotClock, WeMos i Blynk tocant Vintage AMI Jukebox: 6 passos (amb imatges)

Vídeo: PlotClock, WeMos i Blynk tocant Vintage AMI Jukebox: 6 passos (amb imatges)
Vídeo: Remote Robot finger playing Vintage AMI Jukebox 2024, Desembre
Anonim
PlotClock, WeMos i Blynk Playing Vintage AMI Jukebox
PlotClock, WeMos i Blynk Playing Vintage AMI Jukebox
PlotClock, WeMos i Blynk Playing Vintage AMI Jukebox
PlotClock, WeMos i Blynk Playing Vintage AMI Jukebox

Quatre innovacions tècniques van fer possible aquest projecte: el Rowe AMI Jukebox de 1977, el kit de braços del robot PlotClock, el microcontrolador WeMos / ESP 8266 i el servei Blynk App / Cloud.

NOTA: Si no teniu el Jukebox a mà, no deixeu de llegir. Aquest projecte es pot adoptar fàcilment per controlar diverses coses controlades per dits humans. Un exemple podria ser un dit de robot que toca el xilòfon tradicional, potser us sigui instructiu.

Els meus 40 anys d’edat, Rowe AMI R-81 Jukebox, segueixen treballant bé tocant singles de vinil vintage dels anys 60, 70 i 80. Amb un pes de més de 160 kg (360 lliures), aquest reproductor no és tan portàtil com els reproductors mp moderns, però vivint a l’era d’Internet, ara és possible portar el disc musical i 200 discos de vinil a la butxaca, pràcticament és clar. I fins i tot podeu utilitzar les vostres pròpies llistes de reproducció emmagatzemades al microcontrolador.

L'increïble robot PlotClock està dissenyat originalment per mostrar l'hora actual dibuixant dígits d'hora al tauler esborrable. La meva adaptació per a PlotClock és utilitzar-la com a dit del robot per prémer els botons de selecció de cançons de Jukebox.

El "dit" de Plotclock està impulsat per 3 servos controlats pel microcontrolador WeMos. Aquesta meravella és (gairebé) compatible amb Arduino Uno i té funcions WiFi, de manera que és possible controlar el jukebox sense fils des de qualsevol lloc del món.

La crema del pastís prové de l’increïble aplicació Blynk fàcil d’utilitzar i del seu servidor Cloud Blynk que proporciona una bonica interfície d’usuari per a telèfons mòbils / tauletes amb total mobilitat.

Pas 1: maquinari

Maquinari
Maquinari
Maquinari
Maquinari

Jukebox

El jukebox del projecte és el 1977 Rowe AMI R-81. Qualsevol jukebox vell amb botons de selecció ho farà, tenint en compte algunes limitacions de PlotClock: el disseny original de braços de PlotClock pot cobrir una àrea d’uns 5 x 12 cm, de manera que el disseny del botó del jukebox (àrea inclosa tots els botons de selecció) ha de ser d’aquesta mida. És possible que els botons de les caixes de discs més antigues necessitin més potència que els servos de PlotClock.

AMI R-81 té una memòria on pot emmagatzemar les 200 seleccions. Les seleccions es reprodueixen en funció de l'ordre en què s'emmagatzemen a la revista de discos (tipus carrusel), no en l'ordre en què es seleccionen. Només es reprodueixen diverses seleccions per a un disc.

PlotClock

Plotclock és un kit de bricolatge disponible al comerç que inclou peces mecàniques, 3 servos, Arduino Uno R3, placa d’extensió Arduino i cable USB. Per uns 30 dòlars, és una bona compra (per exemple, Banggood.com). Arduino, placa d’extensió i cable USB no s’utilitzen per a aquest projecte.

Hi ha diversos bons tutorials d'Internet / YouTube per compondre Plotclock, per exemple. això: instruccions de PlotClock

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

WeMos

WeMos D1 R2 és un microcontrolador basat en l’ESP8266. Es pot programar mitjançant Arduino IDE i té funcions WiFi, de manera que és una peça de maquinari perfecta per a aquest projecte.

Pas 2: calibració

Calibratge
Calibratge

La calibració és la tasca de trobar valors d’angle precisos per als angles de servo (entre 0 i 180 graus) per correspondre a les posicions físiques dels botons de selecció. Els valors d’angle es poden trobar mitjançant aritemètica de trigonometria o mitjançant un programari CAD. Vaig obtenir valors aproximats del meu amic que sabia utilitzar AutoCad.

Tot i així, el calibratge final s’havia de fer per prova i error. Utilitzant el disseny del botó dibuixat al tros de paper És possible fer la "prova d'escriptori" per trobar els valors d'angle correctes.

Pas 3: Muntatge

muntatge
muntatge
muntatge
muntatge
muntatge
muntatge
muntatge
muntatge

Cablejat

La connexió dels servos de Plotclock a Wemos es fa amb 5 cables: +5, GND, D4, D5 i D6. Vegeu els detalls en imatges i codi.

Instal·lació al Jukebox

No volia fer cap forat de cargol al disc jukebox de 40 anys que havia sobreviscut durant tant de temps sense danys majors. Amb un segellador de cautxú tou, vaig fixar un tros de llista d’angles d’alumini a sota de la consola del jukebox. El segellador de goma es manté ferm i es pot treure sense deixar cap marca. El cos de PlotClock necessitava dos petits angles d'alumini per ajudar-lo a fixar-lo a la placa acrílica. A continuació, la placa acrílica s’adapta a la llista d’angles amb dos clips de ressort que permeten fer els ajustos finals verticalment i horitzontalment.

Pas 4: Blynk

Blynk
Blynk

Blynk és una aplicació gratuïta per controlar de forma remota diversos tipus de microcontroladors. Amb Blynk podeu crear fàcilment una bona interfície d'usuari mitjançant diversos tipus de ginys. Només cal un giny per a aquest projecte: el giny Taula.

Pas 5: programari

Aplicació Blynk

No hi ha cap codificació al costat de l'aplicació. La "conversa" entre l'aplicació (Blynk) i el microcontrolador (WeMos) és gestionada per "pins virtuals", que bàsicament són canals per enviar i rebre informació entre aquests dos. El pin virtual s'utilitza per exemple per enviar el número de fila de la cançó seleccionada des de l'aplicació Blynk a WeMos i Wemos s'encarrega de la resta, és a dir. enviant ordres als servos de Plotclock.

Codi WeMos

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

Giny de taula a V2 *********************************************** **************** / #define BLYNK_PRINT Serial #include #include #include char auth = "--EU CODI D'AUTOR--"; // Jukebox project char ssid = "--YOUR SSID--"; char pass = "--LA VOSTRA CONTRASENYA DE WIFI--"; int c [50]; // Matriu per a posicions de registre de Jukebox (100-299) Servo myservo1; // aixecar Servo myservo2; // braç esquerre Servo myservo3; // braç dret int pos1 = 0; int pos2 = 0; int pos3 = 0; int btn = 0; void setup () {myservo1.attach (2); // pin D4, aixequeu myservo2.attach (14); // pin D5, esquerra myservo3.attach (12); // pin D6, myservo1.write dret (140); myservo2.write (90); myservo3.write (90); Serial.begin (115200); Blynk.begin (auth, ssid, pass); // Notificar immediatament a l'inici // String msg = "Jukebox WeMos connectat a:"; //Blynk.notify(msg + ssid); // esborra la taula a l'inici Blynk.virtualWrite (V2, "clr"); populateTable (); } BLYNK_WRITE (V2) // Rebre ordres del widget de taula V2 {Cadena cmd = param [0].asStr (); // param [0] = "seleccionar" o "desseleccionar", param [1] = fila Serial.print ("\ nTabla: BLYNK_WRITE (V2) cmd:"); Serial.print (cmd); int selection = c [param [1].asInt ()]; // El número de fila seleccionat es troba a param [1] Serial.println ("\ nSelecció:"); Serial.println (selecció); selecció_procés (selecció); } void populateTable () {int i = 0; Serial.println ("Taula pobladora …"); Blynk.virtualWrite (V2, "afegir", 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, "afegir", 3, "A l'estiu - Mungo Jerry", 236); i ++; c = 236; Blynk.virtualWrite (V2, "add", 4, "Black Cloud - Chubby Checker", 155); i ++; c = 155; Blynk.virtualWrite (V2, "afegir", 5, "Mamy Blue - Pop-Tops", 260); i ++; c = 260; Blynk.virtualWrite (V2, "afegir", 6, "Va a estar bé - Gerry i marcapassos", 145); i ++; c = 145; Blynk.virtualWrite (V2, "add", 7, "My Way - Tom Jones", 193); i ++; c = 193; Blynk.virtualWrite (V2, "afegir", 8, "San Bernadino - Christie", 149); i ++; c = 149; Blynk.virtualWrite (V2, "add", 9, "The Twist - Chubby Checker", 169); i ++; c = 169;

retard (1000);

} void process_selection (int selection) {// analitza la selecció de 3 dígits (per exemple, 178) a 3 botons: int btn1 = int (selection / 100); // primer botó Serial.println ("\ nBtn1:"); Serial.println (btn1); if (btn1 == 1 || btn1 == 2) // el primer botó ha de ser 1 o 2; en cas contrari, reinicieu {push_button (btn1); selecció = selecció - (btn1 * 100); int btn2 = int (selecció / 10); // segon botó Serial.println ("\ nBtn2:"); Serial.println (btn2); botó_empenta (btn2); selecció = selecció - (btn2 * 10); int btn3 = int (selecció); // tercer botó Serial.println ("\ nBtn3:"); Serial.println (btn3); botó_empenta (btn3); } else {push_button (11); // botó de restabliment} // restableix les posicions del servo quan s'ha acabat el retard (2000); myservo1.write (140); myservo2.write (90); myservo3.write (90);} void push_button (int btn) {// es diu 3 vegades per a cada selecció // l'empenta real del botó es realitza després de cada botó (cerca "pulsació real del botó") (btn) {cas 1: set_servo_angles (134, 136); // 1 descans; cas 2: set_servo_angles (128, 110); // 2 trencament; cas 3: set_servo_angles (112, 88); // 3 trencar; cas 4: set_servo_angles (89, 68); // 4 descans; cas 5: set_servo_angles (62, 55); // 5 descans; cas 6: set_servo_angles (172, 131); // 6 trencament; cas 7: set_servo_angles (163, 106); // 7 descans; cas 8: set_servo_angles (140, 83); // 8 descans; cas 9: set_servo_angles (104, 58); // 9 trencament; cas 0: set_servo_angles (75, 36); // 0 descans; cas 11: set_servo_angles (36, 30); // 11 trencament; } // commutador final} void set_servo_angles (int pos2, int pos3) {myservo2.write (pos2); myservo3.write (pos3); // Posicions de servo preparades: realitzeu el botó real: delay (500); myservo1.write (60); // retard de baixada (500); myservo1.write (140); // retard de pujada (500); } void loop () {Blynk.run (); }

Pas 6: passos futurs

Giny de vídeo: transmissió de vídeo i àudio en directe a l'aplicació Blynk (ja provat - funciona)

Giny de Webhook: baixada de la llista de reproducció a la carta des del núvol (ja provada - funcionant)

Giny de la taula: algunes petites millores al giny són benvingudes (suggeriments enviats als desenvolupadors de Blynk)

Recomanat: