一种沙画控制系统的制作方法
本发明涉及计算机技术领域,具体涉及一种新型可diy的自动沙画控制系统。
背景技术:
自动沙画产品中通常包括沙画机和沙画控制系统,所述沙画机包括沙盘,沙盘的沙子上有铁质滚珠,沙盘底下设有驱动装置,例如磁力臂,该驱动装置具有磁吸组件,能够在运动过程中吸引滚珠在沙盘上沿着预定轨迹运行,从而实现沙画的自动绘制。但是在现有技术中,沙画控制系统通常只能根据预设的坐标来控制驱动装置运动,绘制的图形是既有的图形。预设图形存储在服务器中,通过沙画控制系统软件程序调取服务器中的图形发送至驱动装置,来实现沙画自动控制,不支持用户手动diy设置轨迹的功能。尽管一些模拟沙画产品实现了通过软件虚拟沙画绘制来实现diy,但是纯虚拟的沙画图像少了实体沙画的质感,且纯软件模拟沙画diy的算法复杂,研发成本较高,不利于产品化广泛推广。
同时,现有的沙画绘图系统采用app作为操作界面,必须进行配网连接服务器后才能打开app,更新图片信息并进行沙画绘制,不支持离线操作。
技术实现要素:
为了解决上述技术问题,本发明提供了一种沙画控制系统,本技术方案能离线存储图片信息,并且支持沙画系统的离线控制。提供用户diy功能,用户可以手动输入极坐标方程、参数方程或者手动输入绘图轨迹,用户可以进行diy后的图像的保存或者上传到服务器,并进行绘制。更人性化的app界面及功能,可以实时查看绘图进度及绘图位置。
为了实现上述目的,本发明采用的技术方案是,一种新型可diy的自动沙画控制系统,包括沙盘、滚珠及驱动模块,所述滚珠放置在所述沙盘上,所述驱动模块靠近所述沙盘底部与所述小球对应间隔设置,还包括:
输入控制模块,用于产生绘制图形,并将所述绘制图形转换为坐标系中的坐标点数据;
沙画绘制模块,用于接收所述坐标点数据,并驱动所述驱动模块按照所述坐标点数据运动,通过驱动模块拖动所述滚珠在所述沙盘上移动以形成沙画。
灯带,用于为沙画绘图进行照明,提高绘图效果。
进一步的,所述沙盘为圆盘结构,所述驱动模块包括磁力臂,所述输入控制模块包括输入面板,所述输入面板为矩形输入面板,所述输入控制模块对所述绘制图形进行间隔取点以形成直角坐标系中的直角坐标点数据;将所述直角坐标点数据进一步转化为极坐标点数据,之后,传递给所述沙画绘制模块。
进一步的,还包括文件存储模块,用于存储绘制图形,所述绘制图形为手动或机械笔连续在所述输入面板上绘制的手势绘图,和/或所述绘制图形为手动或机械笔在所述输入面板上输入函数参数绘制的函数绘图,和/或者所述绘制图形为通过输入面板从文件存储模块中选取的备选绘图。
进一步的,所述输入控制模块可加载app程序,该输入控制模块识别的操作包括手动操作、语音操作和/或按键操作,
输入控制模块判定为手势绘图指令时,获取手势的坐标点,并将获取的坐标存储在内存中,当结束绘图后则生成手势绘图,并将所述手势绘图进行间隔取点以形成直角坐标系中的直角坐标点数据;将所述直角坐标点数据进一步转化为极坐标点数据,之后,传递给所述沙画绘制模块。
输入控制模块判定为函数绘图指令时,若选择参数方程方式,选择提供的参数方程,输入参数方程参数a、b、c、d即可生成函数绘图;若选择输入极坐标方程并选择提供的极坐标方程,输入极坐标函数参数e、f、g即可生成函数绘图;之后,将所述函数绘图形进行间隔取点以形成直角坐标系中的直角坐标点数据;将所述直角坐标点数据进一步转化为极坐标点数据,之后,传递给所述沙画绘制模块。
app控制模块判定为选图绘图指令时,则获取文件存储模块中的备选绘图,并将所述备选绘图进行间隔取点以形成直角坐标系中的直角坐标点数据;将所述直角坐标点数据进一步转化为极坐标点数据,之后,传递给所述沙画绘制模块。
进一步的,所述输入控制模块还包括用于识别操作并解析操作指令的步骤,判断该操作指令为绘图指令或选图指令,若为绘图指令,则进一步判定该绘图指令为手势绘图指令或函数绘图指令,若为手势绘图指令,则获取手势绘图的极坐标点数据发送至沙画绘图模块,若为函数绘图指令,则等待传入函数参数后,计算该函数绘图的极坐标点数据发送至沙画绘图模块,若为选图指令,则获取备选绘图的极坐标点数据发送至沙画绘图模块。否则,返回输入控制模块的开始流程。
进一步的,所述沙画绘图模块,还用于在重启时,进行原点复位找到起始位置,当原点复位后,再判定是否接收到输入控制模块发送的输入控制信号,若是,则更新状态数据及控制命令,再进一步判断输入控制信号是否为绘图指令,若是,则更新坐标,更新控制状态,进一步判定是否达到t0更新周期,若是,则发送更新的绘图数据后结束本流程,否则直接结束本流程;若没有接收到输入控制模块发送的控制信号,或者收到的控制信号是其他指令,则直接跳转至更新控制状态,进一步判定是否达到t0更新周期,若是,则发送更新的绘图数据后结束本流程,否则直接结束本流程。
进一步的,在将直角坐标点数据转换为极坐标点数据的过程中,还包括动态插值步骤,该动态插值步骤具体为:
首先,设定位置点间阈值lmax及位置点间基准间距dmin,实时计算所述直角坐标数据中相邻两个位置点(xa,ya)与(xb,yb)之间的距离,当前位置点a与下一个位置点b之间的距离l大于阈值lmax时,计算动态插值次数num,
相邻位置点间的距离:
动态插值次数:num=l/dmin
获得动态插值次数后,利用a、b两位置点坐标生成直线方程:
(y-ya)/(yb-ya)=(x-xa)/(xa-xb),(当yb-ya不等于0时)
y=ya,(当yb=ya时)
x=xa,(当yb=ya时)
将所述动态插值次数带入上述直线方程生成相邻的插值点,再对生成的插值点进行直角坐标到极坐标的转化。
进一步的,所述插值点按照如下方式生成:
首先,计算δx:δx=abs(xa-xb)/num
其次,生成插值点横坐标x1=xa+δx;x2=xa+2δx;…xnum=xa+numδx;
将上述插值点横坐标带入上述直线方程生成插值点纵坐标。
进一步的,设定位置点间阈值lmin及位置点间基准间距dmin,实时计算所述直角坐标数据中相邻两个位置点(xa,ya)与(xb,yb)之间的距离,当前位置点a与下一个位置点b之间的距离l小于阈值lmin时,舍弃位置点b,继续计算当前位置点a与再下一个位置点b之间的距离l是否小于阈值lmin。
进一步的,输入控制模块选择输入极坐标方程,直接生产极坐标位置,引入轨迹点简化算法将过于密集的极坐标点数进行简化,将极坐标位置生成极坐标文件,具体包括以下步骤:
从读取到的第一个点开始记录为起始点,
读取下一个点的坐标,若读取到的点坐标与起始点在同一极坐标轨迹上,则更新结束点为当前坐标,并从新读取下一个点再次进行判断,
当读取到的点与起始点不在同一个极坐标轨迹上,
则输出起始点、结束点和点数,并将起始点到结束点上的这些点,用起始点和结束点两点表示。
进一步的,轨迹点简化算法具体流程如下:
运动轨迹a-b中存在c点,以a点为起始点,以c点为下一个点,计算
由于在a-b轨迹中需要进行t型路径规划因此可以联立以下方程:
通过加减速和匀速的距离公式,计算获得r轴运动距离sr和θ轴运动距离sθ
由于运动规划的原因,所以r轴与θ会同时从a运动到b点,所以r轴与θ轴的运动时间相同,
t(r0)+t(r1)=t(θ0)+t(θ1)
并且r轴与θ轴的工作速度以及加减速ar和aθ由系统设定,
联立以上方程可以获得r轴与θ轴的工作速度运行时间t(r1)与t(θ1)因此由θ方向的位置变化
以得到r方向的平均速度,公式如下:
v(rave)=sr/[t(r0)+t(r1)]
v(θave)=sθ/[t(θ0)+t(θ1)]
若要判断c点是否在a-b极坐标曲线上,则将θac和rac带入上式方程:
θac/(v(θave))=tθac
rac/(v(rave))=trac
若在带入上式公式后,满足tθac与trac相同,则说明c点在ab两点的极坐标曲线上,
以此类推,计算出ab两个点和ab间n个点是否满足在同一极坐标曲线上,若在同一曲线上则将该n+2个点简化为ab两点。
进一步的,所述沙画绘制模块接收到输入控制模块发送的输入控制信号后进行类型化处理:
若控制信号为手势绘图指令,则根据手指绘图轨迹的极坐标来更新极坐标并生成新的绘图数据,并在t0周期内发送更新的绘图数据至磁力臂,
若控制信号为函数绘图指令,则根据极坐标文件来更新极坐标并生成新的绘图数据,并在t0周期内发送更新的绘图数据至磁力臂,同时将更新的绘图数据存入sd卡文件存储模块中,
若控制信号为选图绘图指令,则从sd卡文件存储模块中读取对应的沙画的极坐标文件,并根据该沙画的极坐标文件来更新极坐标并生成新的绘图数据,并在t0周期内发送更新的绘图数据至磁力臂。
进一步的,所述沙画绘图模块与输入控制模块通过无线网络/有线网络通信,所述沙画绘图模块与sd卡文件存储模块通过sdio方式通信。
进一步的,led灯带与沙画绘图模块通过spi接口进行数据通信。
进一步的,所述磁力臂与沙画绘图模块通过io口进行数据通信(通过脉冲模拟进行控制)。
进一步的,所述输入控制模块登录时不需要进行配网,当处于离线状态时,系统可以通过离线保存在沙画绘图模块的内存或sd卡文件存储模块的沙画文件进行绘图操作。
进一步的,所述其他指令为灯光亮度调节指令。
进一步的,所述磁力臂包括控制系统和牵引机构,所述控制系统接收沙画绘制模块发送的更新的绘图数据,并生成控制指令驱动牵引机构,牵引机构驱动沙盘上的滚珠根据更新的绘图数据进行沙画绘制,更新的绘图数据中包括沙画文件的每个点的极坐标位置。
更进一步的,所述牵引机构设置在沙盘下方,滚珠放置在沙盘的沙子上,所述牵引机构包括转动机构和平移机构,所述转动机构包括底座、中心轴、转盘、转动电机及滑轨,所述中心轴固定在所述底座上,所述转盘安装在所述中心轴上,所述转动电机驱动所述转盘绕所述中心轴旋转,所述滑轨固定在所述转盘上,且所述滑轨与所述中心轴相交设置;
所述平移机构包括平移电机、滑块、驱动轮、传动带、磁铁及两个张紧轮,所述滑块可往复滑动的设置在所述滑轨上,所述驱动轮固定在所述中心轴上、所述传动带的两端分别与所述滑块的两端固定连接,所述两个张紧轮与所述驱动轮配合张紧所述传送带,所述平移电机驱动所述中心轴转动从而利用驱动轮、张紧轮及传动带带动所述滑块在所述滑轨上往复移动,所述磁铁固定在所述滑块的顶部,所述磁铁靠近所述沙盘的底部设置以磁吸并牵引所述滚珠运动,
所述控制系统接收沙画绘图模块发送的更新的绘图数据,并根据绘图数据分别驱动牵引机构和平移机构,进而牵引滚珠在沙盘上运动,绘制出沙画。
区别于现有技术,本发明具有以下有益效果:
1.本发明提出了一种新型可diy的自动沙画控制系统,包括输入控制模块、沙画绘图模块和磁力臂,用户可以手动输入极坐标方程、参数方程或者手动输入绘图轨迹,输入控制模块识别并解析操作指令,并根据不同操作指令采集不同的绘图轨迹,还能够识别并解析diy绘图指令,获取diy绘图轨迹生成极坐标发送至沙画绘图模块,沙画绘图模块根据输入控制指令,发送相应的更新的绘图数据发送给磁力臂,磁力臂根据绘图数据驱动沙盘上的铁球按照既定轨迹运动,绘制出沙画图形。
2.本发明的系统设计流程逻辑清晰,架构明晰,选择结构表达清楚,各模块之间数据传输和数据交互效率高,适配于多种计算机程序设计语言,广泛适用于不同运用环境的diy绘图设计,且能通过app控制来实现实物沙画的精准绘制,还能满足个性化的diy沙画绘图需求。
3.本发明中采用输入面板,输入面板可加载app程序,用户输入的绘图的精度、范围后,app会显示预览绘图轨迹效果,用户可以在该界面调整绘图参数,app显示手写界面,用户通过绘制轨迹,滚珠跟随用户的轨迹进行图像绘制。diy后的图像可以选择删除、保存或者共享到服务器。在进行沙画绘图时,app可以实时显示绘图进度及在原绘图效果上显示现在的绘图轨迹及位置。
4.本发明引入动态插值算法,经过该算法后的直角坐标点,再转换为极坐标,处理复杂图形时,先由直角坐标系解析生成直角坐标点,保证了复杂图形轨迹采集过程中生成的直角坐标点精度达到预设要求,进而保证绘图轨迹达到预设要求。
5.本发明中为了解决a-b两点间运动轨迹所采坐标点过密,引入轨迹点简化算法,从而保证了前瞻距离,实现运动控制的加减速正常,大大提高了绘图效率。
附图说明
图1为本发明实施例的系统结构示意图。
图2为本发明实施例的输入控制模块流程图。
图3为本发明实施例中输入参数方程界面示意图。
图4为本发明实施例中输入极坐标方程界面示意图。
图5为本发明实施例的沙画绘图模块流程图。
图6为本发明实施例的动态插值算法流程图。
图7为本发明实施例的动态插值算法中a、b两点及插值点数轨迹示意图。
图8为本发明实施例的轨迹点简化算法流程图。
图9为本发明实施例的轨迹点简化算法中a、b两点及c点轨迹示意图。
图10为本发明实施例的控制模块绘图进度、绘图效果及绘图轨迹示意图。
图11为沙画机的结构图。
图12为磁力臂的牵引机构的立体图。
图13为磁力臂的牵引机构的侧视图。
图14为选择参数方程(1)绘制出的沙画图形示意图。
图15为选择参数方程(1)绘制出的另一沙画图形示意图。
图16为选择参数方程(1)绘制出的又一沙画图形示意图。
图17为选择参数方程(1)绘制出的再一沙画图形示意图。
图18为选择参数方程(2)绘制出的沙画图形示意图。
图19为选择参数方程(2)绘制出的另一沙画图形示意图。
图20为选择参数方程(2)绘制出的又一沙画图形示意图。
图21为选择参数方程(2)绘制出的再一沙画图形示意图。
图22为选择极坐标方程(1)绘制出的沙画图形示意图。图23为选择极坐标方程(1)绘制出的另一沙画图形示意图。
图24为选择极坐标方程(2)绘制出的沙画图形示意图。
图25为选择极坐标方程(2)绘制出的另一沙画图形示意图。
图26为选择极坐标方程(2)绘制出的又一沙画图形示意图。
具体实施方式
为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。
请参阅附图1、图11所示,一种新型可diy的自动沙画控制系统,包括沙盘1、滚珠2、驱动模块、输入控制模块、sd卡文件存储模块,led灯带和沙画绘图模块,所述沙盘1为圆盘结构,所述滚珠2放置在所述沙盘1上,本实施例中,所述驱动模块包括磁力臂。所述磁力臂靠近所述沙盘1底部与所述滚珠2对应间隔设置,所述沙画绘图模块与输入控制模块通过无线网络/有线网络通信,所述沙画绘图模块与sd卡文件存储模块通过sdio方式通信,led灯带与沙画绘图模块通过spi接口进行数据通信。所述磁力臂与沙画绘图模块通过io口进行数据通信,通过脉冲模拟进行控制。sd卡文件存储模块,用于存储沙画的极坐标文件。led灯带,用于显示led灯带的控制状态及绘图控制状态。所述输入控制模块用于产生绘制图形,并将所述绘制图形转换为坐标系中的坐标点数据;所述沙画绘制模块用于接收所述坐标点数据,并驱动所述磁力臂按照所述坐标点数据运动,通过磁力臂拖动所述滚珠2在所述沙盘1上移动以形成沙画。所述sd文件存储模块用于接收并存储绘制图形。所述绘制图形由输入控制模块传递给sd文件存储模块存储。
参考图2所示,所述输入控制模块包括输入面板,所述输入面板为矩形输入面板,所述输入控制模块对所述绘制图形进行间隔取点以形成直角坐标系中的直角坐标点数据;将所述直角坐标点数据进一步转化为极坐标点数据,之后,传递给所述沙画绘制模块。本实施例中,所述绘制图形为手动或机械笔连续在所述输入面板上绘制的手势绘图、手动或机械笔在所述输入面板上输入函数参数绘制的函数绘图、或者所述绘制图形为通过输入面板从文件存储模块中选取的备选绘图。在本实施例中,所述输入控制模块可以实现上述三者不同类型的绘制图形的绘制。
所述输入控制模块还包括识别操作并解析操作指令的步骤,判定该操作指令是否为diy绘图指令,若是,则判断该diy绘图指令是否为手势绘图指令,若是,则获取手势绘图的极坐标点数据发送至沙画绘图模块;若该diy绘图指令为函数绘图指令,则等待传入函数参数后,计算该函数绘图的极坐标点数据发送至沙画绘图模块;若该操作指令不是diy绘图指令,判断该操作指令是否为选图绘图指令,若是,输入控制模块通过wifi与沙画绘图模块进行数据通信,并读取sd卡存储模块中备选绘图的极坐标点数据发送至沙画绘图模块,否则,返回输入控制模块的开始流程。
该输入控制模块可加载app程序,识别的操作包括手动操作、语音操作和/或按键操作。
所述输入控制模块判定上述操作指令为手势绘图指令时,获取手势的坐标点,并将获取的坐标存储在内存中,当结束绘图后则生成手势绘图,并将所述手势绘图进行间隔取点以形成直角坐标系中的直角坐标点数据;将所述直角坐标点数据进一步转化为极坐标点数据,之后,传递给所述沙画绘制模块。
所述输入控制模块判定上述操作指令为函数绘图指令时,参考图3所示,若选择输入参数方程方式,选择提供的参数方程,输入参数方程参数即可生成函数绘图,之后,将所述函数绘图形进行间隔取点以形成直角坐标系中的直角坐标点数据;将所述直角坐标点数据进一步转化为极坐标点数据,之后,传递给所述沙画绘制模块。
在本实施例中所采用的参数方程包括但不限于以下:
参数方程(1)
x=cos(at)–cos(bt)^3
y=sin(ct)–sin(dt)^3
对选取参数方程(1)并输入不同的a,b,c,d四个参数,这可以绘制出如图14、图15、图16和图17所示的不同的沙画图形。
参数方程(2)
x=cos(at)–cos(bt)^3
y=sin(ct)–sin(dt)^4
对选取参数方程(2)并输入不同的a,b,c,d四个参数,这可以绘制出如图18、图19、图20和图21所示的不同的沙画图形。
参考图4所示,若选择输入极坐标方程并选择提供的极坐标方程,输入极坐标函数参数e、f、g即可生成函数绘图,用户输入的精度、范围后,app会显示预览绘图轨迹效果,用户可以在该界面调整绘图参数。之后,将所述函数绘图形进行间隔取点以形成直角坐标系中的直角坐标点数据;将所述直角坐标点数据进一步转化为极坐标点数据,之后,传递给所述沙画绘制模块。
在本实施例中所采用的极坐标方程包括但不限于以下:
极坐标方程(1)
(theta/(abs(cos((a*theta+theta^b)))^(c)))
该公式为旋转螺旋图形,以theta为分子可以产生螺旋图形,abs可以使图像关于中心对称,除以cos函数可以产生突起。可以通过修改a、b、c三个参数产生不同样式的旋转螺旋图形,根据theta的递增变化或者递减变化,可以实现从内而外绘图或者从外而内绘图。
当a=1,b=1,c=1时,螺旋向外,无相位及图形变化。所绘制的图形如图22所示。
通过改变a、b、c的值,可以使图像产生特殊的变化。a值可以改变图形旋转的偏移量,b值可以改变突起个数,即图形变化次数,c值可以改变图形的变化强度。
当a=3,b=0.5,c=0.02时,所绘制的图形如图23所示。
极坐标方程(2)
(abs(cos(a*theta))+abs(sin(b*theta)))
该函数为关于原点对称的图形,由于cos和sin分别会在x的负半轴和y的负半轴产生负值,所以引入abs使图形对称,符合对称美,改变a可以改变图形花瓣的位置,改变b可以使花瓣旋转,绘制出的图形如图24所示。当改变参数a后,绘制出的图形如图25所示。当改变b后,绘制出的图形如图26所示。
当选择开始绘图后,输入控制模块的app程序通过wifi将图片坐标信息下发到底层沙画绘图系统,进行图像绘制。用户选择手写输入后,app显示手写界面,用户通过绘制轨迹,滚珠会跟随用户的轨迹进行图像绘制。diy后的图像可以选择删除、保存或者共享到服务器。参考图10所示,在进行沙画绘图时,app可以实时显示绘图进度及在原绘图效果上显示现在的绘图轨迹及位置。
输入控制模块判定为选图绘图指令时,则读取所选图片的坐标信息并生成极坐标文件。
(1)当处理使用直角坐标函数生成的图形时,由于直角坐标的运动轨迹为直线,若生成类似于正方形图形时,只会产生4个拐点数据,若生成直线则只会产生两个端点数据(以此类推)。沙画绘图模块为极坐标方式,若仅将四个直角坐标点转换为极坐标点进行绘制,绘图结果并不为矩形或者直线,而是边为弧线的四边形与弧线,特别是对于处理复杂图形时,需要先由直角坐标系解析生成直角坐标点,该过程会出现生成的直角坐标点精度达不到预设要求的情况,从而会导致绘图轨迹达不到预定的效果。因此在app控制模块将x,y类型的直角坐标转换为极坐标位置时,引入动态插值算法先将直角坐标系解析成直角坐标点,再转换为极坐标位置,将极坐标位置生成极坐标文件,参考图6所示,具体包括以下步骤:
在处理直角坐标数据时,直角坐标系中的直线方程为y=kx+b,参数为k和b,设定位置点间阈值lmax及位置点间基准间距dmin,实时计算所述直角坐标数据中相邻两个位置点(xa,ya)与(xb,yb)之间的距离,当前位置a与下一个点的位置b两点间距离大于阈值lmax时,参考图7中的a、b点,通过lnin进行计算a、b两点间的距离l,并通过单点间距dmin计算动态插值次数,其中单点间距dmin是通过根据调试过程,选择的一个适合的沙画绘制的精度。dmin值为0.24mm,该值由瑞利判据在瞳孔直径为5mm,光波长为500nm时,离桌子间距2m时的标准通过x=lθ计算得出的。lmax为5倍的dmin即1.2mm。
两点间的距离:
动态插值次数:num=l/dmin
将a、b两点坐标传入直线拟合函数,获得直线函数,该直线函数通过传统的y=ax+b,联立ab两点即可获取a,b两个参数,获得动态插值次数后,利用a、b两位置点坐标生成直线方程:
(y-ya)/(yb-ya)=(x-xa)/(xa-xb),(当yb-ya不等于0时)
y=ya,(当yb=ya时)
x=xa,(当yb=ya时)
将所述动态插值次数带入上述直线方程生成相邻的插值点,再对生成的插值点进行直角坐标到极坐标的转化。
所述插值点按照如下方式生成:
首先,通过插值次数计算δx:δx=abs(xa-xb)/num
其次,生成插值点横坐标x1=xa+δx;x2=xa+2δx;…xnum=xa+numδx;
将上述插值点横坐标带入上述直线方程生成插值点纵坐标,
得到动态插值后的点:y(a0…an)=k*x(a0…an)+b。
若k值不存在,则将a、b坐标,动态插值次数传入k不存在的插值函数,输出插值次数、获得插值后的n个点的坐标,即为目标点数组,具体公式如下:
通过插值次数计算δy=abs(ya-yb)/num,
动态插值后的点:y(a0…an)=(0…n)*δy。
设定位置点间阈值lmin及位置点间基准间距dmin,实时计算所述直角坐标数据中相邻两个位置点(xa,ya)与(xb,yb)之间的距离,当前位置点a与下一个位置点b之间的距离l小于阈值lmin时,舍弃位置点b,继续计算当前位置点a与再下一个位置点b之间的距离l是否小于阈值lmin。
(2)由于底层运动控制的前瞻控制空间有限(n个点),前瞻距离为n个点的距离,若传入的极坐标点较为密集,会导致前瞻距离减小。为保证运动控制的加减速正常,当前瞻不足时,运动控制必须通过减速的方式,才保证能正常减速。若传入的极坐标点数过于密集,例如图9中的a、b两点间,会导致前瞻控制识别到前瞻距离过短导致绘图减速,为解决当ab两点间由于存在点数过密,且中间点在ab极坐标曲线上,从而导致前瞻距离减小,运行速度减小的情况。输入控制模块选择输入极坐标方程,直接生产极坐标位置,引入轨迹点简化算法将过于密集的极坐标点数进行简化,将极坐标位置生成极坐标文件,参考图8所示,具体包括以下步骤:
从读取到的第一个点开始记录为起始点,
读取下一个点的坐标,若读取到的点坐标与起始点在同一极坐标轨迹上,则更新结束点为当前坐标,并从新读取下一个点再次进行判断,
当读取到的点与起始点不在同一个极坐标轨迹上,
则输出起始点、结束点和点数,并将起始点到结束点上的这些点,用起始点和结束点两点表示。
该轨迹点简化算法具体流程如下:
运动轨迹a-b中存在c点,以a点为起始点,以c点为下一个点,计算
由于在a-b轨迹中需要进行t型路径规划因此可以联立以下方程:
通过加减速和匀速的距离公式,计算获得r轴运动距离sr和θ轴运动距离sθ
由于运动规划的原因,所以r轴与θ会同时从a运动到b点,所以r轴与θ轴的运动时间相同,
t(r0)+t(r1)=t(θ0)+t(θ1)
并且r轴与θ轴的工作速度以及加减速ar和aθ由系统设定,
联立以上方程可以获得r轴与θ轴的工作速度运行时间t(r1)与t(θ1)
因此由θ方向的位置变化
v(rave)=sr/[t(r0)+t(r1)]
v(θave)=sθ/[t(θ0)+t(θ1)]
若要判断c点是否在a-b极坐标曲线上,则将θac和rac带入上式方程:
θac/(v(θave))=tθac
rac/(v(rave))=trac
若在带入上式公式后,满足tθac与trac相同,则说明c点在ab两点的极坐标曲线上,
以此类推,计算出ab两个点和ab间n个点是否满足在同一极坐标曲线上,若在同一曲线上则将该n+2个点简化为ab两点。
参考图5所示,本实施例中所述沙画绘图模块的流程为,沙画绘图模块在重启时,进行原点复位找到起始位置,当原点复位后,再判定是否接收到输入控制模块发送的输入控制信号,若是,则更新状态数据及控制命令,再进一步判断输入控制信号是否为绘图指令,若是,则更新坐标重新绘图,更新控制状态,进一步判定是否达到t0更新周期,若是,则发送更新的绘图数据后结束本流程,否则直接结束本流程;若没有接收到输入控制模块发送的输入控制信号,或者收到的输入控制信号是其他指令,例如灯光亮度调节指令,则直接跳转至更新控制状态,进一步判定是否达到t0更新周期,若是,则发送更新的绘图数据后结束本流程,否则直接结束本流程。
所述沙画绘制模块接收到输入控制模块发送的输入控制信号后进行类型化处理:
若输入控制信号为手势绘图指令,则根据手指绘图轨迹的极坐标来更新极坐标并生成新的绘图数据,具体地:获取当前手势触控点的坐标,并将获取的坐标存储在内存中,当结束绘图后将获取的点等比例放大成绘图的直角坐标,并将坐标转换为极坐标,从而生成手指轨迹图片,所述绘图数据则包括该手指轨迹图片,并在t0周期内发送更新的绘图数据至磁力臂,
若app控制信号为函数绘图指令,则根据极坐标文件来更新极坐标并生成新的绘图数据,并在t0周期内发送更新的绘图数据至磁力臂,同时将更新的绘图数据存入sd卡文件存储模块中,具体地:app控制模块判定为函数绘图指令时,若选择参数方程方式,并选择提供的参数方程,输入参数方程参数a、b、c、d即可生成坐标文件,并将直角坐标转换为极坐标文件;若选择输入极坐标方程并选择提供的极坐标方程,输入极坐标函数参数e、f、g即可生成极坐标文件。
若app控制信号为选图绘图指令,则读取所选图片的坐标信息并生成极坐标文件,具体地:从sd卡文件存储模块中读取对应的沙画的极坐标文件,并根据该沙画的极坐标文件来更新极坐标并生成新的绘图数据,并在t0周期内发送更新的绘图数据至磁力臂。
本实施例中,磁力臂,用于接收沙画绘图模块发送的更新的绘图数据,并驱动沙画机绘制沙画。
参考图11所示,图中示意了磁力臂的分体结构图,所述沙画控制系统包括沙盘1、滚珠2及磁力臂,该滚珠2放置于该沙盘1的沙子上,该沙盘1上安装玻璃罩20防止沙子或该滚珠2从该沙盘1抛出;该沙盘1底部设有外壳19,磁力臂安装在外壳19内且设置该沙盘1的下方。当滚珠2在沙盘1上滚动时,会在沙子上留下痕迹。所述磁力臂包括控制系统和牵引机构3,所述牵引机构3设置在沙盘1下方,所述控制系统接收沙画绘制模块发送的更新的绘图数据,并生成控制指令驱动牵引机构3运动,该牵引机构3牵引沙盘1上的滚珠2移动该滚珠2的依据该极坐标位置进行运动,滚珠的痕迹组成图案,从而使得沙盘1上的滚珠2根据更新的绘图数据进行沙画绘制,更新的绘图数据中包括沙画文件的每个点的极坐标位置。
参考图12和图13所示所示,所述牵引机构3包括转动机构和平移机构,所述转动机构包括底座4、中心轴5、转盘6、转动电机7及滑轨8,所述中心轴5固定在所述底座上,所述转盘6安装在所述中心轴5上,所述转动电机驱动所述转盘绕所述中心轴旋转,所述滑轨固定在所述转盘6上,且所述滑轨与所述中心轴相交设置;
所述平移机构包括平移电机9、滑块10、驱动轮11、传动带12、磁铁13及两个张紧轮14,所述滑块可往复滑动的设置在所述滑轨上,所述驱动轮11固定在所述中心轴上、所述传动带12的两端分别与所述滑块的两端固定连接,所述两个张紧轮与所述驱动轮11配合张紧所述传送带,所述平移电机9驱动所述中心轴转动从而利用驱动轮11、张紧轮及传动带12带动所述滑块10在所述滑轨上往复移动,所述磁铁13固定在所述滑块10的顶部,所述磁铁13靠近所述沙盘的底部设置以磁吸并牵引所述滚珠运动,所述控制系统接收沙画绘图模块发送的更新的绘图数据,并根据绘图数据分别驱动牵引机构运动和平移机构,进而牵引滚珠在沙盘上运动,绘制出沙画。
本发明实施例能够根据不同操作指令采集不同的绘图轨迹,还能够识别并解析diy绘图指令,获取diy绘图轨迹生成极坐标发送至沙画绘图模块,沙画绘图模块根据输入控制指令,发送相应的更新的绘图数据发送给磁力臂,磁力臂根据绘图数据驱动沙盘上的铁球按照既定轨迹运动,绘制出沙画图形。引入动态插值算法,经过该算法后的直角坐标点,再转换为极坐标,处理复杂图形时,先由直角坐标系解析生成直角坐标点,保证了复杂图形轨迹采集过程中生成的直角坐标点精度达到预设要求,进而保证绘图轨迹达到预设要求。本实施例引入轨迹点简化算法,解决a-b两点间运动轨迹所采坐标点过密从而保证了前瞻距离,实现运动控制的加减速正常,大大提高了绘图流畅性和效率。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括……”或“包含……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的要素。此外,在本文中,“大于”、“小于”、“超过”等理解为不包括本数;“以上”、“以下”、“以内”等理解为包括本数。
尽管已经对上述各实施例进行了描述,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改,所以以上所述仅为本发明的实施例,并非因此限制本发明的专利保护范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围之内。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除