Lompat ke isi utama

Pelajaran 1: Apa itu Algoritma?

Dalam Pelajaran ini, Anda akan mempelajari apa itu algoritma dan bagaimana penggunaan algoritma dalam VEXcode VR Python memungkinkan Anda membuat proyek dengan perilaku yang lebih beragam. Proyek algoritmik memberi instruksi pada Robot VR untuk merespons lingkungannya, yang diperlukan untuk menyelesaikan Tantangan Dynamic Castle Crasher.

Hasil belajar

  • Mengidentifikasi bahwa algoritma terdiri dari urutan, pemilihan, dan iterasi (perulangan).
  • Mengidentifikasi bahwa algoritma adalah rangkaian instruksi yang tepat, yang diimplementasikan menggunakan bahasa pemrograman, untuk proses yang akan dilakukan oleh Robot VR.

Algoritma

Algoritma adalah rangkaian instruksi yang tepat, yang diimplementasikan menggunakan bahasa pemrograman, seperti VEXcode VR Python, untuk proses yang akan dijalankan oleh Robot VR.

Elemen dasar suatu algoritma adalah urutan, pemilihan, dan iterasi.

  • Urutan - urutan di mana perilaku dan perintah digabungkan dalam suatu proyek untuk menghasilkan hasil yang diinginkan.     
  • Pilihan - penggunaan pernyataan kondisional dalam suatu proyek. Pernyataan kondisional, seperti jikaatau jika tidakmemengaruhi alur proyek.
  • Iterasi - algoritma sering menggunakan pengulangan untuk mengeksekusi langkah sejumlah kali tertentu, atau hingga kondisi tertentu terpenuhi. Hal ini juga dikenal sebagai "looping." Iterasi dapat mengubah alur proyek dengan mengulang suatu perilaku sejumlah waktu tertentu atau hingga suatu kondisi terpenuhi.  

Proyek contoh dari tantangan Unit 8 ini adalah contoh suatu algoritma. Ini mencakup kombinasi loop, data sensor, dan perintah yang disatukan dalam suatu urutan untuk memecahkan Tantangan Penggerak Disk.

def main():
	untuk nilai dalam rentang(3):
		
		untuk nilai dalam rentang(3):
			# 1. Berkendara ke disk menggunakan Down Eye Sensor
			saat tidak down_eye.near_object():
				drivetrain.drive(FORWARD)
				wait(5, MSEC)
			drivetrain.stop()
			
			# 2. Ambil disk
			magnet.beri energi(BOOST)
			
			# 3. Berkendara ke tujuan menggunakan Sensor Jarak
			drivetrain.turn_to_heading(180, DEGREES)
			while front_distance.get_distance(MM) > 200:
				drivetrain.drive(FORWARD)
				wait(5, MSEC)
			drivetrain.stop()
			
			# 4. Jatuhkan cakram pada sasaran
			magnet.energize(DROP)
			drivetrain.drive_for(REVERSE, 100, MM)
			
			# 5. Putar untuk menghadap disk berikutnya
			drivetrain.turn_to_heading(0, DEGREES)
			wait(5, MSEC)
			
		# 6. Berbalik dan melaju ke sasaran berikutnya
		drivetrain.turn_to_heading(90, DEGREES)
		drivetrain.drive_for(FORWARD, 800, MM)
		
		# 7. Beralih ke disk
		drivetrain.turn_to_heading(0, DEGREES)
		
	wait(5, MSEC)

Urutan

Cara perintah diurutkan dan digabungkan menentukan perilaku Robot VR. Dalam contoh ini, setiap rangkaian perilaku yang diperlukan untuk menggerakkan cakram dijalankan tiga kali, lalu Robot VR berpindah ke rangkaian cakram berikutnya dan mengulangi perilaku tersebut, hingga semua cakram dikembalikan ke sasaran. Diagram alir yang menunjukkan urutan pengumpulan cakram robot. Di sebelah kiri, kode menampilkan putaran utama yang berulang tiga kali. Panah siklus merah di sebelah kanan menunjukkan putaran berkelanjutan yang berjalan hingga kondisi sensor terpenuhi (seperti menemukan atau mencengkeram cakram), sementara panah hijau menunjukkan transisi antara mengumpulkan cakram, memindahkannya ke sasaran, melepaskannya, dan memposisikan ulang untuk siklus berikutnya.

