The Arduino is a powerful microcontroller, and one for which there is plenty of room for expansion to support more complicated projects. Add-on boards, known as Shields, are available for everything from logging data to SD cards to connecting to a network, but sometimes it's possible to dramatically expand the capabilities of a standard Arduino board with a minimum of components. In possibly the best example of this, maker Damian Peckett has posted instructions on harnessing the power of the ATmega16u2 secondary processor found on the Arduino Uno Rev 3 to generate a video signal for connection to any monitor or TV with a VGA plug. Requiring only a single 120 Ohm resistor the 'GhettoVGA' project allows the Arduino to display a 32x15 text output, and because it runs on the ATmega16u2 the Uno's primary ATmega328 microcontroller is left free for running any standard sketch making it easy to integrate with existing projects as an easily-readable output. If you want to skip the theory, although it's certainly an illuminating read, scroll to the bottom of Damian's page for the source code and an example sketch.
The following assembly file and hex is the result of a couple weeks of solid tinkering. It enables you to generate 32x15 VGA text on the Arduino Uno with no external parts (I’m cheating, you will need a single 120ohm resistor). Also you don’t need any special tools to reprogram the atmega16u2 (USB).