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

Animasikan Ikan Billy Bass Anda dengan Sumber Audio Apa Pun – Panduan Langkah demi Langkah

Komponen dan Perlengkapan

Animasikan Ikan Billy Bass Anda dengan Sumber Audio Apa Pun – Panduan Langkah demi Langkah
Arduino UNO
×1
Adafruit Motor/Stepper/Servo Shield untuk Arduino v2 Kit - v2.3
×1
Animasikan Ikan Billy Bass Anda dengan Sumber Audio Apa Pun – Panduan Langkah demi Langkah
Amazon Alexa Echo Dot
×1

Tentang Proyek Ini

Bulan lalu, seorang seniman bernama Brian Kane mengunggah video virus yang menunjukkan ikan hias Big Mouth Billy Bass yang nyaring, seolah-olah disuarakan oleh asisten virtual Alexa. Internet menjadi gila, dan saya juga — tetapi sebagian besar saya hanya ingin tahu bagaimana cara kerjanya sehingga saya bisa membuatnya sendiri.

Setelah melihat sejumlah proyek Raspberry Pi yang menggunakan Alexa, awalnya saya mengasumsikan bahwa Brian telah membuat proyek Pi yang dikemas Alexa yang juga berfungsi sebagai cara untuk menggerakkan perangkat keras Billy Bass yang ada — dan mungkin memang demikian. Saya bahkan mengajukan ide ini di acara YouTube mingguan saya, Maker Update.

Tetapi setelah berpikir lebih matang, saya menebak bahwa trik termudah adalah cukup menggunakan audio dari Amazon Echo senilai $49, dan memprosesnya melalui Arduino untuk menggerakkan motor yang ada.

Saya sudah memiliki Arduino dan motor shield siap pakai (meskipun ini adalah kali pertama saya menggunakan shield ini).

Selanjutnya, saya memesan Billy Bass bekas di Amazon dengan harga sekitar $15. Saya yakin Anda bisa menemukan satu yang bekas di lelang garasi atau toko serba ada dengan harga lebih murah, tetapi saya ingin mendapatkannya dengan cepat. Saya juga memesan Echo Dot baru.

Setelah memesan, saya melanjutkan ke riset. Dua tutorial memberi saya harapan: panduan 2012 dari sfool tentang menggunakan Arduino untuk membuat servo bergerak menurut suara dan panduan 2013 dari Dotten tentang memahami animatronik mainan Billy Bass.

Memahami bahwa Billy Bass (seperti Furby) pada dasarnya didorong oleh dua motor mainan DC 5V murah — masalahnya kemudian cukup bagaimana membuat motor-motor ini bergetar sebagai respons terhadap suara. Dengan sedikit coba-coba, saya menemukan solusi yang dapat diterapkan. Kode masih jauh dari sempurna dan ada banyak fitur lain yang ingin saya tambahkan, tetapi saya ingin membagikannya sehingga semua orang dapat membantu memperbaikinya.

Bahan yang Dibutuhkan

Alat yang Dibutuhkan

Langkah 1: Siapkan Ikan

Animasikan Ikan Billy Bass Anda dengan Sumber Audio Apa Pun – Panduan Langkah demi Langkah
Animasikan Ikan Billy Bass Anda dengan Sumber Audio Apa Pun – Panduan Langkah demi Langkah
Animasikan Ikan Billy Bass Anda dengan Sumber Audio Apa Pun – Panduan Langkah demi Langkah
Animasikan Ikan Billy Bass Anda dengan Sumber Audio Apa Pun – Panduan Langkah demi Langkah
Animasikan Ikan Billy Bass Anda dengan Sumber Audio Apa Pun – Panduan Langkah demi Langkah
Animasikan Ikan Billy Bass Anda dengan Sumber Audio Apa Pun – Panduan Langkah demi Langkah
Animasikan Ikan Billy Bass Anda dengan Sumber Audio Apa Pun – Panduan Langkah demi Langkah
Animasikan Ikan Billy Bass Anda dengan Sumber Audio Apa Pun – Panduan Langkah demi Langkah
Animasikan Ikan Billy Bass Anda dengan Sumber Audio Apa Pun – Panduan Langkah demi Langkah

