树莓派报靶器
适用于各种高校的国防教育系统,早期在军训时使用实弹射击,成本高、危险大,并且后勤工作繁重,逐渐不嫩适应新的要求。为此,公司开发了这套模拟射击系统来代替原有的实弹射击,即降低使用成本,便于携带,而且可以反复使用,无太多的要求。
鉴于产品的特殊性,不能完整的展示,所以只把使用树莓派制作的相关部分显示出来。
报靶器的主要作用是接收射击后霸面传输的坐标数据、教具射击时的动作数据,由树莓派解析后在显示屏中显示出来,同时播放语音进行提示,即只当作一个终端使用。这些功能使用单片机也能完成,但是相对来说工作量比较大,尤其是与用户交互的界面和图形部分,如果在操作系统的基础上开发将会大大提高效率。
考虑到成本问题,使用Linux比Windows更为合适,所以首选类似于树莓派的开发板。正好电子工程世界和得捷电子提供了这次机会,非常感谢。
Linux上可以开发图形界面程序的语言很多,而且进步也非常大,但是相比于我十多年前使用的Delphi来说感觉还是差了一些,至少不是很方便,尤其是在布局设计上,都要搞的这么复杂,不如Delphi来的直观,所见即所得,所以我还是使用类Delphi的工具来开发。在Raspibian系统上,不知道为什那么这一版的Lazarus安装之后运行会提示一个错误,虽然不影响使用,但是看着不顺眼,还是改用CodePython来开发,基本一样的。
- 系统框图:
-
硬件很简单,大部分的工作都已经由RPI 400实现了,我的工作主要是扩展它,通过HDMI为它添加一个显示屏用来显示程序,而且HDMI已经包括了音频信号,只要再增加一个小功放和喇叭即可。在某些地方没有长电的电源可以使用,所以还要配备一组电池和充电功能。只有设备还不行,通讯也是必不可少的。多种通讯方式都可以,但是显然有线连接首先排除在外;Linux的蓝牙不太好用,而且多个设备同时连接也很麻烦,最简单的方法还是使用2.4G,各种设备对着一个地址发就可以了。考虑到距离,24L01上应该增加PA以达到百米级的通讯。这些零零散散的东西放在一起可不好拿,把它们都塞到一个手提箱里就方便多了。
开发阶段就是这样子的,各个控件往上扔,然后再编写对应的事件代码。
软件上就没太多的要求,总结起来就是接收数据->分析数据->显示数据。当然通讯协议在这里不方便给出,只要考虑到能实现各个设备对应即可,可以自定义数据格式。
- 各部分功能说明:
-
教具就不展示了,避免产生一些问题。现在比较乱,都是用线直接连接上的,后期的成品要制作一个底板,并且不使用RPI 400,可以改成RPI4B就能满足要求,因为在原来的设计中,打算让使用者手动输入身份编码等信息,现在不需要了。
- 成品功能演示:
-
https://training.eeworld.com.cn/course/67838/learn?preview=1#lesson/34583
一个演示用的东西,还有一些功能没有完成,所显示的数据是假的,手动模拟的。
- 项目总结:
-
对于类似的东西,使用树莓派来开发是真的省事,用单片机画图形界面能画到吐血,而且还别改,一改又得重来一遍。只是目前树莓派太贵了,真正的产品不可能用,成本会高很多倍的。比较适合的还是国产的一些“派”,全志、瑞芯微什么的性能已经非常好了,完全能满足要求,只是开发上的相关资料不如树莓派做的体贴,真心希望能有所改进。
|