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 sviraju vintage AMI Jukebox: 6 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:32
Četiri tehničke inovacije omogućile su ovaj projekt: Rowe AMI Jukebox iz 1977., komplet robotskih ruku PlotClock, mikrokontroler WeMos/ESP 8266 i usluga 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 dobro radi svirajući vintage singlove iz 60-ih, 70-ih i 80-ih. Ovaj player 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 izvorno je dizajniran za prikaz trenutnog vremena iscrtavanjem znamenki vremena na brisanoj ploči. Moja prilagodba za PlotClock je da ga koristim kao prst robota za pritiskanje gumba za odabir pjesme Jukebox.
"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 upravljati džuboksom s bilo kojeg mjesta u svijetu.
Krema na torti dolazi iz nevjerojatno jednostavne aplikacije Blynk i njihovog Blynk Cloud poslužitelja koji pružaju lijepo korisničko sučelje za mobitel/tablet s punom mobilnošću.
Korak 1: Hardver
Džuboks
Projektni džuboks 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 PlotClocka: Originalni dizajn ruku PlotClocka može pokriti površinu oko 5 x 12 cm, tako da izgled gumba za džuboks (područje uključujući sve gumbe za odabir) mora biti približno te veličine. Gumbi starijih džuboksa možda će trebati više snage nego što PlotClock servomotori mogu pružiti.
AMI R-81 ima memoriju u koju može pohraniti svih 200 odabira. Odabiri se reproduciraju prema redoslijedu pohranjivanja u časopisu za zapise (vrsta vrtuljka), a ne prema redoslijedu 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 oko 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 se izvršiti pokušajem i pogreškom. Korištenje izgleda gumba nacrtanog na papiru Moguće je izvršiti „testiranje radne površine“kako bi se pronašle točne vrijednosti kutova.
Korak 3: Montaža
Ožičenje
Povezivanje sa servera Plotclock na Wemos vrši se s 5 žica: +5, GND, D4, D5 i D6. Detalje pogledajte u slikama i kodu.
Instaliranje na Jukeboxu
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 brtvila od meke gume popravio sam dio aluminijskog kutnog popisa ispod konzole džuboksa. Gumena brtva čvrsto drži i može se ukloniti bez ostavljanja tragova. PlotClock tijelu potrebna su dva mala aluminijska kuta kako bi se lakše postavilo 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 pomoću nekoliko vrsta widgeta. Za ovaj projekt potreban je samo jedan widget: widget Table.
Korak 5: Softver
Blynk aplikacija
Nema kodiranja na strani aplikacije. "Razgovorom" između aplikacije (Blynk) i mikrokontrolera (WeMos) upravljaju "virtualni pinovi" koji su u biti 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 obrađuje ostalo, tj. slanje naredbi na servo ploče Plotclock.
WeMos kod
/**************************************************************
Widget za stol u V2 ******************************************** ****************/ #define BLYNK_PRINT Serijski #include #include #include char auth = "--SVOJ KOD AUTH--"; // Jukebox projekt char ssid = "-VAŠ SSID--"; char pass = "-VAŠA LOZINKA ZA WIFI--"; 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, left 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) // Primajte naredbe 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:"); Serijski.ispis (cmd); int selection = c [param [1].asInt ()]; // Odabrani broj retka nalazi se u paramu [1] Serial.println ("\ nSelection:"); Serial.println (izbor); process_selection (odabir); } void populateTable () {int i = 0; Serial.println ("Tablica popunjavanja …"); Blynk.virtualWrite (V2, "dodaj", 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 ljeto - 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, "Bit će sve 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 troznamenkasti odabir (npr. 178) na 3 gumba: int btn1 = int (selection/100); // prvi gumb Serial.println ("\ nBtn1:"); Serijski.println (btn1); if (btn1 == 1 || btn1 == 2) // prvi gumb mora biti 1 ili 2 - u protivnom napravite reset {push_button (btn1); odabir = odabir - (btn1 * 100); int btn2 = int (odabir/10); // drugi gumb Serial.println ("\ nBtn2:"); Serijski.println (btn2); gumb_potiskivanja (btn2); odabir = odabir - (btn2 * 10); int btn3 = int (odabir); // treći gumb Serial.println ("\ nBtn3:"); Serijski.println (btn3); gumb_potiskivanja (btn3); } else {push_button (11); // gumb za resetiranje} // resetiranje servo pozicija kad sve završi odgoda (2000); myservo1.write (140); myservo2.write (90); myservo3.write (90);} void push_button (int btn) {// poziva se 3 puta za svaki odabir // stvarno pritiskanje gumba vrši se nakon svakog gumba (pronađi 'stvarni pritisak gumba') prekidač (btn) {slučaj 1: set_servo_angles (134, 136); // 1 prekid; slučaj 2: set_servo_angles (128, 110); // 2 prekid; slučaj 3: set_servo_angles (112, 88); // 3 prekid; slučaj 4: set_servo_angles (89, 68); // 4 prekid; slučaj 5: set_servo_angles (62, 55); // 5 prekid; slučaj 6: set_servo_angles (172, 131); // 6 prekid; slučaj 7: set_servo_angles (163, 106); // 7 prekid; slučaj 8: set_servo_angles (140, 83); // 8 prekid; slučaj 9: set_servo_angles (104, 58); // 9 prekid; slučaj 0: set_servo_angles (75, 36); // 0 prekid; slučaj 11: set_servo_angles (36, 30); // 11 prekid; } // 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 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 popisa za reprodukciju na zahtjev iz oblaka (već testirano - radi)
Widget za tablicu - neka mala poboljšanja widgeta su dobrodošla (prijedlozi se šalju programerima tvrtke Blynk)
Preporučeni:
Jukebox Casera Por: Tono Kiehnle: 5 koraka (sa slikama)
Jukebox Casera Por: Tono Kiehnle: Jukebox hecha en casa programada con Arduino UNO. Contiene 3 canciones reproducidas por medio de un buzzer pasivo y cuenta con botones de pulso y una pantalla LCD para la interaracion con el usuario.La jukebox cuenta con 3 botones. 2 de ellos se koriste
Cara Menggunakan Wemos D1 R1/ Wemos D1 Mini/ NodeMCU: 7 koraka
Cara Menggunakan Wemos D1 R1/ Wemos D1 Mini/ NodeMCU: Pada tutorial pertama ini, Saya ingin mengajak Anda bagaimana caranya menggunakan papan mikrokontroler sa sudom adapterom Modul WiFi ESP8266 da dalamnya i juga posluživanje dijumpai (DC1 Mini ) potraživanje aplikacija
Pošaljite temperaturu i vlažnost u aplikaciju Blynk (Wemos D1 Mini Pro) .: 15 koraka (sa slikama)
Pošaljite temperaturu i vlažnost u aplikaciju Blynk (Wemos D1 Mini Pro) .: Ova uputa razmatra korištenje Wemos D1 Mini Pro za slanje podataka (temperature i vlažnosti) u aplikaciju Blynk
Napravite UFD za pokretanje za bljeskanje AMI BIOS -a: 12 koraka
Napravite UFD za pokretanje za bljeskanje AMI BIOS -a: I prijenosna i stolna računala povremeno zahtijevaju ažuriranje BIOS -a. Kad posjetite web mjesto dobavljača (bilo mfgr računala ili proizvođač BIOS -a) i otkrijete novi BIOS sa značajkama koje želite, ili nadogradnje zahtijevaju novi BIOS, vrijeme je da sve unesete
Detektor pokreta s Blynk obavijestima (WeMos D1 Mini + HC-SR04): 4 koraka (sa slikama)
Detektor pokreta s Blynk obavijestima (WeMos D1 Mini + HC-SR04): GLASAJTE za ovaj projekt na natječaju za bežično povezivanje. Hvala! Ažurirajte br. 2 - Nekoliko izmjena (verzija 2.2), možete postaviti senzor (raspon i naziv) izravno u definiciji. Također, ponekad se dogodilo da je senzor pročitao pogrešne vrijednosti i poslao obavijesti