1. Summer 2018 Syllabus

Wed-Fri 3:00-5:30PM
July 3-August 10
Location: Hunt Library A10 (IDeATe Physical Computing Lab)
Instructor: Dr. Garth Zeglin
Teaching Assistant: Lumi Barron

1.1. 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.

1.2. 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.

1.3. 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

1.4. 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.

1.5. 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.

1.6. 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 03






Tue












Welcome!
Course overview.
Review of SAMS 2017 final game.
Visual introduction to tools, components, and materials.
Laser-cutter tutorial.
Note: this will be the only Tuesday session.

Jul 04

Wed



No class for July 4 holiday.

Jul 05



Thu






Introduction to parametric design.
SolidWorks CAD tutorial.
Game mechanical design discussion.

Jul 06





Fri










SolidWorks tutorial.
SolidWorks and laser-cutter practice.
Game concept review.
Note: we resume on Wednesday.


Jul 11




Wed








Elementary electronics lecture.
Basic sensor and actuator circuit tutorial.
Game concept discussion.
Game sketching session.

Jul 12



Thu






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

Jul 13



Fri






Tentative: field trip to Kickback Cafe.



Jul 18


Wed




Game design and development.
Proof of concept testing.

Jul 19

Thu


Game design and development.

Jul 20



Fri






Fabrication and production.



Jul 25 Wed 10 Fabrication and production.
Jul 26 Thu 11 Fabrication and production.
Jul 27



Fri






Fabrication and production.



Aug 01 Wed 13 System integration.
Aug 02 Thu 14 System integration.
Aug 03



Fri






Playtesting and debugging.



Aug 08 Wed 16 Playtesting and debugging.
Aug 09 Thu 17 Practice presentations.
Aug 10 Fri 18 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.