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.

Monday, August 26th: 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
  • Review Gantt chart of major course flow across the semester
  • Quick IDeATe walking tour
  • Phys Comp Lab tour
  • Please use the “Name Coach” feature on Canvas today or tomorrow
  • Strong recommendation: sign up for the university fire extinguisher training which is the hardest part of the process to gain access to IDeATe’s laser cutters. Link to relevant Bioraft (training system) page.
    • Publicly listed upcoming sessions, sign up for these via Bioraft:
      • Wednesday, August 28, 10:30am, Facilities Management Services Building 3rd floor - EHS Conference Room 307
      • Friday, August 30, 9:00am, Facilities Management Services Building 3rd floor - EHS Conference Room 307
    • Special IDeATe-only sessions in the library, sign up for these via this form:
      • Friday, September 6, 11am–12:30pm, HL 106B (Studio A)
      • Friday, September 6, 2–3:30pm, HL 106B (Studio A)
  • Homework 1 assigned, due Wednesday 8/28
  • Homework 2 assigned, due Wednesday 9/4
  • Today’s music, for those who are interested: from the group “Selva de Mar,” downloaded (legally) from the Free Music Archive
  • Handing out beginning of course kit—each student gets:
    • 1 Arduino
    • 1 breadboard
    • 3 LEDs
    • 3 270Ω resistors
    • 10 male–male jumper wires, including at least two red and two black ones
    • 1 10kΩ potentiometer (1kΩ potentiometer is a fine substitute for our purposes)

Wednesday, Aug. 28th: Systems thinking

  • Room policy things I forgot to mention last time:
    • Food and nonwater drink must be consumed in the Zone of Shame and are not allowed at tables
    • Please use all resources within reason!
  • Very brief asynch homework review
  • Reminder to sign up for a fire extinguisher use training if you haven’t already
  • Brief review of syllabus—most students read it so we didn’t need to linger too long. Thank you for that!
  • Previous-semester projects review (this was part of Homework 1)
  • Weekly feedback #1 is posted; due tomorrow (Thursday 8/29) at noon
  • Introducing the ioRef cards and associated resources
    • Lesson on using ioRef cards to diagram data flow through a system
    • Drawing the equivalent diagram using the customized diagrams.net interface, accessible at https://draw.ioref.org
    • Teams discuss and draw assigned devices: microwave, projector, radio-controlled toy car, refrigerator, old-school (wired) telephone
  • Students collect additional materials as needed to continue working on the asynchronous learning sequence (Homework 2 is due one week from today)
    • (1) 6-quart plastic tub w/label to store things
    • (1) 5.6kΩ resistor
    • (2) 10kΩ resistors
    • (2) tactile pushbuttons
    • (1) HC-SR04 ultrasonic ranger
    • (1) hobby servo motor
    • (1) CdS (cadmium sulfide) photoresistor
  • Project 1 to be assigned next Wednesday; until then it’s time to cram in lots of technical learning! Pace yourself.

Wednesday, Sep. 4th: Project 1 introduction

  • Asynch homework review. You should be (blissfully) done with that sequence now!
  • Quick tech lesson: how to read resistor color codes
  • Drawing schematics using draw.ioref.org
  • Zach will be out next week for a conference in the UK (International Symposium on Academic Makerspaces, if you’re interested), so Ella will be running the show. Also guest star Prof. Garth Zeglin, fellow IDeATe faculty, will be giving feedback on your Project 1 ideation in person on Monday.
  • Project 1 introduction and discussion (class time given for students to start ideation)
    • Ideation due date is Monday, Sep. 9th
    • Project due date is Wednesday, Sep. 18th

Monday, Sep. 9th: Project 1 ideation recap

  • Teams meet with Ella and Garth to go over their project 1 ideation
  • Tiny bit of work time at the end

Wednesday, Sep 11th: Work time

Monday, Sep. 16th: Project 1 work time

Scheduling events to happen when you want them to without using delay(): “event loop” model

" event loop programming "
if (it has been long enough) {
  do something;
  update our timer;
}

millis();  // this is the Arduino's built-in timer
// it tells you how many milliseconds have passed since the Arduino turned on


unsigned long HALFSECONDWAIT = 500;  // 500 milliseconds is half a second
unsigned long nexttimetorun = 0;

void setup() {
  nexttimetorun = millis() + HALFSECONDWAIT;
}

void loop() {

  if (millis() >= nexttimetorun) {
    do something;
    nexttimetorun = millis() + HALFSECONDWAIT;
  }
}
  • Data types in C:
  • bool: true or false
  • int: whole number in range –32,768 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

Wednesday, Sep. 18th: Project 1 presentations

  • Each student presents their Project 1 work at the front of the class for a few minutes, demoing it, and doing a quick Q&A
  • If you are not presenting for credit today, sign up for a slot on Friday to show me your project for grading on this page
  • Project 2 assigned, including ideation homework which will be due Monday 9/23

Monday, Sep. 23rd: Project 2 ideation discussions

  • Reviewing that these aspects of your project will be time consuming to iterate on, in likely-descending order:
    • physical/mechanical fabrication
    • electronics
    • software

      Keep this in mind as you’re working on the project and give yourself plenty of time to make mistakes!

  • Each student meets with Zach and Ella to talk about their Project 2 ideation and try to narrow down to one idea

Wednesday, Sep. 25th: Project 2 development time

  • Clarification of prototype expectations for 10/2 due date
  • Many students have a sad moment soon before the project is due where they attempt to cram their electronics into a too-small container. This often results in broken or inconsistent connections, which will often bring a project to its knees. Give yourself plenty of room for wires! A slightly-too-large container is better than a slightly-too-small one.
  • Fusion software tutorial assigned as homework for Monday so that everyone can come in and lasercut some parts on Monday in class (when we’ll show you how to use our IDeATe lasercutters). This is about 1 hour of video lecture that you’re expected to work along with, and you’ll need to turn in a link to your design as well as your DXFs as the work product for this homework. You will also read the IDeATe lasercutter guide and complete a short quiz on that material before class (the quiz is linked from the Canvas homework assignment).
    • If you do not want to learn Fusion because you’re already proficient in other CAD software, that’s fine; you should make your drawings in that other software and submit to the same assignment, because we’ll still be lasercutting your piece in class.
  • Advice-sharing session in class for students to give each other project 2 ideation feedback in small groups
  • Just as in Project 1, this project will want process images for the final documentation, so take pictures as you go!