Untuk baik atau buruk, ikan bekas saya tiba dalam keadaan mati. Setidaknya saya tidak ragu untuk membukanya dan memodifikasinya. Untuk modifikasi saya, cukup buka sekrup di bagian belakang, buka, dan tekan dengan lembut untuk melepas rak kabel sehingga bagian belakang dapat dilepaskan sepenuhnya.

Untuk membuat lebih banyak ruang untuk elektronik yang akan kita tambahkan, buka sekrup dan keluarkan papan sirkuit Billy Bass serta piezo buzzer.

Yang tersisa adalah satu rak kabel 4 kawat yang menjorok ke atas dari ikan. Ini mencakup dua kawat yang menggerakkan mulut (Anda dapat melihatnya menurun ke dalam ikan) dan dua kawat yang mengangkat kepala atau ekor tergantung arah motor yang Anda jalankan.

Langkah terakhir dalam menyiapkan ikan adalah memotong empat kawat dengan panjang sama dalam warna berbeda, mengupas dan menstim ujungnya, dan memasukkan ujungnya ke dalam setiap soket dalam rak kabel. Di langkah berikutnya, kita akan menghubungkannya ke motor shield Arduino.

Langkah 2: Siapkan Motor Shield

Animasikan Ikan Billy Bass Anda dengan Sumber Audio Apa Pun – Panduan Langkah demi Langkah
Animasikan Ikan Billy Bass Anda dengan Sumber Audio Apa Pun – Panduan Langkah demi Langkah
Animasikan Ikan Billy Bass Anda dengan Sumber Audio Apa Pun – Panduan Langkah demi Langkah
Animasikan Ikan Billy Bass Anda dengan Sumber Audio Apa Pun – Panduan Langkah demi Langkah
Animasikan Ikan Billy Bass Anda dengan Sumber Audio Apa Pun – Panduan Langkah demi Langkah
Animasikan Ikan Billy Bass Anda dengan Sumber Audio Apa Pun – Panduan Langkah demi Langkah

Hanya ada 4 koneksi yang perlu Anda buat ke motor shield, dan hanya dua di antaranya yang perlu disolder. Anda juga dapat menghubungkan dua kawat tambahan jika ingin bereksperimen dengan motor ekor/kepala.

Mari kita mulai dengan proses soldering untuk menyelesaikannya. Untuk membuat input audio untuk ikan Anda, ambil dua kawat dengan panjang sama dan warna berbeda, kupas ujungnya, dan solder satu ke ground, dan satu ke Analog 0. Potong kabel berlebih yang melewati papan.

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

Selanjutnya, untuk menghubungkan motor ikan ke shield, jalankan pasang kawat yang mengarah ke motor mulut ikan (hitam dan oranye) ke blok terminal untuk motor 1 dan skrup rapatkan. Opsional, Anda dapat menjalankan kawat motor ekor/kepala (putih dan merah) ke terminal untuk motor 2, meskipun kode belum melakukan apa pun dengan motor ini (selengkapnya di bagian berikutnya). Untuk ikan saya, pewarnaan kawat pada blok terminal adalah hitam, oranye (kuning dalam kasus saya) untuk motor mulut (M1) dan putih, merah untuk motor ekor opsional (M2).

Terakhir, periksa apakah motor shield memiliki kawat penutup jumper yang terpasang pada pin yang diberi label VIN Jumper. Saya melewatkan ini awalnya dan berpusing-pusing mengapa shield tidak menyala. Sekarang Anda seharusnya dapat menumpuk shield ke Arduino Uno, menyalakan Arduino, dan melihat indikator daya LED menyala di shield juga. Jika shield tidak menyala, periksa jumper.

Langkah 3: Muat Kode

Animasikan Ikan Billy Bass Anda dengan Sumber Audio Apa Pun – Panduan Langkah demi Langkah
Animasikan Ikan Billy Bass Anda dengan Sumber Audio Apa Pun – Panduan Langkah demi Langkah
Animasikan Ikan Billy Bass Anda dengan Sumber Audio Apa Pun – Panduan Langkah demi Langkah

Jadi, kode ini adalah hack berantakan yang menggabungkan elemen dari sketsa DC Motor Test (esensialmente demo untuk motor shield) dan sketsa Sound to Servo oleh Cenk Özdemir (2012), yang termasuk dalam tutorial Arduino Sound to Servo yang saya tautkan di atas.

