Electronics and Software - Catapult

An arduino uno was used to  drive the motor and provide control for the mechanism. The motor was a 12V Pololu 400 RPM 9.4W motor. It was controlled by a L298N Motor driver board to allow for variable PWM. Power was supplied via a racing drone Li-Po which is rated at 15.6 Volts. Since the motor is rated for a max of 12V and the L298N has a drop down voltage of 2V 14V was required to be supplied to the L298N. This was achieved via a passive voltage regulator which was tuned using the onboard potentiometer. This motor also had an encoder which was used to read the motor speed and feed into a PID controller for constant speed.

At the basket of the catapult, there is placed an MPU6050 which supplied Acceleration data shown below. 

The arduino had a max of 2048 Bytes available for variable memory which only allowed for double arrays of 50 to be recorded resulting in a very low sampling frequency of around 9 Hz. This was not high enough to characterize the arm’s acceleration at its max value consistently. We were however able to observe the natural frequency of the throwing arm oscillating side to side out of the plane of throwing shown in the figure below. It shows a natural frequency of around 1.5 Hz.

Due to the low fidelity of acceleration data we were unable to use it to adjust the setpoint of motor rpm. This was also limited by the fact that our motor was unable to turn the mechanism at a constant speed with PID control or with max voltage applied or even with over volting it.