Ball Bouncing Platform using Computer Vision
Inspired by the Octo-Bouncer, the aim of this project is to create a simplified, accurate ball-bouncing platform using a 3DoF Stewart Platform and RK3399 with OpenCV.
Area of Interest
Computer Science / Computer Engineering
Singapore American School
Earlier this year, when I came across this video, I was truly astonished by its perceived simplicity while being able to comprehend the deep complexity of its algorithms and systems. When I was making a project selection as part of BlueStamp Engineering, I asked if I could deviate off of one of the “default projects”: I wanted to use the idea behind the ball-following robot and build a ball-bouncing platform, also using Hough Circle Detection of some kind. After evaluating its difficulties, as well as the design of others’ ball-bouncing platforms, I decided upon a seemingly more challenging design: a 3DoF Stewart Platform, with hydraulics/linear actuators replaced by arms, a simple reduction of Electron Dust’s Design. I knew this would be harder to code for, but with this design, there is one less stepper needed, and the geometry is simpler. Off to work I go!
I used Fusion 360 to design this platform, and I was able to emulate its movements using Fusion 360’s joints system. I exported all these sketches to .DXF and the 3D-Printed Part to .STL, and combined them in AutoCAD with kerf adjustments to accomodate laser-cutting. Using a local laser-cutting service in Singapore as well as a friend’s 3D Printer, I was able to fabricate this prototype to ~40micron precision.
Stepper Control is accomplished with three DM320T stepper controllers, and an Adafruit Metro M4. For whatever reason, these DM320Ts require a voltage >0.05V (max not clear) to pull PUL and DIR to HIGH. (Integrated pull-up resistor on controller). To resolve the issue, I had to use a 3.3V-logic level microcontroller, which results in 1.7V when HIGH and 3.3V when LOW. (3.3V LOW is technically out of specification, but it works!) The Metro M4 is programmed to control the stepper controllers and uses hardware 125kHz pulses to send signals to PUL and DIR. They communicate with the OpenCV-capable single board computer via high speed USB Serial in compact 6-byte instructions.