Cari Blog Ini

Rabu, 29 Agustus 2012

Samsung dan Android Melanjutkan Pembangunan ‘Galaxy Technology’, Microsoft Tidak Mau Ketinggalan




Perhelatan IFA 2012 di Berlin belum genap satu hari dibuka namun tampaknya puncak dari acara tersebut telah ‘dicuri’ oleh Samsung Electronics. Meskipun beberapa hari lalu pukalan keras dari Apple melalui pengadilan Amerika Serikat cukup membuat saham Samsung menurun, tampaknya kini perusahan teknologi asal negeri ginseng tersebut telah mendapatkan kembali tangga menuju puncak. Mata ribuan penonton dan jurnalis yang hadir dalam IFA 2012 Berlin (29/8), benar-benar ‘disihir’ dengan kehadiran dua gadget terbaru besutan Samsung dan si robot hijau Android. Tidak lain adalah Samsung Galaxy Note II yang kehadirannya semakin makin memantapkan jati diri dan medefinisikan phone-tablet, serta Samsung Galaxy Camera yang tampaknya akan menjadi ancaman serius bagi Nokia PureView.

Dari segi tampilan luar, sang penerus tidak banyak mengalami perubahan dibandingkan pendahulunya, Galaxy Note. S-Pen yang dihadirkan jauh lebih presisi, dan memiliki sensifitas tekanan yang luar biasa, dan sedikit lebih tebal, tetapi body Note II secara keselurah sedikit lebih tipis. Dalam hal display, Note II mulai menggunakan layar Super AMOLED HD, lebih besar 2”, tetapi resolusinya sedikit berkurang dibandingkan generasi sebelumnya. Layar Dapur pacu Galaxy Note II banyak yang diadaptasi dari Galaxy SIII, hanya mengalami penigkatan RAM menjadi 2GB. Dalam hal perangkat lunak, Note II mulai menerapkan kemampuan multitasking, dan air view yaitu kemampuan untuk menampilkan sebagian deskripsi dari foto, plan, atau e-mail cukup dengan mendekatkan S-Pen di atas item yang diinginkan tanpa menyentuh item tersebut. 
Dengan basis, Samsung Galaxy SIII yang cukup sukses, Samsung menghadirkan Galaxy Camera salah satu kamera berplatform android. Tidak seperti nokia 808 pureview yang memiliki resulusi hingga 41MP, Galaxy Camera hanya memiliki memiliki resolusi 16MP, tetapi dengan kemampuan optical zoom hingga 21 kali. Pernah melihat foto berikut?

Mengkin kita berpikir bahwa untuk mendapatkan hasil seperti gambar tersebut kita harus menggunakan kamera DSLR seperti yang dimiliki para professional photographer. Jangan kaget, karena dengan teknologi Smart Pro yang ditanamkan pada Galaxy Camera, kita bisa menghasilkan foto seperti itu. Feature Smart Pro juga memungkinkan kita menangkap image dari benda yang bergerak secara lebih baik. Teknologi Smart Pro menjadikan siapapun yang menggunakan Galaxy Camera akan mudah untuk menghasilkan foto, layaknya foto yang dibuat seorang profesional.  
Anda dapat menggunakan perintah suara untuk mengambil gambar, mengatur zoom, bahkan mengatur timer. Anda juga dapat langsung mengatur folder, memberi tag atau bahkan mengedit foto pada Galaxy Camera. Dengan Bluetooth 4.0, WiFi, 3G/4G, sharing foto kepada perangkat lain, facebook, atau blog pribadi, mejadi hal yang mudah.
Kedua gadget baru ini benar-benar memperkuat Galaxy series yang dibangun Samsung bersama Android. Jika Anda ingin menggunakan smarphone dan dompet, Galaxy Nexus dan Galaxy SIII rajanya. Saat Anda membutuhkan note, Galaxy Note II siap anda coret-coret. Saat Anda membutuhkan Table, Galaxy Tab dan Galaxy Note 10.1 siap menemani. Jika anda membutuhkan proyektor, Samsung pun telah menyediakan Galaxy Beam bagi Anda. Bahakan saat Anda membutuhkan mp3, portable console game sekaligus video player yang cukup lega, sudah ada Galaxy Player. Kini Samsung telah menyediakan SMART TV yang dapat dikendalikan dari HP Android Anda, bukan tidak mungkin kedepan Samsung akan segera meluncurkan TV ber-platform Android, seperti halnya RF4289HARS (lemari pendingin Samsung yang dilengkapi dengan Android operating system).
Microsoft tidak tinggal diam melihat kesuksesan Samsung bersama Android. Walaupun Nokia sering dianggap sebagai ‘anak emas’ dalam pembangunan Windows operating system, Microsoft nampaknya mulai mencoba peruntungan dengan mengikut sertakan Samsung dan beberapa produsen gadget lainnya. Hal ini terbukti dengan diluncurkannya smartphone pertama di dunia yang menggunakan Windows Phone 8 OS adalah Samsung ATIV S, meskipun Windows 8 belum dirilis secara resmi oleh Microsoft. Pada perhelatan IFA 2012 ini juga Samsung telah meluncurkan tablet (Samsung ATIV Smart PC dan Samsung ATIV Smart PC Pro) beserta ultrabook (Samsung 9 Series terbaru), yang semuanya berjalan pada windows 8.
Dengan Windows 8, Microsoft berusaha untuk menyamakan kernel yang digunakan baik pada smartphone yang menggunakan prosesor ARM maupun pada PC yang menggunakan prosesor Intel. Microsoft berusaha untuk menyatukan para developer, agar kelak aplikasi pada PC dapat dijalankan dengan baik juga pada smartphone. Namun Windows 8 ini bersifat tertutup sehingga untuk menginstall aplikasi Anda harus mengambilnya melalui marketplace dan Windows wajib mendapatkan sebagian dari keuntungan penjualan aplikasi tersebut.
Melihat arah pergerakan Microsoft ini, maka Android sebagai penguasa ‘pasar’ open source tampaknya mulai berusaha untuk berdamai dengan saudara dekatnya,  Linux, untuk mengembakan dan mempertahankan ‘pasar’ open source. Tampaknya perkembangan dan peperangan di industri teknologi ini akan semakin menarik.