Kode dalam keadaan saat ini belum menggerakkan motor kepala/ekor. Saya punya satu versi yang melakukannya, tetapi itu memperlambat responsivitas gerakan mulut. Secara ideal, saya ingin mulut tetap responsif sementara kepala dan ekor lambat melalui animasi mereka sendiri, tetapi ini adalah batas saat ini dari kemampuan pemrograman Arduino saya. Segera saya menemukannya atau mendapatkan saran dari Anda, saya akan memposting kode yang diperbarui.

Langkah 4: Gabungkan Semuanya

Animasikan Ikan Billy Bass Anda dengan Sumber Audio Apa Pun – Panduan Langkah demi Langkah
Animasikan Ikan Billy Bass Anda dengan Sumber Audio Apa Pun – Panduan Langkah demi Langkah
Animasikan Ikan Billy Bass Anda dengan Sumber Audio Apa Pun – Panduan Langkah demi Langkah
Animasikan Ikan Billy Bass Anda dengan Sumber Audio Apa Pun – Panduan Langkah demi Langkah
Animasikan Ikan Billy Bass Anda dengan Sumber Audio Apa Pun – Panduan Langkah demi Langkah

Dengan kode yang dimuat dan kabel audio yang terhubung ke jack, Anda seharusnya dapat membuat mulut ikan bergerak hanya dengan menghubungkan sumber audio ke ujung bebas kabel (saya menggunakan ponsel saya memutar podcast). Jika berfungsi, bor lubang kecil di plak plastik ikan, masukkan jack melalui lubang dan rapatkan.

Untuk membuat Alexa (atau apa pun yang Anda inginkan) berbicara melalui ikan Anda, hubungkan ujung bebas kabel audio ke adaptor Y, speaker rechargeable ke input lain adaptor, dan kemudian jalankan soket pria adaptor ke output audio Echo Dot.

Pastikan speaker menyala dan volume naik baik di speaker maupun Alexa. Kemudian, panggil Alexa dan ajukan pertanyaan untuk membuatnya berbicara (cuaca, lelucon, berita). Anda akan mendengar suaranya melalui speaker portabel sambil bersamaan menyaksikan bibir karet ikan Anda berdebar sesuai irama. Semakin dekat speaker dengan kepala ikan, semakin aneh efeknya.

Jika semuanya berfungsi dengan baik, triknya kemudian adalah memasukkan speaker dan Arduino ke dalam kotak Billy Bass dan menutupnya. Jujur, saya masih mencoba memecahkan bagian ini.

Langkah 5: Ke Mana Selanjutnya?

Animasikan Ikan Billy Bass Anda dengan Sumber Audio Apa Pun – Panduan Langkah demi Langkah
Animasikan Ikan Billy Bass Anda dengan Sumber Audio Apa Pun – Panduan Langkah demi Langkah

Masih banyak yang harus dilakukan di sini, dan saya menyambut semua saran Anda untuk memperbaikinya. Saya ingin memposting versi 2.0 untuk ini di masa dekat.

  1. Saya ingin kepala dan ekor beranimasi. Koneksi sudah ada dan saya telah berhasil membuatnya berfungsi, tetapi tidak tanpa menyekrifis responsivitas mulut, yang sangat penting.
  2. Saya ingin speaker dapat diisi ulang daya dari Arduino. Tampaknya cukup sederhana, tetapi saya belum melakukannya.
  3. Saya ingin tombol merah Billy Bass (atau penggantinya) untuk beralih antara mode "pidato" (lebih banyak gerakan mulut dan daya tarik keseluruhan "ikan berbicara") dan mode "musik" yang lebih tentang ikan tergeletak sesuai irama musik.
  4. Kode yang lebih bersih. Saya yakin masih banyak sisa dalam kode dari gabungan yang saya lakukan. Saya menyambut upaya apa pun untuk membersihkannya.
  5. Gunakan Arduino yang lebih kecil. Uno dan Motor Shield terlalu berlebihan untuk apa yang kita gunakan. Saya pikir Adafruit Feather dan shield 2-motor mereka untuk feather akan menjadi alternatif yang baik. Mungkin Anda dapat memiliki satu yang menggerakkan mulut dan satu terpisah yang menggerakkan motor ekor-kepala.

