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