8.4 - Implementation
Contents:
- Bill of Materials
- Fabrication and Assembly
- Electronics and Circuitry
- Software Development
Bill of Materials
All components used may be obtained via the TIW, excluding the buttons which can be replaced with available joystick components and the cup. The quantity of rubber bands will depend on elastic strength.
Component | Quantity |
---|---|
12x24 .25in acrylic | 1 |
M3 25mm Screws | 2 |
M3 20mm Screws | 10 |
M3 16mm Screws | 8 |
M3 Lock Nuts | 14 |
M3 Nuts | 14 |
M3 Washers | 10 |
6mm Axles 3in | 4 |
6mm Ball Bearings | 8 |
Small Cup | 1 |
Rubber Bands | 2 |
ELEGOO UNO R3 | 1 |
9V DC Batteries | 2 |
9V Battery Connectors | 2 |
Buttons | 2 |
L 298N Motor Controller | 1 |
Assorted Breadboard Wires | ~25 |
1kOhm Resistor | 1 |
2kOhm Resistor | 1 |
12V Geared DC Motor - 100 RPM | 1 |
PLA Filament |
Table 1: Materials list for full mechanism
Note that the 12V Geared DC Motor can be replaced with 10 RPM rather than 100 RPM. Doing so removes the necessity of the rubber bands.
Fabrication and Assembly
Linkage Mechanism Assembly
We laser cut the majority of the mechanism out of 0.25" acrylic. Note that the DXFs are not to scale. We also 3D printed one part to assist the laser cut parts in securing the motor.
Provided below are the DXFs of our linkages:
Figure 22: Linkage DXF's. Note: not all linkages are to scale. Each linkage is 0.5" wide and have been scaled down for ease of visibility.
These are the DXFs for our base:
Figure 23: Base DXF's. Note: not all figures to scale.
For the motor mount, we laser cut a vertical holder and 3D printed a base to rest the motor on.
Figure 24: Motor mount DXF and 3D printed support.
Figure 25: Linkage DXF that connects the motor to the full mechanism.
Figure 26: Cup holder DXFs.
We used 6 mm rods to connect our cup holder to the joints of the links of the 4 bar to allow it to rotate with the mechanism. We used M3 screws and lock nuts to assemble the holder. We used 6mm ID bearings to allow for rotation and reduce friction.
Figure 27: Close shot of the final assembly of the cup holder mechanism.
We assembled the four-bar by connecting the joints using 3M screws and lock nuts. We also had two rubber bands to help the lifting mechanism operate with limited torque. We press fit bearings into the rotating arm. We cut a special slot into the input link so that our motor shaft can rotate the link. We attempted to use a higher torque motor, but the resulting electrical issues caused us to return to the lower torque, 100 RPM motor, and usage of rubber bands to supplement the decreased torque.
Figure 28: Image of the full final assembly.
Electronics and Circuitry
Below is an image of the finalized electronics elements of the design.
Figure 29: Close up image of the electronics configuration.
We utilized the provided motor drivers to control our 12V DC motor. Rather than using a bulky 12V power source, we fed two rechargeable 9V batteries in series through a voltage divider to output 12V to the motor controller. To enable better control of the system, two buttons were used. The red button reversed the polarity outputted by the motor driver, changing the direction of the motor, while the blue button activated the motor to move the mechanism up/down. An ELEGOO UNO R3 was used to control the system.
Software Development
Below is the C++ code uploaded to the Uno.
Figure 30: Code running to control the mechanism.
The code itself is quite simple. Initially, we had basic controls implemented to test each component. When we were certain of the functionality of each component, we created this simple code to convert user interaction into mechanism motion. We define first the pins necessary for use. Three are pins which output to the motor controller while two correspond to the button inputs. These buttons are input pullups, as is standard for button integration. An interrupt is used for the motor direction button. This ensures that the direction is changed only when the button is initially pressed, no matter how long it is held. In contrast, the state of the activation button is read every loop such that the mechanism is in motion only when the user desires. Overall, the code is rudimentary and its development simple.
Welcome to the University Wiki Service! Please use your IID (yourEID@eid.utexas.edu) when prompted for your email address during login or click here to enter your EID. If you are experiencing any issues loading content on pages, please try these steps to clear your browser cache.