Contact me: hankecnc@gmail.com

外部点动控制器 #422

推推 grbl 3年前 (2023-01-22) 284次浏览

关闭
Jibeji 开启了这个issue 2018 年 4 月 25 日 · 8条评论
关闭

外部点动控制器#422

Jibeji 开启了这个issue 2018 年 4 月 25 日 · 8条评论

注释

外部点动控制器 #422

您好,
我目前正在构建一个自主点动控制器。吊坠使用读取正交编码器和一些开关的 ATmega328p,它将提供 $J Gcode 指令。

我想知道将这些指令发送给 GRBL 的最佳方式是什么。
我应该在使用吊坠时切换 TX 和 RX 线还是有更好的选择?

外部点动控制器 #422

将它们发送到 GUI,然后 GUI 将它们传递给 GRBL

外部点动控制器 #422
作者

我想将它们发送到 GRBL,而不是 GUI。

外部点动控制器 #422

类似于这个?

Grbl Dro/Mpg

我正在“收听”第二个处理器中的 grbls 实时报告。要更改为 MPG 模式,我已将一个开关连接到 grbl 处理器(在最终版本中将是 momentray)。如果 grbl 可以切换到 MPG 模式(处于 IDLE 状态),它会将 MPG:1 添加到实时报告中,告诉第二个处理器接管 grbl 的输入流。这可以通过开关完成,但我的实现使用辅助 UART 输入。当切换回正常模式时,我将 MPG:0 添加到实时报告中。

外部点动控制器 #422
作者

是的,与此非常相似,它很棒!
开关是将 TX 线切换到 GRBL 还是将两个 UART 并联?

外部点动控制器 #422

第二个 UART 流仅作为输入,主要始终处理输出流,以便并行连接到 PC 和 MPG 处理器。

由于我使用函数指针来访问 HAL(在我的 ARM 端口中),我通过交换相关指针将输入流切换到辅助 UART,这里是我现在如何为 TI 的 MSP432 处理器执行此操作:

static void modeSelect (bool mpg_mode)
{
    BITBAND_PERI(MODE_PORT->IE, MODE_SWITCH_PIN) = 0;
    BITBAND_PERI(MODE_PORT->IES, MODE_SWITCH_PIN) = !mpg_mode;
    BITBAND_PERI(MODE_PORT->IFG, MODE_SWITCH_PIN) = 0;
    BITBAND_PERI(MODE_PORT->IE, MODE_SWITCH_PIN) = 1;

    // Deny entering MPG mode if busy
    if(mpg_mode == sys.mpg_mode || (mpg_mode && (gc_state.file_run || sys.state != STATE_IDLE)))
        return;

    BITBAND_PERI(MODE_PORT->OUT, MODE_LED_PIN) = mpg_mode;

    serialSelect(mpg_mode);

    if(mpg_mode) {
        serial2RxFlush();
        hal.serial_read = serial2GetC;
        hal.serial_get_rx_buffer_available = serial2RxFree;
        hal.serial_reset_read_buffer = serial2RxFlush;
        hal.serial_cancel_read_buffer = serial2RxCancel;
    } else {
        serialRxFlush();
        hal.serial_read = serialGetC;
        hal.serial_get_rx_buffer_available = serialRxFree;
        hal.serial_reset_read_buffer = serialRxFlush;
        hal.serial_cancel_read_buffer = serialRxCancel;
    }

    // Report WCO on first status report request from MPG processor
    if(mpg_mode)
        sys.report_wco_counter = 1;

    // Force a realtime status report
    hal.protocol_process_realtime('?');

    sys.mpg_mode = mpg_mode;
}

IMO 同样可以通过在 UART RX 信号上使用物理开关来实现。

外部点动控制器 #422
贡献者

外部吊坠支持在下一版本的待办事项列表中。

外部点动控制器 #422
作者

什么时候发布?
只是想知道我是否同时继续我自己的项目。

外部点动控制器 #422

看看这里,如果你有兴趣加入…

喜欢 (0)