Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Animasi Mulut Billy Bass Dengan Sumber Audio Apa Pun

Komponen dan persediaan

Arduino UNO
× 1
Adafruit Motor/Stepper/Servo Shield untuk Arduino v2 Kit - v2 .3
× 1
Amazon Alexa Echo Dot
× 1

Tentang proyek ini

Sekitar sebulan yang lalu, seorang seniman bernama Brian Kane menerbitkan video viral yang menunjukkan ikan bernyanyi baru Big Mouth Billy Bass, yang tampaknya disuarakan oleh asisten virtual Alexa Amazon. Internet menjadi gila karenanya, begitu pula saya -- tetapi kebanyakan saya hanya ingin tahu cara kerjanya sehingga saya bisa membuatnya sendiri.

Setelah melihat sejumlah proyek Raspberry Pi yang menggunakan Alexa, awalnya saya berasumsi bahwa Brian telah membuat proyek Pi bertenaga Alexa yang berfungsi ganda sebagai sarana untuk menghidupkan perangkat keras Billy Bass yang ada -- dan mungkin itu masalahnya. Saya bahkan mengajukan ide ini di acara YouTube mingguan saya, Maker Update.

Namun setelah memikirkannya lebih lanjut, saya pikir peretasan termudah adalah dengan menggunakan audio dari Amazon Echo seharga $49, dan memprosesnya melalui Arduino untuk menggerakkan motor yang ada.

Saya sudah memiliki Arduino dan pelindung motor (meskipun ini adalah pertama kalinya saya menggunakan pelindung).

Selanjutnya, saya memesan Billy Bass yang digunakan di Amazon dengan harga sekitar $15. Saya yakin Anda dapat membeli yang bekas di pekarangan atau toko barang bekas dengan harga lebih murah, tetapi saya menginginkannya dengan cepat. Saya juga memesan Echo Dot baru.

Dengan yang dipesan, saya pindah ke penelitian. Dua tutorial memberi saya harapan:panduan 2012 dari sfool tentang menggunakan Arduino untuk membuat servo bergerak ke suara dan panduan 2013 dari Dotten ini tentang memahami animatronik mainan Billy Bass.

Memahami bahwa Billy Bass (seperti Furby) pada dasarnya digerakkan oleh dua motor mainan DC 5v murah -- masalahnya kemudian menjadi sederhana bagaimana membuat motor ini berkedut sebagai respons terhadap suara. Dengan sedikit coba-coba, saya menemukan solusi yang bisa diterapkan. Kode ini jauh dari sempurna dan ada banyak fitur lain yang ingin saya kembangkan, tetapi saya ingin melakukannya sehingga semua orang dapat membantu menjadikannya lebih baik.

Bahan yang Dibutuhkan

  • Ikan Nyanyian Big Mouth Billy Bass (1)
  • Arduino Uno (1)
  • Supply daya Arduino Uno (1)
  • Adafruit Motor Shield v2 (1)
  • Minijack pemasangan panel (1)
  • Kabel pengait terdampar (beberapa warna membantu)
  • Amazon Echo Dot (meskipun sumber audio apa pun dapat berfungsi) (1)
  • Speaker kecil yang dapat diisi ulang dari beberapa jenis (1)
  • Kabel audio minijack (⅛”) (1)
  • Adaptor kabel splitter minijack (1)

Perlu Alat

  • Oeng Kecil
  • Besi Solder dan Solder
  • Pencabut kabel
  • Snip
  • Bor dan bit

Langkah 1:Siapkan Ikan

Untuk lebih baik atau lebih buruk, dengan ikan yang digunakan sudah mati pada saat kedatangan. Setidaknya saya tidak ragu untuk membukanya dan meretasnya. Untuk retasan saya, cukup buka sekrup di bagian belakang, buka, dan berikan tekanan lembut untuk melepaskan tali pengikat kabel sehingga bagian belakang dapat dilepas sepenuhnya.

Untuk menciptakan lebih banyak ruang bagi barang elektronik, kami akan menambahkan, melepaskan, dan melepas papan sirkuit Billy Bass dan buzzer piezo.

Apa yang tersisa adalah salah satu harness 4-kawat mencuat dari ikan. Ini termasuk dua kabel yang menggerakkan mulut (Anda dapat melihatnya berjalan ke arah ikan) dan dua kabel yang menaikkan kepala atau ekor, tergantung ke arah mana Anda menjalankan motor.

Langkah terakhir dalam menyiapkan ikan adalah memotong empat kabel dengan warna berbeda yang sama panjangnya, membuka dan menyemir ujungnya, dan memasukkan ujungnya ke masing-masing dari empat soket di harnes kawat. Pada langkah berikutnya, kita akan menghubungkannya ke pelindung motor Arduino.

Langkah 2:Siapkan Pelindung Motor

Hanya ada 4 sambungan yang perlu Anda buat ke pelindung motor, dan hanya dua di antaranya yang disolder. Anda juga dapat memasang dua kabel tambahan jika ingin bereksperimen dengan motor ekor/kepala.

