Tartalomjegyzék:

PlotClock, WeMos és Blynk Vintage AMI Jukebox lejátszása: 6 lépés (képekkel)
PlotClock, WeMos és Blynk Vintage AMI Jukebox lejátszása: 6 lépés (képekkel)

Videó: PlotClock, WeMos és Blynk Vintage AMI Jukebox lejátszása: 6 lépés (képekkel)

Videó: PlotClock, WeMos és Blynk Vintage AMI Jukebox lejátszása: 6 lépés (képekkel)
Videó: Plotclock 2024, Július
Anonim
PlotClock, WeMos és Blynk Vintage AMI Jukeboxot játszik
PlotClock, WeMos és Blynk Vintage AMI Jukeboxot játszik
PlotClock, WeMos és Blynk Vintage AMI Jukeboxot játszik
PlotClock, WeMos és Blynk Vintage AMI Jukeboxot játszik

Négy technikai újítás tette lehetővé ezt a projektet: az 1977 -es Rowe AMI Jukebox, a PlotClock robotkar készlet, a WeMos/ESP 8266 mikrokontroller és a Blynk App/Cloud szolgáltatás.

MEGJEGYZÉS: Ha nincs kéznél a Jukebox - ne hagyja abba az olvasást! Ez a projekt könnyen alkalmazható az emberi ujjak által vezérelt különféle dolgok irányítására. Egy példa lehet egy hagyományos ujjlenyomatot játszó robotujj - talán ez az utasítás tőled származik!

A 40 éves Rowe AMI R-81 Jukeboxom még mindig jól működik, ha a 60-as, 70-es és 80-as évekből származó vintage bakelitlemezeket játszik le. A 160 kg-nál (360 font) nagyobb súlyú ez a lejátszó nem annyira hordozható, mint a modern mp-lejátszók, de az internet korában élve mostantól lehetőség van zsebében hordani a zenegépet és a 200 bakelit lemezt-gyakorlatilag természetesen! És akár saját lejátszási listáit is használhatja a mikrokontrollerben!

Az Amazing PlotClock robotot eredetileg úgy tervezték, hogy az aktuális időt jelenítse meg úgy, hogy időszámjegyeket rajzol a törölhető táblára. A PlotClock alkalmazkodásom az, hogy robotujjaként használom a Jukebox dalválasztó gombjainak megnyomására.

A Plotclock ujját 3 szervó hajtja, amelyeket a WeMos mikrokontroller vezérel. Ez a csoda (majdnem) Arduino Uno kompatibilis és WiFi képességekkel rendelkezik, így lehetőség van a jukebox vezeték nélküli vezérlésére a világ bármely pontjáról.

A krém a tortán a hihetetlenül könnyen használható Blynk App -ből és a Blynk Cloud Server -ből származik, amely szép mobiltelefon/tablet felhasználói felületet biztosít, teljes mobilitással.

1. lépés: Hardver

Hardver
Hardver
Hardver
Hardver

Jukebox

A projekt zenegép az 1977-es Rowe AMI R-81. Bármely régi, választógombokkal ellátott jukebox megteszi - a PlotClock néhány korlátozását figyelembe véve: A PlotClock eredeti karja körülbelül 5 x 12 cm -es területet fedhet le, így a zenegép -gomb elrendezésének (az összes választógombot tartalmazó területnek) körülbelül ekkoranek kell lennie. A régebbi zenegépek gombjai több nyomóerőt igényelhetnek, mint a PlotClock szervók.

Az AMI R-81 rendelkezik egy memóriával, amelyben mind a 200 kiválasztást tárolhatja. A kiválasztásokat a lemezmagazinban tárolt sorrend alapján játsszák le (körhinta típusú), nem pedig a kiválasztás sorrendjében. Egy lemez több kiválasztását csak egyszer játssza le.

PlotClock

A Plotclock a kereskedelemben kapható barkácskészlet, amely mechanikus alkatrészeket, 3 szervót, Arduino Uno R3, Arduino bővítőlapot és USB -kábelt tartalmaz. 30 USD körül ez jó vétel (pl. Banggood.com). Az Arduino, a hosszabbító kártya és az USB -kábel nem használható ehhez a projekthez.

