Anda di halaman 1dari 16

Roboholicrazy Camera module

oleh Herianto

Abstract
This document describes the development of a prototype of an interface between a
CMOS camera and computer. This interface allows a user to get images from the camera,
to change some of the properties of the camera as resolution. In addition some image process
is implemented allowing the camera to track white objects and follow them with a servomotor.
The interface was implemented using the Atmel AVR ATmega16 MIkrokontroller.
Dokumen ini mendeskripsikan tentang pengembangan prototype interface antara cmos
kamera dan computer. Interface ini mengizinkan pengguna untuk mengambil gambar dari
kamera dan dapat mengganti beberapa properti dari kamera seperti resolusi kamera. Dalam
modul kamera ini juga di tanamkan image prosesing yang mengizinkan kamera untuk mengikuti
objyek berwarna putih dengan motor servo. Interface ini di implementasikan menggunakan ic
MIkrokontroller Atmel AVR ATmega16.

Keyword : Digital, camera, interface

BAB I
1.1. Latarbelakang Masalah

Dalam waktu belakangan ini saya disibukkan dengan merancang robot dengan sensor
kamera dengan MIkrokontroller, melalui proyek digital menggunakan sensor kamera,
Pengenbangan Sensor kamera kita selalu di batasi oleh kendala membeli module
sensor kamera yang sudah jadi biasanya harganya sangat mahal dan tidak sesuai dengan
keinginan. Perancangan interface sensor ini terjadi karena adanya sebuah projek dari Dikti
tentang altitude monitoring Surveillance monitoring citra dari atas langit dengan syarat
menangkap gambar black and white (hitam putih) dengan resolusi 200x200 pixel.
Sensor digital camera C3088 terdapat banyak di pasaran dan harga nya cukup
terjangkau. sensor digital camera C3088 ini juga terdapat di kamera cmucam3 kamera.
Ide saya adalah ingin mebuat sebuah interface camera C3088 ini bekerja seperi Cmucam3
dengan kehendak sesuai yang kita inginkan, sebagai alat monitoring pada altitude
Surveillance. Yakni dengan menangkap gambar 200x200 pixel dengan format black and
white.
Modul Kamera ini menggunakan IC Atmega16 sebagai MIkrokontroller unit di
karenakan saya memiliki ic tersebut namun tidak terpakai. Selain itu saya sudah terbiasa
menggunakan ic controller keluaran AVR tersebut.
1.2. Spesifikasi

Sensor Kamera ini menggunakan komunikasi serial port, dan sebagai


software interface menggunakan pemograman C# dengan menbangun software frame
grabber sendiri. Data yang di kirim dari kamera berupa data hexadecimal, dan
keluaran dengan format bmp black and white. Kamera ini juga dapat mengikuti objek
berwarna putih dengan penambahan servo motor pada port yang tersedia pada module
kamera tersebut.
Komunikasi antar sensor kamera dan MIkrokontroller menggunakan i2c
protocol, dan one-wire protocol. Untuk mengakses register yang terdapat di dalam
module kamera menggunakan 8bit port i/o pada MIkrokontroller.

BAB II
2.1. Sensor CMOS Kamera C3088
Sensor CMOS Kamera C3088 ini merupakan bagian yang paling utama dalam project
ini. Pemilihan sensor ini di karenakan sensor kamera ini memiliki Output berupa data
digital . Sensor CMOS Kamera ini menggunakan sensor gambar CMOS OV6620 dari
Omnivision .sensor ini memiliki port video digital yang memasok 8/16 bit data terus
menerus di seluruh data gambar . Keuntungan,menggunakan sensor kamera ini memiliki
mode white balance, ukuran gambar yang di terima dapat di sesuaikan dengan mengubah
settingan i2c pada micrcontoller.
Output video dapat dinyatakan dalam format yang berbeda-beda, dan dengan berbagai
jenis channel (RGB, UVY). Format yang digunakan dalam proyek ini adalah yang paling
sederhana, yaitu black and white.berikut beberapa format settingan yang di pakai :
1. Zoom Video PORT Format. Dalam format ini mengunakan data 8 bit yang
merupakan data dari (Y channel) dari satu pixel, dan 8 bit lainnya mewakili saluran U
dan V, tidak digunakan.
2. Informasi yang dikirim terus menerus dan akan disinkronkan dengan HREF, VSYNC
dan sinyal PCLK sebagaimana yang terdapat dalam gambar 2.1.
3. Sinyal VSYNC menunjukkan bingkai baru, sinyal HREF menunjukkan informasi
data valid dan membuat sinkronisasi horisontal, dan sinyal PCLK adalah sinyal clock
(data valid jika data di tepi awal). Periode PCLK dapat diubah dengan menulis
register pada kamera. Hal inilah yang akan memungkinkan MIkrokontroller dapat
membaca gambar dari kamera secara langsung tanpa menggunakan tambahan
perangkat keras.
Untuk mengakses register pada sensor kamera menggunakan i2c bus pada
MIkrokontroller yang di gunakan untuk menulis dan membaca besarnya gambar dan
resolusi gambar. Alamat adrres i2c camera adalah 0xC0 untuk menulis dan 0xC1 untuk
membaca.
Pin pada sensor kamera terdiri atas :
1.
2.
3.
4.

Y0 Y7 Digital output Y Bus.


UV0-UV7 Digital output UV bus.
PWDN Power down mode and RST Reset.
SDA I2C Serial data and SCL I2C Serial clock input (For the I2C
comunication).
5. FODD Odd Field ag.
6. AGND Analog Ground, GND Common ground and VCC Power Supply
5VDC.

7. HREF Horizontal window reference output, VSYN Vertical Sync output and

PCLK Pixel clock output (untuk mesingkronkan mengambil gambar).


8. EXCLK External Clock input.
9. VTO Video Analog Output.

Gambar 2.1 Output Signal dari sensor Kamera C3008.

PERANGKAT KERAS III


3.1. Reset Dan Clok Circuit

Pada proyek ini perangkat MIkrokontroller menggunakan Kristal Frekwensi 16


MHZ dan dengan kapasitor 22pf sebagai peredam resonansi yang bocor , pada tombol
reset langsung di hubungkan dengan groud dan di pull-up dengan resistor 10k , lihat
gambar 3.1.

Gambar 3.1 Rangkaian Cristal dan Reset untuk MIkrokontroller unit


3.2. PORT SERIAL

Port adalah konektor,dan port serial biasanya terdapat pada bagian belakang
chasing komputer yang menghubungkan sistem komputer dengan device eksternal
(contoh : printer, modem, joystick dan sebagainya). Port serial terdiri dari 9 atau 25 pin.
Biasanya digunakan untuk koneksi mouse atau modem. Port ini diberi nama COM1,

COM2, dan seterusnya. Port serial hanya dapat menerima atau membaca data satu persatu
dalam ukuran 1 bit melalui satu kabel tunggal. Port serial lebih cocok untuk peralatan
yang tidak banyak melakukan perpindahan data. Port serial popular digunakan oleh
mouse dan keyboard.

Gambar 3.2 . Port Serial (COM 1).

Tabel 3.1. Pin-pin Port Serial


Pin
1

Jalur

Keterangan

DCD

Data Carrier Detect, aktif bila modem mendeteksi


carrier dari modem lain yang terhubung.

RD

Receive Data, jalur input data serial.

TD

Transmit Data, jalur output data serial.

DTR

Data Terminal Ready, memberitahu modem


bahwa UART siap terhubung.

SG

Signal Ground, grounding.

DSR

Data Set Ready, memberitahu UART bahwa


modem siap membangun hubungan.

RTS

Request To Send, memberitahu modem bahwa


UART siap bertukar data.

CTS

Clear To Send, menunjukkan bahwa modem siap


bertukar data.

RI

Ring Indicator, aktif bila modem mendeteksi bel


telephone.

1. Karekteristik Sinyal Serial Port


Standar sinyal komunikasi serial yang banyak digunakan ialah standar RS232.
Standar ini hanya menyangkut komunikasi data antara komputer (Data Terminal

Equipment DTE) dengan alat alat pelengkap komputer (Data Circuit-Terminating


Equipment DCE). Standarad RS232 inilah yang biasa digunakan pada serial port
Compatibel.

Standar sinyal serial RS232 memiliki ketentuan level tegangan sebagai berikut:
a. Logika 1 disebut mark terletak antara -3 volt hingga -25 volt.
b. Logika 0 disebut space terletak antara +3 volt hingga +25 volt.
c. Daerah tegangan antara -3 volt hingga +3 volt adalah invalid level, yaitu daerah
tegangan yang tidak memiliki level logika pasti sehingga harus dihindari.
Demikian juga level tegangan lebih negatif dari -25 volt atau lebih positif dari +25
volt juga harus dihindari karena dapat merusak line driver pada saluran RS232.

3.3. Converter Logika RS232.

Jika peralatan yang digunakan menggunakan logika TTL, maka sinyal port serial
harus dikonversikan terlebih dahulu ke pulsa TTL sebelum digunakan begitu juga
sebaliknya. Converter yang paling mudah digunakan ialah MAX232. Di dalam IC ini
terdapat charge pump yang akan membangkitkan tegangan +10 Volt dan -10 Volt dari
sumber +5 Volt tunggal Dalam IC DIP (Dual Inline Package)16 pin ini terdapat 2 buah
transmitter dan 2 buah receiver.

Gambar 3.3 IC RS 232

3.4. Komunikasi Serial.


Komunikasi serial ialah komunikasi dimana pengiriman data dilakukan per bit,
sehingga lebih lambat dibandingkan komunikasi parallel seperti pada port printer yang
mampu mengirim 8 bit sekaligus dalam sekali detak. Beberapa contoh komunikasi serial
ialah mouse, scanner dan system akuisisi data yang terhubung ke port COM1/COM2.
Dalam komunikasi data serial, data dikirim dengan bentuk pulsa lisrrik kontinyu
yang disebut bit. Data dikirim satu bit demi satu bit secara berurutan melalui kanal
komunikasi yang telah ditentukan. Penerima juga menerima data dalam bentuk bit - bit
pulsa listrik yang kontinyu.
Ada tiga metode yang sering dijumpai pada komunikasi data serial yaitu Simpleks.
half dupleks, dan full duplex. Pada transmisi data simpleks, data hanya dapat dikirim
dalam satu arah saja. Pada half duplcks data dapat ditransmisikan dalam dua arah secara
bergantian. Transmisi data secara full dupleks merupakan transmisi data dua arah dimana
data dapat diterima oleh system dan sekaligus system tersebut dapat mengirimkan data
secara bersamaan. Transmisi data full duplcks dapat dijumpai pada system telepon.
Dalam komunikasi data serial, ada dua metode dasar yang digunakan yaitu
komunikasi serial asinkron dan komunikasi serial sinkron.
Komunikasi pada RS-232 dengan PC adalah komunikasi asinkron. Dimana sinyal
clocknya tidak dikirim bersamaan dengan data. Masing-masing data disinkronkan
menggunakan clock internal pada tiap-tiap sisinya. Gambar 2.6 Format transmisi satu
byte pada RS232 Data yang ditransmisikan pada format diatas adalah 8 bit, sebelum data
tersebut ditransmisikan maka akan diawali oleh start bit dengan logik 0 (0 Volt),
kemudian 8 bit data dan diakhiri oleh satu stop bit dengan logik 1 (5 Volt).

3.5. Komunikasi Serial Pada microcontoller


Komunikasi serial pada mikrokontroler berfungsi untuk menghubungkan suatu
devais dengan devais lainnya. Port serial pada mikrokontroller terdiri atas dua pin yaitu
RXD dan TXD, RXD berfungsi untuk menerima data dari komputer / perangkat
lainnya, TXD berfungsi untuk mengirim data ke komputer / perangkat lainnya, Standar
komunikasi serial untuk komputer ialah RS-232, RS-232 mempunyai standar tegangan

yang berbeda dengan serial port mikrokontroler, sehingga agar sesuai dengan RS-232
maka di butuhkan suatu rangkaian level converter, IC yang digunakan bermacammacam, tetapi yang paling mudah dan sering digunakan ialah IC MAX232/HIN232.
Pada mikrokontroler AVR ATmega16, pin PD0 dan PD1 digunakan untuk komunikasi
serial USART (Universal Synchronous and Asynchronous Serial Receiver and
Transmitter) yang mendukung komunikasi full duplex komunikasi 2 arah.

3.6. BMP FORMAT


Sensor kamera ini mengirim data dengan format file bmp dalam bentuk
hexadecimal. Format ini yang nantinya akan di terima komputer sebgai data gambar
dengan mengkonversi data bitmap dalam bentuk hexadesimal menjadi format gambar
utuh, berikuti struktur format BMP:

1. Header.berisi informasi tentang file gambar. 14 bytes data.


2. Info Header. Berisi informasi tentang gambar (size, bits per pixel, ) 40 bytes
3. Palette. Penerjemah tiap warna pada tiap pixel.
4. Data. Semua data perpixel yang terdapat pada gambar.

3.4. Gambar Format File BMP

PERANGKAT LUNAK IV
4.1. Microsoft Visual C#

Microsoft Visual C# merupakan suatu bahasa pemrograman yang memberikan


berbagai fasilitas pembuatan aplikasi visual. Keunggulan bahasa pemrograman ini
terletak pada:
a. Kualitas
b. Produktivitas
c. Kwantitas
d. Pengembangan perangkat lunak
e. Desain
f.

Kecepatan eksekusi program

g. Berbasis Windows

Khusus untuk pemrograman serial, Microsoft Visual C# menyediakan fasilitas objek


yang kuat dan lengkap yang memudahkan programmer dalam membuat program.

4.2. SERIAL PORT Microsoft visual C#

visual C# berkerja dengan adanya Net framework. Net framework ini menyediakan
class SerialPort yg tersimpan di Namespace System.IO.Ports yg digunakan untuk
mengakses serial port pada komputer.
1. Membuat Objek SerialPort

Dengan cara membuat object dari class

SerialPort

kita dapat

mengontrol

komunikasi serial lewat program. Cara membuat object serial port (misal objek kita
beri nama serialport1) :

SerialPort serialport1 = new SerialPort ();

Selain cara diatas kita bisa membuat objeck dengan cara men drag and drop komponen
SerialPort dari controbox ke form kerja.

Beberapa method dari class SerialPort :


1. Methode untuk membuka / menutup komunikasi:

Open(): Open koneksi serial port .


Close(): Closes koneksi port.
2. Method untuk membaca data serial:
public int Read(byte[] buffer, int offset, int count);
Membaca byte dari buffer input SerialPort dan menyimpanya ke dalam
array.
Parameter:
- buffer: byte array yg terbaca
- offset: offset awal buffer array .
- count: jumlah byte terbaca.
Returns: jumlah byte terbaca.
public int Read(char[] buffer, int offset, int count);
Membaca karakter dari input buffer dan menyimpannya ke array karakter
pada buffer
Parameter:
-buffer: array yg berisi karakter yg terbaca.
-offset: offset buffer array .
-count : jumlah karakter terbaca.
Returns: jumlah karakter terbaca.
public int ReadByte();
secara sinkron membaca 1 byte dari SerialPort input buffer.
Returns:
The byte, cast to an System.Int32, or -1 if the end of the stream has been
read.
public int ReadChar();
secara Synchron membaca 1 karakter dari SerialPort input buffer.
Returns:
The character that was read.

public string ReadExisting();


membaca semua langsung data yg ada

stream

atau

input buffer

SerialPort object (tergantung coding).


Returns:
The contents of the stream and the input buffer SerialPort object.

3. Methode Menulis /mengirim data


public void Write(string text);
mengirim string ke the serial port. Parameters: text: string yg dikirim.
public void Write(byte[] buffer, int offset, int count);
mengirim sejumlah byte di buffer ke serial port
Parameter:
buffer: byte array yg isinya akan dikirim.
offset: zero-based byte offset di buffer count: jumlah byte yg
akan dikirim
Beberapa public properties class SerialPort yg digunakan :
BaudRate: Gets atau sets serial baud rate.
StopBits: Gets atau sets jumlah stopbits per byte.
ReadTimeout: Gets atau sets milliseconds timeout pembacaan

HASIL V

5.1. Camera Module


Setelah proses Pembuatan perangkat keras dan lunak Selesai. maka selanjutnya proses
pengunjian Sensor Kamera.
Untuk mengetahui proses komunikasi serial berjalan dengan lancar tekan tombol reset pada
MIkrokontroller dan tunggu pesan pada software di computer dengan pesan :
Roboholicrazy Camera Module
Gamchan-MaxRObo 2011
Kirim HELP Untuk Melihat Menu Bantuan
Kirim Tulisan HELP pada form Kirim
Dan akan mendapat balasan :
HELP MENU-Commands:
RR arg1
WR arg1 arg2
READALL
RESET
MIRRORON
MIRROROOFF
SERVO arg1
SCAN
MOVESERVO
TRACK
Menu-Commands merupakan Menu perintah kepada kamera dengan tambahan carier dan
return. (\r\n)
Berikut fungsi menu command tersebut :
RR arg1 = Membaca Register dengan satu variable argument dengan output hexadecimal
Contoh RR 21 = membaca Register di register 21.
WR arg1 arg2= Menulis Register denan format alamat dan isi register
Contoh WR 21 FF = mengisi Register 21 dengan data FF.
READALL= Membaca semua Register sensor kamera.
MIRRORON = Membalik gambar seperti kita melihat cermin.
MIRROROFF= Mematikan Mode MIRROR.
SERVO arg1 = Memerintahkan servo ke posisi.

Contoh SERVO 100 = Memerintahkan servo bergerak 100 derajat.


SCAN = Pegeseran servo perlahan dari kiri Ke kanan
MOVESERVO = mengizinkan pengguna menggeser servo dengan menekan keyboard
computer P dan Q melalui hyper terminal.
TRACK= mengikuti Objek Putih dengan baground hitam dengan pergerakan servo.

PU = Command untuk menangkap gambar dengan ukuran 200x200 pixel.


PHOTO = Command untuk menangkap gambar dengan ukuran 244x352 pixel.

GAMBAR 5.1 Gambar Hasil pengambilan dengan command PU

GAMBAR 5.2 Gambar Hasil pengambilan dengan command PHOTO

FRAME GRABBER :
Frame grabber merupakan software yang di gunakan sebagai penangkap data dan pengumpulan
data gambar dalam bentuk hexadecimal menjadi data gambar yang utuh berikut penjelasan tiap
fungsi dari software Frame Grabber :

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.

Jendela pemilihan Port Serial .


Tombol Menghubungkan sofware ke kamera.
Tombol memutuskan software dari kamera.
Jendela utama data dikirim dan di terima
Form tempat mengisi command yang akan di kirim
Lokasi Penyimpanan gambar dapat di edit sesuai pengguna
Tombol Menyimpan gambar
Tombol mengirim command yang tertulis di form tempat mengisi command
Jendela utama hasil pengambilan gambar.
Tombol ambil gambar 200x200 dengan isi Command PU\r\n
Tombol ambil gambar 244x350 dengan isi command PHOTO\r\n
Tekan tombol ini untuk menampilkan gambar setelah proses pengiriman data selesai.

Anda mungkin juga menyukai