Arbiel Yodinata Ariel Valentino Okky Andriansyah Indah Kusumaningrum
LAPORAN PSEUDECODE
2 sensor Follow line Psd1 repeat If (light sensor kiri & kanan = hitam) belok kiri else if (light sensor kiri = putih & light sensor kanan = hitam) belok kanan; until true *hasil = gagal, karena kemungkinan sensor pada robot mendapat data yang berbeda dengan persyaratan pseudecode diatas. Masalah yang timbul -
Jarak antar sensor lebih jauh daripada lebar lakban Kapasitas dari baterai robot yang terbatas
Psd2 begin repeat If (light sensor kiri & kanan = hitam) belok kiri else if (light sensor kiri = putih & light sensor kanan = hitam) belok kanan else if (light sensor kiri = hitam & light sensor kanan = putih) belok kiri else if (light sensor kiri & kanan = putih) - belok kanan End if Until true /* putar dengan arah berlawanan dengan belok kanan (mundur)*/ End *hasil = lebih baik dari Psd1 Masalah yang timbul Psd3
Pada saat belokan yang tajam sering terjepit dan tidak berhasil melewatinya
begin repeat If (light sensor kiri & kanan = hitam) maju if (light sensor kiri = putih & light sensor kanan = hitam) belok kanan if (light sensor kiri = hitam & light sensor kanan = putih) belok kiri If (light sensor kiri & kanan = putih) - belok kanan /* putar dengan arah berlawanan dengan belok kanan (mundur)*/ end if until true end *hasil = pada algoritma ini dapat mengerjakan lintasan dengan waktu yang lebih cepat. Berhasil namun sesekali masih mengalami masalah yang sama dengan Psd2.
Follow line and check obstacle Psd4 begin repeat If (light sensor kiri & kanan = hitam) Motor maju else if (light sensor kiri = putih & light sensor kanan = hitam) belok kanan else if (light sensor kiri = hitam & light sensor kanan = putih) belok kiri If (light sensor kiri & kanan = putih) - belok kanan; /* putar dengan arah berlawanan dengan belok kanan (mundur)*/ until(sonar>25cm) Stop end *hasil = belum berhasil, karena sensor kurang sensitive mendeteksi halangan / obstacle. Masalah yang timbul -
Pengerjaan waktu yang mepet dengan jadwal tiap orang yang berbeda-beda. Kurang mengerti penggunaan queue Belum mengerti penulisan kode – kode yang dipakai dalam robotc.
Follow line , check obstacle, and do until push the button Psd5
begin Mengalokasi 1000 array untuk menyimpan laju motor B & C maju = 1; kiri = 2; kanan = 3; i = 0; n = 0; repeat if (kedua sensor menunjuk pada garis hitam) robot maju lurus i menyimpan motor untuk maju lurus dalam angka 1
else if (sensor kanan menunjuk putih & sensor kiri pada hitam belok kiri i menyimpan motor untuk belok kiri dalam angka 2 else if (sensor kiri menunjuk putih & sensor kanan pada hitam) belok kanan i menyimpan motor untuk belok kiri dalam angka 2
i bertambah 1 until sensor sonar>25) robot stop while(touch sensor tidak di tekan) robot diam while(touch sensor di tekan lalu di lepas) repeat if (indeks ke n =1) maju lurus if (indeks ke n =2) belok kiri if (indeks ke n =3) belok kanan n bertambah 1 until(n tidak samadengan i) end
*hasil = berhasil namun tidak mendeteksi saat kedua sensor menunjuk putih. Sudah mengerti penggunaan queue dalam robot c Masalah yang timbul -
Saat di running kadang robot tidak jalan. Tiba-tiba berhenti ditengah walaupun belum ada penghalang.
1 sensor Psd 1 begin dekalarasi integer tepi dengan nilai 50 /*asumsi gelap = 35 terang = 60 tepi = 60+35/2 */ dekalarasi integer distance_in_cm dengan nilai 30 repeat if(sensor sonar< tepi) belok kanan else belok kiri end if until (sensor sonar > distance_in_cm) stop end *hasil : dengan menggunakan 1 sensor dan terlebih dahulu mengasumsi nilai light sensor untuk tepi lakban. Robot berhasil berjalan mengikuti garis tepi lakban. Masalah yang timbul : jika dijalankan pada pencahayaan berbeda robot sedikit melenceng dari lintasan. -
Psd 2 begin deklarasi integer gelap sama dengan nilai light sensor menampilkan nilai sensor di monitor belok kiri stop deklarasi integer terang sama dengan nilai light sensor menampilkan nilai sensor di monitor belok kanan mendeklasari kan integer tepi dengan nilai gelap + terang / 2 belok kanan menampilkan nilai tepi di monitor stop membuat variabel distance_in_cm dengan nilai 30 repeat if(light sensor < tepi)
belok kanan else belok kiri end if until(sensor sonar > distance_in_cm) stop end *hasil : robot mengambil nilai sensor pada saat di lakban hitam, karena yang digunakan sensor kiri, lalu robot belok kiri dan mengambil nilai saat sensor kiri di lantai dan variable tepi menyimpan rata-rata kedua nilai tersebut, robot berjalan mengikuti gari tepi. Ini efektif karena robot bias digunakan walaupun pencahayaan berbeda dari sebelumnya. Masalah yang timbul : - Laju robot masih belum halus. Psd 3 begin membuat veriabel array data dengan size 100 membuat variable i dengan nilai 0 membuat variablej dengan nilai 0 deklarasi integer gelap sama dengan nilai light sensor menampilkan nilai sensor di monitor belok kiri stop deklarasi integer terang sama dengan nilai light sensor menampilkan nilai sensor di monitor belok kanan mendeklasari kan integer tepi dengan nilai gelap + terang / 2 belok kanan menampilkan nilai tepi di monitor stop membuat variabel distance_in_cm dengan nilai 30 repeat data[i]=nilai ensor display nilai sensor i=i+1 if(light sensor < tepi) belok kanan else belok kiri end if until(sensor sonar > distance_in_cm) stop
until(touch sensor = 0) do nothing while (touchSensor = 1) do nothing repeat if(data[i] < tepi) belok kanan else belok kiri display data[i] i=i+1 until(i!=0) end *hasil : robot berhasil merekam Masalah yang timbul : - namun saat batas hasil rekaman habis robot masih tetap berjalan tidak beraturan.
Psd 4 begin membuat veriabel array data dengan size 100 membuat variable i dengan nilai 0 membuat variablej dengan nilai 0 deklarasi integer gelap sama dengan nilai light sensor menampilkan nilai sensor di monitor belok kiri stop deklarasi integer terang sama dengan nilai light sensor menampilkan nilai sensor di monitor belok kanan mendeklasari kan integer tepi dengan nilai gelap + terang / 2 belok kanan menampilkan nilai tepi di monitor stop membuat variabel distance_in_cm dengan nilai 30 repeat data[i]=nilai ensor display data[i] i=i+1
if(light sensor < tepi) belok kanan else belok kiri end if until(sensor sonar > distance_in_cm) stop until(touch sensor = 0) do nothing while (touchSensor = 1) do nothing repeat data[i]=data[j] if(data[j] < tepi) belok kanan else belok kiri display data[j] j=j+1 until(j!=i) end
*hasil : robot berhasil merekam dengan baik. Dengan membuat variable j = 0 menggunakan system queue. Menyamakan data[i] dan data[j]. data j akan betambah 1 sampai data j sama dengan data I lalu robot berhenti. Masalah yang timbul: - robot masih berjalan zigzag.