开源改变世界

在方向变化中使用 hbridges 的小问题 #157

推推 grbl 3年前 (2023-01-21) 111次浏览

关闭
piLeoni 打开了这个问题 2013 年 1 月 3 日 · 5 条评论
关闭

在方向变化中使用 hbridges 的小问题#157

piLeoni 打开了这个问题 2013 年 1 月 3 日 · 5 条评论

注释

在方向变化中使用 hbridges 的小问题 #157

大家好!
我正在尝试将 grbl 用于绘图仪 xy,它使用 hbridges 而不是驱动器和伺服而不是 Z 步进器。
现在我正在处理第一部分。
我尝试使用这个版本的grbl通过ULN2003和L293D来驱动电机。

https://gist.github.com/3238961

由于我无法从上一个版本中获取 hex 文件,因此我已经集成了 0.7 版本的文件夹。
它似乎工作,但出于某种原因,当我要求反转旋转方向时,电机在旧方向上执行第一步,因此开始在正确的方向上旋转。
在所需方向的一个脉冲之后,另一个脉冲发生在相同的方向,除非它改变方向。
我还注意到,在另一个轴上给予提升,有时会发生短脉冲涉及另一个轴的情况。
有没有人有这个图书馆的经验?

我使用 grbl 控制器通过 arduino uno 移动它。
这些是我做hex文件时的提示信息,最后有一个Error 127。我不知道是否重要。

谢谢你们。

C:\用户\secondsky>cd grbl-0_7

C:\Users\secondsky\grbl-0_7>make clean
rm -f grbl.hex main.elf main.o motion_control.o gcode.o spindle_control.o serial
.o protocol.o stepper.o eeprom.o settings.o planner .o nuts_bolts.o limits.o
原则

C:\Users\secondsky\grbl-0_7>make grbl.hex
avr-gcc -Wall -Os -DF_CPU=16000000 -mmcu=atmega328p -I. -ffunction-sections
-cm ain.c -o main.o
avr-gcc -Wall -Os -DF_CPU=16000000 -mmcu=atmega328p -I. -ffunction-sections
-cm otion_control.c -o motion_control.o
avr-gcc -Wall -Os -DF_CPU=16000000 -mmcu=atmega328p -I. -ffunction-sections -cg
code.c -o gcode.o
avr-gcc -Wall -Os -DF_CPU=16000000 -mmcu=atmega328p -I. -ffunction-sections -cs
pindle_control.c -o spindle_control.o
avr-gcc -Wall -Os -DF_CPU=16000000 -mmcu=atmega328p -I. -ffunction-sections -cs
erial.c -o serial.o
avr-gcc -Wall -Os -DF_CPU=16000000 -mmcu=atmega328p -I. -ffunction-sections -cp
rotocol.c -o 协议.o
avr-gcc -Wall -Os -DF_CPU=16000000 -mmcu=atmega328p -I. -ffunction-sections -cs
tepper.c -o stepper.o
avr-gcc -Wall -Os -DF_CPU=16000000 -mmcu=atmega328p -I. -ffunction-sections -ce
eprom.c -o eeprom.o
avr-gcc -Wall -Os -DF_CPU=16000000 -mmcu=atmega328p -I. -ffunction-sections -cs
ettings.c -o settings.o
avr-gcc -Wall -Os -DF_CPU=16000000 -mmcu=atmega328p -I. -ffunction-sections -cp
lanner.c -o planner.o
avr-gcc -Wall -Os -DF_CPU=16000000 -mmcu=atmega328p -I. -ffunction-sections -cn
uts_bolts.c -o nuts_bolts.o
avr-gcc -Wall -Os -DF_CPU=16000000 -mmcu=atmega328p -I. -ffunction-sections -cl
imits.c -o limits.o
avr-gcc -Wall -Os -DF_CPU=16000000 -mmcu=atmega328p -I. -ffunction-sections -cp
rint.c -o print.o
avr-gcc -Wall -Os -DF_CPU=16000000 -mmcu=atmega328p -I. -ffunction-sections -om
ain.elf main.o motion_control.o gcode.o spindle_control.o serial.o protocol.o st
epper.o eeprom.o settings.o planner.o nuts_bolts.o limits.o print.o – lm -Wl,–gc
-sections
rm -f grbl.hex
avr-objcopy -j .text -j .data -O ihex main.elf grbl.hex
avr-objdump -h main.elf | grep.bss | ruby -e ‘puts “\n\n— Requires %s bytes
of SRAM” % STDIN.read.match(/0[0-9a-f]+\s/)[0].to_i(16) ‘
/usr/bin/sh: ruby​​: command not found
make: *** [grbl.hex] 错误 127

