กลับไปหน้ารวมไฟล์
arduino-uno-game-engine-with-composite-video-output-b1ac84.md

เอนจิ้นเกม Arduino UNO พร้อมเอาต์พุตวิดีโอ Composite

การสร้างวิดีโอแอนะล็อก: เกมทีวีขาวดำ

โปรเจกต์ส่วนใหญ่จะแสดงข้อความบนหน้าจอ SPI OLED ขนาดเล็ก เอนจิ้นเกม Composite Video นี้ทำในสิ่งที่เป็นไปไม่ได้สำเร็จ: โดยมันบังคับให้โปรเซสเซอร์ Arduino Uno ขนาดเล็ก 8-bit 16MHz สร้างสัญญาณโทรทัศน์แอนะล็อกที่ซับซ้อนขึ้นมาเอง เพื่อวาดเกมย้อนยุคอย่าง Pong หรือ Tetris ลงบนหน้าจอโทรทัศน์ CRT ขนาดใหญ่ในยุค 1990 ได้โดยตรง!

stock_counter_lcd_setup_1772706693516.png

ฟิสิกส์ของสัญญาณวิดีโอ NTSC/PAL

คุณไม่สามารถเสียบสาย USB เข้ากับทีวีได้ Arduino ต้อง "วาด" ภาพลงบนหน้าจอทีวีแบบบรรทัดต่อบรรทัด โดยใช้แรงดันแอนะล็อกที่ลดลงอย่างแม่นยำ และการหน่วงเวลาเป็นไมโครวินาทีที่ไร้ที่ติทางคณิตศาสตร์

  1. โทรทัศน์ CRT มาตรฐานใช้สาย RCA Video Cable สีเหลือง
  2. ตัวแบ่งแรงดัน (Voltage Divider): คุณต่อสาย Arduino Digital Pin 7 และ Pin 9 เข้าด้วยกันโดยใช้ตัวต้านทาน 470-ohm และ 1K-ohm สิ่งนี้สร้างวงจร Digital-to-Analog converter แบบ 3 ขั้นตอนอย่างง่าย!
  3. การซิงโครไนซ์ (Synchronization):
    • 0.0 Volts = SYNC Pulse (บอกให้ลำแสงอิเล็กตรอนของทีวีเลื่อนไปยังบรรทัดแนวนอนถัดไป)
    • 0.3 Volts = พิกเซลสีดำ
    • 1.0 Volts = พิกเซลสีขาวสว่าง

การประมวลผล Raster ของไลบรารี TVout

ในการสร้างสัญญาณที่แม่นยำอย่างน่าทึ่งนี้ ไลบรารี <TVout.h> จะเข้าควบคุมอินเทอร์รัปต์หลักที่ลึกที่สุดของชิป ATmega328P

  1. ไมโครคอนโทรลเลอร์ใช้พลังการประมวลผล 90% ในการส่งพัลส์ 1.0V และ 0.3V ที่แม่นยำออกมาอย่างรวดเร็ว มันวาดกริดสีขาวดำขนาด 128x96 พิกเซล ลงบนหน้าจอขนาดใหญ่ 60 ครั้งต่อวินาที!
  2. คุณมีพลัง CPU เหลือเพียง 10% เพื่อใช้ประมวลผลลอจิกของเกม!
  3. TV.draw_rect(20, 20, 50, 50, WHITE);
  4. ไลบรารีจะแทรกพิกเซลสีขาวบริสุทธิ์ลงในบัฟเฟอร์วิดีโอสตรีม และกล่องสีขาวสว่างจะปรากฏขึ้นอย่างเสถียรบนโทรทัศน์ในห้องนั่งเล่น!

ฮาร์ดแวร์ CRT ที่จำเป็น

  • Arduino Uno (ต้องมีคริสตัลออสซิลเลเตอร์ 16MHz ที่เสถียรอย่างยิ่ง)
  • ตัวต้านทานเฉพาะสองตัว (470 Ohm และ 1K Ohm) เพื่อสังเคราะห์แรงดันสัญญาณวิดีโอ
  • RCA Yellow Video Cable เก่า ที่ถอดฉนวนออกจนเห็นสายทองแดงเปลือย
  • โทรทัศน์ CRT เก่า หรือจอภาพสมัยใหม่ที่มีอินพุต RCA Composite
  • Potentiometers หรือ Arcade buttons ที่เชื่อมต่อกับ analog pins เพื่อใช้เป็นไม้พายในเกม Pong หรือ Joystick!

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

title: "Arduino UNO game engine with composite video output"
description: "Bare metal game dev! Turn a simple Uno into an Atari! Write a custom video generation framework that outputs RCA composite AV signals directly into an old CRT television."
category: "Games & Toys"
difficulty: "Advanced"