Jumat, 24 Agustus 2012

MENG-INSTALL PYTHON PADA WINDOWS



 

1.1.      Berkenalan dengan Pyhton

  Gambar 1. Phyton


Python adalah salah satu jenis bahasa pemrograman tingkat tinggi. Bahasa pemrograman tingkat tinggi adalah bahasa pemrograman yang dirancang untuk lebih memudahkan manusia sebagai pengguna (user), dalam berhubungan dengan mesin. Selain Python bahasa pemrograman tingkat tinggi lainnya seperti C, C++, Pearl, Java, MatLab, dan lain-lain. Sebagai bahasa tingkat tinggi, Phyton bersifat portable, artinya dapat digunakan pada berbagai jenis komputer dengan sedikit atau bahkan tanpa modifikasi.
Sebaliknya bahasa pemrograman tingkat rendah (bahasa mesin atau bahasa assembly), umumnya, hanya dibuat untuk memprogram 1 jenis hardware saja. Bahasa mesin memang dirancang untuk mudah dimengerti oleh mesin (komputer) itu sendiri. Penulisan program dengan bahasa mesin akan jauh lebih panjang dibandingkan penulisan program dengan bahasa tingkat tinggi.
Pengguna bahasa pemrograman tingkat tinggi perlu menterjemahkan source code-nya ke dalam bahasa pemrograman tingkat rendah yang dapat dimengerti oleh mesin. Secara garis besar, ada dua metode untuk menerjemahkan bahasa tingkat tinggi ke dalam bahasa tingkat rendah, yaitu compiling dan interpretation. Pyton menggunakan prosses interpretation untuk mengubah bahasa tingkat tingginya menjadi bahasa yang dimengerti mesin. Bagan dibawah ini akan memperlihatkan perbedaan prosess compiling dan interpretation.

Gambar 2. Interpreter vs Compiler

Gambar diatas mungkin membuat sahabat semakin penasaran akan perbedaan interpreter dan compiler. Interpreter akan langsung mengeksekusi baris demi baris dari program yang ditulis. Sebaliknya compiler akan menerjemahkan terlebih dahulu seluruh isi source code menjadi object code, barulah kemudian dieksekusi untuk menghasilkan keluaran. Walaupun object code yang yang dihasilkan dapat dijalankan ulang berkali-kali, namun menciptakan source code untuk sebuah compiler akan jauh lebih kompleks dibandingkan interpreter
Jika sahabat mencari bahasa yang dapat digunakan pada berbagai operating system platform, gratis dan mudah diperoleh, maka interpreter seperti Python adalah jawabannya. Dalam hal syntax, Python memiliki syntax yang jauh lebih sederhana dibandingkan bahasa tingkat tinggi lainnya seperti C, C++ atau Java. Tidak hanya pemula atau programmer amatiran yang menggunakan Python, kalangan professional pun banyak yang senang menggunakan Python, dan mereka memberikan banyak dukungan bagi Python melalui berbagai komunitas. Kesederhanaan dalam hal penulisan program, membuat para pemula dapat mempelajari pemrograman dengan lebih mudah. Para profesional pun dapat memrogram secara cepat dengan produktifitas keberhasilan yang tinggi, tetapi memiliki tingkat frustasi/stress yang rendah. Menulis program dengan Python telah memberikan banyak kesenangan (fun). Dan yang terpenting, Python itu GRATISSSSSSSSSSSSS . . . . J
Untuk melihat bagaimana sederhananya Python, mari kita lihat perbandingan penulisan sebuah program yang mungkin sudah tidak asing lagi bagi sahabat, yaitu menampilkan text “Hello World!” pada layar. 
Tabel 1. Perbandingan program ‘Hello World!’ pada Python dan C++
Python 2.x
C++
print "Hello, World!"

#include

   void main()
   {
   cout << "Hello, world!" << endl;
   }
Tebel.1 menunjukan secara jelas perbedaan panjang script dari sebuah program yang sama dengan bahasa pemrograman yang berbeda. Untuk menjelaskan script program ‘Hello World!’ dengan bahasa C++ mungkin membutuhkan sekitar 13 paragraf. Dengan Python, program tersebut dapat dijabarkan dalam dua paragraf. Hal ini membuat kita bisa lebih fokus untuk memahami pemrograman dan tidak membuang-buang waktu dalam penulisan syntax yang rumit.

1.2.      Memilih Phyton yang Sesuai

Apa bedanya Pyton 2.x dengan Python 3.x?
Secara singkat Python 2.x yang sedang menjadi “penguasa”, sedangkan Python 3.x adalah masa depan dari Python yang sudah bisa digunakan sekarang. Python 2.x tidak akan mengalami perubahan-perubahan signifikan, karena Guido van Rossum (pencipta Python) telah memutuskan untuk mengganti Python 2.x dengan cara yang tepat, dan versi terbaru dari Python 2.x hanya akan mengalami sedikit perbaikan. Sebaliknya Python 3.x mengalami perkembangan yang signifikan, seperti:
-          dukungan Unicode yang lebih baik
-          bagian inti bahasa pemrograman ini menjadi lebih mudah untuk dipahami oleh sahabat yang baru belajar, dan lebih konsisten dengan bagian lain dari bahasa pemrograman ini
-          mengurangi kelemahan-kelemahan dari versi sebelumnya sehingga penggunaan memory menjadi lebih efisien
-          standar library terbaru juga hanya tersedia di Python 3.x
Sekarang, versi mana yang sebaiknya dipilih?
Memilih versi mana yang sebaiknya digunakan akan sangat tergantung dari ‘apa yang hendak sahabat kerjakan dengan Python?’. Jika sahabat mengerti dengan baik apa yang hendak sahabat lakukan, dan mengenal Python 3.x dengan baik maka memilih Python 3.x sangatlah tepat. Perlu diingat bahwa dukungan terhadap Python 3.x masih sedikit. Namun sebagai bahasa pemrograman, Python 3.x telah siap untuk digunakan. 
Secara default, Linux dan Macs masih menggunakan Python 2.x begitu pula dengan dukungan dari perangkat lunak lainnya yang umumnya belum dapat memahami (belum mendukung modul-modul) Python versi 3.x. Programer, pada umumnya, masih menggunakan versi 2.x. Oleh karena itu jika sahabat akan menggunakan Python untuk berhubungan dengan perangkat lunak lainnya maka sebaiknya sahabat menggunakan versi 2.x.
Python 3.x tetap merupakan pilihan yang bagus. Jika sahabat telah terlanjur menggunakan versi ini, namun terpaksa saudara harus merubah (convert) source ke dalam versi 2.x, misalnya untuk alasan compatibility, maka sahabat tidak perlu terlalu khawatir. Sudah cukup banyak programmer yang mengembangkan perangkat lunak untuk mengubah source code sahabat yang ditulis dalam versi 3.x menjadi versi 2.x. Dokumentesi pada web maupun sebagian textbook masih menggunakan versi 2.x, tetapi tutorial terbaru umumnya sudah menggunakan versi 3.x.
Modul-modul popular yang belum cocok (compatible) dengan Python 3 misalnya: Twisted, Gevent, Django, dan PIL. Modul-modul tersebut sedang dalam tahap pengembangan akhir, sehingga tidak lama lagi sudah dapat digunakan. Dalam hal GUI Python 3 juga telah memiliki dukungan dan kemajuan yang sangat pesat, dan untuk keterangan lebih jelasnnya dapat sahabat baca disini.
 Download yang mana?
Setelah memutuskan versi Python yang akan dipilih, sahabat mungkin akan langsung berpikir untuk segera mengunduh installer. Tidak seperti Linux dan Macs, default Windows tidak memiliki Python. Untuk mengunduh installer, sahabat dapat melakukannya dengan mengunjungi situs resminya di sini, dan saudara akan menemukan halaman seperti pada gambar berikut:


 Gambar 3. Halaman download Python

