Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
The Seg-bot has several user inputs that enable it to manipulate the data received from the IMU before it is sent to the motors. Currently the Arduino reads three inputs: a steering potentiometer, a gain potentiometer, and an engage switch. The steering potentiometer enables the operator to precisely control the direction of the Seg-bot, while leaning to control the speed. To accommodate for different riding preference and styles, a gain potentiometer adjusts the sensitivity of the motor response to angle changes. Lastly, to ensure that there is an operator on the Seg-bot before activating the motors, I placed a simple (large) button switch on the handlebar of the Seg-bot that must be pressed by the operator at all times. This button is backed with a function in the code that when pressed waits until the Seg-bot is completely level before engaging the motors; this keeps the bot from lunging back to the level position if the Engage button is pressed while the Seg-bot is tilted.
The Arduino code reads the input from the X-axis on the IMU to determine the forward/reverse speed of both motors. Without any further additions, the hardware enables only the Seg-bot to travel either forward or reverse because the two motors are driven at the same speed.