Bevel the sprockets and add reinforcement to let a bearing fit without issue.
This commit is contained in:
parent
de1ef1492b
commit
11026922ad
|
@ -25,28 +25,28 @@
|
||||||
#define MOTORA 10
|
#define MOTORA 10
|
||||||
#define MOTORB 11
|
#define MOTORB 11
|
||||||
|
|
||||||
volatile int64_t posi = 0; // specify posi as volatile
|
volatile int32_t posi = 0; // specify posi as volatile
|
||||||
const long maxTime = 100000;
|
const long maxTime = 100000;
|
||||||
const int maxRotations = 10;
|
const int32_t maxRotations = 10;
|
||||||
const int ppr = 11;
|
const int ppr = 11;
|
||||||
const float ratio = 62.0 / 1.0;
|
const float ratio = 187.0 / 3.0;
|
||||||
const int maxPulses = (int) round((float) ppr * ratio);
|
const int maxPulses = (int) round((float) ppr * ratio);
|
||||||
const int speed = 210;
|
const int speed = 255;
|
||||||
const int framesPerRotation = 18;
|
const int framesPerRotation = 18;
|
||||||
const float pulsesPerFrame = (float) maxPulses / (float) framesPerRotation;
|
const float pulsesPerFrame = (float) maxPulses / (float) framesPerRotation;
|
||||||
volatile long start = 0;
|
volatile long start = 0;
|
||||||
volatile long total;
|
volatile long total;
|
||||||
volatile bool done = false;
|
volatile bool done = false;
|
||||||
volatile bool stop = false;
|
volatile bool stop = false;
|
||||||
volatile int incoming;
|
volatile int32_t incoming;
|
||||||
volatile float rpm;
|
volatile float rpm;
|
||||||
volatile float fps;
|
volatile float fps;
|
||||||
volatile float fpsMax = -1.0;
|
volatile float fpsMax = -1.0;
|
||||||
volatile float fpsMin = 100000.0;
|
volatile float fpsMin = 100000.0;
|
||||||
volatile int rotations = 0;
|
volatile int32_t rotations = 0;
|
||||||
volatile int lastRotationPosition = 0;
|
volatile int32_t lastRotationPosition = 0;
|
||||||
volatile int lastFramePosition = 0;
|
volatile int32_t lastFramePosition = 0;
|
||||||
volatile int frames = 0;
|
volatile int32_t frames = 0;
|
||||||
|
|
||||||
float calculateFPS (long timeLength, int frames) {
|
float calculateFPS (long timeLength, int frames) {
|
||||||
return 1000.0 / ((float) timeLength / (float) frames);
|
return 1000.0 / ((float) timeLength / (float) frames);
|
||||||
|
@ -79,7 +79,7 @@ void setup() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void loop() {
|
void loop() {
|
||||||
int64_t pos;
|
int32_t pos;
|
||||||
// Read the position in an atomic block to avoid a potential
|
// Read the position in an atomic block to avoid a potential
|
||||||
// misread if the interrupt coincides with this code running
|
// misread if the interrupt coincides with this code running
|
||||||
// see: https://www.arduino.cc/reference/en/language/variables/variable-scope-qualifiers/volatile/
|
// see: https://www.arduino.cc/reference/en/language/variables/variable-scope-qualifiers/volatile/
|
||||||
|
@ -92,7 +92,10 @@ void loop() {
|
||||||
if (rotations != lastRotationPosition) {
|
if (rotations != lastRotationPosition) {
|
||||||
lastRotationPosition = rotations;
|
lastRotationPosition = rotations;
|
||||||
frames = rotations * framesPerRotation;
|
frames = rotations * framesPerRotation;
|
||||||
|
Serial.print("Rotations: ");
|
||||||
|
Serial.print(rotations);
|
||||||
|
Serial.print(" = ");
|
||||||
|
Serial.println(millis() - start);
|
||||||
}
|
}
|
||||||
frames = (int) floor((float) pos / pulsesPerFrame);
|
frames = (int) floor((float) pos / pulsesPerFrame);
|
||||||
if (frames != lastFramePosition) {
|
if (frames != lastFramePosition) {
|
||||||
|
@ -105,11 +108,11 @@ void loop() {
|
||||||
if (fps < fpsMin) {
|
if (fps < fpsMin) {
|
||||||
fpsMin = fps;
|
fpsMin = fps;
|
||||||
}
|
}
|
||||||
Serial.print("Frames: ");
|
//Serial.print("Frames: ");
|
||||||
Serial.print(frames);
|
//Serial.print(frames);
|
||||||
Serial.print(" = ");
|
//Serial.print(" = ");
|
||||||
//Serial.println(total);
|
//Serial.println(total);
|
||||||
Serial.println(fps);
|
//Serial.println(fps);
|
||||||
//Serial.print("@");
|
//Serial.print("@");
|
||||||
//Serial.println(pos);
|
//Serial.println(pos);
|
||||||
}
|
}
|
||||||
|
@ -123,7 +126,7 @@ void loop() {
|
||||||
digitalWrite(MOTORB, LOW);
|
digitalWrite(MOTORB, LOW);
|
||||||
start = millis();
|
start = millis();
|
||||||
rotations = 0;
|
rotations = 0;
|
||||||
} else if ((stop || millis() - start >= maxTime) && !done) {
|
} else if (stop && !done) {
|
||||||
digitalWrite(MOTORA, LOW);
|
digitalWrite(MOTORA, LOW);
|
||||||
digitalWrite(MOTORB, LOW);
|
digitalWrite(MOTORB, LOW);
|
||||||
//Serial.print("Final: ");
|
//Serial.print("Final: ");
|
||||||
|
|
|
@ -23,7 +23,7 @@ FrameY = 175;
|
||||||
FrameZ = -16;
|
FrameZ = -16;
|
||||||
|
|
||||||
Sprockets = 18;
|
Sprockets = 18;
|
||||||
SprocketedRollerBevel = false;
|
SprocketedRollerBevel = true;
|
||||||
SprocketedRollerModel = "gearbox_motor";
|
SprocketedRollerModel = "gearbox_motor";
|
||||||
SprocketedRollerSetScrewTop = true;
|
SprocketedRollerSetScrewTop = true;
|
||||||
SprocketedRollerSetScrewSide = false;
|
SprocketedRollerSetScrewSide = false;
|
||||||
|
@ -923,6 +923,17 @@ module sprocketed_roller_upright_solid (pos = [0, 0, 0]) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//reinforce space abover motor shaft
|
||||||
|
translate([0, 0, 4]) difference () {
|
||||||
|
cylinder(r = R(10.5), h = 9, center = true, $fn = 80);
|
||||||
|
cylinder(r = R(3), h = 9 + 1, center = true, $fn = 40);
|
||||||
|
}
|
||||||
|
|
||||||
|
//offset bearing
|
||||||
|
translate([0, 0, 8.5]) difference () {
|
||||||
|
cylinder(r = R(23), h = 2, center = true, $fn = 80);
|
||||||
|
cylinder(r = R(19.8), h = 2 + 1, center = true, $fn = 40);
|
||||||
|
}
|
||||||
|
|
||||||
//reinforce overhang
|
//reinforce overhang
|
||||||
translate([0, 0, 2.6]) difference () {
|
translate([0, 0, 2.6]) difference () {
|
||||||
|
|
Loading…
Reference in New Issue