Sebelum mendownload, mungkin sahabat akan bertanya lagi: “yang mana yang harus saya unduh? Di situ terdapat dua tipe installer untuk Windows.” Jika sahabat menggunakan windows 32 bit maka harus mengunduh installer yang paling atas, ‘Python x.x.x Windows Installer’. Jika sahabat menggunakan windows 64 bit maka sahabat perlu mengunduh installer yang kedua, ‘Python x.x.x Windows X86-64 MSI Installer’. Berdasarkan yang saya ketahui, sahabat bisa meng-install Python 32 bit pada Windows 64 bit, tetapi tidak sebaliknya, sahabat tidak dapat meng-install versi 64 bit pada Windows 32 bit.

1.3.      Meng-install Phyton

Selesai mengunduh?? Mari kita lanjutkan dengan melakukan instalasi. Lakukan klik ganda pada hasil unduhan kita tadi, dan jendela instalasi akan muncul. Ikutilah setiap tahapannya, seperti meng-install program sederhana lainnya. Jika sudah, coba lihat Start Menu, sahabat akan menemukan beberapa menu baru, salah satunya adalah IDLE (Python GUI). Pilih menu tersebut untuk jalankan Python.
Seperti yang telah diketahui sebelumnya, Python adalah interpreter, sehingga sahabat cukup menuliskan code yang diinginkan pada jendela IDLE tadi, kemudian tekan/pilih run. Jika sahabat ini membuat script, sahabat dapat memilih File à New Window, hingga muncul jendela kerja baru. Isi dengan code yang sahabat inginkan, kemudian tekan F5 atau pilih Run à Run Module. Dan sahabat akan diminta untuk menyimpan (save) terlebih dahulu. Simpanlah file script tersebut dengan nama yang saudara inginkan dengan tambahan ekstensi “.py”, misal “file.py”. Setelah disimpan, program tersbut akan langsung dijalankan dan keluaran dari source code tersebut akan ditampilkan pada jendela IDLE tadi.
Untuk program-program pendek dan sederhana, banyak programmer yang lebih suka menjalankan Python melalui command prompt. Untuk dapat menjalankan Python melalui kita perlu memastikan bahwa runtime telah di-setting secara benar. Untuk memastikan PATH pada System Properties telah di ditambahkan dengan path directory dari Python. Berikut langkah-langkah untuk menambahkan:
1.      Masuk ke jendela Advance System Setting melalui Properties pada My Computer atau melalui System pada Control Panel.
2.      Setelah jendela System Properties terbuka, masuk pada tab Advance, dan klik pada tombol ‘Environment Variables…’ hingga muncul tab Environment Variable.
3.      Perhatikan tabel kedua yang berjudul System Variables, scroll ke bawah dan carilah variabel bernama Path dan lakukan klik ganda pada variabel Path itu, atau klik sekali dan pilih edit.
4.      HATI-HATI melakukan langkah ini, karena yang akan kita lakukan adalah MENAMBAHKAN path dari tempat kita meng-install Python (misalnya: C:\Program Files\Python27) ke dalam Variable Values dengan menggunakan tanda semicolon (;) sebagai pemisah dengan path software yang lain. INGAT, JANGAN MENGHAPUS/MENGGANTI Variable Values YANG SUDAH ADA. Jika sahabat tidak sengaja menghapus atau mengubah Variable Values sebelumnya, maka sahabat tinggal menekan tombol cancel dan ulangi langkah-langkah diatas. Cara sederhananya sahabat cukup melakukan klik pada kolom masukan Variable Values, kemudian menekan tombol End pada keyboard, sehingga membawa sahabat pada bagian akhir. Sahabat tinggal menambahkan tanda ; barulah kemudian sahabat memasukan path (alamat folder) tempat sahabat meng-install Python. Contohnya “…      ;C:\Program Files\Python27
5.      Jika sahabat telah menambahkan path tersebut, sahabat tinggal menekan tombol Ok pada jendela-jendela yang tadi telah dibuka, kemudian membuka Command Prompt untuk menguji dan mulai menggunakan Python.
Untuk mengetahui bahwa Python telah terhubung maka sahabat cukup mengetikkan python pada Command Prompt, kemudian tekan enter. Jika sahabat Command Prompt telah menampilkan versi Python yang sahabat gunakan dan muncul ‘>>>’ berarti sahabat telah berhasil dan Python siap diajak bermain. Untuk keluar dari Python dan menggunakan Command Prompt yang biasa sahabat cukup menggunakan perintah quit().
***


BIBLIOGRAPHY