Pilihan

Proyek ini juga mencakup pemilihan yang menentukan bagian-bagian proyek yang dijalankan berdasarkan kondisi sensor. Pertama, Sensor Mata Bawah digunakan untuk menentukan saat Robot VR berada di dekat cakram, sehingga cakram tersebut dapat diambil. Kemudian, Sensor Jarak digunakan untuk menentukan saat Robot VR telah melewati sasaran, sehingga cakram dapat diturunkan.  Cuplikan kode dari Unit 8 menyertakan dua kondisi yang disorot yang mengendalikan pergerakan robot berdasarkan pembacaan sensor. Kondisi yang disorot pertama, meski bukan down_eye.near_object(), memerintahkan robot untuk melaju maju hingga Sensor Down Eye mendeteksi objek di dekatnya, yang memungkinkannya mendekati cakram sebelum berhenti. Kondisi kedua yang disorot, sementara front_distance.get_distance(MM) > 200, mengarahkan robot untuk melaju maju hingga berada dalam jarak 200 milimeter dari sasaran, menggunakan sensor jarak depan untuk pengukuran kedekatan. Kondisi while ini menciptakan loop yang membuat robot berhenti hanya ketika setiap kondisi sensor tertentu terpenuhi.

Pada loopwhilepertama, pemilihan perintah mana yang akan dijalankan didasarkan pada nilai sensor yang dilaporkan oleh Down Eye Sensor.

  • Jika tidak ada objek yang terdeteksi, Robot VR akan melaju maju.
  • Saat suatu objek terdeteksi, maka Robot VR akan berhenti.

Pada loopwhile kedua, pemilihan perintah mana yang akan dijalankan didasarkan pada nilai sensor yang dilaporkan oleh Sensor Jarak.

  • Sementara jarak yang dilaporkan lebih besar dari 200 milimeter (mm), Robot VR akan melaju ke depan.
  • Sementara jarak yang dilaporkan kurang dari 50 milimeter (mm), Robot VR akan berhenti melaju dan berpindah ke bagian proyek berikutnya untuk memberi energi pada Elektromagnet.

Perulangan

Proyek ini menggunakan iterasi, atau “loop”, untuk mengulang tindakan dan berulang kali memeriksa nilai sensor yang dilaporkan. Proyek ini berisi loop bersarang – satu loop agar Robot VR dapat mengumpulkan ketiga cakram dengan satu warna; dan loop kedua untuk mengulang proses tersebut guna mengumpulkan semua cakram di Playground. Kode tersebut menggunakan dua loop bersarang untuk mengendalikan proses pengumpulan disk robot. Lingkaran luar, diberi label Lingkaran untuk mengumpulkan cakram setiap warna, berulang melalui setiap warna cakram. Di dalamnya, loop bagian dalam, berlabel Loop untuk mengumpulkan 3 cakram dengan satu warna, diulang tiga kali untuk mengumpulkan dan menempatkan tiga cakram dengan warna saat ini. Pengaturan ini memastikan robot mengumpulkan tiga cakram dari setiap warna sebelum berpindah ke warna berikutnya, dengan setiap iterasi putaran berfokus pada pengumpulan dan penempatan yang sistematis.

Algoritma ini dirancang untuk mengumpulkan dan mengembalikan tiga cakram, tiga kali, untuk menyelesaikan Tantangan Pemindah Cakram. Logika yang sama yang diterapkan untuk mengumpulkan dan memindahkan cakram berulang kali menggunakan urutan, pemilihan, dan iterasi juga dapat diterapkan pada tantangan lain, seperti Tantangan Dynamic Castle Crasher.

Pertanyaan

Silakan pilih tautan di bawah untuk mengakses kuis pelajaran.

Google Doc / .docx / .pdf