Helmet Pengubah Suara Spartan: 14 Langkah (dengan Gambar)
Helmet Pengubah Suara Spartan: 14 Langkah (dengan Gambar)
Anonim
Helmet Pengubah Suara Spartan
Helmet Pengubah Suara Spartan
Helmet Pengubah Suara Spartan
Helmet Pengubah Suara Spartan

Helo! Kami adalah sekumpulan 4 pelajar dari sekolah Politeknik Universiti Sorbonne:

  • Louis Buchert
  • Bilal Melehi
  • Bao Tinh Piot
  • Marco Longépé

Projek ini direalisasikan sebagai sebahagian daripada kajian kami, dan bertujuan untuk mengambil sejumlah alat, serta menunjukkan pencapaian teori kami.

Objek terkenal mengambil penampilan topi keledar yang menyerupai pahlawan permainan video tertentu yang namanya akan hilang. Untuk sisi reka bentuk juga kami mempunyai layar yang memaparkan transformasi Fourier dari isyarat audio yang keluar dari pembesar suara. Tujuan alat dengar ini adalah untuk mengubah suara pembawa dalam masa nyata dengan menggunakan sebilangan kesan yang boleh dipilih.

Matlamat pendidikan:

  • Tangkap suara dari mikrofon
  • Memperkuat, menapis, mendigitalkan isyarat
  • Menyedari FFT isyarat
  • Tunjukkan FFT ini pada skrin
  • Sintesis isyarat
  • Keluarkan suara dari pembesar suara
  • Menyedari kesan pada suara audio (gema, gema, dll.)

Sekarang kita telah meletakkan latar belakang dan membentangkan projek, sudah waktunya untuk mendapatkannya!

Langkah 1: Keperluan 1/3 - Perkakasan

Keperluan 1/3 - Perkakasan
Keperluan 1/3 - Perkakasan

Untuk membina helmet anda, kami memerlukan beberapa perkakasan untuk menjalankan peranti ini.

  • Papan Pembangunan DE0-Nano-SoC oleh Terasic + Adafruit TFT LCD Screen (Arduino)
  • Akses ke pencetak 3D untuk membuat topi keledar (Sekiranya anda pelajar universiti bergerak lebih dekat ke universiti anda, ada yang mempunyai makmal yang boleh diakses oleh pelajar)
  • Komputer dengan sambungan internet dan minimum sambungan (USB, Ethernet). Komputer anda juga perlu mempunyai pemproses yang kuat kerana menyusun program di Qsys memerlukan banyak masa.
  • (Tidak diperlukan) Pencetak yang membuat Printed Circuit Boards (PCB) dari fail Gerber untuk mengecilkan ukuran litar + solder untuk meletakkan komponen pada PCB.
  • (Sangat Disarankan): Kopi yang bagus untuk menikmati kerja anda dengan Instructable kami:)

Langkah 2: Keperluan 2/3 - Komponen untuk Litar Anda

Keperluan 2/3 - Komponen untuk Litar Anda
Keperluan 2/3 - Komponen untuk Litar Anda
Keperluan 2/3 - Komponen untuk Litar Anda
Keperluan 2/3 - Komponen untuk Litar Anda
Keperluan 2/3 - Komponen untuk Litar Anda
Keperluan 2/3 - Komponen untuk Litar Anda

Berikut adalah komponen yang diperlukan untuk litar anda:

  • Penguat audio kelas Texas Instrument LM386 AB
  • Papan Roti
  • Set kabel Lelaki-Lelaki, Lelaki-Perempuan
  • Penukar Digital-ke-Analoh LM358P (DAC)
  • Penceramah
  • Mikrofon kecil yang digunakan dalam litar analog
  • Satu set permainan perintang dari 1kOhm hingga 220kOhm
  • Kapasitor 1.5nF
  • Kapasitor 50nF
  • Kapasitor 100nF
  • Kapasitor 100uF
  • Kapasitor 220uF
  • x4 Kapasitor 10uF

Langkah 3: Keperluan 3/3 - Perisian

Keperluan 3/3 - Perisian
Keperluan 3/3 - Perisian
Keperluan 3/3 - Perisian
Keperluan 3/3 - Perisian

Akhir sekali, anda memerlukan perisian:

  • Quartus 15.1: Versi Lite
  • Penyusun C (gcc misalnya)
  • Altium untuk Reka Bentuk PCB
  • Suite tertanam SoC Altera untuk berkomunikasi dengan peta SoC

  • Dempul

Langkah 4: Litar Input

Litar Input
Litar Input
Litar Input
Litar Input
Litar Input
Litar Input
Litar Input
Litar Input

Mari membina litar. Gunakan gambar litar di atas untuk memasangnya di papan roti anda. Anda juga akan melihat gambar BreadBoard dan litar di dalamnya untuk melihat bagaimana pin disambungkan. Keseluruhan litar dikuasakan dengan Arus Terus 5V (DC). Untuk ini, anda boleh menggunakan bateri 5V dengan penukar USB-B atau penjana fungsi.

Beberapa peringatan:

  • Bekalan kuasa 5V dan tanah disambungkan pada garisan mendatar yang terpisah dari papan roti
  • Sekiranya anda mahu menyambungkan 2 komponen secara selari, masukkannya ke garisan papan roti yang sama
  • Sekiranya anda ingin menyambungkan 2 komponen bersiri, komponen mestilah hanya satu pin dalam garis umum papan roti.

Jangan teragak-agak untuk menonton tutorial khusus tentang cara menggunakan papan roti dan melancarkan litar di atasnya. Juga jangan lupa membaca dengan teliti kedudukan pin Amplifier Audio LM358P (lihat gambar di atas)

Langkah 5: Litar Keluaran

Litar Keluaran
Litar Keluaran
Litar Keluaran
Litar Keluaran
Litar Keluaran
Litar Keluaran
Litar Keluaran
Litar Keluaran

Petunjuk yang sama seperti Langkah 4. Empat input: SDI, bukan CS, SCK, bukan LDAC adalah dari Dewan DE0-Nano-Soc anda. Kami akan melihat kemudian bagaimana menghasilkannya.

Jangan lupa membaca dengan teliti kedudukan pin Penguat Audio LM386 (lihat gambar di atas)

Langkah 6: [PILIHAN] Membuat Komponen Borad dan Pematerian Litar Bercetak

[PILIHAN] Membuat Komponen Borad Litar Bercetak dan Pematerian
[PILIHAN] Membuat Komponen Borad Litar Bercetak dan Pematerian
[PILIHAN] Membuat Komponen Borad Litar Cetak dan Pematerian
[PILIHAN] Membuat Komponen Borad Litar Cetak dan Pematerian
[PILIHAN] Membuat Komponen Borad Litar Cetak dan Pematerian
[PILIHAN] Membuat Komponen Borad Litar Cetak dan Pematerian

Sekiranya anda cukup bernasib baik untuk memiliki Pencetak Papan Litar atau dapat menggunakannya, kami akan membuat Papan Litar Bercetak (PCB) kami sendiri. Perhatikan bahawa langkah ini adalah pilihan. Langkah ini hanya dilakukan untuk memindahkan litar anda dari papan roti ke PCB.

Anda memerlukan 2 fail GERBER ini.

Fail-fail ini dibuat di Altium. Gunakannya pada perisian pencetak PCB anda untuk mencetak PCB anda. Setelah mendapatkan PCB, pastikan PCB anda bersih dan trek dicetak dengan betul.

Sekarang inilah kesungguhan: Soldering. 2 gambar di atas adalah peta litar pada PCB. Setiap komponen mempunyai nama (R6, C4, MK1 dll). Gambar dalam Langkah 4 dan 5 menunjukkan parameter komponen (Rintangan, kekonduksian..). Letakkan setiap komponen dari papan roti anda ke PCB mengikut namanya.

Setelah anda menyolder semuanya dengan besi pematerian anda, uji setiap komponen dengan voltmeter untuk memeriksa sama ada terdapat litar pintas.

Langkah 7: Persediaan SoC

Persediaan SoC
Persediaan SoC
Persediaan SoC
Persediaan SoC

Mengenai penyediaan SoC, anda perlu menjalankan beberapa perintah dan skrip yang termasuk dalam suite tertanam SoC di dalam terminal. Untuk melakukan ini, anda perlu menambahkan sejumlah $ PATH. PATH digunakan dalam terminal untuk mengatakan mencari fail dalam direktori yang diberikan oleh jalan ketika anda menjalankan perintah. Untuk melakukannya, ketik baris arahan berikut:

eksport PATH = / cygdrive / c / altera_lite / 15.1 / quartus / sopc_builder / bin: $ PATH

Kemudian ketik baris arahan untuk menghasilkan tajuk dari fail sof. Anda memperoleh fail sof dengan menyusun projek anda di Quartus. Untuk melakukannya, ketik:./generate_header.

Langkah 8: Pengaturcaraan C HPS

Pengaturcaraan C HPS
Pengaturcaraan C HPS

Kita perlu menyedari 2 perkara di bahagian ini, iaitu membaca membaca nilai ADC dan menulisnya dalam SPI.

1. Baca nilai ADC

Alamat memori di mana ADC tidak dapat diakses secara langsung, sebenarnya sistem linux yang terdapat pada kad ini menyusun ingatan memori. Untuk benar-benar mengakses alamat ADC, kami akan menggunakan fungsi mmap.

"h2p_lw_spi_addr = virtual_base + ((lama tidak ditandatangani) (ALT_LWFPGASLVS_OFST + SPI_0_BASE) & (panjang tidak ditandatangani) (HW_REGS_MASK));"

Arahan ini membolehkan offset ditambahkan pada awal alamat pangkalan untuk mencapai alamat memori yang diperuntukkan untuk ADC, dan melakukan pada alamat yang dihasilkan logik DAN untuk mengambil kira penyamaran.

Selepas itu, hanya perlu mengurangkan penunjuk dalam program untuk mendapatkan nilainya.

2. Tuliskan nilai ADC dalam SPI

Manipulasinya sama, kali ini kami memberikan mmap ofset untuk mendarat di alamat yang diperuntukkan oleh SPI. Semasa menulis di SPI, dokumentasi teknikal menetapkan bahawa anda mesti menulis ke alamat +1 nilai iklan tersebut.

"* (h2p_lw_spi_addr + 1) = ((0x1 << 12) | * h2p_lw_adc_addr);"

Arahan ini membolehkan anda menulis ke SPI. Memang bit 4, jadi 1 << 12, adalah bit yang memungkinkan untuk mengaktifkan SPI. Dengan OR yang logik, oleh itu kami memberikan bit pengaktifan dan nilai ADC kepada SPI.

Langkah 9: Pemerolehan Digital ADC Dari Kad

Perolehan Digital ADC Dari Kad
Perolehan Digital ADC Dari Kad
Perolehan Digital ADC Dari Kad
Perolehan Digital ADC Dari Kad
Perolehan Digital ADC Dari Kad
Perolehan Digital ADC Dari Kad
Perolehan Digital ADC Dari Kad
Perolehan Digital ADC Dari Kad

Pertama sekali, anda harus menetapkan alamat IP Ethernet komputer anda melalui Panel Kawalan -> Rangkaian -> Kad Parmesals. Pilih antara muka ethernet kad, harta tanah, alamat ipv4 dan masukkan IP tetap, topeng dll …

Seterusnya, sambungkan kad dari sisi soket kuasa dengan kabel USB mikro. Buka pengaturcara Quartus dan lancarkan eksport. Manipulasi ini akan dibuat semula setelah setiap kad dimatikan.

Tukar kabel palam USB mikro, untuk menyambung kali ini di sebelah bicu Ethernet. Sekarang, dengan Putty, anda perlu menyambung ke kad melalui pautan bersiri. Konfigurasi dapat dilihat dalam foto, dengan ide untuk mengganti COM5 dengan COM diikuti dengan nombor yang dapat anda temukan di pengurus peranti anda (klik kanan pada logo windows untuk membukanya).

Tekan enter, anda bersambung.

Maklumat untuk memulakan semula projek: - Perbaiki ethernet ip yang sesuai dengan kad - Hidupkan kad, setiap kali anda menghidupkan kuasa, perlu dimasukkan dengan "program" di bawah kuartus projek yang disusun dalam kad. Ini dilakukan melalui port mikro-USB - Untuk dapat memaparkan hasil program, kami menggunakan lebih banyak USB mikro tetapi UART - Dengan dempul yang dikonfigurasikan untuk COM5 bersiri (atau 6 perifestan menonton menonton) Sambungkan ke kad. - Tetapkan kata laluan (passwd) - Tetapkan alamat IP ifconfig ethxx IPchoice (IP tidak jauh dari itu untuk etika PC) - Hasilkan header mengikut Qsys dengan terminal tertanam (export PATH) - make - scp l exec di peta - jalankan di bawah putty prog

Langkah 10: Pengiraan FFT

Pengiraan FFT
Pengiraan FFT

Untuk mendapatkan Transformasi Fourier Cepat dalam program C kami, kami akan menggunakan perpustakaan yang ditulis oleh Mark Borgerding: Kiss FFT. Anda boleh memuat turun perpustakaan di sini: https://kissfft.sourceforge.net/. Menerapkan FFT pada isyarat adalah perlu untuk mengubah dan menggunakan kesan isyarat. Ia juga berfungsi untuk menampilkan spektrum isyarat.

Langkah pertama dalam program C anda adalah memperuntukkan memori untuk menyimpan hasil FFT. Ukuran memori bergantung pada jumlah titik yang digunakan untuk mengira FFT. Semakin anda mempunyai mata, semakin banyak kehendak FFT. Walau bagaimanapun, program ini akan berjalan lebih perlahan dan akan menggunakan lebih banyak memori. Perhatikan bahawa anda akan mendapat dua tatasusunan dari fungsi kiss_fft: input dan output fungsi (cx_in dan cx_out)

Setelah array kami diisi dengan nilai FFT baru, iaitu ketika r = Win - 1, kami memproses FFT. Mengenai paparan, kami hanya menampilkan bahagian positif spektrum, kerana terdapat simetri antara bahagian negatif dan bahagian positif.

Mengenai paksi mendatar, kita mengurangkan nilai puncak dengan 100 * tinggi / (tinggi²) untuk membezakan puncak frekuensi utama.

Kami menggunakan panggilan sistem usleep untuk menentukan frekuensi membaca untuk nilai ADC. Kekerapan ini pada masa ini ditetapkan pada 1, 5 Hz.

Langkah 11: Memaparkan FFT

Memaparkan FFT
Memaparkan FFT
Memaparkan FFT
Memaparkan FFT

Berdasarkan contoh pemberian pada Adafruit TFT LCD Screen yang terdapat di sini: https://www.terasic.com/downloads/cd-rom/de0-nano-s… kami telah memprogram NIOS Dewan kami sehingga dia dapat membaca nilai ADC.

Jadi daftar ADC dikongsi antara NIOS dan HPS kerana nilai-nilai ADC akan digunakan untuk memaparkan FFT pada skrin NIOS, dan nilai-nilai yang sama akan ditulis pada SPI agar dapat dikeluarkan dari papan dan akhirnya ditukar oleh DAC untuk mendapatkan isyarat analogik.

Langkah 12: Perhimpunan

perhimpunan
perhimpunan

Kami hampir selesai! Anda perlu memasang setiap bahagian projet (litar masuk, litar output dan Papan). Pastikan untuk menyambungkan bahagian untuk membetulkan pin mengikut Projek Quartus.

  1. Litar input akan menghantar isyarat audio yang ditangkap oleh mikrofon, diperkuat, ditapis dan diimbangi.
  2. Program C yang terdapat pada kad akan membaca nilai-nilai ADC seperti yang telah kita lihat sebelumnya, dan akan menuliskannya pada SPI sehingga kita dapat memulihkan nilai pada GPIO kad tersebut.
  3. Kemudian output GPIO SPI akan menghantar maklumat yang akan disahkod oleh DAC kami dan diperkuat dengan berjalan untuk mencapai pembesar suara.

Langkah 13: Kesan Bunyi

Kesan bunyi
Kesan bunyi
Kesan bunyi
Kesan bunyi

Satu-satunya langkah yang tinggal adalah kesan bunyi.

Kesan yang dapat dicapai adalah:

  • Penapis Frekuensi Tinggi
  • Penapis Frekuensi Rendah

Anda boleh menukar antara kesan berkat butang. Butang ini akan mengubah pemboleh ubah dalam program C kami, sehingga dapat menerapkan efek yang tepat.

Langkah 14: [PILIHAN] Membuat Helmet

[PILIHAN] Membuat Helmet
[PILIHAN] Membuat Helmet
[PILIHAN] Membuat Helmet
[PILIHAN] Membuat Helmet
[PILIHAN] Membuat Helmet
[PILIHAN] Membuat Helmet

Berikut adalah langkah paling manual dalam projek ini:

  1. Mula-mula kami melekatkan bahagian helmet bercetak 3D yang berbeza.
  2. Untuk mengisi jurang antara kepingan terpaku, kami menambahkan kemasan menggunakan pen 3D.
  3. Kami menggilap celahan yang dipenuhi dengan pen dan topi keledar secara lebih umum agar lukisan itu dapat bertahan selepas itu.
  4. Kami melukis topi keledar dengan 2 lapisan: Yang pertama berwarna hitam antrasit, dari dekat, dan yang kedua berwarna hijau primer dari jauh untuk memberikan warna hijau gelap.
  5. Akhirnya kami mencetak logo sekolah kami di sisi Helmet

Disyorkan: