├── .gitignore ├── ProjectFiles ├── 15 to 1 NEMA-17 Actuator │ ├── CompoundPulley.STL │ ├── ExtendedGT2_80t_TimingBeltPulley.STL │ ├── GT2_16t_TimingBeltPulley.STL │ ├── HousingBottom.STL │ ├── HousingTop.STL │ ├── Idler Mount.STL │ ├── Short-Flat_16t_TimingBeltPulley.STL │ └── Skeleton Housing Top.STL ├── 45 to 1 Worm Gear Reduction │ ├── ConstrainedWormGear.STL │ ├── MotorMountWormCarrierUpright.STL │ ├── WormCarrierBase.STL │ ├── WormCarrierUpright.STL │ └── WormWheel2.STL ├── 5 to 1 NEMA-17 Actuator │ ├── GT2_80t_TimingBeltPulley.STL │ ├── Gearbox Pulley Spacer.STL │ ├── NEMA17 HousingBottom.STL │ ├── NEMA17 HousingTop.STL │ └── Output Plate.STL ├── 5-Axis NEMA-17 Robot Arm │ ├── 25t GT2 Pulley.STL │ ├── 2nd Joint Actuator Pulley.STL │ ├── 30t GT2 Pulley.STL │ ├── 608 Sized Bushing.STL │ ├── Base.STL │ ├── ButtomHousing.STL │ ├── Code │ │ └── NEMA-17 5 Axis Robot Arm │ │ │ ├── Gripper Code │ │ │ └── ArmV3_Gripper.ino │ │ │ ├── Linear Track Code │ │ │ └── LinearTrack.ino │ │ │ └── Main Arm Code │ │ │ └── Arm_V3.ino │ ├── Contoller Arm │ │ ├── ControllerArmArm1.STL │ │ ├── ControllerArmBase.STL │ │ ├── ControllerArmLastSegment.STL │ │ ├── ControllerArmSECOND_TOLastSegment.STL │ │ ├── ControllerArmSegment1.STL │ │ └── ControllerArmSegment1Part2.STL │ ├── End Pivot Cap.STL │ ├── Forearm Joint Cap.STL │ ├── GriperClaw.STL │ ├── GriperSENSORClaw.STL │ ├── GripperBody.STL │ ├── GripperGear Linkage.STL │ ├── GripperLinkage.STL │ ├── GripperServoGear.STL │ ├── Last Motor Pulley.STL │ ├── LinearBearing.STL │ ├── Preload Spacer 5mm.STL │ ├── SeeSaw Joint Pulley.STL │ ├── SeeSaw Limit Switch Mount.STL │ ├── Shoulder Limit Switch Mount.STL │ ├── Spring Inside Part.STL │ ├── Spring Plunger.STL │ ├── Turntable Actuator Pulley.STL │ ├── Turntable Limit Switch Mount.STL │ ├── V3 End Joint.STL │ ├── V3 Forarm.STL │ ├── V3 Main Arm.STL │ ├── V3Turntable.STL │ └── WormWheel2.STL ├── Ball and Beam Control System │ ├── BALL AND BEAM ASSEMBLY.zip │ ├── Beam End.STL │ ├── Beam Hinge.STL │ ├── Cart Chassis.STL │ ├── Cart Shield.STL │ ├── Cart Tire.STL │ ├── Code │ │ └── Ball_and_Beam_Open_Loop │ │ │ └── Ball_and_Beam_Open_Loop.ino │ ├── Coupler.STL │ ├── Crank.STL │ ├── Encoder Cover.STL │ ├── Hinge Tower.STL │ ├── Motor Tower.STL │ ├── Potentiometer Holder.STL │ └── Potentiometer Knob.STL ├── CameraDolly │ ├── 10.5mmUpperPhoneMount.STL │ ├── 7.5mmUpperPhoneMount.STL │ ├── 8.5mmUpperPhoneMount.STL │ ├── 9.5mmUpperPhoneMount.STL │ ├── BasePhoneMount.STL │ ├── Chassis.STL │ ├── ExampleCode │ │ └── CameraDolly.ino │ ├── IdlerAxle.STL │ ├── IdlerWheel.STL │ ├── MotorAxle.STL │ └── MotorWheel.STL ├── High-Speed Pen Plotter │ ├── .STEP Assem │ │ └── STEP_PLOTTER_2_ASSEM.STEP │ ├── 5mmShaftConnector.STL │ ├── BOM.txt │ ├── ElectonicsBox.STL │ ├── ElectronicsBoxTop.STL │ ├── FeedTableSupport.STL │ ├── GritWheelAdapter.STL │ ├── IdlerLever.STL │ ├── IdlerShaftCap.STL │ ├── IdlerTire.STL │ ├── Left Side Frame.STL │ ├── Mirrored IdlerLever.STL │ ├── Pen Lifter Bar.STL │ ├── PrintHead.STL │ ├── SlopedSupportTable.STL │ ├── SolidWorks Assem │ │ └── PLOTTER_2_ASSEM.zip │ ├── Tru-Red Pen Adapter.STL │ ├── Writing Surface.STL │ └── lRight Side Frame.STL ├── Parallel MG996 Gripper │ ├── 10mmGripperJawSpacerSolenoid.STL │ ├── 15mmGripperJawSpacerSolenoid.STL │ ├── 5mmGripperJawSpacerSolenoid.STL │ ├── 5x11x4GT2Pulley.STL │ ├── 5x11x4Pulley.STL │ ├── ParallelGripDynamicJaw.STL │ ├── ParallelServoGripBody.STL │ └── ServoGT2Pulley.STL ├── Pen PlotterV2 │ ├── 28tPlotterTimingBeltPulley.STL │ ├── 7mm To 5mm Shaft Coupler.STL │ ├── 8mm Shaft Coupler Horn.STL │ ├── 8mm To 5mm Shaft Coupler.STL │ ├── Bic Pen Adapter.STL │ ├── Head Pen Holder.STL │ ├── Head Pen HolderBottom.STL │ ├── Head Pen Top Holder.STL │ ├── Idler Lifter Horn.STL │ ├── Idler Paper Right Roller Mount.STL │ ├── Idler Paper Roller Mount.STL │ ├── Paper Guide.STL │ ├── Paper GuideMirror.STL │ ├── PaperRoller.STL │ ├── Pen Lifter Servo Horn.STL │ ├── PenHolder.STL │ ├── PlotterTimingBeltPulley.STL │ ├── V2IdlerMount.STL │ └── X-axisMount.STL ├── SCARA Robot │ ├── 10mmGripperJawSpacerSolenoid.STL │ ├── 15mmGripperJawSpacerSolenoid.STL │ ├── 20x40 Extru. Cap.STL │ ├── 5to1LastSegment.STL │ ├── 5x11x4GT2Pulley.STL │ ├── 5x11x4Pulley.STL │ ├── 605zz idler.STL │ ├── 608Idler.STL │ ├── Bill of Materials │ │ └── Bill of Materials.txt │ ├── BoltHeadRamp.STL │ ├── Code │ │ ├── SCARA Controller │ │ │ ├── SCARA Controller.py │ │ │ ├── __pycache__ │ │ │ │ └── waypoints.cpython-39.pyc │ │ │ ├── test.py │ │ │ └── waypoints.py │ │ ├── SCARA_Macro1 │ │ │ └── SCARA_Macro1.ino │ │ └── SCARA_Sketch │ │ │ └── SCARA_Sketch.ino │ ├── CompoundPulley.STL │ ├── ElectronicsBox.STL │ ├── ElectronicsBoxTop.STL │ ├── ExtendedGT2_80t_TimingBeltPulley.STL │ ├── FirstSegmentBottom.STL │ ├── FirstSegmentTop.STL │ ├── GT2 Clip.STL │ ├── GT2_16t_TimingBeltPulley.STL │ ├── GearboxSpacer.STL │ ├── Gripper │ │ ├── 10mmGripperJawSpacerSolenoid.STL │ │ ├── 15mmGripperJawSpacerSolenoid.STL │ │ ├── 5mmGripperJawSpacerSolenoid.STL │ │ ├── 5x11x4GT2Pulley.STL │ │ ├── ParallelGripDynamicJaw.STL │ │ ├── ParallelServoGripBody.STL │ │ └── ServoGT2Pulley.STL │ ├── LastJointShaftCollar.STL │ ├── RaisedBearingTop5to1LastSegment.STL │ ├── SOLIDWORKS Files │ │ └── SCARA_V2-Assem.zip │ ├── SecondBottomSegmentV3.STL │ ├── ServoGT2Pulley.STL │ ├── Short-Flat_16t_TimingBeltPulley.STL │ ├── ShortD-ShaftCollar.STL │ ├── V-WheelRollerPlate.STL │ ├── VwheelSpacer.STL │ ├── WireShroud.STL │ ├── Z-AxisPulley.STL │ ├── Z-axisGearbox.STL │ └── z-IdlerMount.STL └── ServoArmV2 │ ├── Base.STL │ ├── CableManagmentClip.STL │ ├── Compliant Gripper │ ├── CompliantFinger.STL │ ├── CompliantGripperBody.STL │ ├── CompliantGripperBodyBoss.STL │ ├── CompliantGripperSW │ │ ├── CompliantFinger.SLDPRT │ │ ├── CompliantGripperAssem.SLDASM │ │ ├── CompliantGripperBody.SLDPRT │ │ ├── CompliantGripperBodyBoss.SLDPRT │ │ ├── CompliantTensionSensor.SLDPRT │ │ └── console.log │ ├── CompliantTensionSensor.STL │ └── FingerGripperTest.STL │ ├── CompliantRobotGripperBody.STL │ ├── ConnectorGripArm.STL │ ├── GT2CorrectTimingBeltPulley.STL │ ├── GT2TimingBeltPulley.STL │ ├── GT2_16t_TimingBeltPulley.STL │ ├── GT2_80t_TimingBeltPulley.STL │ ├── GantryBearingCarrier.STL │ ├── Idler Pulley Mount.STL │ ├── MainArmV3.STL │ ├── NEMA-17 Mount.STL │ ├── PivotArmGear.STL │ ├── PivotServoGear.STL │ ├── ShaftSupport.STL │ ├── SpurGear.STL │ └── Turntable.STL └── README.MD /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/.gitignore -------------------------------------------------------------------------------- /ProjectFiles/15 to 1 NEMA-17 Actuator/CompoundPulley.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/15 to 1 NEMA-17 Actuator/CompoundPulley.STL -------------------------------------------------------------------------------- /ProjectFiles/15 to 1 NEMA-17 Actuator/ExtendedGT2_80t_TimingBeltPulley.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/15 to 1 NEMA-17 Actuator/ExtendedGT2_80t_TimingBeltPulley.STL -------------------------------------------------------------------------------- /ProjectFiles/15 to 1 NEMA-17 Actuator/GT2_16t_TimingBeltPulley.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/15 to 1 NEMA-17 Actuator/GT2_16t_TimingBeltPulley.STL -------------------------------------------------------------------------------- /ProjectFiles/15 to 1 NEMA-17 Actuator/HousingBottom.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/15 to 1 NEMA-17 Actuator/HousingBottom.STL -------------------------------------------------------------------------------- /ProjectFiles/15 to 1 NEMA-17 Actuator/HousingTop.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/15 to 1 NEMA-17 Actuator/HousingTop.STL -------------------------------------------------------------------------------- /ProjectFiles/15 to 1 NEMA-17 Actuator/Idler Mount.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/15 to 1 NEMA-17 Actuator/Idler Mount.STL -------------------------------------------------------------------------------- /ProjectFiles/15 to 1 NEMA-17 Actuator/Short-Flat_16t_TimingBeltPulley.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/15 to 1 NEMA-17 Actuator/Short-Flat_16t_TimingBeltPulley.STL -------------------------------------------------------------------------------- /ProjectFiles/15 to 1 NEMA-17 Actuator/Skeleton Housing Top.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/15 to 1 NEMA-17 Actuator/Skeleton Housing Top.STL -------------------------------------------------------------------------------- /ProjectFiles/45 to 1 Worm Gear Reduction/ConstrainedWormGear.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/45 to 1 Worm Gear Reduction/ConstrainedWormGear.STL -------------------------------------------------------------------------------- /ProjectFiles/45 to 1 Worm Gear Reduction/MotorMountWormCarrierUpright.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/45 to 1 Worm Gear Reduction/MotorMountWormCarrierUpright.STL -------------------------------------------------------------------------------- /ProjectFiles/45 to 1 Worm Gear Reduction/WormCarrierBase.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/45 to 1 Worm Gear Reduction/WormCarrierBase.STL -------------------------------------------------------------------------------- /ProjectFiles/45 to 1 Worm Gear Reduction/WormCarrierUpright.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/45 to 1 Worm Gear Reduction/WormCarrierUpright.STL -------------------------------------------------------------------------------- /ProjectFiles/45 to 1 Worm Gear Reduction/WormWheel2.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/45 to 1 Worm Gear Reduction/WormWheel2.STL -------------------------------------------------------------------------------- /ProjectFiles/5 to 1 NEMA-17 Actuator/GT2_80t_TimingBeltPulley.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/5 to 1 NEMA-17 Actuator/GT2_80t_TimingBeltPulley.STL -------------------------------------------------------------------------------- /ProjectFiles/5 to 1 NEMA-17 Actuator/Gearbox Pulley Spacer.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/5 to 1 NEMA-17 Actuator/Gearbox Pulley Spacer.STL -------------------------------------------------------------------------------- /ProjectFiles/5 to 1 NEMA-17 Actuator/NEMA17 HousingBottom.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/5 to 1 NEMA-17 Actuator/NEMA17 HousingBottom.STL -------------------------------------------------------------------------------- /ProjectFiles/5 to 1 NEMA-17 Actuator/NEMA17 HousingTop.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/5 to 1 NEMA-17 Actuator/NEMA17 HousingTop.STL -------------------------------------------------------------------------------- /ProjectFiles/5 to 1 NEMA-17 Actuator/Output Plate.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/5 to 1 NEMA-17 Actuator/Output Plate.STL -------------------------------------------------------------------------------- /ProjectFiles/5-Axis NEMA-17 Robot Arm/25t GT2 Pulley.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/5-Axis NEMA-17 Robot Arm/25t GT2 Pulley.STL -------------------------------------------------------------------------------- /ProjectFiles/5-Axis NEMA-17 Robot Arm/2nd Joint Actuator Pulley.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/5-Axis NEMA-17 Robot Arm/2nd Joint Actuator Pulley.STL -------------------------------------------------------------------------------- /ProjectFiles/5-Axis NEMA-17 Robot Arm/30t GT2 Pulley.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/5-Axis NEMA-17 Robot Arm/30t GT2 Pulley.STL -------------------------------------------------------------------------------- /ProjectFiles/5-Axis NEMA-17 Robot Arm/608 Sized Bushing.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/5-Axis NEMA-17 Robot Arm/608 Sized Bushing.STL -------------------------------------------------------------------------------- /ProjectFiles/5-Axis NEMA-17 Robot Arm/Base.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/5-Axis NEMA-17 Robot Arm/Base.STL -------------------------------------------------------------------------------- /ProjectFiles/5-Axis NEMA-17 Robot Arm/ButtomHousing.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/5-Axis NEMA-17 Robot Arm/ButtomHousing.STL -------------------------------------------------------------------------------- /ProjectFiles/5-Axis NEMA-17 Robot Arm/Code/NEMA-17 5 Axis Robot Arm/Gripper Code/ArmV3_Gripper.ino: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int bPin = 3; 4 | int bState; 5 | 6 | int tPin = 10; 7 | int tState; 8 | 9 | int servoPos; 10 | int restPos = 170; 11 | int gripPos = 20; 12 | 13 | Servo servo1; 14 | 15 | void setup() { 16 | 17 | Serial.begin(9600); 18 | pinMode(bPin,INPUT); // User Gripper Pushbutton 19 | digitalWrite(bPin,HIGH); 20 | 21 | pinMode(tPin,INPUT); // Tension Sensor 22 | digitalWrite(tPin,HIGH); 23 | 24 | servo1.attach (7); // Declare Servo Object 25 | servoPos = 160; 26 | } 27 | 28 | void loop() { 29 | // put your main code here, to run repeatedly: 30 | 31 | tState = digitalRead(tPin); // Read Tension Sensor 32 | bState = digitalRead(bPin); 33 | 34 | //////////DEBUG: 35 | /* Serial.print ("tState "); 36 | Serial.println(tState); 37 | Serial.print ("bState "); 38 | Serial.print(bState); 39 | */ 40 | 41 | 42 | if (bState == LOW && tState == HIGH) // Gripper conditions 43 | { 44 | if(servoPos > 35){ 45 | servoPos--; 46 | } 47 | 48 | servo1.write(servoPos); 49 | delay(2); 50 | } 51 | 52 | else if (bState == LOW && tState == LOW) 53 | { 54 | servo1.write(servoPos); 55 | delay(10); 56 | } 57 | 58 | else if (bState == HIGH) 59 | { 60 | servo1.write(restPos); 61 | servoPos = 160; 62 | delay(10); 63 | } 64 | 65 | } 66 | -------------------------------------------------------------------------------- /ProjectFiles/5-Axis NEMA-17 Robot Arm/Code/NEMA-17 5 Axis Robot Arm/Linear Track Code/LinearTrack.ino: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | int xPin = A2; // "Resume" pin on CNC shield 5 | int xVal; 6 | 7 | 8 | const int dirPin = 5; 9 | const int stepPin = 2; 10 | const int enablePin = 8; 11 | 12 | unsigned long currentMillis; 13 | long previousMillis = 0; // Set up timer 14 | long smoothInterval = 5; // Time constant for timer 15 | 16 | // Define motor interface type (type 1 means an external stepper driver with Step and Direction pins) 17 | #define motorInterfaceType 1 18 | 19 | // Creates an instance 20 | AccelStepper myStepper(motorInterfaceType, stepPin, dirPin); 21 | 22 | 23 | void setup() { 24 | 25 | Serial.begin(9600); 26 | pinMode(xPin, INPUT); 27 | 28 | pinMode(enablePin, OUTPUT); 29 | digitalWrite(enablePin, LOW); 30 | 31 | // set the maximum speed, acceleration factor, 32 | // initial speed and the target position 33 | myStepper.setMaxSpeed(1000); 34 | // myStepper.setAcceleration(100); 35 | 36 | } 37 | 38 | void loop() { 39 | 40 | static unsigned long timer = 0; 41 | unsigned long interval = 10; 42 | if (millis() - timer >= interval){ 43 | timer = millis(); 44 | xVal = analogRead(xPin); 45 | //Serial.println(xVal); // DEBUG 46 | 47 | } 48 | 49 | 50 | if (xVal >= 530){ 51 | // myStepper.setSpeed(100); 52 | 53 | myStepper.setSpeed(2*(xVal-530)); 54 | myStepper.run(); 55 | 56 | } 57 | 58 | if (xVal <= 490){ 59 | // myStepper.setSpeed(-100); 60 | 61 | myStepper.setSpeed(2*(-1*(490-xVal))); 62 | myStepper.run(); 63 | 64 | } 65 | 66 | } 67 | -------------------------------------------------------------------------------- /ProjectFiles/5-Axis NEMA-17 Robot Arm/Code/NEMA-17 5 Axis Robot Arm/Main Arm Code/Arm_V3.ino: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | int potPin1 = A2; // Resume A2 4 | int potPin2 = A1; // Hold 5 | int potPin3 = A0; // Abort 6 | int potPin4 = A3; // Coolant Enable 7 | 8 | unsigned long pot1; // Values from potentiometers 9 | unsigned long pot2; 10 | unsigned long pot3; 11 | unsigned long pot4; 12 | 13 | int bPin = 11; // User Pushbutton for gripper 14 | int bState; 15 | 16 | int pot1Scaled; // Potentiometer values mapped to relevant angles for desired range of allowable joint angles 17 | int pot2Scaled; 18 | int pot3Scaled; 19 | int pot4Scaled; 20 | int bStateScaled; 21 | 22 | 23 | 24 | /* 25 | #define WINDOW_SIZE 10 26 | 27 | int INDEX1 = 0; 28 | int VALUE1 = 0; 29 | int SUM1 = 0; 30 | int READINGS1[WINDOW_SIZE]; 31 | int AVERAGED1 = 0; 32 | 33 | int INDEX2 = 0; 34 | int VALUE2 = 0; 35 | int SUM2 = 0; 36 | int READINGS2[WINDOW_SIZE]; 37 | int AVERAGED2 = 0; 38 | 39 | int INDEX3 = 0; 40 | int VALUE3 = 0; 41 | int SUM3 = 0; 42 | int READINGS3[WINDOW_SIZE]; 43 | int AVERAGED3 = 0; 44 | 45 | int INDEX4 = 0; 46 | int VALUE4 = 0; 47 | int SUM4 = 0; 48 | int READINGS4[WINDOW_SIZE]; 49 | int AVERAGED4 = 0; 50 | */ 51 | 52 | 53 | int restPos = 5; // Gripper servo positions 54 | int gripPos = 60; 55 | 56 | 57 | ////// STEPPER DIRECTION AND STEP PINS: 58 | const int dirPin1 = 5; //// X on CNC shield 59 | const int stepPin1 = 2; 60 | 61 | const int dirPin2 = 6; ///// Y on CNC shield 62 | const int stepPin2 = 3; 63 | 64 | const int dirPin3 = 7; ///// Z on CNC sheild 65 | const int stepPin3 = 4; 66 | 67 | const int dirPin4 = 13; ///// A on CNC shield (put jumpers between pins) 68 | const int stepPin4 = 12; 69 | 70 | const int enablePin = 8; 71 | 72 | /////// LIMIT SWITCHES: (1 by default, 0 when pressed. Connect outer pins to input pin and ground on arduino) 73 | int limit1 = 9; // X limit on CNC sheild 74 | int limit2 = 10; // Y 75 | int limit3 = 11; // Z 76 | int limit4 = A4; // SDA (SDA seems connected to both A4 and A5) 77 | 78 | int limState1; 79 | int limState2; 80 | int limState3; 81 | int limState4; 82 | 83 | long homing1 = -1; // Make (-) for CCW homing, and (+) for CW homing (also need to change increment in homing function) 84 | long homing2 = 1; 85 | long homing3 = -1; 86 | long homing4 = 1; 87 | 88 | 89 | // Define motor interface type (type 1 means an external stepper driver with Step and Direction pins) 90 | #define motorInterfaceType 1 91 | 92 | // Define steppers and the pins they use 93 | AccelStepper stepper1(motorInterfaceType, stepPin1, dirPin1); 94 | AccelStepper stepper2(motorInterfaceType, stepPin2, dirPin2); 95 | AccelStepper stepper3(motorInterfaceType, stepPin3, dirPin3); 96 | AccelStepper stepper4(motorInterfaceType, stepPin4, dirPin4); 97 | 98 | 99 | ////// HOMING FUCNTION: 100 | void homing(){ 101 | 102 | 103 | limState1 = digitalRead(limit1); 104 | limState2 = digitalRead(limit2); 105 | limState3 = digitalRead(limit3); 106 | limState4 = digitalRead(limit4); 107 | 108 | while (limState1 == 1){ 109 | stepper1.moveTo(homing1); 110 | homing1--; 111 | stepper1.run(); 112 | delay(1); 113 | limState1 = digitalRead(limit1); 114 | //Serial.println(limState1); 115 | } 116 | delay (500); 117 | 118 | 119 | while (limState2 == 1){ 120 | stepper2.moveTo(homing2); 121 | homing2++; 122 | stepper2.run(); 123 | limState2 = digitalRead(limit2); 124 | delay(1); 125 | //Serial.println(limState2); 126 | } 127 | delay (500); 128 | 129 | 130 | while (limState3 == 1){ 131 | stepper3.moveTo(homing3); 132 | homing3--; 133 | stepper3.run(); 134 | limState3 = digitalRead(limit3); 135 | delay(2); 136 | //Serial.println(limState3); 137 | } 138 | delay (500); 139 | 140 | while (limState4 == 1){ 141 | stepper4.moveTo(homing4); 142 | homing4++; 143 | stepper4.run(); 144 | limState4 = digitalRead(limit4); 145 | delay(6); 146 | //Serial.println(limState4); 147 | } 148 | delay (500); 149 | } /// Homing function end 150 | 151 | 152 | 153 | void setup() { 154 | 155 | Serial.begin(9600); 156 | 157 | // Potentiometer input pins 158 | pinMode(potPin1, INPUT); // Resume 159 | pinMode(potPin2, INPUT); // Hold 160 | pinMode(potPin3, INPUT); // Abort 161 | pinMode(potPin4, INPUT); // Coolant Enable 162 | 163 | pinMode (limit1, INPUT); 164 | pinMode (limit2, INPUT); 165 | pinMode (limit3, INPUT); 166 | pinMode (limit4, INPUT); 167 | 168 | digitalWrite(limit1, HIGH); 169 | digitalWrite(limit2, HIGH); 170 | digitalWrite(limit3, HIGH); 171 | digitalWrite(limit4, HIGH); 172 | 173 | pinMode(enablePin, OUTPUT); // CNC shield enable pin 174 | digitalWrite(enablePin, LOW); 175 | 176 | /////////// STEPPER PROPERTIES: 177 | 178 | stepper1.setMaxSpeed(4000); //// From Accelstepper: "Max possible speed depends on clock speed. Caution: Speeds that exceed the maximum speed supported by the processor may Result in non-linear accelerations and decelerations" 179 | stepper1.setAcceleration(5500); 180 | 181 | stepper2.setMaxSpeed(4000); 182 | stepper2.setAcceleration(5500); 183 | 184 | stepper3.setMaxSpeed(4000); 185 | stepper3.setAcceleration(5500); 186 | 187 | stepper4.setMaxSpeed(1000); 188 | stepper4.setAcceleration(3000); 189 | 190 | 191 | 192 | homing(); ///////////////////////// RUN ARM HOMING FUNCTION 193 | 194 | 195 | 196 | stepper1.setCurrentPosition(0); // Set current stepper position after homing as zero (THIS SETS MOTOR SPEED TO 0) 197 | stepper2.setCurrentPosition(0); 198 | stepper3.setCurrentPosition(0); 199 | stepper4.setCurrentPosition(0); 200 | 201 | /////////// OFFSET JOINTS FROM LIMIT SWITCHES AFTER HOMING: 202 | 203 | stepper1.moveTo(200); 204 | for (int i = 0; i < 200 ; i++) { 205 | stepper1.run(); 206 | delay(10); 207 | } 208 | 209 | stepper2.moveTo(-400); 210 | for (int i = 0; i < 400 ; i++) { 211 | stepper2.run(); 212 | delay(10); 213 | } 214 | 215 | stepper3.moveTo(200); 216 | for (int i = 0; i < 400 ; i++) { 217 | stepper3.run(); 218 | delay(10); 219 | } 220 | 221 | stepper4.moveTo(-60); 222 | for (int i = 0; i < 60 ; i++) { 223 | stepper4.run(); 224 | delay(10); 225 | } 226 | 227 | } /// End of joint offsetting 228 | 229 | 230 | void loop() { // Start of the main loop 231 | 232 | //////////////// INPUT READING AND SCALING: 233 | static unsigned long timer = 0; 234 | unsigned long interval = 200; 235 | if (millis() - timer >= interval){ 236 | timer = millis(); 237 | 238 | 239 | for(int i=0; i< 10; i++){ 240 | pot1 += analogRead(potPin1); 241 | } 242 | pot1 /= 10; 243 | 244 | pot1 = 1023-pot1; 245 | 246 | 247 | for(int i=0; i< 10; i++){ 248 | pot2 += analogRead(potPin2); 249 | } 250 | pot2 /= 10; 251 | 252 | if(pot2 < 340){ // Bottom limit on shoulder travel 253 | pot2 = 340; 254 | } 255 | 256 | 257 | for(int i=0; i< 10; i++){ 258 | pot3 += analogRead(potPin3); 259 | } 260 | pot3 /= 10; 261 | 262 | if(pot3 > 885){ // Bottom limit on elbow travel (bent 90) 263 | pot3 = 885; 264 | } 265 | 266 | if(pot3 < 600){ // Upper limit on elbow travel (straight) 267 | pot3 = 600; 268 | } 269 | 270 | for(int i=0; i< 10; i++){ 271 | pot4 += analogRead(potPin4); 272 | } 273 | pot4 /= 10; 274 | 275 | // if(pot4 < 360){ // Bottom limit on wrist travel 276 | // pot4 = 360; 277 | 278 | 279 | 280 | /* SUM1 = SUM1 - READINGS1[INDEX1]; 281 | VALUE1 = analogRead(potPin1); 282 | READINGS1[INDEX1] = VALUE1; 283 | SUM1 = SUM1 + VALUE1; 284 | INDEX1 = (INDEX1 + 1) % WINDOW_SIZE; 285 | 286 | pot1 = SUM1 / WINDOW_SIZE; 287 | 288 | 289 | 290 | SUM2 = SUM2 - READINGS2[INDEX2]; 291 | VALUE2 = analogRead(potPin2); 292 | READINGS2[INDEX2] = VALUE2; 293 | SUM2 = SUM2 + VALUE2; 294 | INDEX2 = (INDEX2 + 1) % WINDOW_SIZE; 295 | 296 | pot2 = SUM2 / WINDOW_SIZE; 297 | 298 | 299 | 300 | SUM3 = SUM3 - READINGS3[INDEX3]; 301 | VALUE3 = analogRead(potPin3); 302 | READINGS3[INDEX3] = VALUE3; 303 | SUM3 = SUM3 + VALUE3; 304 | INDEX3 = (INDEX3 + 1) % WINDOW_SIZE; 305 | 306 | pot3 = SUM3 / WINDOW_SIZE; 307 | 308 | 309 | 310 | SUM4 = SUM4 - READINGS4[INDEX4]; 311 | VALUE4 = analogRead(potPin4); 312 | READINGS4[INDEX4] = VALUE4; 313 | SUM4 = SUM4 + VALUE4; 314 | INDEX4 = (INDEX4 + 1) % WINDOW_SIZE; 315 | 316 | pot4 = SUM4 / WINDOW_SIZE; 317 | */ 318 | 319 | } 320 | 321 | 322 | limState1 = digitalRead(limit1); 323 | limState2 = digitalRead(limit2); 324 | limState3 = digitalRead(limit3); 325 | limState4 = digitalRead(limit4); 326 | 327 | /* 328 | Serial.println(pot1); //// DEBUG (controller arm pot values) 329 | Serial.print(" Pot2: "); 330 | Serial.print(pot2); 331 | Serial.print(" Pot3: "); 332 | Serial.print(pot3); 333 | Serial.print(" Pot4: "); 334 | Serial.print(pot4); 335 | Serial.print(" Pot1: "); 336 | delay(200); 337 | */ 338 | 339 | /* Serial.println(limState1); 340 | Serial.print(" Lim2: "); 341 | Serial.print(limState2); 342 | Serial.print(" Lim3: "); 343 | Serial.print(limState3); 344 | Serial.print(" Lim4: "); 345 | Serial.print(limState4); 346 | Serial.print(" Lim1: "); 347 | */ 348 | 349 | 350 | 351 | pot1Scaled = map(pot1 , 160. , 850. , 0. , 175); // Mapping potentiometer values to number of steps 352 | pot2Scaled = 175- map(pot2 , 250. , 700. , 0. , 175); 353 | pot3Scaled = map(pot3 , 400. , 800. , 0. , 175); 354 | pot4Scaled = map(pot4 , 0. , 850. , 0. , 175); 355 | bStateScaled = map(bState , 0 , 1 , restPos , gripPos); 356 | 357 | 358 | /* 359 | Serial.println(pot1Scaled); //// DEBUG (Stepper motor positions) 360 | Serial.print(" Pos 2: "); 361 | Serial.print(pot2Scaled); 362 | Serial.print(" Pos 3: "); 363 | Serial.print(pot3Scaled); 364 | Serial.print(" Pos 4: "); 365 | Serial.print(pot4Scaled); 366 | Serial.print(" Pos 1: "); 367 | delay(100); 368 | */ 369 | 370 | /////////// STEPPER STEP COMMANDS: 371 | 372 | if (pot1Scaled <0){ // Exclude negative values 373 | pot1Scaled =0; 374 | } 375 | 376 | if (pot2Scaled <0){ 377 | pot2Scaled =0; 378 | } 379 | 380 | if (pot3Scaled <0){ 381 | pot3Scaled =0; 382 | } 383 | 384 | if (pot4Scaled <0){ 385 | pot4Scaled =0; 386 | } 387 | 388 | if (pot1Scaled < 100000) { 389 | stepper1.moveTo(pot1Scaled*60); 390 | stepper1.run(); 391 | 392 | if(limState1 == LOW){ 393 | pot1Scaled =0; 394 | } 395 | } 396 | 397 | if (pot2Scaled < 100000){ 398 | stepper2.moveTo(-pot2Scaled*104); 399 | stepper2.run(); 400 | 401 | if(limState2 == LOW){ 402 | pot2Scaled =0; 403 | } 404 | } 405 | 406 | if (pot3Scaled < 10000){ 407 | stepper3.moveTo((pot3Scaled*25)-1900); 408 | stepper3.run(); 409 | 410 | if(limState3 == LOW){ 411 | pot3Scaled =1900; 412 | } 413 | } 414 | 415 | if (pot4Scaled < 10000){ 416 | stepper4.moveTo((-pot4Scaled*10)-300); 417 | stepper4.run(); 418 | 419 | if(limState4 == LOW){ 420 | pot4Scaled =0; 421 | } 422 | } 423 | 424 | } 425 | -------------------------------------------------------------------------------- /ProjectFiles/5-Axis NEMA-17 Robot Arm/Contoller Arm/ControllerArmArm1.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/5-Axis NEMA-17 Robot Arm/Contoller Arm/ControllerArmArm1.STL -------------------------------------------------------------------------------- /ProjectFiles/5-Axis NEMA-17 Robot Arm/Contoller Arm/ControllerArmBase.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/5-Axis NEMA-17 Robot Arm/Contoller Arm/ControllerArmBase.STL -------------------------------------------------------------------------------- /ProjectFiles/5-Axis NEMA-17 Robot Arm/Contoller Arm/ControllerArmLastSegment.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/5-Axis NEMA-17 Robot Arm/Contoller Arm/ControllerArmLastSegment.STL -------------------------------------------------------------------------------- /ProjectFiles/5-Axis NEMA-17 Robot Arm/Contoller Arm/ControllerArmSECOND_TOLastSegment.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/5-Axis NEMA-17 Robot Arm/Contoller Arm/ControllerArmSECOND_TOLastSegment.STL -------------------------------------------------------------------------------- /ProjectFiles/5-Axis NEMA-17 Robot Arm/Contoller Arm/ControllerArmSegment1.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/5-Axis NEMA-17 Robot Arm/Contoller Arm/ControllerArmSegment1.STL -------------------------------------------------------------------------------- /ProjectFiles/5-Axis NEMA-17 Robot Arm/Contoller Arm/ControllerArmSegment1Part2.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/5-Axis NEMA-17 Robot Arm/Contoller Arm/ControllerArmSegment1Part2.STL -------------------------------------------------------------------------------- /ProjectFiles/5-Axis NEMA-17 Robot Arm/End Pivot Cap.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/5-Axis NEMA-17 Robot Arm/End Pivot Cap.STL -------------------------------------------------------------------------------- /ProjectFiles/5-Axis NEMA-17 Robot Arm/Forearm Joint Cap.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/5-Axis NEMA-17 Robot Arm/Forearm Joint Cap.STL -------------------------------------------------------------------------------- /ProjectFiles/5-Axis NEMA-17 Robot Arm/GriperClaw.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/5-Axis NEMA-17 Robot Arm/GriperClaw.STL -------------------------------------------------------------------------------- /ProjectFiles/5-Axis NEMA-17 Robot Arm/GriperSENSORClaw.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/5-Axis NEMA-17 Robot Arm/GriperSENSORClaw.STL -------------------------------------------------------------------------------- /ProjectFiles/5-Axis NEMA-17 Robot Arm/GripperBody.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/5-Axis NEMA-17 Robot Arm/GripperBody.STL -------------------------------------------------------------------------------- /ProjectFiles/5-Axis NEMA-17 Robot Arm/GripperGear Linkage.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/5-Axis NEMA-17 Robot Arm/GripperGear Linkage.STL -------------------------------------------------------------------------------- /ProjectFiles/5-Axis NEMA-17 Robot Arm/GripperLinkage.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/5-Axis NEMA-17 Robot Arm/GripperLinkage.STL -------------------------------------------------------------------------------- /ProjectFiles/5-Axis NEMA-17 Robot Arm/GripperServoGear.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/5-Axis NEMA-17 Robot Arm/GripperServoGear.STL -------------------------------------------------------------------------------- /ProjectFiles/5-Axis NEMA-17 Robot Arm/Last Motor Pulley.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/5-Axis NEMA-17 Robot Arm/Last Motor Pulley.STL -------------------------------------------------------------------------------- /ProjectFiles/5-Axis NEMA-17 Robot Arm/LinearBearing.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/5-Axis NEMA-17 Robot Arm/LinearBearing.STL -------------------------------------------------------------------------------- /ProjectFiles/5-Axis NEMA-17 Robot Arm/Preload Spacer 5mm.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/5-Axis NEMA-17 Robot Arm/Preload Spacer 5mm.STL -------------------------------------------------------------------------------- /ProjectFiles/5-Axis NEMA-17 Robot Arm/SeeSaw Joint Pulley.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/5-Axis NEMA-17 Robot Arm/SeeSaw Joint Pulley.STL -------------------------------------------------------------------------------- /ProjectFiles/5-Axis NEMA-17 Robot Arm/SeeSaw Limit Switch Mount.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/5-Axis NEMA-17 Robot Arm/SeeSaw Limit Switch Mount.STL -------------------------------------------------------------------------------- /ProjectFiles/5-Axis NEMA-17 Robot Arm/Shoulder Limit Switch Mount.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/5-Axis NEMA-17 Robot Arm/Shoulder Limit Switch Mount.STL -------------------------------------------------------------------------------- /ProjectFiles/5-Axis NEMA-17 Robot Arm/Spring Inside Part.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/5-Axis NEMA-17 Robot Arm/Spring Inside Part.STL -------------------------------------------------------------------------------- /ProjectFiles/5-Axis NEMA-17 Robot Arm/Spring Plunger.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/5-Axis NEMA-17 Robot Arm/Spring Plunger.STL -------------------------------------------------------------------------------- /ProjectFiles/5-Axis NEMA-17 Robot Arm/Turntable Actuator Pulley.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/5-Axis NEMA-17 Robot Arm/Turntable Actuator Pulley.STL -------------------------------------------------------------------------------- /ProjectFiles/5-Axis NEMA-17 Robot Arm/Turntable Limit Switch Mount.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/5-Axis NEMA-17 Robot Arm/Turntable Limit Switch Mount.STL -------------------------------------------------------------------------------- /ProjectFiles/5-Axis NEMA-17 Robot Arm/V3 End Joint.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/5-Axis NEMA-17 Robot Arm/V3 End Joint.STL -------------------------------------------------------------------------------- /ProjectFiles/5-Axis NEMA-17 Robot Arm/V3 Forarm.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/5-Axis NEMA-17 Robot Arm/V3 Forarm.STL -------------------------------------------------------------------------------- /ProjectFiles/5-Axis NEMA-17 Robot Arm/V3 Main Arm.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/5-Axis NEMA-17 Robot Arm/V3 Main Arm.STL -------------------------------------------------------------------------------- /ProjectFiles/5-Axis NEMA-17 Robot Arm/V3Turntable.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/5-Axis NEMA-17 Robot Arm/V3Turntable.STL -------------------------------------------------------------------------------- /ProjectFiles/5-Axis NEMA-17 Robot Arm/WormWheel2.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/5-Axis NEMA-17 Robot Arm/WormWheel2.STL -------------------------------------------------------------------------------- /ProjectFiles/Ball and Beam Control System/BALL AND BEAM ASSEMBLY.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/Ball and Beam Control System/BALL AND BEAM ASSEMBLY.zip -------------------------------------------------------------------------------- /ProjectFiles/Ball and Beam Control System/Beam End.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/Ball and Beam Control System/Beam End.STL -------------------------------------------------------------------------------- /ProjectFiles/Ball and Beam Control System/Beam Hinge.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/Ball and Beam Control System/Beam Hinge.STL -------------------------------------------------------------------------------- /ProjectFiles/Ball and Beam Control System/Cart Chassis.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/Ball and Beam Control System/Cart Chassis.STL -------------------------------------------------------------------------------- /ProjectFiles/Ball and Beam Control System/Cart Shield.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/Ball and Beam Control System/Cart Shield.STL -------------------------------------------------------------------------------- /ProjectFiles/Ball and Beam Control System/Cart Tire.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/Ball and Beam Control System/Cart Tire.STL -------------------------------------------------------------------------------- /ProjectFiles/Ball and Beam Control System/Code/Ball_and_Beam_Open_Loop/Ball_and_Beam_Open_Loop.ino: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | 6 | 7 | /// HC_SR04 DISTANCE SENSOR: 8 | #define TRIG_PIN 2 9 | #define ECHO_PIN 3 10 | #define ECHO_INT 0 11 | double distance; 12 | double lastDistance; 13 | 14 | HC_SR04 sensor(TRIG_PIN, ECHO_PIN, ECHO_INT); 15 | 16 | const int numSamples = 14; // number of samples to use for the moving average 17 | int sampleIndex = 0; // current index in the sample array 18 | int samples[numSamples]; // array to store the samples 19 | double averageDist; 20 | 21 | const int UPDATE_INTERVAL = 25; // specify the update interval in milliseconds 22 | unsigned long currentMillis = 0; 23 | unsigned long previousMillis = 0; // store the time of the previous update 24 | 25 | 26 | 27 | //// AS5600 ABSOLUTE MAGNETIC ENCODER: 28 | AS5600 encoder; 29 | int encAngle; 30 | 31 | 32 | //// INITIALIZE THE PID CONTROLLER: 33 | double targetDist = 28; // set the main target distance here 34 | double input, output; 35 | PID pid(&input, &output, &targetDist, 1, 0, 0, DIRECT); 36 | 37 | 38 | 39 | //// STEPPER MOTOR: 40 | int ENABLE_PIN = 8; 41 | int stepPin = 4; 42 | int dirPin = 7; 43 | #define motorInterfaceType 1 44 | AccelStepper stepper(motorInterfaceType, stepPin, dirPin); 45 | 46 | 47 | //// TARGET SWITCHING: 48 | long targetSwitchTime = 10 * 1000; 49 | long nextTargetSwitchTime = millis() + targetSwitchTime; 50 | int potPin = A3; 51 | int potPowerPin = 12; 52 | 53 | 54 | ////// HOMING FUNCTION: 55 | void homing(){ 56 | 57 | int startAngle = 200; // Home position of the crank 58 | encAngle = (encoder.getAngle())/11.37; // Initial angle measurement 59 | 60 | while (abs(encAngle-startAngle) > 1) 61 | { 62 | encAngle = (encoder.getAngle())/11.37; // Read angle of shaft 63 | stepper.move(-20); 64 | stepper.run(); 65 | delayMicroseconds(50); 66 | } 67 | 68 | stepper.setCurrentPosition(0); // Reset stepper position as 0 after homing 69 | } 70 | 71 | 72 | ///// SETUP: 73 | void setup(){ 74 | sensor.begin(); 75 | Serial.begin(9600); 76 | while(!Serial) continue; 77 | sensor.start(); // Start HC_SR04 sensor 78 | 79 | pinMode(potPowerPin, OUTPUT); 80 | digitalWrite(potPowerPin, HIGH); 81 | 82 | 83 | // initialize the samples array with zeros 84 | for (int i = 0; i < numSamples; i++) { 85 | samples[i] = 0; 86 | } 87 | 88 | 89 | pinMode(ENABLE_PIN, OUTPUT); // CNC shield enable pin 90 | digitalWrite(ENABLE_PIN, LOW); // Pull the enable pin LOW to enable the stepper driver 91 | 92 | stepper.setMaxSpeed(200000); // Stepper motor speed and acceleration parameters (Units are steps/sec and steps/second^2, respectively) 93 | stepper.setAcceleration(20000); 94 | 95 | 96 | ////// INITIALIZING THE PID CONTROLLER: 97 | pid.SetMode(AUTOMATIC); 98 | pid.SetSampleTime(30); // set the PID control loop to run every so often 99 | pid.SetOutputLimits(-800, 800); // limit the PID output to a range of motor steps 100 | float scale = 1; 101 | pid.SetTunings(scale*70, scale*14, scale*165); // set the PID tuning parameters (P, I, D) 102 | 103 | 104 | homing(); // Run homing function to bring the crank to its home position from an arbirtary start point 105 | 106 | } 107 | 108 | 109 | /////// MAIN LOOP: 110 | 111 | void loop(){ 112 | 113 | currentMillis = millis(); // get the current time 114 | /* 115 | //// TARGET DISTANCE SWITCHING: 116 | // Serial.println(currentMillis - nextTargetSwitchTime); 117 | if (currentMillis >= nextTargetSwitchTime) 118 | { 119 | if ((int)targetDist == 28) 120 | targetDist = 9.0; 121 | 122 | else 123 | targetDist = 28.0; 124 | 125 | nextTargetSwitchTime = currentMillis + targetSwitchTime; 126 | 127 | } 128 | */ 129 | 130 | //// READING THE HC_SR04 DISTANCE SENSOR: 131 | 132 | if (currentMillis - previousMillis >= UPDATE_INTERVAL) { // check if it's time to take another sensor reading 133 | previousMillis = currentMillis; // update the previous time 134 | if(sensor.isFinished()){ 135 | // Do something with the range... 136 | distance = sensor.getRange(); 137 | 138 | if (distance > 52){ // Simple outlier rejection to reduce the effeects of some of the erroneous sensor readings 139 | distance = 16; 140 | } 141 | 142 | sensor.start(); // Start sensor for next measurement 143 | 144 | samples[sampleIndex] = distance; // store the distance in the samples array 145 | 146 | sampleIndex = (sampleIndex + 1) % numSamples; // increment the sample index and wrap around if necessary 147 | 148 | // compute the sum of the samples 149 | int sum = 0; 150 | for (int i = 0; i < numSamples; i++) { 151 | sum += samples[i]; 152 | } 153 | 154 | averageDist = sum / numSamples; // compute the average of the samples 155 | 156 | 157 | targetDist = map(analogRead(potPin), 0, 1023, 8, 30); // Calculate the PID target distance from the potentiometer reading 158 | 159 | Serial.print(averageDist); // Print the processed distance sensor data 160 | Serial.print(","); 161 | Serial.print(targetDist); // Print the PID target distance as set by the potentiometer 162 | 163 | } 164 | } 165 | // Do other things... 166 | 167 | input = averageDist; // Provide the processed distance sensor data as the input to the PID controller 168 | pid.Compute(); 169 | 170 | stepper.moveTo(output); // Use the stepper motor as the output for the PID controller 171 | stepper.run(); 172 | 173 | } 174 | -------------------------------------------------------------------------------- /ProjectFiles/Ball and Beam Control System/Coupler.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/Ball and Beam Control System/Coupler.STL -------------------------------------------------------------------------------- /ProjectFiles/Ball and Beam Control System/Crank.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/Ball and Beam Control System/Crank.STL -------------------------------------------------------------------------------- /ProjectFiles/Ball and Beam Control System/Encoder Cover.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/Ball and Beam Control System/Encoder Cover.STL -------------------------------------------------------------------------------- /ProjectFiles/Ball and Beam Control System/Hinge Tower.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/Ball and Beam Control System/Hinge Tower.STL -------------------------------------------------------------------------------- /ProjectFiles/Ball and Beam Control System/Motor Tower.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/Ball and Beam Control System/Motor Tower.STL -------------------------------------------------------------------------------- /ProjectFiles/Ball and Beam Control System/Potentiometer Holder.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/Ball and Beam Control System/Potentiometer Holder.STL -------------------------------------------------------------------------------- /ProjectFiles/Ball and Beam Control System/Potentiometer Knob.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/Ball and Beam Control System/Potentiometer Knob.STL -------------------------------------------------------------------------------- /ProjectFiles/CameraDolly/10.5mmUpperPhoneMount.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/CameraDolly/10.5mmUpperPhoneMount.STL -------------------------------------------------------------------------------- /ProjectFiles/CameraDolly/7.5mmUpperPhoneMount.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/CameraDolly/7.5mmUpperPhoneMount.STL -------------------------------------------------------------------------------- /ProjectFiles/CameraDolly/8.5mmUpperPhoneMount.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/CameraDolly/8.5mmUpperPhoneMount.STL -------------------------------------------------------------------------------- /ProjectFiles/CameraDolly/9.5mmUpperPhoneMount.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/CameraDolly/9.5mmUpperPhoneMount.STL -------------------------------------------------------------------------------- /ProjectFiles/CameraDolly/BasePhoneMount.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/CameraDolly/BasePhoneMount.STL -------------------------------------------------------------------------------- /ProjectFiles/CameraDolly/Chassis.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/CameraDolly/Chassis.STL -------------------------------------------------------------------------------- /ProjectFiles/CameraDolly/ExampleCode/CameraDolly.ino: -------------------------------------------------------------------------------- 1 | /*NOTE: This sketch produces a basic back and forth motion. The code is all very simple, so feel free to modify it to produce whatever movements you would like. 2 | * Here is the Class Reference for the AccelStepper library if you would like to take a look: 3 | * https://www.airspayce.com/mikem/arduino/AccelStepper/classAccelStepper.html#a68942c66e78fb7f7b5f0cdade6eb7f06 4 | */ 5 | 6 | #include // Includes the AccelStepper library 7 | 8 | #define HALFSTEP 8 // Sets the driving mode to half-step 9 | 10 | AccelStepper wheelStepper(HALFSTEP , 3 , 5 , 4, 6); // Creates an instance 11 | 12 | 13 | float travelDist = 400; // Distance the dolley will travel before reversing (in units of mm) 14 | int stepsPerRevolution = 2038; // Change this if your motor has a different number of steps per revolution 15 | float wheelDia = 60; // Wheel Diameter in mm 16 | float wheelCirc; 17 | 18 | void setup() { 19 | 20 | wheelStepper.setMaxSpeed(1600); //Maxixmum value I found works well: 1600 steps/sec 21 | wheelStepper.setAcceleration(800); // Maxixmum value I found works well: 800 steps/sec^2 22 | wheelStepper.setSpeed(600); 23 | 24 | wheelCirc = wheelDia*3.14159; 25 | 26 | wheelStepper.moveTo((travelDist/wheelCirc)*stepsPerRevolution); // Commands the dolley to move the requested travel distance 27 | 28 | } 29 | 30 | void loop() { 31 | 32 | if (wheelStepper.distanceToGo() == 0){ 33 | wheelStepper.moveTo(-wheelStepper.currentPosition()); // Reverses the stepper when it reaches its endpoint 34 | } 35 | 36 | wheelStepper.run(); // Commands the motor to run one step if needed 37 | 38 | } 39 | -------------------------------------------------------------------------------- /ProjectFiles/CameraDolly/IdlerAxle.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/CameraDolly/IdlerAxle.STL -------------------------------------------------------------------------------- /ProjectFiles/CameraDolly/IdlerWheel.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/CameraDolly/IdlerWheel.STL -------------------------------------------------------------------------------- /ProjectFiles/CameraDolly/MotorAxle.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/CameraDolly/MotorAxle.STL -------------------------------------------------------------------------------- /ProjectFiles/CameraDolly/MotorWheel.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/CameraDolly/MotorWheel.STL -------------------------------------------------------------------------------- /ProjectFiles/High-Speed Pen Plotter/5mmShaftConnector.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/High-Speed Pen Plotter/5mmShaftConnector.STL -------------------------------------------------------------------------------- /ProjectFiles/High-Speed Pen Plotter/BOM.txt: -------------------------------------------------------------------------------- 1 | Printed parts: 2 | 2x idler tire 3 | 1x left side frame 4 | 1x right side frame 5 | 1x printhead 6 | 1x writing surface 7 | 1x pen adapter 8 | 2x idler shaft cap 9 | 1x idler lever 10 | 1x mirrored idler lever 11 | 1x pen lifter bar 12 | 2x grit wheel adapter 13 | 1x feed table support 14 | 1x sloped support table 15 | 1x electronics box 16 | 17 | 18 | Other parts: 19 | 1x Arduino Uno 20 | 1x CNC shield V3 21 | 3x A4988 stepper drivers 22 | 24v PSU (at least 45w) 23 | 1x 40mm fan 24 | Some 5mm rod 25 | GT2 Timing belt 26 | 1x Timing belt idler pulley 27 | 1x Timing belt drive pulley 28 | 2x 120 grit Dremel sanding bands 29 | 1x 240mm long 1/2" steel bar for weight 30 | 1x Ink insert from a gel tip pen. I used a "0.7 TRU RED" pen 31 | 1x 280mm long 10mm diameter rod for X-axis 32 | 5x 605ZZ bearings 33 | 1x 5x11x4 bearing 34 | 1x 5mm to 5mm shaft coupler for Y-axis 35 | M3 hardware 36 | -------------------------------------------------------------------------------- /ProjectFiles/High-Speed Pen Plotter/ElectonicsBox.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/High-Speed Pen Plotter/ElectonicsBox.STL -------------------------------------------------------------------------------- /ProjectFiles/High-Speed Pen Plotter/ElectronicsBoxTop.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/High-Speed Pen Plotter/ElectronicsBoxTop.STL -------------------------------------------------------------------------------- /ProjectFiles/High-Speed Pen Plotter/FeedTableSupport.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/High-Speed Pen Plotter/FeedTableSupport.STL -------------------------------------------------------------------------------- /ProjectFiles/High-Speed Pen Plotter/GritWheelAdapter.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/High-Speed Pen Plotter/GritWheelAdapter.STL -------------------------------------------------------------------------------- /ProjectFiles/High-Speed Pen Plotter/IdlerLever.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/High-Speed Pen Plotter/IdlerLever.STL -------------------------------------------------------------------------------- /ProjectFiles/High-Speed Pen Plotter/IdlerShaftCap.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/High-Speed Pen Plotter/IdlerShaftCap.STL -------------------------------------------------------------------------------- /ProjectFiles/High-Speed Pen Plotter/IdlerTire.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/High-Speed Pen Plotter/IdlerTire.STL -------------------------------------------------------------------------------- /ProjectFiles/High-Speed Pen Plotter/Left Side Frame.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/High-Speed Pen Plotter/Left Side Frame.STL -------------------------------------------------------------------------------- /ProjectFiles/High-Speed Pen Plotter/Mirrored IdlerLever.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/High-Speed Pen Plotter/Mirrored IdlerLever.STL -------------------------------------------------------------------------------- /ProjectFiles/High-Speed Pen Plotter/Pen Lifter Bar.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/High-Speed Pen Plotter/Pen Lifter Bar.STL -------------------------------------------------------------------------------- /ProjectFiles/High-Speed Pen Plotter/PrintHead.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/High-Speed Pen Plotter/PrintHead.STL -------------------------------------------------------------------------------- /ProjectFiles/High-Speed Pen Plotter/SlopedSupportTable.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/High-Speed Pen Plotter/SlopedSupportTable.STL -------------------------------------------------------------------------------- /ProjectFiles/High-Speed Pen Plotter/SolidWorks Assem/PLOTTER_2_ASSEM.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/High-Speed Pen Plotter/SolidWorks Assem/PLOTTER_2_ASSEM.zip -------------------------------------------------------------------------------- /ProjectFiles/High-Speed Pen Plotter/Tru-Red Pen Adapter.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/High-Speed Pen Plotter/Tru-Red Pen Adapter.STL -------------------------------------------------------------------------------- /ProjectFiles/High-Speed Pen Plotter/Writing Surface.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/High-Speed Pen Plotter/Writing Surface.STL -------------------------------------------------------------------------------- /ProjectFiles/High-Speed Pen Plotter/lRight Side Frame.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/High-Speed Pen Plotter/lRight Side Frame.STL -------------------------------------------------------------------------------- /ProjectFiles/Parallel MG996 Gripper/10mmGripperJawSpacerSolenoid.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/Parallel MG996 Gripper/10mmGripperJawSpacerSolenoid.STL -------------------------------------------------------------------------------- /ProjectFiles/Parallel MG996 Gripper/15mmGripperJawSpacerSolenoid.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/Parallel MG996 Gripper/15mmGripperJawSpacerSolenoid.STL -------------------------------------------------------------------------------- /ProjectFiles/Parallel MG996 Gripper/5mmGripperJawSpacerSolenoid.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/Parallel MG996 Gripper/5mmGripperJawSpacerSolenoid.STL -------------------------------------------------------------------------------- /ProjectFiles/Parallel MG996 Gripper/5x11x4GT2Pulley.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/Parallel MG996 Gripper/5x11x4GT2Pulley.STL -------------------------------------------------------------------------------- /ProjectFiles/Parallel MG996 Gripper/5x11x4Pulley.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/Parallel MG996 Gripper/5x11x4Pulley.STL -------------------------------------------------------------------------------- /ProjectFiles/Parallel MG996 Gripper/ParallelGripDynamicJaw.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/Parallel MG996 Gripper/ParallelGripDynamicJaw.STL -------------------------------------------------------------------------------- /ProjectFiles/Parallel MG996 Gripper/ParallelServoGripBody.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/Parallel MG996 Gripper/ParallelServoGripBody.STL -------------------------------------------------------------------------------- /ProjectFiles/Parallel MG996 Gripper/ServoGT2Pulley.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/Parallel MG996 Gripper/ServoGT2Pulley.STL -------------------------------------------------------------------------------- /ProjectFiles/Pen PlotterV2/28tPlotterTimingBeltPulley.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/Pen PlotterV2/28tPlotterTimingBeltPulley.STL -------------------------------------------------------------------------------- /ProjectFiles/Pen PlotterV2/7mm To 5mm Shaft Coupler.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/Pen PlotterV2/7mm To 5mm Shaft Coupler.STL -------------------------------------------------------------------------------- /ProjectFiles/Pen PlotterV2/8mm Shaft Coupler Horn.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/Pen PlotterV2/8mm Shaft Coupler Horn.STL -------------------------------------------------------------------------------- /ProjectFiles/Pen PlotterV2/8mm To 5mm Shaft Coupler.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/Pen PlotterV2/8mm To 5mm Shaft Coupler.STL -------------------------------------------------------------------------------- /ProjectFiles/Pen PlotterV2/Bic Pen Adapter.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/Pen PlotterV2/Bic Pen Adapter.STL -------------------------------------------------------------------------------- /ProjectFiles/Pen PlotterV2/Head Pen Holder.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/Pen PlotterV2/Head Pen Holder.STL -------------------------------------------------------------------------------- /ProjectFiles/Pen PlotterV2/Head Pen HolderBottom.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/Pen PlotterV2/Head Pen HolderBottom.STL -------------------------------------------------------------------------------- /ProjectFiles/Pen PlotterV2/Head Pen Top Holder.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/Pen PlotterV2/Head Pen Top Holder.STL -------------------------------------------------------------------------------- /ProjectFiles/Pen PlotterV2/Idler Lifter Horn.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/Pen PlotterV2/Idler Lifter Horn.STL -------------------------------------------------------------------------------- /ProjectFiles/Pen PlotterV2/Idler Paper Right Roller Mount.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/Pen PlotterV2/Idler Paper Right Roller Mount.STL -------------------------------------------------------------------------------- /ProjectFiles/Pen PlotterV2/Idler Paper Roller Mount.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/Pen PlotterV2/Idler Paper Roller Mount.STL -------------------------------------------------------------------------------- /ProjectFiles/Pen PlotterV2/Paper Guide.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/Pen PlotterV2/Paper Guide.STL -------------------------------------------------------------------------------- /ProjectFiles/Pen PlotterV2/Paper GuideMirror.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/Pen PlotterV2/Paper GuideMirror.STL -------------------------------------------------------------------------------- /ProjectFiles/Pen PlotterV2/PaperRoller.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/Pen PlotterV2/PaperRoller.STL -------------------------------------------------------------------------------- /ProjectFiles/Pen PlotterV2/Pen Lifter Servo Horn.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/Pen PlotterV2/Pen Lifter Servo Horn.STL -------------------------------------------------------------------------------- /ProjectFiles/Pen PlotterV2/PenHolder.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/Pen PlotterV2/PenHolder.STL -------------------------------------------------------------------------------- /ProjectFiles/Pen PlotterV2/PlotterTimingBeltPulley.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/Pen PlotterV2/PlotterTimingBeltPulley.STL -------------------------------------------------------------------------------- /ProjectFiles/Pen PlotterV2/V2IdlerMount.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/Pen PlotterV2/V2IdlerMount.STL -------------------------------------------------------------------------------- /ProjectFiles/Pen PlotterV2/X-axisMount.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/Pen PlotterV2/X-axisMount.STL -------------------------------------------------------------------------------- /ProjectFiles/SCARA Robot/10mmGripperJawSpacerSolenoid.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/SCARA Robot/10mmGripperJawSpacerSolenoid.STL -------------------------------------------------------------------------------- /ProjectFiles/SCARA Robot/15mmGripperJawSpacerSolenoid.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/SCARA Robot/15mmGripperJawSpacerSolenoid.STL -------------------------------------------------------------------------------- /ProjectFiles/SCARA Robot/20x40 Extru. Cap.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/SCARA Robot/20x40 Extru. Cap.STL -------------------------------------------------------------------------------- /ProjectFiles/SCARA Robot/5to1LastSegment.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/SCARA Robot/5to1LastSegment.STL -------------------------------------------------------------------------------- /ProjectFiles/SCARA Robot/5x11x4GT2Pulley.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/SCARA Robot/5x11x4GT2Pulley.STL -------------------------------------------------------------------------------- /ProjectFiles/SCARA Robot/5x11x4Pulley.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/SCARA Robot/5x11x4Pulley.STL -------------------------------------------------------------------------------- /ProjectFiles/SCARA Robot/605zz idler.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/SCARA Robot/605zz idler.STL -------------------------------------------------------------------------------- /ProjectFiles/SCARA Robot/608Idler.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/SCARA Robot/608Idler.STL -------------------------------------------------------------------------------- /ProjectFiles/SCARA Robot/Bill of Materials/Bill of Materials.txt: -------------------------------------------------------------------------------- 1 | SCARA BOM for items not included in the SolidWorks assembly file: 2 | 3 | 4x 200mm loops of 6mm wide GT2 timing belt 4 | Around 1.5m of GT2 timing belt for the Z-axis. 5 | 1x 400mm loop of GT2 timing belt for the final 5:1 arm segment 6 | 7 | 15x 608 ball bearings 8 | 9 | 1x Arduino Uno and CNC Shield V3.0 10 | 11 | 1x 5v Breadboard PSU to power the MG996 servo 12 | 13 | 4x A4988 stepper drivers (Or equivalent) 14 | 15 | Braided cable sleeving for cable management 16 | 17 | 4x Limit Switches 18 | 19 | Note: The D-profile shafts that are used as the gearbox output shafts will need to be made from 8mm round bar. 20 | I used an angle grinder to remove the bulk of the material, and then finished it off by draw-filing while 21 | frequently checking the dimension with calipers. If you have access to a mill, that would make it easier. 22 | You want to remove 1mm from one side to create the flat (So for the 8mm rods, it should measure 7mm on the flat). 23 | 24 | I wish I knew of a good source to buy D-profile shaft, but I was not able to find any. Luckily it's not too hard to make. 25 | 26 | 27 | -------------------------------------------------------------------------------- /ProjectFiles/SCARA Robot/BoltHeadRamp.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/SCARA Robot/BoltHeadRamp.STL -------------------------------------------------------------------------------- /ProjectFiles/SCARA Robot/Code/SCARA Controller/SCARA Controller.py: -------------------------------------------------------------------------------- 1 | import serial 2 | import time 3 | import pygame 4 | import math 5 | import waypoints 6 | from numpy import * 7 | 8 | arduino = serial.Serial(port = 'COM3', baudrate = 115200, timeout=1) 9 | pygame.init() 10 | 11 | WIDTH = 800 12 | HEIGHT = 800 13 | 14 | BLOCK_WIDTH = 80 15 | 16 | ORIGIN = (WIDTH//2, HEIGHT//2) 17 | 18 | ARM_SEGMENT_ONE = 160 19 | ARM_SEGMENT_TWO = 202 20 | ARM_SEGMENT_THREE = 40 21 | MAX_Z = 756 22 | 23 | screen = pygame.display.set_mode((WIDTH, HEIGHT)) 24 | 25 | class Dot(object): 26 | def __init__(self, pos): 27 | self.pos = list(pos) 28 | self.radius = 10 29 | self.color = (255, 0, 0) 30 | 31 | def draw(self, surface): 32 | pygame.draw.circle(surface, self.color, self.pos, self.radius) 33 | 34 | def is_moused_over(self, mouse_pos): 35 | if math.dist(mouse_pos, self.pos)< self.radius: 36 | return True 37 | return False 38 | 39 | 40 | 41 | def write_data(pointer, a_p, z, c): 42 | angles = list(inverse_kinematics(interpret_mouse(pointer.pos))) 43 | angles.append(a_p[2]) 44 | 45 | if isnan(angles[0]) or isnan(angles[1]): 46 | return 47 | 48 | a_p[0] = angles[0] 49 | a_p[1] = angles[1] 50 | 51 | return write_direct_data(angles, z, c) 52 | 53 | def write_direct_data(angles, height, c): 54 | computed = (bytes(str(int(angles[0])), "utf-8"), bytes(str(int(angles[1])), "utf-8"), bytes(str(int(angles[2])), "utf-8")) 55 | #print(computed) 56 | 57 | z = bytes(str(int(height)), "utf-8") 58 | closed = bytes(str(int(c)), "utf-8") 59 | delim = bytes(';', "utf-8") 60 | 61 | arduino.write(computed[0]) 62 | arduino.write(delim) 63 | arduino.write(computed[1]) 64 | arduino.write(delim) 65 | arduino.write(computed[2]) 66 | arduino.write(delim) 67 | arduino.write(z) 68 | arduino.write(delim) 69 | arduino.write(closed) 70 | arduino.write(delim) 71 | 72 | return 1 73 | 74 | def draw_joint(surface, start_pos, angle, length, width): 75 | x = start_pos[0] + math.cos(math.radians(angle-90)) * length 76 | y = start_pos[1] + math.sin(math.radians(angle-90)) * length 77 | 78 | end_pos = (x, y) 79 | 80 | pygame.draw.line(surface, (0, 0, 0), start_pos, end_pos, width) 81 | 82 | return end_pos 83 | 84 | def interpret_mouse(pos): 85 | x = pos[0]; y = pos[1] 86 | 87 | return (x-(WIDTH//2), HEIGHT-y-(HEIGHT//2)) 88 | #return (x-(WIDTH//2), -(y-(HEIGHT//2))) 89 | 90 | 91 | def inverse_kinematics(target_pos): 92 | invert = False 93 | 94 | L1 = ARM_SEGMENT_ONE 95 | L2 = ARM_SEGMENT_TWO 96 | x = target_pos[0] 97 | y = target_pos[1] 98 | 99 | if x >= 0: 100 | invert = True 101 | x = -x 102 | 103 | r1 = sqrt(x**2+y**2) # eqn 1 104 | phi_1 = arccos((L2**2-L1**2-r1**2)/(-2*L1*r1)) # eqn 2 105 | phi_2 = arctan2(y, x) # eqn 3 106 | theta_1 = (rad2deg(phi_2-phi_1)-90) # eqn 4 converted to degrees 107 | 108 | phi_3 = arccos((r1**2-L1**2-L2**2)/(-2*L1*L2)) 109 | theta_2 = 180-rad2deg(phi_3) 110 | 111 | if invert: 112 | theta_1 = -theta_1 113 | theta_2 = -theta_2 114 | 115 | if y < 0: 116 | theta_1 = -theta_1 117 | 118 | sign_1 = abs(theta_1)//theta_1 119 | sign_2 = abs(theta_2)//theta_2 120 | 121 | if abs(theta_1) >= 180: 122 | theta_1 = (360-abs(theta_1)) * sign_1 123 | 124 | if abs(theta_2) >= 180: 125 | theta_2 = (360-abs(theta_2)) * sign_2 126 | 127 | return (-theta_1, -theta_2) 128 | 129 | def export_waypoints(path, filename): 130 | with open(filename, "w") as f: 131 | for point in path: 132 | point.write(f) 133 | 134 | def load_waypoints(filename): 135 | with open(filename, "r") as f: 136 | return waypoints.parse_file(f.readlines()) 137 | 138 | 139 | running = True 140 | 141 | pointer = Dot(ORIGIN) 142 | 143 | dragging = False 144 | 145 | gripped = False 146 | 147 | last_point_pos = (0, 0) 148 | 149 | clock = pygame.time.Clock() 150 | 151 | angles = [0, 0, 0] 152 | z_height = 0 153 | 154 | pointer.pos[1] -= 300 155 | 156 | saving_path = False 157 | stored_path = [] 158 | 159 | font = pygame.font.Font(None, 48) 160 | building_path_img = font.render("Building path: 0", True, (20, 20, 20)) 161 | 162 | #1: manual plot; 2: follow previous path 163 | current_state = 1 164 | arduino_ready = True 165 | current_waypoint = 0 166 | 167 | update_arduino_count = 0 168 | 169 | changed = False 170 | 171 | while running: 172 | clock.tick(60) 173 | 174 | for event in pygame.event.get(): 175 | if event.type == pygame.QUIT: 176 | running = False 177 | elif event.type == pygame.MOUSEWHEEL: 178 | z_height = max(min(z_height - event.y*4, MAX_Z), 0) 179 | changed = True 180 | 181 | elif event.type == pygame.KEYDOWN: 182 | if event.key == pygame.K_b: #Begin path 183 | saving_path = True 184 | stored_path = [] 185 | 186 | elif event.key == pygame.K_s: #Save path 187 | export_waypoints(stored_path, "C:/dump/example.txt") 188 | saving_path = False 189 | stored_path = [] 190 | 191 | elif event.key == pygame.K_SPACE: #Add waypoint 192 | if saving_path: 193 | stored_path.append(waypoints.Waypoint(angles=angles, height=z_height, grip=gripped)) 194 | building_path_img = font.render("Building path: "+str(len(stored_path)), True, (20, 20, 20)) 195 | 196 | elif event.key == pygame.K_p and current_state == 1: #Load waypoints 197 | saving_path = False 198 | stored_path = load_waypoints("C:/dump/example.txt") 199 | current_state = 2 200 | 201 | elif event.key == pygame.K_l and current_state == 1: 202 | saving_path = False 203 | stored_path = load_waypoints("C:/dump/example.txt") 204 | current_state = 3 205 | 206 | elif event.key == pygame.K_ESCAPE: 207 | current_state = 1 208 | current_waypoint = 0 209 | 210 | elif event.key == pygame.K_LSHIFT: 211 | gripped = not gripped 212 | changed = True 213 | 214 | 215 | 216 | screen.fill((255, 255, 255)) 217 | 218 | keys = pygame.key.get_pressed() 219 | 220 | if keys[pygame.K_LEFT]: 221 | angles[2] -= 2 222 | changed = True 223 | if keys[pygame.K_RIGHT]: 224 | angles[2] += 2 225 | changed = True 226 | 227 | if angles[2] < -180: 228 | angles[2] += 360 229 | 230 | if angles[2] > 180: 231 | angles[2] -= 360 232 | 233 | if gripped: 234 | pygame.draw.circle(screen, (0, 0, 0), (WIDTH*0.95, HEIGHT*0.95), 10) 235 | 236 | if saving_path: 237 | screen.blit(building_path_img, (30, 30)) 238 | 239 | for x in range(WIDTH//BLOCK_WIDTH): 240 | pygame.draw.line(screen, (50, 50, 50), ((x+1)*BLOCK_WIDTH, 0), ((x+1)*BLOCK_WIDTH, HEIGHT)) 241 | 242 | for y in range(HEIGHT//BLOCK_WIDTH): 243 | pygame.draw.line(screen, (50, 50, 50), (0, (y+1)*BLOCK_WIDTH), (WIDTH, (y+1)*BLOCK_WIDTH)) 244 | 245 | pygame.draw.circle(screen, (0, 0, 0), ORIGIN, 5) 246 | 247 | end = draw_joint(screen, ORIGIN, angles[0], ARM_SEGMENT_ONE, 10) 248 | end = draw_joint(screen, end, angles[0]+angles[1], ARM_SEGMENT_TWO, 5) 249 | draw_joint(screen, end, angles[0]+angles[1]+angles[2], ARM_SEGMENT_THREE, 2) 250 | 251 | #draw_joint(screen, ORIGIN, -80, ARM_SEGMENT_ONE, 10) 252 | 253 | pointer.draw(screen) 254 | 255 | if current_state == 1: 256 | if pointer.is_moused_over(pygame.mouse.get_pos()) and pygame.mouse.get_pressed()[0]: 257 | dragging = True 258 | 259 | if dragging: 260 | pointer.pos = pygame.mouse.get_pos() 261 | 262 | if not pygame.mouse.get_pressed()[0]: 263 | dragging = False 264 | 265 | if last_point_pos[0] != pointer.pos[0] or last_point_pos[1] != pointer.pos[1] or changed: 266 | if update_arduino_count >= 5: 267 | write_data(pointer, angles, z_height, gripped) 268 | last_point_pos = tuple(pointer.pos) 269 | update_arduino_count %= 5 270 | 271 | 272 | elif current_state in (2, 3): 273 | if arduino_ready: 274 | angles = list(stored_path[current_waypoint].angles) 275 | z_height = stored_path[current_waypoint].height 276 | g = stored_path[current_waypoint].grip 277 | 278 | write_direct_data(angles, z_height, g) 279 | 280 | arduino_ready = False 281 | 282 | current_waypoint += 1 283 | 284 | if current_waypoint >= len(stored_path): 285 | current_waypoint = 0 286 | 287 | if current_state == 2: 288 | current_state = 1 289 | 290 | if arduino.inWaiting(): 291 | s = arduino.readline() 292 | 293 | s = s.decode() 294 | print(s.strip())#, ":", inverse_kinematics(interpret_mouse(pointer.pos))) 295 | 296 | if s.startswith("Ready"): 297 | arduino_ready = True 298 | 299 | elif s.startswith("Replay"): 300 | saving_path = False 301 | stored_path = load_waypoints("C:/dump/example.txt") 302 | current_state = 2 303 | 304 | update_arduino_count += 1 305 | pygame.display.flip() 306 | 307 | 308 | pygame.quit() 309 | arduino.close() 310 | -------------------------------------------------------------------------------- /ProjectFiles/SCARA Robot/Code/SCARA Controller/__pycache__/waypoints.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/SCARA Robot/Code/SCARA Controller/__pycache__/waypoints.cpython-39.pyc -------------------------------------------------------------------------------- /ProjectFiles/SCARA Robot/Code/SCARA Controller/test.py: -------------------------------------------------------------------------------- 1 | import serial, time 2 | 3 | arduino = serial.Serial(port = 'COM3', baudrate = 9600, timeout=1) 4 | 5 | while True: 6 | arduino.write(bytes("1", "utf-8")) 7 | arduino.write(bytes("2", "utf-8")) 8 | arduino.write(bytes("3", "utf-8")) 9 | 10 | if arduino.inWaiting(): 11 | s = arduino.readline() 12 | 13 | s = s.decode() 14 | print(s.strip()) 15 | 16 | time.sleep(0.01) 17 | 18 | -------------------------------------------------------------------------------- /ProjectFiles/SCARA Robot/Code/SCARA Controller/waypoints.py: -------------------------------------------------------------------------------- 1 | class Waypoint: 2 | running_id = 0 3 | def __init__(self, angles=None, height=None, grip=None, file_data=None): 4 | if not file_data: 5 | self.angles = tuple(angles) 6 | self.height = height 7 | self.id = Waypoint.running_id 8 | self.grip = grip 9 | Waypoint.running_id += 1 10 | else: 11 | self.angles = tuple(file_data["ANGLES"]) 12 | self.height = file_data["HEIGHT"] 13 | self.id = file_data["ID"] 14 | self.grip = file_data["GRIP"] 15 | 16 | def write(self, open_file): 17 | identity = "ID:" + str(self.id) + '\n' 18 | angles = "ANGLES:" + str(int(self.angles[0])) + ';' + str(int(self.angles[1])) + ';' + str(int(self.angles[2])) + '\n' 19 | height = "HEIGHT:" + str(int(self.height)) + '\n' 20 | grip = "GRIP:" + str(int(self.grip)) + '\n' 21 | open_file.writelines((identity, angles, height, grip, '#\n')) 22 | 23 | def parse_file(file_lines): 24 | waypoints = [] 25 | 26 | info = { 27 | "ID": -1, 28 | "ANGLES": [-1, -1, -1], 29 | "HEIGHT": -1, 30 | "GRIP": False 31 | } 32 | 33 | for line in file_lines: 34 | if line.startswith("ID"): 35 | info["ID"] = int(line.split(':')[-1]) 36 | 37 | elif line.startswith("ANGLES"): 38 | cur_angles = line.split(':')[-1].split(';') 39 | info["ANGLES"] = (int(cur_angles[0]), int(cur_angles[1]), int(cur_angles[2])) 40 | 41 | elif line.startswith("HEIGHT"): 42 | info["HEIGHT"] = int(line.split(':')[-1]) 43 | 44 | elif line.startswith("GRIP"): 45 | info["GRIP"] = bool(int(line.split(':')[-1])) 46 | 47 | elif line.startswith("#"): 48 | waypoints.append(Waypoint(file_data=info.copy())) 49 | 50 | return waypoints 51 | 52 | 53 | -------------------------------------------------------------------------------- /ProjectFiles/SCARA Robot/Code/SCARA_Macro1/SCARA_Macro1.ino: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | float stepsPerDegree = 35.56; // 200 steps/rev motor, 16:1 gearbox, and quarter-step driving 5 | float stepsPerDegree3 = 11.11; // 200 steps/rev motor, 5:1 gearbox, and quarter-step driving 6 | int stepsPermm = 30.3; // Steps per mm travel for Z-axis 7 | int joint1Home = -105; // Angle from straight in degrees, CCW positive 8 | int joint2Home = -137; 9 | int joint3Home = 142; 10 | int zHome = -50; // distance in mm down from top of Z-travel 11 | 12 | Servo servo1; 13 | int servoPos; 14 | int openPos = 175; 15 | int gripPos = 10; 16 | 17 | 18 | ////// STEPPER DIRECTION AND STEP PINS: 19 | const int dirPin1 = 5; //// X on CNC shield 20 | const int stepPin1 = 2; 21 | 22 | const int dirPin2 = 6; ///// Y on CNC shield 23 | const int stepPin2 = 3; 24 | 25 | const int dirPin3 = 7; ///// Z on CNC sheild 26 | const int stepPin3 = 4; 27 | 28 | const int dirPin4 = 13; ///// A on CNC shield (put jumpers between pins) 29 | const int stepPin4 = 12; 30 | 31 | const int enablePin = 8; 32 | 33 | 34 | /////// LIMIT SWITCHES: (1 by default, 0 when pressed. Connect outer pins to input pin and ground on arduino) 35 | int limit1 = 9; // X limit on CNC sheild 36 | int limit2 = 10; // Y 37 | int limit3 = A3; // Coolant Enable 38 | int limit4 = 11; // Z 39 | 40 | int limState1; 41 | int limState2; 42 | int limState3; 43 | int limState4; 44 | 45 | long homing1 = 1; // Make (-) for CCW homing, and (+) for CW homing (also need to change increment in homing function) 46 | long homing2 = 1; 47 | long homing3 = -1; 48 | long homing4 = 1; 49 | 50 | // Define motor interface type (type 1 means an external stepper driver with Step and Direction pins) 51 | #define motorInterfaceType 1 52 | 53 | // Define steppers and the pins they use 54 | AccelStepper stepper1(motorInterfaceType, stepPin1, dirPin1);// First Joint 55 | AccelStepper stepper2(motorInterfaceType, stepPin2, dirPin2);// Second Joint 56 | AccelStepper stepper3(motorInterfaceType, stepPin3, dirPin3);//Third Joint (end effector rotation) 57 | AccelStepper stepper4(motorInterfaceType, stepPin4, dirPin4);// Z-axis 58 | 59 | 60 | ////// HOMING FUCNTION: 61 | void homing(){ 62 | 63 | limState1 = digitalRead(limit1); 64 | limState2 = digitalRead(limit2); 65 | limState3 = digitalRead(limit3); 66 | limState4 = digitalRead(limit4); 67 | 68 | while (limState1 == 1){ 69 | stepper1.moveTo(homing1); 70 | homing1++; 71 | stepper1.run(); 72 | delay(2); 73 | limState1 = digitalRead(limit1); 74 | //Serial.println(limState1); 75 | } 76 | delay (500); 77 | 78 | 79 | while (limState2 == 1){ 80 | stepper2.moveTo(homing2); 81 | homing2++; 82 | stepper2.run(); 83 | limState2 = digitalRead(limit2); 84 | delayMicroseconds(700); 85 | //Serial.println(limState2); 86 | } 87 | delay (500); 88 | 89 | 90 | while (limState3 == 1){ 91 | stepper3.moveTo(homing3); 92 | homing3--; 93 | stepper3.run(); 94 | limState3 = digitalRead(limit3); 95 | delayMicroseconds(200); 96 | //Serial.println(limState3); 97 | } 98 | delay (500); 99 | 100 | while (limState4 == 1){ 101 | stepper4.moveTo(homing4); 102 | homing4++; 103 | stepper4.run(); 104 | limState4 = digitalRead(limit4); 105 | delayMicroseconds(700); 106 | //Serial.println(limState4); 107 | } 108 | delay (500); 109 | 110 | } /// Homing function end 111 | 112 | 113 | 114 | void setup() { 115 | // put your setup code here, to run once: 116 | Serial.begin(115200); 117 | 118 | servo1.attach (A2); // Declare Servo Object (A2 = "Resume" pin) 119 | servoPos = openPos; 120 | 121 | pinMode (limit1, INPUT); 122 | pinMode (limit2, INPUT); 123 | pinMode (limit3, INPUT); 124 | pinMode (limit4, INPUT); 125 | 126 | digitalWrite(limit1, HIGH); 127 | digitalWrite(limit2, HIGH); 128 | digitalWrite(limit3, HIGH); 129 | digitalWrite(limit4, HIGH); 130 | 131 | pinMode(enablePin, OUTPUT); // CNC shield enable pin 132 | digitalWrite(enablePin, LOW); 133 | 134 | 135 | /////////// STEPPER PROPERTIES: 136 | 137 | stepper1.setMaxSpeed(14000); //// From Accelstepper: "Max possible speed depends on clock speed. Caution: Speeds that exceed the maximum speed supported by the processor may Result in non-linear accelerations and decelerations" 138 | stepper1.setAcceleration(10000); 139 | 140 | stepper2.setMaxSpeed(14000); 141 | stepper2.setAcceleration(10000); 142 | 143 | stepper3.setMaxSpeed(10000); 144 | stepper3.setAcceleration(10000); 145 | 146 | stepper4.setMaxSpeed(12000); 147 | stepper4.setAcceleration(10000); 148 | 149 | homing(); ///////////////////////// RUN ARM HOMING FUNCTION 150 | 151 | 152 | stepper1.setCurrentPosition(0); // Set current stepper position after homing and becoming straight as zero (THIS SETS MOTOR SPEED TO 0) 153 | stepper2.setCurrentPosition(0); 154 | stepper3.setCurrentPosition(0); 155 | stepper4.setCurrentPosition(0); 156 | 157 | 158 | stepper1.move(stepsPerDegree*joint1Home); // Moves joint one to straight ahead (arm will crash if signs are wrong) 159 | stepper2.move(stepsPerDegree*joint2Home); 160 | stepper3.move(stepsPerDegree3*joint3Home); 161 | stepper4.move(stepsPermm*zHome); 162 | 163 | while (stepper1.distanceToGo() != 0){ 164 | stepper1.run(); 165 | } 166 | 167 | while (stepper2.distanceToGo() != 0){ 168 | stepper2.run(); 169 | } 170 | 171 | while (stepper3.distanceToGo() != 0){ 172 | stepper3.run(); 173 | } 174 | 175 | while (stepper4.distanceToGo() != 0){ 176 | stepper4.run(); 177 | } 178 | 179 | stepper1.setCurrentPosition(0); // Set current stepper position after homing and becoming straight as zero (THIS SETS MOTOR SPEED TO 0) 180 | stepper2.setCurrentPosition(0); 181 | stepper3.setCurrentPosition(0); 182 | stepper4.setCurrentPosition(0); 183 | 184 | } // Setup End 185 | 186 | 187 | void loop() { 188 | 189 | 190 | //////////////////POSITION 1: 191 | 192 | servo1.write(gripPos); 193 | delay(800); // MAKE AS SMALL AS POSSIBLE 194 | 195 | stepper1.moveTo(60*stepsPerDegree); 196 | stepper2.moveTo(80*stepsPerDegree); 197 | stepper3.moveTo(45*stepsPerDegree3); 198 | stepper4.moveTo(-200*stepsPermm); 199 | 200 | while (stepper1.distanceToGo() != 0 || stepper2.distanceToGo() != 0 || stepper3.distanceToGo() != 0 || stepper4.distanceToGo() != 0){ 201 | if (stepper1.distanceToGo() != 0){ 202 | stepper1.run(); 203 | } 204 | 205 | if (stepper2.distanceToGo() != 0){ 206 | stepper2.run(); 207 | } 208 | 209 | if (stepper3.distanceToGo() != 0){ 210 | stepper3.run(); 211 | } 212 | 213 | if (stepper4.distanceToGo() != 0){ 214 | stepper4.run(); 215 | } 216 | } 217 | delay(100); 218 | 219 | //////////////////POSITION 2: 220 | 221 | servo1.write(openPos); 222 | delay(800); // MAKE AS SMALL AS POSSIBLE 223 | 224 | stepper1.moveTo(-80*stepsPerDegree); 225 | stepper2.moveTo(-60*stepsPerDegree); 226 | stepper3.moveTo(-45*stepsPerDegree3); 227 | stepper4.moveTo(-100*stepsPermm); 228 | 229 | while (stepper1.distanceToGo() != 0 || stepper2.distanceToGo() != 0 || stepper3.distanceToGo() != 0 || stepper4.distanceToGo() != 0){ 230 | if (stepper1.distanceToGo() != 0){ 231 | stepper1.run(); 232 | } 233 | 234 | if (stepper2.distanceToGo() != 0){ 235 | stepper2.run(); 236 | } 237 | 238 | if (stepper3.distanceToGo() != 0){ 239 | stepper3.run(); 240 | } 241 | 242 | if (stepper4.distanceToGo() != 0){ 243 | stepper4.run(); 244 | } 245 | } 246 | delay(100); 247 | 248 | //////////////////POSITION 3: 249 | stepper1.moveTo(0*stepsPerDegree); 250 | stepper2.moveTo(0*stepsPerDegree); 251 | stepper3.moveTo(0*stepsPerDegree3); 252 | stepper4.moveTo(-50*stepsPermm); 253 | 254 | servo1.write(gripPos); 255 | delay(800); // MAKE AS SMALL AS POSSIBLE 256 | while (stepper1.distanceToGo() != 0 || stepper2.distanceToGo() != 0 || stepper3.distanceToGo() != 0 || stepper4.distanceToGo() != 0){ 257 | 258 | if (stepper1.distanceToGo() != 0){ 259 | stepper1.run(); 260 | } 261 | 262 | if (stepper2.distanceToGo() != 0){ 263 | stepper2.run(); 264 | } 265 | 266 | if (stepper3.distanceToGo() != 0){ 267 | stepper3.run(); 268 | } 269 | 270 | if (stepper4.distanceToGo() != 0){ 271 | stepper4.run(); 272 | } 273 | } 274 | delay(100); 275 | 276 | } 277 | -------------------------------------------------------------------------------- /ProjectFiles/SCARA Robot/Code/SCARA_Sketch/SCARA_Sketch.ino: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | String value; 5 | const char delim = ';'; 6 | int data[5]; //Holds most recent angles for first and second joint, followed by the z-height 7 | int* angles; 8 | int* height; 9 | int* gripper; 10 | 11 | char buffer[5]; 12 | int bufferIndex; 13 | 14 | int dataIndex = 0; 15 | 16 | float stepsPerDegree = 35.56; // 200 steps/rev motor, 16:1 gearbox, and quarter-step driving 17 | float stepsPerDegree3 = 11.11; // 200 steps/rev motor, 5:1 gearbox, and quarter-step driving 18 | int stepsPermm = 30.3; // Steps per mm travel for Z-axis 19 | int joint1Home = -105; // Angle from straight in degrees, CCW positive 20 | int joint2Home = -137; 21 | int joint3Home = 142; 22 | int zHome = -50; // distance in mm down from top of Z-travel 23 | 24 | Servo servo1; 25 | int servoPos; 26 | int openPos = 175; 27 | int gripPos = 10; 28 | 29 | int limitPin = 12; 30 | 31 | 32 | ////// STEPPER DIRECTION AND STEP PINS: 33 | const int dirPin1 = 5; //// X on CNC shield 34 | const int stepPin1 = 2; 35 | 36 | const int dirPin2 = 6; ///// Y on CNC shield 37 | const int stepPin2 = 3; 38 | 39 | const int dirPin3 = 7; ///// Z on CNC sheild 40 | const int stepPin3 = 4; 41 | 42 | const int dirPin4 = 13; ///// A on CNC shield (put jumpers between pins) 43 | const int stepPin4 = 12; 44 | 45 | const int enablePin = 8; 46 | 47 | 48 | /////// LIMIT SWITCHES: (1 by default, 0 when pressed. Connect outer pins to input pin and ground on arduino) 49 | int limit1 = 9; // X limit on CNC sheild 50 | int limit2 = 10; // Y 51 | int limit3 = A3; // Coolant Enable 52 | int limit4 = 11; // Z 53 | 54 | int limState1; 55 | int limState2; 56 | int limState3; 57 | int limState4; 58 | 59 | long homing1 = 1; // Make (-) for CCW homing, and (+) for CW homing (also need to change increment in homing function) 60 | long homing2 = 1; 61 | long homing3 = -1; 62 | long homing4 = 1; 63 | 64 | bool target_updated; 65 | 66 | // Define motor interface type (type 1 means an external stepper driver with Step and Direction pins) 67 | #define motorInterfaceType 1 68 | 69 | // Define steppers and the pins they use 70 | AccelStepper stepper1(motorInterfaceType, stepPin1, dirPin1);// First Joint 71 | AccelStepper stepper2(motorInterfaceType, stepPin2, dirPin2);// Second Joint 72 | AccelStepper stepper3(motorInterfaceType, stepPin3, dirPin3);//Third Joint (end effector rotation) 73 | AccelStepper stepper4(motorInterfaceType, stepPin4, dirPin4);// Z-axis 74 | 75 | bool finished[5]; 76 | 77 | ////// HOMING FUCNTION: 78 | void homing(){ 79 | 80 | limState1 = digitalRead(limit1); 81 | limState2 = digitalRead(limit2); 82 | limState3 = digitalRead(limit3); 83 | limState4 = digitalRead(limit4); 84 | 85 | while (limState1 == 1){ 86 | stepper1.moveTo(homing1); 87 | homing1++; 88 | stepper1.run(); 89 | delay(2); 90 | limState1 = digitalRead(limit1); 91 | //Serial.println(limState1); 92 | } 93 | delay (500); 94 | 95 | 96 | while (limState2 == 1){ 97 | stepper2.moveTo(homing2); 98 | homing2++; 99 | stepper2.run(); 100 | limState2 = digitalRead(limit2); 101 | delayMicroseconds(700); 102 | //Serial.println(limState2); 103 | } 104 | delay (500); 105 | 106 | 107 | while (limState3 == 1){ 108 | stepper3.moveTo(homing3); 109 | homing3--; 110 | stepper3.run(); 111 | limState3 = digitalRead(limit3); 112 | delayMicroseconds(200); 113 | //Serial.println(limState3); 114 | } 115 | delay (500); 116 | 117 | while (limState4 == 1){ 118 | stepper4.moveTo(homing4); 119 | homing4++; 120 | stepper4.run(); 121 | limState4 = digitalRead(limit4); 122 | delayMicroseconds(700); 123 | //Serial.println(limState4); 124 | } 125 | delay (500); 126 | 127 | } /// Homing function end 128 | 129 | 130 | 131 | void setup() { 132 | // put your setup code here, to run once: 133 | Serial.begin(115200); 134 | Serial.setTimeout(1); 135 | 136 | servo1.attach (A2); // Declare Servo Object (A2 = "Resume" pin) 137 | 138 | 139 | angles = data; 140 | height = data+3; 141 | gripper = data+4; 142 | 143 | bufferIndex = 0; 144 | target_updated = false; 145 | 146 | 147 | for (int i = 0; i < sizeof(finished)/sizeof(*finished); i++) 148 | { 149 | finished[i] = true; 150 | } 151 | 152 | pinMode (limit1, INPUT); 153 | pinMode (limit2, INPUT); 154 | pinMode (limit3, INPUT); 155 | pinMode (limit4, INPUT); 156 | 157 | digitalWrite(limit1, HIGH); 158 | digitalWrite(limit2, HIGH); 159 | digitalWrite(limit3, HIGH); 160 | digitalWrite(limit4, HIGH); 161 | 162 | pinMode(enablePin, OUTPUT); // CNC shield enable pin 163 | digitalWrite(enablePin, LOW); 164 | 165 | 166 | /////////// STEPPER PROPERTIES: 167 | 168 | stepper1.setMaxSpeed(5000); //// From Accelstepper: "Max possible speed depends on clock speed. Caution: Speeds that exceed the maximum speed supported by the processor may Result in non-linear accelerations and decelerations" 169 | stepper1.setAcceleration(5000); 170 | 171 | stepper2.setMaxSpeed(5000); 172 | stepper2.setAcceleration(5000); 173 | 174 | stepper3.setMaxSpeed(8000); 175 | stepper3.setAcceleration(5000); 176 | 177 | stepper4.setMaxSpeed(3000); 178 | stepper4.setAcceleration(3000); 179 | 180 | homing(); ///////////////////////// RUN ARM HOMING FUNCTION 181 | 182 | 183 | stepper1.setCurrentPosition(0); // Set current stepper position after homing and becoming straight as zero (THIS SETS MOTOR SPEED TO 0) 184 | stepper2.setCurrentPosition(0); 185 | stepper3.setCurrentPosition(0); 186 | stepper4.setCurrentPosition(0); 187 | 188 | 189 | stepper1.move(stepsPerDegree*joint1Home); // Moves joint one to straight ahead (arm will crash if signs are wrong) 190 | stepper2.move(stepsPerDegree*joint2Home); 191 | stepper3.move(stepsPerDegree3*joint3Home); 192 | // stepper4.move(stepsPermm*zHome); 193 | 194 | while (stepper1.distanceToGo() != 0){ 195 | stepper1.run(); 196 | } 197 | 198 | while (stepper2.distanceToGo() != 0){ 199 | stepper2.run(); 200 | } 201 | 202 | while (stepper3.distanceToGo() != 0){ 203 | stepper3.run(); 204 | } 205 | /* 206 | while (stepper4.distanceToGo() != 0){ 207 | stepper4.run(); 208 | } 209 | */ 210 | stepper1.setCurrentPosition(0); // Set current stepper position after homing and becoming straight as zero (THIS SETS MOTOR SPEED TO 0) 211 | stepper2.setCurrentPosition(0); 212 | stepper3.setCurrentPosition(0); 213 | stepper4.setCurrentPosition(0); 214 | 215 | servo1.write(gripPos); 216 | delay(1000); 217 | servo1.write(openPos); 218 | delay(1000); 219 | 220 | } // Setup End 221 | 222 | void readBuffer() 223 | { 224 | if (Serial.available()) 225 | { 226 | char c = Serial.read(); 227 | buffer[bufferIndex] = c; 228 | bufferIndex++; 229 | 230 | } 231 | } 232 | 233 | void parseBuffer() 234 | { 235 | static int boundary1 = 110; 236 | static int boundary2 = 135; 237 | static int boundary3 = 120; 238 | 239 | if (buffer[bufferIndex-1] == ';') 240 | { 241 | /* 242 | for (int i = 0; i < sizeof(finished)/sizeof(*finished); i++) 243 | { 244 | finished[i] = false; 245 | }*/ 246 | 247 | target_updated = true; 248 | 249 | buffer[bufferIndex-1] = '\0'; 250 | 251 | int newData = atoi(buffer); 252 | 253 | boolean changed = (data[dataIndex] != newData); 254 | 255 | data[dataIndex] = newData; 256 | 257 | if (data[0] < -boundary1) 258 | { 259 | data[0] = -boundary1; 260 | changed = false; 261 | } 262 | 263 | else if (data[0] > boundary1) 264 | { 265 | data[0] = boundary1; 266 | changed = false; 267 | } 268 | 269 | if (data[1] < -boundary2) 270 | { 271 | data[1] = -boundary2; 272 | changed = false; 273 | } 274 | 275 | else if (data[1] > boundary2) 276 | { 277 | data[1] = boundary2; 278 | changed = false; 279 | } 280 | 281 | if (data[2] < -boundary3) 282 | { 283 | data[2] = -boundary3; 284 | changed = false; 285 | } 286 | 287 | else if (data[2] > boundary3) 288 | { 289 | data[2] = boundary3; 290 | changed = false; 291 | } 292 | 293 | if (changed) 294 | finished[dataIndex] = false; 295 | 296 | dataIndex++; 297 | dataIndex %= sizeof(data)/sizeof(*data); 298 | 299 | bufferIndex = 0; 300 | 301 | for (int j = 0; j < sizeof(buffer)/sizeof(*buffer); j++) 302 | { 303 | buffer[j] = 1; 304 | } 305 | 306 | } 307 | } 308 | 309 | 310 | 311 | void loop() { 312 | static unsigned long last_update = millis(); 313 | static bool moving = false; 314 | static unsigned long gripTimer = millis(); 315 | static unsigned long loopTimer = 0; 316 | 317 | // put your main code here, to run repeatedly: 318 | readBuffer(); 319 | parseBuffer(); 320 | 321 | if (millis() - last_update > 250) 322 | { 323 | last_update = millis(); 324 | target_updated = false; 325 | 326 | stepper1.moveTo((angles[0])*stepsPerDegree); 327 | stepper2.moveTo(-(angles[1])*stepsPerDegree); 328 | stepper3.moveTo((angles[2])*stepsPerDegree3); 329 | stepper4.moveTo(stepsPermm*-(*height)); 330 | 331 | finished[0] = (stepper1.distanceToGo() == 0); 332 | finished[1] = (stepper2.distanceToGo() == 0); 333 | finished[2] = (stepper3.distanceToGo() == 0); 334 | finished[3] = (stepper4.distanceToGo() == 0); 335 | 336 | if (finished[0] && finished[1] && finished[2] && finished[3] && finished[4]) 337 | { 338 | if (moving) 339 | Serial.println("Ready"); //Actually does something 340 | moving = false; 341 | } 342 | else 343 | moving = true; 344 | 345 | /* 346 | Serial.print(finished[0]); 347 | Serial.print(", "); 348 | Serial.print(finished[1]); 349 | Serial.print(", "); 350 | Serial.print(finished[2]); 351 | Serial.print(", "); 352 | Serial.print(finished[3]); 353 | Serial.print(", "); 354 | Serial.println(finished[4]);*/ 355 | 356 | /* 357 | Serial.print(angles[0]); 358 | Serial.print(", "); 359 | Serial.print(angles[1]); 360 | Serial.print(", "); 361 | Serial.print(angles[2]); 362 | Serial.print(", "); 363 | Serial.print(*height); 364 | Serial.print(", "); 365 | Serial.println(*gripper);*/ 366 | 367 | } 368 | 369 | if (gripTimer <= millis()) 370 | { 371 | if (!finished[0]) 372 | stepper1.run(); 373 | 374 | else if (!finished[1]) 375 | stepper2.run(); 376 | 377 | else if (!finished[2]) 378 | stepper3.run(); 379 | 380 | else if (!finished[3]) 381 | stepper4.run(); 382 | 383 | else if (!finished[4]) 384 | { 385 | if (*gripper == 0) 386 | { 387 | servo1.write(openPos); 388 | //Serial.println("Open"); 389 | } 390 | else 391 | { 392 | servo1.write(gripPos); 393 | //Serial.println("Close"); 394 | } 395 | 396 | finished[4] = true; 397 | gripTimer = millis() + 1000; 398 | } 399 | } 400 | 401 | boolean readyToRemove = digitalRead(limitPin); 402 | 403 | if (readyToRemove && loopTimer == 0) 404 | { 405 | loopTimer = millis() + 1000 * 60 * 5; 406 | } 407 | 408 | if (loopTimer != 0 && millis() > loopTimer) 409 | { 410 | loopTimer = 0; 411 | Serial.write("Replay"); 412 | } 413 | 414 | } 415 | -------------------------------------------------------------------------------- /ProjectFiles/SCARA Robot/CompoundPulley.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/SCARA Robot/CompoundPulley.STL -------------------------------------------------------------------------------- /ProjectFiles/SCARA Robot/ElectronicsBox.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/SCARA Robot/ElectronicsBox.STL -------------------------------------------------------------------------------- /ProjectFiles/SCARA Robot/ElectronicsBoxTop.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/SCARA Robot/ElectronicsBoxTop.STL -------------------------------------------------------------------------------- /ProjectFiles/SCARA Robot/ExtendedGT2_80t_TimingBeltPulley.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/SCARA Robot/ExtendedGT2_80t_TimingBeltPulley.STL -------------------------------------------------------------------------------- /ProjectFiles/SCARA Robot/FirstSegmentBottom.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/SCARA Robot/FirstSegmentBottom.STL -------------------------------------------------------------------------------- /ProjectFiles/SCARA Robot/FirstSegmentTop.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/SCARA Robot/FirstSegmentTop.STL -------------------------------------------------------------------------------- /ProjectFiles/SCARA Robot/GT2 Clip.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/SCARA Robot/GT2 Clip.STL -------------------------------------------------------------------------------- /ProjectFiles/SCARA Robot/GT2_16t_TimingBeltPulley.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/SCARA Robot/GT2_16t_TimingBeltPulley.STL -------------------------------------------------------------------------------- /ProjectFiles/SCARA Robot/GearboxSpacer.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/SCARA Robot/GearboxSpacer.STL -------------------------------------------------------------------------------- /ProjectFiles/SCARA Robot/Gripper/10mmGripperJawSpacerSolenoid.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/SCARA Robot/Gripper/10mmGripperJawSpacerSolenoid.STL -------------------------------------------------------------------------------- /ProjectFiles/SCARA Robot/Gripper/15mmGripperJawSpacerSolenoid.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/SCARA Robot/Gripper/15mmGripperJawSpacerSolenoid.STL -------------------------------------------------------------------------------- /ProjectFiles/SCARA Robot/Gripper/5mmGripperJawSpacerSolenoid.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/SCARA Robot/Gripper/5mmGripperJawSpacerSolenoid.STL -------------------------------------------------------------------------------- /ProjectFiles/SCARA Robot/Gripper/5x11x4GT2Pulley.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/SCARA Robot/Gripper/5x11x4GT2Pulley.STL -------------------------------------------------------------------------------- /ProjectFiles/SCARA Robot/Gripper/ParallelGripDynamicJaw.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/SCARA Robot/Gripper/ParallelGripDynamicJaw.STL -------------------------------------------------------------------------------- /ProjectFiles/SCARA Robot/Gripper/ParallelServoGripBody.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/SCARA Robot/Gripper/ParallelServoGripBody.STL -------------------------------------------------------------------------------- /ProjectFiles/SCARA Robot/Gripper/ServoGT2Pulley.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/SCARA Robot/Gripper/ServoGT2Pulley.STL -------------------------------------------------------------------------------- /ProjectFiles/SCARA Robot/LastJointShaftCollar.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/SCARA Robot/LastJointShaftCollar.STL -------------------------------------------------------------------------------- /ProjectFiles/SCARA Robot/RaisedBearingTop5to1LastSegment.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/SCARA Robot/RaisedBearingTop5to1LastSegment.STL -------------------------------------------------------------------------------- /ProjectFiles/SCARA Robot/SOLIDWORKS Files/SCARA_V2-Assem.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/SCARA Robot/SOLIDWORKS Files/SCARA_V2-Assem.zip -------------------------------------------------------------------------------- /ProjectFiles/SCARA Robot/SecondBottomSegmentV3.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/SCARA Robot/SecondBottomSegmentV3.STL -------------------------------------------------------------------------------- /ProjectFiles/SCARA Robot/ServoGT2Pulley.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/SCARA Robot/ServoGT2Pulley.STL -------------------------------------------------------------------------------- /ProjectFiles/SCARA Robot/Short-Flat_16t_TimingBeltPulley.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/SCARA Robot/Short-Flat_16t_TimingBeltPulley.STL -------------------------------------------------------------------------------- /ProjectFiles/SCARA Robot/ShortD-ShaftCollar.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/SCARA Robot/ShortD-ShaftCollar.STL -------------------------------------------------------------------------------- /ProjectFiles/SCARA Robot/V-WheelRollerPlate.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/SCARA Robot/V-WheelRollerPlate.STL -------------------------------------------------------------------------------- /ProjectFiles/SCARA Robot/VwheelSpacer.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/SCARA Robot/VwheelSpacer.STL -------------------------------------------------------------------------------- /ProjectFiles/SCARA Robot/WireShroud.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/SCARA Robot/WireShroud.STL -------------------------------------------------------------------------------- /ProjectFiles/SCARA Robot/Z-AxisPulley.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/SCARA Robot/Z-AxisPulley.STL -------------------------------------------------------------------------------- /ProjectFiles/SCARA Robot/Z-axisGearbox.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/SCARA Robot/Z-axisGearbox.STL -------------------------------------------------------------------------------- /ProjectFiles/SCARA Robot/z-IdlerMount.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/SCARA Robot/z-IdlerMount.STL -------------------------------------------------------------------------------- /ProjectFiles/ServoArmV2/Base.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/ServoArmV2/Base.STL -------------------------------------------------------------------------------- /ProjectFiles/ServoArmV2/CableManagmentClip.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/ServoArmV2/CableManagmentClip.STL -------------------------------------------------------------------------------- /ProjectFiles/ServoArmV2/Compliant Gripper/CompliantFinger.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/ServoArmV2/Compliant Gripper/CompliantFinger.STL -------------------------------------------------------------------------------- /ProjectFiles/ServoArmV2/Compliant Gripper/CompliantGripperBody.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/ServoArmV2/Compliant Gripper/CompliantGripperBody.STL -------------------------------------------------------------------------------- /ProjectFiles/ServoArmV2/Compliant Gripper/CompliantGripperBodyBoss.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/ServoArmV2/Compliant Gripper/CompliantGripperBodyBoss.STL -------------------------------------------------------------------------------- /ProjectFiles/ServoArmV2/Compliant Gripper/CompliantGripperSW/CompliantFinger.SLDPRT: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/ServoArmV2/Compliant Gripper/CompliantGripperSW/CompliantFinger.SLDPRT -------------------------------------------------------------------------------- /ProjectFiles/ServoArmV2/Compliant Gripper/CompliantGripperSW/CompliantGripperAssem.SLDASM: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/ServoArmV2/Compliant Gripper/CompliantGripperSW/CompliantGripperAssem.SLDASM -------------------------------------------------------------------------------- /ProjectFiles/ServoArmV2/Compliant Gripper/CompliantGripperSW/CompliantGripperBody.SLDPRT: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/ServoArmV2/Compliant Gripper/CompliantGripperSW/CompliantGripperBody.SLDPRT -------------------------------------------------------------------------------- /ProjectFiles/ServoArmV2/Compliant Gripper/CompliantGripperSW/CompliantGripperBodyBoss.SLDPRT: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/ServoArmV2/Compliant Gripper/CompliantGripperSW/CompliantGripperBodyBoss.SLDPRT -------------------------------------------------------------------------------- /ProjectFiles/ServoArmV2/Compliant Gripper/CompliantGripperSW/CompliantTensionSensor.SLDPRT: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/ServoArmV2/Compliant Gripper/CompliantGripperSW/CompliantTensionSensor.SLDPRT -------------------------------------------------------------------------------- /ProjectFiles/ServoArmV2/Compliant Gripper/CompliantGripperSW/console.log: -------------------------------------------------------------------------------- 1 | Level: Info 2 | Message: DisplayVresionUpdatePage() sw3DPrintConnector undefined 3 | Source: file:///C:/Users/Isaac/AppData/Local/Temp/swcachedir/SWMarketplaceAddin/SWVersionUpdate.html?updateRequired=True&mandatory=False&newVersion=6.32.0510 4 | Line: 181 5 | ----------------------- 6 | Level: Info 7 | Message: DisplayVresionUpdatePage() sw3DPrintConnector undefined 8 | Source: file:///C:/Users/Isaac/AppData/Local/Temp/swcachedir/SWMarketplaceAddin/SWVersionUpdate.html?updateRequired=True&mandatory=False&newVersion=6.32.0510 9 | Line: 181 10 | ----------------------- 11 | Level: Info 12 | Message: DisplayVresionUpdatePage() sw3DPrintConnector undefined 13 | Source: file:///C:/Users/Isaac/AppData/Local/Temp/swcachedir/SWMarketplaceAddin/SWVersionUpdate.html?updateRequired=True&mandatory=False&newVersion=6.32.0510 14 | Line: 181 15 | ----------------------- 16 | Level: Info 17 | Message: DisplayVresionUpdatePage() sw3DPrintConnector undefined 18 | Source: file:///C:/Users/Isaac/AppData/Local/Temp/swcachedir/SWMarketplaceAddin/SWVersionUpdate.html?updateRequired=True&mandatory=False&newVersion=6.32.0510 19 | Line: 181 20 | ----------------------- 21 | Level: Info 22 | Message: DisplayVresionUpdatePage() sw3DPrintConnector undefined 23 | Source: file:///C:/Users/Isaac/AppData/Local/Temp/swcachedir/SWMarketplaceAddin/SWVersionUpdate.html?updateRequired=True&mandatory=False&newVersion=6.32.0510 24 | Line: 181 25 | ----------------------- 26 | Level: Info 27 | Message: DisplayVresionUpdatePage() sw3DPrintConnector undefined 28 | Source: file:///C:/Users/Isaac/AppData/Local/Temp/swcachedir/SWMarketplaceAddin/SWVersionUpdate.html?updateRequired=True&mandatory=False&newVersion=6.32.0510 29 | Line: 181 30 | ----------------------- 31 | Level: Info 32 | Message: DisplayVresionUpdatePage() sw3DPrintConnector undefined 33 | Source: file:///C:/Users/Isaac/AppData/Local/Temp/swcachedir/SWMarketplaceAddin/SWVersionUpdate.html?updateRequired=True&mandatory=False&newVersion=6.32.0510 34 | Line: 181 35 | ----------------------- 36 | Level: Info 37 | Message: DisplayVresionUpdatePage() sw3DPrintConnector undefined 38 | Source: file:///C:/Users/Isaac/AppData/Local/Temp/swcachedir/SWMarketplaceAddin/SWVersionUpdate.html?updateRequired=True&mandatory=False&newVersion=6.32.0510 39 | Line: 181 40 | ----------------------- 41 | Level: Info 42 | Message: DisplayVresionUpdatePage() sw3DPrintConnector undefined 43 | Source: file:///C:/Users/Isaac/AppData/Local/Temp/swcachedir/SWMarketplaceAddin/SWVersionUpdate.html?updateRequired=True&mandatory=False&newVersion=6.32.0510 44 | Line: 181 45 | ----------------------- 46 | Level: Info 47 | Message: DisplayVresionUpdatePage() sw3DPrintConnector undefined 48 | Source: file:///C:/Users/Isaac/AppData/Local/Temp/swcachedir/SWMarketplaceAddin/SWVersionUpdate.html?updateRequired=True&mandatory=False&newVersion=6.32.0510 49 | Line: 181 50 | ----------------------- 51 | Level: Info 52 | Message: DisplayVresionUpdatePage() sw3DPrintConnector undefined 53 | Source: file:///C:/Users/Isaac/AppData/Local/Temp/swcachedir/SWMarketplaceAddin/SWVersionUpdate.html?updateRequired=True&mandatory=False&newVersion=6.32.0510 54 | Line: 181 55 | ----------------------- 56 | Level: Info 57 | Message: DisplayVresionUpdatePage() sw3DPrintConnector undefined 58 | Source: file:///C:/Users/Isaac/AppData/Local/Temp/swcachedir/SWMarketplaceAddin/SWVersionUpdate.html?updateRequired=True&mandatory=False&newVersion=6.32.0510 59 | Line: 181 60 | ----------------------- 61 | Level: Info 62 | Message: DisplayVresionUpdatePage() sw3DPrintConnector undefined 63 | Source: file:///C:/Users/Isaac/AppData/Local/Temp/swcachedir/SWMarketplaceAddin/SWVersionUpdate.html?updateRequired=True&mandatory=False&newVersion=6.32.0510 64 | Line: 181 65 | ----------------------- 66 | Level: Info 67 | Message: DisplayVresionUpdatePage() sw3DPrintConnector undefined 68 | Source: file:///C:/Users/Isaac/AppData/Local/Temp/swcachedir/SWMarketplaceAddin/SWVersionUpdate.html?updateRequired=True&mandatory=False&newVersion=6.32.0510 69 | Line: 181 70 | ----------------------- 71 | Level: Info 72 | Message: DisplayVresionUpdatePage() sw3DPrintConnector undefined 73 | Source: file:///C:/Users/Isaac/AppData/Local/Temp/swcachedir/SWMarketplaceAddin/SWVersionUpdate.html?updateRequired=True&mandatory=False&newVersion=6.32.0510 74 | Line: 181 75 | ----------------------- 76 | Level: Info 77 | Message: DisplayVresionUpdatePage() sw3DPrintConnector undefined 78 | Source: file:///C:/Users/Isaac/AppData/Local/Temp/swcachedir/SWMarketplaceAddin/SWVersionUpdate.html?updateRequired=True&mandatory=False&newVersion=6.32.0510 79 | Line: 181 80 | ----------------------- 81 | Level: Info 82 | Message: DisplayVresionUpdatePage() sw3DPrintConnector undefined 83 | Source: file:///C:/Users/Isaac/AppData/Local/Temp/swcachedir/SWMarketplaceAddin/SWVersionUpdate.html?updateRequired=True&mandatory=False&newVersion=6.32.0510 84 | Line: 181 85 | ----------------------- 86 | Level: Info 87 | Message: DisplayVresionUpdatePage() sw3DPrintConnector undefined 88 | Source: file:///C:/Users/Isaac/AppData/Local/Temp/swcachedir/SWMarketplaceAddin/SWVersionUpdate.html?updateRequired=True&mandatory=False&newVersion=6.32.0510 89 | Line: 181 90 | ----------------------- 91 | Level: Info 92 | Message: DisplayVresionUpdatePage() sw3DPrintConnector undefined 93 | Source: file:///C:/Users/Isaac/AppData/Local/Temp/swcachedir/SWMarketplaceAddin/SWVersionUpdate.html?updateRequired=True&mandatory=False&newVersion=6.32.0510 94 | Line: 181 95 | ----------------------- 96 | Level: Info 97 | Message: DisplayVresionUpdatePage() sw3DPrintConnector undefined 98 | Source: file:///C:/Users/Isaac/AppData/Local/Temp/swcachedir/SWMarketplaceAddin/SWVersionUpdate.html?updateRequired=True&mandatory=False&newVersion=6.32.0510 99 | Line: 181 100 | ----------------------- 101 | Level: Info 102 | Message: DisplayVresionUpdatePage() sw3DPrintConnector undefined 103 | Source: file:///C:/Users/Isaac/AppData/Local/Temp/swcachedir/SWMarketplaceAddin/SWVersionUpdate.html?updateRequired=True&mandatory=False&newVersion=6.32.0510 104 | Line: 181 105 | ----------------------- 106 | Level: Info 107 | Message: DisplayVresionUpdatePage() sw3DPrintConnector undefined 108 | Source: file:///C:/Users/Isaac/AppData/Local/Temp/swcachedir/SWMarketplaceAddin/SWVersionUpdate.html?updateRequired=True&mandatory=False&newVersion=6.32.0510 109 | Line: 181 110 | ----------------------- 111 | Level: Info 112 | Message: DisplayVresionUpdatePage() sw3DPrintConnector undefined 113 | Source: file:///C:/Users/Isaac/AppData/Local/Temp/swcachedir/SWMarketplaceAddin/SWVersionUpdate.html?updateRequired=True&mandatory=False&newVersion=6.32.0510 114 | Line: 181 115 | ----------------------- 116 | Level: Info 117 | Message: DisplayVresionUpdatePage() sw3DPrintConnector undefined 118 | Source: file:///C:/Users/Isaac/AppData/Local/Temp/swcachedir/SWMarketplaceAddin/SWVersionUpdate.html?updateRequired=True&mandatory=False&newVersion=6.32.0510 119 | Line: 181 120 | ----------------------- 121 | Level: Info 122 | Message: DisplayVresionUpdatePage() sw3DPrintConnector undefined 123 | Source: file:///C:/Users/Isaac/AppData/Local/Temp/swcachedir/SWMarketplaceAddin/SWVersionUpdate.html?updateRequired=True&mandatory=False&newVersion=6.32.0510 124 | Line: 181 125 | ----------------------- 126 | Level: Info 127 | Message: DisplayVresionUpdatePage() sw3DPrintConnector undefined 128 | Source: file:///C:/Users/Isaac/AppData/Local/Temp/swcachedir/SWMarketplaceAddin/SWVersionUpdate.html?updateRequired=True&mandatory=False&newVersion=6.32.0510 129 | Line: 181 130 | ----------------------- 131 | Level: Info 132 | Message: DisplayVresionUpdatePage() sw3DPrintConnector undefined 133 | Source: file:///C:/Users/Isaac/AppData/Local/Temp/swcachedir/SWMarketplaceAddin/SWVersionUpdate.html?updateRequired=True&mandatory=False&newVersion=6.32.0510 134 | Line: 181 135 | ----------------------- 136 | Level: Info 137 | Message: DisplayVresionUpdatePage() sw3DPrintConnector undefined 138 | Source: file:///C:/Users/Isaac/AppData/Local/Temp/swcachedir/SWMarketplaceAddin/SWVersionUpdate.html?updateRequired=True&mandatory=False&newVersion=6.32.0510 139 | Line: 181 140 | ----------------------- 141 | Level: Info 142 | Message: DisplayVresionUpdatePage() sw3DPrintConnector undefined 143 | Source: file:///C:/Users/Isaac/AppData/Local/Temp/swcachedir/SWMarketplaceAddin/SWVersionUpdate.html?updateRequired=True&mandatory=False&newVersion=6.32.0510 144 | Line: 181 145 | ----------------------- 146 | Level: Info 147 | Message: DisplayVresionUpdatePage() sw3DPrintConnector undefined 148 | Source: file:///C:/Users/Isaac/AppData/Local/Temp/swcachedir/SWMarketplaceAddin/SWVersionUpdate.html?updateRequired=True&mandatory=False&newVersion=6.32.0510 149 | Line: 181 150 | ----------------------- 151 | Level: Info 152 | Message: DisplayVresionUpdatePage() sw3DPrintConnector undefined 153 | Source: file:///C:/Users/Isaac/AppData/Local/Temp/swcachedir/SWMarketplaceAddin/SWVersionUpdate.html?updateRequired=True&mandatory=False&newVersion=6.32.0510 154 | Line: 181 155 | ----------------------- 156 | Level: Info 157 | Message: DisplayVresionUpdatePage() sw3DPrintConnector undefined 158 | Source: file:///C:/Users/Isaac/AppData/Local/Temp/swcachedir/SWMarketplaceAddin/SWVersionUpdate.html?updateRequired=True&mandatory=False&newVersion=6.32.0510 159 | Line: 181 160 | ----------------------- 161 | Level: Info 162 | Message: DisplayVresionUpdatePage() sw3DPrintConnector undefined 163 | Source: file:///C:/Users/Isaac/AppData/Local/Temp/swcachedir/SWMarketplaceAddin/SWVersionUpdate.html?updateRequired=True&mandatory=False&newVersion=6.32.0510 164 | Line: 181 165 | ----------------------- 166 | Level: Info 167 | Message: DisplayVresionUpdatePage() sw3DPrintConnector undefined 168 | Source: file:///C:/Users/Isaac/AppData/Local/Temp/swcachedir/SWMarketplaceAddin/SWVersionUpdate.html?updateRequired=True&mandatory=False&newVersion=6.32.0510 169 | Line: 181 170 | ----------------------- 171 | -------------------------------------------------------------------------------- /ProjectFiles/ServoArmV2/Compliant Gripper/CompliantTensionSensor.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/ServoArmV2/Compliant Gripper/CompliantTensionSensor.STL -------------------------------------------------------------------------------- /ProjectFiles/ServoArmV2/Compliant Gripper/FingerGripperTest.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/ServoArmV2/Compliant Gripper/FingerGripperTest.STL -------------------------------------------------------------------------------- /ProjectFiles/ServoArmV2/CompliantRobotGripperBody.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/ServoArmV2/CompliantRobotGripperBody.STL -------------------------------------------------------------------------------- /ProjectFiles/ServoArmV2/ConnectorGripArm.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/ServoArmV2/ConnectorGripArm.STL -------------------------------------------------------------------------------- /ProjectFiles/ServoArmV2/GT2CorrectTimingBeltPulley.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/ServoArmV2/GT2CorrectTimingBeltPulley.STL -------------------------------------------------------------------------------- /ProjectFiles/ServoArmV2/GT2TimingBeltPulley.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/ServoArmV2/GT2TimingBeltPulley.STL -------------------------------------------------------------------------------- /ProjectFiles/ServoArmV2/GT2_16t_TimingBeltPulley.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/ServoArmV2/GT2_16t_TimingBeltPulley.STL -------------------------------------------------------------------------------- /ProjectFiles/ServoArmV2/GT2_80t_TimingBeltPulley.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/ServoArmV2/GT2_80t_TimingBeltPulley.STL -------------------------------------------------------------------------------- /ProjectFiles/ServoArmV2/GantryBearingCarrier.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/ServoArmV2/GantryBearingCarrier.STL -------------------------------------------------------------------------------- /ProjectFiles/ServoArmV2/Idler Pulley Mount.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/ServoArmV2/Idler Pulley Mount.STL -------------------------------------------------------------------------------- /ProjectFiles/ServoArmV2/MainArmV3.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/ServoArmV2/MainArmV3.STL -------------------------------------------------------------------------------- /ProjectFiles/ServoArmV2/NEMA-17 Mount.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/ServoArmV2/NEMA-17 Mount.STL -------------------------------------------------------------------------------- /ProjectFiles/ServoArmV2/PivotArmGear.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/ServoArmV2/PivotArmGear.STL -------------------------------------------------------------------------------- /ProjectFiles/ServoArmV2/PivotServoGear.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/ServoArmV2/PivotServoGear.STL -------------------------------------------------------------------------------- /ProjectFiles/ServoArmV2/ShaftSupport.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/ServoArmV2/ShaftSupport.STL -------------------------------------------------------------------------------- /ProjectFiles/ServoArmV2/SpurGear.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/ServoArmV2/SpurGear.STL -------------------------------------------------------------------------------- /ProjectFiles/ServoArmV2/Turntable.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IVProjects/Engineering_Projects/41001c87456ff699e4a5235f3adeb7a5ee9ae4e3/ProjectFiles/ServoArmV2/Turntable.STL -------------------------------------------------------------------------------- /README.MD: -------------------------------------------------------------------------------- 1 | I will post part files and code related to projects I make. You can view videos of the projects here: https://www.youtube.com/channel/UCg4giik_ysj2Td49WL-DQ1g 2 | 3 | All files posted here are provided "as is". If you have any questions during the build, reach out to me and I'll do my best to help. 4 | 5 | You are free to use and modify all content posted here. 6 | 7 | Please let me know if you build one of my projects! I would love to see a photo of it. --------------------------------------------------------------------------------