Technical Exercises¶
The course text includes has many exercises intended to familiarize you with the lab, basic electronic equipment, and basic programming. These are essential for developing the vocabulary and skills to fulfill the projects. They are not however graded or reviewed.
The lab exercises are intended to be performed individually. Some exercises will be performed in the lab during class time, and some may be recommended to individual students to prepare necessary skills for specific project ideas.
The initial exercises are intended to be quick, simple introductions. Part of the exercise is absorbing a set of technical terms; the meaning will become apparent in time through immersion in practice.
The following is a suggested order which generally develops from simple to more complex, however the sequence is not strict. There are more exercises available than time so individuals may choose exercises according to the experience and discretion. If something is too elementary for your experience level, please choose something new for you. If an exercise requires a part which is not available, please move on to something feasible.
Please be sure to read the sections Summary Guide: Basic Circuits and Summary Guide: Arduino Microcontrollers for a review of terminology and concepts. Also, please skim the Errata section if you have trouble to identify mistakes in the text or general hints.
Anyone who completes an exercise easily should consider undertaking more of the optional challenge activities listed at the end of most exercises.
Arduino IDE and Programming¶
- Arduino Introduction. Basic description, finding Arduino software.
- Coding, Compiling, Deploying. Running several sample programs, modifying code.
- Soft Blink. Introduce several programming fundamentals by fading the onboard LED.
Elementary Electronics¶
- Bench, Battery, Grid. Electrical safety, voltage measurement.
- Continuity Tests. Resistance measurement.
- Power Switch and LED. Voltage and current measurement, controlling current with a switch.
- Voltage Divider Basics. Introducing Ohm’s Law via our essential analog circuit: the voltage divider.
- Smoke a Resistor. Testing Ohm’s Law empirically by destroying a resistor.
- Sensor Switch Basics. Applying the voltage divider to the simplest sensor: the switch.
- Photocell Sensor. Applying the voltage divider to a light sensor.
- LED Current Limiting. Applying the voltage divider to regulating LED current.
- Voltage Divider Roundup. Reviewing the general form of the divider circuit.
- Electrical Theory Practice. Paper self-test for solving basic circuits.
Arduino with Electronics¶
- Read Switch Input. Read a switch input as a binary digital value.
- Read Analog Accelerometer. Read a multi-channel sensor and explore calibration.
- Sensor-Driven LEDs. Control LED brightness using sensor data.
- Read Sonar. Measure distance with an ultrasonic ranger; explore time as an output variable.
- Servo Sweep. Drive a servo motor along simple trajectories.
- Unipolar Drivers. Driving solenoids, relays, large lamps, and unidirectional DC motors.
- Multi-channel Driver. Generate sound and vibration using a power driver.
- H-Bridge DC Motor Driver. Driving DC motors in both directions at variable speed.
- Stepper Motor Driver. Driving a stepper motor for precise open-loop motion.
Signals and Time¶
Please be sure to read the Summary Guide: Computation and Behavior section for a review of computational terminology and concepts. Please be sure to see the OneInOneOutASCII Arduino Sketch section for background on dividing a process between the Arduino and a laptop.
- Event Loop Programming. Structuring software as event-loop time-slicing for executing multiple simultaneous tasks.
- Resolution and Mapping. Using a smoothing filter for reducing noise in sampled analog input.
- Music Sequencer. Demonstration of a state-machine interpretation of performance data with musical audio output.
- Input Hysteresis. Introduces state transition diagrams.
- Input Pattern Matching. Comparison of several canonical coding forms for state machines.
Mechanism¶
Please be sure to read the Summary Guide: Mechanism section for a review of mechanical terminology and concepts.
- Laser Cutting Features and Tolerances. Basic laser cutter design; introduction to engineering tolerance.
- Mechanisms for One-Bit Sensing. Using mechanical elements effectively to apply switches as sensors.
- Electromechanical Oscillation. Combining mechanical and electrical feedback to produce dynamics.
Optional Topics¶
More Electronics
- Voltage Regulation. Creating stable power supply voltages.
- Capacitance. Basic capacitor dynamics and simple RC timing circuit.
- Op-Amp Level Translation. Applying gain and offset to analog signals.
Modular Components
- Adafruit-PWM-I2C. Using an I2C bus for 16 channel of PWM actuation.
- WS2801-LED-SPI. Using an SPI bus to drive digital LED modules.
- MPU6050-IMU-I2C. Using an I2C Inertial Measurement Unit.
Raspberry Pi
- Getting Started on the Raspberry Pi. Preparing to apply a network-capable computer to physical computing.
Max/MSP
- Max Arduino Companion. Building a system combining Arduino and Max/MSP for laptop-based GUI and media processing.