Sensor Ultrasonik Perancangan Perangkat Keras

Secara keseluruhan rangkaian sistem minimum mikrokontroler ATmega8535 ditunjukkan pada gambar 3.21. Gambar 3.21. Rangkaian sistem minimum ATmega8535

3.3. Perancangan Perangkat Lunak

3.3.1. Diagram Alir Utama

Diagram alir utama ditunjukkan pada gambar 3.22. Program utama menunjukkan proses mikrokontroler secara keseluruhan. Setelah start, program melakukan inisialisai terhadap port-port mikrokontroler yang digunakan untuk proses pengendalian alat. Jika sensor PIR mendeteksi manusia, maka mikrokontroler akan mengaktifkan semua sensor ultrasonik kemudian menghitung jarak manusia tersebut, hal ini untuk mencari arah dan posisi manusia. Simbol S pada diagram alir merupakan sensor ultrasonik yang digunakan untuk mendeteksi jarak manusia. Pada perancangan tugas akhir ini menggunakan 3 buah sensor ultrasonik yaitu S1, S1 dan S3. Jika manusia berada kurang sama dengan 2 meter dari robot, maka mikrokontroler akan mengaktifkan motor servo untuk mengarahkan kepala robot ke arah posisi manusia, kemudian mengaktifkan relay dan mengerakkan tangan sesuai arah manusia terdeteksi. Jika manusia terdeteksi berada di sebelah kiri robot, maka mikrokontroler akan mengaktifkan motor servo tangan kanan dan jika manusia terdeteksi disebelah kanan robot, maka mikrokontroler akan mengaktifkan motor servo tangan kiri. Sedangkan jika manusia terdeteksi berada di depan robot, maka mikrokontroler akan mengaktifkan semua motor servo tangan kanan dan kiri robot. Start Inisialisasi Port Mikrokontroler PIR = ON Aktifkan Semua Sensor Ultrasonik Hitung Jarak Sensor Ultrasonik Tampilkan Data Di LCD S1 = 2m S2 = 2m S3 = 2m Ya Tidak Ya Tidak Tidak Tidak Ya Ya Gerakkan Tangan Kanan dan Kepala Gerakkan Semua Tangan Gerakkan Tangan Kiri dan Kepala Stop Baca Data PIR Gambar 3.22. Diagram alir utama

3.3.2. Diagram Alir Tangan kanan dan Kepala

Diagram alir tangan kanan dan kepala ditunjukkan pada gambar 3.23. Subrutin ini dipakai untuk melakukan pergerakan pada tangan kanan dan kepala robot. Gerakan ini menggunakan empat buah motor servo, yang bergerak secara bergantian. Pada saat subrutin ini dieksekusi mikrokontroler akan mengaktifkan timer 1 dan relay sehingga modul mp3 akan on. Proses selanjutnya mikrokontroler akan memberikan pulsa sebesar 2ms ke motor servo 1 sehingga kepala robot bergerak 90 mengarah ke manusia. Setelah itu mikrokontroler memberikan pulsa sebesar 1,5ms ke motor servo 4, 2ms ke motor servo 3 dan 2 secara bergantian sehingga tangan kanan robot terangkat dengan sudut 90 . Setelah itu motor servo 4 diberi pulsa 1ms selama 10ms dan pulsa 2ms selama 10ms, sehingga telapak tangan kanan robot akan terlihat seperti melambai. Dalam proses melambaikan telapak tangan, motor servo 4 akan bergerak dengan perubahan sudut 90 . Proses ini akan berulang selama 5 detik dengan memanfaatkan timer 1. Jika timer 1 sama dengan 5 detik, maka mikrokontroler akan menonaktifkan relay sehingga modul mp3 kembali off. Setelah modul mp3 dinonaktifkan, timer 1 akan off dan mikrokontroler akan memberikan pulsa 1,5ms ke motor servo 1 sehingga kepala robot akan kembali ke posisi awal. Proses selanjutnya mikrokontroler akan memberikan pulsa sebesar 1,5ms ke motor servo 4, 1ms ke motor servo 3 dan 2 agar tangan kanan robot kembali ke posisi awal. Mulai PortC.1 = Servo1 PortC.2 = Servo2 PortC.3 = Servo3 PortC.4 = Servo4 PortC.0 = Relay Servo1 90 Derajat Servo4 45 Derajat Servo3 90 Derajat Servo2 90 Derajat Timer1 = 5 detik Relay ON Timer1 ON Servo4 0 Derajat Servo4 90 Derajat Servo1 45 Derajat Servo4 45 Derajat Servo3 0 Derajat Servo2 0 Derajat Kembali Ya Tidak Tunda 10ms Tunda 10ms Relay OFF Timer1 OFF Gambar 3.23. Diagram alir tangan kanan dan kepala

3.3.3. Diagram Alir Tangan kiri dan Kepala

Diagram alir tangan kiri dan kepala ditunjukkan pada gambar 3.24. Subrutin ini dipakai untuk melakukan pergerakan pada tangan kiri dan kepala robot. Gerakan ini menggunakan empat buah motor servo, yang bergerak secara bergantian. Pada saat subrutin ini dieksekusi mikrokontroler akan mengaktifkan timer 1 dan relay sehingga modul mp3 akan on. Proses selanjutnya mikrokontroler akan memberikan pulsa sebesar 1ms ke motor servo 1 sehingga kepala robot bergerak 0 mengarah ke manusia. Setelah itu mikrokontroler memberikan pulsa sebesar 1,5ms ke motor servo 7, 2ms ke motor servo 6 dan 5 secara bergantian sehingga tangan kiri robot terangkat dengan sudut 90 . Setelah itu motor servo 7 di beri pulsa 1ms selama 10ms dan pulsa 2ms selama 10ms, sehingga telapak tangan kiri akan terlihat seperti melambai. Dalam proses melambaikan telapak tangan, motor servo 7 akan bergerak dengan perubahan sudut 90 . Proses ini akan berulang selama 5 detik dengan memanfaatkan timer 1. Jika timer 1 sama dengan 5 detik, maka mikrokontroler akan menonaktifkan relay sehingga modul mp3 kembali off. Setelah modul mp3 dinonaktifkan timer 1 akan off dan kemudian mikrokontroler akan memberikan pulsa 1,5ms ke motor servo 1 sehingga kepala robot akan kembali ke posisi awal. Proses selanjutnya mikrokontroler akan memberikan pulsa sebesar 1,5ms ke motor servo 7, 1ms ke motor servo 6 dan 5 agar tangan kanan robot kembali ke posisi awal. Mulai PortC.1 = Servo1 PortC.5 = Servo5 PortC.6 = Servo6 PortC.7 = Servo7 PortC.0 = Relay Servo1 0 Derajat Servo7 45 Derajat Servo6 90 Derajat Servo5 90 Derajat Timer1 = 5 detik Relay ON Timer1 ON Servo7 0 Derajat Servo7 90 Derajat Servo1 45 Derajat Servo7 45 Derajat Servo6 0 Derajat Servo5 0 Derajat Kembali Ya Tidak Tunda 10ms Tunda 10ms Relay OFF Timer1 OFF Gambar 3.24. Diagram alir tangan kiri dan kepala