Class log
Note: “codebook” entries below are verbatim pasting of all of the code we used in class. It’s possible they may not compile (i.e. may have errors) if we left things unresolved, or were writing pseudocode, etc.
- Class 1, Wednesday 1/17/18: intro
- Homework 1 assigned, due at start of class 2
- codebook: blink
- Class 2, Monday 1/22/18: volts that jolts
- Class 3, Wednesday 1/24/18: more volts, more jolts
- Assignment of Project 1: Surprise, and project partners announced
- Homework 2 assigned, due at Class 4
- codebook: a simple
digitalRead()
withSerial
feedback
- Class 4, Monday 1/29/18: hardware party
- Class 5, Wednesday 1/31/18: work day
- Class 6, Monday 2/5/18: Project 1 crit
- Class 7, Wednesday 2/7/18: DSLR photography and guest speaker Laura Poskin
- Class 8, Monday 2/12/18: odds and ends
- Homework 4 assigned (basic logic in software)
- Class 9, Wednesday ♥ 2/14/18: juggling timing without
delay()
and mechanical exploration- Homework 5 assigned, due at start of Class 10 (Monday, Feb. 19th)
- Project 2 assigned, due at start of Class 14 (Monday, Mar. 5th)
- codebook: running an event on a schedule
- Class 10, Monday 2/19/18: overall documentation feedback and Project 2 discussion
- Class 11, Wednesday 2/21/18: field trip!
- Class 12, Monday 2/26/18: odds and ends, and work day
- Class 13, Wednesday 2/28/18: work day
- Class 14, Monday 3/5/18: Project 2 crit
- Class 15, Wednesday 3/7/18: midterm exam
- Class 16, Monday 3/19/18: …aaaaaaand we’re back!
- Class 17, Wednesday 3/21/18: squash that bug
- Class 18, Monday 3/26/18: meeting/interview prep (optional class)
- Class 19, Wednesday 3/28/18: midterm retest
- Class 20, Monday 4/2/18: group check-ins and beginning to build prototypes
- Class 21, Wednesday 4/4/18: work day 2 for prototypes
- Class 22, Monday 4/9/18: work day 3 for prototypes
- Class 23, Wednesday 4/11/18: formative crit at the JCC
- Class 24, Monday 4/16/18: JCC debrief and group planning
- Class 25, Wednesday 4/18/18: finish planning check-ins and final work day 1
- Class 26, Monday 4/23/18: final work day 2
- Class 27, Wednesday 4/25/18: final work day 3
- Class 28, Monday 4/30/18: final work day 4
- Class 29, Wednesday 5/2/18: final presentation and crit
Class 1, Wednesday 1/17/18: intro
- Introduction to course content, policy, and housekeeping (with reference to the course website’s home page)
- Go around sharing names, pronouns, things people have built
- Quick overview of the Phys Comp Lab space (electronics, tools, resources, storage)
- Arduino Uno board tour (pins, components, ports, LED indicators)
- Navigating the Arduino IDE (Integrated Development Environment)
- Writing and uploading our first blinking sketch
Homework 1 assigned, due at start of class 2
codebook: blink
Our first blinking sketch:
Class 2, Monday 1/22/18: volts that jolts
- Quick review of submissions of interesting/intriguing Arduino projects at student work site
- First foray into electronics: drawing schematic elements
- wire (a.k.a. trace)
- node
- switch
- resistor
- LED
- diode
- motor
- photocell
- battery
- ground
- potentiometer
- Volts are pressure that push amps along a conductor
- Conceptualizing electrical flow in a simple circuit with schematics
- Power supplies may be drawn as one unit (common with batteries), or broken into separate halves
- There are often multiple “topologically equivalent” ways to draw a circuit, all of which will describe the same electrical flow
- Building
AND
andOR
gates in hardware (circuit stick activity) - How to use a breadboard and jumper wires (these, along with storage bins, are handed out)
- Always maintain sufficient resistance between
5V
andGND
. - Add more than one LED output to our blink sketch
- Add a potentiometer input and read it via
Serial
feedback
codebook: simple analogRead()
Class 3, Wednesday 1/24/18: more volts, more jolts
- Housekeeping
- establishing lab hours
- general policy: help your neighbors!
- weekly time expectation for the course is ~10 hours
- materials available with class budget from Lending
- Analyzing the electricity flow in a potentiometer
- Voltage falls across a resistor
- Current into any node equals current out (unless the electrons find another place to run to)
- The Arduino has practical limits as to how much current it can supply: aim for ~20mA per digital pin (maximum of 40mA), and ~400mA total across all of the I/O pins. The
5V
pin can supply ~400mA when the Arduino is running on USB power, or up to ~900mA when it’s running from an external 7V power source. (Or so says Stack Exchange.) - Care and feeding of V=IR
analogRead()
data (viaSerial
) and DMM (digital multimeter) activity, subtitled The Arduino is a Volt Meter- While we’re there, learning how to use the continuity setting on the DMM
- Wiring up a switch (students get SPDT slide switches from electronics drawer)
- Don’t leave that input floating, and
- don’t run
5V
intoground
either. - Instead, build a voltage divider with a pull-up or pull-down resistor. (students get 10kΩ resistors from drawer)
digitalRead()
will tell you the switch’s state. Capture its value with anint
orboolean
variable, and then use that variable to drive anif
statement or whatever other logic you’d like.
- Homework technical assignment for Monday briefly reviewed (“flipped classroom” explanation of time expectation)
- Sunday morning (10am–noon) lab hours with Zach this week
Assignment of Project 1: Surprise, and project partners announced
Homework 2 assigned, due at Class 4
codebook: a simple digitalRead()
with Serial
feedback
Class 4, Monday 1/29/18: hardware party
- Share out homework solutions (hardware and software)
- Using data gathered by a sensor to drive behavior: first read the world, then formulate a response, then execute it. Write this in comments first, then code second. (Thanks to Jet for that suggestion.)
- Review: we have covered
analogRead()
,digitalRead()
, anddigitalWrite()
. The missing one, which we now cover:analogWrite()
and PWM. - Using global
const int
variables for pin numbers is a good habit - Using a hobby servomotor (tutorial) (servo motors handed out)
- Driving that servomotor with potentiometer input and
map()
function - Reading resistor values from their colored bands
- Parts handed out:
- hobby servomotor
- ultrasonic ranger
- ADXL335 accelerometer
- ULN2803 transistor
Class 5, Wednesday 1/31/18: work day
- Inventower comes to show off the inventory search system ideate.inventower.com
- Documentation requirements review
- Quick soldering lesson
- Quick handsaw demonstration
- Work day! Project 1 is due the following class.
Class 6, Monday 2/5/18: Project 1 crit
- Note: RZ will not hold office hours today (2/5) or next Monday (2/12)
- Project 1 presentations and crit
Homework 3 assigned, due 10pm Tuesday, Feb. 6th
Details available at Homework 3 page
Class 7, Wednesday 2/7/18: DSLR photography and guest speaker Laura Poskin
- WordPress submission permissions note
- First half of class: DSLR photography tutorial
- Second half of class: guest speakers Laura Poskin MPSG and Shayna Gleason from Age-Friendly Greater Pittsburgh
Class 8, Monday 2/12/18: odds and ends
- Follow-up discussion from Laura Poskin’s visit
- We have established our JCC field trip days, as posted on the main course calendar. We will plan to meet at 9am on these days so that we can walk together to the 61A/B/C/D bus stop and travel together to the JCC, have a session there 9:30–11am, and then get back to campus by 11:20.
- Wednesday, Feb. 21st
- Wednesday, Apr. 11th
- Wednesday, May 2nd
- Since our first visit is in a week and a half, let’s be sure not to destroy/deactivate Project 1 pieces any more than needed so we can bring them along to show off
- Journey through the datasheet (Joseph helps explain some transistor basics)
- Separating high voltages from 5V on a breadboard
- Building a few circuits “in hardware” and then following up in “software” with a different assignment
- Review: button schematic
Homework 4 assigned (basic logic in software)
Class 9, Wednesday ♥ 2/14/18: juggling timing without delay()
and mechanical exploration
- Please update your WordPress posts so the images are the right size
- Reviewing Homework 4 outcomes, then using the voting machines to do some quick classroom opinion polling
- Managing multiple simultaneous routines; event loops (Blink Without Blocking);
millis()
and notdelay()
- Mechanics lesson: toy dissection!
Homework 5 assigned, due at start of Class 10 (Monday, Feb. 19th)
Project 2 assigned, due at start of Class 14 (Monday, Mar. 5th)
codebook: running an event on a schedule
(note: the below code is what we wrote together in class; there is further guidance and explanation at the “Blink without blocking” Code bite)
Class 10, Monday 2/19/18: overall documentation feedback and Project 2 discussion
- Quick review of exemplary aspects of Project 1 documentation
- Grades and comments for Project 1 to be emailed after class.
- Common problems:
- schematics not clear enough, or had errors (switches not drawn properly, unlabeled voltage on a power supply, many others)
- code wasn’t formatted correctly, or would not compile due to HTML errors (documentation instructions worked fine for me on Mac and PC…)
- Review Homework 5 quickly; students who need help should come to office hours!
- Prep for Wednesday field trip to JCC:
- get to class at 9:00am because we’re walking out the door at 9:05am. Later than 9:05am, you’re tardy and need to figure out your own transportation up the hill
- Let’s aim to bring at least 3 or 4 projects—who wants to volunteer?
- Voting on due date for Project 2. Two options:
- Project 2 is due Wednesday, Feb. 28th; documentation due Monday Mar. 5th which is also a review day; practicum exam on Wednesday, Mar. 7th.
- (winning option by vote) Project 2 is due Monday, Mar. 5th; no specific review prior to practicum exam on Wednesday, Mar. 7th; and documentation due Saturday Mar. 10th at noon.
- Individual Project 2 ideation discussion one-on-ones with Zach and Joseph
Class 11, Wednesday 2/21/18: field trip!
- First field trip to Squirrel Hill JCC to meet with our older partners!
Class 12, Monday 2/26/18: odds and ends, and work day
- Debrief from JCC field trip
- Leftover tidbit: why use
unsigned long
variables to storemillis()
? - Software debouncing (alternative: hardware debouncing with an RC filter circuit)
- Work session for remainder of class
Codebook: a very simple debounce, and a simple latch (runs once on switch push)
Class 13, Wednesday 2/28/18: work day
- Project 2 work session
Class 14, Monday 3/5/18: Project 2 crit
- Project 2 due date and crit
Class 15, Wednesday 3/7/18: midterm exam
- Midterm practicum exam
Class 16, Monday 3/19/18: …aaaaaaand we’re back!
- Little fun welcome-back activity (see below)
- Discuss the midterm exam, the retest, and grades at this point. Reweighting.
- Why do we test this material in this way? Why the time pressure?
- Histograms of class performance
- The test was useful! Showed gaps. Now we can go about filling them.
- Content: handing back the exams, going over the questions, and doing the math together.
- Midterm retest scheduled for class 19, Wednesday 3/28, during class time. Available to students who scored below 80 on the first midterm. For those who take it, the retest will be worth 80% of the midterm exam grade, and the old test 20%.
- Quick class poll: Carnival (booth and/or little zoomy cars) involvement?
- Groups assigned; we balanced for diversity of experience, gender, and technical/design background as much as possible to make strong, multiskilled groups that will be effective at process, documentation, and technical execution. Posted here on the course student work site.
- Old project disassembly (especially Project 1): take it apart if we don’t need it anymore! Once it’s well documented, let’s reuse the parts and free up some space.
- Reminders about project parts:
- reviewing parts (including a few new arrivals in Phys Comp stock)
- reminder about what to do if something is out of stock (use the link at the bottom of the Phys Comp Inventory page to request replacement/refilling!)
- reminder that we have some class budget to buy things—to buy stuff from Lending, simply charge it to the class budget by name, and to request other things, fill out the Course Purchase Request form
- Overview of the second half of the course:
- Goal: make a thoughtfully designed prototype that serves a particular person’s particular need, get feedback from that person, and iterate on it!
- General structure:
- Meetings with older people in their home/community/elsewhere (week of March 26th)
- Documentation of this meeting (week of April 1st)
- Quick development and presentation of a “behaves-like” prototype (April 1st–10th)
- Presentation and crit of these prototypes with older friends (April 11th)
- Elaboration/improvement/changes/finalization of the final project artifact (April 16th–May 1st)
- Final presentations and crits with older friends (May 2nd)
- Final documentation (week of May 6th)
What we did over break
This zoo is weird. I went to the museum and saw dinosaurs? Then I flew to California where I ate burgers a lot. Then I went to a mountain? I went over to Nebraska where I toured Chicago and I drank milk. Wow! I did an amazing shark.
Class 17, Wednesday 3/21/18: squash that bug
- General debugging techniques and approaches: test small units, and localize problems!
- Tiny note: you can pull up an input in software with
pinMode(pin, INPUT_PULLUP)
- Stepper motors (following the stepper tutorial)
- Preparing for interviews/visits with older friends
- Reviewing the current instruction suggestions, and modifying it as a class
- Matching groups to older people! (names picked out of a hat)
Class 18, Monday 3/26/18: meeting/interview prep (optional class)
- Class is optional today to give groups time to work on meeting/interview prep as per this final project assignment section
Class 19, Wednesday 3/28/18: midterm retest
- Midterm retest offered for students with scores less than 80 points on the original midterm exam. (Class attendance isn’t required for any student not taking the retest.)
Class 20, Monday 4/2/18: group check-ins and beginning to build prototypes
- Quick group discussion and recap from last week’s meetings with older friends, with reference to everyone’s blog posts
- Discussion and elaboration of prototyping goals, with reference to this final project assignment section
- Reiteration that any parts ordering needs to happen early
- Individual group check-ins with Zach and Joseph, and work day 1 for first round “behaves-like” prototypes
Class 21, Wednesday 4/4/18: work day 2 for prototypes
- Fun thing for anybody who’s interested: relevant-to-class Innovation Week Event at the Children’s Museum of Pittsburgh today 2–5 p.m.! The event is free of charge.
- Interested students or groups may present class projects at Meeting of the Minds on May 9th; register here by April 10th and select “IDeATe Presentation” as the presentation type
- Each team takes ~15 minutes to plan the next six days out on paper
- Prototype Gantt blank for printing on letter paper in landscape
- Prototype Gantt blank for printing on tabloid paper in landscape
- Work day 2 for prototypes
- Keep taking pictures as you go! Too many pictures is not a problem but too few is!
Class 22, Monday 4/9/18: work day 3 for prototypes
- IDeATe asks that you please fill out this quick survey on informal learning spaces on campus
- Brief review of presentation expectations for Wednesday
- Meeting documentation feedback to be emailed out after class today.
- Keep taking pictures as you go! Too many pictures is not a problem but too few is!
Class 23, Wednesday 4/11/18: formative crit at the JCC
- 9:30–11 a.m. formative crit with older friends at the JCC
- Each group presents for 3–5 minutes and gets critique, feedback, and advice from the group as a whole
- Additionally, each group has meeting time with their older friend to get more direct feedback
Class 24, Monday 4/16/18: JCC debrief and group planning
- JCC crit debrief
- review of here-on-out schedule (essentially: workdays leading to final project due date on May 2nd and documentation during finals week)
- voting on final documentation due date
- groups rapidly sketch out their major milestones through the end of the semester, and speak with Joseph and Zach about their plans
- final Gantt planning chart (for landscape printing on tabloid paper)
- final calendar (for landscape printing on tabloid paper)
- Google sheets spreadsheet version of the Gantt chart (copy and modify as you’d like)
- in case above link doesn’t work (copy and modify as you’d like)
- reminder: prototype process documentation is due Wednesday
- voting results from class: final documentation will be due May 11th at 10 p.m.
Class 25, Wednesday 4/18/18: finish planning check-ins and final work day 1
- all groups finish reviews of their work plans with Joseph and Zach
- work day 1 with the rest of the day
Class 26, Monday 4/23/18: final work day 2
- Last day to reasonably order any parts needed for final project
Class 27, Wednesday 4/25/18: final work day 3
- Keep taking pictures as you go!
Class 28, Monday 4/30/18: final work day 4
- Keep taking pictures as you go!
- Office hours: RZ on Monday 4/30 4:30–6:30 p.m. as usual; Joseph Tuesday 4/31 4:30–6:30 p.m. as usual; RZ immediately following Joseph’s, 6:30–9:30 p.m. for last-minute help
- Final presentations will be rotating around, with lots of time for writing comments, which you’ll get afterwards; your final documentation will include a section where you responding to some of these comments.
- Tuesday, May 8, 5:30–7 p.m. in Phys Comp: collective IDeATe class public shows with Profs. Byrne and Townsend’s classes. At least one member per group should attend.
- Parts still being shipped (primarily power supplies) should arrive today; RZ will email out when the parts come in.
Class 29, Wednesday 5/2/18: final presentation and crit
- final presentations with older friends and invited guests at the Squirrel Hill JCC 9:30–11 a.m. in the Katz Auditorium in the Robinson Building (entrance on Darlington Rd.)