Team 12 - Appendix

Bill of Materials

Part Name

Price/Unit

Quantity

Price

Toggle Switch

$7.99

1

$7.99

688-2RS 8x16x5mm Ball Bearings 10-Pack

$9.99

3

$29.97

Linear Sleeve Bearing 8mm Inner Diameter

$1.28

2

$2.56

8mm Shaft Lock Collar - 10pcs

$8.89

1

$8.89

8mm x 220mm Round Rod - 2pcs

$7.49

2

$14.98

8mm x 350mm Round Rod - 2pcs

$11.99

2

$23.98

6mm to 8mm Shaft Coupling

$8.39

1

$8.39

20 Teeth 8mm Bore 1:1 90 Degree Steering Bevel Gears

$13.99

1

$13.99

GT2 20&60 Teeth 8mm Bore Timing Pulley with 200mm Length 6mm Width Belt

$12.89

1

$12.89

GT2 20 Teeth 8mm Bore 6mm Width Pulley Wheel

$6.99

1

$6.99

GT2 Timing Belt 5m Length 6mm Width

$9.99

1

$9.99

Elegoo Uno R3 Board

$16.99

1

$16.99

DC 12V 10RPM Gear Motor

$14.99

1

$14.99

12V 8.5A Switching Power Supply

$17.99

1

$17.99

24x30x1/4" Wood

$17.31

2

$34.62

12x10x1/8” Wood

$2.47

1

$2.47



Total Price:

$227.68

Matlab Code


Finger Wagging Analysis
% fourbarpos evalutaion script
% evaluates fourbarpos.m
% copied from HW2_P3_fourbarpos_eval
% modified for Final Project Finger Wagging Mechanism
% 
% 
% last modified 28 Apr 2023
% 28 Apr: created

close all;

% link lengths
l = [32, 224, 160, 160];
%   [ a ,   b ,   c ,   d ]
%   [L_2,  L_3,  L_4,  L_1]
%   [O2-A, A-B, B-O4, O2-O4]

% angles
theta1 = 0;  % typically zero
% theta2 = 40;  % not used; sweeping thru theta2

% open or closed chain circuit
delt = -1;

% toggle angle
toggle_angle = 116.0371;

% calculate values
Theta2 = -toggle_angle:1:toggle_angle;
inc = length(Theta2);
Theta31 = zeros(1,inc);
Theta41 = zeros(1,inc);
Theta32 = zeros(1,inc);
Theta42 = zeros(1,inc);
P_x1 = zeros(1,inc);  % x-component of point P WRT grounded link
P_y1 = zeros(1,inc);  % y-component of point P WRT grounded link
P_x2 = zeros(1,inc);  % Toggle 2
P_y2 = zeros(1,inc);  % Toggle 2
P_l = 1.33;          % distance of P from point A
P_angle = 0;         % [deg], angle of point P from theta3
a = l(1);            % unpack link "a" (L_2)
d = l(4);            % unpack link "d" (L_1)

% first toggle position
for angle = 1:inc
    theta2 = Theta2(angle);
    angles = fourbarpos(l, theta1, theta2, delt);

    Theta31(angle) = angles(3);
    Theta41(angle) = angles(4);

    P_x1(angle) = a*cosd(theta2) + P_l*cosd(angles(3) + P_angle);
    P_y1(angle) = a*sind(theta2) + P_l*sind(angles(3) + P_angle);

% calculate the other toggle position
    angles = fourbarpos(l, theta1, theta2, -delt);

    Theta32(angle) = angles(3);
    Theta42(angle) = angles(4);

    P_x2(angle) = a*cosd(theta2) + P_l*cosd(angles(3) + P_angle);
    P_y2(angle) = a*sind(theta2) + P_l*sind(angles(3) + P_angle);
end

% plot values
[Theta31_max, index] = max(Theta31)  % callout max value
Theta2_max = Theta2(index);
[Theta31_min, index] = min(Theta31)  % callout min value
Theta2_min = Theta2(index);
plot(Theta2, Theta31, Theta2_max, Theta31_max, 'ro', Theta2_min, Theta31_min, 'ro')
% plot(Theta2, Theta31),
legend('Theta 3')
xlabel('Theta 2'), ylabel('Angular Displacement')
title('Output Angle vs. Input Angle')