Daftar Isi:

PlotClock, WeMos dan Blynk Memainkan Vintage AMI Jukebox: 6 Langkah (dengan Gambar)
PlotClock, WeMos dan Blynk Memainkan Vintage AMI Jukebox: 6 Langkah (dengan Gambar)

Video: PlotClock, WeMos dan Blynk Memainkan Vintage AMI Jukebox: 6 Langkah (dengan Gambar)

Video: PlotClock, WeMos dan Blynk Memainkan Vintage AMI Jukebox: 6 Langkah (dengan Gambar)
Video: How to install the new Blynk app | WeMos D1 ESP8266 with Blynk app | how to light led 2024, November
Anonim
PlotClock, WeMos dan Blynk Memainkan Vintage AMI Jukebox
PlotClock, WeMos dan Blynk Memainkan Vintage AMI Jukebox
PlotClock, WeMos dan Blynk Memainkan Vintage AMI Jukebox
PlotClock, WeMos dan Blynk Memainkan Vintage AMI Jukebox

Empat inovasi teknis memungkinkan proyek ini: The 1977 Rowe AMI Jukebox, kit lengan robot PlotClock, mikrokontroler WeMos/ESP 8266, dan layanan Blynk App/Cloud.

CATATAN: Jika Anda tidak memiliki Jukebox – jangan berhenti membaca! Proyek ini dapat dengan mudah diadopsi untuk mengendalikan berbagai hal yang dikendalikan oleh jari manusia. Salah satu contohnya adalah jari robot yang memainkan Gambang tradisional – mungkin instruksi itu datang dari Anda!

Rowe AMI R-81 Jukebox saya yang berusia 40 tahun masih berfungsi dengan baik memainkan single vinyl vintage dari 60-an, 70-an, dan 80-an. Dengan berat lebih dari 160 kg (360 lbs) pemutar ini tidak begitu portabel seperti pemutar mp modern, tetapi hidup di era internet, sekarang mungkin untuk membawa jukebox dan 200 piringan hitam di saku Anda – tentu saja! Dan Anda bahkan dapat menggunakan daftar putar Anda sendiri yang disimpan di mikrokontroler!

Robot PlotClock yang menakjubkan pada awalnya dirancang untuk menunjukkan waktu saat ini dengan menggambar angka waktu di papan yang dapat dihapus. Adaptasi saya untuk PlotClock adalah menggunakannya sebagai jari robot untuk menekan tombol pemilihan lagu Jukebox.

"Jari" Plotclock digerakkan oleh 3 servos yang dikendalikan oleh mikrokontroler WeMos. Keajaiban ini (hampir) kompatibel dengan Arduino Uno dan memiliki kemampuan WiFi, sehingga memungkinkan untuk mengontrol jukebox secara nirkabel dari mana saja di dunia.

Krim pada kue berasal dari Aplikasi Blynk yang luar biasa mudah digunakan dan Server Blynk Cloud mereka memberikan antarmuka pengguna ponsel / tablet yang bagus dengan mobilitas penuh.

Langkah 1: Perangkat Keras

Perangkat keras
Perangkat keras
Perangkat keras
Perangkat keras

Jukebox

Proyek jukebox adalah 1977 Rowe AMI R-81. Jukebox lama apa pun dengan tombol pilihan dapat digunakan – dengan memperhatikan beberapa batasan oleh PlotClock: Desain lengan asli PlotClock dapat mencakup area sekitar 5 x 12 cm sehingga tata letak tombol jukebox (area termasuk semua tombol pilihan) harus seukuran itu. Tombol-tombol jukebox yang lebih tua mungkin membutuhkan lebih banyak daya dorong daripada yang dapat disediakan oleh servo PlotClock.

AMI R-81 memiliki memori yang dapat menyimpan 200 pilihan. Pilihan dimainkan berdasarkan urutan penyimpanannya di majalah rekaman (tipe carousel), bukan urutan pemilihannya. Pilihan ganda untuk satu rekaman hanya dimainkan sekali.

PlotJam

Plotclock adalah kit DIY yang tersedia secara komersial termasuk suku cadang mekanis, 3 servos, Arduino Uno R3, papan Ekstensi Arduino, dan kabel USB. Untuk sekitar 30 USD ini adalah pembelian yang bagus (mis. Banggood.com). Arduino, papan ekstensi dan kabel USB tidak digunakan untuk proyek ini.

