| |
| |
Introduction | |
| |
| |
| |
The Basics | |
| |
| |
| |
Electricity | |
| |
| |
Transduction: Electrical Basics | |
| |
| |
Electricity versus Electronics | |
| |
| |
How Electricity Flows | |
| |
| |
| |
Shopping | |
| |
| |
Solderless Breadboard | |
| |
| |
Microcontrollers | |
| |
| |
Microcontroller Features (in Order of Priority) | |
| |
| |
High-Level Microcontroller Modules | |
| |
| |
Mid-Level Microcontroller Modules | |
| |
| |
Low-Level Solutions | |
| |
| |
Common Components | |
| |
| |
Switches | |
| |
| |
Resistors | |
| |
| |
Variable Resistors | |
| |
| |
Capacitors | |
| |
| |
Diodes | |
| |
| |
Transistors and Relays | |
| |
| |
Wires | |
| |
| |
Power Supply | |
| |
| |
Power Connector | |
| |
| |
Voltage Regulator | |
| |
| |
RC Servomotor | |
| |
| |
Serial Connector | |
| |
| |
Serial Cable | |
| |
| |
Project Box | |
| |
| |
Clock Crystals | |
| |
| |
Headers | |
| |
| |
Cable Ties | |
| |
| |
USB-to-Serial Adaptor | |
| |
| |
Tools | |
| |
| |
Shopping List | |
| |
| |
Bringing It All Back Home | |
| |
| |
| |
Building Circuits | |
| |
| |
Schematics | |
| |
| |
Connection Symbols | |
| |
| |
Power Symbols | |
| |
| |
Finding Schematics | |
| |
| |
Breadboards | |
| |
| |
Where Does the Microcontroller Fit In? | |
| |
| |
Translating Schematics into Circuits | |
| |
| |
Using a Multimeter | |
| |
| |
Soldering | |
| |
| |
Powering the Breadboard | |
| |
| |
Connecting the Quick and Dirty Way | |
| |
| |
Connecting the Professional Way | |
| |
| |
Voltage Regulators | |
| |
| |
Be Neat | |
| |
| |
| |
The Microcontroller | |
| |
| |
"Hello World!" Is the Hard Part | |
| |
| |
Where Does the Microcontroller Fit In? | |
| |
| |
Input | |
| |
| |
Output | |
| |
| |
Routing Inputs to Outputs | |
| |
| |
Identifying the Pins of the Microcontroller | |
| |
| |
Lower-Level Microcontrollers: External Clock | |
| |
| |
Your First Microcontroller-Based Circuit | |
| |
| |
Getting Your Program to the Chip | |
| |
| |
Programming Stamp-Like Modules | |
| |
| |
Stamp-Like Programming Hardware Connection | |
| |
| |
Stamp-Like Programming Software Environments | |
| |
| |
Programming Lower-Level Chips | |
| |
| |
The Hardware Programmer | |
| |
| |
Lower-Level Programming Software Environments | |
| |
| |
Debugging | |
| |
| |
| |
Programming | |
| |
| |
The Good News | |
| |
| |
Flow Control: How a Computer "Reads" a Program | |
| |
| |
Loops | |
| |
| |
If Statements | |
| |
| |
Variables | |
| |
| |
Built-In Routines: Subroutines and Functions | |
| |
| |
Homemade Routines | |
| |
| |
Advanced Loops: While-Wend and For-Next | |
| |
| |
While-Wend or Do-While | |
| |
| |
For-Next | |
| |
| |
Pseudocode | |
| |
| |
Comments | |
| |
| |
Debugging | |
| |
| |
Good Debugging Habits | |
| |
| |
The Bad News | |
| |
| |
| |
The "Big Four" Schematics, Programs, and Transducers | |
| |
| |
Digital Input | |
| |
| |
Transducers: Switches | |
| |
| |
Digital Input Circuit | |
| |
| |
Programming | |
| |
| |
Digital Output | |
| |
| |
Transducers | |
| |
| |
Circuit | |
| |
| |
Programming | |
| |
| |
Analog Input | |
| |
| |
Transducers | |
| |
| |
Circuit | |
| |
| |
Programming | |
| |
| |
Pulsewidth Modulation for Input | |
| |
| |
Analog Output | |
| |
| |
Pulsewidth Modulation for Output | |
| |
| |
LED Dimming | |
| |
| |
DC Motor Speed Control | |
| |
| |
Generating Tones | |
| |
| |
RC Servo Motors | |
| |
| |
From Analog In to Analog Out: Scaling Functions | |
| |
| |
Conclusion | |
| |
| |
| |
Communicating between Computers | |
| |
| |
Physical Agreement | |
| |
| |
Timing Agreement | |
| |
| |
Electrical Agreement | |
| |
| |
Package Size | |
| |
| |
Numbers or Letters: Using ASCII | |
| |
| |
Software for the Microcontroller | |
| |
| |
Serial Output from a Microcontroller | |
| |
| |
Testing with an LED | |
| |
| |
Testing with Terminal Software | |
| |
| |
Serial Input to a Microcontroller | |
| |
| |
Serial Freeze and Blocking Functions | |
| |
| |
Your Private Protocol | |
| |
| |
Punctuation | |
| |
| |
Call and Response | |
| |
| |
Sending Bigger Numbers | |
| |
| |
Send Your Numbers as Text | |
| |
| |
Scaling Your Numbers | |
| |
| |
Sending Big Numbers in Many Bytes | |
| |
| |
Serial Communication on a Multimedia Computer | |
| |
| |
Serial in Lingo | |
| |
| |
Serial in Processing | |
| |
| |
Serial in Java | |
| |
| |
Serial in Max/MSP | |
| |
| |
Conclusion | |
| |
| |
| |
Advanced Methods | |
| |
| |
| |
Physical Interaction Design, or Techniques for Polite Conversation | |
| |
| |
The Conversation: Listening, Speaking, and Thinking | |
| |
| |
Listening | |
| |
| |
Speaking | |
| |
| |
Complex Responses | |
| |
| |
Random Numbers | |
| |
| |
Thinking | |
| |
| |
Techniques for Effective Interaction | |
| |
| |
Multitasking | |
| |
| |
Edge Detection | |
| |
| |
Analog Sensors: Thresholds, Edges, and Peaks | |
| |
| |
Debouncing | |
| |
| |
Smoothing, Sampling, and Averaging | |
| |
| |
Conclusion | |
| |
| |
| |
Sensing Movement | |
| |
| |
Assessing the Problem | |
| |
| |
How Ranging Sensors Work | |
| |
| |
Detecting Presence | |
| |
| |
Foot Switches | |
| |
| |
Photoelectric Switches | |
| |
| |
Motion Detectors | |
| |
| |
Magnetic Switches | |
| |
| |
Determining Position | |
| |
| |
IR Sensors | |
| |
| |
Ultrasonic Sensors | |
| |
| |
Other Position Sensors | |
| |
| |
Determining Rotation | |
| |
| |
Potentiometers | |
| |
| |
Accelerometers | |
| |
| |
Compass | |
| |
| |
Encoders | |
| |
| |
Speed of Rotation | |
| |
| |
Gyroscopes | |
| |
| |
Video Tracking | |
| |
| |
Video Tracking in Director MX | |
| |
| |
Video Tracking in Max/MSP | |
| |
| |
Video Tracking in Processing | |
| |
| |
Video Tracking in Java | |
| |
| |
CMUcam | |
| |
| |
Identity | |
| |
| |
Conclusion | |
| |
| |
| |
Making Movement | |
| |
| |
Types of Motion, Types of Motors | |
| |
| |
Characteristics of Motors | |
| |
| |
Special Electrical Needs of Motors | |
| |
| |
Inductive Loads and Back Voltage | |
| |
| |
Smoothing Current Drops Using Decoupling Capacitors | |
| |
| |
Controlling Motors | |
| |
| |
Controlling DC Motors and Gearhead Motors | |
| |
| |
Controlling RC Servos | |
| |
| |
Controlling Stepper Motors | |
| |
| |
Unipolar Stepper Motors | |
| |
| |
Bipolar Stepper Motors | |
| |
| |
Controlling Solenoids | |
| |
| |
Basic Mechanics: Converting Motor Motion to Usable Motion | |
| |
| |
Simple Machines | |
| |
| |
Joints | |
| |
| |
Linkages | |
| |
| |
Construction | |
| |
| |
Foamcore | |
| |
| |
Tupperware | |
| |
| |
Wood | |
| |
| |
Plexiglas | |
| |
| |
Adhesives | |
| |
| |
Erector, Meccano, K'nex | |
| |
| |
Black Cloth | |
| |
| |
Conclusion | |
| |
| |
| |
Touch Me | |
| |
| |
Force-Sensitive Resistors | |
| |
| |
Homegrown FSRs | |
| |
| |
Flex Sensors | |
| |
| |
Pressure Sensors | |
| |
| |
Sensing Touch Using Capacitance Sensors | |
| |
| |
Off-the-Shelf Touch Interfaces | |
| |
| |
Sensing Vibrations Using Piezoelectric Sensors | |
| |
| |
Creating Vibrations | |
| |
| |
Taking Your Temperature | |
| |
| |
Cooling Things Off and Heating Them Up | |
| |
| |
Getting Under Your Skin | |
| |
| |
Force Feedback | |
| |
| |
Conclusion | |
| |
| |
| |
More Communication between Devices | |
| |
| |
Synchronous and Asynchronous Communication | |
| |
| |
Asynchronous Serial Protocols | |
| |
| |
Learning a Protocol | |
| |
| |
RS-232 Boxes | |
| |
| |
Global Positioning System Data | |
| |
| |
Finding a GPS Receiver | |
| |
| |
Learning the GPS Protocol | |
| |
| |
MIDI | |
| |
| |
MIDI Physical and Electrical Connections | |
| |
| |
Sending MIDI Messages | |
| |
| |
Connecting to the Internet | |
| |
| |
Network Connection Using the CoBox Micro | |
| |
| |
Network Connection in Lingo | |
| |
| |
Network Connection in Processing | |
| |
| |
Connecting over Telephone Lines Using Modems | |
| |
| |
Special-Function ICs and Modules | |
| |
| |
Synchronous Serial Protocols | |
| |
| |
Wireless Serial Communication | |
| |
| |
Infrared Serial Communication | |
| |
| |
RF Serial Communication | |
| |
| |
Bluetooth | |
| |
| |
Wireless Ethernet | |
| |
| |
Wireless Ethernet Security | |
| |
| |
Conclusion | |
| |
| |
| |
Controlling Sound and Light | |
| |
| |
Sound | |
| |
| |
Sound Input | |
| |
| |
Synthesizing Sound on a Microcontroller | |
| |
| |
Speech | |
| |
| |
Telephone Sounds | |
| |
| |
Light | |
| |
| |
BX-Basic | |
| |
| |
Light Sensors | |
| |
| |
DC Lighting Control | |
| |
| |
AC Lighting Control | |
| |
| |
Screen Graphics | |
| |
| |
Controlling Character Displays | |
| |
| |
Controlling Video Displays | |
| |
| |
Linear Media on a Multimedia Computer | |
| |
| |
Linear Media on a Microcontroller | |
| |
| |
Single-Board Computers | |
| |
| |
Conclusion | |
| |
| |
| |
Managing Multiple Inputs and Outputs | |
| |
| |
Setting Groups of Pins in Parallel | |
| |
| |
Bitwise Operations | |
| |
| |
Running Out of Pins | |
| |
| |
Resistor Ladders as Analog Input | |
| |
| |
Row-Column Scanning | |
| |
| |
Row-Column Scanning Analog Inputs | |
| |
| |
Row-Column Scanning Outputs | |
| |
| |
Shift Registers | |
| |
| |
Multiplexers | |
| |
| |
Latches | |
| |
| |
Conclusion | |
| |
| |
| |
Choosing a Microcontroller | |
| |
| |
Costs | |
| |
| |
Time | |
| |
| |
Expandability/Compatibility | |
| |
| |
Physical and Electrical Characteristics | |
| |
| |
The Microcontrollers Covered in This Book | |
| |
| |
Parallax Basic Stamp 2 | |
| |
| |
NetMedia BX-24 | |
| |
| |
Basic Micro Basic Atom Pro24 | |
| |
| |
Microchip PIC | |
| |
| |
PIC Programmers | |
| |
| |
| |
Recommended Suppliers | |
| |
| |
The Staples | |
| |
| |
Microcontrollers | |
| |
| |
Electronics Parts | |
| |
| |
Software | |
| |
| |
The Extras | |
| |
| |
Hardware | |
| |
| |
Software | |
| |
| |
| |
Schematic Glossary | |
| |
| |
Common Schematic Terms and Abbreviations | |
| |
| |
Index | |