Pinball Machines and Education

advertisement
Teaching Robotics and
Computer Science with Pinball
Machines
Daniel Wong, Darren Earl,
Fred Zyda, Sven Koenig
University of Southern California
Overview
•
•
•
•
•
Games, Robotics, and Education
Pinball Machines and Education
Pinball Project @ USC
Future Work
Conclusion
Games and USC
• Bachelor’s program in CS (Games)
• Master’s program in CS (Game
Development)
Games and Education
•
•
•
•
•
Computer Architecture
Algorithms and Data Structures
Networking
Human-Computer Interaction
Artificial Intelligence
– Path Planning
– Machine Learning
Games and Education
• Technical skills
– Programming skills
– Software engineering skills
•
•
•
•
•
Creativity
Design skills
Artistic skills
Problem-solving skills
Teamwork skills
Games and USC
Games and USC
Games and USC
• Gamepipe Demo Day
– Attendees have included Electronic Arts, Activision, Blizzard,
Sony Computer Entertainment, Sony Online Entertainment,
Digital Domain, Disney (Interactive, Feature Animation, Internet
Group), LucasArts, Microsoft, Google, Akamai, 2K Sports, THQ,
CNET Networks, Qualcomm, Tactical Language, Seven Studios,
iSportGames, Emsense, Creative Artists Agency, Applied Minds,
Big Stage, Konami, Pandemic, Insomniac Games, Naughtydog,
Northrup Grumman, Steamboat Ventures, TnGames, Sun
Microsystems, Motorola Research Laboratories, Humana
Innovation Center, Sandia National Laboratories, and Westside
Transmedia.
Games and USC
• Increased number of application to
Bachelor’s program in Computer Science
– 223 in Fall ‘06 to 383 in Fall ’07
• Equal number of CS and CS (Games)
• Successful internship placement
– EA, Disney, Blizzard, Activision
Games and Robotics
• Robotics education place emphasis on
high-level software
• Use games as motivation to teach robotics
Games and Robotics
• Communication protocol
– Serial, I2C, SPI
• Signal generation
– PWM
• Interface
– To hardware: motors, servos
– To sensors: switches, optical sensors
Games and Robotics
Goal
• Teach hardware interface
• Using games as motivation
• Hardware+Games+Robotics=
Pinball Machines!
Outline
•
•
•
•
•
Games, Robotics, and Education
Pinball Machines and Education
Pinball Project @ USC
Future Work
Conclusion
Pinball and Education
• Pinball Machines can be used as a novel
platform for teaching CS and Robotic
Concepts
Pinball Machines
•
•
•
•
Coin-operated arcade game
Backbox
Playfield
DMD
Pinball Machine
Pinball Machine
•
•
•
•
Actuators
Sensors
Visual outputs
Pinball Machine is
a simple robot!
Pinball Machine
• DC motor
• Electro
-magnets
• Upkicker
• Solenoids
Previous Work
• In Research
– Hybrid system control (Lichtenberg and Neidig, 2003), Machine
Learning
• In Teaching
– CS160 “Intro. To Embedded and Real-Time Programming”,
Brown University
– ME218a “Smart Product Design Laboratory”, Stanford University
– EE476 “Designing with Microcontrollers”, Cornell University
– ENEE 488Q “Special Topics in Elec. Eng: Pinball Machine
Project”, University of Maryland, College Park
Pinball and Education
• Teach game design
– What makes pinball
games fun?
• Teach robotics concept
Pinball and Education
• Easy to maintain
• Robust
• Simple Low-Level Control
Outline
•
•
•
•
•
Games, Robotics, and Education
Pinball Machines and Education
Pinball Project @ USC
Future Work
Conclusion
Pinball Project
• Modify an existing
pinball machine
• Custom games
• Flexible hardware
control
• Simple API
Pinball Project
•
•
•
•
Started Summer ‘08
2 generations of interface hardware
1 Pinball game design class
Diverse development team
Timeline
• Summer ‘08: 1st generation interface
• Fall ’08: Used in CS499
• Spring-Summer ’09: 2nd generation
interface
Implementation
Interface Requirements
•
•
•
•
Inexpensive
Meet soft real-time need
Portable
Not Permanent
Implementation
• ~$100
Implementation
Implementation
• Event-driven software
• Friendly API
installDedicatedSwitchEventHandler(leftFlipper, "Left Flipper Button", kSwitchRising);
void leftFlipper(int switchId, std::string description, tSwitchEvent event)
{
if (event == kSwitchRising)
setSolenoid("Left Flipper", 1);
else
setSolenoid("Left Flipper", 0);
}
Pinhorse
• Fall 08
CS499: “Designing and Implementing
Games on Pinball Machines”
• 2 students
• 1 semester
Pinhorse
• Lack of multiplayer gameplay
– No time restriction
– No direct influence
• Goal:
– Players influence each other
– Limited Time
Pinhorse
• Modeled after Horse in basketball
– Player 1 makes shot
– Player 2 tries to replicate shot
• 1 minute turns
Pinhorse
Outline
•
•
•
•
•
Games, Robotics, and Education
Pinball Machines and Education
Pinball Project @ USC
Future Work
Conclusion
Future Work
•
•
•
•
•
Formal evaluation
Ball tracking
Complex, engaging game
Explore other pinball machines
Hybrid pinball game
Future Work
• New collaboration with
University of Alberta
• Implement ScriptEase module
– ScriptEase: Model for AI scripting
• Implement high-performance player
Conclusion
• Games can motivate CS curriculum
• Robotics education focus on high-level
• Pinball Machines can be used as a novel
platform for teaching CS and Robotics
Resources
• Web: idm-lab.org/pinball
• Sven Koenig, skoenig@usc.edu
• Daniel Wong, wongdani@usc.edu
Thank you!
The pinball project was supported in part by a grant from the USC Fund for Innovative Undergraduate Teaching and the National Science
Foundation under Grant No. 0113881. Daniel Wong was supported by the USC Undergraduate Merit Research Program and the Rose
Hills Foundation.
Download