Thursday, October 27, 2016

std_peripheral vs HAL_library

Dilema pemilihan Library

Sebenarnya ini merupakan kali kedua saya menuliskan tentang “HAL” ini. tapi saya merasa ingin meniliskan kelanjutannya mesikupun keputusan saya masi tetap sama, yaitu saya tetap akan menggunakan std_peripheral dalam project yang sedang saya kerjakan. Berikut ini adalah beberapa link yang saya temui untuk memperkuat alasan saya menggunakan std_periph pada project saya
  1. CMSIS vs HAL vs Standard Peripherals Library
  2. HAL vs standard peripheral library
  3. New HAL libraries vs Std Peripheral libraries
Mari kita melihat satu persatu dari link diskusi diatas, link yang pertama, membahas tentang orang yang ingin memulai suatu project dengan memilih cara yang tepat untuk menginfsetasikan waktunya, suka bersulit sulit dahulu, tapi bisa mengendalikan mikrokontroler lebih dalam dan lebih cepat. Pada link tersebut, malah ada yang menjawab sambil memberikan contoh kode asembly… hem kayaknya bisa di coba tapi nanti.
Pada link yang ke dua. Di sini saya mendapatkan pencerahan yaitu…
So which is recommended or better?
Are you trying to drive nails or screws? You’re asking the wrong question.
What’s right for you might be different for me. If you like hardware a lot, program at a register level, if you like to code relatively quickly and cleanly with a thin but robust and stable abstraction use the SPL, if you want others to supply all the functionality and understanding and tie you to their vision of the universe with a thick, deep abstraction then use HAL/Cube.
Disinilah saya menemukan apa yang saya cari. Seperti kalimat yang di bolt pada quote diatas. ” Jika anda menginginkan kode yang relatif cepat dan jelas meskupun singkat tapi robust dan stabil maka gunakanlah SPL”. Namun ini tidak menutup kemungkinan bagi pembaca yang ingin menggunakan HAL/Cube juga. Ini terkait dengan cara apa kita akan membuat project kita menggunakan STM32.
Akhir tulisan saya, saya lampirkan link download untuk mendownload lib std_peripheral…
Salam, semoga tambah semangat dalam menilis kode stm32
Written with StackEdit.

Wednesday, September 21, 2016

Markdown to blogger with stackedit

Cerita pengantar

xixix, mungkin terbaca sedikit aneh… masa judul bahasa inggris pas liat isinya gak ada inggris inggrisnya… tapi yah sudah lah. Postingan ini merupakan sambungan dari postingan sebelumnya, yang menceritakan tentang bagaimana saya sampai memeutuskan untuk menggunakan stackedit sebagai program editor untuk markdown.

Set up file markdown agar dapat di posting ke blogger.

