Obsah:

PlotClock, WeMos a Blynk hrajú Vintage AMI Jukebox: 6 krokov (s obrázkami)
PlotClock, WeMos a Blynk hrajú Vintage AMI Jukebox: 6 krokov (s obrázkami)

Video: PlotClock, WeMos a Blynk hrajú Vintage AMI Jukebox: 6 krokov (s obrázkami)

Video: PlotClock, WeMos a Blynk hrajú Vintage AMI Jukebox: 6 krokov (s obrázkami)
Video: Remote Robot finger playing Vintage AMI Jukebox 2024, Júl
Anonim
PlotClock, WeMos a Blynk hrajú Vintage AMI Jukebox
PlotClock, WeMos a Blynk hrajú Vintage AMI Jukebox
PlotClock, WeMos a Blynk hrajú Vintage AMI Jukebox
PlotClock, WeMos a Blynk hrajú Vintage AMI Jukebox

Tento projekt umožnili štyri technické inovácie: 1977 Rowe AMI Jukebox, súprava robotického ramena PlotClock, mikrokontrolér WeMos/ESP 8266 a služba Blynk App/Cloud.

POZNÁMKA: Ak nemáte Jukebox po ruke - neprestávajte čítať! Tento projekt sa dá ľahko prijať na ovládanie rôznych vecí ovládaných ľudskými prstami. Jedným z príkladov môže byť robotický prst hrajúci tradičný xylofón - možno ten pokyn pochádza od vás!

Môj 40-ročný Jukebox Rowe AMI R-81 stále dobre funguje pri hraní historických vinylových singlov zo 60., 70. a 80. rokov. S hmotnosťou viac ako 160 kg (360 libier) nie je tento prehrávač tak prenosný ako moderné mp-prehrávače, ale v dobe internetu je teraz možné nosiť jukebox a 200 vinylových platní vo vrecku-samozrejme! A dokonca môžete použiť svoje vlastné zoznamy skladieb uložené v mikrokontroléri!

Úžasný robot PlotClock bol pôvodne navrhnutý tak, aby ukazoval aktuálny čas kreslením číslic času na vymazateľnú dosku. Mojou adaptáciou pre PlotClock je použiť ho ako robotický prst na stlačenie tlačidiel výberu piesne Jukebox.

„Prst“Plotclock poháňa 3 servá ovládané mikrokontrolérom WeMos. Tento zázrak je (takmer) kompatibilný s Arduino Uno a má možnosti WiFi, takže je možné jukebox ovládať bezdrôtovo odkiaľkoľvek na svete.

Krém na torte pochádza z neuveriteľne ľahko použiteľnej aplikácie Blynk a ich servera Blynk Cloud Server, ktoré poskytujú pekné používateľské rozhranie mobilného telefónu/tabletu s plnou mobilitou.

Krok 1: Hardvér

Hardvér
Hardvér
Hardvér
Hardvér

Jukebox

Jukebox projektu je 1977 Rowe AMI R-81. Postačí akýkoľvek starý jukebox s tlačidlami výberu - pričom si povšimnite niekoľkých obmedzení zo strany PlotClock: Pôvodný dizajn ramien PlotClock môže pokrývať plochu asi 5 x 12 cm, takže rozloženie tlačidiel jukeboxu (oblasť vrátane všetkých tlačidiel výberu) musí mať približne túto veľkosť. Tlačidlá starších jukeboxov môžu potrebovať väčšiu tlačnú silu, ako môžu poskytovať servá PlotClock.

AMI R-81 má pamäť, kde je možné uložiť všetkých 200 výberov. Výbery sa prehrávajú podľa poradia, v ktorom sú uložené v záznamovom časopise (typ kolotoča), nie podľa poradia, v ktorom sú vybrané. Viacnásobný výber pre jeden záznam sa prehrá iba raz.

PlotClock

Plotclock je komerčne dostupná sada pre domácich majstrov, ktorá obsahuje mechanické diely, 3 servá, Arduino Uno R3, rozširujúcu dosku Arduino a kábel USB. Za približne 30 USD je to dobrý nákup (napr. Banggood.com). Arduino, rozširujúca doska a kábel USB sa na tento projekt nepoužívajú.

