Turinys:
- 1 žingsnis: Aparatūra
- 2 žingsnis: kalibravimas
- 3 žingsnis: Surinkimas
- 4 žingsnis: Blynk
- 5 žingsnis: programinė įranga
- 6 žingsnis: būsimi žingsniai
Video: „PlotClock“, „WeMos“ir „Blynk“groja „Vintage AMI Jukebox“: 6 žingsniai (su nuotraukomis)
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:44
Šį projektą įgyvendino keturios techninės naujovės: 1977 m. „Rowe AMI Jukebox“, „PlotClock“robotų rankų komplektas, „WeMos/ESP 8266“mikrovaldiklis ir „Blynk App/Cloud“paslauga.
PASTABA: jei neturite po ranka „Jukebox“- nenustokite skaityti! Šis projektas gali būti lengvai pritaikytas valdyti įvairius žmogaus pirštais valdomus dalykus. Vienas iš pavyzdžių galėtų būti roboto pirštas, grojantis tradiciniu ksilofonu - galbūt tas pamokymas ateina iš jūsų!
Mano 40 metų „Rowe AMI R-81 Jukebox“vis dar puikiai leidžia grojant senovinius vinilo singlus iš 60-ųjų, 70-ųjų ir 80-ųjų. Šis grotuvas, sveriantis daugiau nei 160 kg (360 svarų), nėra toks nešiojamas kaip šiuolaikiniai mp grotuvai, tačiau, gyvendamas interneto eroje, dabar kišenėje galima nešiotis muzikos grotuvą ir 200 vinilinių plokštelių-žinoma! Ir netgi galite naudoti savo grojaraščius, saugomus mikrovaldiklyje!
Nuostabus „PlotClock“robotas iš pradžių buvo sukurtas rodyti dabartinį laiką, piešiant laiko skaitmenis ant ištrinamos lentos. Mano pritaikymas „PlotClock“yra naudoti jį kaip roboto pirštą spaudžiant „Jukebox“dainų pasirinkimo mygtukus.
„Plotclock“pirštą valdo 3 servos, valdomos „WeMos“mikrovaldiklio. Šis stebuklas yra (beveik) suderinamas su „Arduino Uno“ir turi „WiFi“galimybes, todėl belaidžiu būdu galima valdyti „Jukebox“iš bet kurios pasaulio vietos.
Kremas ant torto gaunamas iš neįtikėtinai lengvai naudojamos „Blynk“programos ir jų „Blynk Cloud Server“, suteikiančio puikią mobiliojo telefono/planšetinio kompiuterio sąsają su visišku mobilumu.
1 žingsnis: Aparatūra
„Jukebox“
Projekto „Jukebox“yra 1977 m. „Rowe AMI R-81“. Tiks bet koks senas „Jukebox“su pasirinkimo mygtukais - atkreipiant dėmesį į keletą „PlotClock“apribojimų: „PlotClock“originalus ginklų dizainas gali apimti maždaug 5 x 12 cm plotą, todėl „Jukebox“mygtukų išdėstymas (sritis, įskaitant visus pasirinkimo mygtukus) turi būti tokio dydžio. Senesnių „jukebox“mygtukams gali prireikti daugiau pastūmimo galios, nei gali suteikti „PlotClock“servos.
„AMI R-81“turi atmintį, kurioje gali saugoti visus 200 pasirinkimų. Atrankos atliekamos atsižvelgiant į įrašų žurnalo įrašymo tvarką (karuselės tipo), o ne pagal jų pasirinkimo tvarką. Keli vieno įrašo pasirinkimai grojami tik vieną kartą.
„PlotClock“
„Plotclock“yra parduodamas „pasidaryk pats“rinkinys, kuriame yra mechaninės dalys, 3 servos, „Arduino Uno R3“, „Arduino“prailginimo plokštė ir USB kabelis. Maždaug už 30 USD tai yra geras pirkinys (pvz., Banggood.com). Šiam projektui nenaudojamas „Arduino“, prailginimo plokštė ir USB kabelis.
Yra keletas gerų interneto/„YouTube“pamokų, skirtų „Plotclock“kūrimui - pvz. tai: „PlotClock“instrukcijos
static1.squarespace.com/static/52cb189ee4b012ff9269fa8e/t/5526946be4b0ed8e0b3cd296/1428591723698/plotclock_final_instructions.pdf
WeMos
„WeMos D1 R2“yra ESP8266 pagrįstas mikrovaldiklis. Jis gali būti užprogramuotas naudojant „Arduino IDE“ir turi „WiFi“galimybes, todėl tai yra puiki šio projekto įranga.
2 žingsnis: kalibravimas
Kalibravimas yra užduotis rasti tikslią servo kampų (nuo 0 iki 180 laipsnių) kampų reikšmes, atitinkančias pasirinkimo mygtukų fizines padėtis. Kampų reikšmes galima rasti atlikus trigonometrijos arithemitiką arba naudojant CAD programinę įrangą. Apytiksles vertes gavau iš savo draugo, kuris mokėjo naudotis „AutoCad“.
Tačiau galutinis kalibravimas turėjo būti atliktas bandymų ir klaidų būdu. Naudojant ant popieriaus lapo nupieštą mygtukų išdėstymą Galima rasti „darbastalio testavimą“ir rasti teisingas kampo vertes.
3 žingsnis: Surinkimas
Laidai
Prijungimas iš „Plotclock“servo prie „Wemos“atliekamas naudojant 5 laidus: +5, GND, D4, D5 ir D6. Išsamią informaciją rasite nuotraukose ir koduose.
Įdiegimas „Jukebox“
Nenorėjau padaryti jokių varžtų skylių 40 metų senumo jėgos blokui, kuris taip ilgai išgyveno be didelių pažeidimų. Naudodamas minkštą guminį sandariklį, aš pritvirtinau aliuminio kampų sąrašą po „Jukebox“pultu. Guminis sandariklis tvirtai laikosi ir gali būti pašalintas nepaliekant žymių. „PlotClock“korpusui reikėjo dviejų mažų aliuminio kampų, kad būtų lengviau jį pritvirtinti prie akrilo plokštės. Tada akrilo plokštė pritvirtinama prie kampų sąrašo su dviem spyruokliniais spaustukais, paliekant galimybę galutinai sureguliuoti vertikaliai ir horizontaliai.
4 žingsnis: Blynk
„Blynk“yra nemokama programa, skirta nuotoliniu būdu valdyti kelių tipų mikrovaldiklius. Naudodami „Blynk“galite lengvai sukurti gražią vartotojo sąsają naudodami kelių tipų valdiklius. Šiam projektui reikalingas tik vienas valdiklis: valdiklis Lentelė.
5 žingsnis: programinė įranga
„Blynk“programa
Programos pusėje nėra kodavimo. „Pokalbį“tarp programos („Blynk“) ir mikrovaldiklio („WeMos“) tvarko „virtualūs kaiščiai“, kurie iš esmės yra informacijos siuntimo ir gavimo kanalai tarp šių dviejų. Pavyzdžiui, virtualus kaištis naudojamas siunčiant pasirinktos dainos eilutės numerį iš „Blynk“programos į „WeMos“, o „Wemos“tvarko likusią dalį, t. komandų siuntimas į „Plotclock“servos.
„WeMos“kodas
/**************************************************************
Lentelės valdiklis V2 ********************************************* ****************/ #define BLYNK_PRINT Serial #include #include #include char auth = "-JŪSŲ AUTH CODE--"; // „Jukebox“projekto char ssid = "-JŪSŲ SSID--"; char pass = "-JŪSŲ WIFI Slaptažodis-"; int c [50]; // Masyvas „Jukebox“įrašų pozicijoms (100-299) Servo myservo1; // kėlimas Servo myservo2; // kairė ranka Servo myservo3; // dešinė ranka int pos1 = 0; int pos2 = 0; int pos3 = 0; int btn = 0; void setup () {myservo1.attach (2); // kaištis D4, pakelkite myservo2.attach (14); // kaištis D5, kairėje myservo3.attach (12); // kaištis D6, dešinė myservo1.write (140); myservo2.write (90); myservo3.write (90); Serial.begin (115200); Blynk.begin (auth, ssid, pass); // Pranešti iškart paleidžiant // String msg = "Jukebox WeMos prijungtas prie:"; //Blynk.notify(msg + ssid); // išvalyti lentelę pradžioje Blynk.virtualWrite (V2, "clr"); populateTable (); } BLYNK_WRITE (V2) // Gauti komandas iš lentelės valdiklio V2 {String cmd = param [0].asStr (); // param [0] = "pasirinkti" arba "panaikinti pasirinkimą", param [1] = eilutė Serial.print ("\ nLentelė: BLYNK_WRITE (V2) cmd:"); Serijinis atspaudas (cmd); int atranka = c [param [1].asInt ()]; // Pasirinktas eilutės numeris yra parametras [1] Serial.println ("\ nSelection:"); Serial.println (atranka); process_selection (atranka); } void populateTable () {int i = 0; Serial.println ("Lentelė užpildyti …"); Blynk.virtualWrite (V2, "pridėti", 0, "Be My Baby - The Supremes", 112); c = 112; „Blynk.virtualWrite“(V2, „pridėti“, 1, „Numeris vienas - Džeris Viljamsas“, 176); i ++; c = 176; Blynk.virtualWrite (V2, "pridėti", 2, "All My Loving - The Beatles", 184); i ++; c = 184; Blynk.virtualWrite (V2, "pridėti", 3, "In the Summertime - Mungo Jerry", 236); i ++; c = 236; „Blynk.virtualWrite“(V2, „pridėti“, 4, „Juodas debesis - išsipūtęs tikrintuvas“, 155); i ++; c = 155; Blynk.virtualWrite (V2, "pridėti", 5, "Mamy Blue - Pop -Tops", 260); i ++; c = 260; Blynk.virtualWrite (V2, „pridėti“, 6, „Viskas bus gerai - Gerry ir širdies stimuliatoriai“, 145); i ++; c = 145; Blynk.virtualWrite (V2, „pridėti“, 7, „Mano kelias - Tomas Džounsas“, 193); i ++; c = 193; Blynk.virtualWrite (V2, "pridėti", 8, "San Bernadinas - Christie", 149); i ++; c = 149; Blynk.virtualWrite (V2, "pridėti", 9, "The Twist - Chubby Checker", 169); i ++; c = 169;
vėlavimas (1000);
} void process_selection (int pasirinkimas) {// analizuoti 3 skaitmenų pasirinkimą (pvz., 178) iki 3 mygtukų: int btn1 = int (atranka/100); // pirmasis mygtukas Serial.println ("\ nBtn1:"); Serial.println (btn1); jei (btn1 == 1 || btn1 == 2) // pirmasis mygtukas turi būti 1 arba 2 - priešingu atveju atlikite atstatymą {push_button (btn1); atranka = atranka - (btn1 * 100); int btn2 = int (atranka/10); // antrasis mygtukas Serial.println ("\ nBtn2:"); Serial.println (btn2); „push_button“(btn2); atranka = atranka - (btn2 * 10); int btn3 = int (atranka); // trečiasis mygtukas Serial.println ("\ nBtn3:"); Serial.println (btn3); „push_button“(btn3); } else {push_button (11); // atstatymo mygtukas} // iš naujo nustatyti servo pozicijas, kai viskas padaryta (2000); myservo1.write (140); myservo2.write (90); myservo3.write (90);} void push_button (int btn) {// tai vadinama 3 kartus kiekvienam pasirinkimui // tikrasis mygtuko paspaudimas atliekamas po kiekvieno mygtuko (rasti „faktinis mygtuko paspaudimas“) jungiklis (btn) {atvejis 1: set_servo_angles (134, 136); // 1 pertrauka; 2 atvejis: set_servo_angles (128, 110); // 2 pertrauka; 3 atvejis: set_servo_angles (112, 88); // 3 pertrauka; 4 atvejis: set_servo_angles (89, 68); // 4 pertrauka; 5 atvejis: set_servo_angles (62, 55); // 5 pertrauka; 6 atvejis: set_servo_angles (172, 131); // 6 pertrauka; 7 atvejis: set_servo_angles (163, 106); // 7 pertrauka; 8 atvejis: „set_servo_angles“(140, 83); // 8 pertrauka; 9 atvejis: „set_servo_angles“(104, 58); // 9 pertrauka; 0 atvejis: set_servo_angles (75, 36); // 0 pertrauka; 11 atvejis: „set_servo_angles“(36, 30); // 11 pertrauka; } // pabaigos jungiklis} void set_servo_angles (int pos2, int pos3) {myservo2.write (pos2); myservo3.write (pos3); // Servo pozicijos paruoštos - atlikti faktinį mygtuko paspaudimą: delay (500); myservo1.write (60); // down delay (500); myservo1.write (140); // iki uždelsimo (500); } void loop () {Blynk.run (); }
6 žingsnis: būsimi žingsniai
Vaizdo įrašų valdiklis - tiesioginis vaizdo ir garso srautas į „Blynk“programą (jau išbandyta - veikia)
„Webhook“valdiklis - grojaraščio pagal poreikį atsisiuntimas iš debesies (jau išbandytas - veikia)
Lentelės valdiklis - laukiami nedideli valdiklio patobulinimai (pasiūlymai siunčiami „Blynk“kūrėjams)
Rekomenduojamas:
„Jukebox Casera“Poros: Tono Kiehnle: 5 žingsniai (su nuotraukomis)
„Jukebox Casera“Poros: Tono Kiehnle: „Jukebox hecha en casa“programa „Arduino UNO“. Turėkite 3 kanalus, atkuriančius medio de un buzzer pasivo y cuenta con botones de pulso y una a pantalla LCD para interaction con el usuario.La jukebox cuenta with 3 botones. 2 de ellos se util
RFID „Jukebox“: 3 žingsniai (su nuotraukomis)
RFID „Jukebox“: tai mano įrašas " Garso " konkursas - jei jus tai domina, prašome balsuoti! Šiuo įrašu bus bandoma sukurti " draugišką slinkties " šio įrašo viršuje pateikta instrukcijų vaizdo įrašo versija. Vaizdo įrašas eina
Išmanusis, gražus ir „Coolmay“AMI „Arduino“: 3 žingsniai
Protingas, gražus ir „Coolmay“HMI, skirtas „Arduino“: tai naujausias mini jutiklinis ekranas, kurį nusipirkau valdyti „Arduino“plokštę pagal „Modbus TCP“ryšį
Siųsti temperatūrą ir drėgmę į „Blynk“programą („Wemos D1 Mini Pro“): 15 žingsnių (su nuotraukomis)
Siųskite temperatūrą ir drėgmę į „Blynk“programą („Wemos D1 Mini Pro“). Ši instrukcija apžvelgia, kaip naudojant „Wemos D1 Mini Pro“siųsti duomenis (temperatūra ir drėgmė) į „Blynk“programą
Judesio detektorius su pranešimais apie „Blynk“(„WeMos D1 Mini + HC-SR04“): 4 žingsniai (su nuotraukomis)
Judesio detektorius su pranešimais apie „Blynk“(„WeMos D1 Mini + HC-SR04“): Prašome balsuoti už šį projektą belaidžio ryšio konkurse. Dėkojame! Atnaujinimas Nr. 2 - keletas pakeitimų (2.2 versija), galite nustatyti jutiklį (diapazoną ir pavadinimą) tiesiai apibrėžime. Be to, kartais atsitiko taip, kad jutiklis nuskaitė neteisingas vertes ir atsiuntė pranešimą