Ada beberapa tutorial internet/YouTube yang bagus untuk membuat Plotclock – mis. ini: instruksi PlotClock

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

WeMos

WeMos D1 R2 adalah mikrokontroler berbasis ESP8266. Ini dapat diprogram menggunakan Arduino IDE dan memiliki kemampuan WiFi sehingga merupakan perangkat keras yang sempurna untuk proyek ini.

Langkah 2: Kalibrasi

Kalibrasi
Kalibrasi

Kalibrasi adalah tugas untuk menemukan nilai sudut yang akurat untuk sudut servo (antara 0 hingga 180 derajat) agar sesuai dengan posisi fisik untuk tombol pilihan. Nilai sudut dapat ditemukan dengan aritmatika trigonometri atau menggunakan perangkat lunak CAD. Saya mendapat nilai perkiraan dari teman saya yang tahu cara menggunakan AutoCad.

Namun, kalibrasi akhir harus dilakukan dengan coba-coba. Menggunakan tata letak tombol yang digambar pada selembar kertas Anda dapat melakukan "pengujian desktop" untuk menemukan nilai sudut yang benar.

Langkah 3: Perakitan

perakitan
perakitan
perakitan
perakitan
perakitan
perakitan
perakitan
perakitan

Pengkabelan

Koneksi dari servo Plotclock ke Wemos dilakukan dengan 5 kabel: +5, GND, D4, D5 dan D6. Detail lihat di gambar dan kode.

Menginstal di Jukebox

Saya tidak ingin membuat lubang sekrup pada jukebox berusia 40 tahun yang telah begitu lama bertahan tanpa kerusakan besar. Menggunakan sealant karet lunak saya memperbaiki sepotong daftar sudut aluminium di bawah konsol jukebox. Sealant karet membuat pegangan yang kuat dan dapat dilepas tanpa meninggalkan bekas. Tubuh PlotClock membutuhkan dua sudut aluminium kecil untuk membantu memasangnya di pelat akrilik. Pelat akrilik kemudian dipasang ke daftar sudut dengan dua klip pegas yang memungkinkan untuk melakukan penyesuaian akhir secara vertikal dan horizontal.

Langkah 4: Blynk

Blynk
Blynk

Blynk adalah aplikasi gratis untuk mengontrol beberapa jenis mikrokontroler dari jarak jauh. Dengan Blynk Anda dapat dengan mudah membangun antarmuka pengguna yang bagus menggunakan beberapa jenis widget. Hanya ada satu widget yang dibutuhkan untuk proyek ini: widget Tabel.

Langkah 5: Perangkat Lunak

Aplikasi Blynk

Tidak ada pengkodean di sisi aplikasi. "Percakapan" antara aplikasi (Blynk) dan mikrokontroler (WeMos) ditangani oleh "pin virtual" yang pada dasarnya adalah saluran untuk mengirim dan menerima informasi antara keduanya. Pin virtual misalnya digunakan untuk mengirim nomor baris lagu yang dipilih dari aplikasi Blynk ke WeMos, dan Wemos menangani sisanya, mis. mengirimkan perintah ke servos Plotclock.

Kode WeMos

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

