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

ฟิสิกส์ของสัญญาณวิดีโอ NTSC/PAL
คุณไม่สามารถเสียบสาย USB เข้ากับทีวีได้ Arduino จะต้อง "วาด" ภาพลงบนหน้าจอทีละบรรทัดโดยใช้การลดแรงดันไฟฟ้าอนาล็อกที่แม่นยำ และการหน่วงเวลาเป็นไมโครวินาทีที่ไร้ที่ติในทางคณิตศาสตร์
- โทรทัศน์ CRT มาตรฐานใช้สาย RCA Video สีเหลือง
- The Voltage Divider: คุณต่อ Arduino Digital Pin 7 และ Pin 9 เข้าด้วยกันโดยใช้ตัวต้านทาน 470-ohm และ 1K-ohm สิ่งนี้สร้างวงจร Digital-to-Analog converter แบบ 3 สเต็ปที่เรียบง่าย!
- The Synchronization:
0.0 Volts= SYNC Pulse (บอกปืนอิเล็กตรอนของทีวีให้เลื่อนไปยังเส้นแนวนอนถัดไป)0.3 Volts= Black Pixel1.0 Volts= Bright White Pixel
การประมวลผล Raster ของไลบรารี TVout
เพื่อสร้างสัญญาณที่แม่นยำอย่างน่ากลัวนี้ ไลบรารี <TVout.h> จะเข้าควบคุม interrupt ระดับลึกที่สุดของชิป ATmega328P
- ไมโครคอนโทรลเลอร์ใช้พลังการประมวลผล 90% ในการส่ง pulse
1.0Vและ0.3Vที่แม่นยำอย่างบ้าคลั่ง มันวาดตารางขาวดำขนาด 128x96 pixel ลงบนหน้าจอขนาดใหญ่ 60 ครั้งต่อวินาทีอย่างแท้จริง! - คุณมีพลัง CPU เหลือเพียง 10% เพื่อใช้รันลอจิกของเกม!
TV.draw_rect(20, 20, 50, 50, WHITE);- ไลบรารีจะแทรก 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!