Kode

SoundToDCArduino
/* Make a DC Motor Move to Sound. This example code is in the public domain. Created by Donald Bell, Maker Project Lab (2016). Based on Sound to Servo by Cenk zdemir (2012) and DCMotorTest by Adafruit */ // include the Adafruit motor shield library #include <Wire.h> #include <Adafruit_MotorShield.h> #include "utility/Adafruit_MS_PWMServoDriver.h" // Create the motor shield object with the default I2C address Adafruit_MotorShield AFMS = Adafruit_MotorShield(); // Or, create it with a different I2C address (say for stacking) // Adafruit_MotorShield AFMS = Adafruit_MotorShield(0x61); // Select which 'port' M1, M2, M3 or M4. In this case, M1 for mouth and M2 for tail Adafruit_DCMotor *myMotor = AFMS.getMotor(1); Adafruit_DCMotor *myOtherMotor = AFMS.getMotor(2); // Some other Variables we need int SoundInPin = A0; int LedPin = 12; //in case you want an LED to activate while mouth moves // the setup routine runs once when you press reset: void setup() { Serial.begin(9600); // set up Serial library at 9600 bps AFMS.begin(); // create with the default frequency 1.6KHz //AFMS.begin(1000); // OR with a different frequency, say 1KHz // Set the speed to start, from 0 (off) to 255 (max speed) myMotor->setSpeed(0); //mouth motor myMotor->run(FORWARD); // turn on motor myMotor->run(RELEASE); pinMode(SoundInPin, INPUT); pinMode(LedPin, OUTPUT); myOtherMotor->setSpeed(0); //tail motor myOtherMotor->run(FORWARD); // turn on motor myOtherMotor->run(RELEASE); pinMode(SoundInPin, INPUT); } // the loop routine runs over and over again forever: void loop() { uint8_t i; // read the input on analog pin 0: int sensorValue = analogRead(SoundInPin); // we Map another value of this for LED that can be a integer betwen 0..255 int LEDValue = map(sensorValue,0,512,0,255); // We Map it here down to the possible range of movement. sensorValue = map(sensorValue,0,512,0,180); // note normally the 512 is 1023 because of analog reading should go so far, but I changed that to get better readings. int MoveDelayValue = map(sensorValue,0,255,0,sensorValue); // maping the same reading a little bit more down to calculate the time your motor gets if (sensorValue > 10) { // to cut off some static readings delay(1); // a static delay to smooth things out... // now move the motor myMotor->run(FORWARD); for (i=140; i<255; i++) { myMotor->setSpeed(i); } //for (i=200; i!=0; i--) { // myMotor->setSpeed(i); // delay(10); // } analogWrite(LedPin, sensorValue); // and do that move in this delay time myMotor->run(RELEASE); myOtherMotor->run(RELEASE); delay(1); } // Done. // turn off the led again. analogWrite(LedPin, 0); // and this repeats all the time. } 

Proses manufaktur

  1. Sensor CO2 K30: Pemantauan Kualitas Udara Indoor dalam Waktu Nyata
  2. Memfasilitasi Komunikasi Tuna Netra Tuna Rungu Menggunakan 1Sheeld dan Arduino
  3. Bangun Tabung Pintar: Kendalikan Penerima Koin dengan Arduino Nano
  4. Buat Big Mouth Billy Bass dengan Baterai Alexa menggunakan Arduino, Shield Motor L293D & Penguat LM386
  5. Detektor Frekuensi Audio Arduino – Ukur Puncak Suara Terkeras dengan Modul Sensitivitas Tinggi
  6. Kontrol LED melalui Bluetooth dengan Arduino – Panduan DIY Sederhana
  7. Mengintegrasikan Sensor Sidik Jari Kapasitif DFRobot dengan Arduino atau ESP8266
  8. Proyek HMI Nextion Interaktif Menggunakan Arduino Mega dan Sensor
  9. Cara Memutar Audio dengan Arduino UNO dan DFPlayer Mini – Panduan Langkah demi Langkah
  10. Kit Lengan Robot 6-DoF Berbasis Arduino dengan Pengendali Nunchuk