[Sprite_TM] wanted to challenge his VHDL skills, and there’s no more satisfying way of doing this than making something that will be playable when you’re done. He decided to try his hand at creating a vector-based CRT arcade. The distinction here is that vector-based games take control of the magnetic ring that guides the electron path toward the screen. This technique allows point-to-point graphic generation rather than the pixel-based scanning that CRT televisions use.
He had a small color CRT on hand and decided to grab a VHDL version of asteroids from the Internet to see if he could get it to work. But upon further inspection of the source he found that it had a chunk of code which rasterized the vectors for use with a scanning monitor. After removing that chunk, and giving it a spin he had enough confidence that he knew what he was doing to start implementing his own game. The choice of what title really came down to the hardware the original arcade cabinets used. He was not interested in implementing a soft-process for the math chips used in games like Star Wars and Tempest. In the end he got a version of Black Widow up and running, and even built a miniature cabinet for the thing. Check out some of the gameplay in the clip after the break.
Continue reading “CRT vector graphics arcade game built from an FPGA board”
[Windell] developed an Inkscape extension called Hershey Text that helps you process fonts into vector representations. If you’ve tried to 3D print, plot, or mill text in the past you may have run across the problem of generating vector paths that deal with the outline and fill of the text appropriately. The problem stems from how fonts are defined; either by the area that they enclose, or by the path that is used to draw the outline. Check out [Windell’s] tutorial for this extension where he explains each of these issues and shows how to overcome them.
The image above illustrates the stroke options, which allow you to vector multiple paths to best fill in the correct parts of each character using path-based hardware. The package includes a wide variety of interesting font sets that are in the public domain, and includes tools such as a glyph map generator that make it very user friendly.
[Jarrod] sent us a link to this home-built laser projector after seeing a different projector that we featured yesterday. This system is fundamentally different. [ChaN], who finished the project several years ago, didn’t use a loudspeaker to move the mirrors, but instead build his own closed-loop Galvanometers. Two of these are controlled by an ATmega64 to produce incredibly clean and accurate vector images. It’s not just the images that are impressive, his hardware is laid-out with skill and forethought that make hiding it in a case a sacrilege.
[Hubert] sent in his experiments using HDDs, CDROMs, speakers, and other components to make an XY laser plotter. Those carefully reading will note, its not all three to make one plotter, but rather three plotters each using a separate system. The setups have their advantages and disadvantages, and [Hubert] is sure to point them out; including circuit diagrams and pictures to help you on your own trials.
There is a little difficulty in reading English not so good, but considering we’ve never seen a single-laser vector plotter done before (spirographs come close, and no one wants to wait 85 seconds) it’s still very impressive.
PC-based USB oscilloscopes are fast becoming all the rage. [Matt Sarnoff’s] Terminalscope takes the reverse approach, adapting an oscilloscope into a full serial terminal. You may have seen something similar before in the Dutchtronix/SparkFun O-Clock, but [Matt’s] project goes one further by adding a PS/2 keyboard port for full bidirectional serial communication, and with much sharper display resolution to boot.
The mostly VT-100 compatible Terminalscope is built around two AVR microcontrollers: an ATmega328P runs full-tilt to generate the video signal and handle serial I/O, while an ATtiny45 handles keyboard input to avoid interrupting the ’328’s duties. Rather than vector trace each character, a raster-scanning approach is used: the beam follows a fixed X/Y path (like a television), while modulating the Z input (beam intensity) to form an image. The device can be connected to a PC via serial port or USB-to-TTY adapter, or directly to another microcontroller to debug serial output.
We recently showed an oscilloscope being used as a multichannel digital logic display. The Terminalscope provides yet another use for this essential bench tool and could nicely round out a “poor man’s” testing setup. The schematic and full source code are available for download.