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.
Version History
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.
PIC16F84 Fundamentals
(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.
GPS 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.
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.
Automation-related