最近项目要到DeadLine了,虽然各项进展基本的还可以,但是还是有一些压力的。这里就娱乐一下,说一个硬件的知识:DIP开关。
这个硬件原件有什么好说的,其实是自己在项目中用到了它,因为这么个玩意,实验室的四个人调试了一下午,真不值得。
问题背景
实验室买了一个新的YAAN的云台,控制协议使用的是通用的Pelco-D协议,原本老的云台用的好好的,换上了新的云台就不管用了,不管发送什么指令,就是不响应。于是乎,四个人调试了一下午。
最后我觉得可能的原因出在了云台的Address,填错了。每个设备都有一个逻辑的地址,原来的老的云台的逻辑地址是01(厂家告诉我的,我就那么一直用,没多想)。但是换上了新的云台,我也默认它的逻辑地址是01,所以导致了悲剧的产生,浪费大家的时间。
晚上回到家,我觉得可能就是这个逻辑地址出问题了,于是我又看了一下标准的PELCO-D协议,看到云台的地址可以以point-to-point的方式查询,指令:
同时注解上这样说的:
意思就是:这个指令只能用在点对点的应用程序中。被查询的设备看到了这个指令,不管这个指令的Byte2上填写的地址是多少,它都会回应。所以说如果多个设备接收到了这个指令,那么它们同时作出相应,都返回自己的地址给指令发出者。面对这好多的返回值,指令发出者也不知道谁是谁了。
到这里,似乎解决了我遇到的问题,找到了云台设备的逻辑地址。但是我从来没有设置过这个逻辑地址啊,云台硬件封装的很严实,看不到任何的一个元器件,在标准的Pelco-D协议中搜了个遍没有找到设置云台逻辑地址的指令。
最后发现这个逻辑地址是利用DIP开关设置的,同时这个DIP开关被封装在了严实的云台里面,打开云台应该可以设置。看一个DIP开关的样子:
原理
每一个键对应的背面上下各有两个引脚,拨至ON一侧,这下面两个引脚接通;反之则断开。这8个键是独立的,相互没有关联。此类元件多用于二进制编码。
可以设接通为1;断开为0,则有:
0000 0000
0000 0001
0000 0010
……
1111 1110
1111 1111
一共是256种编码
但是Pelco-D协议中的首地址是01,所以可以通过调节云台中的DIP开关,设置云台的逻辑地址在01~255之间变化。
提示:地址码不仅用在云台上,当使用Pelco协议控制相机的时候,也会用到逻辑地址码,也就是摄像头的逻辑地址号,范围在00H~FFH之间,是在安装摄像头时手动设定的,该值一定要正确,否则命令不会执行的。