Mari kita mulai dengan menyolder untuk menyelesaikannya. Untuk membuat input audio untuk ikan Anda, ambil dua kabel dengan warna berbeda yang sama panjangnya, lepaskan ujungnya, dan solder satu ke ground, dan satu ke Analog 0. Jepit kelebihan kabel yang mengalir melalui papan.

Sekarang mari kita jalankan kabel ini ke jack mini panel-mount untuk input audio kita. Jack yang saya miliki adalah salah satu dari jack mono switch yang mewah dengan tiga kemungkinan koneksi. Yang penting adalah Anda membuat input mono dengan menjalankan kabel dari Analog 0 ke kabel pada jack yang membuat kontak dengan ujung konektor audio. Kemudian jalankan kabel Ground ke kabel pada jack yang membuat kontak dengan dasar (atau selongsong) konektor audio.

Selanjutnya, untuk menghubungkan motor ikan ke pelindung, jalankan sepasang kabel yang mengarah ke motor mulut ikan (hitam dan oranye) ke blok terminal untuk motor 1 dan kencangkan. Opsional, Anda dapat menjalankan kabel motor ekor/kepala (putih dan merah) ke terminal untuk motor 2, meskipun kode tersebut belum melakukan apa pun dengan motor ini (lebih lanjut tentang ini di bagian berikutnya). Untuk ikan saya, warna kawat pada blok terminal menjadi hitam, oranye (kuning dalam kasus saya) untuk motor mulut (M1) dan putih, merah dari untuk motor ekor opsional (M2).

Terakhir, periksa apakah pelindung motor memiliki selongsong jumper yang terpasang pada pin berlabel VIN Jumper. Saya melewatkan ini pada awalnya dan menggaruk-garuk kepala bertanya-tanya mengapa perisai tidak mau menyala. Anda sekarang seharusnya dapat memasang pelindung ke Arduino Uno, menyalakan Arduino, dan melihat LED indikator daya menyala pada pelindung juga. Jika perisai tidak menyala, saya akan memeriksa jumpernya.

Langkah 3:Muat Kode

Jadi, kodenya adalah peretasan berantakan yang menyatukan elemen sketsa Tes Motor DC (pada dasarnya demo untuk pelindung motor) dan sketsa Suara ke Servo oleh Cenk zdemir (2012), termasuk dalam Tutorial Suara ke Servo Arduino yang saya tautkan di atas.

Kode dalam kondisi saat ini belum menjiwai motor kepala/ekor. Saya punya satu versi yang melakukannya, tetapi memperlambat respons gerakan mulut. Idealnya saya ingin mulut tetap responsif sementara kepala dan ekor perlahan berputar melalui animasi mereka sendiri, tetapi ini adalah batas kemampuan pengkodean Arduino saya saat ini. Segera setelah saya mengetahuinya atau mendapatkan saran dari kalian, saya akan memposting kode yang diperbarui.

Langkah 4:Menyatukan semuanya

Dengan kode dimuat, dan kabel audio terhubung ke jack, Anda harus dapat membuat mulut ikan bergerak hanya dengan menghubungkan sumber audio ke ujung kabel yang bebas (saya menggunakan ponsel saya untuk memutar podcast). Jika berhasil, bor lubang kecil di suatu tempat di plakat ikan plastik, dorong dongkrak dan kencangkan di tempatnya.

Untuk membuat Alexa (atau apa pun yang Anda inginkan) berbicara melalui ikan Anda, sambungkan ujung bebas kabel audio ke adaptor Y, speaker yang dapat diisi ulang ke input lain dari adaptor, dan kemudian jalankan colokan adaptor laki-laki ke dalam keluaran audio dari Echo Dot.

Pastikan speaker Anda diaktifkan dan volume di speaker dan Alexa dinaikkan. Kemudian, panggil Alexa dan ajukan pertanyaan untuk membuatnya berbicara (cuaca, lelucon, berita). Anda harus mendengar suaranya melalui speaker portabel sambil secara bersamaan menyaksikan bibir karet ikan Anda mengepak tepat waktu. Semakin dekat pembicara ke kepala ikan, semakin aneh efeknya.

Jika semuanya berhasil, triknya adalah mengemas speaker dan Arduino ke dalam kandang Billy Bass dan menutupnya. Sejujurnya, saya masih memikirkan hal ini.

Langkah 5:Di mana selanjutnya?

Masih banyak yang harus dilakukan di sini, dan saya menyambut semua saran Anda untuk membuat ini lebih baik. Saya ingin memposting versi 2.0 untuk ini dalam waktu dekat.

1. Saya ingin kepala dan ekornya bernyawa. Koneksi ada di sana dan saya bisa membuatnya bekerja tetapi tidak tanpa mengorbankan responsivitas mulut, yang sangat penting.

2. Saya ingin speaker dapat diisi ulang dari Arduino. Tampaknya cukup sederhana, tetapi saya belum melakukannya.

