DIY基于树莓派的OpenTX航模遥控器(一)

【前言】

在正式讨论OpenTX遥控器之前,先罗列一下自己以往DIY遥控器的经历,正是通过这些不断摸索逐步积累了DIY的经验,以及大部分的驱动代码。基于对Python的热爱,所有制作都是基于Python编程的,虽然对于实时运行系统,Python还有很多不足,但随着年纪的增长,我再不想玩C++了,呵呵~

第一版遥控器

从小就充满了对无线电遥控的好奇与向往,于是在第一次接触nrf24L01的时候,就有了做个无线遥控器的冲动,于是利用树莓派3B开始DIY,忙忙碌碌为开关、电位器、摇杆、lcd屏、AD转换模块、RF模块等等写驱动模块,一切从零开始~

这一版没有留下图片,因为外观上和第二版几乎是一模一样的,但只是个雏形。当时感觉到的问题:

1、树莓派IO接口数量不足,遥控器是有很多开关的,每个开关就要占用1-2个端口;还有I2C、SPI又占用一部分端口;那蜂鸣器、led指示灯呢?

2、树莓派没有直接可用的ADC接口,摇杆、电位器、电池电压等都要使用外置的ADC模块,机内走线很繁复。

3、体积、耗电都大,发射机也就算了,接收机呢?没有省电小巧的接收机还怎么玩下去?

此时,在玩Python硬件的过程中看到了基于STM32的PYBoard,MicroPython也是Python,最关键是它IO接口多、有n多内置AD端口、体积小、比树莓派省电,于是立即动手拆掉了树莓派~

第二版遥控器

如前所述,这一版是基于PYBoard的,MicroPython编程,开机立即直奔主题进入主程序循环,不像树莓派还要等系统初始化之后,才能轮到我自己的程序。当时的确很激动,风风火火搞了下去,研究怎么设定自己的FHSS跳频机制,各种尝试,最后基于PYBoard的能力以及Python的效率设定每秒36跳最合适,就这样发射机、接收机都很完美。最后把接收机装到自己的1:8四轮驱动悍马车上,悍马跑了很远很远,RF模块也很给力!

DIY基于树莓派的OpenTX航模遥控器(一)_第1张图片 DIY基于树莓派的OpenTX航模遥控器(一)_第2张图片


DIY基于树莓派的OpenTX航模遥控器(一)_第3张图片 DIY基于树莓派的OpenTX航模遥控器(一)_第4张图片

幸福来得快,走得也快,因为PYBoard的内存溢出了!航模遥控的内部设置是很复杂的,很复杂的,很复杂的,因为你要让飞机、机器人做出很复杂的动作。而且一旦拥有了远程无线控制的能力,就会想着再搞出些花样来,1KM不够远,弄个无线接力的网络?让自己的控制力无处不在?嗯,这一切的想法在PYBoard这里只有一个结论——内存溢出!

于是,哥只能把辛辛苦苦编的各种花哨功能删掉了,只留下核心的航模控制,跳频协议是心血,顽强地保留下来,于是最后得到的是一台干乎乎的遥控器,它能控制,但它却少了快乐~

又念起了树莓派的好处来,至少发射机是可以用树莓派来做核心的!

第三版遥控器

有了前二次的经验,这一次构想:

1、发射机采用树莓派,接收机采用PYBoard,这是目前基于Python的有限可选项;

2、升级硬件配置,大干一场,向中高端商品遥控器看齐,毕竟树莓派的运算能力是足够的,linux也是无所不能的!

3、加强电源配置,配置越高耗电越大。

有了想法,就开始构思蓝图,最终弄出个啥玩意出来才好,先看看自己心仪的遥控器吧:

DIY基于树莓派的OpenTX航模遥控器(一)_第5张图片 DIY基于树莓派的OpenTX航模遥控器(一)_第6张图片

扶他爸,好几千,还有更好更贵的,买不起~只能靠自己动手了!高端大气的标配就是大彩屏,字符LCD虽然省电够用,但已经有点Low了,触摸屏也是可以考虑的,毕竟现在很多新鲜的东东都是用手机APP操控的,触摸屏意味着无数个功能按钮,传统航模遥控器那些金属开关除了可靠性,我并不感觉会比触摸屏更方便,尤其是玩过电容式触摸屏以后。

有了方向,又是一通猛干,出来下面的第三版发射机:

DIY基于树莓派的OpenTX航模遥控器(一)_第7张图片 DIY基于树莓派的OpenTX航模遥控器(一)_第8张图片

姑且就叫1号机、2号机。先做的1号机,使用了一片800x480的5寸电容屏、16位AD转换器、正规的航模摇杆和拨动开关、带中点电位器等等,一切向专业看齐!之所以有做2号机,是因为一号机偏大偏厚,所以又重新设计了比较紧凑的2号机。

DIY基于树莓派的OpenTX航模遥控器(一)_第9张图片 DIY基于树莓派的OpenTX航模遥控器(一)_第10张图片

至此,旧版的遥控器先告个段落,后续正式开始贴新版OpenTX的制作过程以及相关代码~

# ---- 附件 ----

以上三个版本都是基于大功率nRF24L01+射频模块的,后续制作中暂时不会使用这个模块了,所以先把Python3的驱动模块源程序贴出来:nRF24L01+驱动模块源程序

你可能感兴趣的:(航模遥控器)