กลับไปหน้ารวมไฟล์
oled-pong-game.md

ตู้เกมจิ๋ว: OLED Pong

เกม OLED Pong นี่แหละคือความจ๊าบของการย่อส่วนว่ะน้อง แค่ใช้ I2C protocol กับ display libraries เทพๆ ก็รันกราฟิกเนียนๆ ระดับ 60 FPS บนจอที่เล็กกว่าแสตมป์ได้แล้ว บอกเลยว่าเฟี้ยวจัด

stock_counter_lcd_setup_1772706693516.png

Graphic Engine บน Arduino

การจะขับจอ OLED ให้เนียนตา มันต้องมีสิ่งที่เรียกว่า "Frame Buffer" นะเว้ย

  1. The Buffer: ตัว Arduino จะจองพื้นที่ SRAM (ประมาณ 1024 bytes สำหรับจอ 128x64) ไว้ทำหน้าที่เป็นผืนผ้าใบล่องหน
  2. Drawing: เราจะใช้พวก Function อย่าง display.fillRect() มาคำนวณคณิตศาสตร์หาตำแหน่งไม้ตีกับลูกบอล แล้วไปแก้ค่า bits ในผ้าใบลับนั่นแหละ
  3. The Push: พอเราสั่ง display.display() ปุ๊บ มันจะยิงข้อมูลรวดเดียว 1024 bytes ไปที่จอ OLED ในเสี้ยววินาที จนเกิดเป็นภาพเคลื่อนไหวลื่นๆ ให้เราเห็นไงล่ะน้อง

อุปกรณ์ที่ต้องจัด (ห้ามลืมนะวัยรุ่น)

  • Arduino Uno/Nano: ตัวประมวลผลหลัก สู้งานนะน้องตัวนี้
  • 0.96" I2C OLED (SSD1306): จอจิ๋วแต่แจ๋ว ห้ามต่อผิด Pins นะ เดี๋ยวควันขึ้น
  • Two Potentiometers: วอลลุ่ม 2 ตัว เอาไว้เลื่อนไม้ขึ้น-ลงตามแนว Y-axis
  • A piezo buzzer: เอาไว้ทำเสียง "ติ๊ดๆ" เวลาลูกบอลเด้ง เพิ่มความเร้าใจ

ทำไมต้องใช้ Potentiometers?

ถามว่าใช้ปุ่มกดได้ไหม? ได้แหละ แต่ Potentiometers มันให้ Analog input ที่เนียนกว่าเยอะ ตัว ADC ของ Arduino จะเปลี่ยนค่าจากการหมุน (0-1023) ให้กลายเป็นพิกัด Y ของไม้ตี (0-64) ได้โดยตรงเลย ได้ฟีลเหมือนหมุนตู้เกม Arcade ยุค 70 คลาสสิกสุดๆ หล่อเท่เลยงานนี้!

ข้อมูล Frontmatter ดั้งเดิม

title: "OLED 0.96 inch display Pong Game"
description: "Arcade nostalgia on a tiny screen! Fit an entire game of Pong onto a 1-inch screen using the fast-refreshing OLED display."
category: "Games & Toys"
difficulty: "Intermediate"