สนามแข่งขันการเขียนโปรแกรมควบคุมหุ่นยนต์ครั้งที่ 2
ระหว่างวันที่ 30 สิงหาคม - 1 กันยายน 2546
ณ สถาบันส่งเสริมการสอนวิทยาศาสตร์และเทคโนโลยี  กรุงเทพฯ

   ภารกิจ
แต่ละทีมจะต้องนำกล่องทองคำของตน  ไปเก็บไว้ในห้องเก็บสมบัติ  ซึ่งห้องเก็บสมบัติจะมีกลไกในการเปิดประตูแต่ละรอบไม่เหมือนกัน  โดยจะเปิดห้องละ  2  ประตูเท่านั้น  ถ้าทีมใดนำกล่องทองคำไปเก็บไว้ในห้องได้ทั้ง 3 ที่เป็นแนวทะแยงมุม ประตูห้องลับจะเปิดทั้งหมดและได้สมบัติในห้องลับไปครอบครอง

   เงื่อนไขการแข่งขัน

  1. แข่งครั้งละ 2 ทีมโดยการจับฉลากเลือกจุดปล่อยหุ่นยนต์และสุ่มตำแหน่งประตูที่จะเปิดในห้องหมายเลข 1-4 จะมีประตูเปิด 2 ประตู และห้องหมายเลข 5 ประตูจะเปิดทั้ง 4 ประตู มีเวลาแข่งขัน 5 นาที
  2. ในระหว่างการแข่งขัน ผู้เข้าแข่งขันไม่สามารถแก้ไขหรือดาวน์โหลดโปรแกรมใหม่ได้
  3. สนามแข่งขันเป็นรูปสี่เหลี่ยมผืนผ้ากว้าง 190 ซม. ยาว 320 ซม. โดยมีลักษณะดับแนบ, ขนาดหุ่นยนต์มีขนาดไม่เกินด้านกว้าง 25 ซม.และด้านยาว 25 ซม. และขนาดของกล่องทองคำกว้าง 2 นิ้ว 2 นิ้ว
  4. อนุญาตให้ผู้เข้าแข่งขันปล่อยหุ่นยนต์ด้วยตนเอง หลังจากนั้นแล้วผู้เข้าแข่งขันไม่มีสิทธิแตะต้องหุ่นยนต์ใดๆ ในสนามอีกยกเว้นแต่ต้องการเริ่มต้นใหม่ หากแตะตัวหุ่นแล้ว จะถือว่าเป็นการขอเริ่มต้นใหม่โดยอัตโนมัติ  โดยการเริ่มต้นใหม่จะมีจุดวางอยู่ 2 จุด คือ
    * ถ้าขอเริ่มต้นในขณะที่ยังไม่ออกจากประตู จะเริ่มต้นใหม่ที่จุดปล่อยหุ่นยนต์
    * ถ้าออกจากประตูมาแล้ว จะเริ่มต้นใหม่ที่ประตูทางออก
    ถ้าขอเริ่มต้นใหม่คะแนนจะติดลบครั้งละ 1 คะแนน ยกเว้นเสียแต่ว่าจะเกิดจากเหตุอันสมควร เช่น ห่นยนต์ชนกันจะให้นำห่นไปเริ่มต้นใหม่ทั้งสองฝ่าย
  5. กรณีหุ่นยนต์ทั้งสองเดินชนกัน เกินเวลา 3 วินาที กรรมการจะยกธงแล้วให้ผู้แข่งขันนำหุ่นยนต์มาไว้ที่จุดเริ่มต้นขึ้นอยู่กับว่าเกิดการชนที่ตำแหน่งใด
การวิเคราะห์สนาม
สนามแข่งขันปี2546มีขนาดใหญ่ จึงแบ่งการแก้ปัญหาเป็น 2 ส่วน คือส่วนที่หนึ่งให้หุ่นยนต์เดินผ่านเส้นบาร์โค๊ต แล้วเดินออกประตูไปเก็บกล่องให้ได้ ส่วนที่สองให้หุ่นยนต์นำกล่อง3 กล่องไปวางในห้องให้เป็นแนวเส้นทะแยงมุม ก็จะถือเป็นชัยชนะแบบบิงโกที่ไม่ต้องนับคะแนน จึงวางแผนให้หุ่นยนต์เดินเพียง 3 ครั้ง ถ้าไม่ผิดพลาดเกิดการชนกันระหว่างทางก็จะชนะไปเลย แต่จุดเริ่มต้นของหุ่นยนต์มี 2 ตำแหน่ง(ด้านซ้ายหรือด้านขวา) จึงต้องสร้างโปรแกรมเส้นทางเดิน ให้หุ่นยนต์ 6 เส้นทางคือ left1,left2,left3 เป็นโปรแกรมเส้นทางเพื่อนำกล่องไปใส่ห้อง 1,3,5 และ right1,right2,right3 เป็นโปรแกรมสำหรับเส้นทางนำกล่องไปใส่ในห้อง 2,4,5
ใช้สวิตซ์ 3 ตัวสำหรับเลือกโปรแกรม สวิตซ์ 2 ตัวสำหรับกำหนดให้หุ่นยนต์มีจุดเริ่มต้นด้านซ้ายหรือด้านขวาของสนาม ส่วนสวิตซ์ตัวที่ 3 สำหรับกำหนดเส้นทางเดินแบบที่ 1,2,3 ทำให้สามารถกำหนดได้ว่าจะให้หุ่นยนต์นำกล่องไปวางที่ห้องใดได้
การเดินเกาะเส้นเลือกใช้sensorแสง 4 ตัว โดย 2 ตัวกลางใช้สำหรับเกาะเส้นอีก 2 ตัวข้างใช้สำหรับตรวจสอบทางแยกแบบต่างๆที่มีทั้งแบบ 1-2-3-4 ทางแยก
ใช้สวิตซ์ อีก 3 ตัว ติดไว้ด้านหน้าของตัวหุ่นยนต์ โดยตัวกลางใช้สำหรับตรวจสอบว่าประตูเปิดหรือไม่ ส่วนอีก 2 ตัวด้านข้าง ใช้สำหรับวัดระยะว่าเดินไปถึงประตูห้องแล้วหรือยัง เพื่อวางกล่องไว้หน้าประตูแล้วถอยหลังออกมาแล้วจะหมุนตัวเพื่อใช้กันชนหลัง ดันกล่องให้เข้าไปในห้อง
การแก้ปัญหาโจทย์จะเขียนโปรแกรมแยกเป็น 8 โปรแกรมเพื่อไม่ให้เกิดปัญหาหน่วยความจำ EPROM เต็ม แยกเก็บ 8 page ดังต่อไปนี้
1. โปรแกรมsetup.bsx เป็นโปรแกรมหลัก ที่เราจะเขียนชื่อโปรแกรมย่อยอีก 7 โปรแกรมไว้บรรทัดแรกของโปรแกรม เมื่อเราLoadโปรแกรมนี้เข้าสู่หน่วย ความจำที่page 0 และจะloadโปรแกรมย่อยอีก 7 โปรแกรมเข้าสู่หน่วยความจำที่page 1-7ให้เองโดยอัตโนมัติ
2. โปรแกรมselect.bsx เป็นโปรแกรมสำหรับใช้ควบคุมสวิตซ์สำหรับเลือกเส้นทางทั้ง 6 แบบ
3. โปรแกรม left1.bsx ,left2.bsx ,left3.bsx เป็นโปรแกรมเส้นทางด้านซ้ายของสนามแข่งขัน
4. โปรแกรม right1.bsx ,right2.bsx ,right3.bsx เป็นโปรแกรมเส้นทางด้านขวาของสนามแข่งขัน

ติดsensor สวิตซ์ชนไว้ด้านหน้า 3 ตัว ตัวกลางสำหรับตรวจสอบประตูว่าเปิดหรือไม่ ส่วนตัวข้างทั้งสองสำหรับตรวจสอบว่าเดินถึงประตูแล้วหรือยัง ติดsensorแสง 4 ตัวไว้ด้านล่าง คู่กลางใช้สำหรับเดินเกาะเส้น  sensor4สำหรับตรวจทางแยกด้านซ้าย sensor1สำหรับตรวจทางแยกด้านขวา

  ชมวิดีทัศน์การแข่งขัน