3. Saya ingin tombol merah Billy Bass (atau penggantinya) untuk beralih antara mode "ucapan" (lebih lanjut tentang gerakan mulut dan keseluruhan daya tarik "ikan yang berbicara", dan mode "musik" yang lebih tentang ikan yang melompat-lompat di waktu untuk musik.

4. Kode pembersih. Saya yakin ada banyak sisa kode dari mashup yang saya lakukan. Saya menyambut setiap upaya untuk membersihkannya.

5. Gunakan Arduino yang lebih kecil. Uno dan Motor Shield benar-benar berlebihan untuk tujuan kami menggunakannya. Saya pikir Adafruit Feather dan pelindung 2-motor mereka untuk bulu akan menjadi alternatif yang bagus. Mungkin Anda dapat memiliki satu yang menggerakkan mulut dan yang terpisah untuk menggerakkan motor kepala-ekor.

Kode

  • SoundToDC
SoundToDCArduino
/* Membuat Motor DC Bergerak ke Suara. Contoh kode ini ada di domain publik. Dibuat oleh Donald Bell, Lab Proyek Pembuat (2016). Berdasarkan Sound to Servo oleh Cenk zdemir (2012) dan DCMotorTest oleh Adafruit*/// menyertakan perpustakaan pelindung motor Adafruit#include #include #include "utility/Adafruit_MS_PWMServoDriver.h"// Buat objek pelindung motor dengan alamat I2C defaultAdafruit_MotorShield AFMS =Adafruit_MotorShield(); // Atau, buat dengan alamat I2C yang berbeda (misalnya untuk susun)// Adafruit_MotorShield AFMS =Adafruit_MotorShield(0x61); // Pilih 'port' mana M1, M2, M3 atau M4. Dalam hal ini, M1 untuk mulut dan M2 untuk ekorAdafruit_DCMotor *myMotor =AFMS.getMotor(1);Adafruit_DCMotor *myOtherMotor =AFMS.getMotor(2);// Beberapa Variabel lain yang kita butuhkanint SoundInPin =A0;int LedPin =12; //jika Anda ingin LED aktif saat mulut bergerak// rutinitas penyiapan berjalan satu kali saat Anda menekan reset:void setup() { Serial.begin(9600); // mengatur perpustakaan Serial pada 9600 bps AFMS.begin(); // buat dengan frekuensi default 1.6KHz //AFMS.begin(1000); // ATAU dengan frekuensi yang berbeda, katakanlah 1KHz // Atur kecepatan untuk memulai, dari 0 (mati) hingga 255 (kecepatan maksimal) myMotor->setSpeed(0); //mulut motor myMotor->run(FOWARD); // hidupkan motor myMotor->run(RELEASE); pinMode(SoundInPin, INPUT); pinMode(LedPin, OUTPUT); myOtherMotor->setSpeed(0); //ekor motor myOtherMotor->run(FOWARD); // nyalakan motor myOtherMotor->run(RELEASE); pinMode(SoundInPin, INPUT); }// rutinitas loop berjalan berulang-ulang selamanya:void loop() { uint8_t i; // membaca input pada pin analog 0:int sensorValue =analogRead(SoundInPin);// kita Memetakan nilai lain ini untuk LED yang dapat berupa bilangan bulat antara 0.255 int LEDValue =map(sensorValue,0,512,0,255); // Kami Memetakannya di sini ke kisaran gerakan yang mungkin. sensorValue =peta(sensorValue,0,512,0,180); // perhatikan biasanya 512 adalah 1023 karena pembacaan analog harus sejauh ini, tetapi saya mengubahnya untuk mendapatkan pembacaan yang lebih baik. int MoveDelayValue =peta(sensorValue,0,255,0,sensorValue); // memetakan pembacaan yang sama sedikit lebih ke bawah untuk menghitung waktu getif motor Anda (sensorValue> 10) { // untuk memotong beberapa penundaan pembacaan statis(1); // penundaan statis untuk menghaluskan semuanya...// sekarang gerakkan motor myMotor->run(FORWARD); for (i=140; i<255; i++) { myMotor->setSpeed(i); }//untuk (i=200; i!=0; i--) {// myMotor->setSpeed(i); // delay(10);// } analogWrite(LedPin, sensorValue); // dan lakukan gerakan itu dalam waktu tunda ini myMotor->run(RELEASE); myOtherMotor->run(RELEASE); delay(1);} // Selesai. // matikan led lagi. analogWrite(LedPin, 0); // dan ini berulang setiap saat.}

Proses manufaktur

  1. Pemantauan CO2 dengan Sensor K30
  2. Komunikasi Tunarungu dengan 1Sheeld/Arduino
  3. Kontrol Penerima Koin dengan Arduino
  4. Big Mouth Billy Bass + Alexa
  5. Detektor Frekuensi Audio
  6. Arduino dengan Bluetooth untuk Mengontrol LED!
  7. Sensor Sidik Jari Kapasitif dengan Arduino atau ESP8266
  8. Bermain Dengan Tampilan Berikutnya
  9. Putar audio di Arduino
  10. Lengan Robot Terkendali Nunchuk (dengan Arduino)