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).
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
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.
(Added 05/04/02) This PIC16F84 tutorial is very focused. Examples are for highlighting port I/O, timers and PIC-to-PC serial communications. Schematics and PIC assembly code demonstrate LED on/off control, switch monitoring, timed LED blinking and PC-to-PIC/PIC-to-PC serial communiations using a MAX233. CCS C compiler is used for two of the examples.
and Serial Interfacing
(Added 05/29/02) Handheld GPS units like Garmin eMap and eTrex receivers feature serial port interface - the cable allows one to hookup their GPS to a PC's serial port. This tutorial shows how to read, extract and/or parse the NMEA message data (an ASCII sentence that contains navigational data) your GPS receiver outputs.
(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.
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.
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.
(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.
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.
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.
(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.
Emitter & Detector
This tutorial presents the infrared (IR) led and phototransistor. This circuit is good for building an encoder for motor speed measurement.
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.)
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.
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.
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.