搜索
bottom↓
回复: 25

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

[复制链接]

出0入0汤圆

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

阿莫论坛20周年了!感谢大家的支持与爱护!!

你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。

出0入0汤圆

 楼主| 发表于 2011-11-17 22:50:33 | 显示全部楼层
我不懂大家明白我的意思没有.....

出0入0汤圆

发表于 2011-11-17 23:28:43 | 显示全部楼层
那个是跟你的加减速的曲线有密切关系

出0入0汤圆

发表于 2011-11-17 23:30:59 | 显示全部楼层
如果你以512数据速度的话会一抖一抖的,因为人控制不可能平滑,数据不平滑走起来肯定会!!!!!

出0入0汤圆

 楼主| 发表于 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这样的变化是不是很小的角度差????现在我就遇到这样的问题...所以请大侠指点迷津......

出0入0汤圆

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

出0入0汤圆

发表于 2011-11-18 14:16:18 | 显示全部楼层
不太了解,帮顶!

出0入0汤圆

发表于 2011-11-20 17:22:46 | 显示全部楼层
不好意思,这几天我在搞FPGA,你说这个问题很好解决!!

出0入0汤圆

发表于 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绑定成对应关系
至于你说的控台推得快电机就跑得快那是要实时计算每次接受到控台的值后跟当前的电机位置比较计算出要跑的行程,然后根据行程来赋予电机速度,行程远速度就快,行程短速度就慢,即也就是将速度与行程对应起来
这样不管单片机每次接收的数值是多少,程序都可以计算出当前的电机位置是多少,目标终点是在哪个位置,速度要多少

出0入0汤圆

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

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

出0入0汤圆

 楼主| 发表于 2011-11-20 18:43:19 | 显示全部楼层
回复【9楼】chenyuqiu  小陈
-----------------------------------------------------------------------

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

出0入0汤圆

发表于 2011-11-20 19:49:54 | 显示全部楼层
回复【10楼】myqiang1990 小松鼠
回复【9楼】chenyuqiu  小陈
-----------------------------------------------------------------------
恩...我已经想到办法了。。就是你说的8楼那个办法....以前有人跟我这样说,后来我不明白,后想象就明白了..呵呵
-----------------------------------------------------------------------

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

出0入0汤圆

发表于 2011-11-20 20:19:04 | 显示全部楼层
不知道变频器加角位移,这样的方法怎样?现在还在试验中

出0入0汤圆

 楼主| 发表于 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

出0入0汤圆

发表于 2012-2-28 20:50:59 | 显示全部楼层
【13楼】 myqiang1990 小松鼠
我也想请教你,怎么联系你

出0入0汤圆

发表于 2012-7-28 09:14:35 | 显示全部楼层
我想知道控台发过来的通信数据是什么?LZ是怎么接收到里面的数据的?

出0入0汤圆

发表于 2012-7-28 16:16:30 | 显示全部楼层
如果我可以知道控台里面的数据变化情况就可以写程序了,痛苦啊,0~255?LZ是怎么测到那数据的????

出0入0汤圆

发表于 2012-8-12 22:02:35 | 显示全部楼层
songzm 发表于 2012-7-28 16:16
如果我可以知道控台里面的数据变化情况就可以写程序了,痛苦啊,0~255?LZ是怎么测到那数据的???? ...

DMX512去了解一下就知道了。

出0入0汤圆

发表于 2012-9-7 18:23:30 | 显示全部楼层
chenyuqiu 发表于 2011-11-20 17:22
不好意思,这几天我在搞FPGA,你说这个问题很好解决!!

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

出0入0汤圆

发表于 2012-12-26 18:09:50 | 显示全部楼层
myqiang1990 发表于 2011-11-20 18:43
回复【9楼】chenyuqiu  小陈
-----------------------------------------------------------------------

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


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

出0入0汤圆

发表于 2012-12-27 12:25:41 | 显示全部楼层
xujianglun1 发表于 2012-12-26 18:09
请教下,小陈大哥是不是意思,
控制台发过来的速度级别,与电机的位置对应?

很简单

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

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

出0入0汤圆

发表于 2012-12-27 18:11:49 | 显示全部楼层
Soul.art 发表于 2012-12-27 12:25
很简单

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

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

出0入0汤圆

发表于 2012-12-27 18:27:00 | 显示全部楼层
xujianglun1 发表于 2012-12-27 18:11
谢谢,Soul.art
这样一解释我貌似理解很多了,
只是最后,+1 的时间,加速曲线,,,好像还是没有解决的 ...

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

出0入0汤圆

发表于 2012-12-28 16:52:40 | 显示全部楼层
Soul.art 发表于 2012-12-27 18:27
这个间隔时间就是确保速度变量自增时,步进电机能够平滑的从最低速达到最高速过程中,不产生大的抖动,这 ...

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

电机有正转与反转,

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

出0入0汤圆

发表于 2012-12-28 18:35:47 | 显示全部楼层
本帖最后由 Soul.art 于 2012-12-28 18:37 编辑

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

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

出0入0汤圆

发表于 2013-5-25 11:13:33 | 显示全部楼层
步进电机在慢跑时,会出现抖动,是什么原因呢?
会不会跟电机的驱动曲线有关系呢?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-10-3 15:53

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表