Talaan ng mga Nilalaman:

PlotClock, WeMos at Blynk Nagpe-play ng Vintage AMI Jukebox: 6 Hakbang (na may Mga Larawan)
PlotClock, WeMos at Blynk Nagpe-play ng Vintage AMI Jukebox: 6 Hakbang (na may Mga Larawan)

Video: PlotClock, WeMos at Blynk Nagpe-play ng Vintage AMI Jukebox: 6 Hakbang (na may Mga Larawan)

Video: PlotClock, WeMos at Blynk Nagpe-play ng Vintage AMI Jukebox: 6 Hakbang (na may Mga Larawan)
Video: How to Make DIY Arduino Smartphone controlled WIFI Car Using Nodemcu Esp8266 || Nodemcu Esp8266 || 2024, Hulyo
Anonim
Ang PlotClock, WeMos at Blynk Nagpe-play ng Vintage AMI Jukebox
Ang PlotClock, WeMos at Blynk Nagpe-play ng Vintage AMI Jukebox
Ang PlotClock, WeMos at Blynk Nagpe-play ng Vintage AMI Jukebox
Ang PlotClock, WeMos at Blynk Nagpe-play ng Vintage AMI Jukebox

Apat na mga teknikal na pagbabago na ginawang posible ang proyektong ito: Ang 1977 Rowe AMI Jukebox, PlotClock robot arm kit, WeMos / ESP 8266 microcontroller at Blynk App / Cloud service.

TANDAAN: Kung wala ka ng Jukebox sa kamay - huwag ihinto ang pagbabasa! Ang proyektong ito ay madaling gamitin upang makontrol ang iba't ibang mga bagay na kinokontrol ng mga daliri ng tao. Ang isang halimbawa ay maaaring isang daliri ng robot na naglalaro ng tradisyonal na Xylophone - marahil ang itinuturo na iyon ay nagmula sa iyo!

Ang aking 40 taong gulang na Rowe AMI R-81 Jukebox ay gumagana pa rin ng mahusay na paglalaro ng mga vintage vinyl single mula 60, 70 'at 80's. Tumitimbang ng higit sa 160 kg (360 lbs) ang manlalaro na ito ay hindi gaanong portable tulad ng modernong mp-player, ngunit nakatira sa panahon ng internet, posible na dalhin ang jukebox at 200 vinyl record sa iyong bulsa - halos syempre! At maaari mo ring gamitin ang iyong sariling mga playlist na nakaimbak sa microcontroller!

Ang kamangha-manghang robot ng PlotClock ay orihinal na idinisenyo upang ipakita ang kasalukuyang oras sa pamamagitan ng pagguhit ng mga digit ng oras sa nabura na board. Ang aking pagbagay para sa PlotClock ay upang gamitin ito bilang isang daliri ng robot para sa pagpindot sa mga pindutan ng pagpili ng kanta ng Jukebox.

Ang "daliri" ng Plotclock ay hinihimok ng 3 servos na kinokontrol ng WeMos microcontroller. Ang piraso ng pagtataka na ito ay (halos) Arduino Uno na katugma at may mga kakayahan sa WiFi, kaya posible na kontrolin ang jukebox nang wireless mula sa kahit saan sa mundo.

Ang cream sa cake ay nagmula sa hindi kapani-paniwalang madaling gamitin Blynk App at ang kanilang Blynk Cloud Server na nagbibigay ng isang magandang interface ng gumagamit ng mobile phone / tablet na may buong kadaliang kumilos.

Hakbang 1: Hardware

Hardware
Hardware
Hardware
Hardware

Jukebox

Ang proyekto jukebox ay 1977 Rowe AMI R-81. Anumang matandang jukebox na may mga pindutan ng pagpili ay magagawa - pagpansin ng ilang mga limitasyon ng PlotClock: Ang orihinal na disenyo ng armas ng PlotClock ay maaaring masakop ang isang lugar tungkol sa 5 x 12 cm kaya ang layout ng pindutan ng jukebox (lugar kabilang ang lahat ng mga pindutan ng pagpili) ay dapat na may sukat na sukat. Ang mga pindutan ng mas matatandang jukeboxes ay maaaring mangailangan ng higit na lakas sa pagtulak kaysa sa maibigay ng mga PlotClock servos.

Ang AMI R-81 ay may memorya kung saan maaari nitong maiimbak ang lahat ng 200 mga pagpipilian. Pinatugtog ang mga pagpipilian batay sa pagkakasunud-sunod na nakaimbak sa record magazine (uri ng carousel), hindi sa pagkakasunud-sunod na napili. Ang maramihang mga pagpipilian para sa isang rekord ay nilalaro nang isang beses lamang.

PlotClock

