กล่องเครื่องมือครู
-
วัตถุประสงค์ของกิจกรรมนี้
กิจกรรมนี้จะแนะนำให้นักเรียนรู้จักกับการใช้ ข้อความ ขณะ และ หากต้องการให้หุ่นยนต์ขับเคลื่อนไปข้างหน้าเว้นแต่จะมีการกดหน้าจอ
- กิจกรรมนี้จะแนะนำให้นักเรียนรู้จักกับเงื่อนไขและคำแนะนำที่ให้หุ่นยนต์ขับเคลื่อนไปข้างหน้าเว้นแต่จะกดหน้าจอ
- สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ ข้อความ ว่า ถ้าช่วยหรืออื่นๆที่ใช้ในกิจกรรมนี้โปรดไปที่ข้อมูลความช่วยเหลือภายใน VEXcode V5 สำหรับข้อมูลเพิ่มเติมเกี่ยวกับเครื่องมือช่วยเหลือในตัวนี้โปรดดูบทความเกี่ยวกับความช่วยเหลือใน Python
กล่องเครื่องมือครู
สำหรับข้อเสนอแนะเกี่ยวกับกลยุทธ์การสอนสำหรับส่วนนี้โปรดอ่านคอลัมน์การจัดส่งของคู่มือการ ก้าวเดินที่ควรทำหรือไม่ควรทำ! (Google Doc /.docx /.pdf)
Clawbot พร้อมที่จะตัดสินใจแล้ว!
การสำรวจนี้จะให้เครื่องมือเพื่อให้คุณสามารถเริ่มสร้างโปรเจกต์เจ๋งๆที่ใช้คำสั่ง if-else ได้
- คำสั่ง VEXcode V5 Python ที่จะใช้ในการสำรวจนี้:
- drivetrain.drive_for (ไปข้างหน้า)
- brain.screen.pressing ()
- drivetrain.stop ()
- if condition:
- else:
- ในขณะที่จริง:
- รอ (5 วินาที)
คุณสามารถใช้ข้อมูล ความช่วยเหลือ ภายใน VEXcode V5 เพื่อเรียนรู้เกี่ยวกับคำสั่ง Python

ตรวจสอบให้แน่ใจว่าคุณมีฮาร์ดแวร์ที่จำเป็นโน้ตบุ๊ควิศวกรรมและ VEXcode V5 พร้อมใช้งาน
| จำนวน | วัสดุที่จำเป็น |
|---|---|
| 1 |
ชุดเริ่มต้นห้องเรียน VEX V5 (พร้อมเฟิร์มแวร์ล่าสุด) |
| 1 |
VEXcode V5 (เวอร์ชันล่าสุด, Windows, macOS) |
| 1 |
สมุดบันทึกวิศวกรรม |
| 1 |
เทมเพลต Clawbot (Drivetrain 2 - motor, No Gyro) |
เคล็ดลับสำหรับครู
หากนี่เป็นครั้งแรกที่นักเรียนใช้ VEXcode V5 พวกเขาสามารถอ้างอิงบทช่วยสอนได้ตลอดเวลาในระหว่างการสำรวจนี้ บทช่วยสอนอยู่ในแถบเครื่องมือ

ขั้นตอนที่ 1: มาเริ่มต้นด้วยความเข้าใจเกี่ยวกับข้อความที่มีเงื่อนไข
ก่อนที่คุณจะเริ่มเขียนโปรแกรมด้วยเงื่อนไขโปรดอ่านบทความที่อธิบาย ข้อความถ้าช่วยได้ ดูบทความได้ที่นี่ (Google Doc /.docx /.pdf)
สำหรับรายชื่อผู้ปฏิบัติงานที่จะใช้ใน ข้อความ if-else โปรดอ่านบทความอธิบายบูลีน ดูบทความนี้ได้ที่นี่ (GoogleDoc/.docx/.pdf)
ขั้นตอนที่ 2: มาเริ่มเขียนโปรแกรมด้วยข้อความที่มีเงื่อนไข
-
เปิดโปรเจกต์ตัวอย่างเทมเพลต Clawbot (Drivetrain 2 - motor, No Gyro)

- สร้างโปรเจกต์ด้านล่าง
# Begin project code
while True
: drivetrain.drive (FORWARD)
if brain.screen.pressing ():
drivetrain.stop ()
while brain.screen.pressing ():
wait (5, msec)
wait (5, MSEC)ทำสิ่งต่อไปนี้ในสมุดบันทึกวิศวกรรมของคุณ:
- อธิบายว่าโปรเจกต์นี้มี Clawbot ทำอะไร คุณจะต้องอธิบายมากกว่าความจริงที่ว่ามันสร้างปุ่มหยุด อธิบายว่าคำสั่งใดที่ทำให้ Clawbot ทำอะไรได้บ้าง
- เขียนสรุปหนึ่งประโยคที่ตรงกับสิ่งที่โปรเจกต์ทำ
- ทดสอบเพื่อดูว่าการคาดการณ์ของคุณเกี่ยวกับสิ่งที่โครงการมี Clawbot ทำนั้นถูกต้องหรือไม่
- ตั้งชื่อโปร เจกต์ CreatingAStopButton ดาวน์โหลดและ เรียกใช้โปรเจกต์บน Clawbot
- ตรวจสอบคำอธิบายของคุณเกี่ยวกับโครงการและเพิ่มบันทึกเพื่อแก้ไขตามความจำเป็น
กล่องเครื่องมือครู
-
คำตอบ
โปรเจกต์นี้ให้หุ่นยนต์ขับเคลื่อนไปข้างหน้าอย่างต่อเนื่องแต่จะหยุดหากมีการกดหน้าจอ โดยใช้ข้อความ "ตลอดไป" (ในขณะที่ True) เพื่อขับรถและตรวจสอบอย่างต่อเนื่อง หากหน้าจอกำลังถูกกด (จริง) Clawbot จะหยุดการขับขี่
นักเรียนไม่ได้คาดหวังว่าจะเข้าใจว่าทำไมจึงใช้ คำสั่ง while brain.screen.pressing (): และ รอ (5, msec) อธิบายว่าคำสั่งเหล่านี้มีความจำเป็นเนื่องจากความเร็วของการไหลของโปรแกรมของหุ่นยนต์ ถ้ามันไม่ได้อยู่ที่นั่นมอเตอร์ของ Clawbot จะทำงานราวกับว่าผู้ใช้กำลังกดหน้าจอซ้ำแล้วซ้ำอีกขณะที่มันวนลูปผ่านโครงการ แต่คำแนะนำเหล่านี้จะหยุดการทำงานของโปรแกรมและไม่ให้โครงการเริ่มวนซ้ำจนกว่าผู้ใช้จะหยุดการกดหน้าจอ
บรรทัดของซูโดโค้ดอาจง่ายเหมือน: ขับไปข้างหน้าจนกว่าจะกดหน้าจอ
สมุดบันทึกวิศวกรรมของนักศึกษาสามารถได้รับการดูแลและให้คะแนน เป็น ราย บุคคล (Google Doc /.docx /.pdf) หรือเป็นทีม ( Google Doc /.docx/.pdf) ลิงก์ก่อนหน้านี้ให้รูบริกที่แตกต่างกันสำหรับแต่ละวิธี เมื่อใดก็ตามที่มีรูบริกรวมอยู่ในการวางแผนการศึกษาเป็นแนวปฏิบัติที่ดีในการอธิบายรูบริกหรืออย่างน้อยก็ให้สำเนาแก่นักเรียนก่อนที่กิจกรรมจะเริ่มต้น
ขั้นตอนที่ 3: ทำความเข้าใจ ข้อความ while and wait ()
โปรดสังเกตว่าหากหน้าจอของ Brain ถูกกดการไหลของโครงการจะเคลื่อนที่อย่างรวดเร็วและโครงการจะย้ายไปยังคำสั่งถัดไป ซึ่งเป็น คำสั่ง drivetrain.stop ()
ดังนั้นโครงการจึงต้องใช้เวลาสัก ครู่ และ รอ คำสั่งที่บอกให้หุ่นยนต์หยุดทำงานจนกว่าหน้าจอของสมองจะถูกปล่อยออกมา มิฉะนั้น คำกล่าว ตลอดไป จะทำให้โครงการเริ่มต้นขึ้นอีกครั้ง
ในขณะที่ brain.screen.pressing ():
รอ (5, มิลลิวินาที)คำสั่ง ในขณะที่ รอ และรอเป็นสิ่งที่จำเป็นเนื่องจากความเร็วของการไหลของโครงการ หากพวกเขาไม่อยู่ที่นั่นโครงการจะย้ายไปยังคำแนะนำถัดไปก่อนที่หุ่นยนต์จะมีเวลาตอบสนอง
ขั้นตอนที่ 4: เปลี่ยนโครงการ
ขั้นตอนต่อไปคือการเปลี่ยน ข้อความ if เป็น ข้อความ if-else
- เริ่มต้นด้วย การบันทึก CreatingAStopButton เป็นโปรเจ กต์ใหม่ StopOrDrive
- หากต้องการความช่วยเหลือในการบันทึกโปรเจกต์โปรด ดูบทความเหล่านี้
- จากนั้นสร้าง โครงการ StopOrDrive ที่แสดงด้านล่าง
# Begin project code
while True:
if brain.screen.pressing ():
drivetrain.stop ()
while brain.screen.pressing ():
wait (5, msec)
else: drivetrain.drive
(FORWARD)
wait (5, MSEC)- ดาวน์โหล ด StopOrDrive ไปยังช่อง 2 บน Clawbot ของคุณ
- สำหรับความช่วยเหลือในการดาวน์โหลดและเรียกใช้โปรเจกต์ โปรดดูบทความนี้
- ทดสอบ CreatingAStopButton (ช่อง 1) แล้วทดสอบ StopOrDrive (ช่อง 2) และเปรียบเทียบเพื่อดูว่ามีความแตกต่างในพฤติกรรมของหุ่นยนต์หรือไม่ สังเกตความแตกต่างในสมุดบันทึกวิศวกรรมของคุณ
ทั้งสองโปรเจกต์มีพฤติกรรมเหมือนกัน ข้อแตกต่างเพียงอย่างเดียวคือการใช้ คำสั่ง if-else ใน โครงการ StopOrDrive
การใช้ ข้อความ if-else จะช่วยให้คุณสามารถเพิ่มปุ่มเพิ่มเติมลงในหน้าจอในกิจกรรมที่กำลังจะเกิดขึ้นได้
ขยายการเรียนรู้ของท่าน
เมื่อห้องปฏิบัติการ STEM นี้ดำเนินการนักเรียนจะพัฒนาโครงการที่อนุญาตให้หน้าจอของ Clawbot ทำหน้าที่เป็นส่วนติดต่อผู้ใช้ เพื่อเตรียมความพร้อมท้าทายให้นักเรียนคิดหาวิธีวาดสี่เหลี่ยมผืนผ้าสีบนหน้าจอที่ทำหน้าที่เหมือนปุ่ม เนื่องจากการกดที่ใดก็ได้บนหน้าจอในขณะนี้เป็นเงื่อนไขปุ่มควรใช้เวลาทั้งหน้าจอ นักเรียนควรให้โครงการถ่ายทอดเหตุการณ์เพื่อวาดปุ่มเมื่อเริ่มต้น
นำนักเรียนไปเรียนรู้วิธีจัดหน้าจอของสมองให้เป็นระบบพิกัดก่อน พวกเขาจะต้องเข้าใจสิ่งนี้เพื่อตั้งค่าพารามิเตอร์ภายในคำสั่งที่พวกเขาจะใช้ พิกัดที่ใช้สอดคล้องกับจำนวนพิกเซลไม่ใช่จำนวนคอลัมน์หรือแถว นี่คือเลย์เอาต์ของหน้าจอ:
นักเรียนควรวางแผนทดสอบและปรับแต่งการเปลี่ยนแปลงเหล่านี้ในโครงการขณะที่บันทึกไว้ในสมุดบันทึกทางวิศวกรรม สำหรับโน้ตบุ๊กวิศวกรรมแต่ละตัวให้ คลิกลิงก์ใดลิงก์หนึ่งต่อไปนี้ ( Google Doc /.docx /.pdf) หรือคลิกลิงก์ใดลิงก์หนึ่งต่อไปนี้สำหรับโน้ตบุ๊กทีม ( Google Doc /.docx /.pdf)
นี่คือตัวอย่างวิธีแก้ปัญหา:
# Begin project code
draw = Event ()
def draw_button (): brain.screen.set_fill_color
(Color.RED) brain.screen.draw_rectangle
(0, 0, 480, 240)
wait (1, SECONDS)
draw (draw_button)
while
True: draw.broadcast
() drivetrain.drive (FORWARD)
if brain.screen.pressing ():
drivetrain.stop ()
while brain.screen.pressing ():
wait (5, msec)
else: drivetrain.drive
(FORWARD)
wait (5, MSEC)ดังที่คุณเห็นปุ่มจะถูกวาดขึ้นเพื่อให้หน้าจอทั้งหมดเริ่มต้นที่ (0, 0) จุดเริ่มต้นและเติมทั้งหมด 480 พิกเซลในแนวนอน (แกน x) และ 240 พิกเซลในแนวตั้ง (แกน y)
