Experimental Setup

The experimental setup for this project consisted of a pendulum attached to the end of a robotic arm that could turn continuously in a

circu

lar path. The pendulum was constrained to move perpendicular to the control arm. A Bourns 6537 potentiometer was positioned at the pivot of the pendulum, where it connected to the control arm. When the pendulum rotated, so too did the turn pot. The Arduino Uno has a 5 V output pin that was used to supply a continuous voltage across the potentiometer. Thus, when the pendulum turned an angle, the voltage drop associated with its position was recorded. A linear relationship between the voltage and angle is justified by the manufacturers specifications. A 9 V battery was used to power the Arduino microcontroller. In the initial setup, the Arduino was interfaced with a computer monitor so the PID algorithm could be uploaded, and the input from potentiometer readings and corrective output could be analyzed. The Arduino was connected to a Vexta 2-Phase stepping motor through its driver. The Vexta PK296-03AA stepping motor ran from a connected 24 VDC at 4.5 Amps. The rotation of the stepper motor controled the rotation of the control arm. The motor moved in discrete steps and had a resolution of 0.9° for a half step. A clockwise or counterclockwise motion of the stepper motor was activated by its driver. The drivers output was determined by the incoming TTL signal (transistor-transistor logic) from the Arduino.

From the Arduino, pulses at varying frequencies where sent to the driver. For each pulse, the driver momentarily opened the gate from the 24V, 4.5 power supply to the Vexta stepper motor so the motor could turn one step. Initially, an individual held the pendulum in the upright position. The Arduino was turned on and the pendulum let go. The data was sampled at a rate of 100 Hz. The sampling frequency was adjusted for our experimental demands. To prevent over-correction by the PID algorithm, a preset, it was decided that a minimum threshold of error must be exceeded before the PID could deliver a corrective output. This lag in corrective action was optimal in previous experiments. [4] After each trial, the correction factor constants from the PID algorithm were adjusted until control of the unstable pendulum is executed.

Once the above setup had been completed, the next step was to improve on this project from earlier years. In previous years, students programmed the robotic arm to do tricks with the pendulum. For our project, our goal was to make this control arm one step closer to commercial application by tilting the entire system. If this balancing robot was to be used in a real world application, one would likely want it to be mobile. If the mechanism were mobile, it would likely come across obstacles in its path, such as a bump or hill. These obstacles would alter the mechanics of the system. Considering the circular path of the control arm, the maximum change in the Newtonian forces acting on the pendulum would occur when the slope of the ground is in line with the trajectory of the pendulum caused by gravity. By testing the performance on an uneven ground, we ensured the performance of the robot for real world applications.