2019-12-02 14:07:28 -07:00
|
|
|
/*
|
|
|
|
Name: src.ino
|
|
|
|
Created: 11/14/2019 9:51:10 PM
|
|
|
|
Author: Tim Evers
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include "farmbot_arduino_controller.h"
|
2020-01-05 14:20:48 -07:00
|
|
|
//#include <SPI.h>
|
|
|
|
//#include "Trinamic\Trinamic_TMC2130.h"
|
|
|
|
//#include "pins.h"
|
|
|
|
//#include "TMC2130.h"
|
2019-12-02 14:07:28 -07:00
|
|
|
|
|
|
|
// the setup function runs once when you press reset or power the board
|
|
|
|
void setup()
|
|
|
|
{
|
|
|
|
startSerial();
|
2020-01-05 14:20:48 -07:00
|
|
|
setPinInputOutput();
|
|
|
|
|
2019-12-02 14:07:28 -07:00
|
|
|
readParameters();
|
|
|
|
|
|
|
|
#if defined(FARMDUINO_EXP_V20)
|
|
|
|
loadTMC2130drivers();
|
|
|
|
startupTmc();
|
2020-01-02 14:33:34 -07:00
|
|
|
loadTMC2130parameters();
|
2019-12-02 14:07:28 -07:00
|
|
|
#endif
|
|
|
|
|
2020-01-05 14:20:48 -07:00
|
|
|
//Serial.print("============");
|
|
|
|
//Serial.print(CRLF);
|
|
|
|
|
|
|
|
|
2019-12-02 14:07:28 -07:00
|
|
|
loadMovementSetting();
|
|
|
|
startMotor();
|
|
|
|
startPinGuard();
|
|
|
|
startServo();
|
|
|
|
startInterrupt();
|
|
|
|
initLastAction();
|
|
|
|
homeOnBoot();
|
|
|
|
|
2020-01-06 14:06:59 -07:00
|
|
|
//setupTestForDebug();
|
2020-01-05 14:20:48 -07:00
|
|
|
|
2020-01-06 14:06:59 -07:00
|
|
|
Serial.print(COMM_REPORT_COMMENT);
|
|
|
|
Serial.print(SPACE);
|
|
|
|
Serial.print("ARDUINO STARTUP COMPLETE");
|
|
|
|
Serial.print(CRLF);
|
2020-01-05 14:20:48 -07:00
|
|
|
|
|
|
|
/*
|
|
|
|
Serial.begin(115200); //init serial port and set baudrate
|
|
|
|
while (!Serial); //wait for serial port to connect (needed for Leonardo only)
|
|
|
|
Serial.println("Start...");
|
|
|
|
*/
|
|
|
|
|
|
|
|
/*
|
|
|
|
// pins
|
|
|
|
pinMode(X_ENABLE_PIN, OUTPUT);
|
|
|
|
pinMode(X_DIR_PIN, OUTPUT);
|
|
|
|
pinMode(X_STEP_PIN, OUTPUT);
|
|
|
|
digitalWrite(X_ENABLE_PIN, HIGH); // disable driver
|
|
|
|
digitalWrite(X_DIR_PIN, LOW); // chose direction
|
|
|
|
digitalWrite(X_STEP_PIN, LOW); // no step yet
|
|
|
|
|
|
|
|
pinMode(Y_ENABLE_PIN, OUTPUT);
|
|
|
|
pinMode(Y_DIR_PIN, OUTPUT);
|
|
|
|
pinMode(Y_STEP_PIN, OUTPUT);
|
|
|
|
digitalWrite(Y_ENABLE_PIN, HIGH); // disable driver
|
|
|
|
digitalWrite(Y_DIR_PIN, LOW); // chose direction
|
|
|
|
digitalWrite(Y_STEP_PIN, LOW); // no step yet
|
|
|
|
|
|
|
|
pinMode(Z_ENABLE_PIN, OUTPUT);
|
|
|
|
pinMode(Z_DIR_PIN, OUTPUT);
|
|
|
|
pinMode(Z_STEP_PIN, OUTPUT);
|
|
|
|
digitalWrite(Z_ENABLE_PIN, HIGH); // disable driver
|
|
|
|
digitalWrite(Z_DIR_PIN, LOW); // chose direction
|
|
|
|
digitalWrite(Z_STEP_PIN, LOW); // no step yet
|
|
|
|
|
|
|
|
pinMode(E_ENABLE_PIN, OUTPUT);
|
|
|
|
pinMode(E_DIR_PIN, OUTPUT);
|
|
|
|
pinMode(E_STEP_PIN, OUTPUT);
|
|
|
|
digitalWrite(E_ENABLE_PIN, HIGH); // disable driver
|
|
|
|
digitalWrite(E_DIR_PIN, LOW); // chose direction
|
|
|
|
digitalWrite(E_STEP_PIN, LOW); // no step yet
|
|
|
|
*/
|
|
|
|
|
|
|
|
/*
|
|
|
|
Serial.println("Init");
|
|
|
|
|
|
|
|
loadTMC2130ParametersMotor(&TMC2130X, 8, 200, 0);
|
|
|
|
loadTMC2130ParametersMotor(&TMC2130Y, 8, 200, 0);
|
|
|
|
loadTMC2130ParametersMotor(&TMC2130Z, 8, 200, 0);
|
|
|
|
loadTMC2130ParametersMotor(&TMC2130E, 8, 200, 0);
|
|
|
|
*/
|
|
|
|
|
|
|
|
/*
|
|
|
|
pinMode(X_ENABLE_PIN, OUTPUT);
|
|
|
|
pinMode(X_DIR_PIN, OUTPUT);
|
|
|
|
pinMode(X_STEP_PIN, OUTPUT);
|
|
|
|
digitalWrite(X_ENABLE_PIN, HIGH); // disable driver
|
|
|
|
digitalWrite(X_DIR_PIN, LOW); // chose direction
|
|
|
|
digitalWrite(X_STEP_PIN, LOW); // no step yet
|
|
|
|
|
|
|
|
pinMode(Y_ENABLE_PIN, OUTPUT);
|
|
|
|
pinMode(Y_DIR_PIN, OUTPUT);
|
|
|
|
pinMode(Y_STEP_PIN, OUTPUT);
|
|
|
|
digitalWrite(Y_ENABLE_PIN, HIGH); // disable driver
|
|
|
|
digitalWrite(Y_DIR_PIN, LOW); // chose direction
|
|
|
|
digitalWrite(Y_STEP_PIN, LOW); // no step yet
|
|
|
|
|
|
|
|
pinMode(Z_ENABLE_PIN, OUTPUT);
|
|
|
|
pinMode(Z_DIR_PIN, OUTPUT);
|
|
|
|
pinMode(Z_STEP_PIN, OUTPUT);
|
|
|
|
digitalWrite(Z_ENABLE_PIN, HIGH); // disable driver
|
|
|
|
digitalWrite(Z_DIR_PIN, LOW); // chose direction
|
|
|
|
digitalWrite(Z_STEP_PIN, LOW); // no step yet
|
|
|
|
|
|
|
|
pinMode(E_ENABLE_PIN, OUTPUT);
|
|
|
|
pinMode(E_DIR_PIN, OUTPUT);
|
|
|
|
pinMode(E_STEP_PIN, OUTPUT);
|
|
|
|
digitalWrite(E_ENABLE_PIN, HIGH); // disable driver
|
|
|
|
digitalWrite(E_DIR_PIN, LOW); // chose direction
|
|
|
|
digitalWrite(E_STEP_PIN, LOW); // no step yet
|
|
|
|
*/
|
|
|
|
|
|
|
|
//loadTMC2130drivers();
|
|
|
|
//startupTmc();
|
|
|
|
//loadTMC2130parameters();
|
|
|
|
|
|
|
|
/**/
|
|
|
|
//Movement::getInstance()->initTMC2130();
|
|
|
|
//loadTMC2130parameters();
|
|
|
|
|
|
|
|
//loadTMC2130ParametersMotor(&TMC2130X, 8, 200, 0);
|
|
|
|
//loadTMC2130ParametersMotor(&TMC2130Y, 8, 200, 0);
|
|
|
|
//loadTMC2130ParametersMotor(&TMC2130Z, 8, 200, 0);
|
|
|
|
//loadTMC2130ParametersMotor(&TMC2130E, 8, 200, 0);
|
|
|
|
|
|
|
|
|
2020-01-06 14:06:59 -07:00
|
|
|
//Serial.println("Enable pins");
|
2020-01-05 14:20:48 -07:00
|
|
|
|
2020-01-06 14:06:59 -07:00
|
|
|
//digitalWrite(X_ENABLE_PIN, LOW); // enable driver
|
|
|
|
//digitalWrite(Y_ENABLE_PIN, LOW); // enable driver
|
|
|
|
//digitalWrite(Z_ENABLE_PIN, LOW); // enable driver
|
|
|
|
//digitalWrite(E_ENABLE_PIN, LOW); // enable driver
|
2020-01-05 14:20:48 -07:00
|
|
|
|
|
|
|
//Serial.println("Enable");
|
2019-12-02 14:07:28 -07:00
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// the loop function runs over and over again until power down or reset
|
|
|
|
void loop()
|
|
|
|
{
|
2020-01-06 14:06:59 -07:00
|
|
|
//runTestForDebug();
|
2019-12-02 14:07:28 -07:00
|
|
|
|
2020-01-06 14:06:59 -07:00
|
|
|
checkEncoders();
|
|
|
|
checkPinGuard();
|
|
|
|
checkSerialInputs();
|
|
|
|
checkEmergencyStop();
|
|
|
|
checkParamsChanged();
|
|
|
|
periodicChecksAndReport();
|
2020-01-05 14:20:48 -07:00
|
|
|
|
|
|
|
}
|