บล็อกเฉพาะสำหรับหุ่นยนต์#
การแนะนำ#
หุ่นยนต์ฮีโร่ Flop ประกอบด้วยมอเตอร์ดูดอากาศ มอเตอร์แขน และเซ็นเซอร์ตรวจจับภาพ IQ AI
บล็อก VEXcode VR มาตรฐานทั้งหมดสามารถใช้งานได้ใน IQ 26-27 Level Up Playground
ด้านล่างนี้คือรายการบล็อกเฉพาะสำหรับหุ่นยนต์ที่มีให้เลือกใช้งานทั้งหมด:
การเคลื่อนไหว – ควบคุมและติดตามมอเตอร์ของหุ่นยนต์
การกระทำ
หมุนมอเตอร์ – หมุนมอเตอร์ไปในทิศทางใดทิศทางหนึ่งตลอดไป
หมุนมอเตอร์ตาม – หมุนมอเตอร์ตามระยะทางที่กำหนดเป็นองศาหรือรอบ
หมุนมอเตอร์ไปยังตำแหน่ง – หมุนมอเตอร์ไปยังตำแหน่งที่กำหนด
หยุดมอเตอร์ – หยุดมอเตอร์ไม่ให้หมุน
การตั้งค่า
ตั้งค่าความเร็วของมอเตอร์ – บอกมอเตอร์ให้หมุนเร็วแค่ไหน
ตั้งค่าหมดเวลาของมอเตอร์ – ตั้งค่าระยะเวลาที่มอเตอร์จะพยายามทำการเคลื่อนไหวให้เสร็จสิ้น
ตำแหน่ง
ตำแหน่งมอเตอร์ – รายงานตำแหน่งปัจจุบันของมอเตอร์
ตั้งตำแหน่งมอเตอร์ – เปลี่ยนตำแหน่งปัจจุบันของมอเตอร์เป็นค่าใหม่
ค่านิยม
มอเตอร์หยุดทำงานแล้ว – รายงานว่ามอเตอร์หยุดเคลื่อนที่แล้วหรือไม่
มอเตอร์กำลังหมุน – รายงานว่ามอเตอร์กำลังหมุนอยู่หรือไม่
ความเร็วของมอเตอร์ – รายงานความเร็วในการหมุนของมอเตอร์เป็นเปอร์เซ็นต์ตั้งแต่ -100% ถึง 100%
AI Vision - จับภาพและวิเคราะห์วัตถุโดยใช้เซ็นเซอร์ IQ AI Vision
การกระทำ
รับข้อมูลวัตถุ - บันทึกข้อมูลสำหรับลายเซ็นเฉพาะ เช่น การจำแนกประเภท AI ที่ตรวจพบ
การตั้งค่า
set object item - เลือกวัตถุเฉพาะจากรายการ
ค่านิยม
วัตถุมีอยู่ - ส่งคืนว่าตรวจพบการจำแนกประเภทหรือไม่
object is - คืนค่าว่าตรวจพบการจำแนกประเภทที่ระบุหรือไม่
object is AprilTag - ตรวจสอบว่าวัตถุที่ตรวจพบเป็น AprilTag ที่ตรงกับ ID ที่ระบุหรือไม่
จำนวนวัตถุ - ส่งคืนจำนวนวัตถุที่ตรวจพบ
คุณสมบัติของวัตถุ - ส่งคืนค่าความกว้าง ความสูง จุดศูนย์กลางแกน X จุดศูนย์กลางแกน Y จุดกำเนิดแกน X หรือจุดกำเนิดแกน Y
ตัวอย่างในหน้านี้ใช้ตำแหน่งเริ่มต้นเริ่มต้นของ Playground ตามค่าเริ่มต้น
การเคลื่อนไหว#
Flop ใช้มอเตอร์ดูดเพื่อรวบรวมและดีดชิ้นส่วนเกมออกมา ส่วนมอเตอร์แขนจะยกและลดแขนลง
มอเตอร์แต่ละตัวมีตัวเลือกทิศทางการเคลื่อนที่ของตัวเอง ชื่อทิศทางจะอธิบายว่ามอเตอร์นั้นเคลื่อนที่อย่างไรใน Flop
การกระทำ#
มอเตอร์หมุน#
บล็อก มอเตอร์หมุน จะหมุนมอเตอร์ไปในทิศทางใดทิศทางหนึ่งจากสองทิศทางอย่างไม่มีที่สิ้นสุด มอเตอร์จะหมุนต่อไปจนกว่าจะได้รับคำสั่งอื่น เช่น หมุนไปในทิศทางอื่นหรือหยุดหมุน
หมุน [IntakeMotor v] [การบริโภค v]
พารามิเตอร์ |
คำอธิบาย |
|---|---|
มอเตอร์ |
มอเตอร์ที่จะหมุน: มอเตอร์ดูดอากาศ หรือ มอเตอร์แขน |
ทิศทาง |
ทิศทางการหมุนของมอเตอร์:
|
ตัวอย่าง
เมื่อเริ่มต้น
[Score a Bean Bag in a Blue Goal.]
เลี้ยว [ซ้าย v] เป็น (90) องศา ▶
ขับ [ไปข้างหน้า v] เป็น (35) [นิ้ว v] ▶
เลี้ยว [ขวา v] เป็น (90) องศา ▶
หมุน [ArmMotor v] [ขึ้น v] เป็น (1) [รอบ v] ▶
ขับ [ไปข้างหน้า v] เป็น (40) [นิ้ว v] ▶
หมุน [IntakeMotor v] [ช่องระบายออก v]
มอเตอร์หมุนสำหรับ#
บล็อก หมุนมอเตอร์สำหรับ ในชุดบล็อกจะหมุนมอเตอร์เป็นระยะทางที่กำหนด การหมุนนั้นสัมพันธ์กับตำแหน่งปัจจุบันของมอเตอร์ โครงการจะรอจนกว่ามอเตอร์จะหมุนเสร็จก่อนที่บล็อกถัดไปในชุดจะเริ่มทำงาน
หมุน [ArmMotor v] [ขึ้น v] เป็น (500) [องศา v] ▶
พารามิเตอร์ |
คำอธิบาย |
|---|---|
มอเตอร์ |
มอเตอร์ที่จะหมุน: มอเตอร์ดูดอากาศ หรือ มอเตอร์แขน |
ทิศทาง |
ทิศทางการหมุนของมอเตอร์:
|
ระยะทาง |
ระยะทางที่มอเตอร์หมุน องศา ใช้จำนวนเต็ม รอบ สามารถใช้ได้ทั้งจำนวนเต็มหรือทศนิยม |
หน่วย |
หน่วยวัดระยะทาง: องศา หรือ รอบ |
และอย่ารอช้า |
เลือกไอคอนลูกศร ( ▶ ) เพื่อขยายบล็อกให้แสดงข้อความว่า และไม่ต้องรอ เพื่อให้บล็อกถัดไปในลำดับทำงานทันที |
ตัวอย่าง
เมื่อเริ่มต้น
[Score a Bean Bag in a Blue Goal.]
เลี้ยว [ซ้าย v] เป็น (90) องศา ▶
ขับ [ไปข้างหน้า v] เป็น (35) [นิ้ว v] ▶
เลี้ยว [ขวา v] เป็น (90) องศา ▶
หมุน [ArmMotor v] [ขึ้น v] เป็น (1) [รอบ v] ▶
ขับ [ไปข้างหน้า v] เป็น (40) [นิ้ว v] ▶
หมุน [IntakeMotor v] [ช่องระบายออก v]
หมุนมอเตอร์ไปยังตำแหน่งที่กำหนด#
บล็อก หมุนมอเตอร์ไปยังตำแหน่งที่กำหนด จะหมุนมอเตอร์ไปยังตำแหน่งที่ระบุ
ตำแหน่งของมอเตอร์คือระยะที่มอเตอร์หมุนไป โดยวัดเป็น องศา หรือ รอบ หนึ่ง รอบ เท่ากับ 360 องศา ในตอนเริ่มต้นโครงการ ตำแหน่งของมอเตอร์จะถูกตั้งค่าเป็น 0 องศา นอกจากนี้ยังสามารถตั้งค่าตำแหน่งของมอเตอร์ได้โดยใช้บล็อก set motor position
ค่าตำแหน่งเป็นค่าสัมบูรณ์ ซึ่งหมายความว่าทิศทางการหมุนขึ้นอยู่กับตำแหน่งปัจจุบันของมอเตอร์
ตัวอย่างเช่น หากมอเตอร์เริ่มหมุนที่ 0 องศาและหมุนไปที่ตำแหน่ง 720 องศา มันจะหมุนไปข้างหน้าสองรอบ หากจากนั้นมันหมุนไปที่ตำแหน่ง 360 องศา มันจะหมุนถอยหลังหนึ่งรอบ เพราะ 360 น้อยกว่า 720
หมุน [ArmMotor v] ไปตำแหน่ง (500) [องศา v] ▶
พารามิเตอร์ |
คำอธิบาย |
|---|---|
มอเตอร์ |
มอเตอร์ที่จะหมุน: มอเตอร์ดูดอากาศ หรือ มอเตอร์แขน |
ตำแหน่ง |
ค่าตำแหน่งที่มอเตอร์จะหมุนไปถึง องศา ใช้จำนวนเต็ม รอบ สามารถใช้ได้ทั้งจำนวนเต็มหรือทศนิยม |
หน่วย |
หน่วยวัดตำแหน่ง: องศา หรือ รอบ |
และอย่ารอช้า |
เลือกไอคอนลูกศร ( ▶ ) เพื่อขยายบล็อกให้แสดงข้อความว่า และไม่ต้องรอ เพื่อให้บล็อกถัดไปในลำดับทำงานทันที |
ตัวอย่าง
เมื่อเริ่มต้น
[Score a Bean Bag in a Blue Goal.]
เลี้ยว [ซ้าย v] เป็น (90) องศา ▶
ขับ [ไปข้างหน้า v] เป็น (35) [นิ้ว v] ▶
เลี้ยว [ขวา v] เป็น (90) องศา ▶
หมุน [ArmMotor v] ไปตำแหน่ง (1) [รอบ v] ▶
ขับ [ไปข้างหน้า v] เป็น (40) [นิ้ว v] ▶
หมุน [IntakeMotor v] [ช่องระบายออก v]
หยุดมอเตอร์#
บล็อกตัวหยุดมอเตอร์จะหยุดมอเตอร์ที่เลือกไว้
หยุด [IntakeMotor v]
พารามิเตอร์ |
คำอธิบาย |
|---|---|
มอเตอร์ |
มอเตอร์ที่ต้องการหยุด: IntakeMotor หรือ ArmMotor |
ตัวอย่าง
เมื่อเริ่มต้น
[Score a Bean Bag in a Blue Goal.]
เลี้ยว [ซ้าย v] เป็น (90) องศา ▶
ขับ [ไปข้างหน้า v] เป็น (35) [นิ้ว v] ▶
เลี้ยว [ขวา v] เป็น (90) องศา ▶
หมุน [ArmMotor v] [ขึ้น v] เป็น (1) [รอบ v] ▶
ขับ [ไปข้างหน้า v] เป็น (40) [นิ้ว v] ▶
หมุน [IntakeMotor v] [ช่องระบายออก v]
รอ (1) วินาที
หยุด [IntakeMotor v]
การตั้งค่า#
ตั้งค่าความเร็วของมอเตอร์#
บล็อก ตั้งค่าความเร็วของมอเตอร์ จะบอกมอเตอร์ว่าควรหมุนเร็วแค่ไหน เปอร์เซ็นต์ที่สูงขึ้นจะทำให้มอเตอร์หมุนเร็วขึ้น และเปอร์เซ็นต์ที่ต่ำลงจะทำให้มอเตอร์หมุนช้าลง
ทุกโปรเจกต์เริ่มต้นด้วยมอเตอร์แต่ละตัวหมุนด้วยความเร็ว 50% เป็นค่าเริ่มต้น
หมายเหตุ: ความเร็วที่สูงขึ้นจะทำให้มอเตอร์หมุนเร็วขึ้น แต่ความแม่นยำอาจลดลง ความเร็วที่ต่ำลงจะทำให้มอเตอร์หมุนช้าลง แต่ความแม่นยำอาจเพิ่มขึ้น
ตั้งความเร็ว [IntakeMotor v] เป็น [50] [% v]
พารามิเตอร์ |
คำอธิบาย |
|---|---|
มอเตอร์ |
มอเตอร์สำหรับกำหนดความเร็วของ: มอเตอร์ดูดอากาศ หรือ มอเตอร์แขน |
ความเร็ว |
ความเร็วรอบของมอเตอร์ เปอร์เซ็นต์ ใช้ตัวเลขจำนวนเต็มตั้งแต่ 0% ถึง 100% |
หน่วย |
หน่วยความเร็ว: % |
ตัวอย่าง
เมื่อเริ่มต้น
[Score a Bean Bag in a Blue Goal.]
เลี้ยว [ซ้าย v] เป็น (90) องศา ▶
ขับ [ไปข้างหน้า v] เป็น (35) [นิ้ว v] ▶
เลี้ยว [ขวา v] เป็น (90) องศา ▶
หมุน [ArmMotor v] [ขึ้น v] เป็น (1) [รอบ v] ▶
ขับ [ไปข้างหน้า v] เป็น (40) [นิ้ว v] ▶
ตั้งความเร็ว [IntakeMotor v] เป็น [100] [% v]
หมุน [IntakeMotor v] [ช่องระบายออก v]
ตั้งค่ามอเตอร์หมดเวลา#
บล็อก set motor timeout จะกำหนดเวลาที่มอเตอร์จะพยายามทำการเคลื่อนไหวให้เสร็จสิ้น หากมอเตอร์ไม่สามารถทำการเคลื่อนไหวให้เสร็จสิ้นภายในเวลาที่กำหนด มันจะหยุดพยายามและไปยังบล็อกถัดไปในลำดับ เพื่อป้องกันไม่ให้มอเตอร์ติดขัดในการเคลื่อนไหว
ตั้งหมดเวลา [ArmMotor v] เป็น [1] วินาที
พารามิเตอร์ |
คำอธิบาย |
|---|---|
มอเตอร์ |
มอเตอร์สำหรับตั้งค่าหมดเวลา: IntakeMotor หรือ ArmMotor |
เวลา |
จำนวนวินาทีที่มอเตอร์สามารถพยายามทำการเคลื่อนที่ให้เสร็จสิ้นได้ ค่านี้อาจเป็นจำนวนเต็มหรือทศนิยมก็ได้ |
ตัวอย่าง
เมื่อเริ่มต้น
[Score a Bean Bag in a Blue Goal.]
เลี้ยว [ซ้าย v] เป็น (90) องศา ▶
ขับ [ไปข้างหน้า v] เป็น (35) [นิ้ว v] ▶
เลี้ยว [ขวา v] เป็น (90) องศา ▶
ตั้งหมดเวลา [ArmMotor v] เป็น [2] วินาที
หมุน [ArmMotor v] [ขึ้น v] เป็น (1) [รอบ v] ▶
ขับ [ไปข้างหน้า v] เป็น (40) [นิ้ว v] ▶
หมุน [IntakeMotor v] [ช่องระบายออก v]
ตำแหน่ง#
ตำแหน่งมอเตอร์#
ตำแหน่งของมอเตอร์คือระยะการหมุน ซึ่งวัดเป็น องศา หรือ รอบ หนึ่ง รอบ เท่ากับ 360 องศา บล็อกรายงาน ตำแหน่งมอเตอร์ จะรายงานตำแหน่งปัจจุบันของมอเตอร์
ในตอนเริ่มต้นโครงการ ตำแหน่งของมอเตอร์จะถูกตั้งไว้ที่ 0 องศา หากมอเตอร์หมุนไปข้างหน้าครบหนึ่งรอบ ตำแหน่งจะเปลี่ยนเป็น 360 องศา หรือ 1 รอบ หากมอเตอร์หมุนไปในทิศทางตรงกันข้าม ตำแหน่งจะเปลี่ยนเป็นค่าลบ
(ตำแหน่ง [ArmMotor v] ใน [องศา v])
พารามิเตอร์ |
คำอธิบาย |
|---|---|
มอเตอร์ |
มอเตอร์ที่ใช้รายงานตำแหน่งของ: มอเตอร์ดูดอากาศ หรือ มอเตอร์แขน |
หน่วย |
หน่วยที่ใช้รายงานตำแหน่งมอเตอร์เป็น: องศา หรือ รอบ |
ตัวอย่าง
เมื่อเริ่มต้น
[Score a Bean Bag in a Blue Goal.]
เลี้ยว [ซ้าย v] เป็น (90) องศา ▶
ขับ [ไปข้างหน้า v] เป็น (35) [นิ้ว v] ▶
เลี้ยว [ขวา v] เป็น (90) องศา ▶
ในขณะที่ <(ตำแหน่ง [ArmMotor v] ใน [องศา v]) [math_less_than v] [360]>
หมุน [ArmMotor v] [ขึ้น v]
รอ (0.002) วินาที
fine
หยุด [ArmMotor v]
ขับ [ไปข้างหน้า v] เป็น (40) [นิ้ว v] ▶
หมุน [IntakeMotor v] [ช่องระบายออก v]
ตั้งตำแหน่งมอเตอร์#
ตำแหน่งของมอเตอร์คือระยะการหมุน ซึ่งวัดเป็น องศา หรือ รอบ หนึ่ง รอบ เท่ากับ 360 องศา บล็อก ตั้งค่าตำแหน่งมอเตอร์ จะเปลี่ยนตำแหน่งปัจจุบันของมอเตอร์เป็นค่าใหม่
ตัวอย่างเช่น หากมอเตอร์หมุนไปถึง 180 องศา การตั้งตำแหน่งเป็น 0 องศาจะรีเซ็ตตำแหน่งนั้นจาก 180 องศาเป็น 0 องศา จากนั้นมอเตอร์จะสามารถหมุนไปยังตำแหน่งต่างๆ ตามค่าใหม่นั้นได้
ตั้งตำแหน่ง [ArmMotor v] เป็น (0) [องศา v]
พารามิเตอร์ |
คำอธิบาย |
|---|---|
มอเตอร์ |
มอเตอร์สำหรับตั้งตำแหน่งของ: มอเตอร์ดูดอากาศ หรือ มอเตอร์แขน |
ตำแหน่ง |
ค่าตำแหน่งที่จะตั้งค่า องศา ใช้จำนวนเต็ม รอบ สามารถใช้ได้ทั้งจำนวนเต็มหรือทศนิยม |
หน่วย |
หน่วยวัดตำแหน่ง: องศา หรือ รอบ |
ตัวอย่าง
เมื่อเริ่มต้น
[Score a Bean Bag in a Blue Goal.]
เลี้ยว [ซ้าย v] เป็น (90) องศา ▶
ขับ [ไปข้างหน้า v] เป็น (35) [นิ้ว v] ▶
เลี้ยว [ขวา v] เป็น (90) องศา ▶
ตั้งตำแหน่ง [ArmMotor v] เป็น [0] [องศา v]
หมุน [ArmMotor v] [ขึ้น v] เป็น (1) [รอบ v] ▶
ขับ [ไปข้างหน้า v] เป็น (40) [นิ้ว v] ▶
หมุน [IntakeMotor v] [ช่องระบายออก v]
ค่านิยม#
มอเตอร์ทำงานเสร็จแล้ว#
บล็อก Boolean motor is done จะรายงานว่ามอเตอร์เคลื่อนที่เสร็จแล้วหรือไม่ สามารถใช้ข้อมูลนี้เพื่อควบคุมจังหวะเวลาของพฤติกรรมอื่นๆ โดยอิงจากการเคลื่อนที่ของมอเตอร์ได้
จริง — มอเตอร์หยุดทำงานแล้ว
ไม่จริง — มอเตอร์ยังคงหมุนอยู่
บล็อกนี้ทำงานร่วมกับบล็อกการเคลื่อนไหวต่อไปนี้ที่มีพารามิเตอร์ และไม่ต้องรอ: หมุนมอเตอร์เป็นเวลา และ หมุนมอเตอร์ไปยังตำแหน่ง
<[ArmMotor v] เสร็จแล้ว?>
พารามิเตอร์ |
คำอธิบาย |
|---|---|
มอเตอร์ |
มอเตอร์ที่ใช้รายงานว่าการเคลื่อนที่เสร็จสิ้นแล้วหรือไม่: IntakeMotor หรือ ArmMotor |
ตัวอย่าง
เมื่อเริ่มต้น
[Score a Bean Bag in a Blue Goal.]
เลี้ยว [ซ้าย v] เป็น (90) องศา ▶
ขับ [ไปข้างหน้า v] เป็น (35) [นิ้ว v] ▶
เลี้ยว [ขวา v] เป็น (90) องศา ▶
หมุน [ArmMotor v] ไปตำแหน่ง (1) [รอบ v] ◀ และไม่รอ
รอจนกว่า <[ArmMotor v] เสร็จแล้ว?>
ขับ [ไปข้างหน้า v] เป็น (40) [นิ้ว v] ▶
หมุน [IntakeMotor v] [ช่องระบายออก v]
มอเตอร์กำลังหมุน#
บล็อก Boolean มอเตอร์กำลังหมุน จะรายงานว่ามอเตอร์กำลังหมุนอยู่หรือไม่ ข้อมูลนี้สามารถนำไปใช้ควบคุมจังหวะเวลาของพฤติกรรมอื่นๆ โดยอิงจากการเคลื่อนที่ของมอเตอร์ได้
จริง — มอเตอร์กำลังหมุนอยู่
เท็จ — มอเตอร์ไม่หมุน
บล็อกนี้ทำงานร่วมกับบล็อกการเคลื่อนไหวต่อไปนี้ที่มีพารามิเตอร์ และไม่ต้องรอ: หมุนมอเตอร์เป็นเวลา และ หมุนมอเตอร์ไปยังตำแหน่ง
<[IntakeMotor v] กำลังหมุน?>
พารามิเตอร์ |
คำอธิบาย |
|---|---|
มอเตอร์ |
มอเตอร์ที่ใช้รายงานว่ากำลังหมุนอยู่หรือไม่: IntakeMotor หรือ ArmMotor |
ตัวอย่าง
เมื่อเริ่มต้น
[Score a Bean Bag in a Blue Goal.]
เลี้ยว [ซ้าย v] เป็น (90) องศา ▶
ขับ [ไปข้างหน้า v] เป็น (35) [นิ้ว v] ▶
เลี้ยว [ขวา v] เป็น (90) องศา ▶
หมุน [ArmMotor v] [ขึ้น v] เป็น (1) [รอบ v] ▶
ขับ [ไปข้างหน้า v] เป็น (40) [นิ้ว v] ▶
หมุน [IntakeMotor v] [ช่องระบายออก v]
รอจนกว่า <ไม่ <[IntakeMotor v] กำลังหมุน?>>
หยุด [IntakeMotor v]
ความเร็วของมอเตอร์#
บล็อกรายงานความเร็วของมอเตอร์จะแสดงความเร็วในการหมุนของมอเตอร์เป็นเปอร์เซ็นต์ ตั้งแต่ -100% ถึง 100%
(ความเร็ว [IntakeMotor v] ใน [% v] :: custom-motion)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
มอเตอร์ |
มอเตอร์ที่ใช้รายงานความเร็วของ: มอเตอร์ดูดอากาศ หรือ มอเตอร์แขน |
หน่วย |
หน่วยที่ใช้รายงานความเร็วของมอเตอร์: % |
ตัวอย่าง
เมื่อเริ่มต้น
[Score a Bean Bag in a Blue Goal.]
เลี้ยว [ซ้าย v] เป็น (90) องศา ▶
ขับ [ไปข้างหน้า v] เป็น (35) [นิ้ว v] ▶
เลี้ยว [ขวา v] เป็น (90) องศา ▶
หมุน [ArmMotor v] [ขึ้น v] เป็น (1) [รอบ v] ▶
ขับ [ไปข้างหน้า v] เป็น (40) [นิ้ว v] ▶
หมุน [IntakeMotor v] [ช่องระบายออก v]
รอ [0.2] วินาที
พิมพ์ (ความเร็ว [IntakeMotor v] ใน [% v] :: custom-motion) ▶
AI Vision#
การกระทำ#
รับข้อมูลวัตถุ#
บล็อก รับข้อมูลวัตถุ จะกรองข้อมูลจากเฟรมของเซ็นเซอร์ IQ AI Vision ให้เหลือเพียงลายเซ็นเดียว ซึ่งเป็นคำอธิบายที่บันทึกไว้ของสิ่งที่เซ็นเซอร์สามารถจดจำได้ เช่น องค์ประกอบในสนามแข่งขัน
ชุดข้อมูลจะจัดเก็บวัตถุที่เรียงลำดับจากขนาดใหญ่ที่สุดไปเล็กที่สุดตามความกว้าง โดยเริ่มต้นที่ดัชนี 0 คุณสมบัติของแต่ละวัตถุสามารถเข้าถึงได้โดยใช้บล็อก คุณสมบัติของวัตถุ หากไม่พบวัตถุที่ตรงกัน จะส่งคืนชุดข้อมูลว่างเปล่า
รับข้อมูล [การจำแนก AI v] จาก [AIVision v]
พารามิเตอร์ |
คำอธิบาย |
|---|---|
ลายเซ็น |
กรองชุดข้อมูลเพื่อให้มีเฉพาะข้อมูลที่มีลายเซ็นที่กำหนดเท่านั้น ลายเซ็นที่ใช้ได้คือ:
|
ตัวอย่าง
เมื่อเริ่มต้น :: hat events
[Drop the preloaded Bean Bag.]
หมุน [IntakeMotor v] [ช่องระบายออก v] เป็น (180) [องศา v] ▶
เลี้ยว [ซ้าย v] เป็น (90) องศา ▶
[Find and face the nearest red Bean Bag.]
ตั้งความเร็วเลี้ยวเป็น (30) [% v]
ตั้ง [object_counter v] เป็น [1]
รับข้อมูล [การจำแนก AI v] จาก [AIVision v]
ทำซ้ำ (จำนวนวัตถุ [AIVision v])
ตั้งรายการวัตถุ [AIVision v] เป็น (object_counter)
ถ้า <วัตถุ [AIVision v] เป็น [RedBeanBag v]?> แล้ว
if <(วัตถุ [AIVision v] [centerX v]) < (140)> then
เลี้ยว [ซ้าย v]
else if <([AIVision v] object [centerX v]) > (180)> then
เลี้ยว [ขวา v]
มิฉะนั้น
หยุดขับ
fine
หยุด
fine
เปลี่ยน [object_counter v] โดย [1]
fine
การตั้งค่า#
ตั้งค่าวัตถุรายการ#
บล็อก set object item ใช้สำหรับกำหนดว่าควรใช้รายการใดในชุดข้อมูล
ตั้งรายการวัตถุ [AIVision v] เป็น [1]
พารามิเตอร์ |
คำอธิบาย |
|---|---|
รายการ |
หมายเลขของรายการในชุดข้อมูลที่จะใช้ |
ตัวอย่าง
เมื่อเริ่มต้น :: hat events
[Drop the preloaded Bean Bag.]
หมุน [IntakeMotor v] [ช่องระบายออก v] เป็น (180) [องศา v] ▶
เลี้ยว [ซ้าย v] เป็น (90) องศา ▶
[Find the index of the nearest red Bean Bag.]
ตั้ง [object_counter v] เป็น [1]
รับข้อมูล [การจำแนก AI v] จาก [AIVision v]
ทำซ้ำ (จำนวนวัตถุ [AIVision v])
ตั้งรายการวัตถุ [AIVision v] เป็น (object_counter)
ถ้า <วัตถุ [AIVision v] เป็น [RedBeanBag v]?> แล้ว
พิมพ์ (รวม [Nearest Red Bean Bag is ] (object_counter)) ▶
หยุด
มิฉะนั้น
เปลี่ยน [object_counter v] โดย [1]
fine
fine
ค่านิยม#
วัตถุมีอยู่จริง#
บล็อก object exists จะส่งคืนค่าบูลีนที่ระบุว่าตรวจพบวัตถุใด ๆ ในชุดข้อมูลหรือไม่
จริง - ชุดข้อมูลประกอบด้วยวัตถุที่ตรวจพบ
เท็จ - ชุดข้อมูลนี้ไม่มีวัตถุใดๆ ที่ตรวจพบ
<[AIVision v] พบวัตถุ?>
พารามิเตอร์ |
คำอธิบาย |
|---|---|
บล็อกนี้ไม่มีพารามิเตอร์ |
ตัวอย่าง
เมื่อเริ่มต้น :: hat events
[Drop the preloaded Bean Bag.]
หมุน [IntakeMotor v] [ช่องระบายออก v] เป็น (180) [องศา v] ▶
เลี้ยว [ซ้าย v] เป็น (90) องศา ▶
[Turn until a Bean Bag is detected.]
ตั้งความเร็วเลี้ยวเป็น (30) [% v]
เลี้ยว [ขวา v]
ทำซ้ำจนกว่า <[AIVision v] พบวัตถุ?>
รับข้อมูล [การจำแนก AI v] จาก [AIVision v]
fine
หยุดขับ
วัตถุคือ#
บล็อก object is จะส่งคืนค่าบูลีนที่ระบุว่าวัตถุที่ตรวจพบตรงกับการจำแนกประเภทที่ระบุหรือไม่
ถูกต้อง - รายการในชุดข้อมูลคือวัตถุเฉพาะนั้น
เท็จ - รายการในชุดข้อมูลไม่ใช่วัตถุเฉพาะนั้น
<วัตถุ [AIVision v] เป็น [RedBeanBag v]?>
พารามิเตอร์ |
คำอธิบาย |
|---|---|
วัตถุ |
ควรเปรียบเทียบสิ่งของนี้กับวัตถุใด: ถุงถั่วสีแดง, ถุงถั่วสีน้ำเงิน หรือ ถุงถั่วสีเหลือง |
ตัวอย่าง
เมื่อเริ่มต้น :: hat events
[Drop the preloaded Bean Bag.]
หมุน [IntakeMotor v] [ช่องระบายออก v] เป็น (180) [องศา v] ▶
เลี้ยว [ซ้าย v] เป็น (90) องศา ▶
[Find the index of the nearest red Bean Bag.]
ตั้ง [object_counter v] เป็น [1]
รับข้อมูล [การจำแนก AI v] จาก [AIVision v]
ทำซ้ำ (จำนวนวัตถุ [AIVision v])
ตั้งรายการวัตถุ [AIVision v] เป็น (object_counter)
ถ้า <วัตถุ [AIVision v] เป็น [RedBeanBag v]?> แล้ว
พิมพ์ (รวม [Nearest Red Bean Bag is ] (object_counter)) ▶
หยุด
มิฉะนั้น
เปลี่ยน [object_counter v] โดย [1]
fine
fine
วัตถุคือ AprilTag#
บล็อก object is AprilTag จะส่งคืนค่าบูลีนที่ระบุว่าวัตถุที่ตรวจพบนั้นเป็น AprilTag ที่ตรงกับ ID ที่ระบุหรือไม่
ถูกต้อง - วัตถุที่ตรวจพบคือ AprilTag ที่มี ID ที่ระบุไว้
เท็จ - วัตถุที่ตรวจพบไม่ใช่ AprilTag ที่มี ID ที่กำหนด
<วัตถุ [AIVision v] เป็น AprilTag [0]?>
พารามิเตอร์ |
คำอธิบาย |
|---|---|
รหัสแท็กเดือนเมษายน |
หมายเลขประจำตัวที่จะใช้เปรียบเทียบกับ AprilTag ที่ตรวจพบ |
ตัวอย่าง
เมื่อเริ่มต้น :: hat events
[Stop when you see the Red Goal!]
ตั้งความเร็วเลี้ยวเป็น (30) [% v]
เลี้ยว [ขวา v]
ทำซ้ำจนกว่า <วัตถุ [AIVision v] เป็น AprilTag [1]?>
รับข้อมูล [AprilTags v] จาก [AIVision v]
fine
หยุดขับ
พิมพ์ [Found the Red Goal!] ▶
จำนวนวัตถุ#
บล็อก นับวัตถุ จะส่งคืนจำนวนวัตถุที่ตรวจพบในชุดข้อมูลเป็นจำนวนเต็ม
(จำนวนวัตถุ [AIVision v])
พารามิเตอร์ |
คำอธิบาย |
|---|---|
บล็อกนี้ไม่มีพารามิเตอร์ |
ตัวอย่าง
เมื่อเริ่มต้น :: hat events
[Drop the preloaded Bean Bag.]
หมุน [IntakeMotor v] [ช่องระบายออก v] เป็น (180) [องศา v] ▶
เลี้ยว [ซ้าย v] เป็น (90) องศา ▶
[Print how many Bean Bags are detected.]
รับข้อมูล [การจำแนก AI v] จาก [AIVision v]
พิมพ์ (จำนวนวัตถุ [AIVision v]) ▶
คุณสมบัติของวัตถุ#
มีคุณสมบัติหกประการที่รวมอยู่ในแต่ละวัตถุที่จัดเก็บหลังจากใช้บล็อก รับข้อมูลวัตถุ
(วัตถุ [AIVision v] [ความกว้าง v])
ค่าคุณสมบัติทั้งหมดอธิบายตำแหน่งและขนาดของวัตถุที่ตรวจพบในมุมมองของเซ็นเซอร์ IQ AI Vision ในขณะที่ใช้บล็อก รับข้อมูลวัตถุ ค่าเหล่านี้วัดเป็นพิกเซล โดยอิงจากความละเอียด 320 x 240 พิกเซลของเซ็นเซอร์
พารามิเตอร์ |
คำอธิบาย |
|---|---|
คุณสมบัติ |
จะใช้คุณสมบัติใดของวัตถุที่ตรวจพบ: width, height, centerX, centerY, originX หรือ originY |
ความกว้าง#
คุณสมบัติ width จะรายงานความกว้างของวัตถุที่ตรวจพบในหน่วยพิกเซล โดยแสดงเป็นจำนวนเต็มตั้งแต่ 1 ถึง 320
(วัตถุ [AIVision v] [ความกว้าง v])
ตัวอย่าง
เมื่อเริ่มต้น
[Drop the preloaded Bean Bag.]
หมุน [IntakeMotor v] [ช่องระบายออก v] เป็น (180) [องศา v] ▶
เลี้ยว [ซ้าย v] เป็น (90) องศา ▶
[Approach the Bean Bag, then pick it up.]
ตั้งความเร็วขับเป็น (30) [% v]
ทำตลอดไป
รับข้อมูล [การจำแนก AI v] จาก [AIVision v]
ถ้า <[AIVision v] พบวัตถุ?> แล้ว
ตั้งรายการวัตถุ [AIVision v] เป็น [1]
ถ้า <วัตถุ [AIVision v] เป็น [RedBeanBag v]?> แล้ว
if <([AIVision v] object [width v]) > (180)> then
ขับ [ไปข้างหน้า v] เป็น [50] [มม. v] ▶
หมุน [IntakeMotor v] [การบริโภค v] เป็น [90] [องศา v] ▶
หยุด
มิฉะนั้น
ขับ [ไปข้างหน้า v]
fine
fine
fine
fine
ความสูง#
คุณสมบัติ height จะรายงานความสูงของวัตถุที่ตรวจพบในหน่วยพิกเซล โดยแสดงเป็นจำนวนเต็มตั้งแต่ 1 ถึง 240
(วัตถุ [AIVision v] [ความสูง v])
ตัวอย่าง
เมื่อเริ่มต้น
[Drop the preloaded Bean Bag.]
หมุน [IntakeMotor v] [ช่องระบายออก v] เป็น (180) [องศา v] ▶
เลี้ยว [ซ้าย v] เป็น (90) องศา ▶
[Approach the Bean Bag, then pick it up.]
ตั้งความเร็วขับเป็น (30) [% v]
ทำตลอดไป
รับข้อมูล [การจำแนก AI v] จาก [AIVision v]
ถ้า <[AIVision v] พบวัตถุ?> แล้ว
ตั้งรายการวัตถุ [AIVision v] เป็น [1]
ถ้า <วัตถุ [AIVision v] เป็น [RedBeanBag v]?> แล้ว
if <([AIVision v] object [height v]) > (100)> then
ขับ [ไปข้างหน้า v] เป็น [50] [มม. v] ▶
หมุน [IntakeMotor v] [การบริโภค v] เป็น [90] [องศา v] ▶
หยุด
มิฉะนั้น
ขับ [ไปข้างหน้า v]
fine
fine
fine
fine
เซ็นเตอร์เอ็กซ์#
คุณสมบัติ centerX จะแสดงค่าพิกัด x ของจุดศูนย์กลางของวัตถุที่ตรวจพบในหน่วยพิกเซล โดยแสดงเป็นจำนวนเต็มตั้งแต่ 0 ถึง 320
(วัตถุ [AIVision v] [centerX v])
ตัวอย่าง
เมื่อเริ่มต้น
[Drop the preloaded Bean Bag.]
หมุน [IntakeMotor v] [ช่องระบายออก v] เป็น (180) [องศา v] ▶
เลี้ยว [ซ้าย v] เป็น (90) องศา ▶
[Steer to keep the Bean Bag centered while approaching.]
ตั้งความเร็วเลี้ยวเป็น (30) [% v]
ตั้งความเร็วขับเป็น (30) [% v]
ทำตลอดไป
รับข้อมูล [การจำแนก AI v] จาก [AIVision v]
ถ้า <[AIVision v] พบวัตถุ?> แล้ว
ตั้งรายการวัตถุ [AIVision v] เป็น [1]
ถ้า <วัตถุ [AIVision v] เป็น [RedBeanBag v]?> แล้ว
if <(วัตถุ [AIVision v] [centerX v]) < (140)> then
เลี้ยว [ซ้าย v] เป็น (5) องศา ▶
มิฉะนั้น
ขับ [ไปข้างหน้า v] เป็น (150) [มม. v] ▶
หมุน [IntakeMotor v] [การบริโภค v]
หยุด
fine
fine
fine
fine
เซ็นเตอร์วาย#
คุณสมบัติ centerY จะแสดงค่าพิกัด y ของจุดศูนย์กลางของวัตถุที่ตรวจพบในหน่วยพิกเซล โดยแสดงเป็นจำนวนเต็มตั้งแต่ 0 ถึง 240
(วัตถุ [AIVision v] [centerY v])
ตัวอย่าง
เมื่อเริ่มต้น
[Drop the preloaded Bean Bag.]
หมุน [IntakeMotor v] [ช่องระบายออก v] เป็น (180) [องศา v] ▶
เลี้ยว [ซ้าย v] เป็น (90) องศา ▶
[Print the y-position of the Bean Bag.]
รับข้อมูล [การจำแนก AI v] จาก [AIVision v]
ถ้า <[AIVision v] พบวัตถุ?> แล้ว
ตั้งรายการวัตถุ [AIVision v] เป็น [1]
ถ้า <วัตถุ [AIVision v] เป็น [RedBeanBag v]?> แล้ว
พิมพ์ (วัตถุ [AIVision v] [centerY v]) ▶
fine
fine
ออริจินเอ็กซ์#
คุณสมบัติ originX รายงานค่าพิกัด x ของมุมบนซ้ายของกรอบล้อมรอบวัตถุที่ตรวจพบในหน่วยพิกเซล โดยแสดงเป็นจำนวนเต็มตั้งแต่ 0 ถึง 320
(วัตถุ [AIVision v] [originX v])
ตัวอย่าง
เมื่อเริ่มต้น
[Drop the preloaded Bean Bag.]
หมุน [IntakeMotor v] [ช่องระบายออก v] เป็น (180) [องศา v] ▶
เลี้ยว [ซ้าย v] เป็น (90) องศา ▶
[Steer to keep the left edge centered.]
ตั้งความเร็วเลี้ยวเป็น (30) [% v]
ตั้งความเร็วขับเป็น (30) [% v]
ทำตลอดไป
รับข้อมูล [การจำแนก AI v] จาก [AIVision v]
ถ้า <[AIVision v] พบวัตถุ?> แล้ว
ตั้งรายการวัตถุ [AIVision v] เป็น [1]
ถ้า <วัตถุ [AIVision v] เป็น [RedBeanBag v]?> แล้ว
if <(วัตถุ [AIVision v] [originX v]) < (100)> then
เลี้ยว [ซ้าย v] เป็น (5) องศา ▶
มิฉะนั้น
ขับ [ไปข้างหน้า v] เป็น (150) [มม. v] ▶
หมุน [IntakeMotor v] [การบริโภค v]
หยุด
fine
fine
fine
fine
ออริจินวาย#
คุณสมบัติ originY รายงานค่าพิกัด y ของมุมบนซ้ายของกรอบล้อมรอบวัตถุที่ตรวจพบในหน่วยพิกเซล โดยแสดงเป็นจำนวนเต็มตั้งแต่ 0 ถึง 240
(วัตถุ [AIVision v] [originY v])
ตัวอย่าง
เมื่อเริ่มต้น
[Drop the preloaded Bean Bag.]
หมุน [IntakeMotor v] [ช่องระบายออก v] เป็น (180) [องศา v] ▶
เลี้ยว [ซ้าย v] เป็น (90) องศา ▶
[Print the y-position of the Bean Bag's top edge.]
รับข้อมูล [การจำแนก AI v] จาก [AIVision v]
ถ้า <[AIVision v] พบวัตถุ?> แล้ว
ตั้งรายการวัตถุ [AIVision v] เป็น [1]
ถ้า <วัตถุ [AIVision v] เป็น [RedBeanBag v]?> แล้ว
พิมพ์ (วัตถุ [AIVision v] [originY v]) ▶
fine
fine