BAB II LANDASAN TEOR
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).
A B C D Comment
1 0 0 0 Take a step clock wise 0 1 0 0 Another step clock wise 0 0 1 0 Another step clock wise 0 0 0 1 Another step clock wise 0 0 0 1 No step take
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)
A B C D Comment
1 0 0 0 Take a step clock wise 1 1 0 0 Half a step clock wise
0 1 0 0 The complete full step clock wise
0 1 1 0 Another half step clock wise 0 0 1 0 The complete full step clock
wise
0 0 1 1 Another half step clock wise 0 0 0 1 The complete full step clock
wise
1 0 0 1 Another half step clock wise 1 0 0 0 Start position
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 :&&
NOT : !
OR : ||
Biner AND : &
OR : |
XOR : ^
Shift right: >>
Shift left : <<
Komplemen : ~
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