Sisukord:

PlotClock, WeMos ja Blynk mängivad Vintage AMI Jukeboxi: 6 sammu (koos piltidega)
PlotClock, WeMos ja Blynk mängivad Vintage AMI Jukeboxi: 6 sammu (koos piltidega)

Video: PlotClock, WeMos ja Blynk mängivad Vintage AMI Jukeboxi: 6 sammu (koos piltidega)

Video: PlotClock, WeMos ja Blynk mängivad Vintage AMI Jukeboxi: 6 sammu (koos piltidega)
Video: Remote Robot finger playing Vintage AMI Jukebox 2024, Juuli
Anonim
PlotClock, WeMos ja Blynk mängivad Vintage AMI Jukeboxi
PlotClock, WeMos ja Blynk mängivad Vintage AMI Jukeboxi
PlotClock, WeMos ja Blynk mängivad Vintage AMI Jukeboxi
PlotClock, WeMos ja Blynk mängivad Vintage AMI Jukeboxi

Selle projekti võimaldasid neli tehnilist uuendust: 1977. aasta Rowe AMI Jukebox, PlotClock robotkätekomplekt, WeMos/ESP 8266 mikrokontroller ja Blynk App/Cloud teenus.

MÄRKUS. Kui teil pole Jukeboxi käepärast - ärge lõpetage lugemist! Seda projekti saab hõlpsasti kasutada erinevate inimeste sõrmedega juhitavate asjade juhtimiseks. Üks näide võib olla robot -sõrm, mis mängib traditsioonilist ksülofoni - võib -olla tuleb see õpetatav sinult!

Minu 40-aastane Rowe AMI R-81 Jukebox töötab endiselt hästi, mängides vintage-vinüül-singleid 60ndatest, 70ndatest ja 80ndatest. See mängija, kes kaalub üle 160 kg (360 naela), ei ole päris nii kaasaskantav kui kaasaegsed mp-mängijad, kuid internetiajastul elades on nüüd võimalik taskusse kanda jukeboksi ja 200 vinüülplaati-praktiliselt muidugi! Ja saate isegi kasutada oma mikrokontrollerisse salvestatud esitusloendeid!

Amazing PlotClock robot on algselt loodud näitama praegust aega, joonistades kustutatavale tahvlile ajakohad. Minu kohandus PlotClocki jaoks on kasutada seda roboti sõrmena Jukeboxi laulude valimise nuppude vajutamiseks.

Plotclock'i sõrme juhib 3 servot, mida juhib WeMos mikrokontroller. See ime on (peaaegu) Arduino Unoga ühilduv ja WiFi -võimalustega, seega on võimalik juhtida juhtmeta masinat juhtmevabalt kõikjalt maailmast.

Kreem koogil on pärit uskumatult hõlpsasti kasutatavast Blynk Appist ja nende Blynk Cloud Serverist, mis annab kena mobiiltelefoni/tahvelarvuti kasutajaliidese täieliku liikuvusega.

Samm: riistvara

Riistvara
Riistvara
Riistvara
Riistvara

Jukebox

Projekti jukebox on 1977. aasta Rowe AMI R-81. Sobib iga vana valikunuppudega jukebox - pidades silmas mõningaid PlotClocki piiranguid: PlotClocki algne relvade disain võib katta umbes 5 x 12 cm suuruse ala, nii et jukeboxi nuppude paigutus (ala koos kõigi valikunuppudega) peab olema umbes sama suur. Vanemate jukeboxide nupud võivad vajada rohkem tõukejõudu kui PlotClock servod suudavad pakkuda.

AMI R-81-l on mälu, kuhu saab salvestada kõik 200 valikut. Valikuid esitatakse plaatide ajakirja salvestamise järjekorras (karussellitüüp), mitte nende valimise järjekorras. Ühe plaadi mitu valikut esitatakse ainult üks kord.

PlotClock

Plotclock on kaubanduslikult saadaval DIY komplekt, mis sisaldab mehaanilisi osi, 3 servot, Arduino Uno R3, Arduino pikendusplaati ja USB -kaablit. Umbes 30 USD eest on see hea ost (nt Banggood.com). Selle projekti jaoks ei kasutata Arduinot, pikendusplaati ja USB -kaablit.

Plotclocki koostamiseks on mitmeid häid Interneti/YouTube'i õpetusi - nt. see: PlotClock juhised

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

