Merakit Game Console 8-bit Ardubuino | Vlog

Masih ingat cerita tentang Arduino Day tempo hari kan? Di acara itu saya bertemu dengan Mas Hendra Kusumah dan saya diberi PCB Ardubuino. Sayangnya ada beberapa komponen yang saya tidak punya stok. Kalau pun punya, tipe-nya berbeda. Seperti misalnya Arduino Pro Micro sebagai otaknya. Saya punyanya Arduino Pro Mini. Kata Mas Hendra sih harus pakai Arduino Pro Micro.

OLED Display juga berbeda. Saya punyanya yang menggunakan protocol I2C. Sedangkan Ardubuino menggunakan protocol SPI. Dan ternyata modul charger tidak sesuai. Modul TP4056 punya saya ternyata kependekan. Sepertinya di PCB Ardubuino versi 3 sudah diubah oleh Mas Hendra supaya bisa menggunakan TP4056 yang lebih umum.

Setelah komponen datang, maka saya pun segera merakitnya. Berikut adalah video-nya:

 

Asyik juga sih main console game 8-bit. Jadi ingat saat masih kecil. Saat ini saya meng-upload game Juno First. Opsi game lain bisa dilihat di website Arduboy.

Terima kasih mas Hendra Kusumah atas PCB-nya.

 

Stock Arduino Nano v3.0

Semenjak pertama kali membeli Arduino Nano, saya banyak bereksperimen dan mengetest rangkaian dengan Arduino Nano. Bentuknya yang mungil dengan bentuk DIP (dual in-line package) membuatnya gampang ditancap di breadboard. Dibandingkan dengan Arduino Uno/Leonardo, mungkin ukurannya cuma seperempatnya. Kemungilannya ini membuatnya mudah dibawa kemana-mana. Kita juga dapat membuat proyek dengan ukuran yang lebih kecil jika dibandingkan dengan menggunakan Arduino Uno/Leonardo.

Akhirnya paket datang setelah menanti lama
Akhirnya paket datang setelah menanti lama

Selain sebagai sarana experimen, saya menggunakannya juga sebagai alat untuk burn bootloader di chip-chip microcontroller seperti ATMega8 dan ATMega328, atau sebagai programmer bagi ATTiny85 dan ATtiny84 yang sering saya pakai sebagai otak bagi proyek embedded Arduino. Pendek kata, saya dapat mengandalkannya untuk berbagai keperluan. Saya sangat puas dengan Arduino Nano. Mungil tapi powerfull.

Si Mungil
Si Mungil

Hingga akhirnya saya memutuskan untuk membeli spare Arduino Nano. Selain sebagai stock, mungkin kelak dibutuhkan untuk keperluan proyek.

Kecil-kecil cabe rawit
Kecil-kecil cabe rawit

Sebenarnya pengen juga sih nyobain Arduino Due yang berbasis processor ARM. Selain lebih powerfull prosesornya, Due lebih kaya pin I/O. Asyiknya Due bisa menggunakan bahasa pemrograman Arduino. Jadi tidak perlu belajar lagi. (Ayo nabung…)

Say It with Light! (Release 1)

Setelah prototyping dengan Attiny85, mendesain ulang dengan Atmel ATmega8, tibalah saatnya aku membuat versi rilisnya. Untuk PCB aku memesan dari pihak luar supaya lebih rapi. Dan kemarin dimulailah produksi pertama “Say It with Light!” (SIWL!)

Perakitan "Say It with Light!"
Perakitan “Say It with Light!”

Pada produksi pertama ini aku terbalik saat memasang soket. Baru sadar setelah mau menancapkan MCU ATmega8. Untunglah cuma soket yang terbalik, karena tidak berpengaruh apa-apa kecuali penanda yang terbalik, hehehe… Baiklah, perakitan ke-2 dan seterusnya tentu akan lebih baik dan rapi.

Up and running
Up and running

Sedikit ada penyesuaian di code dari versi sebelumnya. Karena koneksi pin berbeda. Tapi prinsip kerjanya sama saja. Semuanya berjalan dengan baik.

Baca selebihnya »

Upload Program ke MCU dengan Bantuan Test Hook/Probe Terminal

Selama ini saya mendesain embedded sistem tanpa menambahkan interface untuk upload program. Tidak adanya interface ini karena saya tidak memiliki piranti programmer khusus untuk MCU. Di samping saya tidak ingin menambah ribet desain PCB.

Selama ini saya hanya menggunakan breadboard atau board programmer jadi-jadian. Cara ini tentu lebih murah dibandingkan membeli piranti programer khusus. Saya cukup menggunakan Arduino Uno atau Nano andalan saya untuk upload program via breadboard.

Test hook - Probe terminal
Test hook – Probe terminal

Tapi cara ini jadi merepotkan saat saya harus merevisi program sedangkan microcontroller sudah terpasang di board. Saya mencoba menggunakan kabel jumper biasa yang dipaksakan menancap di socket yang telah terisi IC-nya, tapi tidak bisa. Jalan satu-satunya adalah mencabut chip dari soket dan mengkonfigurasikannya di breadboard. Setelah upload program, chip dikembalikan ke board untuk uji coba. Kalau revisinya cuma sekali sih tidak mengapa. Tapi kalau sering? Ribet bolak-balik bongkar-pasang jungkir-balik! Apalagi bongkar pasang IC di socket beresiko merusak kaki IC itu sendiri.

Upload program ke Jamdario
Upload program ke Jamdario

Jadi saya pun mencari akal. Syukurlah ketemu akalnya, hehehe. Saya pun membeli hook atau probe terminal yang biasa digunakan untuk mengetest IC atau komponen yang sudah terpasang di board. Probe ini digunakan untuk menjepit pin IC untuk berkomunikasi serial dengan Arduino Uno yang dikonfigurasi sebagai programmer. Tidak lupa probe juga digunakan untuk menyalurkan power ke board. Hasilnya baik. Upload program berhasil dengan baik. Saya tidak perlu membongkar-pasang IC lagi. Horeee…

Mari kita lihat lebih dekat
Mari kita lihat lebih dekat

Sekarang tibalah saatnya fokus di ngoprek code untuk Jamdario.

Say It with Light! (Revision 1)

Ini adalah catatan saya dalam mendesain “Say It with Light!”. Setelah mempertimbangkan beberapa hal untuk memenuhi prinsip murah, meriah dan mudah, maka saya pun me-redesain rangkaian dengan menggunakan ATmega8 dari Atmel. Saya sangat berterima kasih kepada Atmel yang telah mengirimkan sample dari beberapa microcontrollernya.

Tampilan prototype "Say it with Light!" revisi 1
Tampilan prototype “Say it with Light!” revisi 1

Menggunakan chip ATmega8 justru mempermudah saya dalam mendesain “Say It with Light!” karena ATmega8 telah menyediakan 20 pin bebas setelah dikurangi beberapa pin yang digunakan untuk kebutuhan internal Arduino. Sedangkan “Say It with Light!” cuma butuh 17 pin I/O dengan perincian 16 pin untuk pengaturan display dot matrix dan 1 pin untuk tombol pengubah tampilan.

Cukup menggunakan 1 chip
Cukup menggunakan 1 chip

Ke-16 pin ini dibutuhkan untuk mengendalikan display dot matrix secara langsung. Pendekatan ini memang tidak efisien karena sebenarnya kita cukup menggunakan 3 pin pengendali jika menggunakan 2 buah Shift Register seperti ketika mendesain dengan ATtiny85. Kelemahan lain adalah ketika memprogramnya karena butuh pengelolaan pin yang lebih banyak.

Rangkaian rev 1 lengkap dengan komponen pasif pendukung
Rangkaian rev 1 lengkap dengan komponen pasif pendukung

Di balik ketidakefisienan ini, teknik pengendalian langsung justru punya kelebihan, yaitu proses penampilan jadi lebih cepat karena tidak perlu diproses chip external. Tampilan jadi tampak lebih terang dan stabil. Bebas flicker walau pun saya tambah perintah delayMicroseconds. Pada code ATtiny85 saya tidak menambahkan delay tapi tampilan tetap flicker.

Dengan ATmega8 lebih stabil
Dengan ATmega8 lebih stabil

Saya mendesain ATmega8 untuk bekerja dengan clock external memanfaatkan crystal 16 MHz. Kecepatan proses jadi lebih cepat 16× (atau lebih?) dari pada desain dgn ATtiny85. Sebenarnya ATtiny85 bisa bekerja sampai 20 MHz tapi itu sama saja memboroskan pin I/O-nya untuk dipakai dengan crystal external. Jadi desain tempo hari cuma mengandalkan clock internal ATtiny85 yang cuma 1 MHz.

Dari segi memori ternyata antara ATmega8 dan ATtiny85 sama-sama punya 8 KB ISP (in-system self-programmable flash program memory). Wow, ATtiny85 memang hebat ya? Jadi dalam hal kapasitas program sejajar. Hanya saja ada kelemahan dalam pemrograman ATtiny85 terutama jika kita menggunakan IDE Arduino, yaitu karena ATtiny85 tidak bisa mengakomodasi array 2 dimensi. Jadi penyimpanan text yang akan ditampilkan disimpan dalam array linear. Sedangkan jika menggunakan ATmega8 hal ini tidak masalah (tentu setelah burning bootloader Arduino).

Dalam pemrograman “Say It with Light!” Rev 1 (dgn ATmega8) ini saya menambahkan beberapa pesan yang bisa ditampilkan, misalnya icon smile, animasi panah (ceritanya untuk nembak hati), Y/N (untuk menjawab), dan beberapa icon lain yang sedang saya coba apakah bisa ditampilkan dengan baik atau tidak. Saat ini code ukurannya cuma 2,5 KB dari sekitar 7,2 KB yg tersedia. Berarti masih punya ruang untuk pesan-pesan lain yang ingin ditampilkan.

Saat ini saya sedang mendesain PCB untuk membuat permanen prototype “Say It with Light!” revisi 1. Kali ini desain PCB tidak terpaku dengan sambungan urut karena tidak menggunakan Shift Register tapi langsung dari pin ATmega8. Ini berarti desain PCB bisa diatur sambungan antara ATmega8 dengan pin display dot matrix berdasarkan kedekatan pin. Jadi bisa didesain jalur yang terdekat dan terbaik. Sisanya tinggal mapping di code. Hasilnya desain saya kali ini tidak ada jumper-nya. Horeee…

Sementara ini dulu catatan desain prototype “Say It with Light!” revisi 1. Jika ada masukan, silakan dituangkan dalam box komentar di bawah.

Salam ngoprek