ข้ามไปที่เนื้อหาหลัก

เกมส์เสี่ยงโชคด้วยบอร์ ATX-2





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

       เรื่องนี้เริ่มจากกลุ่มเพื่อนๆ นัดกันเพื่อสังสรรค์ย้อนหลังวันปีใหม่ และอยากได้เกมส์เพื่อเพิ่มความสนุกสนานในการสังสรรค์ด้วยความเป็น Maker ของเราจึงคิดที่จะสร้างเกมส์ขึ้นมาสักอันโดยได้แรงบันดาลใจจากสมัยเด็กที่เคยหยอดตู้สายไหมที่ใช้เหรียญหยอดแล้วมีเข็มหมุนไปชี้ที่ตัวเลขว่าเราจะได้สายไหมกี่ชิ้น มาประยุกต์เป็นเกมส์สำหรับสายแข็งในรูปแบบดิจิตัล กดปุ่มค้างไว้แล้วจะมีรายชื่อเพื่อนๆที่ร่วมเล่นวิ่งไปเรื่อยๆ จนปล่อยปุ่มกดปรากฏเป็นชื่อใคร คนนั้นคือผู้โชค และกดอีกครั้งว่าจะโชคดีได้ดื่นกี่ช็อต และด้วยเวลาอันจำกัดมีไม่ถึง 20 นาทีเลยมองหาของใกล้ตัวที่ใช้งานได้สะดวกรวดเร็วก็เจอ บอร์ดควบคุม ATX-2 ของ Inex ครับ ไม่ต้องโยงสายลง Breadboard ไม่ต้องทำ PCB มีจอ LCD มาพร้อมเสียบ Adaptor ได้เลย ก็เลยลงมือสร้างเลย

 วีดีโอตัวอย่างการเล่นเกมส์เสี่ยงโชค

เริ่มลงมือทำเลยสิ

    มาดูกันที่อุปกรณ์กันก่อนเลยครับ มีแค่นี้ตามรูปด้านล่างเลยครับ บอร์ด ATX-2 , Switch, สายไฟเชื่อมต่อ, บูชโลหะ, สกรู 

อุปกรณ์ที่ใช้ในการสร้าง

1.ขั้นตอนการประกอบก็ไม่มีอะไรมากครับเริ่มด้วยการยึด Switch เข้ากับบูชโลหะตามภาพด้านล้าง


2. ยึดบูชที่ประกอบแล้วเข้ากับฐานบอร์ดและชื่อต่อ Switch เข้ากับพอร์ทที่ต้องการใช้ด้วยสายไฟ ในที่นี้ผู้เขียนเลือกใช้พอร์ท 18



เสร็จแล้วครับในส่วนของ hardware ง่ายมากๆ ครับนอกจากบอร์ด ATX-2 แล้ว IPST-SE, POP-XT, POP-X2 ก็สามารถนำมาทำได้เหมือนครับครับ หรือถ้ามีเวลาในการทำก็สามารถใช้บอร์ด Arduino ทั่วๆไปต่อกับจอได้เหมือนกัน พอ Hardware เสร็จเราก็มาเขียนโปรแกรมกันต่อครับ ตัวอย่างโปรแกรมตามด้านล่างใครใช้บอร์ดอะไร จอแบบไหน ก็ไปเลือก Lib ให้ถูกต้องครับ


#include <ATX2.h>                        // เรียกใช้ Lib ของบอร์ด ATX-2

int X,Y;                                           // สร้างตัวแประ X, Y

void setup() {
X = 5;
Y = 2;
pinMode(18,INPUT);             //กำหนดพอร์ท 18 ทำงานเป็น Input
glcdMode(1);                          //โหมดจอภาพแนวนอน
setTextSize(2);                        //ตัวอักษรขนาด 2
sw_OK_press();                      //รอกดปุ่ม OK เพื่อเริ่มเกมส์
}

void loop() {
glcdClear();                            // เครียล์หน้าจอ
int player = 0;                        // กำหนดค้าเริ่มต้นของเกมส์
int shot = 0;
while(digitalRead(18));          //รอจนกว่าจะมีการกดปุ่ม
while(!digitalRead(18)){       //วนลูปจนกว่าจะปล่อยปุ่มกด
player++;                        //เพิ่มค่าตัวแปรชื่อผู้เล่น
if (player > 4) player = 1;    //ถ้าตัวแปรมีค่ามากกว่าจำนวนผู้เล่น ให้รีเซ็ตค่ามาเป็น 1
switch (player) {
   case 1:                            //ถ้าตัวแปรเท่ากับ 1 
     glcd(Y,X,"TOR    ");    //แสดงชื่อผู้เล่น
     break;
   case 2:                            //ถ้าตัวแปรเท่ากับ 2
     glcd(Y,X,"BOO    ");    //แสดงชื่อผู้เล่น
     break;
   case 3 :                            //ถ้าตัวแปรเท่ากับ 3 
     glcd(Y,X,"TON    ");     //แสดงชื่อผู้เล่น
     break;
   case 4 :                            //ถ้าตัวแปรเท่ากับ 4
     glcd(Y,X,"JACK   ");    //แสดงชื่อผู้เล่น
     break;

}
}
glcd(4,1,"Shot :");
while(digitalRead(18));              //รอจนกว่าจะมีการกดปุ่ม
while(!digitalRead(18)){           //วนลูปจนกว่าจะปล่อยปุ่มกด
shot++;                               //เพิ่มค่าตัวแปรจำนวนช็อต
if (shot > 2) shot = 0;        //ถ้าตัวแปรมีค่ามากกว่าจำนวนช็อตสูงสุด ให้รีเซ็ตค่ามาเป็น 0
glcd(4,8,"%d",shot);         //แสดงจำนวนช็อตที่ต้องดื่ม
}
sw_OK_press();                       //รอการกดปุ่ม OK เพิ่มเริ่มเกมส์ใหม่

}

-----------------------------------------------------------------------------------------------------------------


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




ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

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

ตัวอย่าง AI ง่ายๆโปรแกรมหุ่นยนต์อัตโนมัติงานแข่งขัน RMUTP Robocon 2017 จากการแข่งขันหุ่นยนต์ RMUTP Robocon 2017 ที่ผ่านมาเมื่อวันที่ 19-20 มกราคม 2560 ทีม iGenius Robot #49 ของเราได้ป้องกันแชมป์ได้สำเร็จถึงแม้ว่าหุ่นจะช้ากว่า แต่ด้วยการเขียนโปรแกรมที่ใส่วิธีการคิดให้หุ่นสามารถเปลี่ยนแปลงการทำงานตามสถานะการณ์ต่างๆ ได้จึงทำให้ได้เปรียบในการแข่งขันเพราะไม่ต้องขอ retry ออกมาเพื่อเปลี่ยนโปรแกรมในการทำงานในกรณีที่แท่นวางชิ้นงานไม่ว่าง หุ่นยนต์จะบันทึกข้อมูลและหาเส้นทางในการวางชิ้นงานใหม่เองและเป็นเส้นทางที่ใกล้ๆ ที่สุดเพื่อไปหยิบชิ้นงานชิ้นต่อไปด้วย นอกจากนี้หุนยนต์ยังสามารถรู้ได้ทันทีเมื่อในฝั่งของตัวเองวางชิ้นงานเรียงติดกัน 3 ชนิดเพื่อไปหยิบชิ้นบิงโกไปวางเพื่อจบเกมส์ได้เอง ระหว่างแข่งขันหุ่นยนต์คิดเองทั้งหมดจึงทำให้คู่ต่อสู้ยากที่จะดักทางได้ ต่างจากการเขียนโปรแกรมที่ใส่ขั้นตอนลงไปในหุ่นที่ทำให้เห็นการทำงานที่เป็นรูปแบบที่ผู้เขียนใส่ลงเองเพื่อให้หุ่นทำงานตามต้องการ ถือว่าเป็นจุดเริ่มต้นของการเขียนโปรแกรมหุ่นยนต์แบบ AI ที่อยากให้เพื่อนๆ ในวงการหุ่นยนต์เพื่อการศึกษาให้ความสนในมาเขี...

NETPIE Mobile app ง่ายๆ แค่ติดตั้ง ล็อคอิน ใช้งาน

NETPIE Mobile app ง่ายๆ แค่ติดตั้ง ล็อคอิน ใช้งาน           ฟีเจอร์ใหม่แกะกล่องจาก NETPIE กับ Mobile app ที่มีให้โหลดทั้ง Andriod และ iOS ที่ใช้งานง่ายแสนง่ายเพียงแค่ติดตั้ง ล็อคอิน แล้วใช้งาน ซึ่งโดยตัว App นี้จะมีฟังค์ชั่นหลักอยู่ 2 ส่วนคือ Freebaord คือ Dashboard สำหรับ IoT ที่สามารถแสดงผล และควบคุมอุปกรณ์ IoT ของเราได้นั่นเอง โดยการใช้งานในส่วนนี้เราจะต้องทำการสร้าง Widget ต่างๆของเราบน Freebaord บน PC ผ่านเว็บ NETPIE ก่อนจึงจะสามารถนำมาใช้งานได้ นั่นหมายความว่า Freebaord ของเราจะสามารถทำงานได้ทั้งบน PC ผ่าน Browser และมือถือของเราผ่าน NETPIE App นั่นเอง Notification เป็นการ Alert จากอุปกรณ์ IoT เพื่อแจ้งเตือนเหตุการณ์ที่สำคัญทำให้รับรู้และแก้ไขสถานการณ์ต่างๆ ได้อย่างทันท่วงที โดยที่ไม่ต้องนั่งมองจอแสดงผลอยู่ตลอดเวลานั่นเอง ซึ่งในส่วนนี้ทาง NETPIE กำลังจะมีวีธีการตั้งค่าออกมาเร็วๆ นี้ครับ มารเริ่มต้นการใช้งาน NETPIE Mobile app ใน 3 ขั้นตอนกันเลยดีกว่าครับ (ในที่นี้ผมใช้ iPhone ในการทดสอบ) 1. ติดตั้ง     วิธีการติดตั้งนั้นก็ง่า...