บทความทั่วไป

ประยุกต์ Raspberry Pi 3 เป็นเครื่องเล่นเกมส์ portable game ( เครื่องเกมส์พกพา )

 

โดย Tumrobot

ประยุกต์ Raspberry Pi 3 เป็นเครื่องเล่นเกมส์ portable game ( เครื่องเกมส์พกพา ) - ตอนที่ 1

บทความนี้เป็นการนำเอาบอร์ด Raspberry Pi มาประยุกต์ และเรียนรู้การใช้งาน ระบบปฏิบัตการ Linux ซึ่งจริงๆ แล้วก็สามารถนำไปพัฒนา และนำไปใช้งานได้ค่อนข้างหลากหลายรูปแบบ ไม่ว่าจะเป็นในด้านงาน Automation ต่างๆ หรืองานพวก Secuirity ที่ต้องการการทำงานที่ซับซ้อนมากขึ้น

ปกติแล้ว หากเราจะนึกถึงเครื่องเล่นเกมส์ ไม่ว่าจะเป็นเครื่องเล่นเกมส์ คอนโซล หรือเครื่องเล่นเกมส์แบบพกพา สิ่งที่เราจะนึกถึงสิ่งแรกนั่นก็คือถ้าหากเราอยากจะเล่นเกมส์ หรือเราต้องการมีไว้ใช้งาน ส่วนมาก 90% ขึ้นไปจะนึกถึง การที่ต้องไปหาซื้อเครื่องเล่นเกมส์ ต่างๆ ไม่ว่าจะเป็นเครื่อง Famicom, GameBoy , PSP, Playstation หรือ เครื่องเล่นเกมส์อื่นๆ หรือไม่ก็คงจะนึกถึงการเล่นเกมส์ผ่าน ระบบ Emulator บน PC แทน

คงจะมีน้อยคนนักที่อยากจะทำเครื่องเล่นเกมส์ของตัวเอง หรืออาจจะอยากทำแต่ยังนึกไม่ออก ว่าจะทำ Hardware สำหรับเครื่องเล่นเกมส์เองได้อย่างไร ซึ่งก่อนหน้านี้ตัวผมเองก็ยังนึกไม่ออกเช่นกันครับว่าเราจะสามารถทำเครื่องเล่นเกมส์เองขึ้นมาได้อย่างไรเหมือนกัน เลยลองไปหาข้อมูลทั้งในเวปต่างประเทศ และตาม youtube ของต่างประเทศเค้าทำดู ก็เลยได้ข้อมูลเบื้องต้น มาว่า ณ ตอนนี้เค้านิยมทำเครื่องเล่นเกมส์กันจาก Hardware อยู่ 2 - 3 ตัวนั่นก็คือ

1. บอร์ด Raspberry Pi ซึ่งเป็นบอร์ดในระบบปฏิบัตการ Linux ซึ่งน่าจะมีคนทำระบบเกมส์บน Raspberry Pi มาสักระยะนึงแล้ว แต่ผมเพิ่งรู้ก็เป็นได้ รวมทั้ง ตอนนี้บอร์ด Raspberry Pi ก็พัฒนาบอร์ดออกมาเป็น Raspberry Pi 3 และ Raspberry Pi Zero ซึ่งประสิทธิภาพของบอร์ด เหมาะแก่การที่จะ Run ระบบเกมส์ได้อย่างไหลลื่น และเต็มประสิทธิภาพได้มากขึ้น ข้อดึก็คือ spec การทำงานของบอร์ดแรง ราคาก็พอรับได้หากเทียบกับประสิทธิภาพการทำงานของบอร์ด แต่ข้อเสียของการนำมาทำเป็นเครื่องเกมส์พกพา นั่นก็คือตัวบอร์ดเองกินไฟมากเกินไป ซึ่งจะต้องออกแบบระบบจ่ายไฟแบตเตอรี่ให้กับเครื่องพกพาให้ดีถึงจะเล่นได้แบบต่อเนื่องได้นานๆ

ตัวอย่างเกมส์พกพาด้วย Rapberry Pi

   

 

 

2. ที่เห็นในเวปต่างประเทศ ที่เค้าทำกันก็คือ เค้าใช้ Chip MCU 32 Bit ไม่ว่าจะเป็นของ ST Micro หรือ Microchip นำมาทำเป็นเครื่องเล่นเกมส์ NES ซึ่งดูแล้วก็น่าสนใจและค่าวัสดุอุปกรณ์ก็น่าจะไม่แพง และสามารถออกแบบระบบ power ให้ประหยัดพลังงานได้ดี แต่ข้อเสียก็คือ น่าจะ Run พวกเกมส์ที่ใช้ Spec Hardware ที่ไม่สูงเช่น NES หรือ เกมส์บอย

Picnes : NES(Famicom) Emulator on Microchip PIC microcontoroller.

   

 

stm32f205 NES Emulator

   

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

 

3. ที่เห็นล่าสุดนี้ ก็จะเป็น Chip ESP32 ตัวนี้ก็น่าสนใจอยู่เหมือนกันครับ มีข้อมูลการทำเกมส์ NES ด้วย ซึ่งมีผู้พัฒนา เอามาแชร์ไว้ และสามารถทำตามได้เลย แต่ผมยังไม่ได้ทดสอบนะครับ หากมีโอกาศก็คงอยากลองทำเพื่อศึกษาดูเหมือนกันครับ

   

เครดิตภาพ : http://hackaday.com/2016/10/10/porting-nes-to-the-esp32/

สามารถดูข้อมูลเพิ่มเติมได้ที่

https://github.com/espressif/esp32-nesemu

อีกตัวที่น่าสนใจก็คือ ใช้ Chip ESP32 ทำ Emulator ของ GameBoy

   

 

สรุปแล้วสิ่งที่น่าจะสามารถทำได้เลย

โดยดูจากข้อมูลที่มีและลูกเล่นความสามารถของตัว Emulator ของเครื่องเล่นเกมส์ Hardware และเวลาในการทำก็คงเป็นบอร์ด Raspberry Pi ที่น่าจะสามารถตอบโจทย์ที่ต้องการได้ โดยที่เล็งเอาไว้ก็จะเป็นบอร์ด Raspberry Pi Zero และ Raspberry Pi 3

 

Raspberry Pi Zero

Raspberry Pi 3

Raspberry Pi Specification

   

เครดิตภาพ: http://hackaday.com/2016/02/28/introducing-the-raspberry-pi-3/

 

เหตุผลที่เลือก 2 บอร์ดนี้ก็คงเป็นในส่วนของ Raspberry Pi Zerro ก็คือมีขนาดเล็กเหมาะที่จะนำมาทำ ตัวเครื่องเกมส์พกพาเป็นอย่างมาก และทำสำคัญคือราคา ก็ไม่แพง จากโรงงานผลิต ก็ประมาณ 180 - 200 บาท แต่ปัญหาที่ก็คือ ในบ้านเรายังไม่สามารถหาซื้อได้ โดยเราอาจจะสั่งซื้อแบบออนไลน์มาจากต่างประเทศ แต่ราคาก็แพงเหมือนกันครับ รวมค่าขนส่ง ราคาบอร์ดก็เป็นพันเหมือนกันครับ

บอร์ด Raspberry Pi 3 เป็นบอร์ดที่สามารถหาซื้อได้ในบ้านเรา ในราคา 1500 - 1700 บาท ซึ่งอาจจะมีข้อเสียตรงที่บอร์ดมีขนาดใหญ่และ คอนเน็คเตอร์ที่ค่อนข้างหนากว่า ถ้าเทียบกับบอร์ด Raspberry Pi Zero แต่ข้อดีก็มีตรงที่ บอร์ด Raspberry Pi 3 แรงกว่าครับ และยังมี WiFi โมดูล Build In on board อีกครับซึ่งก็คงเพียงพอที่ในท้ายที่สุดผมก็ต้องเลือกใช้บอร์ด Raspberry Pi 3 ครับ

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

สิ่งที่ต้องเตรียมก็คือ

1. บอร์ด Raspberry Pi 3 ราคา 1500 - 1700 บาท

2. Micro SD Card ขนาดขั้นต่ำ 8GB Class 10 ราคาประมาณ 150 บาท

3. เคสของเครื่องเกมส์ ที่ต้องการทำเป็นเครื่องเกมส์พกพา ในที่นี้ผมมีเครื่อง PSP 3000 เก่าที่มันพังแล้วได้ทำการรื้อเอาใส้ข้างในออกเหลือแต่เคสพลาสติกครับ เอามาทำ

   

หรือเราสามารถสั่งซื้อเคส ของเครื่องเกมส์พกพาแบบอื่นๆ ได้จากเวปออนไลน์ ได้เช่น ตัวเคส GameBoy Advance ในราคาประมาณ 300 บาท

   

 

4. TFT LCD แบบ 4.3 นิ้วสำหรับ PSP หรือ 3.5 นิ้วสำหรับ GameBoy ราคาจะอยู่ที่ประมาณ 500 - 700 บาท

   

 

5. จอยสติ๊ก USB เก่าที่พังแล้ว หรือสามารถหาซื้อได้ในราคา 150 - 200 บาท เพื่อถอดเอาแผง PCB ปุ่มกดมาใช้งาน

   

6. USB Connector สำหรับไว้เชื่อมต่อจอยสำรอง , คีย์บอร์ด หรือ ไว้ต่อกับ USB Flash Drive

7. Jack Speaker ขนาด 3.5 mm

8. Tack สวิตช์ สำหรับ ปุ่ม Start , Select , R1 และ L1

9. Switch Power สำหรับใช้เปิดปิดเครื่อง

10. ลำโพงขนาดเล็ก

11. ชุดขยายเสียงขนาดเล็ก ประกอบด้วย LM386 , Capacitor 1 uF

 

ทำการเตรียม บอร์ด Raspberry Pi 3

ก่อนอื่นเราทำการเตรียมบอร์ด Raspberry Pi 3 ก่อนครับ เนื่องจากว่าบอร์ด Raspberry Pi 3 ที่เรามียังไม่สามารถนำมาทำเป็นเครื่องเล่นเกมส์แบบพกพาได้ เพราะว่าขนาดของบอร์ดมีความหนา จากคอนเน็คเตอร์และ Pin I/O จึงไม่สามารถนำบอร์ดยัดเข้าไปในเคสของ เครื่องเล่นเกมส์แบบพกพาได้ ดังนั้นเราจึงจำเป็นต้องถอดเอา คอนเน็คเตอร์ต่างๆ ออกให้หมดให้เหลือแต่ตัวบอร์ดเปล่า ดังรูปครับ

ปล. ยกเว้นว่า เราอยากนำบอร์ด Raspberry pi มาเล่นเกมส์อย่างเดียว เราก็ไม่ต้องถอดคอนเน็คเตอร์ออกก็ได้ครับ สามารถนำตัว Raspberry pi ไปต่อจอทีวี ผ่านทางช่อง HDMI และช่อง USB นั้นก็นำจอย USB ไปเสียบต่อ แล้วเล่นได้เลยครับ

บอร์ด Raspberry Pi 3 ที่ยังไม่ได้ถอดคอนเน็คเตอร์

 

บอร์ด Raspberry Pi 3 ที่ถอดคอนเน็คเตอร์ออกจากบอร์ดเรียบร้อยแล้ว

 

 

เทคนิค การถอดคอนเน็คเตอร์ออกจากบอร์ด

เนื่องจากบอร์ด Raspberry Pi ตัว PCB ค่อนข้างแข็งแรง เราไม่สามารถใช้เครื่องเป่าลมร้อน เป่าให้ตัวอุปกรณ์หลุดออกมาได้ง่ายๆ ดังนั้นผมเลยใช้คีมตัด ค่อยๆ ตัดพวกคอนเน็คเตอร์ออกเป็นชิ้นเล็กๆ แล้วใช้หัวแร้งบัดกรี และคีมจับ ดึงขาที่ติดบน บอร์ดออก อีกทีครับ ไม่เช่นนั้น บอร์ดอาจจะพังไปซะก่อนได้ครับ

เมื่อได้บอร์ดที่ต้องการแล้วก็ทำการทดสอบการทำงานของบอร์ดครับ เพื่อเช็คว่าบอร์ดไม่ได้พังไปตอนที่เราถอดเอาอุปกรณ์ออกไปซะก่อน และเพื่อเป็นการเตรียม Image สำหรับตัว Emulator ของ Raspberry pi ด้วยครับ

 

ขั้นตอนการเตรียม Micro SD Card

ในที่นี้ผมเลือก Micro SD Card ขนาด 32 GB Class 10 ราคาประมาณ 350 บาท สาเหตุที่ผมเลือก Class 10 เนื่องจากต้องการความเร็วในการเขียนอาจเกมส์ขณะที่มีการเล่นเกมส์ที่ต้องการการใช้งาน Spec ของบอร์ดค่อนข้างสูง เช่น Playstation , PSP หรือ N64 และความจุขนาด 32 GB ก็เพื่อต้องการเก็บ ROM ของเกมส์ ไว้บนเครื่องให้ได้มากที่สุดนั่นเอง

ก่อนอื่นทำการ Format Micro SD Card ด้วยโปรแกรม SDFormatter เพื่อทำการเตรียมพร้อม Card ให้สามารถลง Image ของ Raspberry Pi เกมส์นั่นเอง

 

 

หลังจากนั้นให้ทำการดาวน์โหลด ตัว Emulator ของเกมส์ เพื่อนำมาเขียนลงบน Micro SD Card โดยตัวบอร์ดของเราเป็น Raspberry Pi 3 ซึ่ง Emulator ที่เรานำมาใช้ ก็คือ Retropie ครับ

 

https://retropie.org.uk

ดังนั้นเราจึงต้องเลือกดาวน์โหลดเป็นตัวนี้ครับ

https://github.com/RetroPie/RetroPie-Setup/releases/download/4.1/retropie-4.1-rpi2_rpi3.img.gz

ส่วนท่านที่ใช้บอร์ด Raspbery pi รุ่นอื่นๆ ก็สามารถเข้าไปดูรายละเอียดเพิ่มเติมได้ที่

https://retropie.org.uk/download

เมื่อทำการดาวน์โหลด Image มาเรียบร้อยแล้วให้ทำการ Burn Image ตัว Retropie ลงบน Micro SD Card โดยใช้โปรแกรม Win32DiskImager

   

หลังจากที่ทำการ Burn Retropie Image ลงบน Micro SD Card เรียบร้อยแล้ว ก็ทดสอบเสียบ Card ลงบน Socket ของ Micro SD Card แล้ว จ่ายไฟเข้าไปที่บอร์ดดูครับ ซึ่งอาจจำเป็นต้องต่อจอเพื่อตรวจสอบการทำงานของ บอร์ดและ Card ว่ามีการ Boot Image ได้อย่างถูกต้องครับ

   

ต่อจอแสดงผลดูการทำงานของบอร์ดครับ

 

เพิ่มเติม เมื่อทำการ Boot Image เข้า Retropie Emulator ครั้งแรกถ้าหากเราต่อจอย USB ดังรูป ตัว Retropie จะบังคับให้ทำการ Config ปุ่มกด ให้เราทำการ Config ให้เรียบร้อยครับ

   

ให้กดปุ่มอะไรก็ได้ที่จอย ค้างเอาไว้ครับ

   

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

   

ส่วนใครที่นึกไม่ออกว่าตำแหน่งปุ่มกดที่ต้องกดนั้นควรอยู่ตรงไหน ถ้าเป็นจอย Nintendo ก็สามารถดูตามนี้ได้เลยครับ

   

ส่วนจอยสติ๊กเวอร์ชั่นอื่นๆ สามารถเข้าไปดูรายละเอียดเพิ่มเติมได้ที่

https://github.com/RetroPie/RetroPie-Setup/wiki/RetroArch-Configuration

 

ปุ่ม Key ลัดต่างๆ

Hotkeys Action
Select+Start Exit
Select+Right Shoulder Save
Select+Left Shoulder Load
Select+Right Input State Slot Increase
Select+Left Input State Slot Decrease
Select+X RGUI Menu
Select+B Reset

 

การ Import ROM เกมส์เข้าไปใน Micro SD Card

มี 2 วิธี

สำหรับ ท่านที่ใช้ บอร์ด Raspberry pi 3 สามารถเลือกใช้งานได้ทั้งสองวิธีได้เลย แต่ถ้าเป็นบอร์ด Raspberry pi 1, 2 , Zero ใช้ได้แบบเดียวคือ ใช้ USB Flash Drive ช่วยในการอัพโหลด ROM เข้าไปใน Micro SD Card นั่นเองซึ่ง 2 แบบที่กล่าวไว้นั่นก็คือ

วิธีที่ 1. สำหรับบอร์ด Raspberry Pi 3 หรือ บอร์ดที่เสียบ USB WiFi Dongle ให้โหลด ROM ผ่านระบบ WiFi ได้เลย นั่นก็คือก่อนอื่นให้เราเข้าไปในหน้า Retropie แล้วเลือกไปที่หัวข้อ WiFi แล้วเค้าไปตั้งค่าให้ตัวบอร์ด ไปเกาะ WiFi เร้าเตอร์ของเรา

   

หลังจากเข้าไปที่ WiFi เมนูแล้วให้กด Connect to WiFi Network

   

หลังจากนั้นก็ตั้งค่า SSID โดยเลือกจากรายการที่ Scan เจอได้เลยครับ

   

หลังจากนั้นก็ให้ใส่ค่า password ของเร้าเตอร์ของเรา

   

เมื่อตัวบอร์ด Raspberry pi เชื่อมต่อเข้ากับ WiFi เร้าเตอร์เรียบร้อยแล้ว เราก็จะได้ IP ของบอร์ด Rapsberry pi ที่เกาะในระบบแล้วครับ

   

หลังจากที่เราได้ IP ของบอร์ด Raspberry Pi มาแล้วให้เรานำ IP นั้นมาเปิด บน Window Exploror ครับ เช่น บอร์ด Rapsberry pi 3 ของผมได้ IP เป็น 192.168.1.7 ผมก็ พิมพ์ \\192.168.1.7 ลงไปครับ

   

เราก็จะเห็น Folder ที่เขียนว่า roms ใน Micro SD Card บน Raspberry Pi ครับ

หรือถ้าไม่เข้าหมายเลข IP ที่ได้ก็พิมพ์ที่ Window Exploror เป็น \\retropie ก็ได้ครับ ได้ผลเหมือนกัน

   

เมื่อเราเข้าไปใน Folder roms เราก็จะเห็น Folder ที่เราต้องใส่ ROM สำหรับเกมส์ที่เราต้องการเล่นลงไปใน Folder ได้เลยครับ

   

ตัวอย่างการวางไฟล์ใน roms ของเกมส์ Nintendo ใน Folder nes ครับ

   

วิธีการวาง ROM ของเกมส์ที่ต้องการเล่นลงบน roms folder ก็ให้ทำการลากไฟล์เข้าไปวางได้เลยครับ อาจจะใช้เวลาในการ transfer ไฟล์บ้างครับ

 

วิธีที่ 2 คือการอัพโหลดไฟล์ผ่าน USB Flash Drive

ให้ทำการเลือก USB Flash Drive ขนาดความจุ 8 GB ขึ้นไป ถ้ามีไฟ แสดงการทำงานของ USB Flash Drive ด้วยก็จะดีมากเลยครับ ส่วนการเตรียมการนั้นให้ทำการ Format USB Flash Drive ของเราก่อน โดยเลือก Format type เป็น FAT32 หรือ NTFS

จากนั้นทำการ สร้าง Folder ที่มีชื่อว่า retropie ลงไปใน USB Flash Drive ของเราครับ เสร็จแล้วนำไปเสียบเข้ากับช่อง USB ของ Board Raspberry Pi แล้วรอประมาณ 5 - 10 นาที ให้ถอด USB Flash Drive ออกมาเสียบกลับเข้าที่คอม

ถ้าไม่มีอะไรผิดพลาด สิ่งที่เราจะเจอบน USB Flash Drive ก็จะเป็น Folder แบบนี้ครับ โดยจะมี Folder roms ให้สามารถ วางไฟล์ ROM ของเกมส์ที่ต้องการเล่นลงไป ใน Folder ตามชื่อของเกมส์ได้เลยครับ

เมื่อทำการวางไฟล์ของ ROM เกมส์ที่ต้องการเล่นแล้ว ก็ให้ดึง USB Flash Drive ออกจาก PC แล้วนำกลับไปเสียบเข้าที่ Raspberry Pi อีกรอบครับ หลังจากนั้นให้กดปุ่มสตาร์ บนจอยสติ๊ก แล้วเลือกไปที่ Quit แล้ว เลือกหัวข้อ Restart Emustation หรือ Restart System ก็ได้ครับ

ในส่วนของ การส่งไฟล์ผ่าน WiFi ก็เช่นกันครับ ถ้าหากว่าวางไฟล์เสร็จแล้วก็ให้ทำการกอ Restart Emustation หรือ Restart System เหมือนกันนะครับ

จากนั้นเราก็จะเห็น เมนู ของเกมส์ที่เราจะเล่นเพิ่มเข้ามาครับ

   

เพียงเท่านี้เราก็จะสามารถกดเข้าไปเล่นเกมส์ ได้แล้วครับ

 

Credit :

- https://retropie.org.uk

- https://www.raspberrypi.org

- https://www.youtube.com

- http://hackaday.com