在方向变化中使用 hbridges 的小问题 #157
成员

此问题已得到解决。请在我们的 github 页面上使用当前的主版本 v0.8c。默认情况下,grbl v0.8c 不能解决您的问题。您必须在 config.h 文件中启用该选项并取消注释其中定义的步进延迟脉冲。(新的 v0.9a edge 分支应该不会有这个问题。如果你确实使用这个版本,请告诉我们它是如何为你工作的。)

您可以忽略 ruby​​ 命令错误。这仅在完成编译新十六进制后报告文件的大小。当前的 master 和 edge 分支不使用 ruby​​。

在方向变化中使用 hbridges 的小问题 #157
作者

对不起,有些事情我不明白:我需要激活哪个选项?
但是,取消注释的延迟脉冲选项位于版本 8 的配置文件中,但如果您想使用更改以提供使用 hbridges 而不是驱动程序,则它是需要替换的三个文件之一。
但是,如果我替换这些文件然后尝试获取十六进制,则会出现以下错误:

(版本 9(分支:边缘)尽管替换了三个文件但已编译了十六进制,但没有移动步进器)

C:\Users\secondsky>cd grbl-master

C:\Users\secondsky\grbl-master>make clean
rm -f grbl.hex main.elf main.o motion_control.o gcode.o spindle_control.o coolan
t_control.o serial.o protocol.o stepper.o eeprom.o settings.o planner.o nuts_bol
ts.o limits.o print.o report.o main.d motion_control.d gcode.d spindle_control.d
coolant_control.d serial.d protocol.d stepper.d eeprom.d settings.d planner .dn
uts_bolts.d limits.d print.d report.d

C:\Users\secondsky\grbl-master>make grbl.hex
avr-gcc -Wall -Os -DF_CPU=16000000 -mmcu=atmega328p -I. -ffunction-sections
-cm ain.c -o main.o
avr-gcc -Wall -Os -DF_CPU=16000000 -mmcu=atmega328p -I. -ffunction-sections
-cm otion_control.c -o motion_control.o
motion_control.c: In function ‘mc_dwell’:
motion_control.c:200: error: ‘DWELL_TIME_STEP’ undeclared (first use in this function
)
运动控制.c:200:错误:(每个未声明的标识符仅报告一次
motion_control.c:200: error: for each function it appears in
.
)在这个函数中使用

motion_control.c:218: error: ‘LIMIT_MASK’ undeclared (first use in this function
)
motion_control.c:234: error: ‘HOMING_LOCATE_CYCLE’ undeclared (first use in this
function)
make: *** [motion_control.o] 错误 1

C:\用户\secondsky\grbl-master>

在方向变化中使用 hbridges 的小问题 #157
成员

如果您还没有,则需要从主页上的 ZIP 按钮下载完整的源代码。取消注释#define STEP_PULSE_DELAY 10config.h 文件中的行。重新编译。这就是您需要做的全部。

v0.9a,请使用完整源代码。不要替换文件,因为这会破坏代码。

在方向变化中使用 hbridges 的小问题 #157
作者

我下载了这个:
https ://github.com/grbl/grbl/archive/master.zip

对不起,我意识到我不明白一些事情:
如果我只是打开那个选项,会发生什么?
我不需要通过替换来复制这三个文件,以便使用 grbl 驱动带 4pin 模式 hbridge 的步进器而不是 pololu(step 和 dir)驱动程序?
https://github.com/grbl/grbl/wiki/H-Bridge-as-stepper-driver

在方向变化中使用 hbridges 的小问题 #157
成员

我的错。我没有意识到 H 桥驱动器工作的引脚设置有重大变化。恐怕从那以后@nullsub的代码已编写,发生了很多更改并破坏了他的代码。你最好的成功机会是自己破解它或者干脆不使用 H 桥,因为它不是我们官方支持的东西。

要解决方向引脚的问题,我会像您使用的那样使用 v0.7d 代码,H 桥代码从中工作。然后查看 v0.8c 中的 stepper.c 以及如何设置另一个 timer2 中断以首先设置方向引脚,然后在一定延迟后执行步进脉冲。祝你好运。

喜欢 (0)