ควบคุม#
การแนะนำ#
บล็อกควบคุมใน VEXcode IQ (รุ่นที่ 2) ทำหน้าที่จัดการการไหลของโปรเจ็กต์โดยการจัดการลูป เงื่อนไข และการหน่วงเวลาการทำงานของบล็อกต่างๆ
ลูป คือกระบวนการที่คอมพิวเตอร์ทำซ้ำขั้นตอนเดิมหรือกลุ่มขั้นตอนเดิมไปเรื่อยๆ จนกว่าจะได้รับคำสั่งให้หยุด เงื่อนไข คือกฎที่คอมพิวเตอร์ตรวจสอบเพื่อตัดสินใจว่าจะทำอะไรต่อไป ตัวอย่างเช่น หุ่นยนต์สามารถเคลื่อนที่ไปข้างหน้าได้หากเซ็นเซอร์ตรวจจับวัตถุได้
ด้านล่างนี้คือรายการบล็อกที่มีให้เลือก:
wait – หยุดการทำงานของบล็อกชั่วคราวตามระยะเวลาที่กำหนด
รอจนกว่า – หยุดการทำงานของบล็อกชั่วคราว จนกว่าจะตรงตามเงื่อนไขที่กำหนด
ทำซ้ำ – ทำซ้ำชุดบล็อกตามจำนวนครั้งที่กำหนด
ตลอดไป – ทำซ้ำชุดบล็อกไปเรื่อยๆ อย่างไม่มีที่สิ้นสุด
ทำซ้ำจนกว่า – ทำซ้ำชุดบล็อกจนกว่าจะตรงตามเงื่อนไข
while – ทำซ้ำชุดบล็อกตราบใดที่เงื่อนไขยังคงเป็นจริง
if – รันชุดบล็อกหากเงื่อนไขเป็นจริง
if / else – รันชุดบล็อกหนึ่งหากเงื่อนไขเป็นจริง มิฉะนั้นจะรันอีกชุดหนึ่ง
if / else if / else – เรียกใช้ชุดบล็อกที่แตกต่างกันขึ้นอยู่กับเงื่อนไขหลายประการ
break – ออกจากลูป repeat, forever, repeat until หรือ while ทันที
หยุดโครงการ – สิ้นสุดโครงการ
รอ#
บล็อก wait จะหยุดการทำงานของบล็อกอื่นชั่วคราวเป็นระยะเวลาที่กำหนด ก่อนที่จะไปยังบล็อกถัดไป
รอ (1) วินาที
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เวลา |
ระยะเวลาที่ต้องรอ ระบุเป็นจำนวนเต็มบวกหรือทศนิยมในหน่วยวินาที |
ตัวอย่าง
เมื่อเริ่มต้น
[Move forward for one second, then stop.]
ขับ [ไปข้างหน้า v]
รอ (1) วินาที
หยุดขับ
รอจนกว่า#
บล็อกคำสั่ง wait until จะหยุดการทำงานของบล็อกอื่นชั่วคราว จนกว่าจะตรงตามเงื่อนไขที่กำหนด ก่อนที่จะไปยังบล็อกถัดไป
รอจนกว่า <>
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เงื่อนไข |
เงื่อนไขที่ต้องปฏิบัติตามก่อนที่จะดำเนินการไปยังส่วนถัดไป |
ตัวอย่าง
เมื่อเริ่มต้น
[Move forward until a button is pressed, then stop.]
ขับ [ไปข้างหน้า v]
รอจนกว่า <Brain [ตรวจสอบ v] ถูกกด?>
หยุดขับ
ทำซ้ำ#
บล็อก repeat C จะเรียกใช้บล็อกภายในซ้ำตามจำนวนครั้งที่กำหนดไว้
ทำซ้ำ [10]
fine
พารามิเตอร์ |
คำอธิบาย |
|---|---|
ครั้ง |
ตัวเลขจำนวนเต็มที่กำหนดจำนวนครั้งที่บล็อก ทำซ้ำ จะทำงาน |
ตัวอย่าง
เมื่อเริ่มต้น
[Move in a square path.]
ทำซ้ำ [4]
ขับ [ไปข้างหน้า v] เป็น [150] [มม. v] ▶
เลี้ยว [ขวา v] เป็น [90] องศา ▶
fine
ตลอดไป#
บล็อก C ตลอดกาล จะรันบล็อกภายในซ้ำแล้วซ้ำเล่าโดยไม่หยุด
ทำตลอดไป
fine
พารามิเตอร์ |
คำอธิบาย |
|---|---|
บล็อกนี้ไม่มีพารามิเตอร์ |
ตัวอย่าง
เมื่อเริ่มต้น
[Move in a square path forever.]
ทำตลอดไป
ขับ [ไปข้างหน้า v] เป็น [150] [มม. v] ▶
เลี้ยว [ขวา v] เป็น [90] องศา ▶
fine
ทำซ้ำจนกระทั่ง#
บล็อก repeat until C จะรันบล็อกภายในซ้ำๆ ตราบใดที่เงื่อนไขที่กำหนดไม่เป็นจริง
ทำซ้ำจนกว่า <>
fine
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เงื่อนไข |
นิพจน์หรือตัวแปรที่จะถูกตรวจสอบก่อนเริ่มลูปแต่ละครั้ง หากเป็น เท็จ บล็อกจะทำงานซ้ำต่อไป หากเป็น จริง ลูปจะหยุดลง |
ตัวอย่าง
เมื่อเริ่มต้น
[Play a sound until a button is pressed.]
ทำซ้ำจนกว่า <Brain [ตรวจสอบ v] ถูกกด?>
เล่นเสียง [ไซเรน v]
รอ (0.5) วินาที
fine
รอ (0.5) วินาที
เล่นเสียง [ปิดเครื่อง v]
ในขณะที่#
บล็อก while ในภาษา C จะเรียกใช้บล็อกภายในซ้ำ ๆ ตราบเท่าที่เงื่อนไขที่กำหนดไว้เป็นจริง
ในขณะที่ <>
fine
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เงื่อนไข |
นิพจน์หรือตัวแปรที่จะถูกตรวจสอบก่อนเริ่มลูปแต่ละครั้ง หากเป็น จริง บล็อกจะทำงานซ้ำต่อไป หากเป็น เท็จ ลูปจะหยุดลง |
ตัวอย่าง
เมื่อเริ่มต้น
[Play an alarm while the robot is moving.]
ขับ [ไปข้างหน้า v] เป็น [300] [มม. v] ◀ และไม่รอ
ในขณะที่ <กำลังขับอยู่?>
เล่นเสียง [สัญญาณเตือน v]
รอ (0.3) วินาที
fine
ถ้า#
บล็อก if C จะเรียกใช้บล็อกภายในหากเงื่อนไขเป็น จริง
ถ้า <> แล้ว
fine
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เงื่อนไข |
นิพจน์หรือตัวแปรที่จะถูกตรวจสอบเมื่อคำสั่งทำงาน หากเป็น จริง บล็อกภายในบล็อก if จะทำงาน หากเป็น เท็จ บล็อกเหล่านั้นจะถูกข้ามไป |
ตัวอย่าง
เมื่อเริ่มต้น
[Turn in a circle if a button is pressed.]
ทำตลอดไป
ถ้า <Brain [ตรวจสอบ v] ถูกกด?> แล้ว
เลี้ยว [ขวา v] เป็น (360) องศา ▶
fine
หยุดขับ
fine
ถ้า / มิฉะนั้น#
บล็อก C if / else จะกำหนดว่าชุดบล็อกใดจะทำงาน โดยขึ้นอยู่กับว่าเงื่อนไขเป็น จริง หรือ เท็จ
ถ้า <> แล้ว
มิฉะนั้น
fine
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เงื่อนไข |
นิพจน์หรือตัวแปรที่ใช้ตรวจสอบเมื่อคำสั่งทำงาน ถ้าเป็น จริง บล็อกภายในบล็อก if จะทำงาน ถ้าเป็น เท็จ บล็อกภายในบล็อก else จะทำงาน |
ตัวอย่าง
เมื่อเริ่มต้น
[Repeatedly play a sound if a button is not pressed.]
ทำตลอดไป
ถ้า <Brain [ตรวจสอบ v] ถูกกด?> แล้ว
เลี้ยว [ขวา v] เป็น (360) องศา ▶
มิฉะนั้น
เล่นเสียง [ไซเรน v]
รอ (0.5) วินาที
fine
ถ้า / มิฉะนั้น ถ้า / มิฉะนั้น#
บล็อก C ที่ขยายได้ if / else if / else จะเลือกชุดบล็อกที่จะทำงานโดยพิจารณาจากเงื่อนไข:
คำสั่ง if จะรันบล็อกโค้ดก็ต่อเมื่อเงื่อนไขเป็น จริง
else if จะตรวจสอบเงื่อนไขเพิ่มเติมก็ต่อเมื่อเงื่อนไขก่อนหน้าทั้งหมดประเมินค่าเป็น เท็จ เท่านั้น สามารถใช้คำสั่ง else if หลายคำสั่งได้
คำสั่ง else จะรันบล็อกโค้ดก็ต่อเมื่อไม่มีเงื่อนไขก่อนหน้าใดประเมินค่าเป็น จริง
ถ้า <> แล้ว
มิฉะนั้นถ้า <> แล้ว
มิฉะนั้น
fine
พารามิเตอร์ |
คำอธิบาย |
|---|---|
เงื่อนไข |
นิพจน์หรือตัวแปรที่จะถูกตรวจสอบเมื่อคำสั่งทำงาน เงื่อนไขแรกที่เป็น จริง จะเรียกใช้บล็อกชุดนั้น หากเงื่อนไขทั้งหมดเป็น เท็จ บล็อกภายในบล็อก else จะทำงาน |
ตัวอย่าง
เมื่อเริ่มต้น
[Turn right if the right button on the brain is pressed, left if the left is pressed, and stop if anything else is pressed.]
ทำตลอดไป
ถ้า <Brain [Right v] ถูกกด?> แล้ว
เลี้ยว [ขวา v] เป็น (90) องศา ▶
มิฉะนั้นถ้า <Brain [Left v] ถูกกด?> แล้ว
เลี้ยว [ซ้าย v] เป็น (90) องศา ▶
มิฉะนั้น
หยุดขับ
fine
fine
หยุดพัก#
บล็อก break จะออกจากลูปทันที บล็อกนี้สามารถใช้ภายในบล็อก repeat, repeat until, while และ forever ได้ break มีประโยชน์เมื่อลูปจำเป็นต้องหยุดก่อนกำหนดเนื่องจากเหตุการณ์บางอย่างเกิดขึ้นระหว่างโปรเจกต์ เช่น การกดปุ่มหรือเซ็นเซอร์ตรวจจับวัตถุ
หยุด
พารามิเตอร์ |
คำอธิบาย |
|---|---|
บล็อกนี้ไม่มีพารามิเตอร์ |
ตัวอย่าง
เมื่อเริ่มต้น
[Stop turning after a button is pressed.]
ทำตลอดไป
เลี้ยว [ขวา v]
ถ้า <Brain [ตรวจสอบ v] ถูกกด?> แล้ว
หยุด
fine
fine
หยุดขับ
เล่นเสียง [ปิดเครื่อง v]
โครงการหยุด#
บล็อก stop project ใช้สำหรับยุติโปรเจ็กต์ที่กำลังทำงานอยู่
หยุดโปรเจกต์
พารามิเตอร์ |
คำอธิบาย |
|---|---|
บล็อกนี้ไม่มีพารามิเตอร์ |
ตัวอย่าง
เมื่อเริ่มต้น
[Stop the project entirely after a button is pressed.]
ทำตลอดไป
เลี้ยว [ขวา v]
ถ้า <Brain [ตรวจสอบ v] ถูกกด?> แล้ว
หยุดโปรเจกต์
fine
fine
เล่นเสียง [ปิดเครื่อง v]