วันจันทร์ที่ 20 สิงหาคม พ.ศ. 2555

ตัวอย่างเขียนโปรแกรมควบคุมหุ่นยนต์เดินตามเส้น


c/c++ robot simulator track line
ตัวอย่างการเขียนโปรแกรมควบคุมหุ่นยนต์ เดินตามเส้น โดยใช้ Sensor 2 ตัว

วันศุกร์ที่ 17 สิงหาคม พ.ศ. 2555

แก้โจทย์ปัญหาการเขียนโปรแกรมควบคุมหุ่นยนต์ 02


โจทย์ที่ 002    ให้นักเรียนเขียนโปรแกรมเพื่อแก้โจทย์ปัญหา ดังนี้
1. ถ้ากดปุ่ม sw 1   สั่งให้หุ่นยนต์เดินหน้าและแสดงข้อความที่หน้าจอว่า "   go    "
2. ถ้ากดปุ่ม sw 2   สั่งให้หุ่นยนต์เลี้ยวซ้ายและ แสดงข้อความที่หน้าจอว่า "   left  "
3. ถ้ากดปุ่ม  sw 3  สั่งให้หุ่นยนต์เลี้ยวขวาและ แสดงข้อความที่หน้าจอว่า "   right  "
4. เมื่อไม่มีการกดปุ่มใด ๆ ให้หยุดอยู่กับที่ และ ไม่แสดงข้อความที่หน้าจอว่า

มาดูวิดีโอสาธิตการเขียนโปรแกรมนี้กันนะครับ โดย เด็กชายกลยุทธ สมยิ่ง  นักเรียนฃั้น ม.1/1 จะสาธิตวิธีการเขียนโปรแกรมและทดสอบตั้งแต่ต้นจนจบนะครับ 



วันพุธที่ 15 สิงหาคม พ.ศ. 2555

แก้โจทย์ปัญหาการเขียนโปรแกรมควบคุมหุ่นยนต์


โจทย์ที่ 001    ให้นักเรียนเขียนโปรแกรมเพื่อแก้โจทย์ปัญหา ดังนี้
ให้หุ่นยนต์เดินหน้าตลอดเวลา แต่มีเงื่อนไขว่า
1. ถ้ากดปุ่ม sw 1   สั่งให้หุ่นยนต์เลี้ยวซ้ายและแสดงข้อความที่หน้าจอว่า "   left    "
2. ถ้ากดปุ่ม sw 2   สั่งให้หุ่นยนต์เลี้ยวขวาและ แสดงข้อความที่หน้าจอว่า "   right  "
3. ถ้ากดปุ่ม  sw 3  ให้ถอยหลัง  และแสดงหน้าจอว่า "  back  "
4. ไม่กดปุ่มอะไรเลย ให้เดินหน้าตลอด

มาดูวิดีโอสาธิตการเขียนโปรแกรมนี้กันนะครับ โดย เด็กชายอภิสิทธิ์  บุญทูล นักเรียนฃั้น ม.1/1 จะสาธิตวิธีการเขียนโปรแกรมและทดสอบตั้งแต่ต้นจนจบนะครับ


การขับเคลื่อนหุ่นยนต์เบื้องต้น


หุ่นยนต์จะประกอบด้วยมอเตอร์ 2 ตัวทำหน้าที่ในการขับเคลื่อนหุ่นยนต์
มอเตอร์ M1 จะอยู่ทางซ้ายของหุ่นยนต์  ,  มอเตอร์ M2 จะอยู่ทางขวาของหุ่นยนต์

ฟังก์ชั่นที่ใช้ในการควบคุมมอเตอร์
1.void motor(char _channel , int _power);
2.void motor_stop(char _channel);

1.void motor(char _channel , int _power);

พารามิเตอร์ _channel     ทำหน้าที่กำหนดช่องของมอเตอร์ที่ต้องการขับ
                                       ช่องที่ 1 มอเตอร์ทางซ้ายของหุ่นยนต์
                                       ช่องที่ 2 มอเตอร์ทางขวาของหุ่นยนต์
                _power       ทำหน้าที่กำหนดกำลังขับมอเตอร์  มีค่า -100  ถึง 100
                                       ถ้ากำหนด 1 ถึง 100 จะทำให้มอเตอร์หมุนไปข้างหน้า    แต่ถ้ากำหนดค่า _power ให้มีค่าเป็นลบ (-1 ถึง -100)จะทำให้มอเตอร์หมุนไปข้างหลัง

2.void motor_stop(char _channel);
พารามิเตอร์ _channel     ทำหน้าที่กำหนดช่องของมอเตอร์ที่ต้องการจะหยุด
                          1   หยุดมอเตอร์ M1
                          2   หยุดมอเตอร์ M2
                          0   หยุดมอเตอร์ M1 และ M2


ตัวอย่าง 1 สร้างฟังก์ชั่น go เพื่อสั่งให้หุ่นยนต์เดินหน้าด้วยพลังงาน 50 % และเวลา 1000 มิลลิวินาที
รูปแบบดังนี้













วิดีโอตัวอย่าง

ตัวอย่างรูปแบบหุ่นยนต์ C/C++ robot simulator


ได้รับการสนับสนุนจากลูกศิษย์ ม.3 นะครับ ในการออกแบบหุ่นยนต์ ให้มีความหลากหลาย จะได้ไม่น่าเบื่อกับการเขียนโปรแกรมควบคุมหุ่นยนต์


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

วันอาทิตย์ที่ 5 สิงหาคม พ.ศ. 2555

จำลองหุ่นยนต์แก้โจทย์ปัญหาหุ่นยนต์อัตโนมัติ ม.ต้น งานศิลปฯ ครั้งที่ 62


   วันนี้ได้ทำการปรับปรุงโปรแกรมจำลองหุ่นยนต์เพื่อให้แก้โจทย์ปัญหาการแข่งขันหุ่นยนต์อัตโนมัติ
ระดับมัธยมศึกษาตอนต้น งานศิลปหัตถกรรมนักเรียน ครั้งที่ 62 ปีการศึกษา 2555  ตั้งใจว่าจะทำให้
สมบูรณ์แต่เวลาน้อยนิด เอาให้เห็นภาพคร่าว ๆ เพื่อให้นักเรียนได้เข้าใจแนวทางและสภาพสนาม

ไปดูวิดีโอสั้น ๆ นะครับจะได้เป็นแนวทาง

วันศุกร์ที่ 3 สิงหาคม พ.ศ. 2555

วิธีการออกแบบภารกิจให้นักเรียนได้ฝึกคิดและวางแผน


   การออกแบบภารกิจนั้นคุณครูสามารถออกแบบได้ด้วยตัวเอง ขึ้นอยู่กับแนวคิดว่า
จะฝึกให้นักเรียนได้คิดวิเคราะห์ ในเรื่องใด และสามารถบันทึกรูปแบบภารกิจเพื่อ
ให้นักเรียนได้โหลดไปฝึกซ้อมได้เหมือนกันนะครับ วิธีการก็ง่าย ๆ มากนะครับ แค่
ลากวัตถุ กล่อง และหุ่นยนต์ ไปวางในตำแหน่งที่ต้องการ และทำการบันทึกไว้
เท่านั้น แล้วให้นักเรียนโหลดไปเปิด แต่ตัวโปรแกรมยังไม่ได้ทำคำอธิบายเพิ่มเติม
ให้กับภารกิจที่สร้างขึ้นใหม่ (เพิ่งคิดได้ตอนหลังจากที่ทำเสร็จ ยังไม่มีเวลาอัพเดต
ต้องทำใจนิดนึง เป็นครูผู้สอนงานก้เยอะแยะ เป็นตาแป๊ะขายโอ่ง ) ดูวิดีโอประกอบ
นะครับ ยังไม่ได้ใส่เสียงภาพนะครับ ช่วงนี้หวัดกินไม่ค่อยมีเสียง ดูหนังไบ้ไปพลาง ๆ
ก่อนนะครับ

ภารกิจที่ 1 ดันวัตถุออกนอกสนามให้หมด


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

   รูปแบบคำสั่งมีดังนี้
1. คำสั่ง l90      เลี้ยวซ้าย90 องศา (แอล90 นะ)
2. คำสั่ง r90     เลี้ยวขวา90 องศา
3. คำสั่ง u180  เลี้ยวกลับหลังหัน
4. คำสั่ง up      เก็บของ การทำงานคำสั่งนี้มันจะเดินตรงไปหาวัตถุเอง ระหว่างนั้นจะไม่นับแยกนะ
5. คำสั่ง down วางของ/วัตถุลง
6. คำสั่ง push   ผลักหรือดันวัตถุไปข้างหน้าแล้วถอย
7. คำสั่ง stop   หยุดการทำงานของหุ่นยนต์

   เมื่อนักเรียนได้เรียนรู้รูปแบบคำสั่งไปกันแล้วมันเริ่มทำภารกิจที่ 1 กันเลยดีกว่านะครับ
กับ "ดันวัตถุให้มันออกนอกสนามให้หมด"

ในสนามนี้จะวางวัตถุตามรูปด้านบนนี้นะครับ นักเรียนไม่ต้องกังวลว่าจะจัดตำแหน่ง
ไม่ถูกนะครับ ให้คลิกที่ปุ่ม 1 แล้วโปรแกรมจะจัดตำแหน่งให้เหมือนเดิม   มาเริ่มวิเคราะห์
และวางแผนกันหน่อย  จากรูป หุ่นยนต์หันหน้าไปทางขวา จะเริ่มนับแยกเป็น 0 ดูจาก
ขอบสนามทางด้านล่างขวา Cross : 0  นะครับ  ต่อไปหุ่นยนต์เดินหน้าไปเจอแยก
ที่ 1 ครูจะให้มันเลี้ยวขวา จะพิมพ์คำสั่งดังนี้นะครับ

ต่อไปนะครับ หุ่นยนต์ก็จะเดินตรงไปเจอแยกที่ 2 ถ้าไม่มีการเลี้ยวก็ไม่ต้องใส่อะไรลงไป
นะครับ ต่อไปเมื่อเจอแยกที่ 3 จะสั่งให้มันเลี้ยวขวาอีก แล้วเดินตรงไปเจอแยกที่ 4 ให้
ทำการผลักวัตถุไม้ ใช้คำสั่ง push  และตามด้วยคำสั่ง u180 เพื่อให้หุ่นยนต์หันกลับมา
ในบรรทัดนี้จะมี 2 คำสั่งด้วยนะ  ดังรูปด้านล่างนี้
ทดสอบดูนะครับด้วยการกดปุ่ม 
 ปุ่ม play first เริ่มเล่นตั้งแต่แรก หรือแยกที่ 0 นั่นเองครับ


ผลลัพธ์ก็จะได้ดังนี้นะครับ  http://youtu.be/TFmRKuoCkzk   ดูจาก youtube ก่อนนะ

และต่อไปให้นักเรียนลงมือปฏิบัติด้วยตนเองนะครับ ทำให้ดูเป็นตัวอย่างเพียง
เท่านี้และค่อยมาดูเฉลยกันต่อไปนะครับ เมื่อนักเรียนทำเสร็จแล้วให้ทำการบันทึก
งานของนักเรียนไว้ด้วยนะครับ ปุ่มรูปแผ่นดิสเก็ต หรือสัญลักษณ์การบันทึกนั่นหล่ะ






มาใช้ฝึกสมองลำดับความคิด ด้วยโปรแกรมจำลองหุ่นยนต์


    สวัสดีครับ นักเรียนทุกคนวันนี้ได้ฤกษ์งามยามดีกันแล้ว มาใช้ฝึกสมองลำดับความคิด
ด้วยโปรแกรมจำลองหุ่นยนต์ ก่อนอื่นให้นักเรียนทำการดาวน์โหลดโปรแกรมมาติดตั้งกัน
ก่อนนะครับ สิ่งที่ต้องเตรียมก่อนการติดตั้ง
   1. ให้ทำการดาวน์โหลด Microsoft .NET Framework 4  จากลิงค์ตรงนี้เลย
        http://www.microsoft.com/en-us/download/details.aspx?id=17718
   2. ตัวโปรแกรม robotsimulator จากลิงค์ด้านล่างนี้ครับ
        https://docs.google.com/open?id=0B9lFSMNXYl3wdGo0cmFBUENnXzA
        http://goo.gl/6WcJOs
        เลือกเมนูไฟล์  -> ดาวนโหลด    โหลดมาแล้วไม่ต้องติดตั้งโปรแกรม สามารถดับเบิล
คลิกใช้งานได้เลยครับ

มาทำความรู้จักส่วนประกอบของโปรแกรมและปุ่มต่าง ๆ นะครับ

1. เป็นส่วนของการพิมพ์โค็คคำสั่ง (บังคับว่านักเรียนต้องพิมพ์เท่านั้น ฝึกพิมพ์เยอะ ๆ นะ)
2. ส่วนการจำลองการทำงานของหุ่นยนต์
3. เลือกด่าน หรือ ภารกิจ

วันนี้จบเพียงเท่านี้ก่อนนะครบ สงสัยเรื่องอะไรก็คอมเมนท์มานะครับ แล้วพบกันใหม่
กับบทเรียนต่อไปนะครับ   






วันพุธที่ 1 สิงหาคม พ.ศ. 2555

โปรแกรมจำลองการเดินของหุ่นยนต์


       โปรแกรมนี้ผมจัดทำขึ้นเพื่อให้นักเรียนได้ฝึกฝนและออกแบบผังความคิดของตัวนักเรียนเอง
ทำให้นักเรียนคิดอย่างเป็นลำดับขั้นตอนก่อน หลัง เพื่อให้หุ่นยนต์ทำงานตามคำสั่งที่เขียนลงไป
ให้กับหุ่นยนต์ ซึ่งผมมีแนวคิดจาก ในการแข่งขันหุ่นยนต์อัตโนมัติ ในงานศิลปหัตกรรมนักเรียน
ครั้งที่ 61 ปีการศึกษา 2554 ซึ่งโจทย์ในตัวนั้น ในเรื่องของสนามจะต้องตรวจสอบแยกต่าง ๆ ซึ่ง
เป็นการนับแยก  ว่าเมื่อเจอแยกที่เท่าไร แล้วสั่งให้หุ่นยนต์ทำอะไร เดินไปทางไหนเป็นต้น และก็
สืบเนื่องจากไปเจอเกม ๆ หนึ่งชื่อว่าเกม เกมส์ Light Bot2.0 ซึ่งตรงกับแนวคิดที่วางไว้เลย ก็เลย
ได้ออกแบบรูปร่างหน้าตาของโปรแกรมจำลองแบบนี้หล่ะครับ

คลิกดูรูปใหญ่ที่รูปเลย
ซึ่งคำสั่งต่าง ๆ และโจทย์แบบฝึกต่าง ๆ ในโปรแกรมก็มีให้ 8 ภารกิจด้วยกัน และครูก็สามารถ
ออกแบบโจทย์ใหม่ ๆ ก็กับนักเรียนและสามารถบันทึกภารกิจรวมถึงสนามได้ด้วยเช่นกัน 
และที่สำคัญนะครับ คือว่า ผมทำให้มัน gen ออกมาให้เป็นโค๊ด Source Code ภาษาซี สำหรับ
ไปใช้กับหุ่นยนต์จริง ๆ ด้วย ดังรูปนี้เลย


สำหรับวิธีการใช้งาน ค่อยเจอกันตอนต่อไปแล้วกันนะครับ (ช่วงนี้งานเยอะไปหน่อยยังไม่มีเวลาทำคู่มือ)