Skip to main content

ไอคอนกล่องเครื่องมือครู กล่องเครื่องมือครู - วัตถุประสงค์ของกิจกรรมนี้

กิจกรรมนี้จะแนะนำให้นักเรียนรู้จักกับการใช้ ข้อความ ขณะ และ หากต้องการให้หุ่นยนต์ขับเคลื่อนไปข้างหน้าเว้นแต่จะมีการกดหน้าจอ

  • กิจกรรมนี้จะแนะนำให้นักเรียนรู้จักกับเงื่อนไขและคำแนะนำที่ให้หุ่นยนต์ขับเคลื่อนไปข้างหน้าเว้นแต่จะกดหน้าจอ
  • สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ ข้อความ ว่า ถ้าช่วยหรืออื่นๆที่ใช้ในกิจกรรมนี้โปรดไปที่ข้อมูลความช่วยเหลือภายใน 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 ที่มีไดรฟ์สำหรับคำสั่งที่พิมพ์ลงในพื้นที่ทำงานทางด้านซ้ายและข้อมูลความช่วยเหลือจะเปิดขึ้นทางด้านขวา ความช่วยเหลือแสดงคำจำกัดความของคำสั่งและข้อมูลเกี่ยวกับวิธีการใช้งาน

ตรวจสอบให้แน่ใจว่าคุณมีฮาร์ดแวร์ที่จำเป็นโน้ตบุ๊ควิศวกรรมและ VEXcode V5 พร้อมใช้งาน

วัสดุที่ต้องใช้:
จำนวน วัสดุที่จำเป็น
1

ชุดเริ่มต้นห้องเรียน VEX V5 (พร้อมเฟิร์มแวร์ล่าสุด)

1

VEXcode V5 (เวอร์ชันล่าสุด, Windows, macOS)

1

สมุดบันทึกวิศวกรรม

1

เทมเพลต Clawbot (Drivetrain 2 - motor, No Gyro)

ไอคอนเคล็ดลับสำหรับครู เคล็ดลับสำหรับครู

หากนี่เป็นครั้งแรกที่นักเรียนใช้ VEXcode V5 พวกเขาสามารถอ้างอิงบทช่วยสอนได้ตลอดเวลาในระหว่างการสำรวจนี้ บทช่วยสอนอยู่ในแถบเครื่องมือ

แถบเครื่องมือ VEXcode V5 พร้อมบทแนะนำที่เน้นในกล่องสีแดง แถบเครื่องมือจะแสดงโลโก้ V5 ไอคอนลูกโลกไฟล์และบทช่วยสอนจากซ้ายไปขวา ทางด้านขวาของบทช่วยสอนมีไอคอนและฟังก์ชันการทำงานเพิ่มเติม

ขั้นตอนที่ 1: มาเริ่มต้นด้วยความเข้าใจเกี่ยวกับข้อความที่มีเงื่อนไข 

ก่อนที่คุณจะเริ่มเขียนโปรแกรมด้วยเงื่อนไขโปรดอ่านบทความที่อธิบาย  ข้อความถ้าช่วยได้ ดูบทความได้ที่นี่ (Google Doc /.docx /.pdf)
Screenshot of the linked article titled Using If else statements in VEXcode V5 Python.
สำหรับรายชื่อผู้ปฏิบัติงานที่จะใช้ใน ข้อความ if-else โปรดอ่านบทความอธิบายบูลีน ดูบทความนี้ได้ที่นี่ (GoogleDoc/.docx/.pdf)

ภาพหน้าจอของบทความที่เชื่อมโยงที่มีชื่อว่าการใช้บูลีนใน VEXcode V5 Python

ขั้นตอนที่ 2: มาเริ่มเขียนโปรแกรมด้วยข้อความที่มีเงื่อนไข

  • เปิดโปรเจกต์ตัวอย่างเทมเพลต Clawbot (Drivetrain 2 - motor, No Gyro)

    ตัวอย่างโปรเจกต์ใน VEXcode V5 ที่มีตัวกรองเทมเพลตและไอคอน 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
    กล่องโต้ตอบชื่อโปรเจกต์ในแถบเครื่องมือ VEXcode V5 อ่านการสร้างปุ่มหยุดและแสดงให้เห็นว่าช่องที่ 1 ถูกเลือก
  • ตรวจสอบคำอธิบายของคุณเกี่ยวกับโครงการและเพิ่มบันทึกเพื่อแก้ไขตามความจำเป็น

ไอคอนกล่องเครื่องมือครู กล่องเครื่องมือครู - คำตอบ

โปรเจกต์นี้ให้หุ่นยนต์ขับเคลื่อนไปข้างหน้าอย่างต่อเนื่องแต่จะหยุดหากมีการกดหน้าจอ โดยใช้ข้อความ "ตลอดไป" (ในขณะที่ True) เพื่อขับรถและตรวจสอบอย่างต่อเนื่อง หากหน้าจอกำลังถูกกด (จริง) Clawbot จะหยุดการขับขี่ฟังก์ชั่นของคำสั่งในโครงการหยุดหรือไดรฟ์มีป้ายกำกับ คำสั่ง if ถูกระบุว่าเป็นตรวจสอบว่าเงื่อนไขเป็นจริงหรือไม่ - ตรวจสอบว่ามีการกดหน้าจอหรือไม่ บล็อกที่เยื้องอยู่ด้านล่างจะมีป้ายกำกับหากเงื่อนไขเป็นจริงให้เรียกใช้บล็อกของรหัส คำสั่งการกดหน้าจอสมองจะมีป้ายกำกับควบคุมความเร็วในการประมวลผล

นักเรียนไม่ได้คาดหวังว่าจะเข้าใจว่าทำไมจึงใช้ คำสั่ง 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กล่องโต้ตอบชื่อโครงการในแถบเครื่องมือ VEXcode V5 อ่านว่าหยุดหรือไดรฟ์และแสดงว่าเลือกช่องที่ 1 แล้ว
  • หากต้องการความช่วยเหลือในการบันทึกโปรเจกต์โปรด ดูบทความเหล่านี้
  • จากนั้นสร้าง  โครงการ 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 ของคุณ

หน้าต่างการเลือกช่องจะเปิดขึ้นในแถบเครื่องมือ VEXcode V5 และช่องที่ 2 จะถูกเลือกและไฮไลต์ด้วยกล่องสีแดง

  • สำหรับความช่วยเหลือในการดาวน์โหลดและเรียกใช้โปรเจกต์ โปรดดูบทความนี้
  • ทดสอบ CreatingAStopButton (ช่อง 1) แล้วทดสอบ StopOrDrive  (ช่อง 2) และเปรียบเทียบเพื่อดูว่ามีความแตกต่างในพฤติกรรมของหุ่นยนต์หรือไม่ สังเกตความแตกต่างในสมุดบันทึกวิศวกรรมของคุณ

ไอคอนกล่องเครื่องมือครู กล่องเครื่องมือครู - คำตอบ

ในส่วนของพฤติกรรมของหุ่นยนต์ ไม่ ควรมีความแตกต่างระหว่าง  โครงการ CreatingAStopButton และ StopOrDrive

หากนักเรียนต้องการความช่วยเหลือเพิ่มเติมเกี่ยวกับการ ทำความเข้าใจ ข้อความถ้าช่วยได้โปรดดูบทความ นี้ ( Google Doc /.docx/.pdf)

ทั้งสองโปรเจกต์มีพฤติกรรมเหมือนกัน ข้อแตกต่างเพียงอย่างเดียวคือการใช้ คำสั่ง if-else ใน โครงการ StopOrDrive
การใช้ ข้อความ if-else จะช่วยให้คุณสามารถเพิ่มปุ่มเพิ่มเติมลงในหน้าจอในกิจกรรมที่กำลังจะเกิดขึ้นได้

ไอคอนขยายการเรียนรู้ของคุณ ขยายการเรียนรู้ของท่าน

เมื่อห้องปฏิบัติการ STEM นี้ดำเนินการนักเรียนจะพัฒนาโครงการที่อนุญาตให้หน้าจอของ Clawbot ทำหน้าที่เป็นส่วนติดต่อผู้ใช้ เพื่อเตรียมความพร้อมท้าทายให้นักเรียนคิดหาวิธีวาดสี่เหลี่ยมผืนผ้าสีบนหน้าจอที่ทำหน้าที่เหมือนปุ่ม เนื่องจากการกดที่ใดก็ได้บนหน้าจอในขณะนี้เป็นเงื่อนไขปุ่มควรใช้เวลาทั้งหน้าจอ นักเรียนควรให้โครงการถ่ายทอดเหตุการณ์เพื่อวาดปุ่มเมื่อเริ่มต้น

นำนักเรียนไปเรียนรู้วิธีจัดหน้าจอของสมองให้เป็นระบบพิกัดก่อน พวกเขาจะต้องเข้าใจสิ่งนี้เพื่อตั้งค่าพารามิเตอร์ภายในคำสั่งที่พวกเขาจะใช้ พิกัดที่ใช้สอดคล้องกับจำนวนพิกเซลไม่ใช่จำนวนคอลัมน์หรือแถว นี่คือเลย์เอาต์ของหน้าจอ:ตารางพิกเซลของหน้าจอ V5 Brain แสดงแถวที่มีหมายเลข 12 แถวตามด้านซ้ายโดยแถวบนสุดมีป้ายกำกับแถวที่ 1 และด้านล่างมีป้ายกำกับแถวที่ 12 ด้านบนเป็นคอลัมน์ที่มีหมายเลข 48 คอลัมน์โดยคอลัมน์ 1 มีป้ายกำกับที่ด้านซ้ายสุดและคอลัมน์ 48 มีป้ายกำกับที่ด้านขวาสุด การวัดพิกเซลทั้งหมดมีความกว้าง 480 พิกเซลสูง 240 พิกเซล

นักเรียนควรวางแผนทดสอบและปรับแต่งการเปลี่ยนแปลงเหล่านี้ในโครงการขณะที่บันทึกไว้ในสมุดบันทึกทางวิศวกรรม สำหรับโน้ตบุ๊กวิศวกรรมแต่ละตัวให้ คลิกลิงก์ใดลิงก์หนึ่งต่อไปนี้ ( 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)