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