Intro to Arduino: Syllabus

99-355 A4
1 unit micro-course, Spring 2016
Hunt Library A10
Instructor: Dr. Garth Zeglin
Prerequisites: none

Course Description

This workshop aims to demystify the Arduino microcontroller through hands-on work in the lab creating simple machines with embodied behaviors. The Arduino is a versatile resource for physical projects for students in all disciplines. This course brings students over the beginner’s threshold to a basic understanding of the use, terminology, and potential of the Arduino. The skills and concepts taught in this course are presented from an interdisciplinary approach which merges practices in arts and technology. The first portion will teach the essential skills for creating a simple sensor-driven physical computing system, and the second portion will reinforce those skills by making a simple interactive project. The course has no technical prerequisites, although uses a little bit of algebra-level math.

Schedule

The Spring 2016 dates are as follows:

Fri, April 1 6:30PM - 7:30PM orientation lecture
Sat, April 2 9:00AM - 3:00PM programming and electronics
Sun, April 3 10:00AM - 3:00PM signals and actuation
Sun, April 10 10:00AM - 3:00PM project development and review

The more detailed schedule follows:

Day Topic Content Duration
Friday Night Overview Lecture Orientation. 1 hour
Saturday
Arduino IDE
Arduino Programming
Elementary Electronics
Using the Arduino system.
Elementary programming.
Ohm’s Law, DMMs, wiring, sensors.
1 hour
2 hours
2 hours
Sunday
Analog vs Digital
Input to Output
Project Ideation
Elementary signal processing.
Hobby servo actuation, in-to-out mapping.
Defining and choosing a project.
1 hour
2 hours
1 hour
(during week) Homework Gathering materials and prototyping. min. 4 hours
Saturday
Project Development
Project Demo
Work session.
Presentation and peer critique.
4 hours
1 hour

Topic Outline

The workshop requires a total of fifteen hours organized over two weekends. The first weekend opens with a opening overview lecture, followed by a a series of technical tutorials spread over two days. Each tutorial combines brief lectures with practical exercises.

The students are expected to spend about four hours on their own in the intervening week assembling project materials and working on a prototype. During the second weekend, projects are completed, debugged, refined, and performed.

Overview Lecture (one hour)

The overview takes place on a Friday night prior to the technical session. It is intended as an orientation to the scope of the workshop, answer a few basic questions about microcontrollers and embedded computing, and establish the goals and expectations of the course.

  1. What is a microcontroller?
  2. Presentation and discussion of project examples.
  3. The possibilities and limitations of the Arduino.
  4. Basic terminology.
  5. Outline and expectations of the workshop.

Technical Tutorials (nine hours total)

The technical tutorials are spread over two days.

Using the Arduino System (one hour)

  1. Operating the Arduino IDE, loading a simple program.
  2. Writing a program to blink the onboard LED.
  3. Creating a simple temporal pattern: time and digital outputs, cut and paste programming.

Brief Course in Arduino Programming (two hours)

  1. Program notation: variables, functions, control flow, Arduino conventions.
  2. The concept of a program variable.
  3. Numerical values and basic numerical operators.
  4. if/then/else
  5. Iteration using for loops.
  6. Real world timing and the delay() function.

Elementary Electronics (two hours)

  1. Elementary electrical theory: current, voltage, resistance, and Ohm’s Law.
  2. Reading a simple schematic.
  3. Wiring on a solderless breadboard.
  4. Voltage dividers: resistor/resistor, resistor/switch, resistor/photoresistor, resistor/LED.
  5. Using a multimeter to measure voltage and resistance.
  6. Wiring up a switch with pullup resistor.
  7. Wiring up an LED with dropping resistor.
  8. Wiring up a photoresistor voltage divider (as basic analog sensor).
  9. Making paper apertures for light sensors.

Analog versus Digital Signals (one hour)

  1. Analog versus digital information.
  2. Resolution and sampling.
  3. Thresholding.
  4. Averaging.

Mapping Input to Output (two hours)

  1. Wiring up a hobby servo.
  2. Using the Servo library.
  3. Creating a simple one-in one-out system.
  4. Wiring up a speaker, creating tones.
  5. Human interfacing.

Developing a Project Idea (one hour)

  1. Discussion of objectives: simple one-input, one-output device.
  2. Discussion of of project directions, e.g. temporal behavior and sequencing, animating a physical object, combining movement and sensing.
  3. Project planning and pitching.
  4. Optional: project pair formation and scheduling.

Homework: Gathering Materials, Prototyping Project (minimum of four hours)

The primary objective of the homework is for students to review the lessons of the technical exercises and attempt to apply them on their own to the project of their choosing. The secondary objective is for them to complete the familiar portions of their project in advance in order that the in-class time can be spent debugging and refining that which is new.

Physical computing projects involve a mix of physical parts, sensors, actuators, and the software which animates them. The physical construction envisioned for this course can be as simple as paper and tape, but some students may have the skills or interest to use other materials.

Prior to the second session, students will be expected to do the following as needed:

  1. Obtain any particular materials they will require to construct their project.
  2. Fabricate any enclosures, structural parts, or mechanical assemblies.
  3. Wire a prototype of their sensing and actuation circuits (to the best of their ability).
  4. Write an initial draft of the Arduino program (to the best of their ability).

In-class Project Development (five hours total)

During the second weekend the in-class time is entirely devoted to developing, debugging, and refining the project.

  1. Progress reports. Each student or pair should be prepared to begin by articulating a brief summary of their efforts to the whole class.
  2. Physical testing and software planning. Each project will be individually reviewed by the instructor to determine the critical path for physical readiness and the work plan for writing the software.
  3. Software development and revision. The instructor will assist each project as needed to develop and test the software behavior.
  4. Machine demonstration and critique.

Materials

Each student will receive a kit with all necessary electronic components to complete the exercises and build a simple project. The kit is detailed in the section Course Kit Guide. Students will be expected to provide any additional materials for constructing their project such as mechanical structures, housings, or decorative elements.

Students may use an IDeATe cluster MacBook Pro during class time or bring their own laptop on which the Arduino Software has been installed.

Grading

This is a participatory workshop: all students are required to attend all sessions. This is reflected in the grading as attendance is a significant fraction of the score. The grade breakdown is as follows:

Assignment Percentage
Attendance 55%
Project 30%
Ideation 10%
Skill Survey 5%