中控系统是指对声、光、电等各种设备进行集中控制的设备。它应用于多媒体教室、多功能会议厅、指挥控制中心、智能化家庭等。用户可用按钮式控制面板、计算机显示器、触摸屏和无线遥控等设备,通过计算机和中央控制系统软件控制投影机、展示台、影碟机、录像机、卡座、功放、话筒、计算机、笔记本、电动屏幕、电动窗帘、灯光等设备。
–摘自百度百科
最近工作上要编写一个中控程序,用于控制某会场内的拼接、矩阵和音量等。中控主机选的是东华盛业,控制端为iPad。给中控主机和ipad设计好前端和后端程序之后,即可通过ipad对其设备进行控制,十分方便。
中控系统架构图:
相比于之前做某高大上项目中使用的AMX中控,后端程序代码都得自己写上万行,东华的中控界面简单,编程简单,几乎不用设计后端程序,直接拿到设备的串口控制代码,填写一下就OK了,所以这次编程其实做的最多的是前端的界面设计。另外个人感觉这台中控比较适合家用,有兴趣的可以去玩玩。
一、准备工作
中控主机的工作原理是:用户ipad程序上按下相应的控制按钮–>命令通过wifi和局域网送到中控主机–>中控主机响应命令,并通过设定的串口(RS232或485等)向被控设备发送指令–>被控设备响应指令,完成动作。
我们需要一个无线路由器,将中控主机、ipad和电脑连接到同个局域网中,过程不详细讲了。
因为设备的控制涉及到串口,所以需要向被控设备厂商索取该设备的串口控制代码。这里我们要控制拼接屏、矩阵和音量控制器,所以我拿到了这三台设备的串口控制代码,并整理归纳了主要控制代码,如下:(这里所有的设备串口波特率都是9600 数据位8 停止位1 无奇偶校验 无流控)
矩阵音视频切换:BB 04 00 01 IN OUT 00 55
拼接屏开关控制:E0 05 07 02 4A (开) E0 05 07 02 4B (关)
拼接屏切到单画面:E0 10 07 02 11 00 00 01 01 02 02 09 02 00 00 00(2*2拼接屏)
音量控制:MUTE11(第一路静音) INC105(第一路音量+5%) DEC105(第一路音量-5%)…..
当然厂商不会给你直接的控制代码,因为同个厂商不同型号不同产品用的是同一套代码,它只会告诉你这串代码哪一段对应的是哪个功能,需要自己根据实际情况去琢磨,所以首先我们需要测试控制代码。
准备工具:串口调试助手SPU(软件) USB转串口线 无线路由器
因为东华的中控比较简单,被控设备也比较简单,且全都是RS232的串口,所以我们不需要自己去跳串口线,直接买一根成品的USB转串口线就可以。下个驱动精灵安装USB转串口驱动,打开串口调试助手,选好相应的参数,端口为(COMx USB…),波特率、数据位、停止位和奇偶校验厂商会给,依次设置好,点上面的三角,下面的红字变绿,即打开电脑的串口。
接下来以我们的矩阵为例。代码为16进制的,所以我们要把发送设置选为Hex,然后将USB转串口线的另一头插到矩阵的RS232串口上(9针)。
二、测试串口控制
接下来找到之前从矩阵厂商那里拿到的矩阵切换控制代码:BB 04 00 01 IN OUT 00 55 (串口控制中,十六进制可用空格代替0x) 其中 IN为矩阵的输入接口编号,OUT为矩阵的输出接口编号。我们测试一下矩阵的音视频切换功能。发送串口控制码:BB 04 00 01 05 08 00 55 即为将矩阵的第5路切换到第8路,发送后听到矩阵“滴”一声,且前面板屏幕有反应即为成功。当然,如果不成功请多试几次,反复检查下代码是否有问题。
三、中控后端程序编写
上面我们测试成功后,即可将控制代码写入后端程序。打开东华中控的配套软件,主机命令设计器
添加设备–名字命名为矩阵。主机端口为1,波特率9600,无校验,停止位1。
选择矩阵,下面添加命令,编号为501,串口协议格式为16进制。
因为这里矩阵的切换涉及到IN和OUT两个变量,矩阵的输入输出是多口的,切换不是定死的,所以这里的控制协议需要做变量处理。
大致看了下东华中控的说明书,它给我们的变量定义有2个,X1和X2。所以协议中我们用X1代替矩阵的输入,X2代替矩阵的输出。如下:
需要注意的是每2个字符前面都要空一格,代替表示16进制的0x。
OK,到这里我们的后端程序就做完了,真的太简单了点。
四、中控前端程序设计
中控的前后端程序如何联系呢?怎么才知道我按下这个按钮,后端程序能正确执行相应的命令?它们通过命令编号联系起来的,命令编号是前端程序的核心。刚才我们定义了矩阵切换的命令编号为501,那么我们需要在前端程序中增加一个按钮,设置按钮编号为501,那么按下501编号的按钮,它就能够正确执行后端程序中编号为501的命令了。
打开东华中控提供的触摸屏设计器。
首先选中背景,将“大小”改大一点。
拖几个立体按钮上去。
选中按钮,把按钮上的文字改为按钮文字,命令(按下)改为501,组号改成3。
接下来全选中矩阵输入的8个按钮,将变量名改成eX1,对应后端程序中的输入变量X1;同样,将输出的变量名改为eX2。把自清空变量值改为true。
然后我们将输入输出得每个按钮对应的变量值改为01、02、03….分别对应矩阵的输入/输出的路数编号。(如果矩阵控制代码为字符,如[X1]*[X2]! 那么必须将路数编号转为ASCLL码,01对应31、02对应32、03对应33等)
最后根据实际情况,选中设计界面的背景,将主机IP改为中控主机的IP地址。(如需更改中控主机IP地址,请用东华自带的设置IP地址工具)
至此,一个简单的矩阵切换前端程序就完成了。
五、上传程序
将前面做好的后端程序保存,将中控主机的网络连接到跟电脑同个局域网。中控主机的IP地址默认为192.168.1.72,可以根据当前局域网的实际情况更改。完了在导航栏中选上传–上传到主机。
接着打开你的iPhone或者ipad。在appstore搜索abcd123下载。
打开ipad/iphone上的设置–无线局域网–连接当前电脑和中控主机所在的网络中。右边感叹号记下当前ipad/iPhone的IP地址。
打开下载好的app。在“触摸屏设计器”中选文件–上传到触摸屏–上传到苹果iphone/ipad。
选择刚才记下来的iPhone/ipad的地址,直接上传。
上传完成后,重新启动一下app打开,就可以看到界面了。
因为后端程序定义矩阵的主机端口为1,所以我们要将中控主机后面的串口1通过RS232串口线连接到矩阵。完成后,点ipad界面上的输入,输出,就可以实现矩阵切换了。
六、后记
东华全套中控设计软件下载:
最终结果预览: