发新帖

[试用评测] 【正点原子开源四轴飞行器MiniFly试用体验】+软硬解读

[复制链接]
发表于 2018-10-26 11:01:12
| 524 查看 | 0 回复
本帖最后由 川楠 于 2018-10-26 11:03 编辑

        感谢云汉,能够让我得到这款正点原子Minifly四轴飞行器,拿到这个飞行器已经很长一段时间了,正点原子对这个款四轴的开发真的很彻底,留给开发者能做的不多。
        开发者唯一需要学习的就是了解他们的硬件、算法、代码和通讯协议。
        原子做的有头模式、无头模式、4D空翻、定高飞行、无线升级几乎能想到的都做了。(视频等爱奇艺审核成功了在补上)
        除了原子的飞控设计外,其实在很多的设计,在后期的项目中,都能用上,这里,我就先简单的列举一些。

1、锂电池充放电与电量显示
        锂电池,在很多的设计中都用到,正点原子的这款也不例外。
         11.jpg
        充电管理,采用TP4059,该芯片最大支持600MA的充电电流,但是原子使用了R2电阻,应该是将锂电池的最大充电电流限制在200MA左右,另外,锂电池是一定要设计电池保护电路的,这个遥控器的电池上本身就有了电池电池保护板,故这里没有设计保护电路。
         22.jpg
        对于电池电量的显示,原子做发是直接使用ADC采集电池电压,根据锂电池的特性去估算电池的剩余电量,所以遥控器OLED显示的电量百分数应该是不准的。
         33.jpg
        原子在做法是,将ADC采集到的ADC转化为电池电压,然后将这个电压4.15V-3.25V映射成99%-0%.这样的做法只能显示个大概吧,实际上锂电池的的充电和放电不是线性的。

2、摇杆的数据处理
        这个遥控器采用了两个双轴摇杆,这种摇杆可以自行复位的,每个轴都是一个10K的电位器,通过ADC检测2、5端的电压去判断摇杆的状态。
         44.jpg
        在实际测试的过程中,由于摇杆每次回到中心的位置并不是一个绝对位置,所以电位器的中心点应该是设置一个死区。
         55.jpg
        原子的做法是,通过ADC采集电位器的电压,得到ADC,然后将这个值减去在中点的摇杆的值,这样就可以将摇杆的数值范围修改到正负一个范围,
经过:adcValue = deadband(adcValue,MID_DB_THRUST);
这时adcValue的值的范围应该是 [-2048 ,-150], [+150,+2048]
最后在将[-2048 ,-150], [+150,+2048]映射成[-100%,+100%]范围

3、四轴上的开关机按键
        在使用这个四轴的时候,每次按一下四轴就开机,在按一下四轴就关机,在没看到电路图之前,四轴关机之后,应该是可以完全断电,没想到我错了。个人觉得原子哥在这里没有设计好,也不知道当初他们是怎么考量的。
         66.jpg
        从原理图上看到电池输出的电流直接通过XC6204输出到VCCNRF,XC6204最大能输出300mA,其控制由nRF51822的GPIO进行控制,也就是说:电池接入四轴之后,nRF51822一直上电运行,电池一直放电。
看来之前我只关掉四轴上的开关是个错误的决定,电池的电量一直在被NRF51822放电。在仔细的检查一下nRF51822,确实没有低功耗方面的程序。

4、MEMS传感器级联IIC气压传感器
虽然硬件画起来很简单,但是软件编程方面,相信还是要花一些功夫才能搞定的。原子的原理图如下:
       77.jpg
      相关程序代买要需要查看STM32的工程源码。
       88.jpg

      不得不说,原子在STM32的程序上写的规范多了,一看就是很有功底的工程师写的,还是很严谨,同时这位原子哥也是一个对FreeRTOS使用的比较熟练的开发者,不会使用FreeRTOS的,查看这个源码也是很不错的。

对于这款四轴的改进和升级
        相信,很多的多朋友会和我一样,拿到手上,玩个几天就少了很多的对四轴的激情,原因有几点。
        1、飞控算法,原子哥做完了
        2、摄像头、原子有模块
        3、光流模块,原子还有
        4、无线固件升级,原子哥也做了。
        说实话,这款mini四轴能玩的,人家原子哥都玩了,公布源码,开放硬件。给我们学习者来说,是好事也不是好事。除了去学习人家做出来的东西、我们能做出新的东西不多。

所以对后面的来说不改动硬件,我们还有如下的事情。
        1、NRF51822是一款可以开发蓝牙4.0的MCU,所以这款四轴是可以通过手机蓝牙控制的。以后玩个空中自拍是可以的。
        2、控制功耗,整个项目中,没有低功耗方面的任何程序代码,做个低功耗,哪怕能延长1S也是可以,毕竟低功耗的设计经验我们是拿到手了。另外电池的电量评估,原子哥做的就比较随意了。真正的锂电池放电曲线,一般是这样的,如下图:
          99.jpg
        在不改进硬件的前提下,大伙儿可以根据这个曲线,进行电量的划分和评估。
        3、原子哥在这款四轴的通讯协议是没有公开的,Bootloader的升级协议、遥控器的通讯协议、四轴飞行器内部的双MCU之间的通讯流程、地面站的通讯协议,这些都是没有说明文档的,想要了解只有去看源码,当我们完全弄明白了这些协议,相信大家都已经完全吃透了这款四轴。





我要点赞 2

举报

您需要登录后才可以回帖 登录 | 立即注册