开源改变世界!!

无头接口 #717

推推 grbl 2年前 (2022-10-26) 204次浏览 0个评论
打开
vince87 打开了这个问题 on 29 May 2015 · 66 条评论
打开

无头接口#717

vince87 打开了这个问题 on 29 May 2015 · 66 条评论

注释

无头接口 #717

嗨,我创建了一个小草图,允许 grbl 在没有 PC 的情况下运行,您需要:
2 个 arduino(1 个用于 GRBL,1 个用于控制)
1x LCD 屏蔽
1x SD 屏蔽

https://codebender.cc/sketch:119423

然后我包括照片和视频

无头接口 #717
作者

文斯87 评论 on 1 Jun 2015

无头接口 #717

这是一个与 reprap 智能控制器一起使用的修改草图:
https ://codebender.cc/sketch:119503

无头接口 #717

你好

这很棒!

为什么?因为我的 USB 连接在 1/2 小时左右后丢失。其原因
是铣削电机电气干扰,….
Windows 休眠,UniversalGCodeSender 的 OutOfMemoryException …. 和/或
许多其他东西。

而且我不想迁移到使用 LinuxCNC 或类似工具的基于 PC 的解决方案。
我使用你的代码,希望我能用我有限的知识启动并运行它:-)

…您的代码有改进版本吗?

此致

安德烈亚斯

无头接口 #717

嗨,感谢您的反馈
,很抱歉,我没有其他解决方案,因为存在使 Arduino uno 的 RAM 饱和的风险。
当我有时间时,我会尝试更好的东西
谢谢文
森佐

无头接口 #717

@vince87

第一个草图中引脚 2 和 3 的功能是什么?我想不通…

我对代码进行了一些修改以使用操纵杆和 i2c 20×4 lcd,它可以工作。

无头接口 #717
作者

 文斯87 评论 on 16 May 2017

无头接口 #717

拖拉布拉特 评论 on 16 May 2017  

就这个

// GRBL without pc use!
// Shield used: datalogger (for sd), lcd shield
// free pins: A3, 2, 3

#include <Wire.h>
#include <SD.h>
//#include <LiquidCrystal.h>
#include <LiquidCrystal_I2C.h>
//#include <elapsedMillis.h>

String gcd;
char* myfile;

const int chipSelect = 10;
#define _LCDML_CONTROL_analog_pinx A0
#define _LCDML_CONTROL_analog_piny A1
#define _LCDML_CONTROL_digitalread 8 
#define _LCDML_DISP_cfg_button_press_time          200    // button press time in ms
unsigned long g_LCDML_DISP_press_time = 0UL;

String RxString;

int lcd_key     = 0;
int adc_key_in  = 0;

#define btnRIGHT  0
#define btnUP     1
#define btnDOWN   2
#define btnLEFT   3
#define btnSELECT 4
#define btnNONE   5

//String words[6] = {"Attesa GRBL...", "Errore SD", "SD OK!!!", "Errore!!!", "Stop!!!", "Fine invio!!!"};  //Italiano
String words[6] = {"Waiting GRBL ...", "SD Error", "SD OK !!!", "Error !!!", "Stop !!!", "End Send !!!"};

//LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);  // Set the LCD I2C address


void setup()
{
	pinMode(2, INPUT);
	pinMode(3, OUTPUT);
	digitalWrite(2, LOW);
	digitalWrite(3, LOW);
  pinMode (_LCDML_CONTROL_digitalread, INPUT_PULLUP);
	Serial.begin(115200);
	while (!Serial)
	{
		;
	}

	lcd.begin(20, 4);
	lcd.clear();
	lcd.setCursor(0, 0);
	lcd.print(words[0]);
	lcd.setCursor(0, 1);

	//pinMode(10, OUTPUT);
	if (!SD.begin(chipSelect))
	{
		lcd.print(words[1]);
		return;
	}
	
	lcd.print(words[2]);

	//Awake GRBL:
	delay(1000);
  //wait(1000);
	Serial.println("\030"); //Send cr + lf
	delay(500);
  //wait(500);
	while (Serial.available() <= 0)
	{
		delay(5);
    //wait(5);
	}
	while (Serial.available())
	{
		RxString += char(Serial.read());
		delay(10);
    //wait(10);
	}
	lcd.setCursor(0, 0);
	lcd.print(RxString);
	delay(2000);
  //wait(2000);
	RxString = "";
}


