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.

Wednesday, Jan. 18th: Intro

  • Welcome to class!
  • Quick introductions: students in random pairs each answer a few questions about each other:
    1. Their name and pronouns
    2. What they’re studying and what year they’re in
    3. What brings them to this class
    4. Something fun/interesting/exciting/great/awful they did over winter break
  • Review course Canvas site briefly
  • Review main course site (the one you’re reading this on) briefly, going over the various sections listed in the navigation bar on the left
  • Quick IDeATe walking tour
  • Phys Comp Lab tour
  • Handing out individual Arduini, and beginning of board tour
  • Homework 1 assigned
  • Please use the “Name Coach” feature on Canvas today or tomorrow

Monday, Jan. 23rd: Homework Q&A and diving right in

  • Syllabus review—not many close readers out there, unfortunately :(
  • Previous-semester projects review
  • Hand out IOref cards, review
  • Address some questions from the asynch homework questions discussion board
  • Weekly Feedback assignment on Canvas—will be due every Sunday night at 6pm (though this first one is due tonight at 6pm since I hadn’t introduced it for yesterday’s class)
  • Handing out additional parts for homeworks 2A and 2B (due in one week)
    • a few LEDs
    • jumper wires
    • medium breadboards
    • 270Ω and/or 330Ω resistors
  • Announcement: FrIDeATe this week—fun and recommended! Burritos! This Friday 1/27, 4:50–5:50pm right in the common area when you come out of the stairwell.

Wednesday, Jan. 25th: Block diagramming concepts, and Project 1 introduction

  • Introduction for two new students joining the class
  • Introducing basic block diagramming concepts with IOref cards and draw.ioref.org; activity where students in pairs each diagram a machine/device from everyday life and share out with the class briefly
  • Project 1 introduced, and groups shared via Canvas
  • Reminder that Homework 2A and 2B are due on Monday 1/30. Please pace yourself and spread the work out. It’s possible to do it all the night before, but that’s a bad idea. Additional parts handed out to complete the homework:
    • potentiometer (if you didn’t already get one)
    • 10kΩ resistor (two or three)
    • tactile pushbutton
    • HC-SR04 ultrasonic ranger
    • hobby servo motor
    • photoresistor
    • 5.6kΩ resistor (one or two)
  • FrIDeATe on Friday of this week. You should come! It’s a good time and there is food. It’s 4:50–5:50pm right in the common area in the basement when you come out of the stairwell.

Monday, Jan. 30th: Project 1 ideation discussions

  • Some confusion over an aynch video quiz called “Challenge: button, potentiometer, blink” which wanted you to upload a video—some people couldn’t see the link?
  • We will not spend more class time going over prior student projects—everybody got credit for that piece of Homework 1 and thanks to those who were able to share in class
  • We have guests: An HCI capstone team is working in the lab this semester to try and improve the student experience. Please let me know if you have any concerns at any time.
  • Quick homework questions—then we dive into individual Project 1 team meetings with Zach and Vishal
  • Base boards for Project 1 to be handed out on Wednesday

Wednesday, Feb. 1st: Debugging exercise, unit building/testing

  • “Unit” testing and debugging
    • Representing “units” with IOref cards
    • Drawing “units” of a system in block diagram form with draw.ioref.org
    • Considering tactics for debugging from the “unit” perspective
  • Quick intro to multimeters
    • Multimeters for everyone!
    • DC voltage mode is useful to ensure that power is getting where it’s supposed to
      • You can poke around with reckless abandon when you’re in this mode, since you’re very unlikely to harm anything
      • Put the black (negative) lead on a ground, and use the red (positive) lead to measure for voltages
    • Resistance mode is useful for confirming there aren’t short circuits, and for measuring the actual value of resistors (as opposed to their nominal value)
      • Power should be off when you’re using this mode
      • Connect one side of the resistor to one lead of the multimeter, and the other to the other—usually there’s no polarity so sides don’t matter
    • Continuity mode is useful for confirming that wires/connections are intact
      • Power should be off when you’re in this mode
      • Connect one multimeter lead to a place, and connect another to a different place; if you hear a beep, they’re in electrical contact
  • Debugging exercise
    • Brief introduction to TinkerCAD; sign in using your Andrew credentials or Autodesk account if you have one
    • Open debugging exercise #4 as a demo (listed on Debugging exercise page)
    • Draw a schematic of that circuit using Draw.io, being sure to use the “5V” and “⏚” nets to simplify things
    • Project 1 groups rotate through virtual debugging
  • Hand out wire strippers and do a quick demo as well
  • Using higher voltages
    • Do not connect any 5V to any higher voltage source at any point! You will push that higher voltage through the Arduino into your computer via the USB cable!
    • Do connect all the grounds together.
    • Be sure to have clear labeling and use good colors.
  • Handing out chipboard material for Project 1
  • Final documentation will want some process images, so just snap some photos as you go

Basic code structure for any sketch

A simple outline of the four steps (each of which is optional) that a typical Arduino project might need:

 void setup() {
  // put your setup code here, to run once:

}

void loop() {

  1. read information about the world

  2. make "decisions" about what to do or what to drive

  3. drive outputs appropriately

  4. report data back to the user

 delay(50);
}

The delay is just there as a sample of the sort of short-duration delay that’s usually acceptable in your loop, though generally you’ll want to avoid any unneeded delays in your code.

Monday, Feb. 6th: Project 1 work day

  • Wednesday’s format: each team will present at the front of the room for ~7–8 minutes total, comprising:
    • Quick demo of each student’s individual board
    • There will be USB power, 5V power, 9V power, and 12V power available at the front of the room. You may also want to power your Arduino (but probably not the whole project) with a 9V battery.
    • Zach will reach into the middle step of your system to test it and prove it’s “real!” The input signal must drive the middle-step transduction actuator, and the middle-step transduction sensor must drive the final output.
    • Mention of any especially interesting/challenging/exciting/terrible lessons learned during fabrication or debugging
  • Hands-on soldering demo for those who want to practice
  • Work day for everyone
  • Zach’s upcoming availability:
    • Monday 2/6 2:30–5:30pm
    • Tuesday 2/7 1–4:30pm
    • Or write an email!
  • Vishal’s upcoming availability:
    • Monday 2/6 after class until 1:30pm
    • Tuesday 2/7 after 3:30pm

Wednesday, Feb. 8th: Project 1 presentations

  • Presentation schedule:
    • 10:10am–11:10am — Individual team presentations
    • 11:40am — The Big Chain of Transduction
  • Project 1 documentation due in one week (Wednesday, Feb. 15th)
  • Project 2 brief introduction, and ideation assigned

Monday, Feb. 13th: Project 2 ideation reviews

  • I will move this week’s Weekly Feedback due date to today, Mon. Feb. 13th, at 6pm, to give people more time to respond if they didn’t remember to do it over the weekend. Future Weekly Feedbacks will be posted midday on Fridays and due at 6pm on Sundays. Please be on time!
  • Quick presentations by Team 4 from Project 1 (they weren’t able to show their project on Wednesday)
  • Grades for Project 1 presentations are due to you by Wednesday. Remember this project is worth only 15% of your total grade in the course, and the documentation is worth more than the presentation grade, so just try to document well, and you’ve got plenty of time to raise your course grade if you’re unhappy with it.
  • Fast individual meetings with Vishal and Zach to talk about Project 2 ideation
  • You may also use class time for Project 1 documentation if you wish

Wednesday, Feb. 15th: Project 2 work time

  • Project 1 documentation due at the start of class
  • Grades for Project 1 presentations are only partially complete, ergo bananas and clementines abound
  • Clarification of “prototype” expectations for Wednesday 2/22 following Project 2 assignment document
  • Small-group advice sessions for Project 2 (students helping each other in groups)

Monday, Feb. 20th: Project 2 work time, optional lasercutter lesson

  • Optional lasercutter lesson for interested people
    • Modify existing design, or create your own, for panel-mounting part
    • Export DXF
    • Lasercut!
  • Work day for everyone else
  • Featuring organic mandarin oranges as some grades are still out. Should be entirely caught up by Wednesday!

Wednesday, Feb. 22nd: Project 2 prototype presentations

  • Something odd is going on with Canvas’s grade calculations, which I haven’t gotten to the bottom of—do not trust that your calculated grade is necessarily correct. With that in mind, we quickly review grade histograms for all of the assignments so there’s a better sense of the grade distribution in the class.
  • Vishal’s TA hours available via appointment; use http://rndy.me/vishalurlam
  • Quick demo of the value/use of adding alt text to images on the internet
  • Brief prototype presentations by everyone who’s present, in a randomly-selected order. Three-minute timer for each person, who comes up to the front of the room to tell everyone what they’re working on for 90 seconds, and then gets 90 seconds of feedback from the room
  • Different data types for variables in the Arduino environment:
    • bool: true or false
    • int: whole number in range –32,268 to 32,767
    • unsigned int: the same number of values as int, but starting at 0, so: range is 0 to 65,535
    • long: whole number in range approximately –2.1 billion to 2.1 billion
    • unsigned long: the same number of values as long, but starting at 0, so: range is 0 to about 4.3 billion
    • float: “floating point” number, meaning something with a decimal in it like 1.543 or –10493.25, but with limits (a float has 6 or 7 digits of precision, so it wouldn’t store 9872.19886757275 without truncating it). Range is about –3.4 × 1038 to 3.4 × 1038
    • char: short for “character,” things like a, Q, ?, or even 8 (as a character, not the value 8)
    • String: a “string” of characters put together, like "Abracadabra!" she yelled., or q (yes, a String can be just one character long, confusingly), or 735—though it looks like a number, it’s a String so it has no numerical value
    • Read lots more details at this section of the main Arduino reference page

Monday, Feb. 27th: Project 2 work time

  • Note on the “ergonomics” grade for the project—label your interface!
  • Format for Wednesday’s crit:
    • Class will be split into two groups so each presentation will have more time to show
    • When it’s your turn, you’ll present for ~2 minutes
    • Then there will be discussion and feedback (written and verbal) for ~7–8 minutes
    • At the end, we’ll have a little time for science-fair style showing off, where each half will go over and see the other half’s stuff briefly
  • Zach’s availability in the next few days (just talk with or email Zach to schedule a time)
    • Monday 2/27 2–4pm
    • Tuesday 2/28 9–10am; noon–2:30pm; 3:30–5:30pm
  • Use Vishal’s calendar link to make an appointment with him: http://rndy.me/vishalurlam
  • Remember to take pictures as you go!

Wednesday, March 1st: Project 2 critique

  • Class is divided into two randomly-selected halves
  • Each student has ~9 minute window:
  • At conclusion, science-fair style share out for the whole class so everyone can check out everyone else’s stuff

Monday, March 13th: Project 2 make-ups, DSLRs, documentation work time

  • Class divides into same halves as last time for some make-up presentations
  • DSLR use tutorial
  • Remainder of class is Project 2 documentation work time

Wednesday, March 15th: Final project first meeting with clients

  • Make-up presentation for Project 2
  • Introduction to our design clients from CLASS (Community Living and Support Services)
  • Introduction to Final Project
  • Quick game of Truths and a Lie
  • Group design challenge using lab materials to throw together ideas
  • Final teams announced (see Canvas post for team information)
  • Reminder: no class meeting on Monday 3/20 to give you time to meet with your clients

Monday, March 20th: No class meeting

  • This time given for you to meet with your design clients

Wednesday, March 22nd: Interview discussions

  • Announcements
    • Meeting of the Minds is an annual end-of-spring event for undergraduates to show off their research at the CUC. It’s a great opportunity for you to share the cool projects you’ve already made (e.g. Project 2) or you’re soon to make (your final project) with fellow students and other interested people. IDeATe has reserved an area for IDeATe students to present their projects (not a formal presentation, more of a stand-near-the-thing-and-answer-questions-about-it) and we’d love for you to participate. Details to follow.
    • Upcoming event of interest: “F*ck the Norm: Disability as Creative Asset with Regan Linton” includes a movie screening followed by talkback at the STUDIO for Creative Inquiry (CFA room 111) on Wednesday, April 18th, 5–7pm. RSVP here by April 14th. I hope to see you there!
  • Homework for Monday has two parts: interview documentation, and a reading and response about disability. The reading response is due at 9am on Monday so that I can read your thoughts before class and use them to help inform our discussion. There will not be a weekly reflection this week because I don’t want to overwhelm you with another assignment.
  • Wednesday 3/29 we’ll be taking a field trip to CLASS (Community Living and Support Services), with details to be discussed on Monday 3/27.
  • Any team name changes?
  • Project 2 documentation grading is ongoing. I hope to finish by Monday of next week, but it might take until Wednesday. After then we’re in the snack zone!
  • Remainder of class is team discussions

Monday, March 27th: Prototype prep

  • Reminder: Wednesday we’ll be meeting at CLASS (Community Living and Support Services). The 61B bus will get you very close to there. Please do your best to arrive by 10am so we can have a full hour and a half visit before being released at 11:30am. We’ll be hearing from the CEO, seeing a really big collection of interesting assistive technologies, and getting a tour of their space.
  • Discussion of reading homework
  • Check in with overall final project schedule
  • Review of expectations around prototype critique (which will be on Wednesday, April 5th)
  • Today:
    • Finalize a team project (if at all possible, if not already done)
    • Decide exactly what question(s) you want to answer with your prototype(s)

Wednesday, March 29th: CLASS field trip!

  • We meet at CLASS (Community Living and Support Services)
  • We hear from:
    • Their CEO, Melva Fair
    • Their Assistive Technology Coordinator, Jeff Ruffing
    • Their Outreach Coordinator, Mal Hudson
  • We did a quick tour of their facility where they run their day program
  • We did a tour of their assistive technologies lending and tryout space as well

Monday, April 3rd: Prototype prep

  • My Project 2 documentation grading tardiness remarkably goes on, hence the clementines (you’re welcome)
  • Wednesday’s format:
    • Brief introductions at the top of class
    • Slides by teams in this deck
    • About an hour (that’s a while!) of team consultations with your client

Wednesday, April 5th: Prototype crit

  • Teams present from our slide deck
  • Long group consultation time with clients

Monday, April 10th: Work time

  • Final prep sequence due
  • Quick recap of Prototype critique
  • Work time

Wednesday, April 12th: Work time

  • Reminder: Meeting of the Minds is an annual end-of-spring event for undergraduates to show off their research at the CUC. It’s a great opportunity for you to share the cool projects you’ve already made (e.g. Project 2) or you’re soon to make (your final project) with fellow students and other interested people. IDeATe has reserved an area for IDeATe students to present their projects (not a formal presentation, more of a stand-near-the-thing-and-answer-questions-about-it) and we’d love for you to participate. Details to follow.
  • Reminder: Upcoming event of interest: “F*ck the Norm: Disability as Creative Asset with Regan Linton” includes a movie screening followed by talkback at the STUDIO for Creative Inquiry (CFA room 111) on Tuesday, April 18th, 5–7pm. RSVP here by April 14th. I hope to see you there!
  • Let me know very soon if you want me to order anything—the longer you wait, the more trouble you might get yourself into
  • Work day
  • Take pictures as you go!

Monday, April 17th: A week and a half to go!

  • You’ll notice a conspicuous absence of snacks this morning: all Project 2 documentation grades posted. Questions/concerns, let me know. Happy to discuss.
  • Final reminder for upcoming event of interest tomorrow: “F*ck the Norm: Disability as Creative Asset with Regan Linton” includes a movie screening followed by talkback at the STUDIO for Creative Inquiry (CFA room 111) Tuesday, April 18th, 5–7pm. RSVP here—they said to do it by April 14th but as of this writing the link is still working. I hope to see you there!
  • Practical considerations in fabrication (with reference to relevant course page)
    • Connections shouldn’t just go through a hole in the side of your enclosure; use panel mount connectors
    • Give yourself access to the inside of your device via a hinged or otherwise removable panel/door
    • Batteries are possible; plugging in is often preferred
    • A power switch is usually a good idea
    • Material choices, labeling, and other visible aspects of your design matter. But they don’t matter as much as it working!
  • Generally: privilege function over appearance. Try to get the thing working reliably and then if you have time make it look good.
  • Each team should review their Gantt chart to check in with each other. Do not just blindly start working today (or tomorrow or Monday)! Be sure your efforts are properly contextualized.
  • Any materials ordering requests should be posted to this spreadsheet. I recommend doing it sooner than later for your own sake.
  • Remember to take pictures as you go for your final documentation.

Wednesday, April 19th: Penultimate work day

  • Final project work day.

Monday, April 24th: Final work day

  • As of Monday morning we’ve got 9 yeses and 10 maybes from CMU guests coming on Wednesday (in addition to the clients and CLASS staff members). So we’re gonna have a very full house! We’ll just have necessary items on your tables; all backpacks and other things off to the sides, please.
  • Please be on time or early for Wednesday’s class.
  • Take pictures as you go!