Downey, A. (2012). Think Python: How to Think Like a Computer Scientist (Version 2.0.1 ed.). Needham, Massachusetts: Green Tea Press.
Guide to installing Python in Windows Vista. (n.d.). Retrieved August 24, 2012, from Neural Wiki: http://www.neuralwiki.org/index.php?title=Guide_to_installing_Python_in_Windows_Vista  
ismailsunni. (2012, February 28). Hello, Python. Retrieved August 24, 2012, from Mathlete's Code: http://codemath.wordpress.com/2012/02/28/hello-python/   
Python official website. http://python.org

Senin, 20 Agustus 2012

MENGHUBUNGKAN DAN MENGGUNAKAN LCD SEBAGAI PERIPHERAL PADA MIKROKONTROLER AVR DENGAN AVR STUDIO 5



1.1.      PENGENALAN LCD





Gambar 1. Liquid Crystal Display
(a) Graphical LCD; (b) Character LCD

LCD merupakan singkatan dari Liquid Crystal Display. LCD merupakan alat atau komponen yang digunakan untuk menampilkan berbagai hal secara visual. Ada banyak jenis LCD, namun yang secara umum yang digunakan dalam dunia robotika atau mikrokontroler dapat dikelompokan dalam dua jenis yaitu, character LCD dan graphical LCD. Pada tulisan ini akan yang akan dibahas adalah jenis LCD yang lebih sederhana yaitu character LCD.

Gambar 2. LCD JHD 162A
Hitachi HD44780 adalah salah satu seri character LCD yang umum digunakan dalam dunia mikrokontroler. LCD ini mampu menampilkan karakter dalam ukuran 2 baris yang masing-masing baris terdiri dari 16 kolom. Namun yang akan digunakan dalam arttikel ini adalah LCD seri JHD 162A. LCD seri JHD 162A ini memiliki bentuk yang hampir sama dan memiliki desain yang kompetibel dengan seri HD44780, sehingga dapat berjalan dengan code yang yang sama. Kedua LCD ini memiliki konfigurasi pin yang sama seperti dapat dilihat pada table 1:
Tabel 1. Konfigurasi pin LCD
No.
PIN
NAMA
FUNGSI
1
VSS
Ground (referensi tegangan)
2
VCC
Power (Positive voltage), +5 Volt
3
VEE
Contrast Voltage (tegangan pengatur kontras)
4
RS
Register Select (memilih register):
0 = Instruction Register (mengaktifkan register instruksi)
1 = Data Register (mengaktifkan register penerima data)
5
R/W
Read/Write:
0 = Write mode (LCD bekerja dalam modus menulis)
1 = Read Mode (LCD bekerja pada modus data LCD bisa dibaca)
Umumnya, read mode jarang digunakan sehingga sebagain orang hanya menghubungkan PIN ini pada ground (0 = modus menulis)
6
E
Enable:
0 = Mulai menampung (save/latch) data karakter pada LCD
1 = disable / me-nonaktifkan
7
DB0
                    Data Bit 0 (LSB)
8
DB1
                    Data Bit 1
9
DB2
                    Data Bit 2
10
DB3
                    Data Bit 3
11
DB4
Data Bit 1 / Data Bit 4
12
DB5
Data Bit 2 / Data Bit 5
13
DB6
Data Bit 3 / Data Bit 6
14
DB7
Data Bit 4 / Data Bit 7 (MSB)
15
BPL
Back Plane Light ( tegangan untuk backlight), +5 Volt atau lebih rendah
16
GND
Ground


1.2.      Menghubungkan LCD

Kedua seri character LCD yang disebutkan sebelumnya, dapat beroperasi dengan mode 8 bit maupun mode 4 bit. Mode 8 bit akan menghasilkan proses yang lebih cepat, tetapi memerlukan 8 pin koneksi data pada mikrokontroler. Sedangakan mode 4 bit lebih lambat dibandingkan mode 8 bit, tetapi hanya memerlukan 4 pin untuk mengirimkan data dari mikrokontroler (koneksi data belum termasuk koneksi pengendalian). Namun umumnya kecepatan pengolahan data mode 4 bit sudah cukup memenuhi kebutuhan dan lebih umum digunakan oleh para pecinta mikrokontroler. Oleh karena pada tulisan ini kita akan belajar menghubungkan mikrokontroler dan LCD JHD 162A dengan mode 4 pin.

Gambar 3. Skema penggunaan LCD dengan modus 4 bit.


1.3.      Menggunakan LCD

