Taula de continguts:
- Pas 1: maquinari
- Pas 2: calibració
- Pas 3: Muntatge
- Pas 4: Blynk
- Pas 5: programari
- Pas 6: passos futurs
Vídeo: PlotClock, WeMos i Blynk tocant Vintage AMI Jukebox: 6 passos (amb imatges)
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:10
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
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ó
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
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 é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:
Feu que els cecs reconeguin les coses tocant-los al voltant mitjançant MakeyMakey: 3 passos
Feu que els cecs reconeguin les coses tocant-los al voltant mitjançant MakeyMakey: introducció Aquest projecte té com a objectiu facilitar la vida dels cecs identificant les coses que els envolten a través del sentit del tacte. Jo i el meu fill Mustafa vam pensar a buscar una eina que els ajudés i durant el període que utilitzem el maquinari MakeyMakey t
Robot controlat per Wi-Fi mitjançant Wemos D1 ESP8266, Arduino IDE i aplicació Blynk: 11 passos (amb imatges)
Robot controlat per Wi-Fi mitjançant Wemos D1 ESP8266, Arduino IDE i aplicació Blynk: en aquest tutorial us mostro com fer un dipòsit robòtic controlat per Wi-Fi controlat des d’un telèfon intel·ligent mitjançant l’aplicació Blynk. En aquest projecte es va utilitzar una placa ESP8266 Wemos D1, però també es poden utilitzar altres models de plaques (NodeMCU, Firebeetle, etc.), i el pr
Enviar temperatura i humitat a l’aplicació Blynk (Wemos D1 Mini Pro): 15 passos (amb imatges)
Enviament de temperatura i humitat a l’aplicació Blynk (Wemos D1 Mini Pro): aquest instructiu contempla l’ús del Wemos D1 Mini Pro per enviar dades (temperatura i humitat) a l’aplicació Blynk
Steampunk Pi Jukebox amb Google Music: 11 passos (amb imatges)
Steampunk Pi Jukebox amb Google Music: AVÍS! Si intenteu fer un projecte similar, enteneu que teniu el potencial de trobar-vos amb amiant en una ràdio antiga, normalment però no restringit a algun tipus d’escut tèrmic o aïllament. Feu la vostra pròpia investigació i preneu precaucions
Detector de moviment amb notificacions Blynk (WeMos D1 Mini + HC-SR04): 4 passos (amb imatges)
Detector de moviment amb notificacions Blynk (WeMos D1 Mini + HC-SR04): VOTEU aquest projecte al concurs sense fils. Actualització núm. 2: pocs ajustaments (versió 2.2); podeu configurar el sensor (rang i nom) directament a la definició. A més, de vegades va passar que el sensor llegia valors incorrectes i enviava notificacions