Code Update 2
Tags: journal and thinkPersonhours: 9
Our first iteration of the shooting system was designed around driver-controlled, single-ball operation. Each time the driver wanted to fire a ball, they had to press the shooting button to initiate the sequence. This approach gave us precise control over when balls were fired, but it placed significant demands on the driver during matches.
When the button was pressed, the flywheel motor would spin up to launch speed. Once ready, the intake system fed a single ball from the magazine into the shooting mechanism. A servo then lifted the ball into the launch position, and the flywheel fired it toward the goal. After each shot, the system reset and waited for the next button press.
The original code implemented both minimum and maximum velocity limiters on the flywheel. The minimum limiter ensured the flywheel reached sufficient speed before firing, preventing weak shots. However, the maximum limiter created an unexpected bottleneck.
The flywheel had to accelerate to full speed, then actively decelerate back down to the maximum threshold before the ball could be released. This acceleration-deceleration cycle added considerable time to each shot.
While this system worked reliably for single shots, the repetitive button pressing and built-in delays made rapid scoring difficult. We knew we needed a faster, more automated solution for competitive play.