// *********************************************************************
// *************** (6) CONTROL OVER JOYSTICK *********************
// *********************************************************************
  // settings
  

  // when you did not use a button set the value to zero
  #define _LCDML_CONTROL_analog_up_min 612 // Button Up
  #define _LCDML_CONTROL_analog_up_max 1023
  #define _LCDML_CONTROL_analog_down_min 0 // Button Down
  #define _LCDML_CONTROL_analog_down_max 412
  #define _LCDML_CONTROL_analog_left_min 612 // Button Left
  #define _LCDML_CONTROL_analog_left_max 1023
  #define _LCDML_CONTROL_analog_right_min 0 // Button Right
  #define _LCDML_CONTROL_analog_right_max 412
// *********************************************************************
// setup
int read_LCD_buttons()
{ 
  
  // check debounce timer
  if((millis() - g_LCDML_DISP_press_time) >= _LCDML_DISP_cfg_button_press_time) {
    g_LCDML_DISP_press_time = millis(); // reset debounce timer

    uint16_t valuex = analogRead(_LCDML_CONTROL_analog_pinx);  // analogpinx
    uint16_t valuey = analogRead(_LCDML_CONTROL_analog_piny);  // analogpinx
    uint16_t valuee = digitalRead(_LCDML_CONTROL_digitalread);  //digitalpinenter

    
    if (valuey >= _LCDML_CONTROL_analog_up_min && valuey <= _LCDML_CONTROL_analog_up_max) { return btnUP; }    // up
    if (valuey >= _LCDML_CONTROL_analog_down_min && valuey <= _LCDML_CONTROL_analog_down_max) { return btnDOWN; }  // down
    if (valuex >= _LCDML_CONTROL_analog_left_min && valuex <= _LCDML_CONTROL_analog_left_max) { return btnLEFT; }  // left
    if (valuex >= _LCDML_CONTROL_analog_right_min && valuex <= _LCDML_CONTROL_analog_right_max) { return btnRIGHT; } // right
    
    if(valuee == false) {return btnSELECT;} // enter

    // back buttons have to be included as menuitem 
    // lock at the examle LCDML_back_button

  }

return btnNONE;  // when all others fail, return this...
  
}
// *********************************************************************
// ******************************* END *********************************
// *********************************************************************




void leggisd()
{
	File root = SD.open("/");
	if(!root)
	{
		lcd.setCursor(0, 0);
		lcd.print(words[1]);
		delay(1000);
    //wait(1000);
		return;
	}
	int i = 0;
	int j = 1;
	lcd.clear();
	while(true)
	{
		while (i != j)
		{
			File entry =  root.openNextFile();
			if (!entry)
			{
				root.rewindDirectory();
				i = 0;
				j = 1;
				break;
			}
			if (entry.isDirectory())
			{
				delay(10);
        //wait(10);
			}
			else
			{
				i++;
				myfile = entry.name();
				lcd.clear();
				lcd.setCursor(0, 0);
				lcd.print(j);
				lcd.print(">");
				lcd.print(myfile);
			}
			entry.close();
		}

		delay(100);
    //wait(100);
		lcd_key = read_LCD_buttons();
		if ( lcd_key == 2)
		{
			if (j > 1)
			{
				j--;
				delay(500);
        //wait(500);
			}
		}
		if ( lcd_key == 1)
		{
			j++;
			delay(500);
      //wait(500);
		}
		if ( lcd_key == 0)
		{
			delay(10);
      //wait(10);
			root.close();
			stream(myfile);
			break;
		}
	}
}

void stream(char *myfile)
{
	int nstrm = 0;
	int nstr = 0;
	File strFile = SD.open(myfile);

	while (!strFile.available())
	{
		delay(1000);
    //wait(1000);
		return;
	}
	while (strFile.available())
	{
		gcd = strFile.readStringUntil('\n');
		nstr++;
	}
	lcd.clear();
	lcd.setCursor(0, 0);
	lcd.print("Stream!!!");
	delay(1000);
  //wait(1000);
	lcd.clear();
	lcd.setCursor(0, 0);
	lcd.print("Starting");
	lcd.setCursor(7, 0);
	lcd.print(myfile);
	delay(1000);
  //wait(1000);
	strFile.seek(0);
	while (strFile.available())
	{
		gcd = strFile.readStringUntil('\n');
		gcd = gcd.substring(0, gcd.length() - 1);
		Serial.print(gcd);
		Serial.write(0x0A); // seguita solo da /n (LF)
		Serial.flush();
		nstrm++;
		lcd.setCursor(0, 1);
		lcd.print(nstr);
		lcd.print("/");
		lcd.print(nstrm);
		lcd.print(" ");
		while(RxString.lastIndexOf('ok') <= 0)
		{
			while (Serial.available() <= 0)
			{
				delay(5);
        //wait(5);
			}
			while (Serial.available())
			{
				RxString += char(Serial.read());
				delay(10);
        //wait(10);

			}
			if ( RxString.lastIndexOf('error') > 0)
			{
				lcd.clear();
				lcd.setCursor(0, 0);
				lcd.print(RxString);
				lcd.setCursor(0, 1);
				lcd.print(words[3]);
				RxString = "";
				strFile.close();
				delay(1000);
        //wait(1000);
				break;
			}
		}
		RxString = "";
		lcd_key = read_LCD_buttons();  // read the buttons
		if ( lcd_key == 4)
		{
			lcd.clear();
			lcd.setCursor(0, 0);
			lcd.print(words[4]);
			delay(1000);
      //wait(1000);
			strFile.close();
			break;

		}
	}
	lcd.clear();
	lcd.setCursor(0, 0);
	lcd.print(words[5]);
	delay(2000);
  //wait(2000);
	strFile.close();
	return;
}


void loop()
{
	lcd_key = read_LCD_buttons();

	if ( lcd_key == 4 )
	{
		//delay(10);    //Select

		leggisd();
	}
	
}


/*
  void wait(unsigned long alfa){
  elapsedMillis waop;
  while(waop < alfa){
    }
  }

*/

实际上我正在使用这个库做一个更复杂的界面

https://github.com/Jomelo/LCDMenuLib

PD 我正在努力同时显示 3 轴上的坐标,以通过手动更换工具来执行 gcode、marlin 风格和慢跑支持。

此时的 PD 操纵杆控件仅用于浏览和选择要流式传输的文件。

问候

无头接口 #717

这适用于 grbl 1.1 吗?

无头接口 #717

拖拉布拉特 评论 2017 年 5 月 16 日  

@vMeph
是的,但是启动时屏幕上没有正确显示特殊字符,我在 grbl 1.1 上尝试了 +17000 行 g 文件并且没有崩溃。

但是,它需要改进以提供更多功能并在运行时在液晶屏幕上显示坐标。

干杯

无头接口 #717

如果这可以 通过使用第二个 arduino来实现这个
#1125 将 rox 专门用于那些带有编码器的液晶显示器,比如马林 3D 打印机软件中使用的编码器

无头接口 #717

@dragoblaztr
太棒了,什么时候可以告诉我们?,菜单的想法很棒,但我认为需要更复杂的硬件..(32u4?M0?),所以你也可以选择PC调试和更复杂的 gcode 流式传输(10/20MB 现在冻结为 5/6MB )。
问候

无头接口 #717

@vince87,@vMeph

这就是想法,实际上我正在使用 Mega 来运行测试,我打算用它来运行,而不是 uno。除了在未来的版本中使用 tft LCD 而不是 I2c 之外,我的想法是让它像一个 cnc 面板,用于在没有 PC 的情况下进行慢跑、读取和编辑 cnc 代码以及流式传输(使用编码器、操纵杆、键盘等)任何努力都很好完成收到。

无头接口 #717

当一切都解决后,这将是很棒的!感谢大家的辛勤工作!

无头接口 #717

109JB 评论 2017 年 5 月 17 日  

它需要一种将工作坐标归零的方法。

几年前,我在 Mega 2560 上使用 SD/触摸屏 LCD 制作了一个。它可以工作,但对我的口味来说太慢了。我已经实现了慢跑、归零、跑步等,但工作量太大而回报太少。我回去使用我的上网本。这是我所做的几张照片。它有 3 个轴的 DRO,是为 Grbl 0.9 编写的。图片没有显示 DRO,因为这只是用主机 arduino 拍摄的,没有连接到启用 Grbl 的 Arduino。DRO 在屏幕左上角显示工作坐标。此外,由于没有安装 SD 卡,大部分空白的图片也没有显示任何内容。那通常会显示一个文件列表。

无头接口 #717
无头接口 #717
无头接口 #717
无头接口 #717
无头接口 #717
无头接口 #717