Berikut ini adalah beberapa langkah yang perlu dilakukan agar file markdown yang kita buat dapat terhubung ke blogger, bahkan dapat terposting langsung di blog kita. Tentu saja proses ini telah melewati tahap autentifikasi account terlebih dahulu. Langkah langkahnya sebagai berikut.
  1. Klik tanda pagar yang ada di pojok kiri atas dari editorial stackedit (#)
  2. Klik publiks atau icon tanda panah keatas.
  3. Pilih blogger.
  4. Pada window publis on blogger, isi kolom blog URL dengan alamat blog kita.
  5. Pindah halaman ke blog kita, dan create post.
  6. Pada kolom alamat di samping icon rumah (Home). akan tertampil postID dari postingan yang baru kita create.
  7. Copas postID tersebut dan lanjutkan pengisian postID pada langkah ke-4.
  8. Selanjutnya klik tombol upload yang ada di pojok kiri atas.
Untuk diperhatikan, judul yang kita ketik untuk artikel postingan bukanlah nama file yang kita tulis.
Written with StackEdit.

Pencarian Markdown Editor

Markdown mungkin sudah merupakan istilah yang umum bagi para pengembang web atau orang yang tertarik dengan sesuatu aturan pengetikan tertentu dengan harapan ada hal yang bersifat otomatis sehingga tidak perlu mempedulikan cara mengedit font dan tampilannya.
Saya tertarik untuk menggunakan teknologi markdown untuk mempermudah saya menulis blog, berhubung saya bukanlah orang yang memiliki kemampuan menulis bahasa HTML, tatapi memiliki citarasa tinggi akan estetika agar halaman blog saya terlihat indah…. ah sudah lah…. jangan lanjutkan paragraf ini….
Selain itu, saya ingin menggunakan VIM sebagai text editor default saya, dan coba membiasakan diri dengan program tersebut. Sehingga saya berpikir, jika menggunakan VIM untuk mengetik Markdown kayaknya seru juga. kemudian saya coba coba mencara sumber yang membahas tentang hal tersebut.
Ketemulah caranya yaitu dengan mengikuti langkah-langkah pada link ini. Setelah menerapkan semua langkahnya…. waw…. amaizing…. tiba tiba pas membuka README.md, secara otomatis satu window browser langsung terbuka dengan alamat localhost:8090 langsung terbuka dan lansung menampilkan apa yang sedang kita ketik… keren…
Selanjutnya saya coba untuk membuat file .md dengan nama yang lain. Harapan saya, pengalaman yang saya alami sama dengan pada paragraf sebelumnya, akan saya alami juga saat itu. Tenrnyata yang terjadi sangat berbeda. Window browser tidak pop-up secara otomatis. Kemudian saya mencari tau mengapa tidak bisa, ternyata ada keterangan yang menyebutkan bahwa yang pop-up otomatis hanyalah nama file tertentu dengan ekstensi .md atau .markdown.
By default, vim versions before 7.4.480 only recognize files ending with .markdown, .mdown, and README.md as markdown files. If you want .md to be recognized, I recommend installing one of many markdown plugins available, such as this one.
Akhirnya saya mengklik link tersebut dan menemukan bahwa perlu ada yang di tambahkan dalam file setingan vim, untuk dapat mengetahui bahwa ekstensi yang sementara kita buka adalah .md sehingga bisa langsung mentriger window browser. waw…. sampai pada saat ini untuk text editor buat markdown menggunakan vim sudah ok. Tapi masi ada yang mengganjal di pikiran saya.
Hal yang mengganjal adalah, bagaimana cara memposting markdown yang saya ketik, ke blog blogger saya…. yang ini menjadi beban pikiran saya. Ide yang terpikir pertama kali adalah, menggunakan converter dari markdown ke html, kemudian mempastekan file html tersebut ke editor blogger. OK mungkin ide ini bisa dilakukan. Tetapi dalam pencarian saya…. saya tidak menemukan sesuatu yang seru, dan menarik untuk melakukan proses convert tersebut.
Sebelum menemukan proses yang seru yang sementara saya lakoni ini juga. Saya sempat melerik Ghos blog, namun dalam hati saya…. masa harus pindah blog lagi… cukup saja dengan blogger… sehingga saya bertemu dengan Stackedit. Aplikasi ini sebenarnya berbasis web dan dapat mengubah file markdown yang kita ketik menjadi format html, sehingga kita bisa mengedit file markdown kita secara online. Mungkin itu salah satu nilai plus nya… namun dengan kondisi koneksi internet yang tidak selalu menempel di laptop, maka aplikasi web ini menjadi tidak menarik (sebelumnya saya berpikir demikian).
Ternyata setelah mencari di google, ada aplikasi yang berjalan di chrome yang dibuat oleh stackedit itu sendir yang dapat di fungsikan secara offline… wah… langsung dech…. dalam hati… ini dia editor markdown yang saya cari… untuk fitur- fitur yang lainnya, ternyata aplikasi ini sudah menyediakan fitur untuk otomatis link dengan blogger dan dropbox… hem… kurang apa lagi…
akhirnya saat ini saya memustuskan untuk menggunakan stackedit sebagai aplikasi editor untuk file markdown yang akan saya tulis. Untuk bagaimana cara markdown dapat terhubung dengan blogger akan dibahas pada postingan selanjutnya
Written with StackEdit.

Sunday, March 20, 2016

Terkait dengan StdPeriph dan Cube HAL


Setelah selesai menulis artikel tentang StdPeriph dan Cube HAL, karena saya sebelumnya menggunakan StdPeriph sebagai basis dari kode saya. Timbulah keinginan saya untuk bermigrasi ke perangkat berbasis Cube HAL.

Pada awalnya saya mengcreate beberapa project dengan CubeMX dan melanjutkannya dengan IDE trueStudio, namun karena masi dibayang-bayangi oleh IDE Coocox (CoID), maka saya coba mencari di internet, bagaimana menggunakan hasil generate code dari CubeMX dapat digunakan di CoID. sehingga saya bertemu dengan link ini. Waw saya sangat terkejut, karena untuk migrasi project trueStudio ke CoID sangatlah muda dan tanpa halangan apapun. namun ternyata itu hanyalah apa yang saya lihat diawal.

Saya melanjutkan dengan membuatkan BSP(Board Support Package) untuk board yang saya pakai (Gambar 1).
Gambar 1.Customize Dev board.

Dalam pembuatan BSP, saya ingin menggunakan library yang sebelumnya. yang ditulis diatas StdPeriph. Namun apa yang saya dapatkan. Ternyata library tersebut tidak bisa digunakan. saat di compile, terjadi infinite loop atau sampai saya endtask proses compile masi saja berjalan. 

Nah, muncul pertanyaan di benak saya... untuk menelusuri lebih jauh pendapat orang tentang StdPeriph dan CubeHAL. saya mulai dari kata kunci kira kira dalam bahasa indonesianya adalah bagaimana cara migrasi StdPeriph ke CubeHAL. dan apa yang saya dapat.

Ternyata saya menemukan diskusi yang seru di link ini, Singkatnya berdasarkan apa yang bisa saya mengerti yaitu, ternyata berdasarkan komentar dari kontributor, CubeHal bermaksud untuk, meningkatkan abstraksi dari peripheral yang ada pada uC ARM. maksudnya agar para pengguna awam dapat menggunakan semua fitur dari uC ARM tanpa direpotkan dengan setingan register yang cukup ribet(menurut segelintir orang). sehingga ada yang menyampaikan bahwa tujuan dari kemudahan ini yaitu akan seperti ARDUINO.... waw...waw....waw....

Sepintas setelah membaca diskusi tersebut. saya berefleksi sejenak. apakah yang saya baca itu benar... baiklah. mungkin perlu saya cerita pengalaman saya sejenak. ceritanya begini. Pada saat saya memutuskan untuk berpindah dari uC/OS dan Keil ke freeRTOS dan CoID. untuk mencari contoh project yang menggunakan freeRTOS pada CoID benar benar tidak ada (uC base STM32f103). sehingga saya harus menggunakan migrasi kecil kecilan dari uC yang tergolong saudara dekat yaitu STM32f100. dan setelah melakukannya beberapa hari akhirnya saya bisa menggunakan FreeRTOS di atas CoID dan rasanya sangat senang, dan akhirnya saya terus menggunakan tempalate project ini untuk develop prangkat selanjutnya.

Berbeda dengan perasaan yang saya alami saat menggunakan CubeMX. Sangat muda dan sekali compile langsung berhasil, dalam project tersebut sudah terpasang freeRTOS terbaru bahkan FreeRTOS yang telah dibasut oleh cmsis-os. waw teknologi apa lagi ini.... 

Dari kedua cerita diatas, sangat terasa perbedaan memulai project antara menggunakan StdPeriph dengan CubeHAL. dengan menggunakan CubeHAL, semua menjadi sangat mudah, namun saya tidak mendapatkan kebebasan seperti saat menggunakan StdPeriph. yaitu dapat langsung mengakses register berdasarkan inisilisasi yang telah didaftarkan dalam library nya.

jadi kesimpulannya mungkin saya akan mengembangkan perangkat saya saat ini dengan masi berbasis pada StdPeriph..


Monday, February 22, 2016

IRQHandler pada StdPeriph dan Cube HAL

Latar belakang saya menulis postingan ini adalah saya ingin membahas tentang interrupt pada usart dari sudut pandang Cube HAL, namun setelah dipikir pikir, akan lebih mudah menjelaskan atau mempelajari perbedaan antara kode pada StdPeriph dengan kode Cube HAL jika penjelasannya menggunakan contoh external interrupt. Baiklah mari kita mulai dari sesuatu yang telah ada lebih dulu yaitu StdPeriph. untuk style ini saya menggunakan IDE CoIDE, sementara untuk Cube HAL saya akan menggunakan trueStudio. Berikut ini adalah beberapa alasan pembelaan diri saya.

Mengapa saya menggunakan dua IDE yang berbeda dalam percobaan ini atau lebih tepatnya dalam postingan ini, karena untuk contoh project penggunanan StdPeriph sangat mudah diperoleh pada CoIDE, sementara untuk Cube HAL, contoh project interupt tersedia untuk empat IDE yaitu IAR, Keil, TrueStudio dan SW4STM (AC6). Mengapa saya memilih trueStudio, karena dari keempat contoh project yang ada sebenarnya ada dua yang berbasis eclipse, namun saya lebih memilih trueStudio, karena menganggap IDE ini lebih stabil dari lainya.

Baiklah, mari kita mulai mengupas... bukan perbedaan melainkan gaya penulisannya pada masing masing project. karena pada akhirnya register yang diakses adalah sama karena untuk tujuan yang sama juga. yaitu untuk menangani eksternal interupsi yang terjadi pada sistem.

  • Bentuk struktur dari project
Pertama yang ingin saya tunjukkan adalah perbedaan struktur project dari kedua style ini, yaitu sebagai berikut

Dari struktur project dapat kita lihat perbedaan yang signifikan. pertama dari group file CMSIS, Pada StdPeriph terdiri dari tiga file, sementara pada Cube HAL hanya terdapat satu file. Pada postingan ini tidak akan membahas lebih dalam mengapa hal itu berbeda. Selanjutnya kita masuk pada inti dari pembahasan dari blog ini yaitu penelusuran intrrupt dan perbedaan pola penulisannya.
  • EXT INTERRUPT
Berikut ini adalah contoh kode yang terpada pada StdPeriph style.
void EXTI15_10_IRQHandler(void)
{
  if (EXTI_GetITStatus(USER_BUTTON_EXTI_LINE) != RESET)
  {  
    if(BlinkSpeed == 1)
    {
      BlinkSpeed = 0;
    }
    else
    {
      BlinkSpeed ++;
    }
    /* Clear the EXTI line pending bit */
    EXTI_ClearITPendingBit(USER_BUTTON_EXTI_LINE);
  } 
}
Potongan kode di atas merupakan fungsi IRQHandler, yaitu fungsi yang akan dieksekusi jika terjadi interupsi eksternal. Label USER_BUTTON_EXTI_LINE  adalah label yang bebas didefinisi oleh programer, label menunjukkan line external interupt yang digunakan. Misalnya dalam hal ini USER_BUTTON_EXTI_LINE = EXTI_Line13,  line ini menunjukkan bahwa yang difungsikan untuk menerima sinyal interrupt eksternal adalah pin 13. Pada contoh kode diatas, penanganan aksi dari interupsi yang terjadi langsung dilakukan dalam fungsi tersebut. Pada contoh ini aksi dari interupsi adalah mengubah kecepatan kedip dari LED. Mari kita tinjau kode pada project dengan Cube HAL style.
void EXTI15_10_IRQHandler(void)
{
  HAL_GPIO_EXTI_IRQHandler(USER_BUTTON_PIN);
}
Kode di atas adalah kode yang terdapat dalam file stm32f1xx_it.c. Fungsi yang menangani jika terjadi interupsi... bisa kita lihat... isi dari fungsi ini hanya satu baris.... waw... mari kita telusuri apa yang ada di balik satu baris ini...
void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin)
{
  /* EXTI line interrupt detected */
  if(__HAL_GPIO_EXTI_GET_IT(GPIO_Pin) != RESET) 
  { 
    __HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin);
    HAL_GPIO_EXTI_Callback(GPIO_Pin);
  }
}
Setelah klik, ternyata isi dari fungsi HAL_GPIO_EXTI_IRQHandler(USER_BUTTON_PIN); adalah seperti list kode di atas. Mari kita lihat, apakah fungsi ini sudah menunjukkan suatu aksi jika interupsi itu terjadi... ternyata belum, fungsi ini bukan lah akhir yang menunjukkan aksi dari suatu interupsi. dalam fungsi ini masi ada fungsi lain yaitu HAL_GPIO_EXTI_Callback(GPIO_Pin);. Baiklah. mari kita lihat apa isi dari fungsi ini... CTRL+Klik. Kemudian saya diarahkan ke sebuah fungsi yang diawali dengan __weak  hem... sesuatu hal yang baru bagi saya. setelah di googling saya menemukan link ini. Ternyata fungsi itu bukan berisi kode yang saya cari. setelah ditelusuri ternyata ada fungsi lain yang memiliki nama yang sama dan berisi seperti pada list kode di bawa ini
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
  if (GPIO_Pin == GPIO_PIN_0)
  {
    /* Toggle LED3 */
    BSP_LED_Toggle(LED3);
  }
}
Jika dilihat isi dari fungsi di atas, fungsi ini berisi suatu aksi yaitu toggle LED. Sehingga fungsi ini merupakan akhri interupsi yang terjadi. Gambar berikut menunjukkan inti dari blog ini, yaitu sebuah ilustrasi dengan Diagram Use Case, bagaimana sebuah interup ditangani berdasarkan dua style project yang ada.


Wednesday, February 17, 2016

Pengalaman menggunakan usart dengan HAL Library untuk menjalankan fungsi printf

Sampai lah pada satu ketika, saya harus mulai belajar lagi. ini semua karena tergiur dengan HAL library yang baru yang ada pada STM32 yang dapat diperoleh dengan cara generate otomatis menggunakan STM32Cube. Selama menggunakan STM32 saya menggunakan std_library, yang berjalan di atas IDE Cocox (CoIDE). IDE ini sangat membantu dalam pembuatan new project, karena kita hanya harus memilih type ic, peripheral apa yang akan digunakan, manambahkan fungsi yang kita tulis sendiri dengan cara drag and drop... dan tring... jadilah sebuah project yang langsung bisa diekseskusi. dan berjalan dengan lancar.

Biasanya, dalam dunia pemrograman, program yang pertama kali dieksekusi adalah "Hello World", jika dalam dunia pemrograman embedded system program "Hello World" sama dengan LED Blink. Namun, jika hanya sampai pada led blink menurut saya akan kesulitan untuk mendebug program yang lebih kompleks hanya dengan indikator led. Sehingga kebiasaan saya setelah berhasil menyalakan LED saya lanjutkan dengan setup USART/UART. Tujuannya agar perangkat embedded dapat mengirimkan karakter ke hyperterminal komputer dan lainnya dengan menggunakan antarmuka serial.

Dalam perangkat embedded, dalam hal ini mikrokontroler (uC), ada register yang perlu di konfigurasi dalam rangka setup peripheral USART. cara konfigurasi ini sudah banyak referensinya di internet.

yang membuat memunculkan karakter ke hyperterminal ini seru. adalah untuk menggunakan fungsi printf ternyata perlu perlakuan atau seting yang berberda beda pada setiap IDE yang sudah perna saya gunakan (Keil, CoIDE, TrueStudio). Untuk alasan mengapa saya sempat mencoba beberapa IDE. mungkin akan saya tulis pada postingan yang lain (kalau ada semangatnya).

Jika pada Keil kita hanya perlu menambahkan kode ini setelah fungsi main
/**
  * @brief  Retargets the C library printf function to the USART.
  * @param  None
  * @retval None
  */
PUTCHAR_PROTOTYPE
{
  /* Place your implementation of fputc here */
  /* e.g. write a character to the USART */
  USART_SendData(USART1, (uint8_t) ch);

  /* Loop until the end of transmission */
  while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET)
  {}

  return ch;
}

Cara setup printf pada CoIDE juga sangat berbeda. jika pada keil bisa dikatakan hanya menggunakan dua langkah seperti diatas. Jika pada CoIDE masi ada kode yang perlu diedit pada file prinf.c dalam grup stdio. dan mengedit linker pada saat compile program... mungkin secara singkat bisa dituliskan seperti itu. Tapi proses tidak sesingkat itu.

Masuk dalam pembahasan utama, bagaimana jika menggunakan HAL library. Dan tanggapan saya adalah waw... cukup mendatangkan ngantuk karena suntuk mengapa tidak pernah bisa... bailah cukup basa basinya.

Proses setup printf. dimulai dari konfigurasi usart, tentu dengan menggunakan fungsi HAL library. selanjutnya saya mengikuti atau mencopas dari contoh yang ada, dalam rangka membuat project baru secara custom alias tidak melanjutkan dari project example yang sudah ada. Kelebihannya adalah kita tidak terikan dengan ic yang digunakan pada contoh tersebut (jika arsitektur ic yang digunakan berbeda). dan masi banyak lagi. Lanjut.....

Dalam file main menambahkan kode ini sebelum fungsi main
/* Private function prototypes -----------------------------------------------*/
#ifdef __GNUC__
/* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf
   set to 'Yes') calls __io_putchar() */
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif /* __GNUC__ */
Dan kode ini setelah fungsi main
/**
  * @brief  Retargets the C library printf function to the USART.
  * @param  None
  * @retval None
  */
PUTCHAR_PROTOTYPE
{
  /* Place your implementation of fputc here */
  /* e.g. write a character to the USART1 and Loop until the end of transmission */
  HAL_UART_Transmit(&huart2, (uint8_t *)&ch, 1, 0xFFFF);

  return ch;
}

Tidak cukup dengan penambahan tersebut, dalam truestudio (karena project atau library HAL dapat di generate ke IDE ini). Kita masi perlu membuat file syscalls.c. Kurang lebih isi dari file ini adalah fungsi fungsi standar yang dapat kita jumpai pada pemrogram bahasa C. Nah dalam file ini terdapat fungsi _write yang masi perlu kita edit lagi.

jika sebelumnya fungsi _write hanya berupa:
int _write(int32_t file, uint8_t *ptr, int32_t len)
{
 /* Implement your write code here, this is used by puts and printf for example */
 return len;
}

Maka perlu kita tambahkan beberapa barid kode, sehingga menjadi
int _write(int32_t file, uint8_t *ptr, int32_t len)
{
 /* Implement your write code here, this is used by puts and printf for example */
 int DataIdx;

 for (DataIdx = 0; DataIdx < len; DataIdx++)
 {
    __io_putchar( *ptr++ );
 }
 return len;
}

Kode di atas juga saya copas dari contoh kode yang sudah ada alias bukan hasil dari pemikiran diri sendiri.

Nah untuk dapat menggerate file syscalls.c, dapat mengukuti cara seperti yang ditunjukkan dalam video ini... dalam kurung bukan buatan saya... n_nV

Sunday, February 14, 2016

Weekend project - remote WD-TV

Postingan pertama di tahun ini, baiklah.... selamat tahun baru. dan selamat menjalani resolusi ditahun yang baru ini.

Tidak perlu panjang lebar lagi, ayo kita langsung pada maksud dan tujuan... Weekend project. Project ini biasanya berisi konten yang ringan ringan, sama seperti isi weekend project yang lain, atau bahkan mirip dengan weekend project pada webside webside populer lainnya.

Namun yah sudah lah, weekend porject ini memang mungkin sama. Tapi satu yang pasti, ini adalah kerjaan sendiri yang meniru, merubah, dan menjadikan itu nyata. 

Weekend kali ini adalah membuat atau tepatnya merangkai remote WD-TV. Latar belakang pembuatan remote ini adalah karena remote bawannya rusak alias tidak berfungsi. sebenarnya ada alteratif lain agar WD-TV ini masi bisa digunakan yaitu dengan menggunakan kabel data yang langsung masuk ke TV yang ada konektor USB nya.

Menggunakan kabel data ternyata ada keterbatasanya, yaitu kemampuan dari WD-TV ini tidak dapat dinikmati secara maksimal. karena difungsikan sebagai perangkat storge biasa bukan sebagai pemutar film dengan definisi tinggi, alias HD.

Untuk mencari gantinya, hal pertama yang terpikirkan adalah kontak service center dan menanyakan apakah menyediakan remote cadangan atau tidak. Tapi begitulah telephon semua nomor yang ada di internet, tetapi tidak ada yang menyediakannya. Selanjutnya, browsing di internet apakah ada remote lain yang bisa digunakan. Ternyata ada, remote dari Creative, waw remote yang sangat canggih. Sebanding dengan harganya....bahkan remote ini bisa diprogram diganti ganti fungsinya... seperti HP saja... tambah aplikasi tinggal colok kabel data...

Mungkin karena latar belakang saya yang bisa elektronika, jadi hal selanjutnya yang terpikirkan adalah bagaimana kalau membuat remote tersebut. Berhubung dukungan hardware di daerah tempat tinggal saya cukup bervariasi, jadi apa salahnya untuk mencoba.

langkah pertama yaitu mengumpulkan resource dari internet dan berikut ini adalah beberapa resource yang diperoleh dan menjadi acuan.
  • WDTLIVE remote codes, link ini berisi kode-kode remote yang sudah di capture oleh orang lain, dan dipublis. yah mungkin sama latar belakannya yaitu ingin membuat remote pengganti. atau ada yang menyanyakannya di forum.
  • IR-Remote Library, Selanjutnya pustaka Arduino, perangkat hardware yang dapat diprogram. Perangkat ini merupakan perangkat favorit bagi para penghobby elektronik.
  • Keypad Library, lebrary ini juga digunakan untuk memprogram Arduino. Jika library sebelumnya berhubungan dengan data apa yang akan dikirim, library ini berhubungan dengan manusia, yaitu data apa yang dikenedaki untuk dikirim. (Sulit banget kalimat nya n_nV)
Selanjutnya adalah mempersiapakan dapur (meracik kode yang ada). Beberapa kode yang digabungkan adalah, Kode atau sinyal remote WD-TV, kode keypad, dan kode untuk mengirimkan data lewat irda. Tidak semua fungsi dari remote dikeluarkan dalam remote yang dibuat kali ini, hanya fungsi yang sering dipakai saja. berikut ini adalah gambar yang menggabarkan menu yang diracik.

Setelah kode selesai diracik dan menjadi customize remote, maka tahap selanjutnya adalah percobaan kode tersebut. Berikut ini adalah penampakan dari purnarupa (prototype) remote.


Untuk led irda ada di sebelah kiri. prototype ini sempat digunakan selama kurang lebih 2 bulan, namun, karena kurang fleksibel karena harus selalu terhubung dengan sumber tegangan atau adaptor.
Sehingga selanjutnya dibuatkan sebuah remote yang portable.

Berikut ini adalah alat dan bahan yang digunakan dalam pembuatan remote, proses ini yang saya sebut dengan weekend project. 
  • Kesing universal
  • Arduino Pro Mini, perangkat ini dipilih karena konsumsi tenganan 3.3v dan bentuknya yang kecil. Konsumsi tegangan sebanding dengan kecepatan komputasi, namun pada project ini tidak memerlukan proses komputasi yang cepat.
  • Kabel. Sudah tentu harus ada
  • Led Irda. apalagi untuk komponen yang satu ini, harus ada
  • Led indikator, opsional
  • Saklar ON OFF.
  • Battre Holder
  • LED Holder.
  • Lem Tembak.
  • Grinda tangan. untuk melubangkan kesing.
Foto persiapan alat dan bahan ditunjukkan pada gambar di bawa.


Hal yang pertama dilakukan adalah membaut garis bantu pada kesing dalam rangka pemotongan. beberapa lubang yang dibuat untuk komponen komponen sebagai berikut
  • keypad
  • Irda
  • saklar on/off dan
  • led indikator.
Setelah kesing selesai dilubang, maka tahap selanjutnya menyolder semua komponen yang telah disediakan. Seperti yang ditunjukkan pada gambar dibawa ini.



Dan beginilah penampakan akhir dari remote hasil dari weekend project kali ini. btw.. video pengujiannya nyusul yah... n_nV


berikut ini adalah video pengujiannya n_nV