8255 PC Interface Card
This ISA-style card plugs into your PC's motherboard. It provides you with 24 lines of fully programmable digital input/output. With this card, you can easily interface almost any device to your PC. Devices include things like DC and stepper motors, relays, sensors etc. You can do data acquisition (like temperature sensing and A/D). You can build a wave generator with D/A converters. The card is powerful because it is programmable (e.g. QBasic, Turbo C).
TRIPOD: Template for Real-time Image PrOcessing Development
(Added 11/27/01) You can develop machine vision algorithms for your Logitech USB camera using this tutorial. The downloadable software template gives you a pointer to your camera frame's pixel data. Only ANSI C and some minimum VC++ MFC knowledge is assumed in this tutorial. Real-time image processing (30 frames/sec) that thresholds and binarizes a video stream is demonstrated. The tutorial requires a Win98 machine (minimum 233 MHz, 128 MB RAM), Logitech USB camera and VC++ 6.0 compiler (apparently 5.0 won't work). This tutorial is a draft and constructive feedback is most appreciated.
11/27/01: TRIPOD files introduced on-line
04/29/01: Version 1.0 on-line. Malloc'ed memory freed
Controlling Devices over the Internet
(Added 06/14/01) This tutorial details how you can control devices like relays and relays over the Internet. It uses Visual Basic and Winsock to demonstrate client/server programming. An 8255 Interface card installed in a Server PC and connected to eight LEDs. A Client PC can turn on/off these LEDs over the Internet.
Wireless FM Transmitter
(Added 04/02/02) Building this single transistor circuit allows anyone with a battery-powered pocket FM radio to hear your voice 25 to 50 feet away. The construction details are appendixed with high school level math to explain its operation. The circuit's simplicity, quick assembly and use of widely available parts allows first-time FM transmitter builders to learn the fundamentals. There's potential to use this wireless transmitter to acquire sensor data or servo actuate devices.
Parallel Port Interface Box
This Interface Box plugs into your PC's parallel port. It is a simple circuit that you can build in an afternoon. The parallel port has 12 digital outputs and 5 digital inputs. This is somewhat limiting (compared to the 8255) but you can still interface motors and relays. This tutorial provides you with an Interface Box with 9 buffered digital outputs. You can expand upon the circuit to use the remaining 3 outputs and 5 inputs.
ADC/DAC PC Interface Card
(Added 10/25/00) This ISA-bus based analog-to-digital (ADC) and digital-to-analog (DAC) card allows you to acquire analog signals (e.g. temperatures, pressures) and deliver digital outputs. It uses affordable, off-the-shelf (Maxim's MAX158 and National's DAC0832) chips, features interrupts and can be constructed in an afternoon or two.
Quadrature Encoder Card
(Added 08/29/00) This ISA-bus based quadrature encoder card allows you to read and display incremental optical encoders. It uses LSI's 7266 24-bit resolution chip and can read two encoders. This card is useful for accurate measurements often demanded in XYZ table positioning or robot odometry.
Using IRQ's: Hardware Interrupt Interfacing
(Added 09/10/00) This tutorial features the wiring of a switch to the ISA bus' IRQ line and programming an interrupt service routine (ISR) to count toggles. Through this example, you might find implementing interrupts easier than you thought.
PC-based DC motor speed control
(Added 08/30/00) Build your own ISA bus card for DC motor speed control using pulse-width-modulation (PWM). It uses the 8254 timer/counter board (see tutorial below) and H-bridge driver.
8254 Timer/Counter Card
(Added 06/15/00) This is an ISA-bus card that you can breadboard yourself in an afternoon or two. It is a high-resolution timer (microseconds) with three 16-bit counters. With it, your PC can generate precise time delays, measure time, count pulses (like motor encoder wheels), generate square waves (for stepper motors) or interrupts. The 8254 can also generate pulse-width-modulated (PWM) signals, perfect for DC and servo motor control.
Infrared Emitter & Detector
This tutorial presents the infrared (IR) led and phototransistor. This circuit is good for building an encoder for motor speed measurement.
Long Range Infrared Emitter & Detector
Here, you can build a long range (apx 8 to 20 feet) emitter-detector for wireless control. The emitter works much like a TV remote, just point it at the detector. The tutorial also shows how to interface them to a PC or microcomputer (like the Basic Stamp, PIC, 8051 etc.)
Visual Basic (DLL's) and PC Interfacing
(Added 02/04/00) Visual Basic allows you to develop Win95 programs. This tutorial shows you step-by-step how to write your own dynamically linked library (DLL) that you can use in your VB programs.
DTMF Touch-tone Generator and Decoder
Touch-tones are the familiar audible sounds that your phone makes when you push a key. This tutorial provides a basic generator and decoder that you can build your applications upon. Construction is straight-forward and can be done in an afternoon or two.
Hacking a Mouse for Encoders
(Added 05/30/00) Commerical incremental encoders can be both expensive and overkill for your rotation measurement needs. Perhaps you have a mobot and want a cheap solution for wheel positioning reading. Maybe you'd like to read telescope angles. The ubiquitous $5 PC serial mouse may be your solution for encoders.