Cara menggunakan Sensor Pendeteksi Gerak Manusia menggunakan Sensor PIR, Ultrasonic dan Arduino

Suatu sistem peralatan yang sensitif terhadap keberadaan manusia serta mentracking pergerakannya diikuti dengan megirimkan koordinat posisi object manusia tersebut ke komputer secara serial. alat ini menjelaskan bagaimana cara kerja sensor PIR dan sensor Ultrasonic SRF-05 serta aktuator berupa Servo Dynamixel AX-12A, dan mengintegrasikan semuanya dengan microcontroller board Arduino Uno. Arduino Uno disini berperan sebagai controller dari sensor dan aktuator yang telah disebutkan.
 
Pengiriman koordinat dari object manusia yang ditracking secara serial ke komputer berguna untuk menyajikan informasi posisi dimana objek berada yang kemudian ditampilkan pada serial monitor di komputer yang tentunya dapat dipantau oleh operator. Koordinat posisi object ini tentu dapat  menjadi inputan bagi sistem lain untuk diolah lebih lanjut

 Alat ini menggunakan beberapa wiring hardware dan sebuah software, dimana software diinstal pada komputer terlebih dahulu.
 Berikut alat yang digunakan:
 Hardware :-Arduino Uno1-PIR4-Ultrasonic SRF-051-Servo Dynamixel AX-12A1-USB – TTL1-IC 74LS241N1-IC regulator 78091-PCB bolong-Screw connector-Kabel-Multimeter-Aluminium
Arduino UNO
Arduino Uno adalah board mikrokontroler berdasarkan ATmega328.Dalam bahasa Itali "Uno" berarti satu, maka peluncuran Arduino 1.0 diberi nama Uno. Arduino ini berisi semua yang diperlukan untuk mendukung mikrokontroller, untuk mengaktifkan cukup menghubungkannya ke komputer dengan kabel USB dengan adaptor AC-DC atau baterai.

Berikut adalah spesifikasi dari Arduino Uno :
MikrokontrolerATmega328
Operating Voltage5V
Input Voltage (disarankan)7-12V
Input Voltage (batas)6-20V
Digital I / O14 Pin (dimana 6 memberikan output PWM)
Analog Input6 Pin
DC Current per I / O40 mA
DC Current for 3.3V50 mA
Flash Memory 32 KB (ATmega328) yang 0,5 KB digunakan oleh bootloader
SRAM                                                            2 KB (ATmega328)
EEPROM1 KB (ATmega328)
Clock Speed16 MHz
Sensor PIR (Passive Infrared Receiver)Sensor  PIR  (Passive  Infra  Red)  adalah  sensor  yang  digunakan  untuk  mendeteksi  adanya pancaran sinar infra merah. Sensor PIR bersifat pasif, artinya sensor ini tidak memancarkan sinar infra merah tetapi hanya menerima radiasi sinar infra merah dari luar.

Gambar 1. Sensor PIR
Sensor PIR didesain dan dirancang hanya mendeteksi pancaran infra merah dengan panjang gelombang 8-14 mikrometer. Diluar panjang gelombang tersebut sensor tidak akan mendeteksinya.Untuk manusia sendiri memiliki suhu badan yang dapat menghasilkan pancaran infra merah dengan panjang gelombang antara 9-10 mikrometer (nilai standar 9,4 mikrometer), panjang gelombang tersebut dapat terdeteksi oleh sensor PIR. (Secara umum sensor PIR memang dirancang untuk mendeteksi manusia). Jadi sensor PIR hanya akan mengeluarkan logika 0 dan 1, 0 saat sensor tidak mendeteksi adanya pancaran infra merah dan 1 saat sensor mendeteksi infra merah.
SRF-05 (
Ultrasonic Sensor)Ultrasonic sensor bekerja pada prinsip yang mirip dengan radar atau sonar yang mengevaluasi atribut  target dengan  menginterpretasikan  gema dari radio  atau  gelombang  suara  masing -masing. Sensor ultrasonik menghasilkan gelombang suara frekuensi tinggi dan mengevaluasi gema yang diterima kembali oleh sensor.Sensor menghitung interval waktu antara pengiriman sinyal dan menerima gema untuk menentukan jarak ke obyek.

Gambar 2. Konsep Ultrasonik                                Gambar 3. Pinout SRF-05
Servo Dynamixel AX-12ADynamixel adalah aktuator berbasis motor servo yang cukup “pintar” dibanding motor servo lainnya. hal itu dikarenakan dynamixel mempunyai beberapa kelebihan yang tidak dimilliki servo lain, kelebiahan tersebut antara lain :
Gambar 4. Dynamixel AX-12A
Posisi dan kecepatan dapat dikontrol dengan resolusi sebesar 1024
range sudut pergerakan servo dapat diatur/diset.
mampu memberikan feedback atau informasi berupa kecepatan, suhu, tegangan, torsi dan posisi servo.
mengimplementasikan sebuah alarm yang akan memberi informasi pengguna
saat serv bergerak diluar parameter yang diberikan pengguna.komunikasi berbasis serial half duplex dengan kecepatan mencapai 1Mbps.
menggunakan data bus dan ID sehingga mudah untuk mengontrol servo dynamixel yang
berjumlah lebih dari 1 led indikator.
IC 74LS241N
Masalah pertama yang muncul saat akan mengkomunikasikan arduino dengan dynamixel adalah komunikasi serial dalam arduino berbasis full duplex atau dengan 2 jalur data, 1 mengirim (pinTX) dan 1 menerima (pinRX) sedangkan dynamixel membutuhkan komunikasi serial berbasis half duplex dimana hanya butuh 1 jalur data untuk berkomunikasi. Untuk itu diperlukan sebuah interface lain untuk menghubungkan arduino dengan dynamixel atau dengan katalain untuk mengubah fullduplex ke halfduplex. untuk halter sebut diperlukan IC74LS241N sebagai pengendali atau pengkonversi jalur data. Jadi secara mudahnya IC74LS241N adalah sebuah gerbang yang memilah-milah apakah data dialamatkan sebagai data tranfer (TX data) atau data Receiver (RX data).

Desain Hardware

Modul utama adalah Arduino Uno yang pin – pinnya dikonfigurasi sebagai input dan output. Beberapa yang dikonfigurasi sebagai input misalnya untuk sensor yang statis dan dinamis Sensor dinamis yang dimaksud disini ialah 2 sensor PIR dan 1 sensor ultrasonik yang diletakkan pada servo sehingga ikut bergerak, sedangkan sensor statis ialah 2 sensor PIR yang diam. Perlu sebuah USB – TTL agar arduino dapat mengirimkan data serial ke komputer karena pin rx tx arduino telah digunakan untuk mendrive servo.

Gambar 5 menunjukkan contoh cara bagaimana mendrive servo dynamixel AX-12A  dengan arduino dengan bantuan IC 74LS241N dan sebuah usb – ttl untuk mengirim data serial ke komputer dengan scriptnya :

 Sensor dinamis yang dimaksud disini terdiri dari 3 sensor yang ikut bergerak seiring pergerakan servo. Ketiga sensor tersebut dipasang pada poros servo. Terdiri dari 2 sensor PIR sebagai sensor dinamis kiri dan kanan, dan sensor ultrasonik SRF-05 sebagai sensor dinamis tengah.
Sedangkan sensor statis terdiri dari 2 sensor PIR yang diam dan diletakkan pada posisi   -45 0 dan 45.

Alat ini ditujukan untuk dapat diimplementasikan pada senjata otomatis seperti pada gambar di bawah ini. Jadi data serial yang berisi posisi target dikirim ke komputer lalu diolah menjadi posisi tujuan senjata otomatis.

Skema lengkap dari wiring sistem human tracking:


Tentunya untuk sensor PIR dan SRF-05 harus diberi catu daya berupa vcc 5V (tidak dicantumkan pada gambar 9), USB – ttl cukup diberi ground. Dengan catatan, semua ground dari catu daya dynamixel, arduino, PIR, SRF-05 harus menjadi satu node.

Desain Software

Software yang digunakan ialah IDE Ardunio, yang menggunakan bahasa pemrograman C Algoritma dari program yang dibuat adalah:
Inisialisasi Servo dynamixel, dan mySerial
  1. Inisialisasi Input output
  2. Scan semua sensor dinamis
  3. Jika ultrasonik (sensor dinamis tengah) mendeteksi objek, kirim posisi servo via serial ke komputer sekali saja
  4. Jika semua sensor dinamis tidak mendeteksi objek, lanjut ke no 6. Jika salah satu sensor dinamis mendeteksi objek , lompat ke no 10
  5. Scan semua sensor statis
  6. Jika PIR kiri statis mendeteksi objek, maka gerakkan servo ke region kiri
  7. Jika PIR kanan statis mendeteksi objek, maka gerakkan servo ke region kanan
  8. Kembali ke no 3
  9. Jika PIR kanan dinamis mendeteksi objek, maka gerakkan servo terus ke kanan hingga ultrasonik (sensor dinamis tengah) mendeteksi objek.
  10. Jika PIR kiri dinamis mendeteksi objek, maka gerakkan servo terus ke kiri hingga ultrasonik (sensor dinamis tengah) mendeteksi objek.
  11. Kembali ke no 3.
Perlu  diperhatikan,  mungkin  setiap  servo  berbeda  koordinatnya  di  posisi  tertentu.  Dalam alat ini, servo yang digunakan telah disetting terlebih dahulu agar mempunyai jelajah 180, walaupun sebenarnya bisa lebih.  0adalah posisi paling kiri dan 180adalah posisi paling kanan.
nya memiliki nilai 206 , sedangkan 180nya memiliki nilai 823 . Dari 206 – 823, maka di sini bisa dianggap region kiri bernilai 360 sedangkan region kanan 669. Pada bagian dimana arduino mengirim koordinat ke komputer via serial, posisi servo yang bernilai 206 – 823 tersebut di mapping terlebih dahulu menjadi -90hinggan 90baru dikirim.
Script yang di-upload ke Arduino :