Dalam proyek ini kita akan membangun sebuah hiburan menggunakan Arduino. Kita semua memiliki kebiasaan mengetuk Tabel atau Pena untuk membuat musik acak. Tentu saja itu mungkin tidak dianggap sebagai tingkah laku yang baik, tetapi kita semua senang melakukannya setidaknya sekali. Karenanya saya berpikir untuk membawanya ke level berikutnya dengan menggunakan kemampuan Arduino untuk memainkan nada. Setelah Anda membangun proyek ini, Anda akan dapat Menghasilkan nada dengan Mengetuk jari Anda pada apa pun yang konduktif dan menciptakan ritme Anda sendiri, seperti memainkan Piano di telapak tangan Anda. Kedengarannya keren ya, mari kita bangun.
Komponen yang dibutuhkan:
Bahan yang dibutuhkan untuk proyek ini tercantum di bawah ini, tidak wajib untuk tetap sama. Setelah Anda mendapatkan konsep tersebut, Anda dapat menggunakan cara Anda sendiri untuk membangunnya.
- Arduini Pro Mini
- Peizo Speaker
- Sensor Fleksibel
- Sarung Tangan Jari
- Resistor 10K
- BC547 Transistor
- Baterai 9V
Diagram Sirkuit dan Penjelasan:
Diagram sirkuit untuk Piano Palm Arduino ini ditunjukkan di bawah ini.
Proyek ini menggunakan total empat sensor, yaitu dua sensor fleksibel dan dua pasang Darlington yang berfungsi sebagai sensor sentuh. Kami juga telah menggunakan dua resistor pull down R1 dan R2 masing-masing bernilai 10k, yang akan bertindak sebagai resistor pull down untuk sensor Flex. Di sini sensor Flex digunakan untuk menghasilkan Tiga nada berbeda dengan menggunakan satu jari, berdasarkan seberapa banyak jari bengkok. Jadi kita bisa menghasilkan 6 suara dengan menggunakan dua jari. Pelajari di sini tentang Sensor Fleksibel.
Pasangan Darlington:
Sebelum kita melanjutkan, penting untuk mengetahui apa itu Darlington dan bagaimana tepatnya cara kerjanya dalam proyek kita. Pasangan Darlington dapat didefinisikan sebagai dua transistor bipolar yang dihubungkan sedemikian rupa sehingga arus yang diperkuat oleh yang pertama selanjutnya diperkuat oleh transistor kedua. Pasangan Darlington ditunjukkan pada gambar di bawah ini:
Seperti yang ditunjukkan di atas, kami telah menggunakan dua transistor BC547 yang kolektornya terikat untuk berkumpul dan emitor dari transistor pertama dihubungkan dengan Basis transistor kedua. Rangkaian ini bertindak sebagai penguat dengan penguatan, yang berarti setiap sinyal kecil yang diberikan ke basis transistor pertama sudah cukup untuk membiaskan basis transistor kedua. Tubuh kita bertindak sebagai ground di sini sehingga setiap kali kita menyentuh basis transistor, transistor kedua menjadi bias. Menggunakan ini untuk kepentingan kami, kami telah membangun sensor sentuh untuk proyek ini.
Pin nomor 2 dan 3 adalah pin interupsi pada Arduino yang akan ditarik tinggi menggunakan resistor pull-up internal dan kemudian pin ini akan ditahan ke ground setiap kali sakelar Darlington menutup. Dengan cara ini setiap kali kita menyentuh kabel (dari basis transistor 1 st) interupsi akan dipicu dari Arduino.
Menggunakan dua jari hanya dapat menghasilkan dua jenis nada, maka saya juga menambahkan sensor fleksibel yang akan mengubah nada berdasarkan seberapa bengkoknya. Saya telah memprogram untuk menghasilkan tiga nada berbeda per jari berdasarkan seberapa banyak jari (sensor fleksibel) ditekuk. Anda dapat menambah jumlahnya jika Anda ingin memiliki lebih banyak nada di ujung jari Anda.
Saya membuat papan lengkap di papan kinerja sehingga pas dengan mudah di telapak tangan saya, tetapi Anda juga bisa menggunakan papan tempat memotong roti. Pastikan tubuh Anda menyentuh ground sirkuit di beberapa titik. Setelah Anda menyolder semuanya, itu akan terlihat seperti ini
Saya telah menggunakan dua sarung tangan jari untuk mengamankan kabel dari pasangan Darlington dan sensor fleksibel pada posisinya seperti yang ditunjukkan di atas. Anda dapat memunculkan ide Anda sendiri (lebih baik jika mungkin) untuk mengamankannya di tempatnya saat Anda memainkan nada Anda.
Pemrograman Arduino:
Program untuk Penghasil Nada Ketuk Arduino ini cukup mudah. Kami hanya perlu melihat interupsi dari kabel Darlington dan jika ditemukan kami harus memutar nada yang bergantung pada seberapa banyak sensor fleksibel yang dibengkokkan. Kode lengkap diberikan di akhir posting ini tetapi saya telah menjelaskan beberapa bagian penting di bawah ini.
Catatan: Program ini bekerja dengan bantuan perpustakaan "pitches.h". Jadi pastikan Anda telah menambahkan file header ke program Anda sebelum Anda mengkompilasinya. Anda dapat mendownload file header pitches.h dari sini.
Dalam fungsi setup , kami menginisialisasi pin 2 dan 3 sebagai Input dengan resistor pull-up. Kami juga menyatakan mereka sebagai interrupt pin dan melaksanakan tone1 yang () bila ada interupsi pada pin 2 dan fungsi tone2 () bila ada interupsi pada 3 rd pin. Interupsi ini akan dipicu setiap kali pin ini menjadi RENDAH dari status ditariknya.
batal penyiapan () {pinMode (2, INPUT_PULLUP); pinMode (3, INPUT_PULLUP); attachInterrupt (digitalPinToInterrupt (2), tone1, LOW); attachInterrupt (digitalPinToInterrupt (3), tone2, LOW); Serial.begin (9600); }
Di dalam fungsi loop , kami terus-menerus memeriksa seberapa banyak sensor fleksibel dibengkokkan. FlexSensor 1 saya misalnya memberi nilai sekitar 200 ketika dibiarkan datar dan turun hingga 130 ketika saya membengkokkannya ke maksimum, jadi saya telah memetakan nilai dari 200 menjadi 130 sebagai 1 hingga 3 karena saya harus memainkan 3 jenis yang berbeda nada. Anda harus menyesuaikan kedua garis ini berdasarkan nilai sensor Flex dan jumlah nada.
void loop () {flexSensor1 = map (analogRead (A0), 200.130,1,3); // Petakan dengan nilai Anda sendiri berdasarkan sensor fleksibel flexSensor2 = map (analogRead (A1), 170,185,1,3); // Petakan dengan nilai Anda sendiri berdasarkan sensor fleksibel Anda}
Seperti yang kita lihat sebelumnya, fungsi tone1 () akan dijalankan ketika interupsi terdeteksi pada pin 2. Apa yang terjadi di dalam fungsi tone1 () ditunjukkan di atas. Kami melihat nilai-nilai FlexSensor1 dan memainkan nada berdasarkan Nilai flexSesnor. Nada akan dimainkan menggunakan fungsi Nada Arduino. Kami telah menjelaskan fungsi tone () di proyek kami sebelumnya.
void tone1 () {if (flexSensor1 == 1) tone (8, NOTE_D4,50); lain jika (flexSensor1 == 2) nada (8, NOTE_A3,50); lain jika (flexSensor1 == 3) nada (8, NOTE_G4,50); nada lain (8, NOTE_D4,50); }
Garis di bawah ini digunakan untuk memainkan nada. Anda dapat memainkan nada apapun yang tersedia di file header “pitches.h”. Baris di atas misalnya memutar pin NOTE_A3 selama 50 mili detik.
nada (8, NOTE_A3,50); // nada (PinNum, Nama catatan, Durasi);
Kerja:
Setelah perangkat keras Anda siap, unggah kode dan pasang di jari Anda. Pastikan tubuh Anda menyentuh tanah sirkuit di beberapa titik. Sekarang cukup sentuh bahan konduktif atau tubuh Anda dan Anda akan dapat mendengar nadanya. Anda dapat memainkan melodi atau musik Anda sendiri dengan mengetuk pada interval yang berbeda dan posisi yang berbeda.
The video di bawah ini menunjukkan kerja lengkap proyek th. Semoga Anda menikmati membangun proyek ini, saran atau pertanyaan apa pun dapat diposting di bagian komentar di bawah. Juga periksa Arduino Audio Player dan Proyek Penghasil Nada Arduino.