diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..aca1b21 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.directory +*.fcstd1 diff --git a/3D/3d_print/Affordable_Rock_Tumbler.zip b/3D/3d_print/Affordable_Rock_Tumbler.zip new file mode 100644 index 0000000..bb666b0 Binary files /dev/null and b/3D/3d_print/Affordable_Rock_Tumbler.zip differ diff --git a/3D/3d_print/big_gear.stl b/3D/3d_print/big_gear.stl new file mode 100644 index 0000000..b8d964c Binary files /dev/null and b/3D/3d_print/big_gear.stl differ diff --git a/3D/3d_print/small_gear.stl b/3D/3d_print/small_gear.stl new file mode 100644 index 0000000..83f4680 Binary files /dev/null and b/3D/3d_print/small_gear.stl differ diff --git a/3D/cnc_router/frame.dxf b/3D/cnc_router/frame.dxf new file mode 100644 index 0000000..20fa8dd --- /dev/null +++ b/3D/cnc_router/frame.dxf @@ -0,0 +1,1118 @@ + 0 +SECTION + 2 +HEADER + 9 +$ACADVER + 1 +AC1009 + 9 +$INSBASE + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$EXTMIN + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$EXTMAX + 10 +0.0 + 20 +0.0 + 30 +0.0 + 0 +ENDSEC + 0 +SECTION + 2 +TABLES + 0 +TABLE + 2 +VPORT + 70 +0 + 0 +ENDTAB + 0 +TABLE + 2 +LTYPE + 70 +1 + 0 +LTYPE + 2 +CONTINUOUS + 70 +0 + 3 +Solid line + 72 +65 + 73 +0 + 40 +0.0 + 0 +ENDTAB + 0 +TABLE + 2 +LAYER + 70 +1 + 0 +LAYER + 2 +0 + 70 +64 + 62 +7 + 6 +continuous + 0 +ENDTAB + 0 +TABLE + 2 +STYLE + 70 +1 + 0 +STYLE + 2 +STANDARD + 70 +0 + 40 +0 + 41 +1.0 + 50 +0.0 + 71 +0 + 42 +1 + 3 +ARIAL.TTF + 4 + + 0 +ENDTAB + 0 +TABLE + 2 +VIEW + 70 +0 + 0 +ENDTAB + 0 +ENDSEC + 0 +SECTION + 2 +BLOCKS + 0 +BLOCK + 8 +0 + 2 +PART__MIRRORING + 70 +0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +PART__MIRRORING + 0 +LINE + 8 +0 + 62 +0 + 10 +-97.2226706968 + 20 +0.0 + 30 +0.0 + 11 +97.2226706968 + 21 +0.0 + 31 +0.0 + 0 +ARC + 8 +0 + 62 +0 + 10 +-97.2226706968 + 20 +10.0 + 30 +0.0 + 40 +10.0 + 50 +-160.0 + 51 +-90.0 + 0 +ARC + 8 +0 + 62 +0 + 10 +97.2226706968 + 20 +10.0 + 30 +0.0 + 40 +10.0 + 50 +-90.0 + 51 +-20.0 + 0 +LINE + 8 +0 + 62 +0 + 10 +-116.293852416 + 20 +33.1595971335 + 30 +0.0 + 11 +-106.619596905 + 21 +6.57979856674 + 31 +0.0 + 0 +LINE + 8 +0 + 62 +0 + 10 +106.619596905 + 20 +6.57979856674 + 30 +0.0 + 11 +116.293852416 + 21 +33.1595971335 + 31 +0.0 + 0 +ARC + 8 +0 + 62 +0 + 10 +-97.5 + 20 +40.0 + 30 +0.0 + 40 +20.0 + 50 +90.0 + 51 +-160.0 + 0 +ARC + 8 +0 + 62 +0 + 10 +97.5 + 20 +40.0 + 30 +0.0 + 40 +20.0 + 50 +-20.0 + 51 +90.0 + 0 +LINE + 8 +0 + 62 +0 + 10 +97.5 + 20 +60.0 + 30 +0.0 + 11 +-97.5 + 21 +60.0 + 31 +0.0 + 0 +LINE + 8 +0 + 62 +0 + 10 +-109.863919814 + 20 +29.8786963155 + 30 +0.0 + 11 +-106.32543876 + 21 +20.1567995203 + 31 +0.0 + 0 +ARC + 8 +0 + 62 +0 + 10 +-103.769946787 + 20 +18.4918788691 + 30 +0.0 + 40 +3.05 + 50 +146.915479004 + 51 +-33.0845209958 + 0 +LINE + 8 +0 + 62 +0 + 10 +-101.214454813 + 20 +16.8269582179 + 30 +0.0 + 11 +-93.9109403057 + 21 +19.4852201043 + 31 +0.0 + 0 +ARC + 8 +0 + 62 +0 + 10 +-93.0235102459 + 20 +22.4032618944 + 30 +0.0 + 40 +3.05 + 50 +-106.915479004 + 51 +73.0845209958 + 0 +LINE + 8 +0 + 62 +0 + 10 +-92.136080186 + 20 +25.3213036845 + 30 +0.0 + 11 +-95.6745612401 + 21 +35.0432004797 + 31 +0.0 + 0 +ARC + 8 +0 + 62 +0 + 10 +-98.2300532133 + 20 +36.7081211309 + 30 +0.0 + 40 +3.05 + 50 +-33.0845209958 + 51 +146.915479004 + 0 +LINE + 8 +0 + 62 +0 + 10 +-100.785545187 + 20 +38.3730417821 + 30 +0.0 + 11 +-108.089059694 + 21 +35.7147798957 + 31 +0.0 + 0 +ARC + 8 +0 + 62 +0 + 10 +-108.976489754 + 20 +32.7967381056 + 30 +0.0 + 40 +3.05 + 50 +73.0845209958 + 51 +-106.915479004 + 0 +CIRCLE + 8 +0 + 62 +0 + 10 +-60.0 + 20 +40.0 + 30 +0.0 + 40 +11.05 + 0 +CIRCLE + 8 +0 + 62 +0 + 10 +-83.0 + 20 +30.0 + 30 +0.0 + 40 +5.25 + 0 +LINE + 8 +0 + 62 +0 + 10 +74.0 + 20 +51.5 + 30 +0.0 + 11 +74.0 + 21 +8.5 + 31 +0.0 + 0 +LINE + 8 +0 + 62 +0 + 10 +27.0 + 20 +51.5 + 30 +0.0 + 11 +74.0 + 21 +51.5 + 31 +0.0 + 0 +LINE + 8 +0 + 62 +0 + 10 +27.0 + 20 +8.5 + 30 +0.0 + 11 +27.0 + 21 +51.5 + 31 +0.0 + 0 +LINE + 8 +0 + 62 +0 + 10 +74.0 + 20 +8.5 + 30 +0.0 + 11 +27.0 + 21 +8.5 + 31 +0.0 + 0 +CIRCLE + 8 +0 + 62 +0 + 10 +10.0 + 20 +40.0 + 30 +0.0 + 40 +11.05 + 0 +LINE + 8 +0 + 62 +0 + 10 +92.136080186 + 20 +25.3213036845 + 30 +0.0 + 11 +95.6745612401 + 21 +35.0432004797 + 31 +0.0 + 0 +ARC + 8 +0 + 62 +0 + 10 +93.0235102459 + 20 +22.4032618944 + 30 +0.0 + 40 +3.05 + 50 +106.915479004 + 51 +-73.0845209958 + 0 +LINE + 8 +0 + 62 +0 + 10 +101.214454813 + 20 +16.8269582179 + 30 +0.0 + 11 +93.9109403057 + 21 +19.4852201043 + 31 +0.0 + 0 +ARC + 8 +0 + 62 +0 + 10 +103.769946787 + 20 +18.4918788691 + 30 +0.0 + 40 +3.05 + 50 +-146.915479004 + 51 +33.0845209958 + 0 +LINE + 8 +0 + 62 +0 + 10 +109.863919814 + 20 +29.8786963155 + 30 +0.0 + 11 +106.32543876 + 21 +20.1567995203 + 31 +0.0 + 0 +ARC + 8 +0 + 62 +0 + 10 +108.976489754 + 20 +32.7967381056 + 30 +0.0 + 40 +3.05 + 50 +-73.0845209958 + 51 +106.915479004 + 0 +LINE + 8 +0 + 62 +0 + 10 +100.785545187 + 20 +38.3730417821 + 30 +0.0 + 11 +108.089059694 + 21 +35.7147798957 + 31 +0.0 + 0 +ARC + 8 +0 + 62 +0 + 10 +98.2300532133 + 20 +36.7081211309 + 30 +0.0 + 40 +3.05 + 50 +33.0845209958 + 51 +-146.915479004 + 0 +CIRCLE + 8 +0 + 62 +0 + 10 +83.0 + 20 +30.0 + 30 +0.0 + 40 +5.25 + 0 +CIRCLE + 8 +0 + 62 +0 + 10 +10.0 + 20 +40.0 + 30 +0.0 + 40 +5.0 + 0 +LINE + 8 +0 + 62 +0 + 10 +32.0 + 20 +43.9 + 30 +0.0 + 11 +37.0 + 21 +43.9 + 31 +0.0 + 0 +ARC + 8 +0 + 62 +0 + 10 +37.0 + 20 +45.5 + 30 +0.0 + 40 +1.6 + 50 +-90.0 + 51 +90.0 + 0 +LINE + 8 +0 + 62 +0 + 10 +32.0 + 20 +47.1 + 30 +0.0 + 11 +37.0 + 21 +47.1 + 31 +0.0 + 0 +ARC + 8 +0 + 62 +0 + 10 +32.0 + 20 +45.5 + 30 +0.0 + 40 +1.6 + 50 +90.0 + 51 +-90.0 + 0 +LINE + 8 +0 + 62 +0 + 10 +47.5 + 20 +18.0 + 30 +0.0 + 11 +52.5 + 21 +18.0 + 31 +0.0 + 0 +ARC + 8 +0 + 62 +0 + 10 +52.5 + 20 +30.0 + 30 +0.0 + 40 +12.0 + 50 +-90.0 + 51 +90.0 + 0 +LINE + 8 +0 + 62 +0 + 10 +47.5 + 20 +42.0 + 30 +0.0 + 11 +52.5 + 21 +42.0 + 31 +0.0 + 0 +ARC + 8 +0 + 62 +0 + 10 +47.5 + 20 +30.0 + 30 +0.0 + 40 +12.0 + 50 +90.0 + 51 +-90.0 + 0 +LINE + 8 +0 + 62 +0 + 10 +63.0 + 20 +43.9 + 30 +0.0 + 11 +68.0 + 21 +43.9 + 31 +0.0 + 0 +ARC + 8 +0 + 62 +0 + 10 +68.0 + 20 +45.5 + 30 +0.0 + 40 +1.6 + 50 +-90.0 + 51 +90.0 + 0 +LINE + 8 +0 + 62 +0 + 10 +63.0 + 20 +47.1 + 30 +0.0 + 11 +68.0 + 21 +47.1 + 31 +0.0 + 0 +ARC + 8 +0 + 62 +0 + 10 +63.0 + 20 +45.5 + 30 +0.0 + 40 +1.6 + 50 +90.0 + 51 +-90.0 + 0 +CIRCLE + 8 +0 + 62 +0 + 10 +-60.0 + 20 +40.0 + 30 +0.0 + 40 +5.0 + 0 +LINE + 8 +0 + 62 +0 + 10 +32.0 + 20 +12.9 + 30 +0.0 + 11 +37.0 + 21 +12.9 + 31 +0.0 + 0 +ARC + 8 +0 + 62 +0 + 10 +37.0 + 20 +14.5 + 30 +0.0 + 40 +1.6 + 50 +-90.0 + 51 +90.0 + 0 +LINE + 8 +0 + 62 +0 + 10 +32.0 + 20 +16.1 + 30 +0.0 + 11 +37.0 + 21 +16.1 + 31 +0.0 + 0 +ARC + 8 +0 + 62 +0 + 10 +32.0 + 20 +14.5 + 30 +0.0 + 40 +1.6 + 50 +90.0 + 51 +-90.0 + 0 +LINE + 8 +0 + 62 +0 + 10 +63.0 + 20 +12.9 + 30 +0.0 + 11 +68.0 + 21 +12.9 + 31 +0.0 + 0 +ARC + 8 +0 + 62 +0 + 10 +68.0 + 20 +14.5 + 30 +0.0 + 40 +1.6 + 50 +-90.0 + 51 +90.0 + 0 +LINE + 8 +0 + 62 +0 + 10 +63.0 + 20 +16.1 + 30 +0.0 + 11 +68.0 + 21 +16.1 + 31 +0.0 + 0 +ARC + 8 +0 + 62 +0 + 10 +63.0 + 20 +14.5 + 30 +0.0 + 40 +1.6 + 50 +90.0 + 51 +-90.0 + 0 +ENDBLK + 0 +ENDSEC + 0 +SECTION + 2 +ENTITIES + 0 +INSERT + 2 +PART__MIRRORING + 8 +0 + 62 +0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 0 +ENDSEC + 0 +EOF diff --git a/3D/cnc_router/param_galaad/3mm_1d_PEHD.sta b/3D/cnc_router/param_galaad/3mm_1d_PEHD.sta new file mode 100644 index 0000000..15919e0 --- /dev/null +++ b/3D/cnc_router/param_galaad/3mm_1d_PEHD.sta @@ -0,0 +1,53 @@ +[Statistics] +MainCounterTime=0 +ActiveMainCounter=Yes +CounterName1= +ActiveCounter1=No +CounterTime1=0 +CounterName2= +ActiveCounter2=No +CounterTime2=0 +CounterName3= +ActiveCounter3=No +CounterTime3=0 +CounterName4= +ActiveCounter4=No +CounterTime4=0 +CounterName5= +ActiveCounter5=No +CounterTime5=0 + +[Plasma Nozzles] +PlasmaNozzleIgnit1=0 +PlasmaNozzleTime1=0 +PlasmaNozzleIgnit2=0 +PlasmaNozzleTime2=0 +PlasmaNozzleIgnit3=0 +PlasmaNozzleTime3=0 +PlasmaNozzleIgnit4=0 +PlasmaNozzleTime4=0 +PlasmaNozzleIgnit5=0 +PlasmaNozzleTime5=0 + +[Set #1] +SetNumber=1 + +[Tool #1] +Number=1 +ActiveTime=0 +MaxTime=0 +ActiveTrip=0 +MaxTrip=0 +ActiveDrills=0 +MaxDrills=0 + +[Tool #2] +Number=2 +ActiveTime=0 +MaxTime=0 +ActiveTrip=0 +MaxTrip=0 +ActiveDrills=0 +MaxDrills=0 + +[EOF] diff --git a/3D/cnc_router/param_galaad/3mm_1d_PEHD.too b/3D/cnc_router/param_galaad/3mm_1d_PEHD.too new file mode 100644 index 0000000..4371a28 --- /dev/null +++ b/3D/cnc_router/param_galaad/3mm_1d_PEHD.too @@ -0,0 +1,73 @@ +[Rack #1] +RackNumber=1 +RackName=Pierrick + +[Tool #1] +Number=1 +Name=PEHD +Color=0x000000 +Diameter=6 +Profile=Cylindrical +NumberOfTeeth=1 +ConicalAngle=None +ConicalMinDiam=None +RotationSpeed=13000 +Zmax=20 +FirstPlot=Undefined +FeedSpeed=1020 +AbsPlotSpeed=60 +AbsDrillSpeed=None +RelDrillSpeed=50 +UnTamping=None +ChipBreakDown=None +ChipBreakUp=None +OverDrill=0.2 +PlungeAngle=None +XOffset=0 +YOffset=0 +ZOffset=0 +AutoChange=No +AutoSensor=Yes +AutoLeaveLast=No +PeckPause=No +SpindleOnOutputs=0x00000000 +SpindleOnDelay=0 +SpindleOffOutputs=0x00000000 +SpindleOffDelay=0 +Substitute=None + +[Tool #2] +Number=2 +Name=PEHD +Color=0x000000 +Diameter=3 +Profile=Cylindrical +NumberOfTeeth=1 +ConicalAngle=None +ConicalMinDiam=None +RotationSpeed=24000 +Zmax=10 +FirstPlot=Undefined +FeedSpeed=600 +AbsPlotSpeed=60 +AbsDrillSpeed=None +RelDrillSpeed=50 +UnTamping=None +ChipBreakDown=None +ChipBreakUp=None +OverDrill=0.2 +PlungeAngle=None +XOffset=0 +YOffset=0 +ZOffset=0 +AutoChange=No +AutoSensor=Yes +AutoLeaveLast=No +PeckPause=No +SpindleOnOutputs=0x00000000 +SpindleOnDelay=0 +SpindleOffOutputs=0x00000000 +SpindleOffDelay=0 +Substitute=None + +[EOF] diff --git a/3D/cnc_router/param_galaad/6mm_1d_PEHD.sta b/3D/cnc_router/param_galaad/6mm_1d_PEHD.sta new file mode 100644 index 0000000..15919e0 --- /dev/null +++ b/3D/cnc_router/param_galaad/6mm_1d_PEHD.sta @@ -0,0 +1,53 @@ +[Statistics] +MainCounterTime=0 +ActiveMainCounter=Yes +CounterName1= +ActiveCounter1=No +CounterTime1=0 +CounterName2= +ActiveCounter2=No +CounterTime2=0 +CounterName3= +ActiveCounter3=No +CounterTime3=0 +CounterName4= +ActiveCounter4=No +CounterTime4=0 +CounterName5= +ActiveCounter5=No +CounterTime5=0 + +[Plasma Nozzles] +PlasmaNozzleIgnit1=0 +PlasmaNozzleTime1=0 +PlasmaNozzleIgnit2=0 +PlasmaNozzleTime2=0 +PlasmaNozzleIgnit3=0 +PlasmaNozzleTime3=0 +PlasmaNozzleIgnit4=0 +PlasmaNozzleTime4=0 +PlasmaNozzleIgnit5=0 +PlasmaNozzleTime5=0 + +[Set #1] +SetNumber=1 + +[Tool #1] +Number=1 +ActiveTime=0 +MaxTime=0 +ActiveTrip=0 +MaxTrip=0 +ActiveDrills=0 +MaxDrills=0 + +[Tool #2] +Number=2 +ActiveTime=0 +MaxTime=0 +ActiveTrip=0 +MaxTrip=0 +ActiveDrills=0 +MaxDrills=0 + +[EOF] diff --git a/3D/cnc_router/param_galaad/6mm_1d_PEHD.too b/3D/cnc_router/param_galaad/6mm_1d_PEHD.too new file mode 100644 index 0000000..4371a28 --- /dev/null +++ b/3D/cnc_router/param_galaad/6mm_1d_PEHD.too @@ -0,0 +1,73 @@ +[Rack #1] +RackNumber=1 +RackName=Pierrick + +[Tool #1] +Number=1 +Name=PEHD +Color=0x000000 +Diameter=6 +Profile=Cylindrical +NumberOfTeeth=1 +ConicalAngle=None +ConicalMinDiam=None +RotationSpeed=13000 +Zmax=20 +FirstPlot=Undefined +FeedSpeed=1020 +AbsPlotSpeed=60 +AbsDrillSpeed=None +RelDrillSpeed=50 +UnTamping=None +ChipBreakDown=None +ChipBreakUp=None +OverDrill=0.2 +PlungeAngle=None +XOffset=0 +YOffset=0 +ZOffset=0 +AutoChange=No +AutoSensor=Yes +AutoLeaveLast=No +PeckPause=No +SpindleOnOutputs=0x00000000 +SpindleOnDelay=0 +SpindleOffOutputs=0x00000000 +SpindleOffDelay=0 +Substitute=None + +[Tool #2] +Number=2 +Name=PEHD +Color=0x000000 +Diameter=3 +Profile=Cylindrical +NumberOfTeeth=1 +ConicalAngle=None +ConicalMinDiam=None +RotationSpeed=24000 +Zmax=10 +FirstPlot=Undefined +FeedSpeed=600 +AbsPlotSpeed=60 +AbsDrillSpeed=None +RelDrillSpeed=50 +UnTamping=None +ChipBreakDown=None +ChipBreakUp=None +OverDrill=0.2 +PlungeAngle=None +XOffset=0 +YOffset=0 +ZOffset=0 +AutoChange=No +AutoSensor=Yes +AutoLeaveLast=No +PeckPause=No +SpindleOnOutputs=0x00000000 +SpindleOnDelay=0 +SpindleOffOutputs=0x00000000 +SpindleOffDelay=0 +Substitute=None + +[EOF] diff --git a/3D/cnc_router/param_galaad/Vitesse_Fraisage.ods b/3D/cnc_router/param_galaad/Vitesse_Fraisage.ods new file mode 100644 index 0000000..029b5b7 Binary files /dev/null and b/3D/cnc_router/param_galaad/Vitesse_Fraisage.ods differ diff --git a/3D/cnc_router/param_galaad/fraissage.gal b/3D/cnc_router/param_galaad/fraissage.gal new file mode 100644 index 0000000..270431f Binary files /dev/null and b/3D/cnc_router/param_galaad/fraissage.gal differ diff --git a/3D/cnc_router/spacer.dxf b/3D/cnc_router/spacer.dxf new file mode 100644 index 0000000..5ceccb8 --- /dev/null +++ b/3D/cnc_router/spacer.dxf @@ -0,0 +1,458 @@ + 0 +SECTION + 2 +HEADER + 9 +$ACADVER + 1 +AC1009 + 9 +$INSBASE + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$EXTMIN + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$EXTMAX + 10 +0.0 + 20 +0.0 + 30 +0.0 + 0 +ENDSEC + 0 +SECTION + 2 +TABLES + 0 +TABLE + 2 +VPORT + 70 +0 + 0 +ENDTAB + 0 +TABLE + 2 +LTYPE + 70 +1 + 0 +LTYPE + 2 +CONTINUOUS + 70 +0 + 3 +Solid line + 72 +65 + 73 +0 + 40 +0.0 + 0 +ENDTAB + 0 +TABLE + 2 +LAYER + 70 +1 + 0 +LAYER + 2 +0 + 70 +64 + 62 +7 + 6 +continuous + 0 +ENDTAB + 0 +TABLE + 2 +STYLE + 70 +1 + 0 +STYLE + 2 +STANDARD + 70 +0 + 40 +0 + 41 +1.0 + 50 +0.0 + 71 +0 + 42 +1 + 3 +ARIAL.TTF + 4 + + 0 +ENDTAB + 0 +TABLE + 2 +VIEW + 70 +0 + 0 +ENDTAB + 0 +ENDSEC + 0 +SECTION + 2 +BLOCKS + 0 +BLOCK + 8 +0 + 2 +CLONE024 + 70 +0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +CLONE024 + 0 +ARC + 8 +0 + 62 +0 + 10 +-356.0 + 20 +13.05 + 30 +0.0 + 40 +3.05 + 50 +-90.0 + 51 +90.0 + 0 +LINE + 8 +0 + 62 +0 + 10 +-356.0 + 20 +9.99999999999 + 30 +0.0 + 11 +-371.0 + 21 +9.99999999999 + 31 +0.0 + 0 +LINE + 8 +0 + 62 +0 + 10 +-371.0 + 20 +9.99999999999 + 30 +0.0 + 11 +-371.0 + 21 +-10.0 + 31 +0.0 + 0 +LINE + 8 +0 + 62 +0 + 10 +-371.0 + 20 +-10.0 + 30 +0.0 + 11 +-356.0 + 21 +-10.0 + 31 +0.0 + 0 +ARC + 8 +0 + 62 +0 + 10 +-356.0 + 20 +-13.05 + 30 +0.0 + 40 +3.05 + 50 +-90.0 + 51 +90.0 + 0 +LINE + 8 +0 + 62 +0 + 10 +-356.0 + 20 +-20.0 + 30 +0.0 + 11 +-356.0 + 21 +-16.1 + 31 +0.0 + 0 +LINE + 8 +0 + 62 +0 + 10 +-356.0 + 20 +-20.0 + 30 +0.0 + 11 +-146.0 + 21 +-20.0 + 31 +0.0 + 0 +LINE + 8 +0 + 62 +0 + 10 +-146.0 + 20 +-20.0 + 30 +0.0 + 11 +-146.0 + 21 +-16.1 + 31 +0.0 + 0 +ARC + 8 +0 + 62 +0 + 10 +-146.0 + 20 +-13.05 + 30 +0.0 + 40 +3.05 + 50 +90.0 + 51 +-90.0 + 0 +LINE + 8 +0 + 62 +0 + 10 +-146.0 + 20 +-9.99999999999 + 30 +0.0 + 11 +-131.0 + 21 +-9.99999999999 + 31 +0.0 + 0 +LINE + 8 +0 + 62 +0 + 10 +-131.0 + 20 +-9.99999999999 + 30 +0.0 + 11 +-131.0 + 21 +10.0 + 31 +0.0 + 0 +LINE + 8 +0 + 62 +0 + 10 +-131.0 + 20 +10.0 + 30 +0.0 + 11 +-146.0 + 21 +10.0 + 31 +0.0 + 0 +ARC + 8 +0 + 62 +0 + 10 +-146.0 + 20 +13.05 + 30 +0.0 + 40 +3.05 + 50 +90.0 + 51 +-90.0 + 0 +LINE + 8 +0 + 62 +0 + 10 +-146.0 + 20 +16.1 + 30 +0.0 + 11 +-146.0 + 21 +20.0 + 31 +0.0 + 0 +LINE + 8 +0 + 62 +0 + 10 +-146.0 + 20 +20.0 + 30 +0.0 + 11 +-356.0 + 21 +20.0 + 31 +0.0 + 0 +LINE + 8 +0 + 62 +0 + 10 +-356.0 + 20 +16.1 + 30 +0.0 + 11 +-356.0 + 21 +20.0 + 31 +0.0 + 0 +ENDBLK + 0 +ENDSEC + 0 +SECTION + 2 +ENTITIES + 0 +INSERT + 2 +CLONE024 + 8 +0 + 62 +0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 0 +ENDSEC + 0 +EOF diff --git a/3D/polisseur.fcstd b/3D/polisseur.fcstd new file mode 100644 index 0000000..43240b0 Binary files /dev/null and b/3D/polisseur.fcstd differ diff --git a/code_polisseur/code_polisseur.ino b/code_polisseur/code_polisseur.ino new file mode 100644 index 0000000..83e38a6 --- /dev/null +++ b/code_polisseur/code_polisseur.ino @@ -0,0 +1,230 @@ +/* + + */ + +#include +#include "SevSeg.h" +#include +#include + +// PIN USAGE +#define SEVSEG_DIGIT_1 16 +#define SEVSEG_DIGIT_2 17 +#define SEVSEG_DIGIT_3 3 +#define SEVSEG_DIGIT_4 4 +#define SEVSEG_COLON 2 +#define SEVSEG_SEGMENT_A 8 +#define SEVSEG_SEGMENT_B 14 +#define SEVSEG_SEGMENT_C 6 +#define SEVSEG_SEGMENT_D A1 +#define SEVSEG_SEGMENT_E 23 +#define SEVSEG_SEGMENT_F 7 +#define SEVSEG_SEGMENT_G 5 +#define SEVSEG_SEGMENT_H 22 + +#define ROT_BUTT 11 +#define ROT_ENC_1 12 +#define ROT_ENC_2 13 + +#define STEPPER_STEP 10 +#define STEPPER_DIRECTION 0 +#define STEPPER_ENABLE A5 + + +//SETTINGS +#define SEVSEG_REFRESH 250 // Refresh rate in ms +#define SEVSEG_BRIGHTNESS 100 // 100%, full brightness +#define STEPPER_MAX_SPEED 5000 +#define STEPPER_MIN_SPEED 0 +#define STEPPER_ACCELERATION 30.0 +#define STEP_MOTOR_STEPS_PER_TURN 200 +#define STEPPER_MICROSTEP 8 + +SevSeg sevseg; //Instantiate a seven segment controller object + +// Setup a RoraryEncoder for pins 12 and 13: +RotaryEncoder encoder(ROT_ENC_1, ROT_ENC_2); + +AccelStepper stepper(1, STEPPER_STEP, STEPPER_DIRECTION); + +EveryTimer timer; + +//Global variables + +byte numDigits = 4; +byte digitPins[] = {SEVSEG_DIGIT_1, SEVSEG_DIGIT_2, + SEVSEG_DIGIT_3, SEVSEG_DIGIT_4}; +byte segmentPins[] = {SEVSEG_SEGMENT_A, SEVSEG_SEGMENT_B, + SEVSEG_SEGMENT_C, SEVSEG_SEGMENT_D, + SEVSEG_SEGMENT_E, SEVSEG_SEGMENT_F, + SEVSEG_SEGMENT_G, SEVSEG_SEGMENT_H}; +bool resistorsOnSegments = false; // 'false' means resistors are on digit pins +byte hardwareConfig = COMMON_ANODE; // See README.md for options +bool updateWithDelays = false; // Default. Recommended +bool leadingZeros = false; // Use 'true' if you'd like to keep the leading zeros +long refresh_timer = 0; + +long countdown = 0; +byte hours = 0; +byte minutes = 0; +byte seconds = 0; +int current_rpm = 0; +int new_rpm = 0; +static bool currBut = true; +byte mode = 0; + +void countdown_callback() { + if (current_rpm != 0) { + countdown--; + if (countdown < 0) { + countdown = 0; + } + hours = countdown / 3600; + minutes = (countdown / 60) % 60; + seconds = countdown % 60; + + // Update data to be displayed + if (mode == 0) { // mode 0 = display speed + digitalWrite(SEVSEG_COLON, false); + sevseg.setNumber(current_rpm); + } + else if (mode == 1) { // mode 1 = display countdown + //Blink colon each seconds + if (seconds % 2) { + digitalWrite(SEVSEG_COLON, true); + } + else { + digitalWrite(SEVSEG_COLON, false); + } + //Display HH:MM or MM:SS if there is less than 1h left + if (hours) { + sevseg.setNumber(100*hours+minutes); + } else { + sevseg.setNumber(100*minutes+seconds); + } + } + Serial.println(countdown); + } + else { + Serial.println("Pause"); + } +} + +void update_encoder() { + static long currVal = 0; + int multiplier = 10; + + encoder.tick(); + + long newVal = encoder.getPosition(); + + if (currVal != newVal) { + currVal = newVal; + if (mode == 0) { + if (current_rpm >= 500) { + multiplier = 100; + } + new_rpm += multiplier * encoder.getDirection(); + if (new_rpm < STEPPER_MIN_SPEED) { + new_rpm = STEPPER_MIN_SPEED; + } + if (new_rpm > STEPPER_MAX_SPEED) { + new_rpm = STEPPER_MAX_SPEED; + } + } + if (mode == 1) { + multiplier = 60; + if (countdown >= 3600) { + multiplier = 600; + } + countdown += multiplier * encoder.getDirection(); + if (countdown < 0) { + countdown = 0; + } + if (countdown >= 86400) { + countdown = 86399; + } + } + Serial.print("RPM: "); + Serial.print(current_rpm); + Serial.print(" | Countdown: "); + Serial.println(countdown); + } + + //Check button for mode change + bool newBut = digitalRead(ROT_BUTT); + if (newBut != currBut) { + currBut = newBut; + if (currBut) { + mode++; + } + + if (mode == 2) { + mode = 0; + } + else if (mode == 0) { + encoder.setPosition(current_rpm); + } + else if (mode == 1) { + encoder.setPosition(countdown); + } + Serial.print("Mode :"); + Serial.println(mode); + } +} + +void update_stepper() { + if (new_rpm != current_rpm) { + new_rpm = current_rpm; + stepper.setSpeed(current_rpm); + // Enable/Disable motor + if (current_rpm == 0) { + stepper.disableOutputs(); + Serial.println("Stepper : Off"); + } + else { + stepper.enableOutputs(); + Serial.println("Stepper : On"); + } + + //if Countdown = 0 => pause (no move but keep speed setting) + if (countdown != 0 and current_rpm != 0) { + stepper.runSpeed(); + } + } +} + +void setup() +{ + Serial.begin(115200); + + pinMode(ROT_BUTT, INPUT_PULLUP); + pinMode(SEVSEG_COLON, OUTPUT); + + sevseg.begin(hardwareConfig, numDigits, digitPins, segmentPins, resistorsOnSegments, updateWithDelays, leadingZeros); + sevseg.setBrightness(SEVSEG_BRIGHTNESS); + + stepper.setEnablePin(STEPPER_ENABLE); + stepper.disableOutputs(); + stepper.setMaxSpeed(STEPPER_MAX_SPEED); + stepper.setAcceleration(STEPPER_ACCELERATION); + stepper.setSpeed(0); + + timer.Every(1000, countdown_callback); +} + +void loop() +{ + update_encoder(); + + //Update countdown + timer.Update(); + + //Make the motor move + update_stepper(); + + //refresh the 7-segment display + sevseg.refreshDisplay(); +} + +