![PlotClock, WeMos en Blynk spelen vintage AMI Jukebox - Ajarnpa PlotClock, WeMos en Blynk spelen vintage AMI Jukebox - Ajarnpa](https://i.howwhatproduce.com/images/001/image-2400-j.webp)
Inhoudsopgave:
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-23 15:01
![PlotClock, WeMos en Blynk spelen vintage AMI Jukebox PlotClock, WeMos en Blynk spelen vintage AMI Jukebox](https://i.howwhatproduce.com/images/001/image-2400-1-j.webp)
![PlotClock, WeMos en Blynk spelen vintage AMI Jukebox PlotClock, WeMos en Blynk spelen vintage AMI Jukebox](https://i.howwhatproduce.com/images/001/image-2400-2-j.webp)
Vier technische innovaties maakten dit project mogelijk: de Rowe AMI Jukebox uit 1977, PlotClock robotarmkit, WeMos/ESP 8266 microcontroller en Blynk App/Cloud-service.
OPMERKING: Als u de Jukebox niet bij de hand heeft, stop dan niet met lezen! Dit project kan gemakkelijk worden gebruikt om verschillende dingen te besturen die door menselijke vingers worden bestuurd. Een voorbeeld kan een robotvinger zijn die traditionele xylofoon speelt - misschien komt die instructable van jou!
Mijn 40 jaar oude Rowe AMI R-81 Jukebox werkt nog steeds prima en speelt vintage vinyl singles uit de jaren 60, 70 en 80. Met een gewicht van meer dan 160 kg (360 lbs) is deze speler niet zo draagbaar als moderne mp-spelers, maar in het internettijdperk is het nu mogelijk om de jukebox en 200 vinylplaten in je zak te dragen - vrijwel natuurlijk! En u kunt zelfs uw eigen afspeellijsten gebruiken die in de microcontroller zijn opgeslagen!
Verbazingwekkende PlotClock-robot is oorspronkelijk ontworpen om de huidige tijd weer te geven door tijdcijfers op het uitwisbare bord te tekenen. Mijn aanpassing voor PlotClock is om het te gebruiken als een robotvinger voor het indrukken van Jukebox-nummerselectieknoppen.
De Plotclock "vinger" wordt aangedreven door 3 servo's die worden bestuurd door een WeMos-microcontroller. Dit wonderstuk is (bijna) Arduino Uno-compatibel en heeft WiFi-mogelijkheden, waardoor het mogelijk is om de jukebox draadloos te bedienen vanaf elke plek ter wereld.
De slagroom op de taart komt van de ongelooflijk gebruiksvriendelijke Blynk-app en hun Blynk Cloud Server die een mooie gebruikersinterface voor mobiele telefoons/tablets biedt met volledige mobiliteit.
Stap 1: Hardware
![Hardware Hardware](https://i.howwhatproduce.com/images/001/image-2400-3-j.webp)
![Hardware Hardware](https://i.howwhatproduce.com/images/001/image-2400-4-j.webp)
Jukebox
Projectjukebox is de Rowe AMI R-81 uit 1977. Elke oude jukebox met selectieknoppen zal het doen - enkele beperkingen van PlotClock opmerken: het originele ontwerp van de armen van PlotClock kan een gebied van ongeveer 5 x 12 cm beslaan, dus de lay-out van de jukebox-knop (gebied inclusief alle selectieknoppen) moet ongeveer die grootte hebben. De knoppen van oudere jukeboxen hebben mogelijk meer duwkracht nodig dan PlotClock-servo's kunnen bieden.
AMI R-81 heeft een geheugen waarin alle 200 selecties kunnen worden opgeslagen. Selecties worden afgespeeld op basis van de volgorde waarin ze zijn opgeslagen in het platenmagazijn (type carrousel), niet op de volgorde waarin ze zijn geselecteerd. Meerdere selecties voor één record worden slechts één keer afgespeeld.
PerceelKlok
Plotclock is een in de handel verkrijgbare doe-het-zelf kit inclusief mechanische onderdelen, 3 servo's, Arduino Uno R3, Arduino Extension board en USB-kabel. Voor ongeveer 30 USD is dit een goede koop (bijv. Banggood.com). Arduino, uitbreidingskaart en USB-kabel worden niet gebruikt voor dit project.
Er zijn verschillende goede internet/YouTube-tutorials voor het samenstellen van de Plotclock - bijv. dit: PlotClock instructies
static1.squarespace.com/static/52cb189ee4b012ff9269fa8e/t/5526946be4b0ed8e0b3cd296/1428591723698/plotclock_final_instructions.pdf
WeMos
WeMos D1 R2 is een op ESP8266 gebaseerde microcontroller. Het kan worden geprogrammeerd met Arduino IDE en heeft WiFi-mogelijkheden, dus het is een perfect stuk hardware voor dit project.
Stap 2: Kalibratie
![Kalibratie Kalibratie](https://i.howwhatproduce.com/images/001/image-2400-5-j.webp)
Kalibratie is de taak voor het vinden van nauwkeurige hoekwaarden voor servohoeken (tussen 0 en 180 graden) om overeen te komen met fysieke posities voor selectieknoppen. Hoekwaarden kunnen worden gevonden door trigonometrie-rekenkunde of met behulp van CAD-software. Ik kreeg geschatte waarden van mijn vriend die wist hoe hij AutoCad moest gebruiken.
De uiteindelijke kalibratie moest echter met vallen en opstaan worden uitgevoerd. Met behulp van de knoplay-out die op het stuk papier is getekend Het is mogelijk om de "desktoptest" uit te voeren om de juiste hoekwaarden te vinden.
Stap 3: Montage
![samenkomst samenkomst](https://i.howwhatproduce.com/images/001/image-2400-6-j.webp)
![samenkomst samenkomst](https://i.howwhatproduce.com/images/001/image-2400-7-j.webp)
![samenkomst samenkomst](https://i.howwhatproduce.com/images/001/image-2400-8-j.webp)
![samenkomst samenkomst](https://i.howwhatproduce.com/images/001/image-2400-9-j.webp)
Bedrading
Verbinding van Plotclock-servo's naar Wemos gebeurt met 5 draden: +5, GND, D4, D5 en D6. Zie details in foto's en code.
Installeren op de Jukebox
Ik wilde geen schroefgaten maken in de 40 jaar oude jukebox die het zo lang had volgehouden zonder grote schade. Met behulp van zachte rubberen kit heb ik een stuk aluminium hoeklijst onder de jukebox-console bevestigd. Rubberen afdichtmiddel zorgt voor een stevige grip en kan worden verwijderd zonder sporen achter te laten. De behuizing van PlotClock had twee kleine aluminium hoeken nodig om hem op de acrylplaat te passen. De acrylplaat wordt vervolgens met twee veerbelaste clips op de hoeklijst gemonteerd, zodat de laatste aanpassingen verticaal en horizontaal kunnen worden gemaakt.
Stap 4: Blynk
![Blynk Blynk](https://i.howwhatproduce.com/images/001/image-2400-10-j.webp)
Blynk is een gratis app voor het op afstand besturen van verschillende soorten microcontrollers. Met Blynk kun je eenvoudig een mooie gebruikersinterface bouwen met behulp van verschillende soorten widgets. Er is slechts één widget nodig voor dit project: de tabelwidget.
Stap 5: Software
Blynk-app
Er is geen codering aan de app-kant. Het "gesprek" tussen de app (Blynk) en de microcontroller (WeMos) wordt afgehandeld door "virtuele pinnen", die in wezen kanalen zijn voor het verzenden en ontvangen van informatie tussen die twee. Virtuele pin wordt bijvoorbeeld gebruikt om het rijnummer van het geselecteerde nummer van de Blynk-app naar WeMos te sturen, en Wemos doet de rest, dwz. het verzenden van opdrachten naar de Plotclock-servo's.
WeMos-code
/**************************************************************
Tabelwidget bij V2 ********************************************* ****************/ #define BLYNK_PRINT Serial #include #include #include char auth = "--UW AUTH CODE--"; //Jukebox-project char ssid = "--UW SSID--"; char pass = "--UW WIFI-WACHTWOORD--"; intc[50]; // Array voor Jukebox-recordposities (100-299) Servo myservo1; // optillen van Servo myservo2; // linkerarm Servo myservo3; // rechterarm int pos1 = 0; int pos2 = 0; int pos3 = 0; int btn=0; void setup() { myservo1.attach(2); // pin D4, til myservo2.attach (14); // pin D5, links myservo3.attach (12); // pin D6, rechts myservo1.write (140); mijnservo2.write(90); myservo3.write(90); Serieel.begin(115200); Blynk.begin(auth, ssid, pass); // Direct informeren bij opstarten //String msg = "Jukebox WeMos verbonden met: "; //Blynk.notify (msg + ssid); // wis tabel bij start Blynk.virtualWrite (V2, "clr"); populateTable(); } BLYNK_WRITE(V2) // Ontvang opdrachten van Table widget V2 { String cmd = param[0].asStr(); //param[0]="select" of "deselect", param[1]=rij Serial.print("\nTabel: BLYNK_WRITE(V2) cmd: "); Seriële.print(cmd); int selectie = c[param[1].asInt()]; //Het geselecteerde rijnummer staat in param [1] Serial.println("\nSelectie: "); Serial.println(selectie); process_selection (selectie); } void populateTable() { int i = 0; Serial.println("Tabel invullen…"); Blynk.virtualWrite(V2, "toevoegen", 0, "Be My Baby - The Supremes", 112); c = 112; Blynk.virtualWrite(V2, "toevoegen", 1, "Nummer één - Jerry Williams", 176); i++; c = 176; Blynk.virtualWrite(V2, "toevoegen", 2, "All My Loving - The Beatles", 184); i++; c = 184; Blynk.virtualWrite(V2, "toevoegen", 3, "In de zomer - Mungo Jerry", 236); i++; c = 236; Blynk.virtualWrite(V2, "toevoegen", 4, "Black Cloud - Chubby Checker", 155); i++; c = 155; Blynk.virtualWrite(V2, "toevoegen", 5, "Mamy Blue - Pop-Tops", 260); i++; c = 260; Blynk.virtualWrite(V2, "add", 6, "It's Gonna Be Alright - Gerry & Pacemakers", 145); i++; c = 145; Blynk.virtualWrite(V2, "toevoegen", 7, "My Way - Tom Jones", 193); i++; c = 193; Blynk.virtualWrite(V2, "toevoegen", 8, "San Bernadino - Christie", 149); i++; c = 149; Blynk.virtualWrite(V2, "toevoegen", 9, "The Twist - Chubby Checker", 169); i++; c = 169;
vertraging (1000);
} void process_selection (int selectie) { // ontleden 3-cijferige selectie (bijv. 178) tot 3 knoppen: int btn1 = int (selectie/100); //eerste knop Serial.println ("\nBtn1: "); Serieel.println(btn1); if (btn1 == 1 || btn1 == 2) //eerste knop moet 1 of 2 zijn - doe anders de reset { push_button(btn1); selectie = selectie - (btn1 * 100); int btn2 = int(selectie/10); //tweede knop Serial.println ("\nBtn2: "); Serieel.println(btn2); drukknop (btn2); selectie = selectie - (btn2 * 10); int btn3 = int(selectie); //derde knop Serial.println ("\nBtn3: "); Serieel.println(btn3); drukknop (btn3); } else { drukknop (11); // reset-knop} // reset servoposities als alles klaar is vertraging (2000); mijnservo1.write(140); mijnservo2.write(90); myservo3.write (90);} void push_button (int btn) {//dit wordt 3 keer genoemd voor elke selectie //de daadwerkelijke druk op de knop wordt gedaan na elke knop (vind 'actuele druk op de knop') schakelaar (btn) { case 1: set_servo_angles (134, 136); //1 pauze; geval 2: set_servo_angles (128, 110); //2 pauze; geval 3: set_servo_angles (112, 88); //3 pauze; geval 4: set_servo_angles (89, 68); //4 pauze; geval 5: set_servo_angles (62, 55); //5 pauze; geval 6: set_servo_angles (172, 131); //6 pauze; geval 7: set_servo_angles (163, 106); //7 pauze; geval 8: set_servo_angles (140, 83); //8 pauze; geval 9: set_servo_angles (104, 58); //9 pauze; geval 0: set_servo_angles (75, 36); //0 pauze; geval 11: set_servo_angles (36, 30); //11 pauze; } // eindschakelaar } void set_servo_angles (int pos2, int pos3) { myservo2.write (pos2); mijnservo3.write(pos3); // Servoposities gereed - voer de daadwerkelijke druk op de knop uit: vertraging (500); mijnservo1.write(60); // vertraging omlaag (500); mijnservo1.write(140); // opwaartse vertraging (500); } void loop() { Blynk.run(); }
Stap 6: Toekomstige stappen
Videowidget - live video- en audiostream naar Blynk-app (reeds getest - werkend)
Webhook-widget - afspeellijst on-demand downloaden vanuit de cloud (reeds getest - werkt)
Tabelwidget - enkele kleine verbeteringen aan de widget zijn welkom (suggesties verzonden naar Blynk-ontwikkelaars)
Aanbevolen:
Hoe maak je een Ford audiofiele stereoradio om mp3-bestanden af te spelen: 7 stappen
![Hoe maak je een Ford audiofiele stereoradio om mp3-bestanden af te spelen: 7 stappen Hoe maak je een Ford audiofiele stereoradio om mp3-bestanden af te spelen: 7 stappen](https://i.howwhatproduce.com/images/004/image-11058-j.webp)
Hoe maak je een Ford audiofiele stereoradio Speel mp3-bestanden af .: Deze instructable geeft je een paar belangrijke details over hoe je kunt voldoen aan de MP3 CD-R-compatibiliteitsvereisten van een Ford audiofiel (en waarschijnlijk een Mach 300, Shaker 500 en Shaker 1000 ) fabrieksstereo zodat u kunt branden en genieten van MP3-bestanden op een cd
Spelen met de hand-wandklok: 14 stappen
![Spelen met de hand-wandklok: 14 stappen Spelen met de hand-wandklok: 14 stappen](https://i.howwhatproduce.com/images/006/image-16735-j.webp)
Spelen met hand-wandklok: Elektronische hand-wandklok (commerciële markeringskwarts) is tegenwoordig niets bijzonders. Het kan in veel winkels worden gekocht. In sommige zijn ze extreem goedkoop; met een prijs van ongeveer €2 (50CZK). Die lage prijs kan een motivatie zijn om de
Spelen met de tijd: 6 stappen
![Spelen met de tijd: 6 stappen Spelen met de tijd: 6 stappen](https://i.howwhatproduce.com/images/011/image-32729-j.webp)
Spelen met de tijd: Het oorspronkelijke idee van dit project was: maak een cadeau, maak een origineel elektronisch circuit, gebruik een oude telefoon, geef een "steampunk" verschijning
NDS-spellen op uw pc spelen met DeSmuME: 4 stappen
![NDS-spellen op uw pc spelen met DeSmuME: 4 stappen NDS-spellen op uw pc spelen met DeSmuME: 4 stappen](https://i.howwhatproduce.com/images/012/image-33249-j.webp)
NDS-spellen op uw pc spelen met DeSmuME: Howdy! Ik ben hier om mensen te leren hoe ze programma's (voornamelijk emulators) op hun computers kunnen gebruiken. Vandaag laat ik je zien hoe je een NDS-emulator genaamd DeSmuME gebruikt. Vraag me niet waarom het zo heet, ik weet het niet. Google het als je geïnteresseerd bent! Laten we beginnen
Java installeren om Minecraft 1.12.2 te spelen: 4 stappen
![Java installeren om Minecraft 1.12.2 te spelen: 4 stappen Java installeren om Minecraft 1.12.2 te spelen: 4 stappen](https://i.howwhatproduce.com/images/004/image-10809-4-j.webp)
Hoe Java te installeren om Minecraft 1.12.2 te spelen: We weten allemaal dat minecraft een spel is dat is ontwikkeld op basis van Java, zoals het is geschreven in het logo van versie 1.12.2, Minecraft Java Edition. Op die manier is het noodzakelijk om Java geïnstalleerd en bijgewerkt te hebben om het spel te spelen, als je problemen hebt met Java