Sadržaj:
- Korak 1: Hardver
- Korak 2: Kalibracija
- Korak 3: Montaža
- Korak 4: Blynk
- Korak 5: Softver
- Korak 6: Koraci u budućnosti
Video: PlotClock, WeMos i Blynk igraju vintage AMI džuboks: 6 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:04
Četiri tehničke inovacije omogućile su ovaj projekt: Rowe AMI Jukebox iz 1977., komplet robotskih ruku PlotClock, mikrokontroler WeMos/ESP 8266 i uslugu Blynk App/Cloud.
NAPOMENA: Ako nemate Jukebox pri ruci - nemojte prestati čitati! Ovaj se projekt može lako usvojiti za kontrolu različitih stvari kontroliranih ljudskim prstima. Jedan primjer bi mogao biti robotski prst koji svira tradicionalni ksilofon - možda ta instrukcija dolazi od vas!
Moj 40-godišnji Rowe AMI R-81 Jukebox i dalje odlično radi svirajući vintage singlove iz 60-ih, 70-ih i 80-ih. Ovaj plejer težak preko 160 kg (360 lbs) nije baš prenosiv kao moderni mp-playeri, ali živeći u doba interneta, sada je moguće nositi džuboks i 200 vinilnih ploča u džepu-gotovo naravno! Možete čak koristiti i vlastite popise pjesama pohranjene u mikrokontroleru!
Nevjerojatni PlotClock robot prvobitno je dizajniran za prikazivanje trenutnog vremena iscrtavanjem znamenki vremena na izbrisanoj ploči. Moja adaptacija za PlotClock je da ga koristim kao prst robota za pritiskanje tipki za odabir pjesme sa Jukebox -a.
„Prst“grafičkog sata pokreću 3 servo servera kojima upravlja WeMos mikrokontroler. Ovo čudo je (gotovo) Arduino Uno kompatibilno i ima WiFi mogućnosti, pa je moguće bežično kontrolirati džuboks sa bilo kojeg mjesta u svijetu.
Krema na torti dolazi iz nevjerojatno jednostavne za korištenje Blynk aplikacije i njihovog Blynk Cloud servera koji pružaju lijepo korisničko sučelje mobilnog telefona/tableta s potpunom mobilnošću.
Korak 1: Hardver
Jukebox
Projekt džuboksa je 1977. Rowe AMI R-81. Bilo koji stari džuboks s gumbima za odabir će poslužiti - imajući u vidu nekoliko ograničenja od strane PlotClock -a: Originalni dizajn ruku PlotClock -a može pokriti površinu oko 5 x 12 cm, tako da izgled dugmeta za džuboks (područje uključujući sve tipke za odabir) mora biti približno te veličine. Dugmadima starijih džuboksa možda će biti potrebno više snage nego što PlotClock servo uređaji mogu pružiti.
AMI R-81 ima memoriju u koju može pohraniti svih 200 odabira. Odabiri se reproduciraju na osnovu redoslijeda pohranjivanja u časopisu za zapise (tip vrtuljka), a ne redoslijedom kojim su odabrani. Višestruki odabiri za jedan zapis reproduciraju se samo jednom.
PlotClock
Plotclock je komercijalno dostupan DIY komplet koji uključuje mehaničke dijelove, 3 serva, Arduino Uno R3, Arduino produžnu ploču i USB kabel. Za otprilike 30 USD ovo je dobra kupovina (npr. Banggood.com). Arduino, produžna ploča i USB kabel ne koriste se za ovaj projekt.
Postoji nekoliko dobrih internetskih/YouTube vodiča za sastavljanje Plotclock -a - npr. ovo: PlotClock upute
static1.squarespace.com/static/52cb189ee4b012ff9269fa8e/t/5526946be4b0ed8e0b3cd296/1428591723698/plotclock_final_instructions.pdf
WeMos
WeMos D1 R2 je mikrokontroler zasnovan na ESP8266. Može se programirati pomoću Arduino IDE -a i ima WiFi mogućnosti pa je savršen komad hardvera za ovaj projekt.
Korak 2: Kalibracija
Kalibracija je zadatak za pronalaženje točnih vrijednosti kutova za servo kutove (između 0 do 180 stupnjeva) kako bi odgovarali fizičkim položajima tipki za odabir. Vrijednosti kutova mogu se pronaći pomoću argonomije trigonometrije ili pomoću CAD softvera. Približne vrijednosti dobio sam od prijatelja koji je znao koristiti AutoCad.
Međutim, konačna kalibracija morala je biti izvršena pokušajem i greškom. Korištenje izgleda dugmeta iscrtanog na papiru Moguće je izvršiti „testiranje radne površine“da biste pronašli ispravne vrijednosti kuta.
Korak 3: Montaža
Ožičenje
Povezivanje sa servera Plotclock na Wemos vrši se pomoću 5 žica: +5, GND, D4, D5 i D6. Detalje pogledajte na slikama i kodu.
Instaliranje na Jukebox -u
Nisam želio napraviti rupe za vijke na 40 -godišnjem džuboksu koji je toliko dugo preživio bez većih oštećenja. Pomoću mekane gumene brtve popravio sam dio aluminijske kutne liste ispod konzole džuboksa. Gumena brtva čvrsto drži i može se ukloniti bez ostavljanja tragova. PlotClock kućištu su bila potrebna dva mala aluminijumska ugla kako bi se lakše montiralo na akrilnu ploču. Akrilna ploča tada se postavlja na kutnu listu s dvije kopče s oprugom, ostavljajući mogućnost konačnog podešavanja okomito i vodoravno.
Korak 4: Blynk
Blynk je besplatna aplikacija za daljinsko upravljanje nekoliko vrsta mikrokontrolera. S Blynkom možete jednostavno izgraditi lijepo korisničko sučelje koristeći nekoliko vrsta widgeta. Za ovaj projekat potreban je samo jedan widget: widget Table.
Korak 5: Softver
Blynk App
Nema kodiranja na strani aplikacije. „Razgovorom“između aplikacije (Blynk) i mikrokontrolera (WeMos) upravljaju „virtualni pinovi“koji su u suštini kanali za slanje i primanje informacija između njih dvoje. Virtualni pin se, na primjer, koristi za slanje broja retka odabrane pjesme iz aplikacije Blynk na WeMos, a Wemos rukuje ostatkom, tj. slanje naredbi na servo ploče Plotclock.
WeMos kod
/**************************************************************
Widget za stol na V2 ******************************************** ****************/ #define BLYNK_PRINT Serijski #include #include #include char auth = "-VAŠA KODA AUTHA"; // Jukebox projekt char ssid = "-VAŠ SSID--"; char pass = "-VAŠA WIFI LOZINKA--"; int c [50]; // Niz za rekordne pozicije Jukebox-a (100-299) Servo myservo1; // podizanje Servo myservo2; // lijeva ruka Servo myservo3; // desna ruka int pos1 = 0; int pos2 = 0; int pos3 = 0; int btn = 0; void setup () {myservo1.attach (2); // pin D4, lift myservo2.attach (14); // pin D5, lijevo myservo3.attach (12); // pin D6, desno myservo1.write (140); myservo2.write (90); myservo3.write (90); Serial.begin (115200); Blynk.begin (auth, ssid, pass); // Obavijesti odmah pri pokretanju // String msg = "WeMos Jukebox povezan na:"; //Blynk.notify(msg + ssid); // brisanje tablice pri pokretanju Blynk.virtualWrite (V2, "clr"); populateTable (); } BLYNK_WRITE (V2) // Primanje naredbi iz widgeta V2 {String cmd = param [0].asStr (); // param [0] = "odaberi" ili "poništi odabir", param [1] = red Serial.print ("\ nTablica: BLYNK_WRITE (V2) cmd:"); Serial.print (cmd); int selection = c [param [1].asInt ()]; // Broj odabranog retka je u paramu [1] Serial.println ("\ nSelection:"); Serial.println (izbor); process_selection (izbor); } void populateTable () {int i = 0; Serial.println ("Tabela popunjavanja …"); Blynk.virtualWrite (V2, "add", 0, "Be My Baby - The Supremes", 112); c = 112; Blynk.virtualWrite (V2, "dodaj", 1, "Broj jedan - Jerry Williams", 176); i ++; c = 176; Blynk.virtualWrite (V2, "dodaj", 2, "All My Loving - The Beatles", 184); i ++; c = 184; Blynk.virtualWrite (V2, "dodaj", 3, "U ljetnom periodu - Mungo Jerry", 236); i ++; c = 236; Blynk.virtualWrite (V2, "dodaj", 4, "Crni oblak - Chubby Checker", 155); i ++; c = 155; Blynk.virtualWrite (V2, "dodaj", 5, "Mamy Blue - Pop -Tops", 260); i ++; c = 260; Blynk.virtualWrite (V2, "dodaj", 6, "Sve će biti u redu - Gerry & Pacemakers", 145); i ++; c = 145; Blynk.virtualWrite (V2, "dodaj", 7, "Moj način - Tom Jones", 193); i ++; c = 193; Blynk.virtualWrite (V2, "dodaj", 8, "San Bernadino - Christie", 149); i ++; c = 149; Blynk.virtualWrite (V2, "dodaj", 9, "The Twist - Chubby Checker", 169); i ++; c = 169;
kašnjenje (1000);
} void process_selection (int selection) {// raščlanjuje trocifreni izbor (npr. 178) na 3 dugmeta: int btn1 = int (selection/100); // prvo dugme Serial.println ("\ nBtn1:"); Serial.println (btn1); if (btn1 == 1 || btn1 == 2) // prvo dugme mora biti 1 ili 2 - u suprotnom izvršite reset {push_button (btn1); odabir = odabir - (btn1 * 100); int btn2 = int (izbor/10); // drugo dugme Serial.println ("\ nBtn2:"); Serial.println (btn2); push_button (btn2); odabir = odabir - (btn2 * 10); int btn3 = int (izbor); // treće dugme Serial.println ("\ nBtn3:"); Serial.println (btn3); push_button (btn3); } else {push_button (11); // dugme za resetovanje} // resetovanje servo položaja kada sve odloženo odgodi (2000); myservo1.write (140); myservo2.write (90); myservo3.write (90);} void push_button (int btn) {// ovo se poziva 3 puta za svaki odabir // stvarno pritiskanje dugmeta vrši se nakon svakog dugmeta (pronađi 'stvarni pritisak na dugme') prekidača (btn) {slučaj 1: set_servo_angles (134, 136); // 1 prekid; slučaj 2: set_servo_angles (128, 110); // 2 break; slučaj 3: set_servo_angles (112, 88); // 3 break; slučaj 4: set_servo_angles (89, 68); // 4 prekid; slučaj 5: set_servo_angles (62, 55); // 5 break; slučaj 6: set_servo_angles (172, 131); // 6 break; slučaj 7: set_servo_angles (163, 106); // 7 break; slučaj 8: set_servo_angles (140, 83); // 8 break; slučaj 9: set_servo_angles (104, 58); // 9 break; slučaj 0: set_servo_angles (75, 36); // 0 break; slučaj 11: set_servo_angles (36, 30); // 11 break; } // krajnji prekidač} void set_servo_angles (int pos2, int pos3) {myservo2.write (pos2); myservo3.write (pos3); // Servo pozicije spremne - izvršite stvarni pritisak gumba: delay (500); myservo1.write (60); // kašnjenje prema dolje (500); myservo1.write (140); // kašnjenje prema gore (500); } void loop () {Blynk.run (); }
Korak 6: Koraci u budućnosti
Video widget - video i audio prijenos uživo u aplikaciju Blynk (već testirano - radi)
Webhook widget - preuzimanje playliste na zahtjev iz oblaka (već testirano - radi)
Widget za tablicu - neka mala poboljšanja widgeta su dobrodošla (prijedlozi se šalju Blynk programerima)
Preporučuje se:
Džuboks: 13 koraka (sa slikama)
Džuboks: Otkrivajući Volumio (otvoreni audiofilski muzički plejer) mislio sam da bi se mogao koristiti za izgradnju sjajnog džuboksa; a ostalo je povijest. Sljedeće uputstvo je općenitiji pregled o tome kako sam izgradio ovaj projekt. Kao takvi neki od malih
Laki džuboks: 6 koraka
Easy Jukebox: Materijali 1 ploča arduino 1 protoboard 1 potenciometar 1 zumbador pasivo 2 botona zvuk 1 pantalona LCD 16X21 ploča od MDF -a (paralelno)
RFID džuboks: 3 koraka (sa slikama)
RFID džuboks: Ovo je moj unos u " Audio " konkurs - ako ste zainteresovani za ovo, molim vas dajte mi glas! Ovaj post će pokušati da stvori " skrol friendly " verzija videa s uputama koja se nalazi na vrhu ovog posta. Video ide
Nadogradnja zvučno aktiviranih LED svjetala na džuboks: 4 koraka
Nadograđivanje zvučno aktiviranih LED svjetala u džuboks: Razmišljao sam o tome da napravim svjetla koja bi mijenjala boju s vremenom uz muziku, da dodam u džuboks, neko vrijeme i kad sam vidio izazov za brzinu LED trake, a budući da smo trenutno u zatvoru, mislio sam da će ovo biti
Džuboks u Arduinu: 4 koraka
Džuboks u Arduinu: Ovaj projekat je bio za razred u prvoj godini naše karijere na Univerzitetu u dolini, ovo je džuboks koji vam može pokazati naziv pjesme i može tražiti prethodnu i sljedeću pjesmu. Pjesme koje možete prikazati su ograničene i to