Lazada Indonesia

Friday, October 14, 2011

Komunikasi Serial Antara ATMega8 dengan Simulink Matlab

Simulink merupakan salah satu toolbox bawaan Matlab sebagai pelengkap yang dapat digunakan untuk berbagai macam keperluan. Salah satunya adalah berkomunikasi dengan peralatan eksternal. Komunikasi dapat dilakukan dengan berbagai macam cara, diantara salah satunya adalah dengan port serial. Dengan menggunakan toolbox simulink, kita dapat mengakuisisi data tanpa perlu berurusan dengan rumitnya coding. Jika pada tulisan sebelumnya telah diberikan contoh mengakuisisi data dengan script Matlab, maka pada kesempatan kali ini akan diberikan sedikit contoh komunikasi serial antara ATmega8 dengan Simulink Matlab.
Untuk dapat membuat komunikasi serial antara ATmega8 dengan Simulink, maka kita harus membuat model simulink. Hanya 2 buah library model saja untuk dapat mengakuisisi dan menampilkannya. Library yang dibutuhkan adalah Query Instrument dan Display.

Untuk membuatnya, ikuti langkah-langkah berikut:
1. Buka Maltab, kemudian buka Simulink dengan cara
   a. Mengetik simulink pada Command Window, atau dengan
   b. Klik Start pada Matlab --> Simulink --> Library Browser,
  kemudian buat sebuah file model baru dengan cara klik File --> New --> Model
2. Pada Simulink Library Browser, cara library dengan mengikuti langkah berikut
   1) Ketika Instrument
   2) klik icon search
   3) drag Query Instrument ke berkas Model

3. Tampilan setelah mengambil Query Instrumenti adalah sebegai berikut

4. Dengan langkah yang sama pada poin 2 & 3, cari library Display

5. Setelah ditemukan, drag pada media model seperti berikut

6. Kemudian tambahkan koneksi antara Query Instrument dan Display

7. Kemudian double klik pada Query Instrument untuk mengatur setting serial baud rate 115200. Samakan setting seperti tampilan berikut

8.  Kemudian langkah selanjutnya adalah membuat project pada ATmega8. Dengan menggunakan Code Vision Wizard, kita bisa dengan mudah membuat program serial. Pertama, atur Chip sesuai dengan tipe ATmega8 yang dipakai, kemudian clock yang digunakan adalah 11.059200 M

9. Kemudian klik Tab USART. Beri tanda cek pada Transmintter, kemudian pilih baud rate dengan nilai 115200
Kemudian klik File --> Save dan Generate
10. Kemudian pada coding, tambahkan
      #include <delay.h>

11. Tambahkan code berikut
      int i;
      for(i=1; i<100; i++)
       {
        printf("%d",i*50);
        putchar(0x0A);
        delay_ms(250);
       }
Kemudian compile dan flash ke ATmega8, dan verify sehingga sukses.
12. Kemudian pindah pada window model simulink. isikan nilai time simulation dengan nilai 100. Kemudian klik icon Start Simulation.

13. Hasil simulasi pada t=12, tampil nilai pada display

14. Hasil simulasi pada t=59, tampil nilai pada display

Demikian semoga bermanfaat.

Saturday, October 8, 2011

Menampilkan Image Pada Visual Basic 6

Pengantar

Tentunya Anda tidak akan asing dengan image Lenna disamping, dimana image tersebut telah digunakan secara luas sebagai image standar untuk operasi image processing atau pengolahan citra digital.
Menurut beberapa sumber, ternyata Lena wanita yang ada pada image tersebut adalah salah satu model yang ada pada majalah Play Boy. Citra/image tersebut telah dijadikan sebagai standar bagi pemroresan citra dan kompresi citra. Wanita tersebut telah dinobatkan sebagai The First Lady Of The Internet.

Jika Anda menunjukkan Gambar di atas dan bertanya kepada seseorang yang bergerak di bidang pengolahan citra, dia pasti akan tahu bahwa itu adalah “Gambar Lena”, tapi mungkin dia tidak tahu siapa Lena. Lena adalah seorang gadis playmate majalah Playboy tahun 1972.
Pada tahun 70-an, seorang periset dari University of Southern Carolina sedang mengerjakan sebuah algoritma kompresi dan memindai gambar Lena, yang ada di lembaran tengah (centerspread) majalah Playboy. Sejak saat itu Gambar Lena telah menjadi standar industri sebagai bahan untuk menguji algoritma manipulasi dan transmisi citra elektronik. Selama lebih dari 25 tahun sejak Lena diperkenalkan, tidak ada gambar yang lebih penting daripada Lena dalam bidang manipulasi dan komunikasi citra digital. Lena telah dianggap sebagai Ibu Negara Internet.

Mengapa Lena?

Ada banyak gambar lain di dunia ini yang dapat digunakan untuk menguji teknologi kompresi dan teknologi manipulasi citra yang lain, namun Lena dipilih karena dua alasan. Alasan pertama adalah alasan teknis. Gambar Lena memiliki gabungan detail, pencahayaan, dan tekstur yang cocok untuk menguji berbagai algoritma. Jika suatu algoritma diaplikasikan terhadap gambar Lena maka dapat dilihat bagaimana algoritma itu berpengaruh terhadap keseluruhan gambar—misalnya apakah satu bagian menjadi lebih baik atau lebih jelek dari bagian yang lain. Alasan yang kedua sama sekali tidak teknis. Kebanyakan periset citra adalah laki-laki yang cenderung tertarik pada wanita cantik, sehingga gambar Lena lebih dipilih dibanding gambar yang lain.
Tidak semua pihak setuju penggunaan gambar Lena pada publikasi ilmiah. Ketidaksetujuan ini disebabkan karena asal gambar itu, yaitu dari Playboy. Gambar itu diambil dari majalah yang oleh sebagian orang dianggap merendahkan wanita sehingga sebaiknya tidak digunakan. Sebagian yang lain menganggap sebaiknya gambar yang memiliki hak cipta tidak digunakan di publikasi ilmiah.
Majalah Playboy sendiri tadinya hendak menuntut penggunaan Gambar Lena, namun kini hal itu tidak dilakukan lagi. Justru majalah tersebut membantu melacak kembali informasi mengenai gambar Lena, misalnya kamera dan film apa yang digunakan, serta bagaimana pemrosesan gambar dilakukan. Hal ini dilakukan oleh majalah Playboy karena menganggap Lena sebagai suatu fenomena yang patut dieksploitasi—demi keuntungan mereka tentunya.

Menampilkan Citra Pada Visual Basic

 Untuk menampilkan citra pada visual basic, kita dapat menggunakan komponen PictureBox. Dengan PictureBox, sebuah citra dapat di analisa komposisi warna pembentuk citra tersebut. Komponen warna yang dimaksud adalah RGB (Red, Green, Blue) yang merupakan warna primer pada sebuah citra. Sementara warna-warna lain adalah turunan kombinasi dari dua atau tiga warna tersebut.



Pada contoh code tersebut kita juga menggunakan komponen CommonDialog. Komponen ini berfungsi untuk menampilkan interface membuka sebuah file citra layaknya pada sebuah program aplikasi windows umumnya.
Code untuk membuka sebua citra kedalam sebuah PictureBox adalah:
CD.ShowOpen
Me.Caption = CD.FileName
Picture1.Picture = LoadPicture(CD.FileName)

Setelah sebuah citra dapat ditampilkan pada PictureBox, citra dapat digunakan untuk pemroresan citra selanjutnya.


Demikian, semoga bermanfaat.


Thursday, September 29, 2011

Monday, September 26, 2011

Membuat Grafik Data Logger ADC 8 Channel Dengan Visual Basic 6

Grafik sebuah data yang didapatkan dari pengukuran dapat disajikan dalam sebuah grafik pada Visual Basic. Pada tulisan sebelumnya telah diberikan sedikit contoh bagaimana cara menyajikan data dengan menggunakan Visual Basic. Pada kesempatan ini akan diberikan contoh pengembangannya dengan menyajikan data sebanyak 8 channel data. Selain penyajian dalam grafik, diberikan juga sebuah indikator pada tiap-tiap channel dengan menentukan batas atas dan batas bawah. Batas atas disini, untuk memberitahukan bawah titik atas tersebut sudah tercapai dengan ditandai berubah warnah merah pada penanda.
Selain disajikan dalam bentuk grafik, data ditampilkan pula dalam grid yang menyajikan data dalam bentuk numerik. Sehingga secara visual dan numerik dapat diamati dengan lebih mudah. Masing-masing channel dibedakan dengan warna yang berbeda.

Pada dasarnya, proses delapan channel data tersebut adalah sama dengan proses satu grafik yang dibuat parallel. Dalam pengambilan data, ditangani oleh MCU yang membaca data analog dengan menggunakan ADC internal ATMega16. MCU mengambil data dengan sistem polling, ADC yang jumlahnya 8 channel dibaca dari channel 1 sampai channel 8. Kemudian data yang didapatkan dibuat paket data menjadi satu frame data.
Data disusun dengan skema berikut:
1. Header = #
2 Delimiter = $ - ?
3. Data = 0 s/d 5000
4. End of Data = &@
#$ADC1?$ADC2?$ADC3?$ADC4?$ADC5?$ADC6?$ADC7?$ADC8?&@ + [ENTER]
dalam contoh dengan data numerik:
#$520?$1040?$1560?$2080?$2600?$3120?$3640?$4160?&@ + [ENTER]
Header, delimiter dan End of data diperlukan untuk parameter bahwa data yang ada adalah valid dan dapat digunakan.
Untuk dapat mengambil data menjadi delapan data kembali, maka diperlukan identifikasi. Proses yang dilakukan adalah membaca parameter-parameter di atas. Pertama, membaca header, kemudian membaca delimiter, kemudian membaca end of data, baru membaca datanya.



Untuk membaca header, langkahnya adalah membaca karakter #. Pada visual basic, untuk membaca karakter tertentu digunakan syntax:
Kres = InStr(PaketData, "#")
membaca end of data:
At = InStr(PaketData, "@")
Terakhir untuk mengetahui sebuah data, maka kita perlu mengetahui posisi delimiter.
Dollar = InStr(PaketPecah, "$")
Tanya = InStr(PaketPecah, "?")
baru kita bisa mendapatkan data pengukuran tersebut.
Selanjutnya baru kita membuat tampilan dalam bentuk grafik seperti telah dibahas pada tulisan sebelumnya.
Demikian semoga bermanfaat.

Tutorial FPGA - 2

14 . Pilih menu Add --> Wire (Ctrl + W)
   
Kemudian klik dari ujung pin CE, tarik garis lurus kea rah kiri kemudian klik sampai membentuk wire, klik Esc.
15. Tambahkan wire untuk semua pin yang ada seperti berikut
16. Pilih menu Add --> I/O marker (Ctrl + G), kemudian select pin CE, C dan CLR seperti tampilan berikut

17. Ulangi untuk pin Q0 s/d pin Q3, CEO, TC
Secara default masing-masing pin akan memiliki nama dari XLXN_1
18. Klik kanan pada I/O marker XLXN_1, pilih Object Properties, pilih Nets, XLXN_1
19. Pada kolom Value, baris Name ganti dengan CE
20. Ganti nama masing-masing pin sesuai tampilan berikut
21. Klik kanan pada xc3s400an-4fgg400 kemudian pilih New Source
Tambahkan VHDL Test Bench, beri nama pada File name Counter4bit_tb, kemudian klik Next >
22. Klik Next >
23. Klik Finish
24. Selanjutnya akan muncuk code HDL disebelah kanan
25. Edit code berikut:
tb : PROCESS
BEGIN
                WAIT;
END PROCESS;
Menjadi seperti berikut:
                C1 : PROCESS
BEGIN
                C <= ‘1’; wait for 10ns;
                C <= ‘0’; wait for 10ns;
END PROCESS;
26. Pada tab Hierarchy, klik Counter4bit.sch, kemudian pada tab Processes: Counter4bit, klik kanan Synthesize – XST kemudian pilih Run
27. Pada tab View pilih Simulation. Pada tab Hierarchy pilih Counter4bit_tb.vhd
Pada tab Processes pilih Isim Simulator à Behavioral Check Syntax
28. Kemudian klik kanan Simulate Behavioral Model à Run
29. Kemudian akan muncul layar window baru seperti berikut
30. Kemudian klik icon no 1 diikuti no 2.
Demikian, petunjuk singkat membuat clock pada FPGA dengan gambar rangkaian dan VHDL.
Semoga bermanfaat.

Sunday, September 25, 2011

Interfacing GPS Garmin 60C Dengan ATMega162 (2)

undefined
Pada tulisan sebelumnya, telah dijelaskan tentang GPS beserta data-data yang dapat diambil untuk dijadikan sebagai sumber informasi. Diantara data yang digunakan adalah data $GPGGA – Global Positioning System Fix Data. Pada blok data yang diawali dengan $GPGGA, kita bisa mengetahui waktu, latitude, longitude, altitude, dan yang lainnya. Pada tulisan ini, kita akan mencoba untuk membaca blok data yang diawali dengan identifier $GPGGA.

Pada GPS Garmin seri 60C, data dikirim dalam format NMEA dalam satu paket data. Pada tiap paket data yang dikirimkan, terdapat blok-blok data yang diawali dengan identifier. Sehingga kita bisa memilih kategori data yang akan diambil dengan mengabaikan blok data yang lainnya. Dalam satu blok data yang diawali dengan identifier yang sudah ditentukan formatnya, memberikan informasi yang terdiri dari beberapa bagian informasi. Misalnya, blok data yang diawali dengan identifier $GPZDA, memberikan data UTC, day, month, year, dan local time zone.

Data yang dikirimkan oleh GPS Garmin 60C, dikirim melalui format serial pada kecepatan 4200 dan terdapat jeda untuk tiap paket data yang dikirimkan. Karena data yang dikirimkan adalah berupa data serial, maka kita akan mengambil data yang diberikan dengan menggunakan port serial. Komunikasi yang digunakan adalah komunikasi satu arah dari GPS ke mikrokontroller.


Karena menggunakan komunikasi satu arah, maka pada mikrokontroller harus disetting sebagai Rx Interrupt. Yaitu, mikrokontroller diatur untuk melayani setiap data yang diterima setiap saat. Ini harus dilakukan, karena data yang diterima tanpa didahului oleh proses handshake. Untuk selanjutnya, mikrokontroller harus mampu menyimpan data yang diterima pada sebuah variable buffer. Jadi, data yang diterima disimpan pada variable buffer, kemudian baru difilter berdasarkan identifier yang diinginkan.

Untuk membaca blok data $GPGGA,061648,0619.9585,S,10639.9713,E,1,09,0.8,70.0,M,1.5,M,,*5E

Pada blok data di atas, terdapat blok data berikut:

  • Sentence Identifier : $GPGGA

  • Time : 061648

  • Latitude : 0619.9585

  • Longitude : 10639.9713

  • Fix Quality : 1

  • Number of Satellites : 09

  • Horizontal Dilution of Precision (HDOP)  : 0.8

  • Altitude : 70 M

  • Height of geoid above WGS84 ellipsoid  : 1.5 M

  • Time since last DGPS update : blank

  • DGPS reference station id : blank

  • Checksum : 5E

Maka dipembacaan data dilakukan dengan algoritma pembacaan data GPS digambarkan di bawah ini:


  1. Baca data serial yang diterima, kemudian simpan pada variable buffer.

  2. Stop pembacaan data serial, jika ditemukan 0x0D atau CR (Carriage Return)

  3. Cek, apakah karakter pertama adalah ‘$’: jika betul maka lanjutkan filtering; jika tidak, maka abaikan

  4. Cek, apakah karakter pertama sampai karakter ketujuh sama dengan “$GPGGA,” jika betul, lanjutkan filtering; jika tidak, maka abaikan

  5. Cek mulai karakter 15 sampai karakter terakhir: jika ditemukan karakter ‘S’ atau ‘N’, maka catat panjang data Lintang, kemudian lanjutkan filter; jika belum ditemukan, lanjutkan para karakter selanjutnya

  6. Cek mulai posisi setelah ditemukan karakter ‘S’ atau ‘N’ sampai karakter terakhir: Jika ditemukan karakter ‘E’ atau ‘W’, maka catat panjang data Bujur; Jika belum ditemukan, lanjutkan para karakter selanjutnya

  7. Copy data Lintang dari karakter 15 sampai posisi ditemukan karakter ‘S’ atau ‘N’

  8. Copy data Lintang dari karakter ditemukan posisi karakter ‘S’ atau ‘N’ sampai posisi ditemukan karakter ‘E’ atau ‘W’.

Demikian sedikit penjelasan salah satu cara membaca data dari GPS Garmin seri 60C. Semoga bermanfaat.

Interfacing GPS Garmin 60C Dengan ATMega162 (1)

undefined
Pada tulisan kali ini kami akan mencoba menuliskan hasil interfacing antara GPS Garmin 60C dengan AVR ATMega162. Interfacing yang saya maksud pada kesempatan ini adalah bagaimana membaca data output GPS Garmin 60C yang berupa protokol NMEA.

GPS merupakan suati device navigation  yang dapat digunakan untuk mengetahui posisi seseorang pada suatu tempat. GPS memberikan data diantaranya adalah: Global Positioning System, Geographic position (latitude/longitude), dan lain sebagainya.  Data output GPS Garmin mengikuti protokol NMEA yaitu suatu protokol komunikasi pada peralatan elektronik untuk aplikasi pada kapal laut.

Sedangkan untuk melakukan interfacing antara GPS Garmin 60C dengan ATMega162, kita perlu mengetahui data output dan koneksi antara GPS dan mikrokontroller.


Data Output

GPS Garmin 60 secara periodik akan mengirimkan data streaming melalui port serial atau koneksi USB tergantung setting yang dipilih. Contoh data yang dikeluarkan oleh GPS Garmin 60C dapat dilihat disini Data Output GPS.

Dari data output GPS di atas kita akan mengambil data $GPGGA – Global Positioning System Fix Data.

dari blok data ini, kita bisa mengambil data menjadi bagian berikut:

Global Positioning System Fix Data


Name Example Data Description
Sentence Identifier$GPGGAGlobal Positioning System Fix Data
Time06164606:16:46 Z
Latitude0619.9586,S06d 19.9586′ S
Longitude10639.9710,E106d 39.9710′ E
Fix Quality:
- 0 = Invalid
- 1 = GPS fix
- 2 = DGPS fix
1Data is from a GPS fix
Number of Satellites099 Satellites are in view
Horizontal Dilution of Precision (HDOP)0.8Relative accuracy of horizontal position
Altitude70.2, M70.2 meters above mean sea level
Height of geoid above WGS84 ellipsoid1.5, M1.5 meters
Time since last DGPS updateblankNo last update
DGPS reference station idblankNo station id
Checksum*52Used by program to check for transmission errors

Courtesy of Brian McClure, N8PQI.

Dari list data di atas, kita bisa mendapatkan data Lintang Selatan (S) dan Bujur Timur (E) 06d 19.9586′ S dan 106d 39.9710′ E .



Koneksi GPS – Mikrokontroller

undefined

Untuk membuat koneksi antara GPS Garmin 60C dan AVR ATMega162,  hubungkan Data Out dengan Pin Rx pada ATMega162 dengan terlebih dahulu melalui Max232 untuk menyesuaikan level tegangan. Kemudian hubungkan (-) Ground dengan Gnd pada ATMega162.

Pada tulisan kedua, akan dijelaskan cara membaca data output GPS Garmin 60C dengan ATMega162.

berlanjut....

Machine Learning: Membuat Prediksi Dengan Linear Regression

Membuat prediksi berdasarkan data-data yang sudah dimiliki diawal biasanya dalam bahasa inggris disebut  forecast . Misalnya berdasarkan dat...