Music Player dengan Orange Pi Zero

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

Continue reading “Music Player dengan Orange Pi Zero”

Logic Analyzer

Logic analyzer adalah instrumen untuk melihat dan mencatat state dari sebuah sistem atau sirkuit digital. Penjelasan yang lebih lengkapnya ada di Wikipedia, di posting ini saya hanya ingin membahas kegunaan praktis Logic Analyzer untuk pemula elektronik.

Secara mudahnya: dengan logic analyzer kita bisa melihat di waktu t apakah sebuah signal sedang dalam kondisi on/off (high/low atau 1/0). Dengan software tertentu (atau dengan software buatan sendiri) kita bisa mendecode signal 0/1 menjadi bentuk yang bisa kita mengerti.

Debugging

Bentuk debugging paling sederhana yang bisa dilakukan dengan logic analyzer adalah ini: jika kita mengeset nilai output sebuah pin, benarkah nilainya berubah? mungkin saja kita lupa mengeset mode pin menjadi output, mungkin salah nomor pin karena lupa mengupdate kode (atau mungkin salah modifikasi library milik orang lain).

Sebaliknya kita juga bisa mendebug input: kenapa hasil pembacaan sensor digital tidak terbaca? apakah sensornya memang tidak mengirimkan apa-apa, atau kode yang telah dibuat untuk membaca ternyata masih salah? (salah pin, salah mode, dsb).

Jika kita memakai protokol seperti SPI, I2C, UART, dan memilih decode yang tepat, kita juga bisa melihat apakah data yang kita kirimkan atau yang kita terima sudah benar (misalnya dalam kasus I2C: alamat device mungkin salah).

Selain untuk mendebug data input dan output, kita juga bisa mendebug timing. Dengan software tertentu, kita bisa bisa melihat jarak waktu secara visual.

Selain untuk mendebug sebuah masalah, secara umum logic analyzer ini bisa dipakai untuk belajar. Dengan melihat langsung secara visual signal SPI atau I2C, kita akan lebih mudah mengerti protokol-protokol tersebut. Continue reading “Logic Analyzer”

Catatan Elektronik, Pokemon, dan Satellite Receiver

Posting ini sekedar catatan beberapa oprekan beberapa waktu terakhir ini. Topiknya: elektronik (beberapa komponen elektronik yang saya beli), Pokemon (baik versi lama maupun Pokemon Go), dan Satellite Receiver baru saya.

Kadang saya melihat posting lama di blog ini, kadang saya banyak menulis dan kadang jarang sekali menulis. Di bulan ketika jarang menulis, saya kadang lupa apa yang dikerjakan bulan itu, jadi sekarang saya coba rangkum beberapa minggu terakhir.

Elektronik

Saya kadang iseng menambah lampu atau mekanisme lain di mainan Jonathan. Menambahkan suara biasanya merupakan hal yang repot. Beberapa waktu lalu waktu iseng browsing AliExpress, saya menemukan bahwa ada banyak chip melodi, gonggongan anjing, sirine yang dijual dengan sangat murah (1.0-1.7 USD untuk 5-10 chip, jadi harga per chipnya cuma 0.1-0.2 USD). Penggunaan chip ini juga sangat mudah: butuh power (3.0-4.5 VDC), saklar (untuk mentrigger mematikan/menyalakan suara), speaker (langsung saja ke speaker 8 ohm, tanpa perlu sirkuit amplifier apapun). Sebagian chip perlu sebuah transistor tambahan sebagian hanya butuh sebuah resistor.

Continue reading “Catatan Elektronik, Pokemon, dan Satellite Receiver”

Kesan pertama CHIP dan PINE64

Posting ini hanya sekedar review singkat, kesan pertama memakai CHIP dan PINE64. Semoga di lain waktu bisa saya buat posting baru yang lebih detail.

Di hari pertama kerja setelah liburan, saya disambut oleh dua paket yang tiba di kantor: Pine64 dan CHIP. Kedua benda ini sudah saya preorder lama sekali. CHIP saya pesan di Cyber monday 30 November 2015, dan PINE64 saya pesan 20 Maret 2016.

CHIP

Saya pertama kali mendengar CHIP dari Kickstarter yang fenomenal (2 juta dollar), tapi masih agak ragu mendukungnya karena agak mengkhawatirkan. Tapi akhirnya karena penasaran saya beli juga di Cyber Monday. Di Cyber Monday ada diskon CHIP, tadinya 9 USD menjadi 8 USD, jadi saya memesan dua dengan ongkos kirim 6 USD, jadi totalnya 22 USD untuk dua CHIP. Saat ini saya cek di website getchip.com harganya 9 USD belum termasuk kabel composite (5 USD), case (2 USD) dan ongkos kirim. Ketika saya menerima CHIP, di dalamnya sudah termasuk ada kabel composite dan case yang sudah dipasang, jadi saya benar-benar beruntung memesan jauh hari.

20160711_145513

Secara singkat CHIP ini adalah sebuah SBC berukuran mini dengan built in bluetooth, WIFI, NAND flash, USB, dengan RAM 512 MB. SOC yang dipakai benda ini adalah Allwinner R8. Tidak ada slot SD/MicroSD card di CHIP, dan tidak ada konektor Ethernet. Saat ini hanya ada satu model CHIP.

Karena sudah memiliki built in flash storage, maka kita tidak perlu mendownload atau mencari image lalu menuliskannya ke SD Card. Begitu dibuka, kita bisa mencolokkan CHIP ke monitor dan langsung bisa diboot dengan power dari micro USB.

Kendala pertama untuk CHIP adalah: konektor output built in hanya composite, sedangkan monitor komputer saya hanya bisa VGA, HDMI, dan DP. Sebenarnya ada board terpisah untuk menampilkan output CHIP via konektor VGA atau HDMI, tapi harganya mahal untuk VGA harganya 10 USD, dan untuk HDMI harganya 15 USD, lebih mahal dari CHIP itu sendiri. Karena saya pelit, saya tidak membeli keduanya.

Untungnya saya ingat kalo masih punya TV kecil yang tadinya dipakai di mobil (sekarang yang di mobil sudah diganti yang agak besar).

IMG_0920

Karena hanya memiliki satu port USB host, maka saya memakai hub agar bisa memakai mouse dan keyboard sekaligus. Sebenarnya benda ini memiliki bluetooth, jadi teorinya bluetooth mouse dan keyboard bisa dipakai, tapi karena saat ini saya tidak punya keduanya, saya pakai USB saja.

Sebenarnya ada cara lain untuk mengakses CHIP ini, yaitu via USB di komputer, CHIP akan dianggap sebagai serial port dan bisa kita akses dari program terminal yang bisa mengakses serial port seperti Putty, Minicom, Screen dsb. Saya ingin menghubungkan ke monitor karena penasaran seperti apa GUI-nya dan seperti apa proses bootnya.

ttylogin.png

Ukuran NAND flash-nya memang hanya 4GB, tapi yang dipakai OS hanya 528 MB, jadi cukup untuk menyimpan banyak hal tanpa perlu storage external. Kebanyakan SBC lain tidak memiliki built ini NAND (misalnya Raspberry Pi). Di satu sisi memiliki built in NAND ini sangat praktis: tidak perlu download image untuk bisa memulai, tidak perlu membeli SD Card terpisah, performanya lebih bagus dibandingkan SD Card. Tapi di lain pihak memiliki SD Card juga ada kelebihannya: mudah berganti OS (hanya perlu menukar SD Cardnya), kapasitasnya bisa kita beli sesuai keinginan kita.

Built in WIFI dan Bluetooth menurut saya akan sangat berguna untuk berbagai proyek. Salah satu yang kepikiran oleh saya adalah mengubah keyboard apapun menjadi bluetooth keyboard (misalnya mechanical keyboard biasa supaya jadi bluetooth enabled). Port micro USB di board ini sebenarnya adalah port OTG, jadi teorinya benda ini juga bisa mengemulasikan device USB apa saja.

Beberapa hal sudah saya lihat tapi belum dicoba, misalnya untuk melakukan flash ulang kita bisa menggunakan browser Chrome (ada API bagi Chrome Extension untuk bisa mengakses USB sehingga ini dimungkinkan). Ada juga konektor untuk batere dan ada sirkuit built in sehingga baterenya akan dicharge ketika kita mencolokkan micro USB ke CHIP.

Secara singkat, CHIP ini cocok sekali untuk menambahkan kapabilitas IOT pada benda lain. Harganya murah, ukurannya kecil, sudah ada konektivitas bluetooth dan WIFI, dan bahkan bisa menggunakan batere dengan sirkuit charging yang sudah built-in. Secara umum CHIP mendapatkan review yang positif dari banyak pihak, dan cukup cocok untuk pemula. Cocok untuk pemula di sini maksudnya: cara mulai memakainya mudah, komunitasnya cukup besar dan baik.

Kelemahan CHIP adalah jika kita butuh sesuatu yang ekstra maka harganya akan menjadi cukup mahal. Contoh: jika butuh ingin dihubungkan ke TV melalui HDMI maka kita perlu menambah 15 USD lagi. Jika ingin dihubungkan ke beberapa USB maka perlu hub (contohnya jika storage tidak cukup maka perlu USB disk atau USB Card reader + memory card-nya).

Jika keperluannya untuk menonton film atau sebagai media center, maka pasti butuh HDMI, jadi harganya minimal 9 USD (chip) + 15 USD (HDMI adapter) = 24 USD. Dengan 11 USD ekstra Anda bisa membeli Raspberry Pi terbaru dengan RAM 1 GB dan sudah quad core, memiliki WIFI dan Bluetooth, dan memiliki 4 port USB.

Saya sedang mempelajari lebih lanjut dan mempertimbangkan apakah akan membeli PocketCHIP atau tidak (saat ini sedang promo, 49 USD, harga biasanya 69 USD). PocketCHIP ini adalah casing berupa layar dan keyboard CHIP yang bisa dikantongi. Benda ini cukup unik karena SBC yang lain tidak menawarkan solusi seperti ini.

PINE64

Device berikutnya yang saya test adalah PINE64. SBC ini muncul di kickstarter dan cukup sukses (1.7 juta USD terkumpul). Review awalnya cukup negatif, tapi saya sudah terlanjur pesan. Alasan utama membeli benda ini adalah karena saya ingin bereksperiman dengan assembly ARM64 (board yang lain waktu itu masih sangat mahal). Dari jumlah yang dikumpulkan di kickstarter (yang artinya banyak orang memiliki benda ini), saya berharap bisa terbentuk komunitas yang kuat seperti Raspberry Pi.

Sebagai catatan: saat ini meski belum didukung resmi, Raspberry Pi 3 sudah bisa menjalankan Linux ARM64. Jadi jika ingin sekedar belajar ARM64, Raspberry Pi3 juga bisa dipakai.

Ada beberapa opsi PINE64, memorinya bisa 512 MB, 1GB atau 2GB, dan apakah kita ingin ekstra WIFI/Bluetooth (semuanya memakai SOC Allwinner A64). Versi 1G dan 2GB memiliki ethernet gigabit (keduanya ini disebut juga PINE A64+). Karena tujuan saya ingin belajar di sisi software, saya pilih RAM terbesar yaitu 2GB, dengan harga 29 USD (RAM yang terkecil 512 MB cuma 15 USD). Saya beli juga modul WIFI/Bluetooth (+10 USD), karena mungkin nanti berguna. Ongkos kirimnya cukup mahal: 12 USD ke Thailand.

20160711_101658

Ketika saya membuka kotaknya, kesan pertama saya adalah: wow besar sekali ukurannya, lebih besar dari SBC lain yang saya punya. Dengan ukurannya yang besar, jelas ini kurang cocok untuk IOT, lebih cocok di taruh di atas meja sebagai server, media player atau desktop. Ternyata opsi WIFI/BT diberikan dalam bentuk board yang perlu kita pasang (sangat mudah, tidak mungkin terbalik).

IMG_0921

Untuk testing, saya mendownload Debian tanpa desktop. Saya tidak berharap akan langsung sukses mengingat review awal cukup jelek, tapi ternyata booting bisa lancar dan langsung muncul pesan boot di layar via konektor HDMI. Ini berbeda dengan ketika saya mencoba Orange Pi, kadang booting berhasil tapi tidak tampil apa-apa di layar walau bisa diakses via jaringan.

pine64

Saya baru mencoba benda ini sebentar sekali, jadi belum bisa berkomentar banyak. Kesan pertama: benda ini cepat, konektornya ada banyak selain baris konektor kompatibel dengan PI, ada baris konektor ekstra yang diberi nama Euler, ada konektor headphone, IR Receiver dan bahkan bisa memakai batere seperti CHIP juga.

Sesuai dengan tujuan utama: untuk mengetes software Arm64 bit, saya bisa dengan mudah mengcompile dan mendebug hello world seperti pada umumnya di platform lain.

arm64

Ada banyak yang belum saya test di PINE64 (dan saya tidak tahu apakah akan segera saya test atau tidak). Contoh hal-hal yang bisa ditest: Android di PINE64, memutar video di Pine64, GPIO, dsb. Yang jelas untuk saat ini saya hubungkan saja benda ini ke jaringan supaya bisa saya akses dan pelajari kapan saja.

Harga kemalasan (beberapa dollar saja)

Tulisan ini bukan tentang diskusi filosofis mengenai harga kemalasan, tapi mengenai harga komponen elektronik dari China yang begitu murah yang dalam satu hal membuat orang jadi malas, tapi dalam hal lain membuat orang jadi rajin.

Waktu belajar elektronik sekitar 2007, harga berbagai kit elektronik masih mahal. Beberapa tahun kemudian, Arduino mulai populer (terutama yang UNO), tapi masih sedikit clonenya, dan harganya yang resmi masih sekitar 30-65 USD/board belum termasuk ongkos kirim. Arduino jadi sekedar alat belajar dan prototyping, tidak untuk implementasi akhir. Ketika ingin men-deploy yang sudah kita buat, biasanya kita akan memprogram sebuah chip Atmega yang dibeli terpisah untuk menghemat karena harga sebuah chip Atmega hanya beberapa dollar saja, apalagi jika yang kita buat itu tidak terlalu penting, misalnya komponen mainan.

Fast forward tiga tahun yang lalu: clone Arduino UNO sudah sampai titik harga 9.9 USD. Dan setahun belakangan ini bahkan bisa didapatkan dengan harga sekitar 3 USD saja termasuk ongkos kirim.

Sekarang harga clone Arduino udah murah banget. Satu board harganya 2.87 USD dengan ongkir 1.37 USD. Ongkir ini per…

Posted by Yohanes Nugroho on Wednesday, January 28, 2015

Sekarang malas sekali memprogram chip microcontroller jika hanya ingin memakainya di rumah, pakai saja langsung Arduino Uno-nya, lalu beli lagi yang baru. Jika butuh yang ukuran lebih kecil (misalnya mungkin karena ingin dimasukkan mainan, sedangkan Uno terlalu besar) maka kita bisa membeli versi Pro Mini, yang harganya sekitar 17 USD untuk 10 board. Untuk produksi massal, tentunya microcontroller saja tanpa board akan tetap lebih murah dan reliable. Continue reading “Harga kemalasan (beberapa dollar saja)”

Sebulan memakai printer 3D

Sesuai dengan niat saya sebelumnya, saya menuliskan update setelah sebulan memakai 3D printer.

Hardware

Beberapa minggu pertama printer 3D saya letakkan di luar kamar saya karena kamar ngoprek saya sudah terlalu penuh. Akhirnya saya merapikan kamar saya selama liburan, dan sekarang sudah bisa masuk kamar. Karena posisinya sudah tetap, saya mensetup OctoPrint di Raspberry Pi saya dengan kamera. Ketika membeli, saya hanya diberi dua filamen: PLA merah dan ABS hitam, saya sudah memesan dan menerima filamen PLA putih.

Saya sudah mengidentifikasi masalah utama printing sebelumnya dengan PLA: underextrusion (ini tidak terjadi di filamen ABS yang saya miliki). Ini akhirnya saya selesaikan dengan kombinasi software (mengeset kecepatan print agar lebih rendah) dan mengolesi filamen dengan minyak goreng. Saya agak curiga filamen merah yang diberikan paketnya agak bermasalah karena kelembaban. Seperti yang saya ceritakan sebelumnya, rollnya (bagian hitamnya) pecah di tengah, jadi mungkin plastiknya tidak kedap udara. Menurut yang saya baca, filamen PLA tidak bisa disimpan lama di tempat yang lembab. Percobaan dengan filamen PLA putih yang baru tidak butuh minyak dan hasil printnya lebih bagus dengan setting yang sama.

Karena poros spool PLA merah pecah, saya memprint penahan supaya spool ini bisa dipakai tanpa harus menguraikan filamen secara manual (tadinya saya tahan dengan benda yang ada di sekitar, tapi ribet jika perlu digeser).

penahanpenahan1

Continue reading “Sebulan memakai printer 3D”

Raspberry Pi

Saat ini saya punya banyak sekali benda yang bisa saya oprek. Sekarang saya cuma mau cerita salah satu di antaranya: Raspberry Pi (RPI). Raspberry Pi adalah komputer kecil dengan harga relatif murah (35 USD). Saat ini saya punya 6 Raspberry Pi, 3 di antaranya versi 1 (RPI1) dan 3 yang lain versi 2 (RPI2), keduanya model B. Ada juga model A, tapi saya jelaskan nanti.

RaspberryPi-1

Harga 35 USD tersebut hanya RPI-nya saja, untuk bisa memakainya kita butuh beberapa hal lain. Hal paling penting yang harus dibeli adalah SD Card (untuk RPI1) dan Micro SD Card (untuk RPI2). Ukuran card minimal 8 GB (sebenarnya kalo mau rajin mencari OS alternatif, 4 GB juga cukup). Kita bisa menginstall OS sendiri, atau juga bisa membeli SD Card yang sudah jadi (sudah terinstall OS di dalamnya).
Continue reading “Raspberry Pi”