1. Summer 2018 Syllabus¶
Contents
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.