Ball on Big Plate
This project is a work of team of 3, which includes shicaiwei123 and zianglei. The preparations of the contest are done with the help of yoyolalala. I was responsible for building mechanical structures and embedded programming (i.e. STM32, Raspberry Pi). We are lucky to have received the first prize in 2017NUEDC. The final work has been handed in to our school thus details will not be provided. However, code and document can be found here.
The ball-on-plate system is a promoted version of the traditional ball-on-beam control problem. The problem consists of a plate which its deviation can be manipulated in two perpendicular directions. The goal is to carry the ball moving on the plate to a desired position, that is to control a freely rolling ball on a specific position or moving on a trajectory on the plate. - Modelling and Control of Ball-Plate System
Specifically in this project, according to the contest requirements, the system is supposed to move a ball between any two of nine evenly distributed circles and avoids the others. The plate must have a size around 65cm*65cm. The document shows the distribution of the circles.
NUEDC is one of the largest electronic design contest for undergraduate students in China. The contest lasts three and a half days. More than ten topics of four types including control, measurement, communication and power are published in the first day morning, indicating the start of the contest. Participants usually prepare for a long time before the contest. We attended the contest in 2017 starting from August 9th to 12th. Our team started the preparation four months in advance.
Although I had got some experience with programming, I barely knew the basics of control system. However, I chose this type of topic just in the interest of it.
In the preparation process, we learned from five projects, three of which are listed below.
Sadly, no video demo was taken for the limit of time.
- Raspberry Pi Zero and Raspberry Pi 3b with OpenCV installed
- STM32F103 minimum system board
- PC with Visual Studio and VisualGDB installed
The STM32 is developed with C++ language using Arm toolchain provided by VisualGDB (tutorial here). A C++ API for STM32 (Ebox) was used as a replacement of ardunio, which is not allowed in the contest.
The 65cm*65cm plate is made of laminated balsa wood board.
We design metre-shaped ribs to further reinforce the plate. We follow Ball on small plate to support the plate with a universal joint in the center and drive the board with two servos using ball joint rods as connection.
Design documents of the reinforcing ribs are also available here.
The camera is supported by carbon fiber tubes like in Ball on small plate. And the same ring light is installed around the camera to provide better illumination.
The Raspberry Pi 3b is hanged beyond the camera to reduce the load on the servos.
The final work is packed with cardboard then submitted to the competition organizer.
After a successful test in front of the judges of Sichuan division, follwed by a basic on-site electronic design test, we went to Xi’an for the final test. Below shows some photos taken along the trip.