M600(A3)云台+妙算manifold视频读取
开发环境,如题。
好了,当初开发的时候买了一套A3,Z3,妙算。。。。准备在妙算做onboardSDK的开发,同时能读取Z3云台数据,做定位用。
想法是很好的,也问了客服,A3可以和妙算连,Z3也可以和妙算连,A3也可以和Z3连。万万没想到,他们三个不可以同时连。
原因:妙算其实不是直接连Z3,是通过Z3云台座连的Z3。妙算是为M100开发的,M100云台座可以支持Z3,云台座的视频线恰好是8PIN的线,和妙算的接口一样。然而,A3支持的云台座也能连Z3,但是这个云台座引出的是7PIN的线,不能直接连到妙算上。
那么简单了,把线改一下就行了呗。
给DJI的大佬捡了一波肥皂后,搞到了,两种线的引脚定义。
7PIN的线在LIGHTBRIDGE2的天空端上写的很清楚。
其中G - + 就是我们要用到的三条线。
那么8PIN的线序来了。
其中USB_DP对应上面的+,USB_DM对应上面的-,GND对应G。
现在我们大概也能猜出,视频信息是通过USB协议传输的,所以接上三根USB线就可以了,CAN线是用来控制命令的,这里用不到,不用管。
准备7PIN和8PIN的两根线,把8PIN上的USB线抠出来,把7PIN上的USB线抠出来接到8PIN上,其他线不用管,完成。注意抠的时候用工具把卡口翘起来,就可以把线拔出,不要损坏了。
结果图:
测试:
在妙算下搭建OPENCV环境,然后打开一个工程,把妙算自带的例程加进去。这里注意妙算的例程是用C编写的,所以注意C和C++的混编,否则在链接dcam库时会出错。我这里用的是codeblocks,方便开发,其实也是调用的GCC 编译器。
另外,妙算返回的数据是NV12格式的,OPENCV里面自带了cvtColor函数,有一个参数是CV_YUV2BGR_NV12,正好派上用场。
效果图:
感觉还行,就是速度慢点,在20帧以内吧。