Sebelum mulai menggunakan alat atau komponen elektronik tertentu biasanya kita akan mencoba untuk mempelajari datasheet dari komponen tersebut, misalnya data sheet dari LCD ini. Tapi untuk menghasilkan proses pembelajaran yang lebih produktif dan efisien, sahabat tidak perlu melakukan hal tersebut. Saya yakin sahabat suka dengan hal yang lebih sederhana.  Peter Fleury telah menyediakan library LCD, yang dapat sahabat unduh di sini. Oleh karena itu sebelum memulai coding dengan AVR Studio 5, sebaiknya sahabat memiliki mengunduh dan meng-extract library tersebut.
Sekarang kita akan memulai dengan membuka AVR Studio 5 dan memulai create new project. Setelah terbuka, pada panel disebelah kanan, sahabat akan menemukan jendela Solution Explorer. Lakukan klik kanan pada nama project di jendela tersebut. kemudian pilih Go to à Add dan kemudian pilih Existing Item. Jendela pencarian akan muncul, dan sahabat tinggal memilih (Add) file lcd.c dan kemudian ulangi langkah diatas untuk memilih file lcd.h. Akhirnya kita dapat melihat kedua file (file c dan file header dari library LCD) tertera pada project kita.

Gambar 4. Menambahkan library LCD pada project di AVR Studio 5
Setelah kita menambahkan library LCD pada project kita, mari lanjutkan dengan mengatur konfigurasi yang sesuai untuk library tersebut, dengan mengikuti langkah-langkah berikut ini:
-   Lakukan double click pada bagian ‘lcd.h’ (pada jendela Solution Explorer), sehingga akan memunculkan tab ‘lcd.h’. Selanjutnya lakukan scroll ke bawah secara perlahan agar kita tidak melewatkan hal-hal yang penting.
-       Pada bagian awal kita akan menemui beberapa teks komentar yang mendeskripsikan tentang library tersebut.
-   Jika kita melakukan scroll ke bawah lagi maka kita akan menemukan bahwa baris yang mendefinisikan nilai XTAL (atau F_CPU). Sesuaikan nilainya dengan nilai clock (F_CPU) yang kita gunakan pada mikrokontroler. Jika nilai ini tidak sesuai maka kita akan mendapatkan waktu delay yang tidak sesuai juga.
-         Scroll lagi ke bawah dan kita akan menemukan baris yang mendefinisikan LCD_IO_MODE. Seperti telah dijelaskan pada deskripsi di bagian awal, LCD_IO_MODE = 0 berarti LCD dalam modus memory mapped. Sedangakan untuk LCD_IO_MODE = 1 berarti LCD dalam modus 4 bit. Pastikan agar LCD_IO_MODE di set dengan nilai 1 (modus 4 bit). Perlu diingat bahwa library ini tidak mendukung modus 8 bit.
-    Setelah bagian LCD_IO_MODE maka kita akan menemukan bagian penting lainnya, yaitu pendefinisian port/pin pada mikrokontroler yang telah dihubungkan dengan LCD. Sesuaikan port dan pin yang anda gunakan. Umumnya, DB4,…,DB7 pada LCD dihubungkan dengan pin D4 hingga D7 pada mikrokontroler. Sedangkan 3 pin pengendali LCD (RE, R/W, E) bebas sesuai keiinginan kita. Sebenarnya, kita bebas mengatur pin yang digunakan, yang terpenting adalah kita mendefinisikan pin-pin tersebut pada bagian ini sesuai dengan keadaan yang sebenarnya.
-      Sahabat telah selesai melakukan proses pengaturan pendefinisian atau pengaturan konfigurasi. Jangan lupa untuk menyimpan (save) semua setting yang telah sahabat lakukan dalam lcd.h ini.
-     Jika kita tetap melakukan scroll lebih lanjut lagi maka kita akan menemukan rangkaian daftar perintah pada LCD yang dapat dijalankan dengan meng-input-kan perintah tersebut pada fungsi lcd_command().
-      Selanjutnya kita juga akan menemukan rangkaian daftar fungsi bersama deskripsinya, yang di definisikan melalui library ini. Fungsi-fungsi tersebut antara lain lcd_init(), lcd_clrscr(), lcd_home(), lcd_gotoxy(), lcd_putc(), lcd_puts(), lcd_puts_p(), lcd_command(), lcd_data() dan lcd_puts_P(). Their description is attached alongwith their declaration.
Terakhir, jangan lupa untuk memasukan (#include) “lcd.h” pada bagian header file c project kita. Sekarang kita sudah siap untuk melakukan coding untuk menampilkan karakter yang kita inginkan pada LCD.
Coding
Mari kita coba menampilkan karakter yang sederhana, sekaligus untuk memeriksa apakah kita telah berhasil menghubungkan LCD dan mikrokontroler kita. Sahabat bisa menggunakan code berikut ini:

Gambar 5. Contoh c code untuk menampilkan karakter sederhana pada LCD
Jika sudah selesai mengetik code diatas, lakukan compile dan build untuk menghasilkan file hex. Lakukan burning/programming/flashing file tersebut ke dalam mikrokontroler sahabat yang sudah terhubung dengan LCD dan lihat apa yang terjadi dengan LCD sahabat. Jika sahabat telah melihat tulisan “Hallo Sahabat” dan “Sky-Institute” pada baris pertama dan baris kedua maka saudara telah berhasil menghubungkan dan menggunakan LCD.
Sekarang mari kita pelajari sesuatu yang lebih, sekaligus mematangkan kemampuan sahabat dalam menggunakan LCD karakter ini.

1.3.1.      Menampilkan karakter/string dinamis

Pada bagian ini kita akan melihat contoh bagaimana menampilkan karakter yang dinamis/bergerak pada LCD kita. Mempelajari bagian ini akan membantu kita untuk lebih mengeksplore dan mengenal library LCD yang kita tambahkan diatas. Bagian ini juga akan membuat kemampuan sahabat semakin bertambah, dan saya yakin hal ini akan memberikan kesenangan dan kepuasan bagi sahabat yang sedang mempelajari pengunaan LCD.
Kali ini kita akam menampilkan tulisan atau karakter yang akan bergerak. Sebagai tips: gunakanlah perintah/fungsi lcd_command() yang telah kita lihat sebelumnya, misalnya lcd_command(LCD_MOVE_DISP_RIGHT) untuk menggerakan karakter ke kanan, lcd_command(LCD_MOVE_DISP_LEFT), dan lain-lain. Kemudian coba buat agar tulisan tersebut dapat berputar bergantian antara baris satu dan baris kedua pada LCD. Sahabat bisa mempelajari lebih jauh menggunakan code berikut ini:

Gambar 6. Contoh c code untuk menampilkan karakter dinamis

1.3.2.      Menampilkan nilai atau angka (integer, float):

Seperti namanya LCD karakter, maka fungsinya pun untuk menampilkan karakter. Namun bagaimana jika sahabat ingin menampilkan data integer, float atau yang lain? Apakah hal tersebut dapat dilakukan? Pada dasarnya yang dapat kita display adalah grafik ataupun karakter. Sedangkan integer dan proses aritmatik hanya bisa terjadi didalam otak. Angka merupakan merupakan representasi karakter dari sebuah data integer, float, dan lain-lain. Oleh karena itu kita dapat menampilkan data integer ataupun hasil operasi aritmatika lainnya, tetapi kita perlu ‘merubah’/merepresentasikan dalam bentuk data karakter (string).
Untuk mengubah data integer menjadi data string kita dapat menggunakan perintah/fungsi itoa(integer_yg_ingin_diubah, representasi_string_nya, basis). Dengan fungsi tersebut kita dapat ‘mengubah’ data integer menjadi data karakter sesuai basis yang diinginkan. Misalnya jika kita ingin mengubah data integer 14 menjadi data string dalam bentuk biner maka basis kita isi dengan 2. Dari pada berpanjang lebar, mari kita lakukan percobaan dengan code berikut ini:

Gambar 7. C code untuk menampilkan data integer

Secara umum, kita tidak disarankan untuk menggunakan perhitungan decimal (float number) dalam melakukan pemrograman mikrokontroler. Hal ini disebabkan karena umumnya inti otak dari mikrokontroler tidak dilengkapi dengan kemampuan untuk melakukan operasi aritmatik dengan bilangan decimal. Yang dapat dilakukan oleh otak dari mikrokontroler adalah melakukan operasi aritmatik. Namun secara engineer hal itu dapat dilakukan dengan mensimulasi (emulate) operasi aritmatik tersebut pada perangkat lunaknya.
Jika sahabat melakukan operasi aritmatik sederhana dan selalu menghasilkan bilangan bulat (integer) maka sahabat tidak perlu khawatir karena mikrokontroler dapat melakukannya dengan mudah. Tetapi jika pecahan atau bilangan desimal (float) tidak dapat dihindari maka sahabat perlu menggunakan perintah sprintf(). Seperti yang telah disebutkan diatas bahwa untuk melakukan operasi aritmatik bilangan decimal maka kita perlu menambahkan semacam emulator pada mikrokontroler kita. Fungsi sprintf() umum digunakan, tetapi membutuhkan waktu dan memori yang lebih banyak dibandingkan operasi aritmatik sederhana. Oleh karena itu sedapat mungkin sabahat menggunakan perhitungan yang sederhana.
Terkadang kita tidak dapat menghindar dari operasi aritmatik bilangan desimal. Pilihan lain adalah dengan menggunakan perintah/fungsi seperti dtostre() atau dtostrf(), karen fungsi-fungsi tersebut memiliki library yang lebih sederhana dan ringan dibandingkan perintah sprintf(). Atau kita juga dapat menggunakan perintah rprintfFloat(jmlhdigit, double_or_float) yang terdapat pada library AVR (rprintf.h). 
Sekarang mari kita coba menampilkan data float ke dalam LCD, misalnya data tekanan udara.

Gambar 8. C code untuk menampilkan data float/double
Setelah sahabat memprogram mikrokontroler sahabat dengan code diatas, apakah yang terjadi? Apakah yang muncul di LCD hanya ‘tanda tanya’ (?) seperti gambar dibawah ini?

Gambar 9. Error saat menampikan data float pada LCD
Masih ingat kan dengan penjelasan diatas bahwa, untuk melakukan operasi dengan data float, mikrokontroler membutuhkan ‘emulator’. Nah, kita perlu menjalankan ‘emulator’ tersebut agar operasi berjalan lancar, dengan cara memberitahukan kepada linker agar menggunakan floating point library. Library ini umumnya sudah tersedia dalam software AVR studio 5, tetapi perlu kita set agar library tersebut dapat digunakan. Library yang perlu ditambahkan adalah libprintf_flt.a dan libm.a, dan kita juga perlu menambahkan -Wl,-u,vfprintf -lprintf_flt –lm pada linker option agar library diatas dapat dijalankan dengan benar.
Berikut ini adalah cara memberitahukan linker pada AVR studio 5 mengenai floating point library:
-          Pada bagian menu klik Project (ALT+F7)
-          Klik Toolchain dan lihat pada bagian AVR/GNU C Linker dan pilih Libraries.
-          Pada bagian Librarier (-Wl,-l), lakukan klik pada tombol Add, dan sebuah jendela akan terbuka. Ketikkan (insert) libprintf_flt.a. Pilih Ok dan ulangi dari tombol Add dan ketikkan libm.a.
-          Lanjutkan dengan mengklik bagian Miscellaneous pada bagian AVR/GNU C Linker dan ketikkan -Wl,-u,vfprintf -lprintf_flt –lm pada baris input disamping tulisan Other linker flags.
-         Lakukan save, kemudian rebuild file C project sahabat.
Program kembali mikrokontroler sahabat dengan file hex yang baru, maka sahabat akan mendapatkan tampilan pada LCD seperti yang diharapkan.
Catatan:  bagi sahabat yang masih menggunakan CV AVR, sahabat dapat melakukan langkah diatas dengan melakukan klik pada Project à Configure, kemudian pada bagian (s)printf feature ubah statusnya menjadi float, width, precision.

Kesalahan (error) yang Sering Terjadi dan Solusinya
Saat menggunakan LCD mungkin sahabat akan menemui beberapa masalah seperti berikut:
-          tidak ada yang terlihat di layar
-          layar tampak hitam semuanya
-          hanya tampak kursor yang berkedip, dan tidak nampak karakter yang diinginkan
-          tampak karakter atau simbol yang aneh
Untuk masalah-masalah tersebut coba selasaikan dengan langkah-langkah berikut:
ü  Atur resistor variabel (potensiometer) untuk meningkatkan kontras
ü  Periksa kembali sambungan, mungkin ada koneksi yang putus atau mengalami short sircuit.
ü  Periksa kembali code sahabat. Pastikan sahabat telah menggunakan nilai clock (XTAL/F_CPU) yang tepat pada project utama maupun pada library lcd.h.
ü  Terakhir, jangan lupa bertanya kepada orang lain, karena mungkin mereka pernah mangalami masalah yang sahabat hadapi, dan mereka telah berhasil menemukan solusinya. Sahabat juga dapat bertanya di blog ini melalui jendela comment.




BIBLIOGRAPHY



dl8dtl. (2006, June 30). How to use sprintf with floats in AVR STUDIO (winavr compile). Retrieved August 14, 2012, from www.avrfreaks.net: http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=39892
Motisan, R. (2012, February 8). AVR Studio 5 snprintf / vsnprintf problem with Floats. Retrieved August 14, 2012, from POCKET MAGIC: Where Technology meets Magic: http://www.pocketmagic.net/?p=2513
Rudiawan, E. (2012, March 19). ngooprek.com. Retrieved August 14, 2012, from Belajar AVR – Sensor Interfacing – 13: http://ngooprek.com/blog/2012/03/19/belajar-avr-sensor-interfacing-13/
Vitu, M. (2011, June 16). LCD Interfacing with AVR. Retrieved August 14, 2012, from maxEmbedded: a Guide to Robotics and Embedded Electronics: http://maxembedded.wordpress.com/2011/06/16/lcd-interfacing-with-avr/
winavr.scienceprog.com. (2007, January 19). Using sprintf function for float numbers in AVR-GCC. Retrieved August 14, 2012, from AVR-GCC Tutorial WINAVR: http://winavr.scienceprog.com/comment/28