Számos jó internetes/YouTube oktatóanyag létezik a Plotclock összeállításához - pl. ez: PlotClock utasítások

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

WeMos

A WeMos D1 R2 egy ESP8266 alapú mikrovezérlő. Az Arduino IDE segítségével programozható, és WiFi képességekkel rendelkezik, így tökéletes hardver ehhez a projekthez.

2. lépés: Kalibrálás

Kalibráció
Kalibráció

A kalibrálás az a feladat, amellyel pontos szögértékeket találhat a szervo szögekhez (0 és 180 fok között), amelyek megfelelnek a kiválasztó gombok fizikai pozícióinak. A szögértékeket trigonometria arithemitics vagy CAD szoftver segítségével lehet megtalálni. Hozzávetőleges értékeket kaptam a barátomtól, aki tudta, hogyan kell használni az AutoCad -ot.

A végső kalibrálást azonban próba és hiba útján kellett elvégezni. A papírlapra rajzolt gombkiosztás használata Lehetséges az „asztali tesztelés” a helyes szögértékek megtalálásához.

3. lépés: Összeszerelés

Összeszerelés
Összeszerelés
Összeszerelés
Összeszerelés
Összeszerelés
Összeszerelés
Összeszerelés
Összeszerelés

Vezeték

A Plotclock szervókról a Wemosra való csatlakozás 5 vezetékkel történik: +5, GND, D4, D5 és D6. Részletek a képeken és a kódban.

Telepítés a Jukeboxra

Nem akartam csavarokat csinálni a 40 éves, nagy sérülések nélkül túlélő zenegéphez. Lágy gumi tömítőanyaggal rögzítettem egy darab alumínium szöglistát a zenegép konzol alatt. A gumi tömítőanyag szorosan tart, és eltávolítható nyomok nélkül. A PlotClock testének két kis alumínium szögre volt szüksége, hogy segítsen rögzíteni az akrillemezre. Az akrillemez ezután két rugós kapcsokkal illeszkedik a szöglistához, így lehetőség van a függőleges és vízszintes végső beállításokra.

4. lépés: Blynk

Blynk
Blynk

A Blynk egy ingyenes alkalmazás többféle mikrokontroller távoli vezérléséhez. A Blynk segítségével könnyen létrehozhat egy szép felhasználói felületet többféle kütyü használatával. Ehhez a projekthez csak egy widgetre van szükség: a Table widgetre.

5. lépés: Szoftver

Blynk App

Az alkalmazás oldalán nincs kódolás. Az alkalmazás (Blynk) és a mikrokontroller (WeMos) közötti „beszélgetést” a „Virtuális csapok” kezelik, amelyek lényegében a kettő közötti információ küldésének és fogadásának csatornái. A virtuális tű például a Blynk alkalmazásból a kiválasztott dal sorszámának elküldésére szolgál a WeMos -ra, a többit pedig a Wemos kezeli, pl. parancsokat küld a Plotclock szervóknak.

WeMos kód

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

