diff --git a/lib/GRBL/include/GRBL.h b/lib/GRBL/include/GRBL.h new file mode 100644 index 0000000..8837ca9 --- /dev/null +++ b/lib/GRBL/include/GRBL.h @@ -0,0 +1,22 @@ +#ifndef GRBL_H +#define GRBL_H + +#include +#include "Module_GRBL_13.2.h" + +class iGRBL{ +public: + virtual void init(int speed, double pas, int accel, String mode = "distance") = 0; + virtual void mouveForward(int mm = 5) = 0; +}; + +class GRBL : public iGRBL{ +public: + GRBL(int grblAddr); + void init(int speed, double pas, int accel, String mode = "distance") override; + void mouveForward(int mm = 5) override; +private: + Module_GRBL* grbl; +}; + +#endif diff --git a/lib/GRBL/src/GRBL.cpp b/lib/GRBL/src/GRBL.cpp new file mode 100644 index 0000000..a10807b --- /dev/null +++ b/lib/GRBL/src/GRBL.cpp @@ -0,0 +1,34 @@ +#include "../include/GRBL.h" + +GRBL::GRBL(int grblAddr){ + this->grbl = new Module_GRBL(grblAddr); +} + +void GRBL::init(int speed, double pas, int accel, String mode){ + char s[1024]; + + this->grbl->Init(&Wire); + this->grbl->setMode(mode); + + sprintf(s,"$0=%f", pas); // step/mm + this->grbl->sendGcode(s); + Serial.println(s); + + sprintf(s,"$4=%d", speed); // speed + this->grbl->sendGcode(s); + Serial.println(s); + + sprintf(s,"$8=%d", accel); // acceleration, mm/sec^2 + this->grbl->sendGcode(s); + Serial.println(s); + + sprintf(s,"$3=%d", 500); // puse/µsec + this->grbl->sendGcode(s); + Serial.println(s); +} + +void GRBL::mouveForward(int mm = 5){ + char s[1024]; + sprintf(s, "G1 X%d", mm); + this->grbl->sendGcode(s); +} diff --git a/lib/Stepper/include/Stepper.h b/lib/Stepper/include/Stepper.h deleted file mode 100644 index e69de29..0000000 diff --git a/lib/Stepper/src/Stepper.cpp b/lib/Stepper/src/Stepper.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/src/main.cpp b/src/main.cpp index 21f9b7b..b27e527 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -12,13 +12,17 @@ #include #include -#include "Module_GRBL_13.2.h" +//#include "Module_GRBL_13.2.h" + +#include "GRBL.h" #define STEPMOTOR_I2C_ADDR 0x70 // #define STEPMOTOR_I2C_ADDR 0x71 -Module_GRBL _GRBL = Module_GRBL(STEPMOTOR_I2C_ADDR); +//Module_GRBL _GRBL = Module_GRBL(STEPMOTOR_I2C_ADDR); + + /** * @brief initialise le GRBL pour le stepper @@ -28,30 +32,33 @@ Module_GRBL _GRBL = Module_GRBL(STEPMOTOR_I2C_ADDR); * @param accel vitesse d'acceleration du mptuer (mm/sec²) * @param mode mode de fonctionnement (defaut = distance) absolute */ -void init(int speed, double pas, int accel ,String mode = "distance"){ - char s[1024]; +// void init(int speed, double pas, int accel ,String mode = "distance"){ +// char s[1024]; - _GRBL.Init(&Wire); - _GRBL.setMode(mode); +// _GRBL.Init(&Wire); +// _GRBL.setMode(mode); - sprintf(s,"$0=%f", pas); // step/mm - _GRBL.sendGcode(s); - Serial.println(s); +// sprintf(s,"$0=%f", pas); // step/mm +// _GRBL.sendGcode(s); +// Serial.println(s); - sprintf(s,"$4=%d", speed); // speed - _GRBL.sendGcode(s); - Serial.println(s); +// sprintf(s,"$4=%d", speed); // speed +// _GRBL.sendGcode(s); +// Serial.println(s); - sprintf(s,"$8=%d", accel); // acceleration, mm/sec^2 - _GRBL.sendGcode(s); - Serial.println(s); +// sprintf(s,"$8=%d", accel); // acceleration, mm/sec^2 +// _GRBL.sendGcode(s); +// Serial.println(s); - sprintf(s,"$3=%d", 500); // puse/µsec - _GRBL.sendGcode(s); - Serial.println(s); -} +// sprintf(s,"$3=%d", 500); // puse/µsec +// _GRBL.sendGcode(s); +// Serial.println(s); +// } +GRBL* grbl; void setup() { + grbl = new GRBL(STEPMOTOR_I2C_ADDR); + M5.begin(); M5.Power.begin(); Wire.begin(21, 22); @@ -66,28 +73,28 @@ void setup() { M5.Lcd.setCursor(50, 120); delay(1000); M5.Lcd.println("Control Motor"); - init(STEPER_SPEED, STEPER_PAS, STEPER_ACC); + grbl->init(STEPER_SPEED, STEPER_PAS, STEPER_ACC); } -void mouveForward(int mm = 5){ - char s[1024]; - sprintf(s, "G1 X%d", mm); - _GRBL.sendGcode(s); -} +// void mouveForward(int mm = 5){ +// char s[1024]; +// sprintf(s, "G1 X%d", mm); +// _GRBL.sendGcode(s); +// } void loop() { if (M5.BtnA.wasPressed()) { - Serial.print(_GRBL.readStatus()); - mouveForward(50); + // Serial.print(_GRBL.readStatus()); + grbl->mouveForward(50); } if (M5.BtnB.wasPressed()) { - mouveForward(50); + grbl->mouveForward(50); } if (M5.BtnC.wasReleased()) { - _GRBL.unLock(); + // _GRBL.unLock(); } M5.update(); }