Ang Plotclock ay magagamit sa komersyo ng DIY kit kabilang ang mga piyesa sa makina, 3 servos, Arduino Uno R3, Arduino Extension board at USB cable. Para sa humigit-kumulang na 30 USD ito ay isang mabuting pagbili (hal. Banggood.com). Ang Arduino, extension board at USB cable ay hindi ginagamit para sa proyektong ito.

Mayroong maraming magagandang mga tutorial sa internet / YouTube para sa pagbuo ng Plotclock - hal. ito: Mga tagubilin sa PlotClock

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

Mga WeMos

Ang WeMos D1 R2 ay batay sa ESP8266 microcontroller. Maaari itong mai-program gamit ang Arduino IDE at may mga kakayahan sa WiFi kaya't ito ay isang perpektong piraso ng hardware para sa proyektong ito.

Hakbang 2: Pagkakalibrate

Pagkakalibrate
Pagkakalibrate

Ang pagkakalibrate ay ang gawain para sa paghahanap ng tumpak na mga halaga ng anggulo para sa mga anggulo ng servo (sa pagitan ng 0 hanggang 180 degree) upang tumutugma sa mga pisikal na posisyon para sa mga pindutan ng pagpili. Ang mga halaga ng anggulo ay maaaring matagpuan ng mga trigonometry arithemitics o paggamit ng isang CAD software. Nakuha ko ang tinatayang mga halaga mula sa aking kaibigan na alam kung paano gamitin ang AutoCad.

Gayunpaman, ang pangwakas na pagkakalibrate ay kailangang gawin ng trial at error. Gamit ang layout ng pindutan na iginuhit sa piraso ng papel Posibleng gawin ang "pagsubok sa desktop" upang mahanap ang tamang mga halaga ng anggulo.

Hakbang 3: Assembly

Assembly
Assembly
Assembly
Assembly
Assembly
Assembly
Assembly
Assembly

Kable

Ang koneksyon mula sa Plotclock servos patungong Wemos ay tapos na sa 5 wires: +5, GND, D4, D5 at D6. Tingnan ang mga detalye sa mga larawan at code.

Pag-install sa Jukebox

Ayokong gumawa ng anumang butas ng tornilyo sa 40 taong gulang na jukebox na matagal nang nabuhay nang walang mga pangunahing pinsala. Gamit ang malambot na rubber sealant ay naayos ko ang isang piraso ng listahan ng anggulo ng aluminyo sa ilalim ng jukebox console. Ang rubberantantant ay gumagawa ng masikip na paghawak at maaaring alisin nang hindi nag-iiwan ng anumang mga marka. Ang katawan ng PlotClock ay nangangailangan ng dalawang maliliit na anggulo ng aluminyo upang matulungan ang paglalagay nito sa acrylic plate. Pagkatapos ay nilagyan ang plate ng acrylic sa listahan ng anggulo na may dalawang clip na puno ng spring na umaalis sa posibilidad na gumawa ng pangwakas na pag-aayos at patayo.

Hakbang 4: Blynk

Blynk
Blynk

Ang Blynk ay isang libreng app para sa pagkontrol ng maraming uri ng mga microcontroller mula sa malayo. Sa Blynk madali mong mabuo ang isang magandang interface ng gumagamit gamit ang maraming uri ng mga widget. Mayroon lamang isang widget na kinakailangan para sa proyektong ito: ang widget ng Talahanayan.

Hakbang 5: Software

Blynk App

Walang pag-coding sa panig ng app. Ang "pag-uusap" sa pagitan ng app (Blynk) at ng microcontroller (WeMos) ay pinangangasiwaan ng "Virtual pin" na mahalagang mga channel para sa pagpapadala at pagtanggap ng impormasyon sa pagitan ng dalawang iyon. Halimbawa ang virtual pin ay ginagamit upang ipadala ang hilera na bilang ng napiling kanta mula sa Blynk app sa WeMos, at hinahawakan ni Wemos ang natitira, ibig sabihin. pagpapadala ng mga utos sa mga servo ng Plotclock.

WeMos code

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

