SKRIPSI
Oleh :
CATUR ARIF ANGGORO
0534010203
JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN”
JAWA TIMUR
SKRIPSI
Diajukan Untuk Memenuhi Sebagai Persyaratan Dalam Memperoleh Gelar
Sarjana Komputer Program Studi Tekhik Informatika
Oleh :
CATUR ARIF ANGGORO
0534010203
JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN”
JAWA TIMUR
KAMERA PENGIKUT GERAKAN SECARA OTOMATIS
BERBASIS MIKROKONTROLER
Disusun Oleh :
CATUR ARIF ANGGORO NPM :0534010203
Telah dipertahankan di hadapan dan diterima oleh Tim Penguji Tugas Akhir Jurusan Teknik Informatika Fakultas Teknologi Industri Universitas Pembangunan Nasional “Veteran” Jawa Timur
Pada Tanggal 26 November 2010
Pembimbing :
1.
Basuki Rahmat, S.Si, MT NPT. 36907 060 209
Tim Penguji :
1
Nur Cahyo Wibowo, S.Kom, M.Kom NPT. 37903 040 197
2
Nur Cahyo Wibowo, S.Kom, M.Kom NPT. 37903 040 197
Dekan Fakultas Teknologi Industri
Universitas Pembangunan Nasional “Veteran” Jawa Timur Surabaya
SKRIPSI
Disusun Oleh :
CATUR ARIF ANGGORO
NPM. 0534010203
Telah disetujui mengikuti Ujian Negara Lisan Gelombang II Tahun Akademik 20010 / 2011
Pembimbing Utama
Basuki Rahmat, S.Si, MT NPT. 36907 060 209
Pembimbing Pendamping
Nur Cahyo Wibowo, S.Kom, M.Kom NPT. 37903 040 197
Mengetahui,
Ketua Jurusan Teknik Informatika
Universitas Pembangunan Nasional ”Veteran” Jawa Timur
FAKULTAS TEKNOLOGI INDUSTRI
Jl. Raya Rungkut Madya Gunung Anyar Telp. (031) 8706369 (Hunting). Fax. (031) 8706372 Surabaya 60294
KETERANGAN REVISI
Mahasiswa dengan Nama dan NPM yang tertera dibawah ini :
Nama : Catur Arif Anggoro NPM : 0534010203
Jurusan : Teknik Informatika
Telah mengerjakan revisi PRA RENCANA (DESIGN) / SKRIPSI Ujian
LESAN Gelombang II, TA 2010 – 2011 dengan judul :
“
KAMERA PENGIKUT GERAKAN SECARA OTONATIS
BERBASIS MIKROKONTROLER
”
Surabaya, 3 Desember 2010
Dosen Penguji yang memerintahkan Revisi :
1. Nur Cahyo Wibowo, S.Kom, M.Kom NPT. 37903 040 197
(_______________________)
2. Dra, Nining Martiningtyas, M.MT
(_______________________)
3. Dody Ridwandono, S.Kom NPT. 37805 070 218
(_______________________)
Mengetahui,
Dosen Pembimbing I Skripsi,
Basuki Rahmat, S.Si. MT NPT. 36907 060 209
Mengetahui,
Dosen Pembimbing II Skripsi,
Alhamdulillah, puji dan syukur senantiasa terpanjatkan kepada Allah SWT
Mang Maha Esa dan Maha Bijaksana. Atas berkah, petunjuk dan karunia-Nya lah
penulis mampu untuk melaksanakan dan menyelesaikan tugas akhir yang berjudul :
KAMERA PENGIKUT GERAKAN SECARA OTOMATIS BERBASIS MIKROKONTROLER.
Tugas akhir ini disusun guna memenuhi persyaratan kelulusan di Universitas Pembangunan Nasional “Veteran” Jawa Timur Fakultas Teknologi Industri Jurusan
Teknik Informatika.
Dengan adanya bantuan berupa saran serta dukungan baik secara langsung
maupun tidak langsung dari beberapa pihak maka pembuatan Tugas Akhir ini dapat
terwujud,oleh karena itu penulis mengucapkan banyak terima kasih kepada :
1. Kedua orang tua tercinta. Terimakasih atas doa dan kepercayaannya. Penulis
hanya bisa membuktikan bahwa penulis bisa, dan apa yang penulis jalani
tidaklah merugi.
2. Dekan Fakultas Teknologi Industri UPN “Veteran” JATIM Bapak Ir.
Sutiyono, MT
3. Ketua Jurusan Teknik Informatika UPN ”Veteran” JATIM Bapak Basuki
Rahmat, S. SI, MT sekaligus sebagai dosen pembimbing I yang telah banyak
4. Nur Cahyo Wibowo, S.Kom, M.Komselaku dosen pembimbing II di jurusan
Teknik Informatika Universitas Pembangunan Nasional “Veteran” Jawa
Timur Surabaya yang telah memberikan arahan, bimbingan, serta motivasi
sehingga penulis dapat menyelesaikan Tugas Akhir ini.
5. Para Bapak /Ibu Dosen Pengajar serta semua keluarga besar Jurusan Teknik
Informatika dan Sistem Informasi.
6. .Abdurouf Fakhrudin yang telah memberikan fasilitas laptop demi kelancaran
pengerjaan Tugas Akhir ini.
7. Matahari Senja ArtProduction, terima kasih untuk dokumentasinya.
8. Teman-teman seperjuangan : Bas, Abid, Haryb, Rudi, Mardiono, Max, Bego
(Bagus Permadi) dan yang lain-lainnya yang tidak bisa penulis sebut
satu-persatu terimakasih banyak.” Perjuangan kita belum selesai kawan.!!!!”.
Semoga semua kebaikan dan niat baik dari semua pihak yang telah membantu
terwujudnya Tugas Akhir ini dapat dibalas oleh Allah SWT.
Masih banyak kekurangan dalam penyelesaian Tugas Akhir ini, maka dengan
segala kerendahan hati penulis bersedia menerima saran dan kritik dari pembaca
sekalian guna mendapatkan hasil yang lebih baik dalam tugas-tugas selanjutnya.
iv
Semoga dengan adanya tulisan ini banyak memberikan manfaat yang baik
bagi semua pihak.
Surabaya, 29 November 2010
Penulis
ABSTRAK ...i
KATA PENGANTAR ... ii
DAFTAR ISI...v
DAFTAR GAMBAR ... viii
DAFTAR TABEL...x
BAB I PENDAHULUAN 1.1. Latar Belakang ...1
1.2. Perumusan Permasalahan...2
1.3. Tujuan Penelitian ...2
1.4. Manfaat Penelitian ...2
1.5. Batasan Masalah ...2
1.6. Metodologi Penelitian ...3
1.7. Sistematika Penulisan ...3
BAB II LANDASAN TEORI 2.1. Webcam ...7
2.2. Mikrokontroller...8
2.2.1 Mikrokontroller AVR ATMega 16 ...10
2.2.2 Serial pada ATMega 16 ...22
2.3. Motor Stepper ...27
2.4. Limit Switch...30
2.5. Sensor Gerak.………...30
2.6. Bahasa C………..34
2.7. CodeVision AVR……….38
3.2. Kebutuhan Perangkat Keras...44
3.3. Kebutuhan Perangkat Lunak...45
3.4. Perancangan Perangkat Keras...46
3.4.1. Perancangan Mikrokontroll ATMega 16 ...46
3.4.2 Rangkaian Tegangan (Supply) ...47
3.4.3 Rangkaian Keseluruhan ...48
3.5 Perencanaan Sistem Perangkat Lunak ...49
BAB IV IMPLEMENTASI SISTEM 4.1. Implementasi Perangkat keras ...51
4.2. Implementasi Perangkat Lunak...52
4.2.1 Aplikasi Simulasi Pengontrol Kamera Webcam...52
5.1.1. Pengujian Rangkaian Power Supply ...58
5.1.2. Pengujian Mikrokontroller ATMEGA 16...59
5.1.3. Pengujian Sensor PIR ...60
5.1.4 Pengujian Rangkaian Driver Motor Stepper...61
5.1.5 Pengujian Program Mikrokontroller ...62
5.2. Pengukuran dan Pengujian Prototype ...63
6.2. Saran ...70
DAFTAR PUSTAKA...72 LAMPIRAN...74
Gambar 2.1. Pin-pin ATMega 16 40-pin ...12
Gambar 2.2. Blok diagram Timer/Counter ...14
Gambar 2.3. Timing Diagram Timer / Counter, tanpa Prescaling ...15
Gambar 2.4. Timing Diagram Timer/Counter, dengan prescaling...15
Gambar 2.5 Timing Diagram Timer/Counter menyeting OCFO dengan prescaler ...16
Gambar 2.6 Timing Diagram Timer/Counter OCFO pengosongan data...17
Gambar 2.7 Register Timer Counter 8 bit...17
Gambar 2.8 Register Timer TCNT0 ...20
Gambar 2.9 Register Timer OCR0 ...20
Gambar 2.10 Register Timer TIFR ...21
Gambar 2.11 Blok Diagram Clock Generator Logic ...23
Gambar 2.12 Operasi Syncchron out Clock...25
Gambar 2.13 Mikrokontroller ATMega 16...26
Gambar 2.14 Ilustrasi Sebuah Kompas Dengan Elektromagnet...27
Gambar 2.15 Ilustrasi Motor Stepper Dengan Jarum Kompas Dengan Elektromagnet ...28
Gambar 2.16 Half Step Mode ...29
Gambar 2.17 Bentuk Fisik Motor Stepper ...29
Gambar 2.18 Limit Switch...30
Gambar 2.19 Cara Kerja Sensor ...31
Gambar 2.20 Blok Diagram PIR...32
Gambar 2.21 Sensor PIR...33
Gambar 2.22 Sejarah Bahasa C ...34
Gambar 2.23 IDE Perangkat Lunak CodeVision AVR ...40
Gambar 2.24 Code Generator ...41
Gambar 2.25 Kode-kode Program dibangkitkan Otomatis...41
Gambar 3.1 Diagram Blok Sistem Kamera Pengikut Gerakan Otomatis ...42
Gambar 3.2 Arsitektur Prototype ...43
Gambar 3.3 Skema Rangkaian ATMEGA 16...46
Gambar 3.6 Skema Rangkaian Keseluruhan Mikrokontroller ...48
Gambar 3.7 Diagram Alir Kamera Pengikut Gerakan Secara Otomatis...49
Gambar 4.1 Sistem Kamera Pengikut Gerakan ...51
Gambar 4.2 Form Create New File...52
Gambar 4.3 Form Konfigurasi Chip ...53
Gambar 4.4 Form Konfigurasi Port ...54
Gambar 4.5 Listing Awal Program ...54
Gambar 4.6 Deklarasi Variabel...55
Gambar 4.7 Main Program ...55
Gambar 4.8 Sub Program 1...56
Gambar 4.9 Sub Program 2...57
Gambar 5.1 Software Isp-Flash Programer...62
Gambar 5.2 Mikrokontroller belum terhubung...63
Gambar 5.3 Program Masuk pada Mikrokontroller...63
Gambar 5.4 Dalam Kondisi Diam ...64
Gambar 5.5 Kondisi LED Menyala ...65
Gambar 5.6 Gerak Kanan ...65
Gambar 5.7 Gerak Kiri ...66
x
Tabel 2.1 Konfigurasi Pin Port ...13
Tabel 2.2 Deskripsi Bit Mode Pembangkit Bentuk Gelombang...18
Tabel 2.3 Mode Output Pembanding Tanpa PMW ...18
Tabel 2.4 Mode Output Pembanding, Mode Fast PMW ...19
Tabel 2.5 Mode Output Pembanding Mode Phase Correct PMW ...19
Tabel 2.6 Deskripsi Bit Clock Set...19
Tabel 2.7 Persamaan Untuk Menyeting perhitungan Register Baud Rate...24
Tabel 2.8 Full Step Mode...28
Tabel 2.9 Half Step Mode ...29
Tabel 2.10 Keyword Bahasa C ...34
Tabel 5.1 Data Hasil Pengujian Pada Supply 5 volt ...59
Tabel 5.2 Data Hasil Pengujian Pada Supply 12 volt ...59
Tabel 5.3 Pengujian Rangkaian Mikrokontroller ATMEGA 16...60
Tabel 5.4 Pengujian Sensor Infra red...61
Tabel 5.5 Pengujian Motor Stepper Ke Kiri ...61
Tabel 5.6 Pengujian Motor Stepper Ke Kanan ...61
Tabel 5.7 Tabel Bilangan Desimal, Hexa dan Biner...62
Tabel 5.8 Hasil Pengujian dan Pengukuran Gerak Kanan ...66
Nama : Catur Arif Anggoro Dosen Pembimbing 1 : Basuki Rahmat, S.Si, MT
Dosen Pembimbing 2 : Nur Cahyo Wibowo, S.Kom, M.Kom
ABSTRAK
Sistem pemantauan keamanan yang umum terjadi pada saat ini adalah menggunakan kamera CCTV dan tidak dapat digerakkan. Harga dari kamera CCTV ini cukup mahal jika dibandingkan dengan Webcam untuk pemakaian dalam jumlah yang banyak. Webcam (web camera) adalah sebutan bagi kamera
real-time yang gambarnya bisa diakses atau dilihat melalui World Wide Web,
program instant messaging, atau aplikasi video call. Istilah "webcam" juga merujuk kepada jenis kamera yang digunakan untuk keperluan ini.
Dengan adanya Webcam dan jaringan intranet sangat diharapkan membuat sistem keamanan yang lebih praktis. Sistem ini menggunakan Webcam dan mekanik penggerak (motor stepper) secara otomatis berdasarkan nilai yang di kirim oleh sensor infa red dengan komputer sebagai alat penunjang tampilan dari webcam. Dalam penelitian ini penekanan pada sistem kamera Webcam yang mengikuti gerakan secara otomatis berbasis mikrokontroller.
Berdasarkan uji coba alat secara keseluruhan prototype ini nantinya dapat mempermudah untuk memantau keamanan sebuah gedung atau sejenisnya setelah dilakukan beberapa pengembangan untuk mewujudkan hasil yang lebih bagus dari yang sekarang ini.
Kata Kunci : Webcam, sensor PIR (Passive Infra Red), mekanik penggerak (motor stepper), mikrokontroller.
1.1 Latar Belakang
Sistem pemantauan keamanan yang umum terjadi pada saat ini adalah
menggunakan kamera CCTV dan tidak dapat digerakkan. Harga dari kamera
CCTV ini cukup mahal jika dibandingkan dengan Webcam yang terlebih dahulu
untuk pemakaian dalam jumlah yang banyak. Untuk melakukan pantauan pada
ruangan yang cukup luas harus menggunakan cukup banyak kamera dan
memerlukan kabel yang panjang untuk melakukan sambungan interkoneksi.
Dengan adanya Webcam sangat diharapkan membuat sistem keamanan
yang lebih praktis. Sistem ini menggunakan Webcam dan mekanik penggerak
yang dihubungkan dengan komputer yang terhubung dengan jaringan intranet,
sehingga biaya yang dikeluarkan menjadi lebih kecil.
Dalam sistem pemantauan keamanan suatu ruangan perkantoran dengan
menggunakan suatu kamera untuk mengamankan ruang tersebut dari gerakan
orang atau benda bergerak. Oleh sebab itu webcam yang dipasang pada sebuah
komputer merupakan salah satu solusi penyelesaian permasalahan keamanan.
Dengan menggunakan kamera Webcam diharapkan sistem keamanan dapat
terpadu dan dapat melihat setiap gerakan atau manusia pada suatu ruangan
khusus.
Dalam penelitian ini penekanan pada sistem kamera WebCam yang dapat
mengikuti objek secara otomatis.
1.2 Perumusan Masalah
Berkaitan dengan permasalahan pada latar belakang tersebut, maka
dapat dirumuskan permasalahan sebagai berikut :
(i) Bagaimana cara mendeteksi orang dengan sensor dimana informasi ini
akan diproses oleh mikrokontroler?
(ii) Bagaimana menghubungkan sensor gerak dengan mikrokontroller
ATMEGA 16?
(iii) Bagaimana menggerakkan webcam secara otomatis?
1.3 Tujuan Penelitian
Untuk membangun prototype sistem keamanan menggunakan webcam
yang dapat mengikuti gerakan objek secara otomatis.
1.4 Manfaat Penelitian
Manfaat yang diharapkan berupa seperangkat alat kendali berbasis
mikrokontroller untuk memudahkan pihak keamanan dalam memantau
menggunakan webcam yang digerakkan oleh motor stepper secara otomatis.
1.5 Batasan Masalah
Dalam penelitian ini, memiliki suatu batasan masalah diantaranya :
a) Otak sistem kendali berupa mikrokontroller yang mendapat inputan dari
sensor PIR.
b) Mikrokontroler yang digunakan adalah AVR ATmega16 dengan bahasa
pemrograman C compiler.
c) Jarak tangkap sensor maksimal 5 meter.
d) Webcam hanya menampilkan visual dari objek saja.
e) Sebagai penggerak Webcam digunakan motor stepper.
f) Jika ada 2 objek yang di tampilkan adalah yang terdeteksi pertama kali
oleh sensor.
1.6 Metodologi Penelitian
Dalam perancangan dan pembuatan kamera webcam pengikut
gerakan secara otomatis berbasis mikrocontroller, maka metodologi yang
digunakan adalah sebagai berikut :
a. Studi Literatur yang diperlukan untuk mempelajari dasar teori
yang berhubungan dengan topik pembahasan
b. Perancangan dan Pembuatan Alat
c. Analisa Peralatan
d. Pengujian Alat
e. Penulisan Hasil Ujian
1.7 Sistematika Penulisan
Sistematika pembahasan penulisan tugas akhir ini tersusun atas:
BAB I: PENDAHULUAN
Berisi tentang gambaran umum latar balakang penulisan tugas
akhir, perumusan masalah, tujuan penelitian, manfaat penelitian, batasan
masalah, metodologi penulisan dan sistematika penulisan.
BAB II: LANDASAN TEORI
Berisi tentang teori-teori penunjang pembuatan sistem yang
membahas tentang webcam, motor stepper dan mikrokontroller.
BAB III: ANALISIS DAN PERANCANGAN SISTEM
Analisa dan perancangan sistem antara lain berisi tentang konsep
dan kondisi tentang tool-tool atau alat-alat bantu yang diperlukan untuk
instalasi dan konfigurasi.
BAB IV : IMPLEMENTASI SISTEM
Pada bab ini akan membahas tentang implementasi dari hasil
perancangan beserta penjelasan dan tentang pengujian yang dilakukan
terhadap sistem atau alat yang telah dibuat.
BAB V : UJI COBA DAN EVALUASI SISTEM
Pada bab ini membahas tentang uji coba dari program yang telah
berjalan dan melakukan evaluasi pada program tersebut.
BAB VI : PENUTUP
Berisi tentang kesimpulan dan saran-saran mengenai Tugas Akhir
Kamera pengikut gerakan berbasis mikrokontroller ini di buat untuk
memudahkan pihak keamanan dalam memantau keamanan pada sebuah instansi
gedung perkantoran.
2.1 Webcam
Webcam (web camera) adalah sebutan bagi kamera real-time yang
gambarnya bisa diakses atau dilihat melalui World Wide Web, program instant
messaging, atau aplikasi video call. Istilah "webcam" juga merujuk kepada jenis
kamera yang digunakan untuk keperluan ini.
Istilah webcam merujuk pada teknologi secara umumnya, sehingga kata
web terkadang diganti dengan kata lain yang mendeskripsikan pemandangan yang
ditampilkan di kamera, misalnya StreetCam yang memperlihatkan pemandangan
jalan. Ada juga Metrocam yang memperlihatkan pemandangan panorama kota dan
pedesaan, TraffiCam yang digunakan untuk memonitor keadaan jalan raya, cuaca
dengan Weather Cam, bahkan keadaan gunung berapi dengan VolcanoCam.
Sebuah web camera yang sederhana terdiri dari sebuah lensa standar,
dipasang di sebuah papan sirkuit untuk menangkap sinyal gambar; casing (cover),
termasuk casing depan dan casing samping untuk menutupi lensa standar dan
memiliki sebuah lubang lensa di casing depan yang berguna untuk memasukkan
gambar; kabel support, yang dibuat dari bahan yang fleksibel, salah satu ujungnya
dihubungkan dengan papan sirkuit dan ujung satu lagi memiliki connector, kabel
ini dikontrol untuk menyesuaikan ketinggian, arah dan sudut pandang web
camera. Sebuah web camera biasanya dilengkapi dengan software, software ini
mengambil gambar-gambar dari kamera digital secara terus menerus ataupun
dalam interval waktu tertentu dan menyiarkannya melalui koneksi internet.
Ada beberapa metode penyiaran, metode yang paling umum adalah
software merubah gambar ke dalam bentuk file JPEG dan menguploadnya ke web
server menggunakan File Transfer Protocol (FTP). Frame rate mengindikasikan
jumlah gambar sebuah software dapat ambil dan transfer dalam satu detik. Untuk
streaming video, dibutuhkan minimal 15 frame per second (fps) atau idealnya 30
fps. Untuk mendapatkan frame rate yang tinggi, dibutuhkan koneksi internet yang
tinggi kecepatannya. Sebuah web camera tidak harus selalu terhubung dengan
komputer, ada web camera yang memiliki software webcam dan web server
bulit-in, sehingga yang diperlukan hanyalah koneksi internet. Web camera seperti ini
dinamakan “network camera”. Kita juga bisa menghindari penggunaan kabel
dengan menggunakan hubungan radio, koneksi Ethernet ataupun WiFi.
Pada awalnya, bentuk web camera terbatas pada bentuk-bentuk standar
yang hanya terdiri dari lensa dan papan sirkuit serta casing yang biasa. Namun
seiring dengan perkembangan teknologi, bentuk web camera pun sudah makin
bervariasi dengan fitur-fitur yang makin canggih. Salah satu bentuk web camera
yang unik adalah bentuk boneka yang lucu, web camera ini dapat disalahartikan
hanya sebagai boneka dan bukan webcam. Sebuah penemuan oleh Microsoft pada
tahun 2004 menggambarkan kemajuan perkembangan teknologi web camera. i2i
adalah sebuah sistem dua-kamera yang dengan sangat hati-hati mengikuti
spesial dikembangkan untuk memfusikan apa yang setiap kamera lihat untuk
membuat gambar ‘cyclopean stereo’ yang akurat. Kamera ini juga dapat
menampilkan emoticon 3D yang melayang.
Sistem i2i dapat juga menghasilkan gambar background yang realistis
sehingga pengguna dapat berpura-pura berada di tempat lain. Kemampuan sistem
i2i ini, meliputi kemampuan tracking (disebut smart framing) dan juga
kemampuan smart focusing, dapat menambah pengalaman berkonferensi bagi
pengguna. Teknologi web camera pada awalnya mendapat dukungan komersial
dari industri pornografi. Industri ini membutuhkan gambar-gambar ‘live’ dan
meminta pembuatan software yang mampu melakukannya tanpa web browser
plugins. Hal ini melahirkan teknologi live streaming webcam yang masih tetap
ada hingga sekarang.
Sekarang ini web camera yang ada di pasaran pada umumnya terbagi ke
dalam dua tipe: web camera permanen (fixed) dan revolving web camera. Pada
web camera permanen terdapat pengapit untuk mengapit lensa standar di posisi
yang diinginkan untuk menangkap gambar pengguna. Sedangkan pada revolving
web camera terdapat landasan dan lensa standar dipasang di landasan tersebut
sehingga dapat disesuaikan ke sudut pandang yang terbaik untuk menangkap
gambar pengguna (Webcam - Wikipedia bahasa Indonesia, ensiklopedia
bebas.htm). Web camera memiliki fitur-fitur dan setting yang bermacam-macam,
diantaranya adalah:
a. Motion sensing – web camera akan mengambil gambar ketika kamera
b. Image archiving – pengguna dapat membuat sebuah archive yang
menyimpan semua gambar dari web camera atau hanya gambar-gambar
tertentu saat interval pre-set.
c. Video messaging – beberapa program messaging mendukung fitur ini.
d. Advanced connections – menyambungkan perangkat home theater ke web
camera dengan kabel maupun nirkabel.
e. Automotion – kamera robotik yang memungkinkan pengambilan gambar
secara pan atau tilt dan setting program pengambilan frame berdasarkan
posisi kamera.
f. Streaming media – aplikasi profesional, setup web camera dapat
menggunakan kompresi MPEG4 untuk mendapatkan streaming audio dan
video yang sesungguhnya.
g. Custom coding – mengimport kode komputer pengguna untuk
memberitahu web camera apa yang harus dilakukan (misalnya
automatically refresh).
h. AutoCam – memungkinkan pengguna membuat web page untuk web
cameranya secara gratis di server perusahaan pembuat web camera.
2.2 Mikrokontroller
Mikrokontroler adalah suatu alat elektronika digital yang mempunyai
masukan dan keluaran serta kendali dengan program yang bisa ditulis dan dihapus
dengan cara khusus, cara kerja mikrokontroler sebenarnya membaca dan menulis
data. Sekedar contoh, bayangkan diri Anda saat mulai belajar membaca dan
menulis, ketika Anda sudah bisa melakukan hal itu Anda bisa membaca tulisan
hal-hal sebaliknya. Begitu pula jika Anda sudah mahir membaca dan menulis data
maka Anda dapat membuat program untuk membuat suatu sistem pengaturan
otomatik menggunakan mikrokontroler sesuai keinginan Anda. Mikrokontroler
merupakan komputer didalam chip yang digunakan untuk mengontrol peralatan
elektronik, yang menekankan efisiensi dan efektifitas biaya. Secara harfiahnya
bisa disebut "pengendali kecil" dimana sebuah sistem elektronik yang sebelumnya
banyak memerlukan komponen-komponen pendukung seperti IC TTL dan CMOS
dapat direduksi/diperkecil dan akhirnya terpusat serta dikendalikan oleh
mikrokontroler ini. Dengan penggunaan mikrokontroler ini maka :
a. Sistem elektronik akan menjadi lebih ringkas.
b. Rancang bangun sistem elektronik akan lebih cepat karena sebagian besar
dari sistem adalah perangkat lunak yang mudah dimodifikasi.
c. Pencarian gangguan lebih mudah ditelusuri karena sistemnya yang
kompak.
Namun demikian tidak sepenuhnya mikrokontroler bisa mereduksi komponen IC
TTL dan CMOS yang seringkali masih diperlukan untuk aplikasi kecepatan
tinggi atau sekedar menambah jumlah saluran masukan dan keluaran (I/O).
Dengan kata lain, mikrokontroler adalah versi mini atau mikro dari sebuah
komputer karena mikrokontroler sudah mengandung beberapa periferal yang
langsung bisa dimanfaatkan, misalnya port paralel, port serial, komparator,
konversi digital ke analog (DAC), konversi analog ke digital dan sebagainya
hanya menggunakan sistem minimum yang tidak rumit atau kompleks (Nalwan,
2.2.1 Mikrokontroller AVR ATMega 16
AVR merupakan seri mikrokontroler CMOS 8-bit buatan Atmel, berbasis
arsitektur RISC (Reduced Instruction Set Computer). Hampir semua instruksi
dieksekusi dalam satu siklus clock. AVR mempunyai 32 register general-purpose,
timer/counter fleksibel dengan mode compare, interrupt internal dan eksternal,
serial UART, programmable Watchdog Timer, dan mode power saving, ADC dan
PWM internal. AVR juga mempunyai In-System Programmable Flash on-chip
yang mengijinkan memori program untuk diprogram ulang dalam system
menggunakan hubungan serial SPI ATMega16 (M sholihul,
http://www.atmel.com/Datasheet AVR ATMega16).
ATMega16 mempunyai throughput mendekati 1 MIPS per MHz membuat
disainer sistem untuk mengoptimasi konsumsi daya versus kecepatan proses.
Beberapa keistimewaan dari AVR ATMega16 antara lain:
a. Advanced RISC Architecture
130 Powerful Instructions – Most Single Clock Cycle Execution
32 x 8 General Purpose Fully Static Operation
Up to 16 MIPS Throughput at 16 MHz
On-chip 2-cycle Multiplier
b. Nonvolatile Program and Data Memories
8K Bytes of In-System Self-Programmable Flash
Optional Boot Code Section with Independent Lock Bits
512 Bytes EEPROM
512 Bytes Internal SRAM
c. Peripheral Features
Two 8-bit Timer/Counters with Separate Prescalers and Compare Mode
Two 8-bit Timer/Counters with Separate Prescalers and Compare Modes
One 16-bit Timer/Counter with Separate Prescaler, Compare Mode, and
Capture Mode
Real Time Counter with Separate Oscillator
Four PWM Channels
8-channel, 10-bit ADC
Byte-oriented Two-wire Serial Interface
Programmable Serial USART
d. Special Microcontroller Features
Power-on Reset and Programmable Brown-out Detection
Internal Calibrated RC Oscillator
External and Internal Interrupt Sources
Six Sleep Modes: Idle, ADC Noise Reduction, Power-save, Powerdown,
Standby and Extended Standby
e. I/O and Package
32 Programmable I/O Lines
40-pin PDIP, 44-lead TQFP, 44-lead PLCC, and 44-pad MLF
f. Operating Voltages
2.7 - 5.5V for Atmega16L
Gambar 2.1 Pin – pin ATMega 16 Kemasan 40-Pin
Pin-pin pada ATMega16 dengan kemasan 40-pin DIP (dual inline package)
ditunjukkan oleh gambar 1. Guna memaksimalkan performa, AVR menggunakan
arsitektur Harvard (dengan memori dan bus terpisah untuk program dan data).
Port sebagai input/output digital
ATMega16 mempunyai empat buah port yang bernama PortA, PortB,
PortC, dan PortD. Keempat port tersebut merupakan jalur bidirectional dengan
pilihan internal pull-up. Tiap port mempunyai tiga buah register bit, yaitu DDxn,
PORTxn, dan PINxn. Huruf ‘x’mewakili nama huruf dari port sedangkan huruf
‘n’ mewakili nomor bit. Bit DDxn terdapat pada I/O address DDRx, bit PORTxn
terdapat pada I/O address PORTx, dan bit PINxn terdapat pada I/O address PINx.
Bit DDxn dalam register DDRx (Data Direction Register) menentukan arah pin.
Bila DDxn diset 1 maka Px berfungsi sebagai pin output. Bila DDxn diset 0 maka
Px berfungsi sebagai pin input.Bila PORTxn diset 1 pada saat pin terkonfigurasi
sebagai pin input, maka resistor pull-up akan diaktifkan. Untuk mematikan
Pin port adalah tri-state setelah kondisi reset. Bila PORTxn diset 1 pada saat pin
terkonfigurasi sebagai pin output maka pin port akan berlogika 1. Dan bila
PORTxn diset 0 pada saat pin terkonfigurasi sebagai pin output maka pin port
akan berlogika 0. Saat mengubah kondisi port dari kondisi tri-state (DDxn=0,
PORTxn=0) ke kondisi output high (DDxn=1, PORTxn=1) maka harus ada
kondisi peralihan apakah itu kondisi pull-up enabled (DDxn=0, PORTxn=1) atau
kondisi output low (DDxn=1, PORTxn=0).
Biasanya, kondisi pull-up enabled dapat diterima sepenuhnya, selama
lingkungan impedansi tinggi tidak memperhatikan perbedaan antara sebuah strong
high driver dengan sebuah pull-up. Jika ini bukan suatu masalah, maka bit PUD
pada register SFIOR dapat diset 1 untuk mematikan semua pull-up dalam semua
port. Peralihan dari kondisi input dengan pull-up ke kondisi output low juga
menimbulkan masalah yang sama. Kita harus menggunakan kondisi tri-state
(DDxn=0, PORTxn=0) atau kondisi output high (DDxn=1, PORTxn=0) sebagai
kondisi transisi.
Tabel 2.1 Konfigurasi Pin Port
Bila bit diset bernilai 1 maka pull-up pada port I/O akan dimatikan walaupun
register DDxn dan PORTxn dikonfigurasikan untuk menyalakan pull-up
(DDxn=0, PORTxn=1).
Timer
Timer/counter adalah fasilitas dari ATMega16 yang digunakan untuk
perhitungan pewaktuan. Beberapa fasilitas chanel dari timer counter antara lain:
counter channel tunggal, pengosongan data timer sesuai dengan data pembanding,
bebas -glitch, tahap yang tepat Pulse Width Modulation (PWM), pembangkit
frekuensi, event counter external.
Gambaran Umum
Gambar diagram block timer/counter 8 bit ditunjukan pada gambar 2. Untuk
penempatan pin I/O telah di jelaskan pada bagian I/O di atas. CPU dapat diakses
register I/O, termasuk dalam pin-pin I/O dan bit I/O. Device khusus register I/O
dan lokasi bit terdaftar pada deskripsi timer/counter 8 bit.
Timing Diagram Timer/Counter
Timer/counter didesain sinkron clock timer (clkT0) oleh karena itu
ditunjukkan sebagai sinyal enable clock pada Gambar 2.2. Gambar ini termasuk
informasi ketika flag interrupt dalam kondisi set. Data timing digunakan sebagai
dasar dari operasi timer/counter.
Gambar 2.3 Timing Diagram Timer/Counter, Tanpa Prescaling
Sesuai dengan Gambar 2.4 Timing Diagram Timer/Counter Dengan
Prescaling maksudnya adalah counter akan menambahkan data counter (TCNTn)
ketika terjadi pulsa clock telah mencapai 8 kali pulsa dan sinyal clock pembagi
aktif clock dan ketika telah mencapai nilai maksimal maka nilai TCNTn akan
kembali ke nol. Dan kondisi flag timer akan aktif ketika TCNTn maksimal.
Sama halnya timing timer diatas, timing timer/counter dengan setting OCFO
timer mode ini memasukan data ORCn sebagai data input timer. Ketika nilai
ORCn sama dengan nilaiTCNTn maka pulsa flag timer akan aktif. TCNTn akan
bertambah nilainya ketika pulsa clock telah mencapai 8 pulsa. Dan kondisi flag
akan berbalik (komplemen) kondisi ketika nilai TCNTn kembali kenilai 0
(overflow).
Gambar 2.5 Timing Diagram Timer / Counter, Menyeting OCFO Dengan Pescaler (fclk_I/O/8)
Ketika nilai ORCn sama dengan nilai TCNTn maka pulsa flag timer akan
aktif. TCNTn akan bertambah nilainya ketika pulsa clock telah mencapai 8 pulsa.
Dan kondisi flag akan berbalik (komplemen) kondisi ketika nilai TCNTn kembali
Gambar 2.6 Timing Diagram Timer/Counter, Menyeting OCFO, Pengosongan Data Timer Sesuai Dengan Data Pembanding,Dengan Pescaler (fclk_I/O/8).
Deskripsi Register Timer/Counter 8 bit
Gambar 2.7 Register Timer Counter 8 Bit
Bit 7 – FOCO : perbandingan kemampuan output
FOCO hanya akan aktif ketika spesifik-spesifik bit WGM00 tanpa PWM
mode. Adapun untuk meyakinkan terhadap kesesuaian dengan device-device yang
akan digunakan, bit ini harus diset nol ketika TCCRO ditulisi saat
mengoperasikan mode PWM. Ketika menulisi logika satu ke bit FOCO, dengan
segera dipaksakan untuk disesuaikan pada unit pembangkit bentuk gelombang.
Output OCO diubah disesuaikan pda COM01: bit 0 menentukan pengaruh daya
pembanding.
Bit 6,3 – WGM01:0: Waveform Generation Mode
Bit ini mengontrol penghitungan yang teratur pada counter, sumber untuk
yang digunakan. Mode-mode operasi didukung oleh unit timer/counter sebagai
berikut : mode normal, pembersih timer pada mode penyesuaian dengan
pembanding ( CTC ), dan dua tipe mode Pulse Width Modulation ( PWM ).
Tabel 2.2 Deskripsi Bit Mode Pembangkit Bentuk Gelombang.
catatan: definisi nama-nama bit CTC0 dan PWM0 sekarang tidak digunakan lagi.
Gunakan WGM 01: 0 definisi. Bagaimanapun lokasi dan fungsional dan lokasi dari masing-masing bit sesuai dengan versi timer sebelumnya
.
Bit 5:4 – COMO1:0 Penyesuaian Pembanding Mode Output
Bit ini mengontrol pin output compare (OCO), jika satu atau kedua bit
COM01:0 diset, output OC0 melebihi fungsional port normal I/O dan keduanya
terhubung juga. Bagaimanapun, catatan bahwa bit Direksi Data Register (DDR)
mencocokan ke pin OC0 yang mana harus diset dengan tujuan mengaktifkan.
Ketika OC0 dihubungkan ke pin, fungsi dari bit COM01:0 tergantung dari
pengesetan bit WGM01:0. Tabel di bawah menunjukkan COM fungsional ketika
bit-bt WGM01:0 diset ke normal atau mode CTC (non PWM).
Tabel 2.3 Mode Output Pembanding Tanpa PWM
Tabel 2.4 menunjukan bit COM01:0 fungsional ketika bit WGM01:0 diset ke
Tabel 2.4 Mode Output Pembanding, Mode Fast
Tabel 2.5 menunjukan bit COM01:0 fungsional ketika bit WGM01:0 diset ke
mode phase correct PWM.
Tabel 2.5 Mode Output Pembanding, Mode Phase Correct PWM
Bit 2:0 – CS02:0 : Clock Select
Tiga bit clock select sumber clock digunakan dengan timer/counter. Jika mode
pin eksternal digunakan untuk timer counter0, perpindahan dari pin T0 akan
memberi clock counter.
Sesuai dengan tabel diatas maka sumber clock dapat dibagi sehingga
timer/counter dapat disesuaikan dengan banyak data yang dihitung.
Register Timer/Counter TCNT0
Gambar 2.8 Register Timer TCNT0
Register timer/counter memberikan akses secara langsung, keduanya
digunakan untuk membaca dan menulis operasi, untuk penghitung unit 8-bit
timer/counter. Menulis ke blok-blok register TCNT0 (removes) disesuaikan
dengan clock timer berikutnya. Memodifikasi counter (TCNT0) ketika
perhitungan berjalan, memperkenalkan resiko kehilangan perbandingan antara
TCNC0 dengan register OCR0.
Register Timer/Counter OCR0
Register output pembanding berisi sebuah haraga 8 bit yang mana secara
terus-menerus dibandingkan dengan harga counter (TCNT0). Sebuah penyesuaian
dapat digunakan untuk membangkitkan output interrupt pembanding, atau untuk
membangkitkan sebuah output bentuk gelombang pada pin OC0.
Register Timer/Counter Interrupt Mask
Bit 1-OCIE0: output timer counter menyesuaikan dengan kesesuaian
interrupt yang aktif.
Ketika bit OCIE0 ditulis satu, dan 1-bit pada register status dalam kondisi set
(satu), membandingkan timer/counter pada interrupt yang sesuai diaktifkan.
Mencocokkan interrupt yang dijalankan kesesuaian pembanding pada
timer/counter0 terjadi, ketika bit OCF0 diset pada register penanda
timer/counter-TIFR.
Bit 0 – TOIE0: Timer/Counter 0 Overflow Interrupt Enable
Ketika bit TOIE0 ditulis satu, dan 1-bit pada register status dalam kondisi set
(satu), timer/counter melebihi interrupt diaktifkan. Mencocokkan interrupt
dijalankan jika kelebihan pada timer/counter0 terjadi, ketika bit TOV0 diset pada
register penanda timer/counter-TIFR.
Register Timer/Counter Register – TIFR
Gambar 2.10 Register Timer TIFR
Bit 1 – OCF0: Output Compare Flag 0
OCF0 dalam kondisi set (satu) kesesuaian pembanding terjadi antara
timer/counter dan data pada OCRO – Register 0 keluaran pembanding. OCF0
diclear oleh hardware ketika eksekusi pencocokan penanganan vector interrupt.
Dengan alternatif mengclearkan OCF0 dengan menuliskan logika satu pada flag.
interrupt enable), dan OCF0 diset (satu), timer/counter pembanding kesesuaian
interrupt dijalankan.
Bit 0 – TOV0: Timer/Counter Overflow Flag
Bit TOV0 diset (satu) ketika kelebihan terjadi pada timer/counter0. TOV0
diclearkan dengan hardware ketika penjalanan pencocokan penanganan vector
interrupt. Dengan alternatif, TOV0 diclearkan dengan jalan memberikan logika
satu pada flag. Ketika Ibit pada SREG, TOIE0 (Timer/Counter0 overflow
interrupt enable), dan TOV0 diset (satu ), timer/counter overflow interrupt
dijalankan. Pada tahap mode PWM yang tepat, bit ini di set ketika timer/counter
merubah bagian perhitungan pada $00.
2.2.2 Serial pada ATMega16
Universal synchronous dan asynchronous pemancar dan penerima serial
adalah suatu alat komunikasi serial sangat fleksibel. Jenis yang utama adalah :
a) Operasi full duplex (register penerima dan pengirim serial dapat berdiri sendiri)
b) Operasi Asychronous atau synchronous
c) Master atau slave mendapat clock dengan operasi synchronous
d) Pembangkit baud rate dengan resolusi tinggi
e) Dukung frames serial dengan 5, 6, 7, 8 atau 9 Data bit dan 1 atau 2 Stop bit
f) Tahap odd atau even parity dan parity check didukung oleh hardware
g) Pendeteksian data overrun
h) Pendeteksi framing error
i) Pemfilteran gangguan (noise) meliputi pendeteksian bit false start dan
j) Tiga interrupt terdiri dari TX complete, TX data register empty dan RX
complete.
k) Mode komunikasi multi-processor
l) Mode komunikasi double speed asynchronous
Generator Clock
Logic generator clock menghasilkan dasar clock untuk pengirim dan
penerima. USART mendukung empat mode operasi clock: Normal Asynchronous,
Double Speed Asynchronous mode Master Synchronous dan Slave Synchronous.
Bit UMSEL pada USART control dan status register C (UCSRC) memilih antara
operasi Asychronous dan Synchronous. Double speed (hanya pada mode
Asynchronou ) dikontrol oleh U2X yang mana terdapat pada register UCSRA.
Ketika mengunakan mode operasi synchronous (UMSEL = 1) dan data direction
register untuk pin XCk (DDR_XCK) mengendalikan apakah sumber clock
tersebut adalah internal (master mode) atau eksternal (slave mode) pin-pin XCK
hanya akan aktif ketika menggunakan mode Synchronous.
Gambar 2.11 Blok Diagram Clock Generator Logic Keterangan sinyal :
Xcki :input dari pin XCK (sinyal internal). Digunakan untuk operasi slave
synchronous.
Xcko :clock output ke pin XCK (sinyal internal). Digunakan untuk operasi
master synchronous
Fosc :frekuensi pin XTAL (system clock)
Generator Internal Clock – Pembangkit Baud rate
Generasi internal clock digunakan untuk mode – mode operasi master
asynchronous dan synchronous. Register USART baud rate (UBRR) dan
down-counter dikoneksikan kepada fungsinya sebagai programmable prescaler atau
pembangkit baud rate. Down-counter, dijalankan pada system clock ( fosc),
dibebani dengan nilai UBRR setiap counter telah dihitung mundur ke nol atau
ketika register UBRRL ditulisi. Clock dibangkitkan setiap counter mencapai nol.
Clock ini adalah pembangkit baud rate clock output (fosc/( UBBR+1)). Pemancar
membagi baud rete generator clock output dengan 2, 8, atau 16 cara tergantung
pada mode. Pembangkit output baud rate digunakan secara langsung oleh
penerima clock dan unit-unit pelindung data. Unit-unit recovery menggunakan
suatu mesin status yang menggunakan 2, 8, atau 16 cara yang tergantung pada
cara menyimpan status dari UMSEL, bit-bit U2X dan DDR_XCK. Tabel di bawah
menunjukan penyamaan perhitungan baud rate dan nilai UBRR tiap mode operasi
mengunakan sumber pembangkit clock internal.
Catatan : baud rate menunjukan pengiriman rate bit tiap detik (bps)
BAUD :baud rate ( pada bit-bit per detik,bps ) fosc frekuensi system clock osilator
UBRR :terdiri dari UBRRH dan UBBRL,( 0-4095 )
Eksternal Clock
Eksternal clock digunakan untuk operasi mode slave synchronous. Eksternal
clock masuk dari pin XCK dicontohkan oleh suatu daftar sinkronisasi register
untuk memperkecil kesempatan meta-stabilitas. Keluaran dari sinkronisasi register
kemudian harus menerobos detector tepi sebelum digunakan oleh pengirim dan
penerima. Proses ini mengenalkan dua period delay clock CPU dan oleh karena
itu maksimal frekuensi clock XCK eksternal dibatasi oleh persamaan sebagai
berikut :
Fxck < fosc/4
Keterangan: fosc tergantung pada stabilitas sistem sumber clock.
Operasi Synchronous Clock
Ketika mode sinkron digunakan (UMSEL=1), pin XCK akan digunakan sama
seperti clock input (slave) atau clock output (master). Dengan ketergantungan
antara tepi clock dan data sampling atau perubahan data menjadi sama. Prinsip
dasarnya adalah data input (on RxD) dicontohkan pada clock XCK berlawanan
dari tepi data output (TxD) sehingga mengalami perubahan.
UCPOL bit UCRSC memilih tepi yang mana clock XCK digunakan untuk data
sampling dan yang mana digunakan untuk perubahan data. Seperti yang
ditunjukan pada gambar di atas, ketika UCPOL nol data akan diubah pada tepi
kenaikan XCK dan dicontohkan pada tepi XCK saat jatuh. Jika UCPOL dalam
kondisi set, data akan mengalami perubahan pada saat tepi XCK jatuh dan data
akan dicontohkan pada saat tepi XCK naik.
Inisialisasi USART
USART harus diinisialisasi sebelum komunikasi manapun dapat
berlangsung. Proses inisialisasi normalnya terdiri dari pengesetan baud rate,
penyetingan frame format dan pengaktifan pengirim atau penerima tergantung
pada pemakaian. Untuk interrupt menjalankan operasi USART, global interrupt
flag (penanda) sebaiknya dibersihkan (dan interrupt global disable) ketika
inisialisasi dilakukan. Sebelum melakukan inisialisasi ulang dengan mengubah
baud rate atau frame format, untuk meyakinkan bahwa tidak ada transmisi
berkelanjutan sepanjang periode register yang diubah. Flag TXC dapat digunakan
untuk mengecek bahwa pemancar telah melengkapi semua pengiriman, dan flag
RXC dapat digunakan untuk mengecek bahwa tidak ada data yang tidak terbaca
pada buffer penerima. Tercatat bahwa flag TXC harus dibersihkan sebelum tiap
transmisi (sebelum UDR ditulisi) jika itu semua digunakan untuk tujuan tersebut.
2.3 Motor Stepper
Pada Motor DC biasa, akan berputar dan berputar terus selama power
supply ada. Tidak ada rangkaian cerdas tertentu yang diperlukan untuk
mengendalikan motor tersebut, kecuali hanya memperlambat putaran atau
membalik putaran, dengan menerapkan polaritas balik. Motor stepper adalah
sangat berbeda. Jika anda memberikan power pada motor ini, maka motor ini akan
berada dalam keadaan diam, agar motor dapat berputar, anda harus merubah
sinyal yang masuk ke motor.
Sebagai ilustrasi, dapat dibayangkan sebuah kompas dengan
elektromagnet disekitarnya. Sebagaimana digambarkan pada Gambar 2.14.,
apabila power yang diberikan pada elektromagnet diganti, maka akan merubah
posisi jarum dari kompas (Triwiyanto, www.mytutorialcafe.com). Gambar 2.14 Bentuk Fisik Motor Stepper
Dengan empat buah elektromagnet maka gerakan akan melompat secara kasar.
Sekarang bayangkan susunan yang sama dengan 100 elektromagnet yang
mengitari kompas. Dengan mangatur energi yang mengalir pada setiap
elektromagnet dalam berurutan, maka jarum akan memerlukan sebanyak 100
langkah untuk melakukan satu kali putaran. Tetapi dengan pengaturan 100
elektromagnet secara individu, akan memerlukan elektronika yang kompleks.
Gambar 2.16 Ilustrasi Motor Stepper Dengan Jarum Kompas Dengan Elektromagnet
Pada ilustrasi tersebut, huruf-huruf yang melingkar mewakili elektromagnet.
Semua magnet dengan huruf yang sama berada dalam keadaan koneksi. Ketika
anda memberi arus pada rangkaian tersebut, maka semua elektromagnet dengan
huruf yang sama akan on pada saat itu, untuk menggerakkan kompas, maka
elektromaget berikutnya harus dialiri arus, sehingga akan menimbulkan gerakan.
Table 2.8. Full Step Mode (Triwiyanto, 2004).
Mode Half Steps
Dengan menghidupkan dua koil pada waktu yang bersamaan maka
motor akan berada dalam posisi diantaranya.
Gambar 2.17 Half step mode
Berikut adalah (Tabel 2.9 Half Step Mode) table uji dari motor stepper
model Half Step Mode.
Table 2.9. Half Step Mode (Triwiyanto, 2004)
2.4 Limit Switch.
Limit Switch adalah sensor peraba yang bersifat mekanis dan mendeteksi
sesuatu setelah terjadi kontak fisik. Penggunaan sensor ini biasanya digunakan
untuk membatasi gerakan maksimum sebuah mekanik. Contohnya pada
penggerak lengan dimana limit switch akan aktif dan memberikan masukan pada
Mikro untuk menghentikan gerak motor di saat lengan sudah ditarik maksimum.
Sensor ini juga seringkali digunakan untuk sensor cadangan bilamana sensor yang
lain tidak berfungsi. Contohnya pada bagian pinggir dari sebuah robot, pada saat
sensor infrared gagal berfungsi untuk mendeteksi adanya halangan, maka limit
switch akan mendeteksi dan memerintahkan motor untuk berhenti saat terjadi
kontak fisik.
. Gambar 2.18. Limit Switch
2.5 Sensor Gerak
Sensor Passive Infra Red merupakan alat elektronik yang mengukur
radiasi sinar infra merah dari suatu objek dalam cakupan tertentu. Berbeda dengan
sensor biasa yang menggunakan modul transmitter unutk memancarkan
gelombang tersebut, sensor Passive Infra red hanya terdiri dari 1 modul penerima
saja. Sesuai dengan sifatnya yang pasif, sensor ini hanya merespon energi dari
pancaran sinar inframerah pasif yang dimilki setiap benda yang terdeteksi
(Rifqy,2008). Benda tersebut merupakan benda yang memiliki perbedaan
Gambar 2.19 Cara Kerja Sensor
Seperti yang ditunjukkan pada Gambar 2.19, ketika ada sebuah objek melewati
sensor, pancaran radiasi infra merah pasif yang dihasilkan akan dihasilkan akan
dideteksi oleh sensor. Energi panas yang dibawa oleh sinar infra merah pasif ini
menyebabkan aktifnya material pyroelektric di dalam sensor yang kemudian
menghasilkan arus listrik.
Perancangan hardware ini menggunakn modul sensor Passive Infra Red
KC7783R Sistem ini telah terealisasi dan dapat menggerakkan pintu secara
otomatis Jika ada orang mendekati pintu dan terdeteksi oleh sensor PIR KC7783R
maka pintu akan bergerak membuka dan menutup kesamping kanan atau kiri,
sensor passive infrared (PIR) telah banyak dimanfaatkan dalam alat-alat yang
memerlukan sensor pendeteksi gerakan. Sebagai contoh yang sudah banyak kita
jumpai adalah sistem pintu otomatis yang terpasang disupermarket, mall-mall dan
perkantoran, pintu tersebut akan terbuka jika ada orang yang mendekatinya.
Sensor PIR akan bekerja dengan mendeteksi radiasi infra merah yang terjadi
lingkunga sekitarnya. Sensor PIR yang digunakan disini adalah PIR KC7783R.
PIR KC7783R merupakan sensor infrared yang menjadi perangkat keras utama
dari sistem ini. Sensor infrared ini merupakan jenis PIR (Passive Infrared) dengan
harga yang relatif murah. PIR KC7783R merupakan sensor pendeteksi yang
berfungsi normal pada tegangan 4,7 – 12 volt DC dan akan mengeluarkan output
dengan level high antara 4,9-6 volt.
Di dalam sensor PIR ini terdapat bagian-bagian yang mempunyai perannya
masing-masing, yaitu Fresnel Lens, IR Filter, Pyroelectric sensor, amplifier, dan
comparator. Sensor PIR ini bekerja dengan menangkap energi panas yang
dihasilkan dari pancaran sinar inframerah pasif yang dimiliki setiap benda dengan
suhu benda diatas nol mutlak. Seperti tubuh manusia yang memiliki suhu tubuh
kira-kira 32 derajat celcius, yang merupakan suhu panas yang khas yang terdapat
pada lingkungan. Pancaran sinar inframerah inilah yang kemudian ditangkap oleh
Pyroelectric sensor yang merupakan inti dari sensor PIR ini sehingga
menyebabkan Pyroelectic sensor yang terdiri dari galium nitrida, caesium nitrat
dan litium tantalate menghasilkan arus listrik. Mengapa bisa menghasilkan arus
listrik Karena pancaran sinar inframerah pasif ini membawa energi panas.
Prosesnya hampir sama seperti arus listrik yang terbentuk ketika sinar matahari
mengenai solar cell. Berikut Gambar 2.20 blok diagram sensor PIR:
Ketika manusia berada di depan sensor PIR dengan kondisi diam, maka
sensor PIR akan menghitung panjang gelombang yang dihasilkan oleh tubuh
manusia tersebut. Panjang gelombang yang konstan ini menyebabkan energi
panas yang dihasilkan dapat digambarkan hampir sama pada kondisi lingkungan
disekitarnya. Ketika manusia itu melakukan gerakan, maka tubuh manusia itu
akan menghasilkam pancaran sinar inframerah pasif dengan panjang gelombang
yang bervariasi sehingga menghasilkan panas berbeda yang menyebabkan sensor
merespon dengan cara menghasilkan arus pada material Pyroelectricnya dengan
besaran yang berbeda beda. Karena besaran yang berbeda inilah comparator
menghasilkan output. Adapun beberapa fitur yang dimilki sensor KC7783R
adalah:
a. Menggunakan output digital
b. Memiliki amfliefier di dalamnya sehingga dapat dengan mudah
dikoneksikan dengan perangkat mikrokontroler.
c. Mendeteksi gerakan dari objek seperti manusia hingga gerakan kecil
sekalipun. Kemampuan mendeteksi gerakan dengan baik dalam jarak
kurang lebih 5 meter dari sensor. Karena dia bertipe slight motion
detection dan dapat mendeteksi gerakan mulai dari kurang lebih 20 cm
(7,847).
d. Dapat bekerja pada suhu -200C hingga 500C (anonim,2007)
2.6 Bahasa C
Akar dari bahasa C adalah bahasa BCPL yang dikembangkan oleh Martin
Richard pada tahun 1967. Bahasa ini memberikan ide kepada Ken Thompson
yang kemudian mengembangkan bahasa yang disebut dengan B pada tahun 1970.
Perkembangan selanjutnya dari bahasa B adalah bahasa C oleh Dennis Ricthie
sekitar tahun 1972-an di Bell Telephone Laboratories Inc. ( sekarang adalah
AT&T Bell Laboratories).
Gambar 2.22 Sejarah Bahasa C
Kepopuleran bahasa C membuat versi-versi dari bahasa ini banyak dibuat untuk
komputer mikro. Untuk membuat versi-versi tersebut standar, ANSI (American
National Standards Institute) kemudian menetapkan standar ANSI untuk bahasa
C. Standar ANSI ini didasarkan dari standar UNIX yang diperluas (Suyanto,
2009).
Standar ANSI menetapkan sebanyak 32 buah kata-kata kunci (keyword)
standar. Ke 32 kata kunci ini adalah :
Pemrograman Bahasa C untuk AVR Bahasa C luas digunakan untuk
pemrograman berbagai jenis perangkat, termasuk mikrokontroler. Bahasa ini
sudah merupakan high level language, dimana memudahkan programmer
menuangkan algoritmanya. Untuk mengetahui dasar bahasa C dapat dipelajari
sebagai berikut (prince Arthas, www.google/ Programming Mikrokontroler AVR
dengan C/).
1. Struktur penulisan program #include < [library1.h] > // Opsional
#include < [library2.h] > // Opsional
#define [nama1] [nilai] ; // Opsional
#define [nama2] [nilai] ; // Opsional
[global variables] // Opsional
[functions] // Opsional
void main(void) // Program Utama
{ [Deklarasi local variable/constant] [Isi Program Utama] }
2. Tipe data
char : 1 byte ( -128 s/d 127 )
unsigned char : 1 byte ( 0 s/d 255 )
int : 2 byte ( -32768 s/d 32767 )
unsigned int : 2 byte ( 0 s/d 65535 )
long : 4 byte ( -2147483648 s/d 2147483647 )
unsigned long : 4 byte ( 0 s/d 4294967295 )
float : bilangan decimal
3. Deklarasi variabel & konstanta
Variabel adalah memori penyimpanan data yang nilainya dapat diubah-ubah.
Penulisan : [tipe data] [nama] = [nilai] ;
Konstanta adalah memori penyimpanan data yang nilainya tidak dapat diubah.
Penulisan : const [nama] = [nilai] ;
Tambahan: Global variabel/konstanta yang dapat diakses di seluruh bagian
program. Lokal variabel/konstanta yang hanya dapat diakses oleh fungsi
tempat dideklarasikannya.
4. Statement
Statement adalah setiap operasi dalam pemrograman, harus diakhiri dengan [
;] atau [ } ]. Statement tidak akan dieksekusi bila diawali dengan tanda [ // ]
untuk satu baris. Lebih dari 1 baris gunakan pasangan [ /* ] dan [ */ ].
Statement yang tidak dieksekusi disebut juga comments / komentar. Contoh:
suhu=adc/255*100; //contoh rumus perhitungan suhu
5. Function Function
adalah bagian program yang dapat dipanggil oleh program utama. Penulisan :
[tipe data hasil] [nama function]([tipe data input 1],[tipe data input 2]) {
[statement] ; }
6. Conditional statement dan looping if else digunakan untuk penyeleksian kondisi
if ( [persyaratan] ) { [statement1]; [statement2]; } else { [statement3];
[statement4]; }
for ( [nilai awal] ; [persyaratan] ; [operasi nilai] ) { [statement1]; [statement2];
}
while : digunakan untuk looping jika dan salama memenuhi syarat tertentu while ( [persyaratan] ) { [statement1]; [statement2]; }
do while : digunakan untuk looping jika dan salama memenuhi syarat tertentu, namun minimal 1 kali.
do { [statement1]; [statement2]; } while ( [persyaratan] )
switch case : digunakan untuk seleksi dengan banyak kondisi
switch ( [nama variabel] ) { case [nilai1]: [statement]; break; case [nilai2]:
[statement]; break; }
7. Operasi logika dan biner Logika AND :&&
8. Operasi relasional (perbandingan) Sama dengan : ==
Tidak sama dengan : !=
Lebih besar sama dengan : >=
Lebih kecil : <
Lebih kecil sama dengan : <=
9. Operasi aritmatika
+ , - , * , / : tambah,kurang,kali,bagi
+= , -= , *= , /= : nilai di sebelah kiri operator di tambah/kurang/kali/bagi
dengan nilai di sebelah kanan operator
% : sisa bagi
++ , -- : tambah satu (increment) , kurang satu (decrement)
Contoh :
a = 5 * 6 + 2 / 2 -1 ;
maka nilai a adalah 30 a *= 5 ;
jika nilai awal a adalah 30, maka nilai a = 30x5 = 150. a += 3 ;
jika nilai awal a adalah 30, maka nilai a = 30+5 = 33. a++ ;
jika nilai awal a adalah 5 maka nilai a = a+1 = 6. a-- ;
jika nilai awal a adalah 5 maka nilai a = a-1 = 4.
2.7 CodeVision AVR
Codevision AVR merupakan software untuk membuat code program
microcontroller AVR. Ada banyak program untuk menuliskan bahasa C ini,
diantaranya CodevisionAVR. CodeVisionAVR pada dasarnya merupakan
Ada tiga komponen penting yang telah diintegrasikan dalam perangkat lunak ini:
Compiler C, IDE dan Program generator.
Berdasarkan spesifikasi yang dikeluarkan oleh perusahaan
pengembangnya, Compiler C yang digunakan hampir mengimplementasikan
semua komponen standar yang ada pada bahasa C standar ANSI (seperti struktur
program, jenis tipe data, jenis operator, dan library fungsi standar-berikut
penamaannya). Tetapi walaupun demikian, dibandingkan bahasa C untuk aplikasi
komputer, compiler C untuk microcontroller ini memiliki sedikit perbedaan yang
disesuaikan dengan arsitektur AVR tempat program C tersebut ditanamkan
(embedded).
Khusus untuk library fungsi, disamping library standar (seperti
fungsi-fungsi matematik, manipulasi String, pengaksesan memori dan sebagainya),
CodeVisionAVR juga menyediakan fungsi-fungsi tambahan yang sangat
bermanfaat dalam pemrograman antarmuka AVR dengan perangkat luar yang
umum digunakan dalam aplikasi kontrol. Beberapa fungsi library yang penting
diantaranya adalah fungsi-fungsi untuk pengaksesan LCD, komunikasi I2C, IC
RTC (Real time Clock), sensor suhu LM75, SPI (Serial Peripheral Interface) dan
lain sebagainya. Untuk memudahkan pengembangan program aplikasi,
CodeVisionAVR juga dilengkapi IDE yang sangat user friendly (lihat Gambar
2.23). Selain menu-menu pilihan yang umum dijumpai pada setiap perangkat
lunak berbasis Windows, CodeVisionAVR ini telah mengintegrasikan perangkat
lunak downloader (in system programmer) yang dapat digunakan untuk
mentransfer kode mesin hasil kompilasi kedalam sistem memori microcontroller
Gambar 2.23 IDE Perangkat Lunak CodeVision AVR
Selain itu, CodeVisionAVR juga menyediakan sebuah tool yang dinamakan
dengan Code Generator atau CodeWizardAVR (lihat Gambar 2.23). Secara
praktis, tool ini sangat bermanfaat membentuk sebuah kerangka program
(template), dan juga memberi kemudahan bagi programmer dalam
peng-inisialisasian register-register yang terdapat pada microcontroller AVR yang
sedang diprogram. Dinamakan Code Generator, karena perangkat lunak
CodeVision ini akan membangkitkan kode-kode program secara otomatis setelah
fase inisialisasi pada jendela CodeWizardAVR selesai dilakukan. Gambar 2.24
berikut memperlihatkan beberapa penggal baris kode program yang dibangkitkan
secara otomatis oleh CodeWizardAVR. Secara teknis, penggunaan tool ini pada
dasarnya hampir sama dengan application wizard pada bahasa-bahasa
pemrograman Visual untuk komputer (seperti Visual C, Borland Delphi, dan
Gambar 2.24 Code Generator Yang Dapat digunakan Untuk Menginisialisasi Register-register Pada Microcontroller AVR.
Disamping versi yang komersil, Perusahaan Pavel Haiduc juga mengeluarkan
CodeVisionAVR versi Demo yang dapat didownload dari internet secara gratis.
Dalam versi ini, memori flash yang dapat diprogram dibatasi maksimal 2K, selain
itu tidak semua fungsi library yang tersedia dapat dipanggil secara bebas.
ANALISIS DAN PERANCANGAN SISTEM
Pada bab ini menjelaskan mengenai perancangan sistem kamera (Webcam)
pengikut gerakan baik perancangan hardware maupun software.
3.1 Diagram Blok
listrik
Pwr supply
ATMega 16
Driver Motor Display
Webcam
Sensor Kanan Sensor Kiri PC
Gambar 3.1 Diagram Blok Sistem Kamera (Webcam) Pengikut Gerakan
Berikut adalah perencanaan dari penelitian prototype dari kamera pengikut
gerakan berbasis mikrokontroller (Gambar 3.1), kamera (webcam) di gerakkan
secara otomatis oleh mekanik penggerak yaitu motor stepper melalui
mikrokontroller ATMega 16 yang mendapat inputan dari sensor (PIR) yang
merespon apabila ada objek atau gerakan. Kamera hanya bergerak ke kanan dan
ke kiri berdasarkan gerakan yang tertangkap oleh sensor.
Secara keseluruhan kerja webcam sangat ditentukan oleh perangkat keras
yang diterapkan. Agar webcam dapat berjalan dengan baik dan sesuai dengan
yang diinginkan maka sangat diperlukan piranti keras dan piranti lunak sebagai
pendukungnya, antara lain webcam itu sendiri, sensor, penggerak motor serta
mikrokontroller ATMega 16. PC (Personal Computer) atau laptop disini
berrperan hanya untuk menampilkan visual dari kamera (webcam) saja. Berikut
adalah perencanaan jalannya kamera pengikut gerakan berbasis mikrokontroller
(Gambar 3.2).
USB
MIKROKONTROLLER ATMega 16
DRIVER MOTOR STEPPER
SENSOR PIR
MOTOR STEPPER
3.2 Kebutuhan Perangkat Keras
Untuk membuat prototype ini diperlukan beberapa hardware diantaranya
sebagai berikut :
a) Webcam
Dalam prototype ini webcam adalah piranti keras yang di gunakan
untuk menangkap gambar suatu gerakan atau objek yang di akan di
tampilkan pada PC atau monitor.
b) Sensor Passive Infra Red (PIR)
Sensor Passive Infra Red merupakan alat elektronik yang
mengukur radiasi sinar infra merah dari suatu objek dalam cakupan
tertentu. Berbeda dengan sensor biasa yang menggunakan modul
transmitter unutk memancarkan gelombang tersebut, sensor Passive Infra
red hanya terdiri dari 1 modul penerima saja.
Dalam prototype ini sensor PIR digunakan sebagai pendeteksi
gerakan yang nantinya akan menentukan arah gerakan dari webcam yang
di gerakkan oleh mekanik penggerak (motor stepper).
c) Rangkaian Driver Mekanik penggerak (motor stepper)
Motor stepper adalah motor DC yang gerakannya bertahap (step
per step) dan memiliki akurasi yang tinggi tergantung pada spesifikasinya.
Setiap motor stepper mampu berputar untuk setiap stepnya dalam satuan
sudut (0.75, 0.9, 1.8), makin keil sudut per step-nya maka gerakan per
step-nya motor stepper tersebut makin presisi. Untuk menggerakkannya
Motor stepper disini sebagai mekanik penggerak webcam ke arah
kanan atau kiri.
d) Rangkaian Mikrokontroller ATMega 16
Mikrokontroler AVR ATmega16 adalah salah satu dari keluarga
ATmega dengan populasi pengguna cukup besar. Memiliki memori flash
16k dan 32 jalur input output, serta dilengkapi dengan ADC 8 kanal
dengan resolusi 10-bit dan 4 kanal PWM. Sebuah chip dengan fitur cukup
lengkap untuk mendukung beragam aplikasi, termasuk robotik.
3.3 Kebutuhan Perangkat Lunak
Software yang digunakan dalam prototype kamera pengikut gerakan
berbasis mikrokontroler adalah sebagai berikut:
a. Bahasa C
Bahasa C adalah bahasa BCPL yang dikembangkan oleh Martin
Richard pada tahun 1967. Bahasa ini memberikan ide kepada Ken
Thompson yang kemudian mengembangkan bahasa yang disebut dengan
B pada tahun 1970. Perkembangan selanjutnya dari bahasa B adalah
bahasa C oleh Dennis Ricthie sekitar tahun 1972-an di Bell Telephone
Laboratories Inc.
Sebuah software yang digunakan untuk merancang program atau
mengatur jalannya prototype yang kita inginkan yang nantinya akan
b. CodeVision AVR
Codevision AVR merupakan software untuk membuat code program
microcontroller AVR. Ada banyak program untuk menuliskan bahasa C
ini, diantaranya CodevisionAVR. CodeVisionAVR pada dasarnya
merupakan perangkat lunak pemrograman microcontroller keluarga AVR
berbasis bahasa C.
3.4 Perancangan Perangkat Keras
Pada perancangan perangkat keras ini, akan ada penjelasan proses tentang
mikrokontroler ATMega 16, driver motor stepper, sensor PIR.
3.4.1 Rangkaian Mikrokontroller ATMega 16
AVR merupakan seri mikrokontroler CMOS 8-bit buatan Atmel, berbasis
arsitektur RISC (Reduced Instruction Set Computer). AVR mempunyai 32 register
general-purpose, timer/counter fleksibel dengan mode compare, interrupt internal
dan eksternal, serial UART, programmable Watchdog Timer, dan mode power
saving, ADC dan PWM internal.
3.4.2 Rangkaian Tegangan (Supply)
Rangkaian ini merupakan aplikasi dari regulator tegangan IC 7805, 7809
dan IC 7812 yang dapat mengeluarkan tegangan 5 Volt, 9 volt dan 12 Volt
DC. Rangkaian ini dibangun dari beberapa komponen yakni, dioda 1N 5399
yang merupakan dioda yang dapat melewatkan arus maksimal 2 Ampere,
selain itu dioda ini juga berfungsi untuk menjadikan sinyal AC sinusoidal
yang melewatinya menjadi sinyal DC setengah gelombang.
T1
Gambar 3.4 Skema Rangkaian Supply
J1
Rangkaian Driver Motor Stepper
Rangkaian driver stepper ini di gunakan menggerakkan motor
berdasarkan nilai inputan dari mikrokontroller ATMega 16 dan logika dari
sensor untuk arah gerakan ke kanan atau ke kiri. Pada rangkaian ini
terdapat 4 port bit, 4 LED untuk menandakan apakah motor bergerak jika
LED menyala bergantian maka tandanya ada pergerakan dari motor jika
hanya menyala diam maka motor stepper dalam keadaan berhenti.
3.4.3 Rangkaian Keseluruhan
Pada rangkaian keseluruhan ini merupakan gabungan dari semua
rangkaian – rangkaian yang sebelumnya telah dirancang yaitu blok rangkaian
mikrokontroller AVR ATMega 16, rangkaian driver motor stepper, supply dan
sensor PIR.
3.5 Perancangan Sistem Perangkat Lunak
Pada perancangan perangkat lunak ini akan menggunakan bahasa
pemrograman yaitu bahasa C dengan menggunakan compiler yaitu code vision
AVR mengapa penulis memilih bahasa C karena lebih mudah dalam memahami
logikanya atau lebih mudahnya bahasa C adalah bahasa manusia. Berikut adalah
diagram alir dari prototype kamera pengikut gerakan secara otomatis berbasis
mikrokontroller :
Pada diagram alir (flowchart) dapat di jelaskan jika ada inputan atau
gerakan yang di baca oleh sensor, di sini sensor ada 2 yaitu sensor kanan dan kiri
jika objek terdeteksi sensor kanan maka sensor akan memberi perintah untuk
gerak ke kanan, begitu pula pada sensor bagian kiri dan akan berulang terus
Implementasi adalah langkah mewujudkan hal-hal yang telah dirancang
sebelumnya. Implementasi dilakukan dengan membuat sistem kamera (webcam)
pengikut gerakan yaitu terdiri dari perangkat keras dan proses program dari
perangkat lunak.
4.1 Implementasi perangkat keras
Gambar 4.1 Sistem Kamera Pengikut Gerakan
Bagan di atas adalah rangkaian keseluruhan dari penelitian ini yaitu
kamera (webcam) pengikut gerakan berbasis mikrokontroller yang terhubung
dengan PC (Personal Computer). PC disini hanya menampilkan visual dari
kamera saja, kamera di gerakkan oleh mekanik penggerak yaitu motor stepper
yang mendapat inputan dari sensor yang dikirim ke mikrokontroller lalu di
lanjutkan ke driver stepper.
Stepper akan bergerak ke kanan atau ke kiri berdasarkan inputan yang di
kirim oleh sensor yang di mana sensor membaca jika ada gerakan.