Isi kandungan:

Arduino Menjadi Pembicara Tom: 6 Langkah
Arduino Menjadi Pembicara Tom: 6 Langkah

Video: Arduino Menjadi Pembicara Tom: 6 Langkah

Video: Arduino Menjadi Pembicara Tom: 6 Langkah
Video: Tonton Sampai Habis !!! Belajar Arduino Di Jamin Bisa 2024, Julai
Anonim
Arduino Menjadi Berbual Tom
Arduino Menjadi Berbual Tom
Arduino Menjadi Berbual Tom
Arduino Menjadi Berbual Tom

Salah satu kenangan tertua saya menggunakan telefon pintar adalah bermain permainan 'Talking Tom'. Permainan ini cukup sederhana. Ada kucing, bernama Tom, yang boleh bercakap, semacam. Dalam permainan, Tom akan mendengar sebarang input melalui mikrofon telefon dan kemudian mengulangi apa sahaja yang didengarnya. Jadi, apa sahaja yang dikatakan kepada Tom, ia akan mengulangi perkara yang sama dengan suaranya sendiri.

Walaupun kedengarannya sederhana, keseluruhan prosedur ini memerlukan banyak langkah yang kompleks seperti mengambil sampel input mikrofon dalam bentuk digital, memanipulasi audio untuk memberikan suara unik kepada Tom dan kemudian menyusun semula isyarat dari semua nilai digital tersebut untuk memainkannya semula melalui pembesar suara. Semua langkah yang rumit ini, tetapi telefon pintar menanganinya seperti daya tarikan walaupun 9 hingga 10 tahun yang lalu!

Perkara yang menarik adalah untuk melihat apakah perkara yang sama dapat dilakukan dengan papan Arduino berasaskan mikrokontroler yang murah. Oleh itu, dalam arahan ini saya akan menunjukkan bagaimana anda dapat membuat projek Talking Tom seperti dari Arduino dan beberapa elektronik lain yang murah.

Petunjuk ini ditulis dengan kerjasama Hatchnhack Makerspace di Delhi

CATATAN: Instruksional ini adalah versi pertama projek yang melengkapkan ciri 'Talking' Talking Tom di mana arduino akan dapat mengulangi apa sahaja yang anda katakan kepadanya. Bahagian perubahan suara akan diliput pada versi yang akan datang, walaupun, kerana resolusi yang lebih rendah dari Arduino dalam ADC yang dibina, audio yang dirakam sudah terdengar sedikit berbeza: P (Ini dapat dilihat dengan jelas dalam video projek).

Jadi Mari Mulakan!

Langkah 1: Bahan Yang Digunakan

Bahan Yang Digunakan
Bahan Yang Digunakan
Bahan Yang Digunakan
Bahan Yang Digunakan
Bahan Yang Digunakan
Bahan Yang Digunakan

Perkakasan:

  • Sebuah Arduino UNO
  • Modul mikrofon MAX4466 dengan Gain yang Boleh Diselaraskan
  • Modul Pembaca Kad SD berasaskan SPI
  • Kad SD
  • Penguat Audio seperti pembesar suara PC, modul penguat PAM8403, dll.
  • Pembesar suara untuk menyambung ke Amplifier
  • Jack Audio Wanita
  • Perintang 1 x 1k ohm
  • Perintang 2 x 10k ohm
  • Kapasitor 1 x 10uF
  • 2 x Butang Tekan
  • Wayar Pelompat

Perisian:

  • Arduino IDE
  • Keberanian (pilihan)
  • Perpustakaan TMRpcm dan SD untuk Arduino

Langkah 2: Tinjauan Asas Projek

Projek ini mempunyai 2 ciri:

  • Ia dapat memainkan audio yang dipilih secara rawak dari sekumpulan fail audio yang telah dipasang sebelumnya dalam kad SD untuk kesan bunyi dll.
  • Ia dapat merakam input suara dari mikrofon dan kemudian memainkannya sebaik sahaja rakaman berhenti. Ini membolehkan arduino mengulangi apa sahaja yang didengar melalui mikrofon.

Antara Muka Pengguna projek terdiri daripada 2 butang tekan yang masing-masing sesuai dengan salah satu ciri di atas.

Kerja keras utama untuk merakam dan memainkan fail audio dari kad SD dikendalikan oleh perpustakaan TMRpcm

Rakaman audio menggunakan modul mikrofon MAX4466, ADC dalaman arduino dan pustaka TMRpcm untuk mengambil sampel audio dan kemudian menyimpannya dalam kad SD sebagai fail '.wav' untuk dimainkan semula. Fail audio '.wav' menggunakan PCM (Pulse Code Modulation) untuk menyimpan data audio dalam format digital sehingga dapat dimainkan semula dengan mudah. Secara amnya, lebih baik menggunakan ADC luaran untuk projek berasaskan audio kerana resolusi ADC Arduino tidak begitu tinggi tetapi berfungsi untuk projek ini.

Pemutaran fail audio (pra-dipasang & dirakam) juga dilakukan dengan bantuan perpustakaan TMRpcm yang mengeluarkan audio sebagai isyarat PWM dari pin arduino yang diaktifkan PWM. Isyarat ini kemudian dimasukkan ke dalam penapis RC untuk mendapatkan isyarat analog yang kemudian dimasukkan ke dalam penguat untuk memainkan audio melalui pembesar suara. Untuk bahagian ini, anda juga boleh menggunakan DAC luaran kerana arduino tidak memilikinya secara dalaman. Menggunakan DAC mungkin merupakan pilihan yang lebih baik kerana akan meningkatkan kualiti audio dengan ketara.

Komunikasi antara modul kad SD dan arduino dilakukan melalui SPI (Serial peripheral Interface). Kodnya, menggunakan perpustakaan SD & SPI untuk mengakses kandungan kad SD dengan mudah.

Langkah 3: Sediakan Kad SD & Sambungkan Modul Kad SD

Sediakan Kad SD & Sambungkan Modul Kad SD
Sediakan Kad SD & Sambungkan Modul Kad SD
Sediakan Kad SD & Sambungkan Modul Kad SD
Sediakan Kad SD & Sambungkan Modul Kad SD
Sediakan Kad SD & Sambungkan Modul Kad SD
Sediakan Kad SD & Sambungkan Modul Kad SD
Sediakan Kad SD & Sambungkan Modul Kad SD
Sediakan Kad SD & Sambungkan Modul Kad SD
  • Mula-mula anda harus memformat sebagai kad SD dengan sistem fail FAT16 atau FAT32 (Anda boleh menggunakan telefon pintar anda untuk memformat kad SD).
  • Sekarang pasang terlebih dahulu beberapa fail audio.wav dalam kad SD. Anda boleh menghasilkan fail.wav dengan Audacity (lihat arahan di bawah). Jangan lupa namakan fail sebagai audio_1.wav, audio_2.wav, audio_3.wav dan sebagainya.

Modul kad SD menggunakan SPI untuk menyampaikan data dengan arduino. Oleh itu, ia hanya dihubungkan dengan pin yang mengaktifkan SPI. Sambungan ini adalah seperti berikut:

  • Vcc - 5v
  • GND - GND
  • MOSI (Master Out Slave In) - pin 11
  • MISO (Master In Slave Out) - pin 12
  • CLK (Jam) - pin 13
  • SS / CS (Slave Select / Chip Select) - pin 10

Menjana fail '.wav' dengan Perisian Audacity:

  • Buka fail audio yang ingin anda ubah menjadi.wav di Audacity.
  • Klik pada nama fail dan kemudian pilih 'Split Stereo to Mono'. Pilihan ini membahagikan audio stereo menjadi dua saluran mono. Anda kini boleh menutup salah satu saluran.
  • Tukar nilai 'Project Rate' di bahagian bawah menjadi 16000 Hz. Nilai ini sesuai dengan frekuensi pensampelan maksimum ADC dalaman arduino.
  • Sekarang sampai ke File-> Export / Export sebagai WAV.
  • Pilih lokasi dan nama fail yang sesuai. Dari menu pengekodan pilih 'PCM 8-bit yang Tidak Ditandatangani' kerana kami menggunakan format PCM untuk menyimpan audio dalam format digital.

Langkah 4: Sambungkan Output Audio & Mikrofon

Sambungkan Output Audio & Mikrofon
Sambungkan Output Audio & Mikrofon
Sambungkan Output Audio & Mikrofon
Sambungkan Output Audio & Mikrofon
Sambungkan Output Audio & Mikrofon
Sambungkan Output Audio & Mikrofon
Sambungkan Output Audio & Mikrofon
Sambungkan Output Audio & Mikrofon

Menyambungkan Mikrofon:

  • Vcc - 3.3v
  • GND - GND
  • KELUAR - pin A0

CATATAN:

  • Cuba sambungkan mikrofon terus ke arduino dan bukannya menggunakan papan roti kerana mungkin menimbulkan bunyi yang tidak perlu pada isyarat input.
  • Pastikan membersihkan header pada modul mikrofon dengan bersih kerana sendi pateri yang buruk juga menghasilkan bunyi bising.
  • Modul mikrofon ini mempunyai keuntungan yang boleh disesuaikan yang dapat dikendalikan dengan bantuan periuk di bahagian belakang papan. Saya sarankan anda untuk mengekalkan keuntungan yang agak rendah kerana itu tidak akan meningkatkan kebisingan semasa anda boleh bercakap menjauhkannya ke mulut sehingga menghasilkan output yang lebih bersih.

Menyambungkan Output Audio:

  • Letakkan Kapasitor 10 uF dan perintang 1k ohm secara bersiri di papan roti dengan positif kapasitor yang disambungkan ke perintang. Ini bersama-sama membentuk penapis RC yang mengubah output PWM menjadi isyarat analog yang dapat dimasukkan ke dalam penguat.
  • Sambungkan pin 9 Arduino ke hujung perintang yang lain.
  • Terminal negatif Kapasitor disambungkan ke saluran kiri dan kanan bicu audio wanita.
  • GND bicu Audio disambungkan ke GND.
  • Soket audio disambungkan ke penguat dengan Kabel Aux. Dalam kes saya, saya menggunakan Sistem Pembesar Suara PC saya.

CATATAN:

Menggunakan PWM sebagai output audio mungkin bukan pilihan terbaik kerana DAC luaran akan memberikan resolusi dan kualiti yang jauh lebih baik. Selain itu, kapasitor dan perintang dalam penapis RC boleh menyebabkan bunyi yang tidak diingini. Tetapi hasilnya masih cukup baik untuk projek ini

Langkah 5: Kabelkan Butang

Kabelkan Butang
Kabelkan Butang
Kabelkan Butang
Kabelkan Butang
Kabelkan Butang
Kabelkan Butang

Projek ini menggunakan butang tekan sebagai antara muka pengguna. Kedua-duanya melakukan fungsi yang berbeza dan digunakan secara berbeza tetapi mempunyai pendawaian yang sama. Sambungan mereka adalah seperti berikut:

  • Letakkan butang di papan roti.
  • Pasang satu terminal salah satu butang ke pin 2 arduino dengan perintang tarik 10k ohm ke bawah. Terminal butang yang lain disambungkan ke 5v. Oleh itu, apabila butang ditekan, pin 2 menjadi TINGGI dan kita dapat mengesannya dalam kod.
  • Butang yang lain dihubungkan sama dengan pin arduino 3 dan bukannya 2.

Butang yang disambungkan ke pin 2 memainkan fail audio rawak dari kumpulan fail audio yang telah dipasang sebelumnya pada Kad SD apabila ditekan sekali.

Butang yang disambungkan ke pin 3 adalah untuk rakaman. Anda harus menekan dan menahan butang ini untuk rakaman. Arduino memulakan rakaman sebaik sahaja butang ini ditekan dan menghentikan rakaman ketika butang ini dilepaskan. Setelah menghentikan rakaman, ia segera memainkan semula rakaman itu.

Langkah 6: Muat naik Kod

Muat naik Kod
Muat naik Kod
Muat naik Kod
Muat naik Kod
Muat naik Kod
Muat naik Kod

Sebelum memuat naik kod, pastikan anda telah memasang semua perpustakaan yang diperlukan seperti TMRpcm, SD dll.

Anda juga boleh membuka Monitor Serial setelah memuat naik kod untuk mendapatkan maklum balas mengenai apa yang dilakukan oleh arduino.

Pada masa ini kodnya tidak memanipulasi audio yang dirakam untuk membuatnya terdengar berbeza tetapi saya merancang untuk memasukkan ciri ini dalam versi seterusnya di mana anda mungkin dapat menetapkan frekuensi output isyarat audio dengan bantuan periuk dan mendapatkan pelbagai jenis bunyi.

Dan Anda Selesai !!

Disyorkan: