Satura rādītājs:

PlotClock, WeMos un Blynk, kas spēlē Vintage AMI Jukebox: 6 soļi (ar attēliem)
PlotClock, WeMos un Blynk, kas spēlē Vintage AMI Jukebox: 6 soļi (ar attēliem)

Video: PlotClock, WeMos un Blynk, kas spēlē Vintage AMI Jukebox: 6 soļi (ar attēliem)

Video: PlotClock, WeMos un Blynk, kas spēlē Vintage AMI Jukebox: 6 soļi (ar attēliem)
Video: Two Servo Clock using Arduino IDE to program ESP8285 (ESP8266 compatible) board. 2024, Novembris
Anonim
PlotClock, WeMos un Blynk spēlē Vintage AMI Jukebox
PlotClock, WeMos un Blynk spēlē Vintage AMI Jukebox
PlotClock, WeMos un Blynk spēlē Vintage AMI Jukebox
PlotClock, WeMos un Blynk spēlē Vintage AMI Jukebox

Šo projektu padarīja iespējamu četras tehniskas inovācijas: 1977. gada Rowe AMI Jukebox, PlotClock robotu roku komplekts, WeMos/ESP 8266 mikrokontrolleris un Blynk App/Cloud pakalpojums.

PIEZĪME: ja jums nav pie rokas Jukebox - nepārtrauciet lasīšanu! Šo projektu var viegli pieņemt, lai kontrolētu dažādas lietas, ko kontrolē cilvēka pirksti. Viens piemērs varētu būt robota pirksts, kas spēlē tradicionālo ksilofonu - varbūt tas pamācāms ir no jums!

Mans 40 gadus vecais Rowe AMI R-81 Jukebox joprojām lieliski darbojas, atskaņojot vintage vinila singlus no 60., 70. un 80. gadiem. Šis atskaņotājs, kas sver vairāk nekā 160 kg (360 mārciņas), nav tik pārnēsājams kā mūsdienu mp atskaņotāji, taču, dzīvojot interneta laikmetā, tagad kabatā ir iespējams nēsāt mūzikas automātu un 200 vinila plates-protams! Un jūs pat varat izmantot savus atskaņošanas sarakstus, kas saglabāti mikrokontrollerī!

Amazing PlotClock robots sākotnēji ir paredzēts, lai parādītu pašreizējo laiku, uz dzēšamās tāfeles uzzīmējot laika ciparus. Mans PlotClock pielāgojums ir to izmantot kā robota pirkstu, lai nospiestu Jukebox dziesmu izvēles pogas.

Plotclock “pirkstu” virza 3 servo, ko kontrolē WeMos mikrokontrolleris. Šis brīnums ir (gandrīz) saderīgs ar Arduino Uno, un tam ir WiFi iespējas, tāpēc ir iespējams bezvadu režīmā kontrolēt mūzikas automātu no jebkuras vietas pasaulē.

Kūkas krēms nāk no neticami viegli lietojamās lietotnes Blynk un to Blynk Cloud Server, kas nodrošina jauku mobilā tālruņa/planšetdatora lietotāja saskarni ar pilnu mobilitāti.

1. darbība. Aparatūra

Aparatūra
Aparatūra
Aparatūra
Aparatūra

Jukebox

Projekta mūzikas automāts ir 1977. gada Rowe AMI R-81. Tiks piemērots jebkurš vecais mūzikas automāts ar atlases pogām - ievērojot dažus PlotClock ierobežojumus: PlotClock oriģinālais roku dizains var aptvert aptuveni 5 x 12 cm lielu laukumu, tāpēc mūzikas automāta pogu izkārtojumam (laukumam, ieskaitot visas atlases pogas) jābūt apmēram tādam. Vecāku mūzikas automātu pogām var būt nepieciešama lielāka spiediena jauda, nekā var nodrošināt PlotClock servo.

AMI R-81 ir atmiņa, kurā var saglabāt visas 200 atlases. Atlases tiek atskaņotas, pamatojoties uz secību, kādā tās tiek saglabātas ierakstu žurnālā (karuseļa tipa), nevis pēc atlases secības. Viena ieraksta vairākas izvēles tiek atskaņotas tikai vienu reizi.

PlotClock

Plotclock ir komerciāli pieejams DIY komplekts, kas ietver mehāniskās detaļas, 3 servos, Arduino Uno R3, Arduino pagarinātāju un USB kabeli. Par aptuveni 30 USD tas ir labs pirkums (piemēram, Banggood.com). Šim projektam netiek izmantots Arduino, pagarinātājs un USB kabelis.

Plotclock sastādīšanai ir vairākas labas interneta/YouTube apmācības, piemēram. šis: PlotClock instrukcijas

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

WeMos

WeMos D1 R2 ir mikrokontrolleris, kura pamatā ir ESP8266. To var ieprogrammēt, izmantojot Arduino IDE, un tam ir WiFi iespējas, tāpēc tā ir ideāla aparatūra šim projektam.

2. solis: kalibrēšana

Kalibrēšana
Kalibrēšana

Kalibrēšana ir uzdevums, lai servo leņķiem (no 0 līdz 180 grādiem) atrastu precīzas leņķa vērtības, kas atbilst atlases pogu fiziskajām pozīcijām. Leņķa vērtības var atrast, izmantojot trigonometrijas arithemītiku vai izmantojot CAD programmatūru. Es saņēmu aptuvenas vērtības no sava drauga, kurš zināja, kā izmantot AutoCad.

Tomēr galīgā kalibrēšana bija jāveic izmēģinājumu un kļūdu veidā. Izmantojot uz papīra lapas uzzīmēto pogu izkārtojumu Ir iespējams veikt “darbvirsmas pārbaudi”, lai atrastu pareizās leņķa vērtības.

3. solis: montāža

Montāža
Montāža
Montāža
Montāža
Montāža
Montāža
Montāža
Montāža

Elektroinstalācija

Savienojums no Plotclock servo uz Wemos tiek veikts ar 5 vadiem: +5, GND, D4, D5 un D6. Sīkāku informāciju skatiet attēlos un kodā.

Instalēšana Jukebox

Es negribēju 40 gadus vecajai mūzikas blokam izveidot skrūvju caurumus, kas tik ilgi bija izdzīvojuši bez lieliem bojājumiem. Izmantojot mīkstu gumijas hermētiķi, es nostiprināju alumīnija leņķu sarakstu zem jukebox konsoles. Gumijas hermētiķis stingri notur un to var noņemt, neatstājot nekādas pēdas. PlotClock korpusam bija nepieciešami divi mazi alumīnija leņķi, lai palīdzētu to uzstādīt uz akrila plāksnes. Pēc tam akrila plāksne tiek piestiprināta leņķu sarakstam ar diviem atsperes slēdžiem, atstājot iespēju veikt galīgos pielāgojumus vertikāli un horizontāli.

4. solis: Blynk

Blynk
Blynk

Blynk ir bezmaksas lietotne vairāku veidu mikrokontrolleru tālvadībai. Izmantojot Blynk, jūs varat viegli izveidot jauku lietotāja interfeisu, izmantojot vairāku veidu logrīkus. Šim projektam ir nepieciešams tikai viens logrīks: logrīks Tabula.

5. solis: programmatūra

Lietotne Blynk

Lietotnes pusē nav kodēšanas. “Sarunu” starp lietotni (Blynk) un mikrokontrolleri (WeMos) pārvalda “virtuālās tapas”, kas būtībā ir kanāli informācijas nosūtīšanai un saņemšanai starp šiem diviem. Piemēram, virtuālo tapu izmanto, lai no lietotnes Blynk izvēlētās dziesmas rindas numuru nosūtītu WeMos, bet pārējo apstrādā Wemos, ti. komandu nosūtīšana Plotclock servos.

WeMos kods

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

Tabulas logrīks pie V2 ********************************************* ****************/ #define BLYNK_PRINT Serial #include #include #include char auth = "-JŪSU AUTH CODE--"; // Jukebox projekta char ssid = "-JŪSU SSID--"; char pass = "-JŪSU WIFI PAROLE-"; int c [50]; // Masīvs Jukebox ierakstu pozīcijām (100-299) Servo myservo1; // pacelšana Servo myservo2; // kreisā roka Servo myservo3; // labā roka 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, kreisais myservo3.attach (12); // pin D6, labi myservo1.write (140); myservo2.write (90); myservo3.write (90); Serial.begin (115200); Blynk.begin (auth, ssid, pass); // Paziņot uzreiz palaišanas laikā // String msg = "Jukebox WeMos savienots ar:"; //Blynk.notify(msg + ssid); // notīrīt tabulu sākumā Blynk.virtualWrite (V2, "clr"); populateTable (); } BLYNK_WRITE (V2) // Saņemt komandas no tabulas logrīka V2 {String cmd = param [0].asStr (); // param [0] = "atlasīt" vai "atcelt atlasi", param [1] = rinda Serial.print ("\ nTable: BLYNK_WRITE (V2) cmd:"); Sērijas nospiedums (cmd); int atlase = c [param [1].asInt ()]; // Atlasītais rindas numurs ir parametrā [1] Serial.println ("\ nSelection:"); Serial.println (atlase); process_selection (atlase); } void populateTable () {int i = 0; Serial.println ("Aizpildošā tabula …"); Blynk.virtualWrite (V2, "pievienot", 0, "Be My Baby - The Supremes", 112); c = 112; Blynk.virtualWrite (V2, "pievienot", 1, "Pirmais numurs - Džerijs Viljamss", 176); i ++; c = 176; Blynk.virtualWrite (V2, "pievienot", 2, "All My Loving - The Beatles", 184); i ++; c = 184; Blynk.virtualWrite (V2, "pievienot", 3, "In the Summertime - Mungo Jerry", 236); i ++; c = 236; Blynk.virtualWrite (V2, "pievienot", 4, "Melnais mākonis - apaļš pārbaudītājs", 155); i ++; c = 155; Blynk.virtualWrite (V2, "pievienot", 5, "Mamy Blue - Pop -Tops", 260); i ++; c = 260; Blynk.virtualWrite (V2, "pievienot", 6, "It's Gonna Be Alright - Gerry & Pacemakers", 145); i ++; c = 145; Blynk.virtualWrite (V2, "pievienot", 7, "Mans ceļš - Toms Džonss", 193); i ++; c = 193; Blynk.virtualWrite (V2, "pievienot", 8, "San Bernadino - Christie", 149); i ++; c = 149; Blynk.virtualWrite (V2, "pievienot", 9, "The Twist - apaļš pārbaudītājs", 169); i ++; c = 169;

kavēšanās (1000);

} void process_selection (int izvēle) {// parsēt 3 ciparu atlasi (piem., 178) līdz 3 pogām: int btn1 = int (atlase/100); // pirmā poga Serial.println ("\ nBtn1:"); Sērijas.println (btn1); ja (btn1 == 1 || btn1 == 2) // pirmajai pogai jābūt 1 vai 2 - pretējā gadījumā veiciet atiestatīšanu {push_button (btn1); atlase = atlase - (btn1 * 100); int btn2 = int (atlase/10); // otrā poga Serial.println ("\ nBtn2:"); Sērijas.println (btn2); spiedpoga (btn2); atlase = atlase - (btn2 * 10); int btn3 = int (atlase); // trešā poga Serial.println ("\ nBtn3:"); Serial.println (btn3); spiedpoga (btn3); } cits {push_button (11); // atiestatīšanas poga} // atiestatīt servo pozīcijas, kad viss ir aizkavējies (2000); myservo1.write (140); myservo2.write (90); myservo3.write (90);} void push_button (int btn) {// tas tiek izsaukts 3 reizes katrai izvēlei // faktiskais pogas spiediens tiek veikts pēc katras pogas (atrodiet 'faktisko pogas spiedienu') slēdzi (btn) {1. gadījums: set_servo_angles (134, 136); // 1 pārtraukums; 2. gadījums: set_servo_angles (128, 110); // 2 pārtraukums; 3. gadījums: set_servo_angles (112, 88); // 3 pārtraukums; 4. gadījums: set_servo_angles (89, 68); // 4 pārtraukums; 5. gadījums: set_servo_angles (62, 55); // 5 pārtraukums; 6. gadījums: set_servo_angles (172, 131); // 6 pārtraukums; 7. gadījums: set_servo_angles (163, 106); // 7 pārtraukums; 8. gadījums: set_servo_angles (140, 83); // 8 pārtraukums; 9. gadījums: set_servo_angles (104, 58); // 9 pārtraukums; 0. gadījums: set_servo_angles (75, 36); // 0 pārtraukums; 11. gadījums: set_servo_angles (36, 30); // 11 pārtraukums; } // beigu slēdzis} void set_servo_angles (int pos2, int pos3) {myservo2.write (pos2); myservo3.write (pos3); // Servo pozīcijas gatavas - veiciet faktisko pogas spiedienu: delay (500); myservo1.write (60); // uz leju aizkave (500); myservo1.write (140); // aizkavēšanās (500); } void loop () {Blynk.run (); }

6. darbība. Turpmākie soļi

Video logrīks - video un audio tiešraide lietotnē Blynk (jau pārbaudīta - darbojas)

Logrīks Webhook - atskaņošanas saraksta lejupielāde pēc pieprasījuma no mākoņa (jau pārbaudīts - darbojas)

Tabulas logrīks - daži nelieli logrīka uzlabojumi ir apsveicami (ieteikumi nosūtīti Blynk izstrādātājiem)

Ieteicams: