Monday, October 15, 2012

Reading IR Transmitter from Zyma Counter Rotation Heli

Contoh penggunaan project IR Reader yang telah di post sebelumnya adalah membaca code yang dikirimkan oleh Remote control heli merk Zyma (kebetulan yg didapat penulis merk ini).
Project ini dibuat karena remote / kendalinya merupakan "Proportional Steering" alias linear control, dimana stick controlnya menghasilkan gerakan linear sesuai posisi stick, bukan "On / Off" saja seperti mobil remote mainan.
Pulsa yang dikirimkan beruntun selama stick "Throttle" tidak pada posisi mati / paling bawah.
Setiap pengiriman, ada 36 pulsa yang dikirim (tidak termasuk pulsa header), apabila posisi stick tidak berubah maka data yang dikirim akan sama.
Kita tinggal  menghitung ada berapa step pembagian pada tiap stick sehingga bisa direncanakan aplikasi software decodernya.
Dengan mengetahui lebar pulsanya maka bisa kita decode "command code" nya, karena itulah project IR Reader sangat membantu mendecode sinyal IR yang tidak diketahui protocolnya seperti remote Zyma ini.
Dengan demikian kita bisa membuat robot / mobil atau project lainnya yang bisa dikontrol oleh remote Zyma ini, untuk menggerakkan servo atau motornya, cukup mengasyikkan kan?

Berikut penampakan Heli Zyma:



Berikut hasil decodenya untuk throttle mid, stir kiri dan stir kanan
(hanya diambil 1 step saja)




Berikut step Throttle, terdapat 29 steps (karena dimulai dari 0)
Tampak pada step 29 dan 30 menghasilkan command code yang sama,
yaitu command code pada posisi throttle max.


Friday, October 12, 2012

Stackmat Big Display

Project merubah jam digital yang sudah lama dipakai menjadi Display Besar untuk Timer Stackmat.
Project jam digital yang digunakan disini adalah versi desain penulis sendiri yang tidak dipost karena sudah terlalu banyak project jam digital di internet.
Timer Stackmat banyak digunakan sebagai timer resmi pada pertandingan Rubiks ataupun Speed Stack di seluruh dunia.
Display aslinya berharga cukup mahal karena itu dicoba dibuat project ini.
Hasil tampilan display adalah "RealTime" alias tidak ada jeda antara Stackmat Timer dan Tampilan display.
Kalo pada video terlihat agak lag karena diambil menggunakan kamera smartphone.

Berikut penampakan Jam digital sebelum dirubah:





Setelah dijadikan display Stackmat, yang dipakai hanya 5 display seven segment, karena memang hanya itu yang dibutuhkan



Bagian RTC dilepas karena tidak dibutuhkan lagi


Videonya

Wednesday, October 10, 2012

USB HID (AutoTyping Keyboard)

Aplikasi HID Keyboard dengan libUSB dalam project "pengetikan keyboard otomatis" ini, akan mengetikkan pesan begitu device di-colok-kan ke Port USB dari PC.
Device secara otomatis akan mengetikkan message yang sudah disimpan sebelumnya dalam eeprom AVR. Disini penulis menggunakan 'notepad' agar ketikan dapat terbaca secara langsung, kecepatan pengetikan di setup oleh PC secara otomatis sesuai standar keyboard.
Project ini bisa juga digunakan untuk memasukkan password pada suatu program atau  password saat kita "Login" ke Windows.
Untuk device yang dapat membuka program tertentu dan mengisi data / mengambil data lalu menyimpannya  / melakukan task lainnya masih dalam ide penulis :)
Catu daya diambil langsung dari Port USB karena pengetikan langsung dilakukan setelah inisialisasi device dan hanya terjadi satu kali, kalau dengan catu daya tersendiri berarti kita harus meng-on/off-kan power supply atau me-reset device setiap kali device akan dicolokkan.

Berikut penampakannya:

Penambahan Header untuk pemilihan Catu daya, USB atau Regulator


Penampakan pada Device Manager, Keyboard disini adalah keyboard pada PC
 


Setelah Device dicolokkan akan ada tambahan HID Device dan Keyboard lagi 


Hasil ketikan pada notepad, setelah 3 kali plug/unplug 


Videonya

Tuesday, October 9, 2012

Using libUSB in Visual Studio 2010

Sama seperti project2 sebelumnya dengan libUSB, penulis mencoba mengaplikasikan GUI untuk libUSB Device menggunakan Visual Studio 2010 bukan menggunakan Delphi.
Semua fungsi sama hanya beda tampilan pada GUI nya saja.
Penulis belum menemukan ide project yang menarik untuk di posting sehubungan dengan penggunaan libUSB pada embedded system design.
Apabila ada saran / masukan dari pembaca / sesama hobbyist akan sangat membantu blog ini.

libUSB dipilih karena dapat digunakan di banyak seri AVR ATmega Microcontroller yang tidak mempunyai koneksi "USB Peripheral Included" yang mana harganya sudah tentu lebih murah dari yang included.
Hanya saja libUSB Device adalah USB 1.1 Device bukan USB 2.0 seperti yang seri included. Namun sudah cukup,  melihat speed AVR hanya 16 - 20MHZ saja dengan memory relatif kecil dibanding kecepatan transfer USB 1.1 yang 1.5Mbps (USB 2.0 mencapai 480Mbps untuk yang full speed).
Banyak produk dengan koneksi USB menggunakan USB to UART Converter (temasuk ARDUINO dan clone2nya), selain lebih mudah, pemrograman AVR juga tidak dipusingkan oleh komunikasi USB. Namun bagi yang menyukai otak-atik program lebih mengasyikkan dengan libUSB.

Berikut penampakan GUI Visual Studio 2010 untuk testing:


Friday, October 5, 2012

USB Keypad (HID) using libUSB

Contoh project membuat HID Device yaitu keypad menggunakan libUSB.
Driver yang digunakan bukan driver windows tapi driver libUSB.
Modul yang digunakan tetap sama seperti project2 sebelumnya.
Keypad yang digunakan type plastik dome tanpa metal dome (mekanik yang biasanya menghasilkan bunyi klik), menekan tombol harus sedikit keras baru bereaksi.
Seperti pada umumnya, penggunaan tombol seperti ini menghasilkan 'bouncing' jadi pendeteksian kecepatan penekanan tombol harus disesuaikan agar tidak menghasilkan repeated press yang berlebihan.
Prinsip kerjanya sama seperti project dengan tombol pada umumnya, hanya saja hasilnya dikirim ke PC lewat jalur USB (bukan jalur UART ).





Videonya ada disini

Thursday, October 4, 2012

USB Servo Controller using libUSB

Contoh lain aplikasi dengan libUSB yaitu project USB Servo Controller.
Servo yang dipakai merupakan servo bekas RC Heli yang sudah di repair, jadi akurasi sudah tidak bagus lagi. Karena itu tidak dibuat demoproject untuk penghitungan derajat kemiringan arm servo.
Kalau penulis sudah mendapatkan servo baru, akan dibuat demo untuk kepresisian derajat arm servo.
Project ini bisa digabungkan dengan project sebelumnya (USB Switch dan Linear Control). Namun port PWM dipakai untuk koneksi USB jadi harus merubah koneksi pada modul dan juga bitbang pada source codenya terlebih dahulu. Mungkin di lain waktu apabila ada ide project yang menarik dan harus merakit lagi modul baru, akan dibuat demoprojectnya :-)






Videonya ada disini




Wednesday, October 3, 2012

USB Control Switch and Linear Control using libUSB

Project ini dibuat sebagai contoh pemakaian libUSB pada project yang pernah dibahas sebelumnya.
Contoh project sederhana ini memanfaatkan sistem transfer data untuk menyelaraskan tombol yang ditekan dan menghasilkan kode untuk 7 segment, demikian juga dengan Linear Controlnya yang digunakan untuk mengatur kecerahan nyala LED.
Modul yang digunakan tetap sama dengan project sebelumnya.




Videonya ada disini

Monday, October 1, 2012

libUSB Device Data Transfer using Generic AVR

Project USB menggunakan Driver libUSB.
Data Transfer Speed yang disupport adalah USB versi 1.1 namun sudah lebih dari cukup untuk AVR.
libUSB biasa kita kenal digunakan dalam Downloader menggunakan ATmega8 yaitu USBASP.
Data yang dapat ditransfer dalam sekali transaksi mencapai 128 bytes, namun seperti project sebelumnya hanya dipakai 64 bytes untuk menghemat memory.
Banyak project yang bisa dibuat dengan driver ini, seperti USB Switch, USB RGB LED Controller / USB DMX Controller, USB to Serial, USB Stepper Motor Controller, USB Servo Controller dan masih banyak lagi.
Bisa juga dipakai sebagai HID Device (dengan tidak menggunakan driver dari Windows seperti project sebelumnya yaitu USB HID menggunakan ATmega32U4) namun yang dikendalikan bukan program dari Windowsnya tetapi software buatan kita sendiri (sebagai dongle).
Untuk bisa dipakai sebagai HID Device dengan driver libUSB tapi bertindak sebagai mouse atau keyboard (sebagai contoh saja), source code bisa dirubah untuk menyesuaikan kriteria HID dengan driver Windows.

Berikut penampakannya:

 DIY Modul USBASP


Dengan koneksi Serial


Penampakan pada device manager

 8 bytes Data Transfer

64 bytes Data Transfer


Videonya ada disini

Sunday, September 30, 2012

USB HID Data Transfer using ATmega32U4

Project USB HID ini merupakan project lanjutan setelah sebelumnya menggunakan AT90USB162 sebagai HID Device.
Data Transfer Speed yang disupport adalah USB 2.0 (lihat datasheet).
Tujuan project ini adalah untuk mengetahui sistem/cara transfer data pada HID Device.
Data yang dapat dikirim/diterima dalam sekali transaksi adalah 64 bytes, dalam project ini hanya dipakai 16 bytes agar mudah dilihat.
Experimen ini cukup menarik karena kita bisa membuat sendiri Game Controller / Joystick bahkan Keyboard / Mouse ataupun HID Device yang lain.
Memang sekarang ini banyak HID Device yang sudah tersedia dengan harga murah tanpa perlu repot membuat sendiri, namun tidak ada salahnya otak atik project seperti ini sebagai tambahan ilmu  :-).
Salah satu kegunaan project ini yang dipakai penulis adalah menghubungkan Microcontroller dengan PC tanpa melalui jalur serial / USB to RS232 converter (menghemat komponen), memang lebih rumit pada software micro-nya tapi kerumitan adalah tantangan bagi programmer / microcontroller mania. (^^',)

Modul yang digunakan sama seperti modul pada project sebelumnya.





Software pada PC yang digunakan dibuat menggunakan software Delphi.
Berikut penampakannya




Videonya ada disini



Friday, September 28, 2012

Keyboard to UART (Old Project)

Project yang sudah lama namun tetap menarik untuk di utak-atik.
Hampir semua tombol keyboard dapat digunakan kecuali tombol:
windows, menu, macro, pause/break, sleep, wake, power serta tombol tambahan lainnya.
Tombol capslock berfungsi tapi tanpa menyalakan lampu indikator capslock pada keyboard (karena hanya komunikasi satu arah).
Tombol gabungan 'shift' dan F1 sampai F12 sudah di decode karena penulis menggunakan tombol2 tersebut.
Tombol numlock pada numeric keypad tidak di decode yang menyebabkan tombol numeric hanya menghasilkan code untuk selain angka (bisa dimodifikasi sendiri pada source code nya kalau diperlukan)
Untuk decode hasil gabungan tombol tertentu dengan tombol 'alt' atau 'ctrl' juga bisa ditambahkan (modifikasi) sendiri pada source code apabila mau digunakan.
Men-decode semua tombol tanpa perlu untuk digunakan hanya akan menghabiskan flash memory untuk microcontroller dengan kapasitas memory yang kecil.
Hasil keluaran UART bisa dipakai sebagai simulasi terminal untuk suatu project tanpa program terminal komputer.










Thursday, September 27, 2012

DIY AVRISP MK II using ATmega32U4 (also AT90USB162)

Project kali ini adalah membuat downloader AVRISP MK II menggunakan ATmega32U4 / AT90USB162.
PCB yang digunakan merupakan produk CPU Module dengan konektor USB dan ISP nya serta banyak header untuk koneksi ke masing2 kaki dari ATmega32U4 tersebut.
Dalam modul tersebut sudah terdapat Crystal, untuk sumber catu daya diambil dari Target Board karena pada module ini tidak ada Regulator Catu Daya.
Jadi pada CPU Modul ini tinggal dicari koneksi ke masing2 kaki IC yang dibutuhkan untuk ber-macam2 project.
Memang tidak praktis tetapi lebih praktis daripada membuat PCB sendiri.





Penampakan pada Device Manager sebelum Downloader dikonek


Penampakan pada device manager setelah Downloader dikonek

Penampakan pada program AVR Studio 4.18, target yang digunakan adalah ATmega8





Videonya bisa dilihat disini

Wednesday, September 26, 2012

IR Pulse Reader and Decoder


Pembaruan dari project ini bisa dilihat disini

Project kali ini adalah membaca lebar pulsa dan jumlah data bit yang dikirim, serta men-dekode sinyal dari remote control infrared dari beberapa pabrikan. Tujuan project ini adalah sebagai alat bantu untuk membuat receiver / penerima remote control infra merah yang protokolnya tidak begitu jelas, jadi tidak tahu betul berapa bit data yang ditransfer untuk di decode serta perhitungan lebar pulsanya. Yang telah dicoba adalah remote control dari merk produk2 china seperti dvd/vcd/mp3 player, televisi, ComboTV Box, CCTV, Robo Sapien versi 1 (kebanyakan hampir sama semua). Juga produk merk JVC seperti Audio Mobil, Compo Set serta Televisi. Produk Samsung, LG, Polytron, Sanyo, Sony, berupa LCD TV, Compo Set serta CRT TV. Beberapa produk televisi lokal berbagai macam merk.

Beberapa remote yang sempat diabadikan

Penampakan Hardware sederhana yang dipakai testing

Hasil tampilan pada terminal


Videonya ada disini