.ino 文件在此文本文档中,如果有人想使用它。我不认为触摸屏是要走的路,TFT可能也太多了。我认为像您使用的单色 LCD 最好保持速度。

GRBL_Head.txt

无头接口 #717

这是不久前的另一个类似项目,我认为这个项目介于 GUI 和 Grbl 之间:https ://github.com/xpix/XLCD/wiki

无头接口 #717

@109JB
谢谢分享你的代码,我去看看。

正如我之前所说,第一个版本带有 I2C 显示,取决于结果是否适用于 tft。

@winder
我已经在我的研究中看到了这一点,我会记住它。

@ 每个人

欢迎对第一版提出想法和要求。

在这一点上,正如我所说的,主要功能是:

  • 无需PC即可支持SD读取和流GCode
  • 在代码或慢跑运行时显示坐标(工作或机器)。
  • 慢跑支持
  • 与按钮交互时发出哔声
  • 通过编码器、操纵杆、键盘(其他设备待定)连接。

如果我忘记了主要想法的内容,请告诉我。

干杯

无头接口 #717

像他们在 3 d 打印机中使用的大屏幕液晶显示器,这样的 rox
无头接口 #717

它有enconders,蜂鸣器,sd卡

无头接口 #717

@vMeph
会的,但是有一个问题,我没有那个显示器来做测试……

无头接口 #717

无头接口 #717
无头接口 #717

今天到了,终于在将近 2 个月后……我一试就告诉你,它们应该与 raprap 智能显示器或全图形智能控制器一起使用!

无头接口 #717

凉爽的

无头接口 #717

@vince87
问题是它没有通过 SD 卡流式传输代码的功能……此外,我前一段时间在 arduino uno 上尝试过,对引脚分配进行了相应的更改。

无头接口 #717

图中的电路板似乎有 10 针连接器,用于连接 3d 打印机智能控制器。然后 SD 将位于智能控制器中,这意味着该板不需要它。

无头接口 #717

你是什​​么意思@109JB 带 sd 卡的智能控制器有 2 根电缆,每根电缆 10 针,

无头接口 #717

是的,图中的电路板有 2 个 10 针电缆连接器的位置。由于智能控制器上面有SD,所以上一篇文章中的板子不需要SD卡槽,因为可以使用智能控制器上的SD卡槽。

无头接口 #717
作者

文斯87 评论 2017 年 6 月 24 日  

无头接口 #717
无头接口 #717

@109JB 你是对的!我为reprap智能控制器或大型全图形智能控制器制作了一个电源螺丝端子和2个10针连接器,以及一个连接grbl串行引脚的2个简单引脚!

无头接口 #717

无头接口 #717
大家好,这是我的 PCB 的新改进版本。
软件仍然需要改进,但至少它可以工作!!!

这里的代码…

// GRBL senza uso del pc!

#include <SoftwareSerial.h>
#include <SD.h>
#include <LiquidCrystal.h>
#include <Rotary.h>

字符串 gcd;
char* 我的文件;
字符串 RxString;

长时间_现在,秒;
整数标志 = 0;
整数刷新 = 0;
国际编码 = 0;

int 文件编号 = 0;
int how_many_file = 0;

常量 int 芯片选择 = 10;

int menu_entry = 0;

String words[6] = {“Attesa GRBL…”, “Errore SD”, “SD OK!!!”, “Errore!!!”, “Stop!!!”, “Fine invio!!!”} ; //Italiano
String menu[2] = {“Scelta File”, “PC”}; //意大利语

char* 文件[20] = {};

液晶液晶(5、4、3、6、2、7);

SoftwareSerial mySerial(8, 9); // 接收,发送

int pinEncSW = 11;
int pinEncA = 13;
int pinEncB = 12;

旋转 r = 旋转(pinEncA,pinEncB);

无效设置()
{
pinMode(pinEncSW,INPUT_PULLUP);
pinMode(A0,输出);
序列号.开始(115200);
mySerial.begin(115200);
//while (!Serial) { ; }

lcd.begin(20, 4);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(字[0]);
lcd.setCursor(0, 1);

pinMode(10,输出);
if (!SD.begin(chipSelect))
{
lcd.print(words[1]);
返回;
}

lcd.print(字[2]);

// sveglio GRBL:
延迟(1000);
mySerial.write(“\030”); // invio cr+lf
delay(500);
串行读取();
//RxString.remove(0,2);
//RxString.remove(20);
lcd.setCursor(0,0);
lcd.print(RxString);
延迟(2000);
RxString = “”;
leggisd();
lcd.clear();
}

