如果想扩展多个传感器,以太网通信可以满足要求吗
你使用的是什么控制软件,大概硬件系统是什么样的,需要扩展哪种通信协议传感器,以太网通信指的是多少速率的传输,载波以太网还是网线多少米?你的意思是要满足什么要求?
你的提问信息太少不明白你需要问什么,希望详细补充。
需要加很多传感器,满足比赛的要求,有usb的,gpio的,i2c的,就是利用您家的这个系统,接在pixhawk上,通过树莓派,电力载波发送给上位机,
这样的话通过电力载波以太网通信是可以的吗
是的,在ardusub系统中,一般都通过电力载波的网络连接进行所有的通讯。
但是具体加哪一种传感器,数据如何处理发送和显示,要具体分析选择。
比如在QGC中显示扩展传感器的数据的方法:
背景:
Ardusub使用Mavlink通信协议。
Pymavlink是用python实现的Mavlink协议。
使用Pymavlink可以创建python脚本读取传感器数据并向Ardusub设备发送信息或者命令。Pymavlink目前更新到Python2. 如果生态发展足够成熟,最终会发展为rov通用软件平台,丰富传感器的驱动库,实现各种传感器的即插即用。目前对于任何传感器有两个数据处理的选择:树莓派和pix,根据传感器的数据类型选择通信方式比如声纳和摄像头直接通过网口或usb在树莓派处理,其他已经具有pix库的比如gps直接连接到pix。有些需要编写程序读取树莓派上的传感器,并将数据与Pixhawk通信,这样做更容易,但是如果需要Pixhawk中的数据来进行反馈控制,那么读取Pixhawk上的数据更有意义,要依据具体情况选择系统连接方法。
提示:
Ardusub有一套自动保护机制,用于保护设备工作时的安全性。所有的Mavlink协议设备至少需要以1Hz的恒定频率发送HEARTBEAT信息,如果没有收到HEARTBEAT信息,会产生FAILSAFE自动保护机制。如果设备通过RC_CHANNELS_RAW或MANUAL_CONTROL _ 消息控制运动,这些控制指令必须以HEARTBEAT相同的频率发送(或者HEARTBEAT停止一段时间),否则同样会触发FAILSAFE。
大概的思路
1.顺利读取扩展传感器的数据,编写运行在树莓派(简单一些)或者pix(困难一些)上的驱动,也可以用arduino可能有现成的库连接到树莓派。
2.把数据通过mavlink发送,数据连接到mavproxy,mavproxy已经在树莓派中运行,只需要通过 NAMED_VALUE_FLOAT 发送mavlink消息。
3.接收读取并显示到QGC对应的数据比如现在新添加的云台角度和其他的信息显示就是如此实现的。具体可以仔细看一下云台角度那一段的源码。其实按照原先的其他传感器显示的方法照搬就可以,只要熟悉ardusub代码这些就很好做。
在Ardusub的长期计划中,也有一些计划把扩展的传感器通过usb或者其他方式连接到树莓派,然后通过UDP把数据发送到控制电脑。在http://192.168.2.2:2771/ Routing页面中,允许创建端点,例如arduino的串口或者udp端口,可以把这些端点连接到一起,可以在不变写任何代码的情况下把串行设备连接到控制端电脑。
也就是说大概有三种方式,一种是连接到树莓派或者pix通过mavlink把数据发送到QGC地面站并显示,另一种是通过树莓派自行新增程序读取和发送数据,在地面站电脑对应ip显示(网页或者其他数据显示途径),还有可以在电力载波加交换机扩展网口传感器。具体连接方案要看传感器具体情况选择。
通过mavlink协议发送的数据是通过串口发送给地面站的吗,这样是不是就不能适用电力载波了
能适用,都是通过载波的网口传输的
还有一点不懂的是,电力载波除了网口接口还有其他接口吗,再网上了解到的mavlink协议一半都是走串口的。。这点不太懂,希望得到解答
电力载波一般也可以有串口,我们正在做新版。
在ardusub系统里,pix是usb连接到树莓派,树莓派的网口接到载波的。就是说pix不直接连接到地面站,通过了树莓派。