WeMos

WeMos D1 R2 on ESP8266 põhine mikrokontroller. Seda saab programmeerida Arduino IDE abil ja sellel on WiFi -võimalused, nii et see on selle projekti jaoks ideaalne riistvara.

2. samm: kalibreerimine

Kalibreerimine
Kalibreerimine

Kalibreerimine on ülesanne leida servonurkade (0 kuni 180 kraadi) täpsed nurga väärtused, mis vastavad valikunuppude füüsilistele asenditele. Nurga väärtused saab leida trigonomeetria arithemitics abil või kasutades CAD tarkvara. Sain ligikaudsed väärtused oma sõbralt, kes oskas AutoCadi kasutada.

Lõplik kalibreerimine tuli siiski teha katse -eksituse meetodil. Paberitükile joonistatud nuppude paigutuse kasutamine Õige nurga väärtuste leidmiseks on võimalik teha töölaua testimist.

3. samm: kokkupanek

Kokkupanek
Kokkupanek
Kokkupanek
Kokkupanek
Kokkupanek
Kokkupanek
Kokkupanek
Kokkupanek

Juhtmestik

Ühendus Plotclock servodest Wemosesse toimub 5 juhtmega: +5, GND, D4, D5 ja D6. Vaadake üksikasju piltidel ja koodis.

Jukeboxi installimine

Ma ei tahtnud 40 -aastasele jukeboxile, mis oli nii kaua ilma suuremate kahjustusteta vastu pidanud, kruviauke teha. Pehme kummitihendi abil kinnitasin jukeboxi konsooli alla tüki alumiiniumist nurkade nimekirja. Kummist hermeetik hoiab tihedalt kinni ja seda saab eemaldada ilma jälgi jätmata. PlotClocki korpus vajas kahte väikest alumiiniumnurka, et aidata seda akrüülplaadile kinnitada. Seejärel paigaldatakse akrüülplaat nurgaloendisse kahe vedruga klambriga, jättes võimaluse lõplikke reguleerimisi vertikaalselt ja horisontaalselt.

4. samm: Blynk

Blynk
Blynk

Blynk on tasuta rakendus mitut tüüpi mikrokontrollerite kaugjuhtimiseks. Blynk abil saate hõlpsasti luua toreda kasutajaliidese, kasutades mitut tüüpi vidinaid. Selle projekti jaoks on vaja ainult ühte vidinat: tabeli vidinat.

Samm: tarkvara

Blynk App

Rakenduse poolel pole kodeerimist. Rakenduse (Blynk) ja mikrokontrolleri (WeMos) vahelist “vestlust” haldavad virtuaalsed tihvtid, mis on sisuliselt kanalid nende kahe vahel teabe saatmiseks ja vastuvõtmiseks. Virtuaalset tihvti kasutatakse näiteks valitud laulu reanumbri saatmiseks rakendusest Blynk WeMos ja Wemos tegeleb ülejäänuga, st. käskude saatmine Plotclock servodele.

WeMos kood

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

Tabeli vidin aadressil V2 ********************************************* ****************/ #defineeri BLYNK_PRINT Serial #include #include #include char auth = "-TEIE AUTH CODE--"; // Jukeboxi projekti char ssid = "-SINU SSID--"; char pass = "-SINU WIFI-PAROOL-"; int c [50]; // Massiiv Jukeboxi rekordipositsioonide jaoks (100-299) Servo myservo1; // tõstmine Servo myservo2; // vasak käsi Servo myservo3; // parem käsi int pos1 = 0; int pos2 = 0; int pos3 = 0; int btn = 0; tühine seadistus () {myservo1.attach (2); // tihvt D4, tõsta myservo2.attach (14); // tihvt D5, vasakul myservo3.attach (12); // tihvt D6, parem myservo1.write (140); myservo2.write (90); myservo3.write (90); Seriaalne algus (115200); Blynk.begin (auth, ssid, pass); // Teavita kohe käivitamisel // String msg = "Jukebox WeMos ühendatud:"; //Blynk.notify(msg + ssid); // tühjendage tabel alguses Blynk.virtualWrite (V2, "clr"); populateTable (); } BLYNK_WRITE (V2) // Tabeli vidina V2 käskude vastuvõtmine {String cmd = param [0].asStr (); // param [0] = "vali" või "tühista valik", param [1] = rida Serial.print ("\ nTabel: BLYNK_WRITE (V2) cmd:"); Seeria.print (cmd); int valik = c [param [1].asInt ()]; // Valitud rea number on param [1] Serial.println ("\ nSelection:"); Serial.println (valik); protsess_valik (valik); } void populateTable () {int i = 0; Serial.println ("Täidetabel …"); Blynk.virtualWrite (V2, "lisa", 0, "Be My Baby - The Supremes", 112); c = 112; Blynk.virtualWrite (V2, "lisa", 1, "Number üks - Jerry Williams", 176); i ++; c = 176; Blynk.virtualWrite (V2, "lisa", 2, "All My Loving - The Beatles", 184); i ++; c = 184; Blynk.virtualWrite (V2, "lisa", 3, "In the Summertime - Mungo Jerry", 236); i ++; c = 236; Blynk.virtualWrite (V2, "lisa", 4, "Must pilv - lihav kontrollija", 155); i ++; c = 155; Blynk.virtualWrite (V2, "lisa", 5, "Mamy Blue - Pop -Tops", 260); i ++; c = 260; Blynk.virtualWrite (V2, "lisa", 6, "Kõik saab korda - Gerry & Pacemakers", 145); i ++; c = 145; Blynk.virtualWrite (V2, "lisa", 7, "Minu tee - Tom Jones", 193); i ++; c = 193; Blynk.virtualWrite (V2, "lisa", 8, "San Bernadino - Christie", 149); i ++; c = 149; Blynk.virtualWrite (V2, "lisa", 9, "The Twist - Chubby Checker", 169); i ++; c = 169;

viivitus (1000);

} void process_selection (int valik) {// parsida 3-kohaline valik (nt 178) kuni 3 nuppu: int btn1 = int (valik/100); // esimene nupp Serial.println ("\ nBtn1:"); Seeria.println (btn1); kui (btn1 == 1 || btn1 == 2) // esimene nupp peab olema 1 või 2 - muidu tehke lähtestamine {push_button (btn1); valik = valik - (btn1 * 100); int btn2 = int (valik/10); // teine nupp Serial.println ("\ nBtn2:"); Seeria.println (btn2); push_button (btn2); valik = valik - (btn2 * 10); int btn3 = int (valik); // kolmas nupp Serial.println ("\ nBtn3:"); Seeria.println (btn3); push_button (btn3); } else {push_button (11); // lähtestamisnupp} // servoasendite lähtestamine, kui kõik on tehtud (2000); myservo1.write (140); myservo2.write (90); myservo3.write (90);} void push_button (int btn) {// seda nimetatakse iga valiku puhul 3 korda // tegelik nupuvajutus tehakse pärast igat nuppu (leidke 'tegelik nupuvajutus') lüliti (btn) {juht 1: set_servo_angles (134, 136); // 1 paus; juhtum 2: set_servo_angles (128, 110); // 2 paus; juhtum 3: set_servo_angles (112, 88); // 3 paus; juhtum 4: set_servo_angles (89, 68); // 4 paus; juhtum 5: set_servo_angles (62, 55); // 5 paus; juhtum 6: set_servo_angles (172, 131); // 6 paus; juhtum 7: set_servo_angles (163, 106); // 7 paus; juhtum 8: set_servo_angles (140, 83); // 8 paus; juhtum 9: set_servo_angles (104, 58); // 9 paus; juhtum 0: set_servo_angles (75, 36); // 0 murda; juhtum 11: set_servo_angles (36, 30); // 11 paus; } // lõpplüliti} void set_servo_angles (int pos2, int pos3) {myservo2.write (pos2); myservo3.write (pos3); // Servoasendid valmis - sooritage tegelik nupuvajutus: delay (500); myservo1.write (60); // allalaadimise viivitus (500); myservo1.write (140); // ülesmineku viivitus (500); } void loop () {Blynk.run (); }

6. samm: tulevased sammud

Videovidin - video- ja helivoo otseülekanne rakendusse Blynk (juba testitud - töötab)

Webhooki vidin - esitusloendi nõudmisel allalaadimine pilvest (juba testitud - töötab)

Tabeli vidin - mõned väikesed vidina täiustused on teretulnud (soovitused saadetud Blynk arendajatele)

Soovitan: