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

ชื่อโปรเจกต์: Arduino UNO game engine พร้อมเอาต์พุตวิดีโอ Composite

การสังเคราะห์วิดีโออนาล็อก: เกมทีวีขาวดำ

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

stock_counter_lcd_setup_1772706693516.png

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

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

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

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

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

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

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

  • Arduino Uno (ต้องมี oscillator crystals ที่ 16MHz ซึ่งเสถียรอย่างเหลือเชื่อ)
  • ตัวต้านทานที่เฉพาะเจาะจงสองตัว (470 Ohm และ 1K Ohm) เพื่อสร้างแรงดันสัญญาณวิดีโอ
  • สาย RCA Yellow Video Cable เก่า ที่ถอดฉนวนออกจนเห็นสายทองแดงเปลือย
  • โทรทัศน์ CRT เก่า หรือจอภาพสมัยใหม่ที่มีอินพุต RCA Composite
  • Potentiometers หรือ Arcade button ที่ต่อกับ analog pin เพื่อทำหน้าที่เป็น Pong paddles หรือ 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"