1
Berfikir
2
Lakukan
3
Uji
4
Renung

1. Berfikir

Masalah

Jom sahut cabaran untuk mengarahkan AkalBOT dalam misi untuk mengesan selipar musuh pada lokasi yang pertama untuk mengeluarkan amaran dan kemudian bergerak menuju ke lokasi kedua untuk mengesan dan menjatuhkan selipar.

Anda perlu menggunakan sensor ultrasonik untuk mengesan kedudukan selipar. Anda akan menentukan sendiri corak perjalanan AkalBOT bagi mengesan dan menjatuhkan selipar dengan menyusun papan padang permainan berdasarkan nilai setiap papan.

Gunakan kreativiti anda untuk menyusun papan tersebut supaya hasil tambah nilai papan yang dilalui AkalBOT mesti melebihi 75 markah. Peraturan permainan ialah:

  1. AkalBot perlu mengesan 2 lokasi selipar.
  2. Laluan bermula pada mana-mana papan.
  3. Laluan berakhir pada tapak selipar yang kedua.
  4. Menggunakan sekurang-kurangnya 8 keping papan permainan dan maksimum 15 keping.
  5. AkalBOT akan mengesan selipar musuh pada lokasi yang pertama untuk memaparkan amaran menggunakan OLED dan bunyian buzzer.
  6. AkalBOT akan mengelak selipar musuh pada lokasi pertama dan meneruskan perjalanan ke lokasi kedua.
  7. Pada lokasi kedua, AkalBOT perlu mengesan kedudukan selipar untuk menjatuhkan selipar.
  8. AkalBot akan berhenti selepas menjatuhkan selipar pada lokasi yang kedua dengan paparan OLED berubah menjadi berjaya.
  9. Melibatkan sekurang-kurangnya 4 pergerakan berbeza.

Jika anda bertanding dengan rakan anda, pemenang adalah yang mendapat markah yang tertinggi iaitu hasil tambah papan yang dilalui AkalBOT dengan tambahan LED (markah bonus) dalam tempoh yang paling singkat. Semoga berjaya!

Contoh pergerakan yang tersasar! Sepatutnya akalBot tidak melanggar selipar musuh pada lokasi pertama, hanya memberi amaran sahaja dan kemudian mengundur untuk menuju ke lokasi kedua.

☆ BONUS

Tambah nyalaan LED apabila sampai ke selipar pertama (bonus 5 markah)

Penambahan Nyalaan LED


Blok LED dalam AkalBLOK

Analisis Masalah

Mari kita analisis masalah ini menggunakan teknik pemikiran komputasional iaitu penguraian.


Penguraian

Masalah utama dalam misi tuju selipar kali ini ialah bagaimana untuk menyusun pergerakan AkalBOT supaya berjaya mengesan selipar pada dua lokasi supaya tambah nilai papan yang dilalui AkalBOT adalah melebihi 75 markah. Untuk masalah ini, anda perlu membantu akalBOT membuat keputusan jika sensor ultrasonik mengesan selipar pada jarak tertentu. Oleh itu, cuba huraikan masalah ini berdasarkan pertambahan penggunaan sensor ini.


💡 Fikir: Mungkin anda perlu tahu dahulu bagaimana sensor ultrasonik berfungsi dengan merujuk panduan berkaitan sensor ultrasonik. Secara asasnya, sensor ini dapat mengesan jarak kedudukan semasa akalBOT dengan objek dihadapannya. Bagaimana jarak ini boleh digunakan untuk membuat keputusan? Masalah ini boleh dihuraikan kepada dua keadaan.

collapse-image

Keadaan Pertama:

  • Jarak di antara selipar dan lokasi selipar adalah melebihi 30 cm.
  • Pada keadaan ini, AkalBOT akan meneruskan misi dengan terus bergerak.

Keadaan Kedua:

  • Jarak di antara selipar dan lokasi selipar adalah kurang 30 cm.
  • Pada keadaan ini, akalBOT perlu menetapkan apakah tindakan untuk pengesanan kali pertama dan kedua.

collapse-image Pengesanan selipar kali pertama iaitu pada lokasi pertama, perlu memaparkan mesej amaran pada OLED dan bunyikan buzzer tapi tidak perlu menjatuhkan selipar. Hanya perlu elak.
Pengesanan selipar kali kedua iaitu pada lokasi kedua, perlu melanggar selipar dan berhenti selepas berjaya menjatuhkannya. Buzzer turut dibunyikan bersama paparan mesej berjaya pada OLED. collapse-image

2. Lakukan

Pengekodan

🤖 Lakukan:Dengan menggunakan AkalBLOK, susun blok untuk mengerakkan AkalBOT supaya AkalBOT bergerak menuju ke dua lokasi selipar berdasarkan urutan carta alir. Blok yang terlibat adalah:

  • Blok Sensor Ultrasonik
  • Blok Motor
  • Blok Input/Output
  • Blok Buzzer
  • Blok OLED
  • Blok LED

Misi kali ini memerlukan anda menghasilkan satu aturcara baharu atau mengedit aturcara yang dihasilkan melalui akalBLOK. Atur cara yang dihasilkan menggunakan akalblok ini adalah untuk carta alir pada seksyen sebelum ini. Aturcara ini perlu ditambah baik supaya misi ketiga dicapai.

🤖 Bimbingan:Anda boleh bertindak untuk mendapatkan maklumat lanjut berkaitan atur cara yang terhasil menggunakan chatbot AI seperti chatGPT (https://chat.openai.com/). Mari kita terokai dunia pembelajaran interaktif dengan bertanya soalan menggunakan 2 topi berbeza: sebagai pelajar dan sebagai guru. Terokai lebih lanjut dengan pelbagai soalan yang anda karang sendiri sehingga berjaya memahami kod tersebut dan dapat tambah baik kod sehingga misi kali ini berjaya.

Sebagai pelajar: “Saya pelajar sekolah menengah, bantu saya untuk memahami kod ini:” Anda perlu salin dan tampal (copy & paste) kod yang terhasil dalam akalBLOK dalam chatGPT


Sebagai guru: “Sebagai seorang guru di Malaysia, terangkan kod ini supaya pelajar faham konsep if yang digunakan” Anda perlu salin dan tampal (copy & paste) kod yang terhasil dalam akalBLOK dalam chatGPT


Jom tonton video menggunakan chatGPT


3. Menguji

Pengujian

Mari uji bagaimana atur cara yang dibangunkan dapat mengerakkan AkalBOT untuk mengesan selipar musuh pada lokasi yang pertama untuk mengeluarkan amaran dan kemudian bergerak menuju ke lokasi kedua untuk mengesan dan menjatuhkan selipar.

📋 Uji: Susun padang permainan supaya sesuai dengan laluan AkalBOT pada misi ketiga ini. Kemudian, susun selipar secara menegak pada dua lokasi yang telah anda rancang.

Contoh susunan pertama iaitu selipar boleh berada diluar padang permainan kerana Akalbot hanya perlu mengelak untuk lokasi pertama

AkalBOT

Contoh susunan kedua iaitu kedua-dua lokasi selipar di atas padang permainan.

AkalBOT

📋 Uji: Dengan menggunakan Editor Arduino, kompil atur cara yang dibangunkan. Rujuk bahagian Kompil Aturcara untuk langkah menguji atur cara.

Letak AkalBot pada padang permainan. Larikan AkalBOT dengan menekan butang ON. Pastikan bateri AkalBOT mencukupi

AkalBOT

📋 Uji: Perhatikan pergerakan Akalbot. Adakah Akalbot berjaya mengelak lokasi selipar yang pertama dan tapi berjaya menjatuhkan selipar yang kedua?

Jika terlalu awal Akalbot mengelak selipar, mungkin jarak dalam menentukan keputusan dikurangkan.
Jika Akalbot berpusing-pusing seperti bukan yang dirancang, maka nilai delay belok ke kiri dikurangkan.

Akalbot boleh mengelak dan menjatuhkan selipar pada lokasi yang sama? Perlu tambah baik arahan kod selepas pengesanan selipar pertama!

collapse-image

Anda boleh menggunakan chatbot AI untuk mendapatkan pandangan bagi memperbaiki kod. Anda boleh bagi arahan seperti berikut untuk berkomunikasi dengan AI:
Saya pelajar sekolah menengah dan sedang memperbaiki kod untuk robot yang menggunakan arduino. [nyatakan masalah kod anda di sini. Contohnya: Robot ini tidak berjaya mengelak selipar pada lokasi pertama]. Tunjuk pada bahagian mana yang perlu ditambah baik dan nyatakan sebabnya.

Mari tonton video robot yang berjaya mengelak selipar pada lokasi pertama dan menjatuhkan selipar pada lokasi kedua.


⭐ Jika anda telah berjaya menjatuhkan selipar, tahniah diucapkan !!!!!

4. Merenung

👀 Tenung : Cuba renungkan bagaimana Akalbot boleh membuat keputusan sama ada untuk mengelak atau melanggar selipar apabila ada objek dikesan oleh sensor ultrasonik. Keputusan dapat dibuat apabila kita mengarahkan Akalbot untuk bertindak berdasarkan peraturan iaitu: JIKA jarak antara objek dan robot kurang daripada 30 cm, maka robot akan berhenti.

collapse-image

👀 Tenung : Cuba renungkan bagaimana AkalBOT boleh mengesan dan mengelak objek menggunakan sensor ultrasonik? Sebenarnya anda boleh menukar jarak antara objek dengan pengesan dengan menukar nilai dalam pernyataan if ini:

if (DM < 60 && DM> 30)

Lihat bagaimana nilai DM ini perolehi daripada fungsi berikut:

DM = checkdistance();

Library Code
Pemboleh Ubah const int TriggerPin = 2;
const int EchoPin = 4;
long DM = 0;
void setup () //setup untuk Ultrasonik
pinMode(TriggerPin, OUTPUT);
pinMode(EchoPin, INPUT);
void loop () DM = checkdistance();
if (DM < 60 && DM> 30) {
Serial.println("JAGA!");
Serial.println(DM);
} else {
Serial.println("Misi mencari lokasi diteruskan");
Serial.println(DM);
}
Fungsi float checkdistance() {
digitalWrite(2, LOW);
delayMicroseconds(2);
digitalWrite(2, HIGH);
delayMicroseconds(10);
digitalWrite(2, LOW);
float distance = pulseIn(4, HIGH) / 58.00;
delay(10);
return distance;
}

👀 Tenung : Bagaimana pula jika AkalBOT perlu mengelak objek ketika sedang bergerak untuk menuju selipar menggunakan sensor lain iaitu infrared sensor (IR)? Apakah perbezaan IR sensor ini dengan ulrasonik sensor?



FAKULTI TEKNOLOGI DAN SAINS MAKLUMAT

Faculty of Information Science & Technology, Universiti Kebangsaan Malaysia, 43600 Bangi Selangor, MALAYSIA


Dr. Nazatul Aini Abd Majid
Project Researcher
E-mel: nazatulaini@ukm.edu.my
Research Office, Level 2, Block H:
+6 03 8921 6089 / 6758
+6 03 8921 6094

Facebook Instagram Youtube


© , FTSM UKM