Satura rādītājs:
- 1. darbība. Aparatūra
- 2. solis: kalibrēšana
- 3. solis: montāža
- 4. solis: Blynk
- 5. solis: programmatūra
- 6. darbība. Turpmākie soļi
Video: PlotClock, WeMos un Blynk, kas spēlē Vintage AMI Jukebox: 6 soļi (ar attēliem)
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:51
Š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
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 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
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 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:
Arduino Pinball Machine, kas spēlē pats!: 13 soļi (ar attēliem)
Arduino Pinball Machine, kas spēlē pats !: " Pinball machine, kas spēlē pats, vai tas neizraisa visu jautrību? &Quot; Es dzirdu, kā jūs jautājat. Varbūt, ja jūs neuztverat autonomus robotus, tas varētu notikt. Tomēr es ļoti vēlos veidot robotus, kas spēj darīt atdzist lietas, un šis
Simona spēle - jautra spēle!: 5 soļi
Simona spēle - jautra spēle !: Atsauce: šeitPēc garas nedēļas nogales jums patiešām ir jācenšas izpildīt visus uzdevumus un darbu, par kuru esat atbildīgs. Mums ir pienācis laiks trenēt smadzenes, vai ne? Bez šīm garlaicīgajām un bezjēdzīgajām spēlēm ir arī spēle ar nosaukumu Simona spēle
Ērtas lietas, kas jāzina par Makey Makey GO, un jautra spēle: 4 soļi
Ērtas lietas, kas jāzina par Makey Makey GO UN jautra spēle: Daudzi cilvēki saņem MaKey MaKey GO un viņiem nav ne jausmas, ko ar to darīt. Jūs varat spēlēt dažas jautras spēles no nulles un padarīt to vienmēr sasniedzamu rokās! Viss, kas Jums nepieciešams, ir MaKey MaKey GO un dators, kas var piekļūt no nulles
Rotaļlietas, kas pielāgojamas slēdzim: Olu tālvadības pults, kas padarīta pieejama!: 7 soļi (ar attēliem)
Rotaļlietas, kas pielāgojamas ar slēdzi: Olu tālvadība ar čūsku padarīta pieejama !: Rotaļlietu pielāgošana paver jaunas iespējas un pielāgotus risinājumus, lai bērni ar ierobežotām motoriskajām spējām vai attīstības traucējumiem varētu patstāvīgi mijiedarboties ar rotaļlietām. Daudzos gadījumos bērni, kuriem nepieciešamas pielāgotas rotaļlietas, nespēj
Prima - robots, kas spēlē klavieres: 13 soļi
Prima - robots, kas spēlē klavieres: Ideja par robotu, kas spēlē instrumentu, mani vienmēr fascinēja, un es vienmēr gribēju to uzbūvēt pati. Tomēr man nekad nebija daudz zināšanu par mūziku un mūzikas instrumentiem, tāpēc nekad nevarēju izdomāt, kā patiesībā ar to sākt. Līdz r