int button_enc() {
int result = r.process();
if (result == DIR_CW) { beep(); 返回 1;}
if (result == DIR_CCW) { beep(); 返回-1;}
如果(digitalRead(pinEncSW)==低&&标志== 0){标志= 1;time_now = millis();}
while (digitalRead(pinEncSW) == LOW && flag == 1) { seconds = millis() – time_now; }
if (digitalRead(pinEncSW) == HIGH && flag == 1)
{
flag = 0;
如果(秒> 2000){哔(); lcd.clear(); lcd.print(“返回”); 延迟(200);返回 200;}
否则 { beep(); lcd.clear(); lcd.print(“OK”); 延迟(200);返回 100;}
}
返回 0;
}

无效哔声()
{
数字写入(A0,高);
延迟(2);
数字写入(A0,低);
}

int serialread()
{
while (mySerial.available() <= 0)
{
delay(5);
if ( button_enc() == 200) {
返回 200;
}
}
while (mySerial.available())
{
RxString += char(mySerial.read());
延迟(10);
}
}

void leggisd()
{
文件根 = SD.open(“/”);
if(!root)
{
lcd.setCursor(0, 0);
lcd.print(字[1]);
延迟(1000);
返回;
}
int i = 0;
root.rewindDirectory();
while(true)
{
文件入口 = root.openNextFile();
if (!entry)
{
entry.close();
root.close();
返回;
}
if (entry.isDirectory())
{
delay(10);
}
else {
char* temp = entry.name();
文件[i]=strdup(临时);
我++;
how_many_file++;
}

}
}

无效流(char * myfile)
{
int nstrm = 0;
整数 nstr = 0;
Serial.println(myfile);
文件 strFile = SD.open(myfile);

而(!strFile.available())
{
延迟(1000);
返回;
}
while (strFile.available())
{
gcd = strFile.readStringUntil(‘\n’);
nstr++;
}
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(“流!!!”);
延迟(1000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(“Avvio:”);
lcd.setCursor(7, 0);
lcd.print(我的文件);
延迟(1000);
strFile.seek(0);
整数 f = 0;
while (strFile.available())
{
gcd = strFile.readStringUntil(‘\n’);
gcd = gcd.substring(0, gcd.length() – 1);
mySerial.print(gcd);
mySerial.write(0x0A); // seguita solo da /n (LF)
mySerial.flush();
nstrm++;
lcd.setCursor(0, 1);
lcd.print(nstr);
lcd.print(“/”);
lcd.print(nstrm);
lcd.print(“”);
lcd.setCursor(0, 2);
lcd.print(gcd);
while(RxString.lastIndexOf(‘ok’) <= 0)
{
if ( serialread() == 200)
{
lcd.clear();
lcd.setCursor(0, 0);
RxString = “”;
strFile.close();
延迟(1000);
休息;
}
if ( RxString.lastIndexOf(‘error’) > 0)
{
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(RxString);
lcd.setCursor(0, 1);
lcd.print(字[3]);
RxString = “”;
strFile.close();
延迟(1000);
休息;
}
}
RxString = “”;
}
//readpos();
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(字[5]);
延迟(2000);
strFile.close();
返回;
}
/*
void readpos()
{
Serial.print(“?”);
串行写入(0x0A);// seguita solo da /n (LF)
serialread();
字符串 Mpos = RxString;
字符串 Wpos = RxString;
int M = RxString.indexOf(‘M’);
Mpos.remove(0,M+5);
Mpos.remove(20);
lcd.setCursor(0,2);
lcd.print(Mpos);
int W = RxString.indexOf(‘W’);
Wpos.remove(0,W+5);
Wpos.remove(20);
lcd.setCursor(0,3);
lcd.print(Wpos);
RxString=””;
返回;
}
*/

无效选择()
{
而(真)
{
int i = 3;
编码 = button_enc();
if (enc == 1 && file_number < how_many_file-1) { lcd.clear(); 文件编号++;刷新 = 0; }
if ( enc == -1 && file_number > 0) { lcd.clear(); 文件编号 – ; 刷新 = 0; }
if ( enc == 100) { 流(myfile); }
if ( enc == 200) { lcd.clear(); 刷新 = 0; 返回; }
if ( enc == 0) {
while(refresh == 0) {
while(i != -1) {
myfile = file[file_number+i];
lcd.setCursor(0, 0);
lcd.print(“>”);
lcd.setCursor(1, i);
lcd.print(我的文件);
一世 – ;
}
刷新 = 1;
}
}
}
}

void pc()
{
String SerialString = “”;
字符串 mySerialString = “”;
int SerialFlag = 0;
int mySerialFlag = 0;
while(true)
{
enc = button_enc();
if (enc == 200) { lcd.clear(); 返回; }
while (mySerial.available()) { mySerialFlag = 1; mySerialString += char(mySerial.read()); 延迟(5);}
if (mySerialFlag = 1) { Serial.print(mySerialString); 串行写入(0x0A);Serial.flush(); 我的序列号 = “”; 我的串行标志 = 0;延迟(2000);}
而(Serial.available()){SerialFlag = 1;SerialString += char(Serial.read()); 延迟(5);}
if (SerialFlag = 1) { mySerial.print(SerialString); mySerial.write(0x0A); mySerial.flush(); 序列号 = “”; 串行标志 = 0;延迟(2000);

}

//void pc()
//{
// lcd.setCursor(0, 0);
// lcd.print(“传输”);
// while(true)
// {
// enc = button_enc();
// if (enc == 200) { lcd.clear(); 返回; }
// if (Serial.available()) { delay(50); mySerial.write(Serial.read()); }
// if (mySerial.available()) { delay(50); Serial.write(mySerial.read()); }
// }
//}

无效循环()
{
int i = 0;
编码 = button_enc();
if (enc == 1 && menu_entry < 1) { lcd.clear(); 菜单入口++;刷新 = 0; }
if ( enc == -1 && menu_entry > 0) { lcd.clear(); menu_entry–;刷新 = 0; }
if ( enc == 100) {
if ( menu_entry == 0) { lcd.clear(); 刷新 = 0; 选择();}
if ( menu_entry == 1) { lcd.clear(); 刷新 = 0; 个人电脑(); }
}
if ( enc == 0) {
while(refresh == 0) {
while(i != 3) {
lcd.setCursor(0, menu_entry);
lcd.print(“>”);
lcd.setCursor(1, 0);
lcd.print(菜单[0]);
lcd.setCursor(1, 1);
lcd.print(菜单[1]);
//lcd.setCursor(1, 2); //如果需要的话
//lcd.print(菜单[2]); //如果需要
//lcd.setCursor(1, 3); //如果需要
//lcd.print(menu[3]); //如果需要
i++;
}
刷新 = 1;
}
}
}

无头接口 #717

串行密码不能很好地工作……
流式传输和读取 gcode 看起来还不错!

无头接口 #717

Ciao,dove posso trovare lo schema per il 接线 dei due to Arduino con la SD e lo schermo LCD?
感恩米。

无头接口 #717
作者

文斯87 评论 2017 年 9 月 19 日  

Ciao, il progetto è su easyeda, cerca il mio Nick e lo trovi…
Chiunque fosse interessato ho prodotto qualche scheda in piu!

无头接口 #717

Scusami, ma non trovo nulla。Me lo puoi linkare?

格拉齐

无头接口 #717

è strano che la macchina non parte, c’è abilitato solo la verifica in grbl?pin tx/rx corretti?非 sono quelli 标准,ma D8 e D9!scollegato usb da grbl?
dove hai trovato il 文件sketch.json?非 l’ho creato io!!!
Fammi sapere 来吧!

无头接口 #717

il .json 时代 nella cartella Scaricata…usb scollegata…pin 8 su tx e pin 9 su rx…
cosa intenti per “c’è abilitato solo la verifica in grbl?”

il mio grbl è questo:https ://github.com/misan/grbl-servo

格拉齐安科拉

无头接口 #717

啊!!!mi 骰子很好 invio !!!subito dopo stream
poi rimane così

无头接口 #717

Prova a ricaricare ora lo sketch, ho modificato un paio di cose。
ho anche abbassato la velocità della seriale a 57600 baud così il 32u4èmenostressato。
Dovresti ricompilare grbl e impostarlo a 57600 baud

无头接口 #717

Ps cerca qui su github “cncjs”
configuri un raspberry come controller e visualizzi tutto via wifi da un altro pcè molto piu’ comodo!

无头接口 #717

gentilissimo 感恩!!
ora miguardo anche cncjs grazie

无头接口 #717

再见@vince87
alla fine dopo un pò di smanettamenti ce l’ho fatta!!!!!!
con baudrate a 57600 non funzionava così dopo alcune provo sono riuscito con baudrate 9600..
alè
Grazie ancora

无头接口 #717
无头接口 #717

你好@vince87 了不起的工作!恭喜,这个工作需要更多的认可。

太好了,希望有更多关于你工作的视频和图片!

无头接口 #717

@luisluna2该项目已死,现在我使用连接到覆盆子的cncjs……好多了!

无头接口 #717

也许,可以解释更多的朋友吗?

无头接口 #717

看看:
https
://github.com/cncjs/cncjs/wiki 是一个控制grbl的软件(在raspberry上运行得很好),有很多功能,包括远程控制,可以连接显示器看工艺等…

无头接口 #717
无头接口 #717

对于cncjs:https ://github.com/cncjs/cncjs

我的板子:
https
://easyeda.com/editor#id=|8fff9e5f282e4371bb80ce178759623a|2bdadbb8457b4f33bf99c5b31b052e09 arduino 微草图:
https ://create.arduino.cc/editor/vincenzobini/57ff6378-9ff6-463a-84aac84/preview7-8

无头接口 #717

对于cncjs:https ://github.com/cncjs/cncjs

我的板子:
https
://easyeda.com/editor#id=|8fff9e5f282e4371bb80ce178759623a|2bdadbb8457b4f33bf99c5b31b052e09 arduino 微草图:
https ://create.arduino.cc/editor/vincenzobini/57ff6378-9ff6-463a-84aac84/preview7-8

有 PinOut _Friend 吗?

无头接口 #717


,我想制作一个新的 CNC,我想让它在没有 PC 的情况下工作(无头 CNC)
你能帮我逐步解释一下吗?

无头接口 #717

我希望它通过 GRBL 框架工作

无头接口 #717

我放弃了这个项目。
我用的是cncjs,真的很好!

无头接口 #717

亲爱的vince87
谢谢你的回复
我要做无头CNC
什么是cncjs?
这是软件还是控制器?
你成功完成了无头CNC的电子设备并使用了它吗?

无头接口 #717

看到它:https
://github.com/cncjs/cncjs 它与连接到 grbl 的覆盆子一起工作。
您可以通过覆盆子上的液晶屏幕或通过个人电脑、平板电脑或智能手机的网络界面来控制它。

无头接口 #717

真的!!
我只使用 Ardoino 和 GRBL,不使用 raspberry pi
你有分步说明吗?

无头接口 #717

你好!
您能否上传您在 2004lcd 上使用的整个草图?我认为rotary.h 给我带来了问题。
谢谢勒内

无头接口 #717

@AsadollahA分步说明位于项目文件夹内的 README.md 文件中
@gore80完整的草图链接在第二篇文章中,我不使用库 rotate.h

无头接口 #717

@gore80
亲爱的 gore80
你做了无头数控吗?
我只想用一个简单的G代码,用电脑不方便

无头接口 #717

@vince87
亲爱的 vince87
许多网站使用 2 Ardoino。一个用于 GRBL,一个用于读取 SD 卡
但他们没有用于读取 SD 卡的电气计划或代码
使用树莓派对我来说很难,我不使用它:(
你知道使用 2 ardoinu 逐步进行的方法吗? step headless CNC?(代码和电气方案)
坦克你

无头接口 #717

@AsadollahA
是的,我已经为我的激光切割机设置了这个控件。
pn gore80@gmx.at

无头接口 #717

@gore80
亲爱的 gore80
我向 gore80@gmx.at 发送了一条新消息,
检查一下
谢谢和问候

无头接口 #717

您好,是否可以将这个死链接的文件https://codebender.cc/sketch:119423与您制作的第一个版本的照片和视频一起保存,谢谢 diiity 这里是我的地址diiity@yahoo.fr

你好,

Est il possible d’avoir le dossier de ce Lien qui est mort
https://codebender.cc/sketch:119423 avec les photos et les vidéos de la première version que tu as fait, merci
diiity
voici mon adresse diiity@yahoo.fr

无头接口 #717

@diiity我再也找不到这个 sketck…
无论如何你可以使用它:
#717(评论)

无头接口 #717

谢谢,我没有这个diiity的卡

merci, je n’ai pas la carte pour celui ci
diiity

无头接口 #717
喜欢 (0)

您必须 登录 才能发表评论!