Turinys:

„PlotClock“, „WeMos“ir „Blynk“groja „Vintage AMI Jukebox“: 6 žingsniai (su nuotraukomis)
„PlotClock“, „WeMos“ir „Blynk“groja „Vintage AMI Jukebox“: 6 žingsniai (su nuotraukomis)

Video: „PlotClock“, „WeMos“ir „Blynk“groja „Vintage AMI Jukebox“: 6 žingsniai (su nuotraukomis)

Video: „PlotClock“, „WeMos“ir „Blynk“groja „Vintage AMI Jukebox“: 6 žingsniai (su nuotraukomis)
Video: eDOT: An Arduino based versatile clock and weather station, multipurpose information display 2024, Liepa
Anonim
„PlotClock“, „WeMos“ir „Blynk“groja „Vintage AMI Jukebox“
„PlotClock“, „WeMos“ir „Blynk“groja „Vintage AMI Jukebox“
„PlotClock“, „WeMos“ir „Blynk“groja „Vintage AMI Jukebox“
„PlotClock“, „WeMos“ir „Blynk“groja „Vintage AMI Jukebox“

Šį 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

Techninė įranga
Techninė įranga
Techninė įranga
Techninė įranga

„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
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

Surinkimas
Surinkimas
Surinkimas
Surinkimas
Surinkimas
Surinkimas
Surinkimas
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
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: