Tugas Besar EL3014 Sistem Mikroprosesor Audio Visualizer

Tugas Besar EL3014 Sistem Mikroprosesor

Music Visualizer

Music Visualizer ini merupakan alat yang dapat memberikan visualisasi dengan memanfaatkan sistem kendali LED yang secara real-time menampilkan spektrum frekuensinya dari sinyal suara yang ditangkap. Dalam hal ini Music Visualizer ini digunakan sebagai dekorasi ruangan ketika musik sedang dimainkan.

Alat dirancang menggunakan Arduino UNO dan diprogram dengan bahasa pemrograman C. Lalu memiliki input sinyal audio yang akan ditangkap menggunakan microphone yang terbuhung. Output dari alat ini adalah tampilan visualisasi spektrum audio yang ditampilkan pada matriks LED.

Desain Alat

Diagram Blok Audio Visualizer
·         Power supply yang digunakan untuk Audio Visualizer adalah baterai 9V. Dengan menggunakan baterai, maka alat yang akan dibuat memiliki kemampuan portable dan konsumsi daya yang rendah.
·         Untuk dapat menangkap audio yang ingin diperlihatkan spektrum frekuensinya, digunakan electret condenser microphone.
·         Arduino UNO berfungsi untuk melakukan proses penerjemahan audio ke dalam spektrum frekuensi dengan memanfaatkan FFT.

·         Output hasil proses penerjemahan berupa spektrum frekuensi ditampilkan pada LED matrix.

Implementasi Hardware

Komponen yang Digunakan

Komponen yang digunakan untuk membuat Audio Visualizer dimulai dari sensor suara sampai menampilkan spektrum sinyal adalah sebagai berikut :

Sound Amplifier dengan OP-AMP LM358

Untuk dapat mengambil input berupa suara secara utuh, dilakukan penguatan sinyal audio dengan menggunakan LM358 dual operational amplifier dengan bentuk komponen dan skematik yang terlihat seperti berikut.

Komponen LM358
Skematik LM358
Komponen LM358 kemudian dimanfaatkan dengan membuat rangkaian sound amplifier seperti berikut

Skematik Sound Amplifier
Komponen-komponen yang diperlukan untuk membuat sound amplifier diantaranya :
·         Kapasitor (10µF, 100nF, dan 220µF)
o   Kapasitor C1 bernilai 10µF berfungsi sebagai coupling capacitor
o   Kapasitor C2 bernilai 220nF berfungsi sebagai output coupling
o   Kapasitor C3 bernilai 100nF berfungsi sebagai power supply decoupling
·         Resistor (1kΩ, 10kΩ, dan 100kΩ)
o   Resistor R1 bernilai 1 – 10 kΩ berfungsi sebagai load resistor untuk microphone
o   Resistor R2 dan R3 yang keduanya bernilai 10kΩ berfungsi sebagai voltage divider yang membagi tegangan menjadi setengahnya
o   Resistor R4 dan R5 yang masing – masing bernilai 1kΩ dan 100kΩ bekerja sebagai penguat dengan penguatan sebesar 100 kali dan bekerja pada mode inverting
·         Electret Microphone yang berfungsi untuk mengambil suara.
·         Supply Voltage (Arduino)

Arduino Uno R3

Arduino Uno adalah board mikrokontroler berbasis ATmega328 (datasheet). Memiliki 14 pin input dari output digital  dimana 6 pin input tersebut dapat digunakan sebagai output PWM dan 6 pin input analog, 16 MHz osilator kristal, koneksi USB, jack power, ICSP header, dan tombol reset. Untuk mendukung mikrokontroler agar dapat digunakan, cukup hanya menghubungkan Board Arduino Uno ke komputer dengan menggunakan kabel USB atau listrik dengan AC yang-ke adaptor-DC atau baterai untuk menjalankannya.

Arduino Uno R3

 LED matrix 8x8 bi-color

Hasil spektrum akan ditampilkan dengan menggunakan LED matrix 8x8 bi-color. Untuk menampilkan besarnya frekuensi dari audio, digunakan sumbu x sebagai penanda. Semakin kanan lampu LED yang menyala pada LED matrix, maka semakin tinggi frekuensi dari audio yang didengar. Untuk menampilkan besarnya amplituda dari audio, digunakan sumbu y sebagai penanda. Semakin atas lampu LED yang menyala pada LED matrix, maka semakin besar aplituda dari audio yang didengar. Untuk lebih jelasnya, dapat dilihat pada gambar berikut
Implementasi Audio Visualizer pada LED Dot Matriks

 Implementasi Software

Flowchart


Gambar 2.2.1 Flowchart Kode Program
Pertama sinyal suara akan dikonversi menggunakan ADC, kami mengeset regiter untuk ADC dengan mode free-running agar konversi ADC cukup cepat. Sampel audio yang kita ambil adalah 128 sampel. Ketika sampling terlah selesai, sampel tersebut kami konversi menjadi nilai spektrum menggunakan FFT. Kami menggunakan library yang menyediakan konversi FFT 128-point. Setelah hasil di konversi, hasil spektrum kemudian kami berikan equalizer dan noise filtering untuk meningkatkan kualitasnya.
Lalu setelah didapatkan nilai dari spektrum yang berupa array dengan 64 nilai, kami membaginya menjadi 8 bagian yang dijumlahkan dan nilainya akan ditampilkan pada LED matriks. Untuk memberikan tampilan yang bagus pada LED matriks, nilai maksimal dari kedelapan nilai akan dicari lalu nilai tersebut akan menjadi pembanding dengan ketujuh nilai lainnya. Dengan cara ini, nilai ketika volume cukup kecil juga akan memberikan visualisasi yang baik untuk menunjukkan frekuensi dominan dari sampling yang diambil.
Untuk output pada LED matriks, kami mengunakan timer interrupt yang aktif setiap 0,1 detik, yang isi dari fungsi interruptnya adalah menampilkan hasil dari perhitungan FFT pada sampling dan menampilkannnya pada LED matriks dengan scanning setiap rownya.

 Hasil Implementasi

 Hasil Implementasi LED Matrix

Rangkaian diimplementasikan pada breadboard dengan menggunakan komponen tambahan berupa jumper dan resistor 220 ohm. Hasil implementasi dapat terlihat sebagai berikut
Gambar 2.3.1 Implementasi LED Matrix
Ketika dilakukan pengetesan alat, terlihat LED matrix menyala sesuai harapan.
Gambar 2.3.2 Hasil Implementasi LED Matrix

Hasil Implementasi Sound Detector LM358

Rangkaian penguatan suara dengan menggunakan komponen LM358 diimplementasikan pada breadboard dan terlihat seperti berikut
Gambar 2.3.3 Implementasi Microphone Amplifier
Ketika LM358 dilakukan pengetesan alat dengan menggunakan serial plotter pada arduino, didapatkan hasil seperti berikut
Gambar 2.3.4 Implementasi Microphone Amplifier
Ketika tidak ada input suara, nilai ADC yang terdeteksi stabil pada nilai 564. Ketika ada input suara, terlihat sinyal akan terekam dan mengalami osilasi seperti gambar diatas.

Hasil Implementasi Audio Visualizer

Rangkaian penguatan suara dengan menggunakan komponen LM358 digabungkan dengan LED matrix seperti pada gambar berikut
Dapat dilihat pada sistem dibuat kondisi awal yang menunjukkan Baris pertama dari LED matrix yang menyala semua yang menandakan tidak adanya audio yang terekam. Ketika dilakukan pengetesan alat, didapatkan hasil sebagai berikut

Terlihat ketika diberikan input suara, maka audio yang dimasukkan melewati sound detector LM358 akan diproses dengan arduino dan pada akhirnya ditampilkan spektrumnya pada LED Matrix. Suara yang digunakan untuk pengetesan ini menggunakan suara manusia dan dapat dilihat spektrum yang dihasilkan menampilkan amplituda terbesar pada frekuensi yang rendah.
Dengan melakukan pengetesan besar frekuensi yang dapat dideteksi melalui website http://onlinetonegenerator.com/ didapatkan rentang frekuensi yang dapat dideteksi dimulai dari 300 Hz – 4000 Hz.


Lampiran : http://sismik-091-108.blogspot.com/2017/05/lampir.html
Video : https://www.youtube.com/watch?v=ChQRePPZ1m4

Comments

Popular posts from this blog

Tugas Desain Jam Digital

Lampiran