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