浏览代码

Final Version

master
Flo Smilari 3 年前
父节点
当前提交
f67e26afff
共有 4 个文件被更改,包括 43 次插入39 次删除
  1. 29
    21
      Fraestisch_SFTools.ino
  2. 2
    4
      RouterElevator.cpp
  3. 11
    12
      RouterSetup.cpp
  4. 1
    2
      sloeber.ino.cpp

+ 29
- 21
Fraestisch_SFTools.ino 查看文件

//static const int MOVE_UPWARD = 1; // motor rotation clock wise //static const int MOVE_UPWARD = 1; // motor rotation clock wise


int intermediateState = 0; int intermediateState = 0;
bool isPowerOn = true;


ExEzButton RedButton(RedBtn_Pin, false, 2000); ExEzButton RedButton(RedBtn_Pin, false, 2000);
ExEzButton GreenButton(GreenBtn_Pin, false, 2000); ExEzButton GreenButton(GreenBtn_Pin, false, 2000);
int displaycounter = 0; // Store current counter value int displaycounter = 0; // Store current counter value
volatile boolean TurnDetected; volatile boolean TurnDetected;


void printStatus(String actualStatus) {
if (!oldStatus.equals(actualStatus)) {
Serial.println(actualStatus);
oldStatus = actualStatus;
}
}
//void printStatus(String actualStatus) {
// if (!oldStatus.equals(actualStatus)) {
// Serial.println(actualStatus);
// oldStatus = actualStatus;
// }
//}


//********************************** //**********************************
//*** Limit switch interrupt routine //*** Limit switch interrupt routine
//***************************************************************************************************** //*****************************************************************************************************
void Initialize() { void Initialize() {
Router_Setup.readFromEEPROM(); Router_Setup.readFromEEPROM();
Router_Setup.printValues();
// Router_Setup.printValues();


Display.showInitialization(); Display.showInitialization();
//attach an interrupt to the IO pin of the limit switch and specify the handler function //attach an interrupt to the IO pin of the limit switch and specify the handler function
Stepper.startAsService(0); Stepper.startAsService(0);
} }


if (Router_Setup.isToolChangOnPowerOn()) {
if (isPowerOn && Router_Setup.isToolChangOnPowerOn()) {
SetActualStatus(TOOL_CHANGE); SetActualStatus(TOOL_CHANGE);
isPowerOn = false;
} else { } else {
SetActualStatus(IDLE); SetActualStatus(IDLE);
} }
break; break;


case TOOL_CHANGE: case TOOL_CHANGE:
printStatus("TOOL_CHANGE");
//printStatus("TOOL_CHANGE");
BlueButton.loop(); BlueButton.loop();
RotaryControler.loop(); RotaryControler.loop();
originStatus = TOOL_CHANGE; originStatus = TOOL_CHANGE;
break; break;


case CONFIGURATION: case CONFIGURATION:
printStatus("CONFIGURATION");
//printStatus("CONFIGURATION");
BlueButton.loop(); BlueButton.loop();
RotaryControler.loop(); RotaryControler.loop();
Router_Setup.initialize(); Router_Setup.initialize();
break; break;


case NULLING: case NULLING:
printStatus("NULLING");
//printStatus("NULLING");
RedButton.loop(); RedButton.loop();
if (RedButton.isPressed()) { if (RedButton.isPressed()) {
Router_Elevator.setZeroPosition(); Router_Elevator.setZeroPosition();
RedButton.loop(); RedButton.loop();
originStatus = NULLING_TLS; originStatus = NULLING_TLS;
if (intermediateState == 0) { if (intermediateState == 0) {
printStatus("NULLING_TLS,0");
//printStatus("NULLING_TLS,0");
//Move elevator to lowest point (lower limit switch triggers) //Move elevator to lowest point (lower limit switch triggers)
Router_Elevator.moveToLowerLimitSwitch(); Router_Elevator.moveToLowerLimitSwitch();
SetActualStatus(MOVING_ELEVATOR); SetActualStatus(MOVING_ELEVATOR);
intermediateState = 1; intermediateState = 1;
} else if (intermediateState == 1) { } else if (intermediateState == 1) {
printStatus("NULLING_TLS,1");
//printStatus("NULLING_TLS,1");
if (RedButton.isPressed()) { if (RedButton.isPressed()) {
//Move elevator until it touch the TLS (WLS_PIN goes HIGH) //Move elevator until it touch the TLS (WLS_PIN goes HIGH)
Router_Elevator.moveToUpperLimitSwitch(); Router_Elevator.moveToUpperLimitSwitch();
intermediateState = 2; intermediateState = 2;
} }
} else if (intermediateState == 2) { } else if (intermediateState == 2) {
printStatus("NULLING_TLS,2");
//printStatus("NULLING_TLS,2");
//Move elevator back about toolLenghtSensorHeight (will be the 0-Position) //Move elevator back about toolLenghtSensorHeight (will be the 0-Position)
Router_Elevator.clearLimitSwitch(); Router_Elevator.clearLimitSwitch();
Router_Elevator.moveRelativeInMillimeters(Router_Setup.getToolLenghtSensorHeight() * MOVE_DOWNWARD); Router_Elevator.moveRelativeInMillimeters(Router_Setup.getToolLenghtSensorHeight() * MOVE_DOWNWARD);
Serial.println(String(Router_Setup.getToolLenghtSensorHeight() * MOVE_DOWNWARD, 2));
//Serial.println(String(Router_Setup.getToolLenghtSensorHeight() * MOVE_DOWNWARD, 2));
SetActualStatus(MOVING_ELEVATOR); SetActualStatus(MOVING_ELEVATOR);
intermediateState = 3; intermediateState = 3;
} else { // nullingTLS_intermediateState is 3 } else { // nullingTLS_intermediateState is 3
printStatus("NULLING_TLS,3");
//printStatus("NULLING_TLS,3");
//Set the 0-Position as actual position //Set the 0-Position as actual position
Router_Elevator.setZeroPosition(); Router_Elevator.setZeroPosition();
SetActualStatus(IDLE); SetActualStatus(IDLE);
break; break;


case IDLE: case IDLE:
printStatus("IDLE");
//printStatus("IDLE");
RedButton.loop(); RedButton.loop();
GreenButton.loop(); GreenButton.loop();
BlueButton.loop(); BlueButton.loop();
RotaryControler.loop(); RotaryControler.loop();
originStatus = IDLE; originStatus = IDLE;
if (RotaryControler.isSwitchLongPressed()) {
SetActualStatus(CONFIGURATION);
}
if (RotaryControler.isSwitchPressed()) { if (RotaryControler.isSwitchPressed()) {
Router_Elevator.toggleMode(); Router_Elevator.toggleMode();
} }
} else if (GreenButton.isPressed()) { } else if (GreenButton.isPressed()) {
Router_Elevator.moveToTarget(); Router_Elevator.moveToTarget();
SetActualStatus(MOVING_ELEVATOR); SetActualStatus(MOVING_ELEVATOR);
} else if (RedButton.isPressed()) {
Router_Elevator.moveToParkPosition();
SetActualStatus(MOVING_ELEVATOR);
} }
break; break;


case DIVING: case DIVING:
printStatus("DIVING");
//printStatus("DIVING");
GreenButton.loop(); GreenButton.loop();
originStatus = DIVING; originStatus = DIVING;
Router_Elevator.setMaxDiveDistance(); Router_Elevator.setMaxDiveDistance();
if (GreenButton.isPressed()) { if (GreenButton.isPressed()) {
Serial.println("GB pressed");
//Serial.println("GB pressed");
if (!Router_Elevator.maxDiveDistanceReached()) { if (!Router_Elevator.maxDiveDistanceReached()) {
Router_Elevator.incrementDiveDistance(); Router_Elevator.incrementDiveDistance();
Router_Elevator.moveToTarget(); Router_Elevator.moveToTarget();
break; break;


case MOVING_ELEVATOR: case MOVING_ELEVATOR:
printStatus("MOVING_ELEVATOR");
//printStatus("MOVING_ELEVATOR");
if (Router_Elevator.isLimitSwitchTriggerd()) { if (Router_Elevator.isLimitSwitchTriggerd()) {
delay(200); delay(200);
SetActualStatus(RELEASE_SWITCH); SetActualStatus(RELEASE_SWITCH);
break; break;


case RELEASE_SWITCH: case RELEASE_SWITCH:
printStatus("RELEASE_SWITCH");
//printStatus("RELEASE_SWITCH");
if (Router_Elevator.isLimitSwitchTriggerd()) { if (Router_Elevator.isLimitSwitchTriggerd()) {
Router_Elevator.tryReleaseLimitSwitch(); Router_Elevator.tryReleaseLimitSwitch();
} else { } else {

+ 2
- 4
RouterElevator.cpp 查看文件

bool RouterElevator::isWLSTriggerd() { bool RouterElevator::isWLSTriggerd() {
if (WlsDetect.isConnected()) { if (WlsDetect.isConnected()) {
if (Wls.isPlugged()) { if (Wls.isPlugged()) {
Serial.println("The Tool is away from WLS");
// Serial.println("The Tool is away from WLS");
Stepper.clearLimitSwitchActive(); Stepper.clearLimitSwitchActive();
return false; return false;
} else if (Wls.isUnplugged()) { } else if (Wls.isUnplugged()) {
Serial.println("The Tool touched the WLS");
// Serial.println("The Tool touched the WLS");
Stepper.setLimitSwitchActive(Stepper.LIMIT_SWITCH_COMBINED_BEGIN_AND_END); Stepper.setLimitSwitchActive(Stepper.LIMIT_SWITCH_COMBINED_BEGIN_AND_END);
return true; return true;
} }
void RouterElevator::setMaxDiveDistance() { void RouterElevator::setMaxDiveDistance() {
if (isDoDiveInitialization()) { if (isDoDiveInitialization()) {
Serial.println("setMaxDiveDistance");
maxDiveDistance = targetDistance; maxDiveDistance = targetDistance;
targetDistance = 0.0; targetDistance = 0.0;
display.setDistanceValue(targetDistance); display.setDistanceValue(targetDistance);
bool RouterElevator::incrementDiveDistance() { bool RouterElevator::incrementDiveDistance() {
float increment = Router_Setup.getLevelHeightDiving(); float increment = Router_Setup.getLevelHeightDiving();
targetDistance = min(maxDiveDistance, targetDistance + increment); targetDistance = min(maxDiveDistance, targetDistance + increment);
Serial.println("targetDistance: " + String(targetDistance, 2));
display.setMaxDiveDistance(maxDiveDistance); display.setMaxDiveDistance(maxDiveDistance);
display.setDistanceValue(targetDistance); display.setDistanceValue(targetDistance);
display.setLevelHeightDiving(Router_Setup.getLevelHeightDiving()); display.setLevelHeightDiving(Router_Setup.getLevelHeightDiving());

+ 11
- 12
RouterSetup.cpp 查看文件

eeprom.end(); eeprom.end();
} }
void RouterSetup::printValues() {
Serial.print(String(SPEED) + ": " + String(getSpeed(), 1) + ", ");
Serial.print(String(ACCELERATION) + ": " + String(getAcceleration(), 1) + ", ");
Serial.print(String(STEPSPERREV) + ": " + String(getStepsPerRev()) + ", ");
Serial.print(String(PITCH) + ": " + String(getPitch(), 1) + ", ");
Serial.print(String(TOOLLENGHTSNHT) + ": " + String(getToolLenghtSensorHeight(), 2) + ", ");
Serial.print(String(ENCSPEEDSLOW) + ": " + String(getEncoderSpeedSlow()) + ", ");
Serial.print(String(ENCSPEEDFAST) + ": " + String(getEncoderSpeedFast()) + ", ");
Serial.print(String(LVLHEIGHTDIVE) + ": " + String(getLevelHeightDiving(), 2) + ", ");
Serial.println(String(TOOLCHGONPWRON) + ": " + String(isToolChangOnPowerOn()));
}
//void RouterSetup::printValues() {
// Serial.print(String(SPEED) + ": " + String(getSpeed(), 1) + ", ");
// Serial.print(String(ACCELERATION) + ": " + String(getAcceleration(), 1) + ", ");
// Serial.print(String(STEPSPERREV) + ": " + String(getStepsPerRev()) + ", ");
// Serial.print(String(PITCH) + ": " + String(getPitch(), 1) + ", ");
// Serial.print(String(TOOLLENGHTSNHT) + ": " + String(getToolLenghtSensorHeight(), 2) + ", ");
// Serial.print(String(ENCSPEEDSLOW) + ": " + String(getEncoderSpeedSlow()) + ", ");
// Serial.print(String(ENCSPEEDFAST) + ": " + String(getEncoderSpeedFast()) + ", ");
// Serial.print(String(LVLHEIGHTDIVE) + ": " + String(getLevelHeightDiving(), 2) + ", ");
// Serial.println(String(TOOLCHGONPWRON) + ": " + String(isToolChangOnPowerOn()));
//}
void RouterSetup::initialize() { void RouterSetup::initialize() {
if (doInitialization) { if (doInitialization) {

+ 1
- 2
sloeber.ino.cpp 查看文件

//This is a automatic generated file //This is a automatic generated file
//Please do not modify this file //Please do not modify this file
//If you touch this file your change will be overwritten during the next build //If you touch this file your change will be overwritten during the next build
//This file has been generated on 2022-03-01 10:11:02
//This file has been generated on 2022-03-01 17:52:01


#include "Arduino.h" #include "Arduino.h"
#include <Arduino.h> #include <Arduino.h>
#include "Status.h" #include "Status.h"
#include "WLS.h" #include "WLS.h"


void printStatus(String actualStatus) ;
void limitSwitchHandler() ; void limitSwitchHandler() ;
void Initialize() ; void Initialize() ;
void setup() ; void setup() ;

正在加载...
取消
保存