Tujuan proyek ini adalah membuat player musik untuk latihan piano Jonathan. Nomor lagu diinput dengan numeric keypad, audio diputar di speaker yang biasa dipakai di PC, output ditampilkan di LCD 20×4.
Buku pelajaran piano yang dipakai oleh Jonathan disertai CD Audio sebagai musik pengiring, dan CD ini tentunya sudah di-rip dan masuk ke iPad.
Sebenarnya memakai iPad ini cukup praktis, tapi seringkali yang terjadi:
- Lupa di mana menaruh iPad-nya
- Lupa mencharge iPadnya
- Terdistract oleh game/app lain di iPad
- Joshua tiba-tiba datang ingin lagu lain
Ada banyak cara untuk mengimplementasikan proyek ini. Keypad yang saya pilih adalah yang USB. Meski harganya sedikit lebih mahal dari keypad murahan, tapi tombolnya lebih mudah ditekan. Keypad murahan seperti gambar di bawah ini pernah saya coba, dan hasilnya mengecewakan (sulit sekali ditekan).
Penggunaan keypad menyederhanakan pemilihan lagu (tidak perlu scroll di iPad) dan saya membuat shortcut yang memudahkan untuk mengulangi lagu dari depan dengan sebuah tombol. Biasanya Jonathan memainkan piano, di tengah salah, dan ingin mengulang lagi (dan di iPad biasanya bagian ini agak repot).
Untuk memutar lagunya, saya bisa saja memakai Arduino plus modul MP3 player. Tapi Modul MP3 yang sudah saya miliki sayangnya tidak bisa langsung play ke lagu tertentu (hanya bisa next atau previous song), dan saya belum menemukan modul MP3 yang bisa parsing judul lagu dari file MP3. Jadi meskipun cara ini paling murah, saya memikirkan cara lain.
Akhirnya saya memutuskan menggunakan Orange Pi Zero untuk memutar lagu dan sekaligus tempat program utamanya. Orange Pi Zero ini relatif murah, harganya sekitar 10 usd (sudah termasuk ongkir), saya sudah pernah membahas sekilas Orange Pi Zero ini sebelumnya. Sekalian saya ingin mengetes kelengkapan library software Armbian. Orange Pi Zero ini tidak punya konektor audio output, tapi bisa dengan mudah ditambah dengan modul seperti ini:
Untuk menampilkan input dan lagu saat ini, I2C sudah didukung dengan baik oleh ARMbian, dan library python-smbus juga sudah tersedia, jadi mudah memporting kode yang pernah saya pakai di Raspberry PI.
Program utama saya tulis dalam python menggunakan library pygame. Alasan saya sederhana menggunakan library ini: saya bisa mudah menangani event, dan bisa dengan mudah mengendalikan suara yang diputar di latar belakang.
Di hari pertama benda ini cukup sukses dipakai Jonathan, dan lebih sukses lagi jadi mainan Joshua. PR saya berikutnya adalah membuat casing yang bagus supaya tidak mudah dirusak oleh Joshua. PR lainnya adalah mempercepat booting ARMBian yang saat ini butuh sekitar 30 detik. Jonathan juga sudah mengusulkan fitur supaya dia bisa mencatat berapa kali sudah memainkan sebuah lagu.
Di hari kedua benda ini masih jadi rebutan Jonathan dan Joshua. Jonathan minta tambahan fitur lagi: jika kita menekan tombol tertentu, dia ingin keluar bunyi fire alarm, karena di sekolahnya sedang diajari proses evakuasi jika ada kebakaran.
Saya senang kalau hal yang sederhana yang saya buat bisa terpakai, dan sepertinya akan ada lebih banyak lagi request-request dari Jonathan untuk proyek ini.
Wah menarik dan salut untuk kreatifitasnya demi anak tercinta .. 🙂
Saya baru lihat tulisan tulisan anda pak dan mulai terinspirasi , kebetulan juga ini lagi nyoba-nyoba Orange Pi untuk akses GPIO , lagi kesulitan juga untuk akses I2Cnya,
ada referensi untuk porting dari raspberry ke orange pi ?
Secara umum sekarang banyak library yang sudah diporting ke orange pi, tapi memang harus rajin search supaya tahu. Kalau yang i2c, saya pake python-smbus, portable antara Raspberry Pi dan Orange Pi Zero.
Hai pak Yohanes.
Saya pemula menggunakan linux, terutama single board dan armbian.
saya memilih orang pi zero karena harganya yang murah.
namu saya mengalami kendala-kendala dalam penggunaannya ditambah minimnya informasi mengenai opi zero ini.
Saya mau tanya:
– di saat saya menggunakan image armbian 3.4.113 baik yang debian jessie maupun yang ubuntu xenial, opi saya selalu stack pada proses setelah mengganti password pertama kali. Jika menggunakan armbian 3.4.113 mod openwrt berhasil. Biasanya dikarenakan apa?
– Saya ingin menjadikan opi zero ini sebagai MAG Set Top Box linux apakah ini memungkinkan?