Përmbajtje:

PlotClock, WeMos dhe Blynk Luajnë Vintage AMI Jukebox: 6 hapa (me fotografi)
PlotClock, WeMos dhe Blynk Luajnë Vintage AMI Jukebox: 6 hapa (me fotografi)

Video: PlotClock, WeMos dhe Blynk Luajnë Vintage AMI Jukebox: 6 hapa (me fotografi)

Video: PlotClock, WeMos dhe Blynk Luajnë Vintage AMI Jukebox: 6 hapa (me fotografi)
Video: Remote Robot finger playing Vintage AMI Jukebox 2024, Korrik
Anonim
PlotClock, WeMos dhe Blynk Playing Vintage AMI Jukebox
PlotClock, WeMos dhe Blynk Playing Vintage AMI Jukebox
PlotClock, WeMos dhe Blynk Playing Vintage AMI Jukebox
PlotClock, WeMos dhe Blynk Playing Vintage AMI Jukebox

Katër risi teknike e bënë të mundur këtë projekt: 1977 Rowe AMI Jukebox, kompleti i krahut robot PlotClock, mikrokontrolluesi WeMos/ESP 8266 dhe shërbimi Blynk App/Cloud.

SHENIM: Nëse nuk e keni Jukebox -in në dorë - mos ndaloni së lexuari! Ky projekt lehtë mund të miratohet për të kontrolluar gjëra të ndryshme të kontrolluara nga gishtat e njeriut. Një shembull mund të jetë një gisht robot që luan Xylophone tradicional - mbase ai udhëzues vjen nga ju!

40-vjeçari im Rowe AMI R-81 Jukebox është ende duke punuar mirë duke luajtur teke vinyl vintage nga vitet '60, '70 dhe '80. Pesha mbi 160 kg (360 lbs) ky lojtar nuk është aq i lëvizshëm sa lojtarët modernë mp, por duke jetuar në epokën e internetit, tani është e mundur të mbani jukebox dhe 200 disqe vinyl në xhepin tuaj-praktikisht natyrisht! Dhe madje mund të përdorni listat tuaja të dëgjimit të ruajtura në mikrokontrollues!

Roboti i mahnitshëm PlotClock është krijuar fillimisht për të treguar kohën aktuale duke vizatuar shifrat e kohës në tabelën e fshirë. Përshtatja ime për PlotClock është ta përdor si gisht robot për shtypjen e butonave të përzgjedhjes së këngës Jukebox.

"Gishti" Plotclock drejtohet nga 3 servos të kontrolluar nga mikrokontrolluesi WeMos. Kjo mrekulli është (pothuajse) e pajtueshme me Arduino Uno dhe ka aftësi WiFi, kështu që është e mundur të kontrolloni jukebox pa tel nga kudo në botë.

Kremi mbi tortë vjen nga programi i jashtëzakonshëm i lehtë për t’u përdorur Blynk dhe serveri i tyre Blynk Cloud duke dhënë një ndërfaqe të bukur të telefonit celular/tablet me lëvizshmëri të plotë.

Hapi 1: Pajisje kompjuterike

Hardware
Hardware
Hardware
Hardware

Xhukbox

Projekti jukebox është 1977 Rowe AMI R-81. Çdo jukebox i vjetër me butona përzgjedhës do të bëjë - duke vënë në dukje disa kufizime nga PlotClock: Dizajni origjinal i krahëve të PlotClock mund të mbulojë një sipërfaqe rreth 5 x 12 cm, kështu që paraqitja e butonit jukebox (zona duke përfshirë të gjithë butonat e përzgjedhjes) duhet të jetë në atë madhësi. Butonat e jukeboxes më të vjetër mund të kenë nevojë për më shumë fuqi shtytëse sesa mund të ofrojnë servos PlotClock.

AMI R-81 ka një memorie ku mund të ruajë të gjitha 200 zgjedhjet. Zgjedhjet luhen në bazë të rendit të ruajtjes së tyre në revistën e rekordeve (lloji i karuselit), jo sipas rendit që janë zgjedhur. Zgjedhje të shumta për një rekord luhen vetëm një herë.

PlotClock

Plotclock është komplete DIY e disponueshme komerciale duke përfshirë pjesë mekanike, 3 servos, Arduino Uno R3, bordin e Arduino Extension dhe kabllo USB. Për rreth 30 dollarë kjo është një blerje e mirë (p.sh. Banggood.com). Arduino, bordi i zgjerimit dhe kabllo USB nuk përdoren për këtë projekt.

Ka disa mësime të mira në internet/YouTube për kompozimin e Plotclock - p.sh. kjo: Udhëzimet PlotClock

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

WeMos

WeMos D1 R2 është mikrokontrollues i bazuar në ESP8266. Mund të programohet duke përdorur Arduino IDE dhe ka aftësi WiFi kështu që është një pjesë e përsosur e pajisjeve për këtë projekt.

Hapi 2: Kalibrimi

Kalibrimi
Kalibrimi

Kalibrimi është detyra për gjetjen e vlerave të sakta të këndit për këndet servo (midis 0 dhe 180 gradë) që korrespondojnë me pozicionet fizike për butonat e përzgjedhjes. Vlerat e këndit mund të gjenden me aritemitikë trigonometrike ose duke përdorur një softuer CAD. Kam marrë vlera të përafërta nga shoku im që dinte të përdorte AutoCad.

Sidoqoftë, kalibrimi përfundimtar duhej bërë me provë dhe gabim. Përdorimi i paraqitjes së butonave të vizatuar në fletën e letrës possibleshtë e mundur të bëni "testimin e desktopit" për të gjetur vlerat e sakta të këndit.

Hapi 3: Montimi

Kuvendi
Kuvendi
Kuvendi
Kuvendi
Kuvendi
Kuvendi
Kuvendi
Kuvendi

Instalime elektrike

Lidhja nga servot Plotclock në Wemos bëhet me 5 tela: +5, GND, D4, D5 dhe D6. Shikoni detajet në fotografi dhe kod.

Instalimi në Jukebox

Nuk doja të bëja ndonjë vrimë me vidë në xhuxboxin 40 vjeçar që kishte mbijetuar kaq gjatë pa dëme të mëdha. Duke përdorur ngjitës të butë prej gome, unë fiksova një pjesë të listës së këndeve të aluminit nën tastierën jukebox. Vula ngjitëse e gomës mban fort dhe mund të hiqet pa lënë asnjë shenjë. Trupit PlotClock i duheshin dy kënde të vogla alumini për të ndihmuar në vendosjen e tij në pllakën akrilike. Pllaka akrilike më pas vendoset në listën e këndeve me dy kapëse të ngarkuara me pranverë duke lënë mundësinë për të bërë rregullimet përfundimtare vertikalisht dhe horizontalisht.

Hapi 4: Blynk

Blynk
Blynk

Blynk është një aplikacion falas për kontrollin e disa llojeve të mikrokontrolluesve në distancë. Me Blynk ju lehtë mund të ndërtoni një ndërfaqe të bukur përdoruesi duke përdorur disa lloje të widget -eve. Për këtë projekt nevojitet vetëm një widget: widgeti Table.

Hapi 5: Softuer

Aplikacioni Blynk

Nuk ka kodim në anën e aplikacionit. "Biseda" midis aplikacionit (Blynk) dhe mikrokontrolluesit (WeMos) trajtohet nga "Kunjat virtuale", të cilat në thelb janë kanale për dërgimin dhe marrjen e informacionit midis atyre të dyve. Pini virtual përdoret për shembull për të dërguar numrin e rreshtit të këngës së zgjedhur nga aplikacioni Blynk në WeMos, dhe Wemos merret me pjesën tjetër, dmth. dërgimi i komandave te servos Plotclock.

Kodi WeMos

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

Miniaplikacioni i tabelës në V2 ******************************************* ****************/ #define BLYNK_PRINT Serial #include #include #include char author = "-KODI I AUTIT TUAJ-"; // Jukebox project char ssid = "-SSID-i juaj--"; char pass = "-FJALA E TYRE WIFI-"; int c [50]; // Grup për pozicionet e rekordeve të Jukebox (100-299) Servo myservo1; // heqja Servo myservo2; // krahu i majtë Servo myservo3; // krahu i djathtë int pos1 = 0; int pos2 = 0; int pos3 = 0; int btn = 0; void setup () {myservo1.attach (2); // pin D4, ngre myservo2.attach (14); // pin D5, myservo3 majtas majtas (12); // pin D6, djathtas myservo1.write (140); myservo2.shkruaj (90); myservo3.shkruaj (90); Serial.filloj (115200); Blynk.begin (auth, ssid, pass); // Njoftoni menjëherë me fillimin // String msg = "Jukebox WeMos lidhur me:"; //Blynk.notify(msg + ssid); // tabela e qartë në fillim Blynk.virtualWrite (V2, "clr"); populateTable (); } BLYNK_WRITE (V2) // Merrni komanda nga widget -i i tabelës V2 {String cmd = param [0].asStr (); // param [0] = "përzgjedh" ose "heq zgjedhjen", param [1] = rresht Serial.print ("\ nTabela: BLYNK_WRITE (V2) cmd:"); Serial.print (cmd); përzgjedhja int = c [param [1].asInt ()]; // Numri i rreshtit të zgjedhur është në param [1] Serial.println ("\ nZgjedhja:"); Serial.println (përzgjedhje); përzgjedhja e procesit (përzgjedhja); } void populateTable () {int i = 0; Serial.println ("Tabela e mbushur …"); Blynk.virtualWrite (V2, "shto", 0, "Be My Baby - The Supremes", 112); c = 112; Blynk.virtualWrite (V2, "shto", 1, "Numri një - Jerry Williams", 176); i ++; c = 176; Blynk.virtualWrite (V2, "shto", 2, "All My Loving - The Beatles", 184); i ++; c = 184; Blynk.virtualWrite (V2, "shto", 3, "Në verë - Mungo Jerry", 236); i ++; c = 236; Blynk.virtualWrite (V2, "shto", 4, "Re e zezë - Kontrollues topolak", 155); i ++; c = 155; Blynk.virtualWrite (V2, "shto", 5, "Mamy Blue - Pop -Tops", 260); i ++; c = 260; Blynk.virtualWrite (V2, "shto", 6, "Do të jetë mirë - Gerry & Pacemakers", 145); i ++; c = 145; Blynk.virtualWrite (V2, "shto", 7, "Rruga ime - Tom Jones", 193); i ++; c = 193; Blynk.virtualWrite (V2, "shto", 8, "San Bernadino - Christie", 149); i ++; c = 149; Blynk.virtualWrite (V2, "shto", 9, "The Twist - Chubby Checker", 169); i ++; c = 169;

vonesa (1000);

} përzgjedhja e procesit të pavlefshëm (përzgjedhja int) {// analizoni përzgjedhjen 3-shifrore (p.sh. 178) në 3 butona: int btn1 = int (përzgjedhja/100); // butoni i parë Serial.println ("\ nBtn1:"); Serial.println (btn1); nëse (btn1 == 1 || btn1 == 2) // butoni i parë duhet të jetë 1 ose 2 - përndryshe bëni rivendosjen {but_button (btn1); përzgjedhje = përzgjedhje - (btn1 * 100); int btn2 = int (përzgjedhja/10); // butoni i dytë Serial.println ("\ nBtn2:"); Serial.println (btn2); butoni shtytës (btn2); përzgjedhje = përzgjedhje - (btn2 * 10); int btn3 = int (përzgjedhje); // butoni i tretë Serial.println ("\ nBtn3:"); Serial.println (btn3); butoni shtytës (btn3); } else {shtytje_button (11); // butoni i rivendosjes} // rivendosni pozicionet e servo kur të përfundoni të gjithë vonesën (2000); myservo1.shkruaj (140); myservo2.shkruaj (90); myservo3.write (90);} buton pushimi i butonit (int btn) {// kjo thirret 3 herë për secilën përzgjedhje // shtytja aktuale e butonit bëhet pas çdo butoni (gjeni 'shtytjen aktuale të butonit') (btn) {rasti 1: set_servo_angles (134, 136); // 1 pushim; rasti 2: set_servo_angles (128, 110); // 2 pushim; rasti 3: set_servo_angles (112, 88); // 3 pushim; rasti 4: set_servo_angles (89, 68); // 4 pushim; rasti 5: set_servo_angles (62, 55); // 5 pushim; rasti 6: set_servo_angles (172, 131); // 6 pushim; rasti 7: set_servo_angles (163, 106); // 7 pushim; rasti 8: set_servo_angles (140, 83); // 8 pushim; rasti 9: set_servo_angles (104, 58); // 9 pushim; rasti 0: set_servo_angles (75, 36); // 0 pushim; rasti 11: set_servo_angles (36, 30); // 11 pushim; } // kaloni në fund} void set_servo_angles (int pos2, int pos3) {myservo2.write (pos2); myservo3.shkruaj (pos3); // Servo pozicionet gati - kryeni shtypjen aktuale të butonit: vonesë (500); myservo1.shkruaj (60); // vonesë poshtë (500); myservo1.shkruaj (140); // vonesë lart (500); } void loop () {Blynk.run (); }

Hapi 6: Hapat e ardhshëm

Miniaplikacion video - video dhe transmetim audio drejtpërdrejt në Aplikacionin Blynk (tashmë i testuar - punon)

Miniaplikacioni Webhook - lista për luajtje sipas kërkesës nga cloud (tashmë e testuar - punon)

Miniaplikacioni i tabelës - disa përmirësime të vogla në widget janë të mirëseardhura (sugjerimet u dërgohen zhvilluesve të Blynk)

Recommended: