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. 17th: 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
  • Homework 1 and Homework 2 assigned
  • 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. Currently listed upcoming sessions:
    • Tuesday 1/23 11:30am
    • Thursday 1/25 2pm
    • Tuesday 1/30 1pm
    • Monday 2/5 9am
    • Thursday 2/8 2pm
  • Handing out beginning of course kit—each student gets:
    • 1 Arduino
    • 1 breadboard
    • 3 LEDs
    • 3 270Ω resistors
    • handful of male–male jumper wires
    • 1 10kΩ potentiometer (1kΩ potentiometer is a fine substitute for our purposes)

Monday, Jan. 22nd: Systems thinking

  • Brief review of syllabus—most students read it so we didn’t need to linger. Thank you for that!
  • Previous-semester projects review (this was part of Homework 1)
  • Weekly feedback #1 due date is changed to Tuesday 1/23 9am so that people can hand it in late without penalty
  • 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; we diagram a refrigerator with that tool
    • Teams discuss and draw assigned devices: microwave, projector, RC car, and refrigerator
  • Students collect additional materials as needed to continue working on the asynchronous learning sequence (Homework 2 is due one week from today)
    • (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 on Wednesday

Wednesday, Jan. 24th

  • Asynch homework Q & A (resistors, potentiometers)
  • Project 1 assigned, due on Wednesday, Feb. 7th
  • Resistor color code lesson
  • Schematic standards lesson (big takeaway: use 5V and gnd ⏚ symbols instead of drawing all of those lines individually)

Monday, Jan. 29th

  • Zach is out sick and joins remotely
  • Project 1 ideation discussions with Zach and Angie

Wednesday, Jan. 31st

  • There is a pinball machine in the room now, for another class. Please don’t disturb it (but you can check it out!)
  • Soldering technique demo
    • wire to wire
    • component to proto board
    • wire-to-board connector to protoboard (i.e. female header and screw terminal)
    • header to PCB, using solderless breadboard for mechanical support
  • Four major parts of the loop() that I want you to include in your Project 1 software:
    1. Read inputs
    2. Compute or make decisions
    3. Drive outputs
    4. Report data back to the user
  • Event-loop programming (see Codebook entry below)
  • Project 1 cardboard boards are handed out
  • Remainder of class is Project 1 work time

Codebook

" 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;
  }
}

For further explanation and another example of using the “event loop” structure, see the Blink without blocking sample sketch in the “Code bites” tutorial page.

Monday, Feb. 5th: Project 1 work time

  • Project 1 is due Wednesday
  • On Wednesday, I (Zach) will reach in and mess with your middle step, to confirm that it’s actually driving the output. So be sure that you’re really, truly using that middle-step sensor to affect your output!
  • Critique structure on Wednesday: each team will come up to the front and show their projects for a couple of minutes using the document camera and answer a couple of questions
  • Towards the end of the class Wednesday, we’ll try (fingers crossed) to chain all of our transducers together into a long glorious ridiculous machine and get some IDeATe and Libraries staff to come see your work
  • Remember to take pictures, screengrabs, etc., as you go! Your documentation will require process images.

Wednesday, Feb. 7th: Project 1 presentations

  • Each student shows their work for a couple of minutes
  • We try to chain all of our transducers together! It…a little bit…kind of…not really works.
  • Project 2 introduced; ideation is due Monday, 2/12

Monday, Feb. 12th: Project 2 ideation discussions

  • Thank you for writing weekly feedback, which I appreciate reading (and have written response comments for)
  • Quick review of data types:
    • 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
  • Individual discussion with each student about their Project 2 ideation
  • If you’re not talking with Angie or Zach, you’re welcome to use the time for Project 1 documentation, which is due on Wednesday
  • Once you’re done taking photos/videos of your project, please disassemble it and return as many parts as possible to their homes so they can be reused

Wednesday, Feb 14th: Project 2 quick ideas roundtables, work time

  • Clarification of prototype expectations for 2/21 due date
  • Aspects of your project that 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!

  • Many students have a sad moment 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!
  • Fusion 360 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.
  • 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!

Monday, Feb. 19th: Lasercutter tutorial, work time

  • Repetition of expectations for Project 2 prototype critique on Wednesday: some meaningful effort towards the final product that is due a week later, but not necessarily a version 1.0 of what the final will be.
  • Class is divided into quarters and each student has opportunity to use IDeATe’s lasercutters to cut a file (preferably their own)
  • Work time for all students who aren’t getting laser training
  • Take pictures as you go! Final documentation will want process images.

Wednesday, Feb. 21st: Project 2 prototypes

  • Each student shows their prototype to the room for quick feedback and critique (~2 to 3 minutes per student)
    • Quick showoff from the front of the room using document camera to share with everyone
    • Student should ask any questions they’ve got to the room
    • Brief feedback from Zach and Angie about direction forward based on what’s presented
    • Angie takes notes for all students in a Google doc accessible to the class
  • Review of the final project expectations for next week’s final critique
  • Remainder of class is given for work time
  • Take pictures as you go!

Monday, Feb. 26th: Project 2 work day

  • Format for Wednesday’s crit:
    • Class will be divided into halves so that each person has plenty of time to present and then get verbal and written feedback (about 10 minute slot per person)
      • Plan to present for 2–3 minutes
      • Consider implementing a “demo mode” if there is any long-term timing (make your clock run very fast, etc.)
      • Do your best to show your thing working
      • If it’s not fully working, show what is working
      • If it’s not working at all, show what it might do if it were working
      • The more you show your audience, the more feedback it’s possible for them to give you!
    • At the end of the presentations, we’ll have “science fair” walkaround time for everybody to check out everyone’s projects
    • Healthy and nonhealthy snacks and coffee and tea for all!
  • Remember to take pictures as you go!

Wednesday, Feb. 28th: Project 2 critique

  • Announcement: upcoming very cool creative electronics workshop with visiting guest artist from Romania Ioana Vreme Moser. Workshop weekend schedule:
    • Friday March 22nd, Lecture 5:30PM
    • Saturday March 23rd, Workshop 10AM-6PM (Lunch and snacks provided.)
    • Sunday March 24th, *Optional Additional Work Time 10AM-12PM (Lunch and snacks provided)
    • Sunday March 24th, All Participant Rehearsal 1PM - 5PM (Dinner provided)
    • Sunday March 24th, Public Performance with Workshop Participants 6PM-8PM

      If you are interested, I can give you a special RSVP link that is not yet public. Let me know today since they’re opening registration on Friday!

  • Introduction of our guest critiquers
  • Critique
  • At the end of the session we’ll have a walk-around demo time for everyone to see everything
  • Beware the Ides of March, when documentation will be due (3/15, the Friday after spring break)
  • Also, I will be assigning one video to watch before our first class back from break; to be posted on Canvas. Nothing heavy duty!
  • Have a great, relaxing, restful break!

Monday, Mar. 11th: Final project introduction and guest speaker

  • Welcome back from break. We’re immediately transitioning to the final project for the semester, starting now.
  • This week’s Weekly Feedback is due tomorrow (Tuesday 3/12) at noon to give you a bit of extra time.
  • Project 2 documentation: since I’m not posting it until today, and because I don’t want it to interfere with the Final Project post-interview ideation assignment, it will be due Friday 3/22
  • Final project scoping: review of a few projects from semesters past, including cautionary tales:
    • Augmentative and Alternative Communication Device (fall 2023) was overall quite successful. It was useful for the client, complete, well-built, functional, and featured a thoughtfully designed enclosure.
    • Portable Single-Player Chess (fall 2023) was a good idea, but the team tried to build most of it the night before the project was due. As a consequence, it was sloppy in its final execution, though a few simple fixes could’ve made big improvements: reconsider the clear enclosure; solder all connections; replace the power cable dangling out of the speaker holes with a properly panel-mounted part; slow down the rotation so it takes a few seconds.
    • Explosive Schedule Reminder (spring 2023) had a simple job which it did well, featuring some customization touches that the client (Keith) requested, including the color red and word “EXPLOSIVE” on the outside of the box.
    • Portable Schedule Playback Device (spring 2023) was a nice idea (and similar to the project above) but the team waited far too long to try to cram all of their electronics into the final device. They couldn’t fit and it didn’t work at the demo!
    • You can browse through every past submission via the Previous semesters page
  • Project schedule overview from assignment page
  • First task of the project: conducting an interview, which we discuss in class
  • Guest speaker: Mallory Hudson serves as Outreach Coordinator at Community Living and Support Services (CLASS), the organization we are working with for the final project.
  • Wednesday 3/13 the whole class period will be a field trip to CLASS’s main facility
    • Their address is 1400 South Braddock Avenue, Pittsburgh, PA 15218
    • To travel with the class: we’ll take the 61B; meet at 10:00am at the Forbes and Morewood bus stop (the one closest to the People Walking Into the Sky statue, bus traveling up towards Squirell Hill). We’ll get on the first 61B that comes after 9:59am.
    • You can also use your own transportation if you prefer
    • We will take a quick tour of their facility and you’ll have time and space to interview the clients we’ll have for our final project
    • We intend to leave there in time for you to get back to campus for your following commitments by noon
  • Final project teams are posted to Canvas; your homework is to talk with your teammates and prepare for the interview you’re conducting on Wednesday with your client!

Wednesday, March 13th: CLASS field trip

  • Field trip to CLASS’s main facility
  • Quick tour of their Assistive Technology room
  • Quick tour of their Day Program facility
  • Interview slots for each team to talk with their client

Monday, March 18th: Interview and ideation review

  • Discussion of the interviews and field trip
  • Preview of the prototype assignment that is the next major deliverable
    • Key point: your prototype(s) should be experiment(s) which are explicitly designed to answer a question rather than being a version 1.0 of your anticipated final project
  • Individual team meetings with Zach to talk over ideation

Wednesday, March 20th: Prototype work time

  • Interview documentation due at the top of class
  • Announcement: TOM is an international organization that serves to develop open-source assistive devices for people with various needs. Applications are currently open through April 1st to join their TOM Fellowship program: “Join the TOM Fellowship, a 9-month International Leadership Program built to support students who seek to apply technology and innovation to solve unmet challenges faced by people with disabilities, the elderly, and vulnerable groups in their communities.​” They are a cool organization and I encourage you to apply if you’re interested! I can serve as a reference. Here is the application link.
  • Work session for upcoming prototype critique (in two weeks)
  • Remember to take pictures as you go!

Monday, March 25th: Prototype work time

  • Reminder about the TOM Fellowship; applications due April 1st
  • Any teams changing their names?
  • Any orders that still need placing?
  • Prototype work session
  • Take pictures as you go!