开源项目crazyflie学习研究(三)

上篇“开源项目crazyflie学习研究(二)”,我们选取了Loco Positioning System子项目切入学习,主要涉及单片机编程。本期,我们选取crazyflie的客户端源码来学习,主要开发语言是Python。

 

 一、源码结构

(一)源码github路径:

https://github.com/bitcraze/crazyflie-clients-python.git

(二)源码结构

主要代码在src目录下,其中包含4个模块,分别是cfclient、cfconfig、cfloader、cfzmq。

对应业务如下:

1、cfclient:crazyflie客户端主程序

2、cfconfig:配置块的编译与反编译

3、cfloader:crazyflie驱动的加载

4、cfzmq:网络通信(zero mq)

二、编译开发

由于客户端是基于Python和QT GUI开发的,因此需要按照以下步骤准备好开发环境。

(一)Debian/Ubuntu

对于Ubuntu的操作系统,首先需要确认系统中安装了哪个版本的python,是否安装了python3。

对于一台干净的Ubuntu的操作系统,可通过控制台安装所需的git、pip和Qt GUI库。代码如下:

sudo apt install git python3-pip libxcb-xinerama0

pip3 install --upgrade pip

(二)Windows

通过官网python.org安装Python3。安装的时候,要确保“增加到系统路径”的选项有勾选上,并通过以下命令,保证Python3已经正确安装。

python --version
pip --version

升级pip也是可以的。

pip3 install --upgrade pip.
 

(三)Mac

1、Intel X86

可通过brew命令安装Python3和所需的libs。代码如下:

brew install python3 libusb

brew link python3   # This makes sure the latest python3 is used

# if "which python3" does not return "/usr/local/bin/python3", relaunch your terminal

pip3 install --upgrade pip.

2、Apple M1

在Apple M1的Mac电脑上,由于并非全部依赖的编译都是arm64位,因此需要注意使用X86版本的Brew命令。这个可以通过arch命令来实现,代码如下:

# Installing brew for x86_64, it will be installed in /usr/local by default

arch --x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# Now we have to use brew and then python from /usr/local ...

arch --x86_64 brew install python@3.9 libusb

# The arch command is not required anymore since everything brew installed are x86 executables

阅读原文,请关注微信公众号,感谢支持!

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Crazyflie 2.0是一款多功能飞行器开发平台,重量仅为27g,适合您的手掌。它的高级功能使其成为开发人员的理想选择,蓝牙LE功能使其可以轻松地从移动设备上飞行。它体积小,重量轻,非常适合室内使用,但您可以轻松地在房子上方盘旋,因为您可以将鼠标悬停在餐桌旁。设计为无焊接套件,Crazyflie 2.0可通过将电机连接到电路板框架而快速组装,随时可以飞行。 Crazyflie 2.0实物组成: Crazyflie 2.0支持多种无线电协议,可以从支持蓝牙LE的移动设备或使用Crazyradio或Crazyradio PA的计算机上使用。虽然从移动设备飞行很有效,但通过使用适用于Windows,Mac OSX和Linux的Python客户端将平台连接到计算机,可以解锁平台的真正威力。这使您可以完全使用所有扩展板,轻松修剪飞行参数,以图形方式记录数据和设置参数。当连接到计算机时,您还可以获得额外的好处,即能够使用任何具有至少4个模拟轴的游戏手柄或操纵杆进行飞行。该设备可以轻松映射到客户端内部。 Crazyflie 2.0特征: 耐用的设计 易于组装,无需焊接 支持具有自动检测功能的扩展板 支持从支持蓝牙LE的iOS和Android飞行,以及使用Crazyradio或Crazyradio PA从Windows / MacOSX / Linux飞行 使用Crazyradio PA测试了1公里以上的无线电范围LOS 无线固件更新 通过标准uUSB进行车载充电 双MCU架构,带有专用无线电/电源管理SoC,适用于高级应用 使用Crazyradio或Crazyradio PA与计算机一起使用,用户可以通过无线电实时记录/绘图/设置变量,并充分利用扩展板 技术规范: 机械规格: 重量:27克 尺寸(WxHxD):92x92x29mm(电机到电机,包括电机安装脚) 收音机规格: 使用Crazyradio PA测试20 dBm无线电放大器至> 1 km范围的LOS 支持iOS和Android客户端的蓝牙低功耗支持(在iOS 7.1+和Android 4.4+上测试) 收音机向后兼容原版Crazyflie和Crazyradio 微控制器: STM32F405主要应用MCU(Cortex-M4,168MHz,192kb SRAM,1Mb闪存) nRF51822无线电和电源管理MCU(Cortex-M0,32Mhz,16kb SRAM,128kb闪存) uUSB连接器: 板载LiPo充电器,提供100mA,500mA和980mA模式 全速USB设备接口 部分USB OTG功能(Usb OTG存在但没有5V输出) IMU: 3轴陀螺仪(MPU-9250) 3轴加速度计(MPU-9250) 3轴磁力计(MPU-9250) 高精度压力传感器(LPS25H) 飞行规格: 飞行时间与库存电池:7分钟 库存电池冷却时间:40分钟 最大推荐有效载荷重量:15克 扩展连接器: VCC(3.0V,最大100mA) GND VCOM(未经调节的VBAT或VUSB,最大1A) VUSB(用于输入和输出) I2C(400kHz) SPI 2 x UART 用于SPI的4 x GPIO / CS 1线总线,用于扩展识别 2 x GPIO连接到nRF51 8KB EEPROM 可能感兴趣的项目设计: MyCrazyflie2.0飞控原理图/PCB工程文件,你值得拥有 说明: Crazyflie 2.0是一个开放项目,提供源代码和硬件设计并记录在案。该平台在设计时考虑了开发,实现了使开发更容易,更快速的功能,例如日志记录和实时参数设置以及无线固件更新。大多数项目的完整开发环境在虚拟机中可用,因此您无需安装任何工具链即可进入开发阶段。但是虚拟机也可以用于飞行。除了固件和软件项目之外,还有许多社区支持的API,用Java,Ruby,C / C ++,C#和Javascript编写。对于有兴趣进行更高级开发的人来说,有一个开发适配器套件,支持与Crazyflie 2.0上的两个MCU轻松连接JTAG / SWD。 固件和软件不断更新,增加了各种改进和新功能。该平台通过无线电和蓝牙LE支持无线固件更新,因此当发布新的新固件时,轻松更新它。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值