Widget tabel di V2 ********************************************** ****************/ #define BLYNK_PRINT Serial #include #include #include char auth = "--KODE AUTH ANDA--"; //Jukebox project char ssid = "--SSID ANDA--"; char pass = "--PASSWORD WIFI ANDA--"; int c[50]; //Array untuk posisi record Jukebox (100-299) Servo myservo1; //mengangkat Servo myservo2; //lengan kiri Servo myservo3; //lengan kanan int pos1 = 0; int pos2 = 0; int pos3 = 0; int btn=0; void setup() { myservo1.attach(2); // pin D4, angkat myservo2.attach(14); // pin D5, kiri myservo3.attach(12); // pin D6, kanan myservo1.write(140); myservo2.write(90); myservo3.write(90); Serial.begin(115200); Blynk.begin(auth, ssid, pass); // Segera beri tahu saat startup //String msg = "Jukebox WeMos terhubung ke: "; //Blynk.notify(msg + ssid); //hapus tabel saat start Blynk.virtualWrite(V2, "clr"); populateTable(); } BLYNK_WRITE(V2) //Menerima perintah dari widget Tabel V2 { String cmd = param[0].asStr(); //param[0]="pilih" atau "batalkan pilihan", param[1]=baris Serial.print("\nTabel: BLYNK_WRITE(V2) cmd: "); Serial.print(cmd); int pilihan = c[param[1].asInt()]; //Nomor baris yang dipilih ada di param[1] Serial.println("\nPilihan: "); Serial.println(pilihan); process_selection(pilihan); } void populateTable() { int i = 0; Serial.println("Mengisi tabel…"); Blynk.virtualWrite(V2, "tambah", 0, "Be My Baby - The Supremes", 112); c = 112; Blynk.virtualWrite(V2, "tambah", 1, "Nomor Satu - Jerry Williams", 176); saya++; c = 176; Blynk.virtualWrite(V2, "tambah", 2, "All My Loving - The Beatles", 184); saya++; c = 184; Blynk.virtualWrite(V2, "tambah", 3, "Di Musim Panas - Mungo Jerry", 236); saya++; c = 236; Blynk.virtualWrite(V2, "tambah", 4, "Awan Hitam - Pemeriksa Gemuk", 155); saya++; c = 155; Blynk.virtualWrite(V2, "tambah", 5, "Mamy Blue - Pop-Tops", 260); saya++; c = 260; Blynk.virtualWrite(V2, "tambah", 6, "Ini Akan Baik-Baik Saja - Gerry & Alat Pacu Jantung", 145); saya++; c = 145; Blynk.virtualWrite(V2, "tambah", 7, "Cara Saya - Tom Jones", 193); saya++; c = 193; Blynk.virtualWrite(V2, "tambah", 8, "San Bernadino - Christie", 149); saya++; c = 149; Blynk.virtualWrite(V2, "tambah", 9, "The Twist - Chubby Checker", 169); saya++; c = 169;

penundaan (1000);

} void process_selection (pilihan int) { //parse pemilihan 3 digit (mis. 178) ke 3 tombol: int btn1 = int(selection/100); //tombol pertama Serial.println("\nBtn1: "); Serial.println(btn1); if (btn1 == 1 || btn1 == 2) //tombol pertama harus 1 atau 2 - jika tidak, lakukan reset { push_button(btn1); seleksi = seleksi - (btn1 * 100); int btn2 = int(pilihan/10); //tombol kedua Serial.println("\nBtn2: "); Serial.println(btn2); tekan_button(btn2); seleksi = seleksi - (btn2 * 10); int btn3 = int(pilihan); //tombol ketiga Serial.println("\nBtn3: "); Serial.println(btn3); tekan_button(btn3); } else { tombol_tekan(11); //tombol reset } //reset posisi servo saat semua selesai delay(2000); myservo1.write(140); myservo2.write(90); myservo3.write(90);} void push_button(int btn) { //ini dipanggil 3 kali untuk setiap pilihan //tekanan tombol aktual dilakukan setelah setiap tombol (temukan 'tekan tombol aktual') sakelar (btn) { case 1: set_servo_angles (134, 136); // istirahat; kasus 2: set_servo_angles (128, 110); //2 istirahat; kasus 3: set_servo_angles (112, 88); // istirahat; kasus 4: set_servo_angles (89, 68); // istirahat; kasus 5: set_servo_angles (62, 55); // istirahat; kasus 6: set_servo_angles (172, 131); // istirahat; kasus 7: set_servo_angles (163, 106); // istirahat; kasus 8: set_servo_angles (140, 83); // istirahat; kasus 9: set_servo_angles (104, 58); // istirahat; kasus 0: set_servo_angles (75, 36); //0 istirahat; kasus 11: set_servo_angles (36, 30); // istirahat; } //akhiri sakelar } void set_servo_angles(int pos2, int pos3) { myservo2.write(pos2); myservo3.write(pos3); //Posisi servo siap - lakukan penekanan tombol yang sebenarnya: delay(500); myservo1.write(60); //penundaan turun(500); myservo1.write(140); //penundaan naik(500); } void loop() { Blynk.run(); }

Langkah 6: Langkah Masa Depan

Widget video - streaming video & audio langsung ke Aplikasi Blynk (sudah diuji - berfungsi)

Widget webhook - unduhan daftar putar sesuai permintaan dari cloud (sudah diuji - berfungsi)

Widget tabel - beberapa perbaikan kecil pada widget diterima (saran dikirim ke pengembang Blynk)

Direkomendasikan: