Isi kandungan:
- Langkah 1: Perkakasan
- Langkah 2: Penentukuran
- Langkah 3: Perhimpunan
- Langkah 4: Blynk
- Langkah 5: Perisian
- Langkah 6: Langkah Masa Depan
Video: PlotClock, WeMos dan Blynk Memainkan Jukebox AMI Vintage: 6 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:06
Empat inovasi teknikal menjadikan projek ini dapat dilaksanakan: Rowe AMI Jukebox 1977, kit lengan robot PlotClock, mikrokontroler WeMos / ESP 8266 dan perkhidmatan Apl / Awan Blynk.
CATATAN: Sekiranya anda tidak mempunyai Jukebox - jangan berhenti membaca! Projek ini dapat diguna pakai dengan mudah untuk mengawal pelbagai perkara yang dikendalikan oleh jari manusia. Salah satu contohnya ialah jari robot yang memainkan Xylophone tradisional - mungkin arahan itu berasal dari anda!
Rowe AMI R-81 Jukebox saya yang berusia 40 tahun masih berfungsi dengan baik bermain single vinil vintaj dari tahun 60-an, 70-an dan 80-an. Berat lebih dari 160 kg (360 lbs) pemain ini tidak begitu mudah alih dengan pemain mp moden, tetapi hidup di era internet, sekarang mungkin untuk membawa rakaman jukebox dan 200 vinil di poket anda - tentu saja! Anda juga boleh menggunakan senarai main anda sendiri yang tersimpan dalam mikrokontroler!
Robot Amazing PlotClock pada asalnya direka untuk menunjukkan waktu semasa dengan melukis digit masa di papan yang boleh dihapus. Adaptasi saya untuk PlotClock adalah menggunakannya sebagai jari robot untuk menekan butang pilihan lagu Jukebox.
"Jari" Plotclock digerakkan oleh 3 servos yang dikendalikan oleh mikrokontroler WeMos. Keajaiban ini hampir (hampir) Arduino Uno serasi dan mempunyai keupayaan WiFi, jadi mungkin untuk mengendalikan jukebox secara wayarles dari mana saja di dunia.
Krim pada kek berasal dari Aplikasi Blynk yang mudah digunakan dan Pelayan Awan Blynk mereka memberikan antara muka pengguna telefon bimbit / tablet yang bagus dengan mobiliti penuh.
Langkah 1: Perkakasan
Jukebox
Project jukebox ialah 1977 Rowe AMI R-81. Mana-mana jukebox lama dengan butang pilihan akan dilakukan - mencatatkan beberapa batasan oleh PlotClock: Reka bentuk lengan asli PlotClock dapat meliputi kawasan sekitar 5 x 12 cm sehingga susun atur butang jukebox (kawasan termasuk semua butang pilihan) mestilah seukuran itu. Butang jukebox yang lebih tua mungkin memerlukan lebih banyak daya tolak daripada yang dapat diberikan oleh servo PlotClock.
AMI R-81 mempunyai memori di mana ia dapat menyimpan semua 200 pilihan. Pilihan dimainkan berdasarkan urutan ia disimpan di majalah rakaman (jenis karusel), bukan berdasarkan urutan yang mereka pilih. Pelbagai pilihan untuk satu rekod dimainkan sekali sahaja.
PlotClock
Plotclock adalah kit DIY yang tersedia secara komersial termasuk bahagian mekanikal, 3 servos, Arduino Uno R3, Arduino Extension board dan kabel USB. Dengan harga sekitar 30 USD ini adalah pembelian yang bagus (mis. Banggood.com). Arduino, papan sambungan dan kabel USB tidak digunakan untuk projek ini.
Terdapat beberapa tutorial internet / YouTube yang bagus untuk menyusun Plotclock - mis. ini: Arahan PlotClock
static1.squarespace.com/static/52cb189ee4b012ff9269fa8e/t/5526946be4b0ed8e0b3cd296/1428591723698/plotclock_final_instructions.pdf
WeMos
WeMos D1 R2 adalah mikrokontroler berasaskan ESP8266. Ia dapat diprogramkan menggunakan Arduino IDE dan mempunyai kemampuan WiFi sehingga merupakan perkakasan yang sempurna untuk projek ini.
Langkah 2: Penentukuran
Kalibrasi adalah tugas untuk mencari nilai sudut yang tepat untuk sudut servo (antara 0 hingga 180 darjah) untuk menyesuaikan kedudukan fizikal untuk butang pilihan. Nilai sudut boleh didapati dengan aritemit trigonometri atau menggunakan perisian CAD. Saya mendapat nilai anggaran dari rakan saya yang tahu bagaimana menggunakan AutoCad.
Walau bagaimanapun, penentukuran terakhir harus dibuat berdasarkan percubaan dan kesilapan. Menggunakan susun atur butang yang dilukis pada sehelai kertas Adalah mungkin untuk melakukan "pengujian desktop" untuk mencari nilai sudut yang betul.
Langkah 3: Perhimpunan
Pendawaian
Sambungan dari servos Plotclock ke Wemos dilakukan dengan 5 wayar: +5, GND, D4, D5 dan D6. Lihat perincian dalam gambar dan kod.
Memasang pada Jukebox
Saya tidak mahu membuat lubang skru pada jukebox berusia 40 tahun yang telah lama bertahan tanpa kerosakan besar. Dengan menggunakan sealant getah lembut saya menetapkan senarai sudut aluminium di bawah konsol jukebox. Sealant getah membuat penahan rapat dan boleh dikeluarkan tanpa meninggalkan bekas. Badan PlotClock memerlukan dua sudut aluminium kecil untuk membantu memasangnya pada plat akrilik. Plat akrilik kemudian dipasang ke senarai sudut dengan dua klip pegas yang dimuatkan sehingga memungkinkan untuk membuat penyesuaian akhir secara menegak dan mendatar.
Langkah 4: Blynk
Blynk adalah aplikasi percuma untuk mengawal beberapa jenis mikrokontroler dari jarak jauh. Dengan Blynk anda boleh membina antara muka pengguna yang bagus dengan menggunakan beberapa jenis widget. Hanya ada satu widget yang diperlukan untuk projek ini: widget Table.
Langkah 5: Perisian
Aplikasi Blynk
Tidak ada pengekodan di bahagian aplikasi. "Perbualan" antara aplikasi (Blynk) dan mikrokontroler (WeMos) dikendalikan oleh "Pin maya" yang pada asasnya merupakan saluran untuk menghantar dan menerima maklumat antara keduanya. Pin maya misalnya digunakan untuk mengirim nombor baris lagu terpilih dari aplikasi Blynk ke WeMos, dan Wemos menangani selebihnya, iaitu. menghantar arahan ke servo Plotclock.
Kod WeMos
/**************************************************************
Widget jadual di V2 ********************************************** **************** / #tentukan BLYNK_PRINT Serial #include #include #include char auth = "- KOD AUTH ANDA--"; // Jukebox projek char ssid = "- SSID ANDA--"; char pass = "--KATA KATA WIFI ANDA--"; int c [50]; // Array untuk kedudukan rekod 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; batal persediaan () {myservo1.attach (2); // pin D4, angkat myservo2.attach (14); // pin D5, kiri myservo3.attach (12); // pin D6, myservo1.write kanan (140); myservo2.write (90); myservo3.write (90); Serial.begin (115200); Blynk.begin (auth, ssid, pass); // Beritahu segera pada permulaan // String msg = "Jukebox WeMos disambungkan ke:"; //Blynk.notify(msg + ssid); // kosongkan jadual pada permulaan Blynk.virtualWrite (V2, "clr"); populateTable (); } BLYNK_WRITE (V2) // Terima arahan dari widget Jadual V2 {String cmd = param [0].asStr (); // param [0] = "pilih" atau "nyahpilih", param [1] = baris Serial.print ("\ nJadual: BLYNK_WRITE (V2) cmd:"); Cetakan bersiri (cmd); pemilihan int = c [param [1].asInt ()]; // Nombor baris yang dipilih adalah dalam param [1] Serial.println ("\ nPilihan:"); Serial.println (pilihan); proses_pilihan (pemilihan); } batal populateTable () {int i = 0; Serial.println ("Mengisi jadual …"); Blynk.virtualWrite (V2, "add", 0, "Be My Baby - The Supremes", 112); c = 112; Blynk.virtualWrite (V2, "add", 1, "Number One - Jerry Williams", 176); saya ++; c = 176; Blynk.virtualWrite (V2, "add", 2, "All My Loving - The Beatles", 184); saya ++; c = 184; Blynk.virtualWrite (V2, "add", 3, "In the Summertime - Mungo Jerry", 236); saya ++; c = 236; Blynk.virtualWrite (V2, "add", 4, "Black Cloud - Chubby Checker", 155); saya ++; c = 155; Blynk.virtualWrite (V2, "add", 5, "Mamy Blue - Pop-Tops", 260); saya ++; c = 260; Blynk.virtualWrite (V2, "add", 6, "It's Be Be Alright - Gerry & Pacemakers", 145); saya ++; c = 145; Blynk.virtualWrite (V2, "add", 7, "My Way - Tom Jones", 193); saya ++; c = 193; Blynk.virtualWrite (V2, "add", 8, "San Bernadino - Christie", 149); saya ++; c = 149; Blynk.virtualWrite (V2, "add", 9, "The Twist - Chubby Checker", 169); saya ++; c = 169;
kelewatan (1000);
} pemilihan proses tidak sah (pemilihan int) {// menguraikan pemilihan 3 digit (mis. 178) hingga 3 butang: int btn1 = int (pemilihan / 100); // butang pertama Serial.println ("\ nBtn1:"); Bersiri.println (btn1); jika (btn1 == 1 || btn1 == 2) // butang pertama mestilah 1 atau 2 - jika tidak, tetapkan semula {tekan_button (btn1); pemilihan = pemilihan - (btn1 * 100); int btn2 = int (pemilihan / 10); // butang kedua Serial.println ("\ nBtn2:"); Bersiri.println (btn2); butang tekan (btn2); pemilihan = pemilihan - (btn2 * 10); int btn3 = int (pemilihan); // butang ketiga Serial.println ("\ nBtn3:"); Bersiri.println (btn3); butang tekan (btn3); } lain {butang tekan (11); // butang reset} // tetapkan semula kedudukan servo apabila semua kelewatan selesai (2000); myservo1.write (140); myservo2.write (90); myservo3.write (90);} kekosongan butang kosong (int btn) {// ini dipanggil 3 kali untuk setiap pilihan // penekanan butang sebenar dilakukan setelah setiap butang (cari 'tekan butang sebenar') suis (btn) {kes 1: set_servo_angles (134, 136); // 1 rehat; kes 2: set_servo_angles (128, 110); // 2 rehat; kes 3: set_servo_angles (112, 88); // rehat 3; kes 4: set_servo_angles (89, 68); // 4 rehat; kes 5: set_servo_angles (62, 55); // 5 rehat; kes 6: set_servo_angles (172, 131); // 6 rehat; kes 7: set_servo_angles (163, 106); // 7 rehat; kes 8: set_servo_angles (140, 83); // 8 rehat; kes 9: set_servo_angles (104, 58); // 9 rehat; kes 0: set_servo_angles (75, 36); // 0 rehat; kes 11: set_servo_angles (36, 30); // 11 rehat; } // suis akhir} set_servo_angles kosong (int pos2, int pos3) {myservo2.write (pos2); myservo3.write (pos3); // Kedudukan servo siap - lakukan penekanan butang sebenar: kelewatan (500); myservo1.write (60); // kelewatan turun (500); myservo1.write (140); // kelewatan naik (500); } gelung kosong () {Blynk.run (); }
Langkah 6: Langkah Masa Depan
Widget video - aliran video & audio langsung ke Aplikasi Blynk (sudah diuji - berfungsi)
Widget webhook - muat turun senarai main berdasarkan permintaan (sudah diuji - berfungsi)
Widget jadual - beberapa penambahbaikan kecil pada widget sangat dialu-alukan (cadangan dihantar kepada pemaju Blynk)
Disyorkan:
Mesin Arduino Pinball Yang Memainkan Sendiri!: 13 Langkah (dengan Gambar)
Mesin Pinball Arduino Yang Memainkannya Sendiri !: " Mesin pinball yang memainkannya sendiri, bukankah semua itu menyeronokkan? &Quot; Saya dengar awak bertanya. Mungkin jika anda tidak menggunakan robot autonomi, mungkin. Walau bagaimanapun, saya sangat mementingkan membina robot yang boleh melakukan perkara yang menarik, dan yang ini
Bercakap Arduino - Memainkan MP3 Dengan Arduino Tanpa Modul - Memainkan Fail Mp3 Dari Arduino Menggunakan PCM: 6 Langkah
Bercakap Arduino | Memainkan MP3 Dengan Arduino Tanpa Modul | Memainkan Fail Mp3 Dari Arduino Menggunakan PCM: Dalam instruksional ini kita akan belajar cara memainkan fail mp3 dengan arduino tanpa menggunakan modul audio, di sini kita akan menggunakan perpustakaan PCM untuk Arduino yang memainkan 16 bit frekuensi 8kHZ 16M jadi mari kita lakukan ini
Greatest Holdies: Saya Meretas Telefon Lama untuk Memainkan Muzik Greatest Hold .: 13 Langkah (dengan Gambar)
Greatest Holdies: Saya Menggodam Telefon Lama untuk Memainkan Muzik Greatest Hold .: terdapat banyak lagi projek menarik yang boleh anda buat dengan penggodaman yang sangat asas ini " meja " telefon
Menggunakan LEDS dan AT Tiny untuk Membuat Bintang Berkedip Dengan Piezo Memainkan "Twinkle, Twinkle, Little Star": 6 Langkah
Menggunakan LEDS dan AT Tiny untuk Membuat Bintang Berkedip Dengan Piezo Memainkan "Twinkle, Twinkle, Little Star": Litar ini menggunakan LEDS, AT TINY dan piezo untuk menghasilkan bintang berkedip dan muzik " Twinkle, Twinkle, bintang kecil " Sila lihat langkah seterusnya untuk gambaran keseluruhan dan litar
Memainkan Fail Suara Audio (Wav) Dengan Arduino dan DAC: 9 Langkah
Memainkan Fail Suara Audio (Wav) Dengan Arduino dan DAC: Mainkan audio fail wav dari kad SD Audino anda. Instructable ini akan menunjukkan kepada anda bagaimana fail wav pada SdCard anda dapat dimainkan melalui litar sederhana ke pembesar suara. Fail wav mestilah 8 bit mono. Saya tidak menghadapi masalah untuk memainkan fail 44 KHz. Walaupun tidak