Automated Basketball Machine.
Is it an ABM? Is it a basketball game? No, it's an Automated Basketball Machine.
tl;dr. An ABM converted into a basketball game, for BMO’s NBA activation with the Raptors.
When is an ABM not an ABM? When it’s a basketball game activation for BMO. The brief for this project came from FCB Toronto, through Performance Solutions, who brought me in to create the electronics that would transform this humble ABM in to a highly popular game that NBA fans lined up to play before the big game.
Performance Solutions built out the cabinet, and fitted linear actuators to open and close flaps that would catch and release the basketballs used by the player.
This view inside the cabinet shows one of the Arduino controlled linear actuators that opens and closes a flap to catch and release the balls.
I wired up the ABM so that inserting a bank card would open flaps, trigger the release of the balls and, begin playback of an animation on the display.
The display proved to a bit of a challenge. We used a decommissioned bank machine, which turned out to use a connection incompatible with HDMI. This turned out to be a mistake by the supplier of the ABM, but seeing as they were not going to be able to get us an HDMI model in time, we instead ‘borrowed’ a flat panel monitor from the project manager’s desk, and strapped it to the inside of the ABM. The end result is seamless, making it one of those unexpected challenges that’s a relief to find an ideal solution to.
The borrowed monitor strapped into place.
Another challenge was adding a feature where winning players would receive tickets for the NBA Playoffs, dispensed through the cash dispenser. This required reverse engineering how the dispenser worked, as, for security reasons, most of the guts of the ABM had been removed or disabled.
The inner workings of an ABM.
The technology involved is my tried and tested pattern of an Electron app deployed using balena to a Raspberry Pi 3 B+, with video output to the screen over HDMI. Arduinos handle interaction with the motor drivers that control each of the linear actuators, and the various motors involved in the convoluted process of dispensing tickets.
The finished ABM in the workshop.
The proximity of the Raspberry Pi and the Arduinos allowed the communication between each to be simplified to hard wiring to the GPIO pins on the Pi, instead of my usual approach of using the Pi as a WiFi access point running a server that allows Arduinos to send events wirelessly. Simple is good.