Seorang kanak-kanak sedang cuba membaling selipar ke arah susunan selipar untuk menjatuhkannya. Ini merupakan asas dalam permainan tradisional tuju selipar iaitu seorang pemain pada jarak tertentu perlu membaling satu selipar ke arah satu susunan selipar untuk meruntuhkannya. Tentunya permainan ini boleh diubahsuai dengan menjadikan AkalBOT sebagai pemusnah susunan selipar.
Namun, bagaimana AkalBOT dapat diprogramkan supaya dapat menjatuhkan selipar. Ini bermaksud satu atur cara perlu dimuat naik ke AkalBOT untuk bergerak ke arah lokasi selipar. Jarak di antara selipar (lokasi B) dengan tempat AkalBOT mula bergerak (lokasi A) adalah lebih 60 cm. Namun, pergerakan AkalBOT hanya terbatas dengan 3 pergerakan berbeza iaitu pergerakan terus, belok kanan dan berhenti. Bagaimana menyelesaikan masalah ini?
Mari kita analisis masalah ini menggunakan teknik pemikiran komputasional iaitu penguraian.
Masalah utama dalam misi tuju selipar ialah bagaimana untuk menyusun pergerakan AkalBOT supaya berjaya meruntuhkan selipar dengan jarak 60 cm daripada ianya bermula dan terhad kepada tiga jenis pergerakan sahaja. Oleh itu, masalah ini boleh dihuraikan mengikut urutan pergerakan.
Berapakah huraian pergerakan yang terhasil?
Jawapan ▼
1) Gerak terus dan berhenti iaitu sejauh mana robot perlu bergerak terus daripada tempat bermula sehingga sebelum berhenti untuk belok ke kanan. | |
2) Belok kanan berdasarkan darjah pusingan ke kanan dan berhenti. | |
3) Gerak terus dan berhenti iaitu selepas belok ke kanan, sejauh mana robot bergerak terus sebelum berhenti pada lokasi yang dapat meruntuhkan susunan selipar. |
Berdasarkan huraian pergerakan, langkah demi langkah untuk menyelesaikan masalah iaitu algoritma perlu dikenal pasti. Untuk menggambarkan algoritma menggunakan bentuk tertentu, carta alir boleh digunakan. Carta alir terdiri daripada bentuk tertentu untuk mengambarkan fungsinya. Rujuk CARTA ALIR untuk belajar mengenai bentuk dalam carta alir. Contohnya bentuk segi empat tepat adalah menunjukkan aksi.
Apakah langkah yang perlu untuk melengkapkan carta alir ini?
Jawapan ▼
Algoritma dalam bentuk carta alir yang dibangunkan dalam fasa reka bentuk merupakan asas untuk fasa pengekodan dengan menggunakan bahasa pengaturcaraan yang sesuai. Bahasa yang digunakan untuk implementasi algoritma ialah C++. Bahasa ini digunakan untuk memberi arahan kepada AkalBOT untuk bergerak bagi menjatuhkan selipar. Arahan ini dipanggil atur cara. AkalBOT tidak boleh berfikir sendiri, kita yang mengatur pergerakan AkalBOT menggunakan atur cara. Mari kita lakukan pengekodan iaitu membangunkan kod atur cara menggunakan AkalBLOK.
Dengan menggunakan AkalBLOK, susun blok untuk mengerakkan AkalBOT supaya AkalBOT bergerak menuju ke selipar berdasarkan urutan carta alir. Blok yang terlibat adalah:
Selepas mengabungkan semua blok, perhatikan kod yang membentuk atur cara lengkap di sebelah kanan editor.
Mari uji bagaimana atur cara yang dibangunkan dapat mengerakkan AkalBOT untuk menjatuhkan selipar.
1) Susun padang permainan supaya sesuai dengan laluan AkalBOT. | |
2) Kemudian, susun tiga selipar secara menegak pada lokasi yang sesuai seperti lokasi B. |
Dengan menggunakan Editor Arduino, kompil atur cara yang dibangunkan. Rujuk bahagian Kompil Aturcara untuk langkah menguji atur cara. Kemudian, letak AkalBot pada satu lokasi yang anda rasakan sesuai dengan kod anda pada padang permainan seperti lokasi A. Larikan AkalBOT dengan menekan butang On bermula daripada lokasi tersebut.
video 2
Jika anda tidak berjaya menjatuhkan selipar menggunakan AkalBOT, ubahsuai nilai pada blok delay dan uji semula sehingga berjaya.
video 3
Jika anda telah berjaya menjatuhkan selipar, tahniah diucapkan. Mari teroka lokasi baharu untuk AkalBOT bermula selain daripada lokasi A. Tanpa perlu mengubah atur cara, ubah 4 atau 5 papan permainan supaya lokasi A untuk AkalBot berubah tetapi lokasi selipar tetap sama. Semoga berjaya!
Cuba renungkan bagaimana AkalBOT boleh bergerak menggunakan atur cara yang anda bangunkan. Mengapa ada ketika AkalBOT tidak bergerak seperti yang anda mahukan? |
void loop() { terus(); delay(2300); berhenti(); belokkanan(); delay(400); berhenti(); terus(); delay(800); berhenti(); exit(0); } |
Semuanya bergantung pada arahan yang anda berikan melalui atur cara. Contohnya arahan terus () yang membolehkan komponen servo motor pada tayar bergerak ke hadapan pada jarak yang selaras dengan nilai delay. Jom lihat apa yang ada dalam arahan terus: void terus() { ServoL.write(0); ServoR.write(180); } Ternyata arahan ini mengawal bagaimana servo motor kanan dan kiri bergerak. |
|
Pengecaman corak bagaimana AkalBOT bergerak membolehkan anda memilih lokasi lain untuk menjatuhkan selipar. Bagaimana jika ada lebih daripada satu lokasi selipar pada satu masa? |