07.4 - Implementation
1. System Overview
We integrated several subsystems to get the desired walking motion of the Jansen leg:
Mechanical Linkage: The Jansen legs are connected to the transmission system using an axle and gears. This transforms the input rotation into the walking motion of the legs.
Transmission System: The rotational input is then transformed using a manual transmission featuring two gears trains and a dog clutch. The speed changes based on the position of the dog clutch. The dog clutch can be set to 3 positions. (1) fully disengaged (dog clutch is not attached to either gear), (2) engaged with smaller gear (high speed), or (3) engaged with larger gear (low speed). Alternating the positions of the transmission system allows the user to change the speed of the axle which in turn controls the speed of the Jansen legs.
For Future Prototyping - Power and Actuation: In place of manual rotation, we could use a stepper motor to rotate the input shaft of the manual transmission. The stepper motor would spin and provide a continuous input to the transmission gear system. This continuous rotational input makes sure the legs have smooth movement and they are coordinated with each other.
2. Fabrication and Assembly
The prototype was primarily fabricated using 3D printing for different components such as the Jansen leg joints, axles and other supporting structures. Since we used 3D printing as our primary manufacturing method, we had to keep in mind of surface roughness when press-fitting or rotating parts around one and another. For example, in order to make the motion of the Jansen legs more smooth, before connecting links, lubrication oil was added to each of the joints. Also, a lot of sanding was done to create smooth fits between parts on the Jansen Legs.
The manual transmission gear system was also fabricated using 3D-printed gears and a dog clutch to engage different stages. The gears were mounted on bearings to allow for smooth rotation about a common axis. The axle connecting the transmission to the Jansen legs was press-fitted to ensure rigid torque transfer with minimal shearing and backlash. Keys were also added to the design to prevent slippage of the gear. The assembly process for the manual transmission involved aligning the gears, installing the clutch mechanism and connecting the transmission output to the Jansen leg.
Further Design decisions for the Jansen Leg and Manual Transmission are documented in 07.2- Design Process.
3. Electronics and Circuitry
The Arduino microcontroller processes the input the user gives and sends respective commands to the system. By using the push button, the user can toggle the system ON or OFF when the motor is in operation. When the user pushes the button, the Arduino is able to respond immediately because of the interrupt logic in the software. The stepper motor and the stepper motor driver then go through with these commands and rotate the motor to then drive the Jansen legs. In future work, we will probably use a motor with higher torque at lower speeds. This is a proof-of-concept design, but by switching out the motor for a more powerful one, we can control the transmission with a more automized approach.
4. Software
The Arduino features 3 key features of the code:
Interrupt: This feature tells the Arduino to stop what it’s doing to prioritize something more important and then go back to what it was doing previously. Using this feature, the Arduino can detect when the user presses the button immediately, even if the Arduino was focused on stepping the motor.
Motor State: This is the variable that keeps track of whether the motor should be running or should be stopped. This feature is responsible for keeping track of if the motor should be running (ON) or stopped (OFF). Each time the user presses the button, it toggles between the two states (ON and OFF).
Debounce protection: Mechanical Buttons tend to not switch on or off immediately when someone presses them. The electrical signal can bounce back and forth! So even if you pressed the button first, the Arduino assumes that you pressed the button more than once. Using the Debounce Protection feature, the code is analyzing how much time has passed since the user last pressed it. If 200 milliseconds have passed, then the motor can toggle ON or OFF. If it has been less than 200 milliseconds, the Arduino ignores the press, and assumes that it was probably due to the electrical signal bouncing back and forth.
Once we change the type of motor that has high torque, we will be able to test this code on our mechanism.