myqiang1990 发表于 2011-11-17 22:50:19

有做舞台灯光滴么?来看看吧, 小陈大哥在不?

我想问问,如何检测DMX512控台发过来的数据,然后更具这个数据选择加速多快?我发现,别人的产品数据变化的越快,加速就越快,变化得越慢,加速就相对比较慢,比如:0-255变化用了1s的时间,摆头的速度加速就相对比较慢,而如果是0-255变化只要100ms或者更短,那么摆头就加速很快,同样的数据变化量,不同的变化时间,导致加速就不一样,那我想问,如何实现这种检测的?难道用定时器来定时检测???

myqiang1990 发表于 2011-11-17 22:50:33

我不懂大家明白我的意思没有.....

dmxfeng 发表于 2011-11-17 23:28:43

那个是跟你的加减速的曲线有密切关系

dmxfeng 发表于 2011-11-17 23:30:59

如果你以512数据速度的话会一抖一抖的,因为人控制不可能平滑,数据不平滑走起来肯定会!!!!!

myqiang1990 发表于 2011-11-18 14:05:06

还想请教大家,我现在细分加速都弄好了,我最弄不明白的是,如何用DMX512控台控制电机的加速,比如说控台上的滑杆,因为滑杆数据是连续从0-255之间变化的,那么我怎么用0-255变化的数据来加减速电机?有人说是以单片机两次检测到数据的数据差来加速,但是我觉得没那么简单,因为控台发数据和单片机接收数据都很快,你滑杆从0-255变化,单片机绝对能检测到间隔是1的数据变化,不管你滑多快,我的意思是说,你滑的速度觉得没有控台发数据和单片机接收数据那么快,不是说你用很快的速度从0-255滑动,单片就只能收到0和255这两个数据.....

我的问题归根结底是:控台数据是连续变化,而且发送和接收都很快....如果是以角度差来加速的话,我觉得不完整,因为不管怎么样,单片机绝对能接收到0-1-2-3-4-5-6....255这样的数据,不管你滑多快,单片机不可能只接收到0和255着两个数据,那么如果我们程序是以角度差来加速的话,那就有点问题了,因为0-1-2-3-4-6...255这样的变化是不是很小的角度差????现在我就遇到这样的问题...所以请大侠指点迷津......

myqiang1990 发表于 2011-11-18 14:10:14

我的想法是在接收数据的时候延时一下,就是避免在很短的时间内检查到数据间隔为1变化的数据,在延时期间让单片机不断接收控台的数据,等超过延时了,再去执行加减速。如果延时完后,接收到得数据确实间隔很小,那么就慢速运行。如果间隔很大,就加速。。这样效果确实好了点,但是还是有问题。。这种办法我觉得始终不行....

changhui0222 发表于 2011-11-18 14:16:18

不太了解,帮顶!

chenyuqiu 发表于 2011-11-20 17:22:46

不好意思,这几天我在搞FPGA,你说这个问题很好解决!!

chenyuqiu 发表于 2011-11-20 17:48:28

回复【4楼】myqiang1990 小松鼠
还想请教大家,我现在细分加速都弄好了,我最弄不明白的是,如何用dmx512控台控制电机的加速,比如说控台上的滑杆,因为滑杆数据是连续从0-255之间变化的,那么我怎么用0-255变化的数据来加减速电机?有人说是以单片机两次检测到数据的数据差来加速,但是我觉得没那么简单,因为控台发数据和单片机接收数据都很快,你滑杆从0-255变化,单片机绝对能检测到间隔是1的数据变化,不管你滑多快,我的意思是说,你滑的速度觉得没有控台发数据和单片机接收数据那么快,不是说你用很快的速度从0-255滑动,单片就只能收到0和255这两个数据.....
我的问题归根结底是:控台数据是连续变化,而且发送和接收都很快....如果是以角度差来加速的话,我觉得不完整,因为不管怎么样,单片机绝对能接收到0-1-2-3-4-5-6....255这样的数据,不管你滑多快,单片机不可能只接收到0和255着两个数据,那么如果我们程......
-----------------------------------------------------------------------

你要把你整个电机的行程和控台的0--255对应起来就行了
比如当前电机的位置在零原点位置时,那对应的控台数值就是0,当你的电机是在终点位置时对应的控台值就是255
也就是说控台值每一个数值都对应着电机的一个绝对位置
具体的实现方法就是用算法将电机的行程和控台的0---255绑定成对应关系
至于你说的控台推得快电机就跑得快那是要实时计算每次接受到控台的值后跟当前的电机位置比较计算出要跑的行程,然后根据行程来赋予电机速度,行程远速度就快,行程短速度就慢,即也就是将速度与行程对应起来
这样不管单片机每次接收的数值是多少,程序都可以计算出当前的电机位置是多少,目标终点是在哪个位置,速度要多少

chenyuqiu 发表于 2011-11-20 17:50:26

回复【5楼】myqiang1990 小松鼠
我的想法是在接收数据的时候延时一下,就是避免在很短的时间内检查到数据间隔为1变化的数据,在延时期间让单片机不断接收控台的数据,等超过延时了,再去执行加减速。如果延时完后,接收到得数据确实间隔很小,那么就慢速运行。如果间隔很大,就加速。。这样效果确实好了点,但是还是有问题。。这种办法我觉得始终不行....
-----------------------------------------------------------------------

你不能用人工的方式去干预控台接收数值的快慢的,问题不能这样解决

myqiang1990 发表于 2011-11-20 18:43:19

回复【9楼】chenyuqiu小陈
-----------------------------------------------------------------------

恩...我已经想到办法了。。就是你说的8楼那个办法....以前有人跟我这样说,后来我不明白,后想象就明白了..呵呵

chenyuqiu 发表于 2011-11-20 19:49:54

回复【10楼】myqiang1990 小松鼠
回复【9楼】chenyuqiu小陈
-----------------------------------------------------------------------
恩...我已经想到办法了。。就是你说的8楼那个办法....以前有人跟我这样说,后来我不明白,后想象就明白了..呵呵
-----------------------------------------------------------------------

哈哈,你的领悟能力很强!!

xmlai 发表于 2011-11-20 20:19:04

不知道变频器加角位移,这样的方法怎样?现在还在试验中

myqiang1990 发表于 2011-11-21 01:27:58

回复【11楼】chenyuqiu小陈
-----------------------------------------------------------------------
多谢陈大哥的夸奖,,我也在做你这个产品,就是和你的一模一样的产品,我负责的就是这个产品的核心,步进电机控制,呵呵,以后有问题,还得向小陈大哥清教,就你下面连接,第二台那个小摆灯:
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4751589&bbs_page_no=1&search_mode=1&search_text=%CE%E8%CC%A8%B5%C6&bbs_id=9999

lixingling 发表于 2012-2-28 20:50:59

【13楼】 myqiang1990 小松鼠
我也想请教你,怎么联系你

songzm 发表于 2012-7-28 09:14:35

我想知道控台发过来的通信数据是什么?LZ是怎么接收到里面的数据的?

songzm 发表于 2012-7-28 16:16:30

如果我可以知道控台里面的数据变化情况就可以写程序了,痛苦啊,0~255?LZ是怎么测到那数据的????

Asch 发表于 2012-8-12 22:02:35

songzm 发表于 2012-7-28 16:16 static/image/common/back.gif
如果我可以知道控台里面的数据变化情况就可以写程序了,痛苦啊,0~255?LZ是怎么测到那数据的???? ...

DMX512去了解一下就知道了。

ming1172848 发表于 2012-9-7 18:23:30

chenyuqiu 发表于 2011-11-20 17:22 static/image/common/back.gif
不好意思,这几天我在搞FPGA,你说这个问题很好解决!!

陈哥,在么,能联系到你么,我有重要的事情找你商量哦

xujianglun1 发表于 2012-12-26 18:09:50

myqiang1990 发表于 2011-11-20 18:43 static/image/common/back.gif
回复【9楼】chenyuqiu小陈
-----------------------------------------------------------------------



请教下,小陈大哥是不是意思,
控制台发过来的速度级别,与电机的位置对应?


这个感觉不是很好理解,(貌似发过来的速度只与电机的转速有关,与电机的位置没有关系呀?。。请教如何理解,,)

Soul.art 发表于 2012-12-27 12:25:41

xujianglun1 发表于 2012-12-26 18:09 static/image/common/back.gif
请教下,小陈大哥是不是意思,
控制台发过来的速度级别,与电机的位置对应?



很简单

第一步,把步进电机的最低速度和最高速度与0-255对应上,这个更简单不用多说吧
第二步,电机速度初始化为0
第三步,接收发送来的DMX数据 (0-255之间任意数值),因为发送过来的数据不可能是平滑线性的,比如接收到的是127
第四步,电机速度变量从0开始往上进行+1,直至增加至127,至于速度变量+1的时间间隔就要看你步进电机的加速度曲线了

如果还不理解。。。。。。。

xujianglun1 发表于 2012-12-27 18:11:49

Soul.art 发表于 2012-12-27 12:25 static/image/common/back.gif
很简单

第一步,把步进电机的最低速度和最高速度与0-255对应上,这个更简单不用多说吧


谢谢,Soul.art
这样一解释我貌似理解很多了,
只是最后,+1 的时间,加速曲线,,,好像还是没有解决的思路,,

Soul.art 发表于 2012-12-27 18:27:00

xujianglun1 发表于 2012-12-27 18:11 static/image/common/back.gif
谢谢,Soul.art
这样一解释我貌似理解很多了,
只是最后,+1 的时间,加速曲线,,,好像还是没有解决的 ...

这个间隔时间就是确保速度变量自增时,步进电机能够平滑的从最低速达到最高速过程中,不产生大的抖动,这个间隔时间实际测试是最好的

xujianglun1 发表于 2012-12-28 16:52:40

Soul.art 发表于 2012-12-27 18:27 static/image/common/back.gif
这个间隔时间就是确保速度变量自增时,步进电机能够平滑的从最低速达到最高速过程中,不产生大的抖动,这 ...

谢谢Soul.art
貌似有点明白了,
今天貌似有新问题了,

电机有正转与反转,

正转的最大速度63级跳到反转的63级,,
这个过程没有减速与加速的过程,

Soul.art 发表于 2012-12-28 18:35:47

本帖最后由 Soul.art 于 2012-12-28 18:37 编辑

。。。。我不知道你最终需要达成什么效果

如果要达成LZ的效果,9楼说的已经很明白了,我这里只是画蛇添足而已

ltj6111 发表于 2013-5-25 11:13:33

步进电机在慢跑时,会出现抖动,是什么原因呢?
会不会跟电机的驱动曲线有关系呢?
页: [1]
查看完整版本: 有做舞台灯光滴么?来看看吧, 小陈大哥在不?