Existuje niekoľko dobrých návodov pre internet/YouTube na zostavenie grafu PTC - napr. toto: Pokyny pre PlotClock

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

WeMos

WeMos D1 R2 je mikrokontrolér na báze ESP8266. Dá sa naprogramovať pomocou Arduino IDE a má možnosti WiFi, takže je to perfektný hardvér pre tento projekt.

Krok 2: Kalibrácia

Kalibrácia
Kalibrácia

Kalibrácia je úlohou nájsť presné hodnoty uhlov pre servo uhly (od 0 do 180 stupňov) zodpovedajúce fyzickým polohám pre tlačidlá výberu. Hodnoty uhlov je možné nájsť pomocou trigonometrickej aritemity alebo pomocou softvéru CAD. Približné hodnoty som dostal od svojho priateľa, ktorý vedel, ako používať AutoCad.

Konečná kalibrácia však musela byť vykonaná pokusom a omylom. Použitie rozloženia tlačidiel nakresleného na kus papiera Na zistenie správnych hodnôt uhlov je možné vykonať „testovanie pracovnej plochy“.

Krok 3: Zostavenie

zhromaždenie
zhromaždenie
zhromaždenie
zhromaždenie
zhromaždenie
zhromaždenie
zhromaždenie
zhromaždenie

Elektrické vedenie

Pripojenie zo serva Plotclock na Wemos sa vykonáva pomocou 5 vodičov: +5, GND, D4, D5 a D6. Podrobnosti nájdete na obrázkoch a v kóde.

Inštalácia na Jukebox

Nechcel som robiť žiadne otvory pre skrutky do 40 -ročného jukeboxu, ktorý tak dlho prežil bez väčších škôd. Pomocou mäkkého gumového tmelu som pripevnil kus hliníkového zoznamu uhlov pod konzolu jukeboxu. Gumový tmel pevne drží a dá sa odstrániť bez zanechania akýchkoľvek stôp. Telo PlotClock potrebovalo dva malé hliníkové uhly, ktoré mu pomohli namontovať ho na akrylovú dosku. Akrylová doska je potom pripevnená k zoznamu uhlov dvoma pružinovými sponami, čo ponecháva možnosť konečných úprav vertikálne a horizontálne.

Krok 4: Blynk

Blynk
Blynk

Blynk je bezplatná aplikácia na diaľkové ovládanie niekoľkých typov mikrokontrolérov. S Blynkom si môžete ľahko vytvoriť pekné používateľské rozhranie pomocou niekoľkých typov widgetov. Na tento projekt je potrebný iba jeden widget: miniaplikácia Tabuľka.

Krok 5: Softvér

Aplikácia Blynk

Na strane aplikácie nie je žiadne kódovanie. „Konverzáciu“medzi aplikáciou (Blynk) a mikrokontrolérom (WeMos) zvládajú „virtuálne piny“, ktoré sú v zásade kanálmi na odosielanie a prijímanie informácií medzi týmito dvoma. Virtuálny pin sa napríklad používa na odoslanie čísla riadku vybranej skladby z aplikácie Blynk na server WeMos a Wemos sa postará o ostatné, tj. odosielanie príkazov na serva Plotclock.

Kód WeMos

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

