Pengajaran 3-4
Langkah Kelima: Membina Atur Cara Projek
Langkah Kelima: Membina Atur Cara Projek
Klik butang "CC" untuk membuka sarikata.
Klik butang "setting" > "subtitles" untuk memilih bahasa kehendak anda.
Aturcara program ini macam rumit!
Secara amnya, saya rasa ada tiga langkah
utama dalam aturcara projek ini.
Langkah pertama, baca maklumat daripada penderia cahaya.
Langkah kedua, proseskan maklumat dan tentukan
gerakan yang perlu dilakukan.
Langkah ketiga,
laksanakan gerakan berdasarkan langkah kedua.
Nampak macam rumit sedikit.
Saya rasa kita perlu gunakan pseudokod
untuk merancang program kita.
Tadi Nahvehshah kata langkah pertama adalah untuk
membaca maklumat dari penderia cahaya.
Sebenarnya itu adalah kurang tepat.
Langkah pertama yang betul,
adalah untuk membuat tetapan awal
dengan menggunakan pemboleh ubah
bagi robot pengesan solar kita seperti ini.
Oh jadi, sebenarnya, ada 4 langkah!
Langkah pertama, buat tetapan awal
bagi nilai-nilai pemboleh ubah penting
dan tetapkan posisi pengesan solar kepada posisi awal.
Langkah kedua, baca maklumat daripada penderia cahaya.
Langkah ketiga, proses maklumat dan tentukan
gerakan yang perlu dilakukan.
Langkah keempat, laksanakan gerakan
berdasarkan langkah ketiga.
Hm, cuma Navisya tidak faham lah,
Apakah itu nilai toleransi?
Alisya baru nak terangkan ini!
Kita boleh bayangkan situasi yang lebih mudah,
iaitu 2 penderia cahaya.
Penderia cahaya kiri di sini.
Penderia cahaya kanan di sini.
Jika sebelah kiri menerima cahaya,
maka nilai bacaan penderia di kiri akan naik.
Misalnya, mungkin sebelum dapat cahaya,
kedua-dua belah nilainya adalah 100.
Apabila terima cahaya di sebelah kiri,
mungkin nilai kiri akan naik dari 100 menjadi 150.
Begitu juga apabila cahaya dipancarkan ke sebelah kanan,
nilai bacaan di sebelah kanan akan menjadi
lebih tinggi berbanding dengan sebelah kiri.
Apabila kita tolakkan nilai kanan dari nilai kiri,
kita akan dapatkan satu nilai perbezaan.
Nilai perbezaan akan ada dua kemungkinan,
iaitu nilai positif atau negatif.
Nilai perbezaan akan menjadi positif,
apabila nilai kiri lebih tinggi berbanding nilai kanan.
Jadi, dengan menyemak sama ada nilai perbezaaan lebih
atau kurang daripada 0,
iaiti positif atau negatif,
kita boleh tentukan sama ada robot itu
harus berputar ke kiri, atau ke kanan.
Cuma, ada satu masalah.
Kita tidak boleh ambil perbezaan nilai sebagai penanda
untuk pusing ke kiri dan kanan sahaja.
Hm, kenapa macam itu?
Ini adalah kerana, adalah agak mustahil atau susah
untuk kedua-dua penderia cahaya untuk baca nilai yang sama.
Walaupun kedua-dua penderia menerima tahap cahaya yang sama,
tetapi masih akan wujud perbezaan di antara dua nilai tersebut.
Contohnya, kita bayangkan situasi berikut,
di mana kedua-dua penderia menerima
tahap cahaya yang hampir sama.
Dalam realiti dan secara saintifik,
adalah agak mustahil untuk kedua-dua penderia
terima jumlah cahaya yang sama.
Ini akan menyebabkan penderia untuk
gerakkan pengesan ke sebelah kiri.
Tetapi, tengok apa berlaku apabila pengesan
solar bergerak ke kiri.
Nampak tak, sekarang, pengesan perlu bergerak
ke kanan pula.
Ulangi langkah ini, dan kita akan tersangkut dalam
satu gelung maklum balas yang tidak terhingga,
<i>infinite feedback loop. </i>
Untuk mengatasi masalah ini,
kita perlu tetapkan satu had nilai perbezaan.
Sebarang nilai yang kurang dari had ini akan
dianggap sebagai nilai yang sama.
Inilah yang dimaksudkan dengan nilai toleransi.
Iaitu sejauh manakah kita kirakan perbezaan nilai itu perbezaan yang bermakna.
perbezaan yang bermakna.
Jika sesuatu nilai perbezaan itu melebihi nilai toleransi,
atau kurang daripada nilai toleransi darab -1,
maksudnya perbezaan itu dah cukup
untuk mengaktifkan sesuatu output.
Oh, sekarang baru Nahvehshah faham!
Jadi, saya lihat dari pseudokod Aliesya,
selepas Aliesya tetapkan nilai toleransi,
Aliesya juga tetapkan nilai asal bagi posisi
servo motor bagi pergerakkan paksi X dan paksi Y ya?
Betul!
Okay, jom kita sama-sama lengkapkan pseudokod kita!
Buat masa sekarang, kita uruskan dahulu langkah 1
iaitu penetapan nilai awal bagi pembolehubah yang termasuk,
nilai toleransi dan nilai pusingan darjah
setiap kali servo motor bergerak.
Jom kita mula dengan penetapan nilai toleransi
sebagai 100 dan nilai pusingan sebagai 3 darjah.
Seterusnya, kita perlu dapatkan input
daripada penderia-penderia.
Nahvehshah, soalan pertama saya kepada Nahvehshah
bagaimanakah kita nak kirakan nilai
nilai bacaan bagi arah bawah?
Kita ada dua penderia sahaja!
Hmm, yang ini kena fikir dahulu!
Aliesya teruskan dahulu!
Nanti Nahvehshah isikan sekali!
Aha, boleh!
Soalan kedua, yang ini adalah langkah untuk buat keputusan
sama ada nak pusing kanan atau pusing kiri.
Boleh tidak Nahvehshah tolong fikirkan
bahagian untuk buat keputusan
sama ada bergerak ke atas atau ke bawah?
Buat masa sekarang, langkah keempat,
iaitu tindakan output,
kita tetapkan dulu kepada paparan.
Nanti baru kita buat pseudokod yang betul.
Nahvehshaha, dah bersedia untuk siapkan pseudokod kita?
Sudah bersedia!
Tapi mungkin saya perlukan bantuan,anda semua,
boleh tak anda tolong Nahvehshah,
untuk fikirkan jawapan kepada soalan Aliesya?
Begitu juga dengan projek pengesan solar kita. Apakah maklumat yang kita harus tahu dalam projek ini? Untuk jawab soalan ini, kita boleh rujuk balik ke rajah blok kita. Dari sini, kita tahu projek ini akan melibatkan 3 proses utama, iaitu:
Dalam sesuatu pengaturcaraan, biasanya kita akan ada langkah awal untuk menetapkan semua tetapan yang diperlukan. Ini dikenali sebagai tahap pengawalan, atau initialization stage.
Dalam algoritma kita perlu tetapkan nilai-nilai seperti apakah posisi awal servo motor, apakah nilai setiap pergerakkan dan sebagainya. Jadi, secara amnya, algoritma kita akan melibatkan 4 proses seperti di bawah:
Dengan adanya pengetahuan tentang 4 proses utama, sekarang kita boleh kembangkan algoritma kita untuk projek ini.