Talahanayan ng widget sa V2 ***** ***** ***** ***** // Jukebox project char ssid = "--Your SSID--"; pass pass = "--Your WIFI PASSWORD--"; int c [50]; // Array para sa mga posisyon ng record ng Jukebox (100-299) Servo MyServo1; // nakakataas Servo MyServo2; // left arm Servo myservo3; // kanang braso int pos1 = 0; int pos2 = 0; int pos3 = 0; int btn = 0; void setup () {myservo1.attach (2); // pin D4, iangat ang myservo2.attach (14); // pin D5, left myservo3.attach (12); // pin D6, kanang myservo1.write (140); myservo2.write (90); myservo3.write (90); Serial.begin (115200); Blynk.begin (auth, ssid, pass); // Abisuhan kaagad sa pagsisimula // String msg = "Jukebox WeMos na konektado sa:"; //Blynk.notify(msg + ssid); // clear table at start Blynk.virtualWrite (V2, "clr"); populateTable (); } BLYNK_WRITE (V2) // Tumanggap ng mga utos mula sa Table widget V2 {String cmd = param [0].asStr (); // param [0] = "select" or "deselect", param [1] = row Serial.print ("\ nTable: BLYNK_WRITE (V2) cmd:"); Serial.print (cmd); int pagpili = c [param [1].asInt ()]; // Ang napiling numero ng hilera ay nasa param [1] Serial.println ("\ nSelection:"); Serial.println (pagpili); proseso_seleksyon (pagpili); } void populateTable () {int i = 0; Serial.println ("Populate table …"); Blynk.virtualWrite (V2, "add", 0, "Be My Baby - The Supremes", 112); c = 112; Blynk.virtualWrite (V2, "add", 1, "Number One - Jerry Williams", 176); ako ++; c = 176; Blynk.virtualWrite (V2, "add", 2, "All My Loving - The Beatles", 184); ako ++; c = 184; Blynk.virtualWrite (V2, "add", 3, "Sa Panahon ng Tag-init - Mungo Jerry", 236); ako ++; c = 236; Blynk.virtualWrite (V2, "add", 4, "Black Cloud - Chubby Checker", 155); ako ++; c = 155; Blynk.virtualWrite (V2, "add", 5, "Mamy Blue - Pop-Tops", 260); ako ++; c = 260; Blynk.virtualWrite (V2, "add", 6, "It's Gonna Be Alright - Gerry & Pacemakers", 145); ako ++; c = 145; Blynk.virtualWrite (V2, "add", 7, "My Way - Tom Jones", 193); ako ++; c = 193; Blynk.virtualWrite (V2, "add", 8, "San Bernadino - Christie", 149); ako ++; c = 149; Blynk.virtualWrite (V2, "add", 9, "The Twist - Chubby Checker", 169); ako ++; c = 169;

pagkaantala (1000);

} walang bisa proseso_seleksyon (int pagpili) {// parse 3-digit na pagpipilian (hal. 178) hanggang 3 mga pindutan: int btn1 = int (pagpili / 100); // first button Serial.println ("\ nBtn1:"); Serial.println (btn1); kung (btn1 == 1 || btn1 == 2) // unang pindutan ay dapat na 1 o 2 - kung hindi man ay i-reset ang {push_button (btn1); pagpili = pagpili - (btn1 * 100); int btn2 = int (pagpili / 10); // pangalawang pindutan Serial.println ("\ nBtn2:"); Serial.println (btn2); push_button (btn2); pagpili = pagpili - (btn2 * 10); int btn3 = int (pagpili); // third button Serial.println ("\ nBtn3:"); Serial.println (btn3); push_button (btn3); } iba pa {push_button (11); // button reset} // reset ang mga posisyon ng servo kapag tapos na ang lahat (2000); myservo1.write (140); myservo2.write (90); myservo3.write (90);} void push_button (int btn) {// tinatawag itong 3 beses para sa bawat pagpili // aktwal na pindutan ang pindutan ay tapos na matapos ang bawat pindutan (hanapin ang 'aktwal na pindutan ng push') switch (btn) {case 1: set_servo_angles (134, 136); // 1 break; kaso 2: set_servo_angles (128, 110); // 2 break; kaso 3: set_servo_angles (112, 88); // 3 break; kaso 4: set_servo_angles (89, 68); // 4 break; kaso 5: set_servo_angles (62, 55); // 5 break; kaso 6: set_servo_angles (172, 131); // 6 break; kaso 7: set_servo_angles (163, 106); // 7 break; kaso 8: set_servo_angles (140, 83); // 8 break; kaso 9: set_servo_angles (104, 58); // 9 break; kaso 0: set_servo_angles (75, 36); // 0 break; case 11: set_servo_angles (36, 30); // 11 break; } // end switch} void set_servo_angles (int pos2, int pos3) {myservo2.write (pos2); myservo3.write (pos3); // Mga posisyon ng Servo handa na - gampanan ang aktwal na pindutan ng pindutan: antala (500); myservo1.write (60); // down delay (500); myservo1.write (140); // up delay (500); } void loop () {Blynk.run (); }

Hakbang 6: Mga Hakbang sa Hinaharap

Video widget - live na video at audio stream sa Blynk App (nasubukan na - gumagana)

Webhook widget - pag-download ng on-demand na playlist mula sa cloud (nasubukan na - gumagana)

Ang widget ng talahanayan - ang ilang maliliit na pagpapabuti sa widget ay malugod (mga mungkahi na ipinadala sa mga developer ng Blynk)

Inirerekumendang: