Special When Lit: Using Go to Bring a Pinball Machine Back to Life!
February 26, 2024
32 min
Free
go
tinygo
waitgroups
hardware-interfacing
rc-servo
shift-registers
raspberry-pi
microcontrollers
concurrency
event-driven-architecture
observer-pattern
gpio
i2c
embedded-systems
Description
In this talk, Jeremy Fleitz demonstrates how concurrency and WaitGroups were used to build an event-driven package called GoFlip to implement the game rules for a pinball machine controlled by a Raspberry Pi. Arduinos provide the peripheral interfaces, while TinyGo is evaluated to further improve the overall design of this now fully functional pinball machine powered by Go. The presentation covers the anatomy of a pinball machine, interfacing with old hardware, abstracting hardware interactions with Go, and implementing game logic using the observer pattern.