Merge pull request #100 from TimEvWw/master
Reporting the use of 'alternative coordinates'pull/101/head
commit
511ed28394
|
@ -1,3 +1,3 @@
|
|||
//#define RAMPS_V14
|
||||
//#define FARMDUINO_V10
|
||||
#define FARMDUINO_V14
|
||||
#define FARMDUINO_V10
|
||||
//#define FARMDUINO_V14
|
||||
|
|
|
@ -28,6 +28,10 @@
|
|||
const char COMM_REPORT_HOMED_Y[4] = { 'R', '1', '2', '\0' };
|
||||
const char COMM_REPORT_HOMED_Z[4] = { 'R', '1', '3', '\0' };
|
||||
|
||||
const char COMM_REPORT_COORD_CHANGED_X[4] = { 'R', '1', '5', '\0' };
|
||||
const char COMM_REPORT_COORD_CHANGED_Y[4] = { 'R', '1', '6', '\0' };
|
||||
const char COMM_REPORT_COORD_CHANGED_Z[4] = { 'R', '1', '7', '\0' };
|
||||
|
||||
const char COMM_REPORT_TIMEOUT_X[4] = { 'R', '7', '1', '\0' };
|
||||
const char COMM_REPORT_TIMEOUT_Y[4] = { 'R', '7', '2', '\0' };
|
||||
const char COMM_REPORT_TIMEOUT_Z[4] = { 'R', '7', '3', '\0' };
|
||||
|
|
|
@ -24,8 +24,8 @@ G00Handler::G00Handler()
|
|||
|
||||
int G00Handler::execute(Command *command)
|
||||
{
|
||||
/*
|
||||
Serial.print("G00 was here\r\n");
|
||||
|
||||
/* Serial.print("G00 was here\r\n");
|
||||
|
||||
Serial.print("R99");
|
||||
Serial.print(" X ");
|
||||
|
@ -40,8 +40,8 @@ int G00Handler::execute(Command *command)
|
|||
Serial.print(command->getB());
|
||||
Serial.print(" C ");
|
||||
Serial.print(command->getC());
|
||||
Serial.print("\r\n");
|
||||
*/
|
||||
Serial.print("\r\n");*/
|
||||
|
||||
|
||||
StepperControl::getInstance()->moveToCoords(
|
||||
command->getX(), command->getY(), command->getZ(),
|
||||
|
|
|
@ -308,11 +308,31 @@ int StepperControl::moveToCoords(double xDestScaled, double yDestScaled, double
|
|||
motorLastPosition[2] = currentPoint[2];
|
||||
|
||||
// Load coordinates into motor control
|
||||
// Report back coordinates if target coordinates changed
|
||||
|
||||
axisX.loadCoordinates(currentPoint[0], destinationPoint[0], xHome);
|
||||
axisY.loadCoordinates(currentPoint[1], destinationPoint[1], yHome);
|
||||
axisZ.loadCoordinates(currentPoint[2], destinationPoint[2], zHome);
|
||||
if (axisX.loadCoordinates(currentPoint[0], destinationPoint[0], xHome))
|
||||
{
|
||||
Serial.print(COMM_REPORT_COORD_CHANGED_X);
|
||||
Serial.print(" X");
|
||||
Serial.print(axisX.destinationPosition() / stepsPerMm[0]);
|
||||
CurrentState::getInstance()->printQAndNewLine();
|
||||
}
|
||||
|
||||
if (axisY.loadCoordinates(currentPoint[1], destinationPoint[1], yHome))
|
||||
{
|
||||
Serial.print(COMM_REPORT_COORD_CHANGED_Y);
|
||||
Serial.print(" Y");
|
||||
Serial.print(axisY.destinationPosition() / stepsPerMm[1]);
|
||||
CurrentState::getInstance()->printQAndNewLine();
|
||||
}
|
||||
|
||||
if (axisZ.loadCoordinates(currentPoint[2], destinationPoint[2], zHome))
|
||||
{
|
||||
Serial.print(COMM_REPORT_COORD_CHANGED_Z);
|
||||
Serial.print(" Z");
|
||||
Serial.print(axisZ.destinationPosition() / stepsPerMm[2]);
|
||||
CurrentState::getInstance()->printQAndNewLine();
|
||||
}
|
||||
// Prepare for movement
|
||||
|
||||
axisX.movementStarted = false;
|
||||
|
@ -1303,9 +1323,9 @@ void StepperControl::loadMotorSettings()
|
|||
|
||||
CurrentState::getInstance()->setStepsPerMm(stepsPerMm[0], stepsPerMm[1], stepsPerMm[2]);
|
||||
|
||||
axisX.loadMotorSettings(speedMax[0], speedMin[0], speedHome[0], stepsAcc[0], timeOut[0], homeIsUp[0], motorInv[0], endStInv[0], endStInv2[0], MOVEMENT_INTERRUPT_SPEED, motor2Enbl[0], motor2Inv[0], endStEnbl[0], motorStopAtHome[0], motorMaxSize[0], motorStopAtMax[0]);
|
||||
axisY.loadMotorSettings(speedMax[1], speedMin[1], speedHome[1], stepsAcc[1], timeOut[1], homeIsUp[1], motorInv[1], endStInv[1], endStInv2[1], MOVEMENT_INTERRUPT_SPEED, motor2Enbl[1], motor2Inv[1], endStEnbl[1], motorStopAtHome[1], motorMaxSize[1], motorStopAtMax[1]);
|
||||
axisZ.loadMotorSettings(speedMax[2], speedMin[2], speedHome[2], stepsAcc[2], timeOut[2], homeIsUp[2], motorInv[2], endStInv[2], endStInv2[2], MOVEMENT_INTERRUPT_SPEED, motor2Enbl[2], motor2Inv[2], endStEnbl[2], motorStopAtHome[2], motorMaxSize[2], motorStopAtMax[2]);
|
||||
axisX.loadMotorSettings(speedMax[0], speedMin[0], speedHome[0], stepsAcc[0], timeOut[0], homeIsUp[0], motorInv[0], endStInv[0], endStInv2[0], MOVEMENT_INTERRUPT_SPEED, motor2Enbl[0], motor2Inv[0], endStEnbl[0], motorStopAtHome[0], motorMaxSize[0] *= stepsPerMm[0], motorStopAtMax[0]);
|
||||
axisY.loadMotorSettings(speedMax[1], speedMin[1], speedHome[1], stepsAcc[1], timeOut[1], homeIsUp[1], motorInv[1], endStInv[1], endStInv2[1], MOVEMENT_INTERRUPT_SPEED, motor2Enbl[1], motor2Inv[1], endStEnbl[1], motorStopAtHome[1], motorMaxSize[1] *= stepsPerMm[1], motorStopAtMax[1]);
|
||||
axisZ.loadMotorSettings(speedMax[2], speedMin[2], speedHome[2], stepsAcc[2], timeOut[2], homeIsUp[2], motorInv[2], endStInv[2], endStInv2[2], MOVEMENT_INTERRUPT_SPEED, motor2Enbl[2], motor2Inv[2], endStEnbl[2], motorStopAtHome[2], motorMaxSize[2] *= stepsPerMm[2], motorStopAtMax[2]);
|
||||
|
||||
primeMotors();
|
||||
}
|
||||
|
|
|
@ -445,7 +445,7 @@ void StepperControlAxis::loadMotorSettings(
|
|||
|
||||
}
|
||||
|
||||
void StepperControlAxis::loadCoordinates(long sourcePoint, long destinationPoint, bool home)
|
||||
bool StepperControlAxis::loadCoordinates(long sourcePoint, long destinationPoint, bool home)
|
||||
{
|
||||
|
||||
coordSourcePoint = sourcePoint;
|
||||
|
@ -453,6 +453,8 @@ void StepperControlAxis::loadCoordinates(long sourcePoint, long destinationPoint
|
|||
coordDestinationPoint = destinationPoint;
|
||||
coordHomeAxis = home;
|
||||
|
||||
bool changed = false;
|
||||
|
||||
// Limit normal movement to the home position
|
||||
|
||||
if (motorStopAtHome)
|
||||
|
@ -460,11 +462,13 @@ void StepperControlAxis::loadCoordinates(long sourcePoint, long destinationPoint
|
|||
if (!motorHomeIsUp && coordDestinationPoint < 0)
|
||||
{
|
||||
coordDestinationPoint = 0;
|
||||
changed = true;
|
||||
}
|
||||
|
||||
if (motorHomeIsUp && coordDestinationPoint > 0)
|
||||
{
|
||||
coordDestinationPoint = 0;
|
||||
changed = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -476,10 +480,12 @@ void StepperControlAxis::loadCoordinates(long sourcePoint, long destinationPoint
|
|||
if (coordDestinationPoint < 0)
|
||||
{
|
||||
coordDestinationPoint = -abs(motorMaxSize);
|
||||
changed = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
coordDestinationPoint = abs(motorMaxSize);
|
||||
changed = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -487,6 +493,8 @@ void StepperControlAxis::loadCoordinates(long sourcePoint, long destinationPoint
|
|||
// Initialize movement variables
|
||||
moveTicks = 0;
|
||||
axisActive = true;
|
||||
|
||||
return changed;
|
||||
}
|
||||
|
||||
void StepperControlAxis::enableMotor()
|
||||
|
@ -673,6 +681,11 @@ void StepperControlAxis::setCurrentPosition(long newPos)
|
|||
coordCurrentPoint = newPos;
|
||||
}
|
||||
|
||||
long StepperControlAxis::destinationPosition()
|
||||
{
|
||||
return coordDestinationPoint;
|
||||
}
|
||||
|
||||
void StepperControlAxis::setMaxSpeed(long speed)
|
||||
{
|
||||
motorSpeedMax = speed;
|
||||
|
|
|
@ -25,7 +25,7 @@ public:
|
|||
|
||||
void loadPinNumbers(int step, int dir, int enable, int min, int max, int step2, int dir2, int enable2);
|
||||
void loadMotorSettings(long speedMax, long speedMin, long speedHome, long stepsAcc, long timeOut, bool homeIsUp, bool motorInv, bool endStInv, bool endStInv2, long interruptSpeed, bool motor2Enbl, bool motor2Inv, bool endStEnbl, bool stopAtHome, long maxSize, bool stopAtMax);
|
||||
void loadCoordinates(long sourcePoint, long destinationPoint, bool home);
|
||||
bool loadCoordinates(long sourcePoint, long destinationPoint, bool home);
|
||||
void setMaxSpeed(long speed);
|
||||
|
||||
void enableMotor();
|
||||
|
@ -51,6 +51,7 @@ public:
|
|||
|
||||
long currentPosition();
|
||||
void setCurrentPosition(long newPos);
|
||||
long destinationPosition();
|
||||
|
||||
void setStepAxis();
|
||||
void setMotorStep();
|
||||
|
|
|
@ -47,10 +47,10 @@
|
|||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<AdditionalIncludeDirectories>$(ProjectDir)..\..\..\..\AppData\Local\arduino15\packages\arduino\hardware\avr\1.6.19\libraries\SPI\src;$(ProjectDir)..\..\..\..\AppData\Local\arduino15\packages\arduino\hardware\avr\1.6.19\libraries\EEPROM\src;$(ProjectDir)..\..\..\..\..\..\Program Files (x86)\Arduino\libraries\Servo\src;$(ProjectDir)..\..\..\..\..\..\Program Files (x86)\Arduino\libraries;$(ProjectDir)..\..\..\..\AppData\Local\arduino15\packages\arduino\hardware\avr\1.6.19\libraries;$(ProjectDir)..\..\..\..\Documents\Arduino\libraries;$(ProjectDir)..\..\..\..\AppData\Local\arduino15\packages\arduino\hardware\avr\1.6.19\cores\arduino;$(ProjectDir)..\..\..\..\AppData\Local\arduino15\packages\arduino\hardware\avr\1.6.19\variants\mega;$(ProjectDir)..\src;$(ProjectDir)..\..\..\..\AppData\Local\arduino15\packages\arduino\tools\avr-gcc\4.9.2-atmel3.5.4-arduino2\avr\include\;$(ProjectDir)..\..\..\..\AppData\Local\arduino15\packages\arduino\tools\avr-gcc\4.9.2-atmel3.5.4-arduino2\avr\include\avr\;$(ProjectDir)..\..\..\..\AppData\Local\arduino15\packages\arduino\tools\avr-gcc\4.9.2-atmel3.5.4-arduino2\lib\gcc\avr\4.8.1\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>$(ProjectDir)..\src;$(ProjectDir)..\..\..\..\AppData\Local\arduino15\packages\arduino\hardware\avr\1.6.19\libraries\SPI\src;$(ProjectDir)..\..\..\..\AppData\Local\arduino15\packages\arduino\hardware\avr\1.6.19\libraries\EEPROM\src;$(ProjectDir)..\..\..\..\..\..\Program Files (x86)\Arduino\libraries\Servo\src;$(ProjectDir)..\..\..\..\..\..\Program Files (x86)\Arduino\libraries;$(ProjectDir)..\..\..\..\AppData\Local\arduino15\packages\arduino\hardware\avr\1.6.19\libraries;$(ProjectDir)..\..\..\..\Documents\Arduino\libraries;$(ProjectDir)..\..\..\..\AppData\Local\arduino15\packages\arduino\hardware\avr\1.6.19\cores\arduino;$(ProjectDir)..\..\..\..\AppData\Local\arduino15\packages\arduino\hardware\avr\1.6.19\variants\mega;$(ProjectDir)..\..\..\..\AppData\Local\arduino15\packages\arduino\tools\avr-gcc\4.9.2-atmel3.5.4-arduino2\avr\include\;$(ProjectDir)..\..\..\..\AppData\Local\arduino15\packages\arduino\tools\avr-gcc\4.9.2-atmel3.5.4-arduino2\avr\include\avr\;$(ProjectDir)..\..\..\..\AppData\Local\arduino15\packages\arduino\tools\avr-gcc\4.9.2-atmel3.5.4-arduino2\lib\gcc\avr\4.8.1\include;$(ProjectDir)..\..\..\..\AppData\Local\arduino15\packages\arduino\tools\avr-gcc\4.9.2-atmel3.5.4-arduino2\lib\gcc\avr\4.9.2\include;$(ProjectDir)..\..\..\..\AppData\Local\arduino15\packages\arduino\tools\avr-gcc\4.9.2-atmel3.5.4-arduino2\lib\gcc\avr\4.9.3\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<ForcedIncludeFiles>$(ProjectDir)__vm\.src.vsarduino.h;%(ForcedIncludeFiles)</ForcedIncludeFiles>
|
||||
<IgnoreStandardIncludePath>false</IgnoreStandardIncludePath>
|
||||
<PreprocessorDefinitions>__AVR_ATmega2560__;_VMDEBUG=1;F_CPU=16000000L;ARDUINO=10802;ARDUINO_AVR_MEGA2560;ARDUINO_ARCH_AVR;__cplusplus=201103L;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>__AVR_ATmega2560__;_VMDEBUG=1;F_CPU=16000000L;ARDUINO=10802;ARDUINO_AVR_MEGA2560;ARDUINO_ARCH_AVR;__cplusplus=201103L;_VMICRO_INTELLISENSE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
|
@ -178,7 +178,7 @@
|
|||
</ImportGroup>
|
||||
<ProjectExtensions>
|
||||
<VisualStudio>
|
||||
<UserProperties vm.programmer_name="avrisp" arduino.upload.port="COM4" />
|
||||
<UserProperties vm.programmer_name="avrisp" arduino.upload.port="COM6" />
|
||||
</VisualStudio>
|
||||
</ProjectExtensions>
|
||||
</Project>
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup />
|
||||
</Project>
|
Loading…
Reference in New Issue