Tabuľkový widget na V2 ************************************** ****************/ #define BLYNK_PRINT Sériové #include #include #include char auth = "-VÁŠ AUTH KÓD--"; // Projekt jukeboxu char ssid = "--VÁŠ SSID--"; char pass = "-VAŠE WIFI HESLO--"; int c [50]; // Pole pre polohy záznamu jukeboxu (100-299) Servo myservo1; // zdvíhanie Servo myservo2; // ľavá ruka Servo myservo3; // pravá ruka int pos1 = 0; int poz2 = 0; int pos3 = 0; int btn = 0; void setup () {myservo1.attach (2); // pin D4, zdvihni myservo2.attach (14); // pin D5, vľavo myservo3.attach (12); // pin D6, vpravo myservo1.write (140); myservo2.write (90); myservo3.write (90); Serial.begin (115200); Blynk.begin (auth, ssid, pass); // Okamžite upozorniť na spustenie // String msg = "Jukebox WeMos pripojený k:"; //Blynk.notify(msg + ssid); // vymazanie tabuľky na začiatku Blynk.virtualWrite (V2, "clr"); populateTable (); } BLYNK_WRITE (V2) // Prijímanie príkazov z miniaplikácie Table V2 {String cmd = param [0].asStr (); // param [0] = "vybrať" alebo "odznačiť", param [1] = riadok Serial.print ("\ nTabuľka: BLYNK_WRITE (V2) cmd:"); Serial.print (cmd); int výber = c [param [1].asInt ()]; // Číslo vybratého riadka je v parametri [1] Serial.println ("\ nVýber:"); Serial.println (výber); process_selection (výber); } neplatná populateTable () {int i = 0; Serial.println ("Populačná tabuľka …"); Blynk.virtualWrite (V2, „add“, 0, „Be My Baby - The Supremes“, 112); c = 112; Blynk.virtualWrite (V2, „pridať“, 1, „Číslo jedna - Jerry Williams“, 176); i ++; c = 176; Blynk.virtualWrite (V2, „add“, 2, „All My Loving - The Beatles“, 184); i ++; c = 184; Blynk.virtualWrite (V2, „pridať“, 3, „V lete - 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, „pridať“, 8, „San Bernadino - Christie“, 149); i ++; c = 149; Blynk.virtualWrite (V2, „add“, 9, „The Twist - Chubby Checker“, 169); i ++; c = 169;

oneskorenie (1000);

} void process_selection (int selection) {// analyzuje 3-ciferný výber (napr. 178) na 3 tlačidlá: int btn1 = int (selection/100); // prvé tlačidlo Serial.println ("\ nBtn1:"); Serial.println (btn1); if (btn1 == 1 || btn1 == 2) // prvé tlačidlo musí byť 1 alebo 2 - inak vykonajte reset {push_button (btn1); výber = výber - (btn1 * 100); int btn2 = int (výber/10); // druhé tlačidlo Serial.println ("\ nBtn2:"); Serial.println (btn2); tlačidlové tlačidlo (btn2); výber = výber - (btn2 * 10); int btn3 = int (výber); // tretie tlačidlo Serial.println ("\ nBtn3:"); Serial.println (btn3); tlačidlové tlačidlo (btn3); } else {push_button (11); // tlačidlo reset} // vynulovanie pozícií serva, keď je všetko hotové s oneskorením (2000); myservo1.write (140); myservo2.write (90); myservo3.write (90);} void push_button (int btn) {// toto sa volá 3 krát pre každý výber // skutočné stlačenie tlačidla sa vykoná po každom tlačidle (nájsť 'skutočné stlačenie tlačidla') prepínač (btn) {prípad 1: set_servo_angles (134, 136); // 1 prestávka; prípad 2: set_servo_angles (128, 110); // 2 break; prípad 3: set_servo_angles (112, 88); // 3 prestávka; prípad 4: set_servo_angles (89, 68); // 4 prestávka; prípad 5: set_servo_angles (62, 55); // 5 prestávka; prípad 6: set_servo_angles (172, 131); // 6 break; prípad 7: set_servo_angles (163, 106); // 7 break; prípad 8: set_servo_angles (140, 83); // 8 break; prípad 9: set_servo_angles (104, 58); // 9 prestávka; prípad 0: set_servo_angles (75, 36); // 0 prestávka; prípad 11: set_servo_angles (36, 30); // 11 prestávka; } // koncový prepínač} neplatné set_servo_angles (int pos2, int pos3) {myservo2.write (pos2); myservo3.write (pos3); // Polohy servo pripravené - vykonajte aktuálne stlačenie tlačidla: delay (500); myservo1.write (60); // oneskorenie spustenia (500); myservo1.write (140); // oneskorenie up (500); } prázdna slučka () {Blynk.run (); }

Krok 6: Budúce kroky

Miniaplikácia videa - živé video a audio streamy do aplikácie Blynk (už testované - funguje)

Widget Webhook - sťahovanie zoznamu skladieb na požiadanie z cloudu (už testované - funguje)

Miniaplikácia Tabuľka - niektoré malé vylepšenia miniaplikácie sú vítané (návrhy zaslané vývojárom Blynk)

Odporúča: