Summer 2019 Syllabus

Mon, Tue, Thu 3:00-5:45PM
July 1-August 9
Location: Hunt Library A10 (IDeATe Physical Computing Lab)
Instructor: Dr. Garth Zeglin
Teaching Assistant: Lumi Barron

Course Description

This project-based course introduces students to the fundamentals of electronic and software engineering in the context of developing a pinball machine. This objective combines elements of electromechanical systems, real-time software, human interaction, and physical dynamics. The specific outcome will be driven by student game designs and culminate in one or more working machines to be performed or played at a final show.

The course will begin with several skill-building labs to learn basic CAD, electronics theory, Arduino microprocessor programming, and the properties of the sensor and actuator components. The students will simultaneously develop a detailed project concept, followed by developing and testing progressively more detailed prototype revisions.

Project Description

Students will work in small teams to design, build, and program a pinball machine from scratch. The emphasis is on elegant design and execution within a tight budget. The physical construction will use both laser-cut wooden parts and commercial components. The scope of the project includes game concept design, mechanical design, real-time software development, project management, and electronic and mechanical fabrication and testing. The skills section covers elementary 3D CAD and the use of essential electronic lab equipment including multimeters, soldering irons, and oscilloscopes.

We will begin by analyzing the previous game boards, covering basic circuit theory, mechanism, and real-time software methods. We will synthesize a new game design and develop new mechanical component designs. In parallel, the software stack will be extended to support the game logic. The system will be brought together as a whole, play-tested, and revised. The final outcome will be a playable game to be demonstrated at the closing symposium.

Course Goals

Upon completing this course students will be able to do the following:

  • apply basic electronic theory to build and analyze simple sensor and actuator circuits
  • write Arduino software to implement real-time control of an electromechanical system
  • develop reactive behaviors
  • design state machines for implementing control logic
  • develop a machine prototype through multiple iterations
  • observe good lab discipline and etiquette

Course Resources

The course will be hosted in Carnegie Mellon’s IDeATe Physical Computing Lab. Students will have access to Arduino microcontrollers, a variety of electronic components and test equipment, prototyping supplies, and programming software on university computers. Project materials will be free to students.

Policies

Coming to class is mandatory. The coursework will primarily take place during the lab sessions.

The classroom for the course in the IDeATe Physical Computing Lab in Hunt A10, part of the IDeATe facilities in Hunt Library. All lab users are expected to abide by the Physical Computing Lab Policies. The lab inventory of components and materials is available online under Physical Computing Lab Inventory.

Calendar

The general plan is as follows:

Week 1
Introduction, ideation, and skills.
Week 2
Skill development: CAD, mechanism, electronics, programming.
Week 3
Game design and prototyping.
Week 4
Game production.
Week 5
Integration and testing.
Week 6
Debugging, documentation, demonstration.

The full project plan will be continually revised as a Google Sheet; please see the daily Log Book pages for the links.

The following course calendar will be adjusted as we go:

Date Day Class In-Class Activity
Jul 01





Mon










Welcome!
Course overview.
Review of SAMS 2018 final game.
Visual introduction to tools, components, and materials.
Introduction to parametric design.

Jul 02





Tue










Laser-cutter tutorial.
SolidWorks CAD tutorial.




Jul 03


Wed




Field trip to Kickback Cafe.
Note: special day this week to make up for holiday.
Note: brainstorming exercise will be due Monday.
Jul 04

Thu



No class for July 4 holiday.

Jul 08



Mon






Game mechanical design discussion.
Game concept discussion.
Game sketching session.

Jul 09




Tue








Introduction to the Arduino.
Basic embedded programming tutorial.
Game sketching session.


Jul 11




Thu








Elementary electronics lecture.
Basic sensor and actuator circuit tutorial.



Jul 15

Mon


Game design and development.
Proof of concept testing.
Jul 16 Tue 8 Game design and development.
Jul 18

Thu


Fabrication and production.

Jul 22 Mon 10 Fabrication and production.
Jul 23 Tue 11 Fabrication and production.
Jul 25

Thu


Fabrication and production.

Jul 29 Mon 13 System integration.
Jul 30 Tue 14 System integration.
Aug 01

Thu


System integration.

Aug 05 Mon 16 Playtesting and debugging.
Aug 06 Tue 17 Playtesting and debugging.
Aug 08 Thu 18 Practice presentations.
Aug 09

Fri



Closing Symposium

Please note that Hunt Library is not open 24/7 during the summer. Notably, the Hunt Library Hours calendar indicates the building closes at 6PM on Fridays, and 9PM Monday through Thursday. This can limit the possibilities for last-minute pushes; please plan accordingly.