前面的教程介绍了如何将X3派装上无人机以如何建立通讯和供电,这里我们介绍在X3派上面安装Dronekit,并如何使用Dronekit编写自己的第一个脚本读取飞控数据。
一,安装Dronekit
1,无人机接上电池,检查X3派和飞控是否正常启动
2,我这里有显示器,键盘,我直接给X3派接上显示器,键盘鼠标,当然也可以通过笔记本端通过SSH命令连接X3派。启动系统后显示器显示桌面,然后直接连接wife,接下来就可以进入下一步了。不过在连接wife时着实让我有点头疼,可能是我显示器的缘故吧,wife图标被隐藏在右上角,得慢慢移动鼠标就会找到。
3,首先安装pip和python-dev:
右击鼠标打开菜单栏,打开 Open Terminal Here,
输入以下命令
sudo apt-get install python-pip python-dev
5,安装Dronekit
输入以下命令安装Dronekit
Sudo pip install dronkit
安装过程挺顺利的,因为后面我们需要连接飞控所以我们用SSH连接进行安装调试。
一,编写测试代码
安装好Dronekit我们需要测试X3派与飞控是否能正常通讯,
1,首先在X3派更目录下面新建一个名为test的文件夹用于存放测试代码文件,输入以下命令:mkdir -p ~/test
可以输入ls命令,查看是否新建好这个文件夹,如图所示。
1,通过cd命令切换到test文件夹下面,创建名为connect.py的文件,测试X3派能否连接飞控:tough connect.py
2,可以输入ls命令,检查是否新建好文件夹,如下图所示
1,使用vim编辑文件:sudo vim connect.py
输入密码进入编辑页面
复制以下命令-
from dronekit import connect
# Connect to the Vehicle (in this case a UDP endpoint)
vehicle = connect(‘/dev/ttyUSB0’, wait_ready=True, baud=921600)
# vehicle is an instance of the Vehicle class
print (“Autopilot Firmware version: %s” % vehicle.version)
print( “Autopilot capabilities (supports ftp): %s” % vehicle.capabilities.ftp)
print (“Global Location: %s” % vehicle.location.global_frame)
print (“Global Location (relative altitude): %s” % vehicle.location.global_relative_frame)
print (“Local Location: %s” % vehicle.location.local_frame #NED)
print (“Attitude: %s” % vehicle.attitude)
print( “Velocity: %s” % vehicle.velocity)
print (“GPS: %s” % vehicle.gps_0)
print (“Groundspeed: %s” % vehicle.groundspeed)
print (“Airspeed: %s” % vehicle.airspeed)
print (“Gimbal status: %s” % vehicle.gimbal)
print (“Battery: %s” % vehicle.battery)
print (“EKF OK?: %s” % vehicle.ekf_ok)
print (“Last Heartbeat: %s” % vehicle.last_heartbeat)
print (“Rangefinder: %s” % vehicle.rangefinder)
print (“Rangefinder distance: %s” % vehicle.rangefinder.distance)
print (“Rangefinder voltage: %s” % vehicle.rangefinder.voltage)
print (“Heading: %s” % vehicle.heading)
print( “Is Armable?: %s” % vehicle.is_armable)
print (“System status: %s” % vehicle.system_status.state)
print (“Mode: %s” % vehicle.mode.name # settable)
print (“Armed: %s” % vehicle.armed # settable)
保存退出后接下来要确保X3派与飞控连接通过数据线
输入以下命令查看端口:ls /dev/ttyUSB*
如果显示:/dev/ttyUUSB0
说明X3派已经有USB0端口连接
一,测试连接
输入以下命令:cd test
Python connect.py
成功运行后,会显示如下信息:
说明X3派通过Dronekit读取到了目前飞控的数据:系统警报、固件版本、姿态数据、电池电量、解锁状态、当前飞行模式等等。这样就成功运行了测试代码,成功将X3派与飞控实现了通讯。