Táblázat widget itt: V2 ********************************************** ****************/ #define BLYNK_PRINT Serial #include #include #include char auth = "-SAJÁT KÓDJA" "; // Jukebox projekt char ssid = "-SSOID SSID--"; char pass = "-WIFI-JELSZAVA-"; int c [50]; // Tömb Jukebox rekord pozíciókhoz (100-299) Servo myservo1; // lift Servo myservo2; // bal kar Servo myservo3; // jobb kar int pos1 = 0; int pos2 = 0; int pos3 = 0; int btn = 0; void setup () {myservo1.attach (2); // D4 pin, lift myservo2.attach (14); // D5 pin, bal myservo3.attach (12); // pin D6, jobbra myservo1.write (140); myservo2.write (90); myservo3.write (90); Sorozat.kezdet (115200); Blynk.begin (auth, ssid, pass); // Értesítés azonnal indításkor // String msg = "Jukebox WeMos csatlakoztatva:"; //Blynk.notify(msg + ssid); // táblázat törlése az elején Blynk.virtualWrite (V2, "clr"); populateTable (); } BLYNK_WRITE (V2) // Parancsok fogadása a V2 táblázat widgetből {String cmd = param [0].asStr (); // param [0] = "select" vagy "deselect", param [1] = sor Serial.print ("\ nTáblázat: BLYNK_WRITE (V2) cmd:"); Soros.nyomtatás (cmd); int kiválasztás = c [param [1].asInt ()]; // A kiválasztott sorszám paraméterben van [1] Serial.println ("\ nSelection:"); Serial.println (kiválasztás); process_selection (kiválasztás); } void populateTable () {int i = 0; Serial.println ("Kitöltő táblázat …"); Blynk.virtualWrite (V2, "add", 0, "Be My Baby - The Supremes", 112); c = 112; Blynk.virtualWrite (V2, "add", 1, "Number One - Jerry Williams", 176); i ++; c = 176; Blynk.virtualWrite (V2, "add", 2, "All My Loving - The Beatles", 184); i ++; c = 184; Blynk.virtualWrite (V2, "add", 3, "In the Summertime - Mungo Jerry", 236); i ++; c = 236; Blynk.virtualWrite (V2, "add", 4, "Black Cloud - Chubby Checker", 155); i ++; c = 155; Blynk.virtualWrite (V2, "add", 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, "add", 7, "My Way - Tom Jones", 193); i ++; c = 193; Blynk.virtualWrite (V2, "add", 8, "San Bernadino - Christie", 149); i ++; c = 149; Blynk.virtualWrite (V2, "add", 9, "The Twist - Chubby Checker", 169); i ++; c = 169;

késleltetés (1000);

} void process_selection (int kiválasztás) {// 3 számjegyű kiválasztás elemzése (pl. 178)-3 gomb: int btn1 = int (kiválasztás/100); // első gomb Serial.println ("\ nBtn1:"); Soros.println (btn1); if (btn1 == 1 || btn1 == 2) // az első gombnak 1 -nek vagy 2 -nek kell lennie - ellenkező esetben hajtsa végre a visszaállítást {push_button (btn1); kiválasztás = kiválasztás - (btn1 * 100); int btn2 = int (kiválasztás/10); // második gomb Serial.println ("\ nBtn2:"); Soros.println (btn2); nyomógomb (btn2); kiválasztás = kiválasztás - (btn2 * 10); int btn3 = int (kiválasztás); // harmadik gomb Serial.println ("\ nBtn3:"); Soros.println (btn3); nyomógomb (btn3); } else {push_button (11); // reset gomb} // szervo pozíciók visszaállítása, ha minden kész késleltetés (2000); myservo1.write (140); myservo2.write (90); myservo3.write (90);} void push_button (int btn) {// ezt háromszor hívják meg minden kiválasztásnál // a tényleges gombnyomás minden gomb után történik (keresse meg a „tényleges gombnyomást”) kapcsoló (btn) {1. eset: set_servo_angles (134, 136); // 1 szünet; 2. eset: set_servo_angles (128, 110); // 2 szünet; 3. eset: set_servo_angles (112, 88); // 3 szünet; 4. eset: set_servo_angles (89, 68); // 4 szünet; 5. eset: set_servo_angles (62, 55); // 5 szünet; 6. eset: set_servo_angles (172, 131); // 6 szünet; 7. eset: set_servo_angles (163, 106); // 7 szünet; 8. eset: set_servo_angles (140, 83); // 8 szünet; 9. eset: set_servo_angles (104, 58); // 9 szünet; 0. eset: set_servo_angles (75, 36); // 0 szünet; 11. eset: set_servo_angles (36, 30); // 11 szünet; } // végkapcsoló} void set_servo_angles (int pos2, int pos3) {myservo2.write (pos2); myservo3.write (pos3); // Szervo pozíciók kész - hajtsa végre a tényleges gombnyomást: delay (500); myservo1.write (60); // le késleltetés (500); myservo1.write (140); // késleltetés (500); } void loop () {Blynk.run (); }

6. lépés: Jövőbeni lépések

Videó widget - élő video- és hangfolyam a Blynk App alkalmazásba (már tesztelt - működik)

Webhook widget - lejátszási lista igény szerinti letöltése a felhőből (már tesztelt - működik)

Táblázat widget - néhány apró fejlesztést szívesen fogadunk (a javaslatokat elküldtük a Blynk fejlesztőknek)

Ajánlott: