打印

【RTOS】+ 基于lora的遥控器

[复制链接]
2574|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 ji123456 于 2020-7-5 19:52 编辑

概述      首先在海洋资源得到重视、无人控制技术急需发展的大环境下,社会需要无人船为人民创造价值去管理外界海洋环境,包括民用、军用等。在民用的方面,无人船有非常好的成效,它可以进行岛礁的调查、爆炸事故的调查、污染事故的调查等等。以前的工作人员,不但要找船,还要费劲不断的工作,生活不稳定,质量差,无人船可以帮忙省去这些麻烦。在农业上的应用,LoRa通信可以用来搭建低功耗广域网络的大棚[1]。在军用的方面,因为现在人工智能、电子技术等诸多方面都有较大的发展,所以无人船也得到了突飞猛进的这个进步。除了无人船领域,在军事后勤保障、人员搜救等方面,LoRa通信也得到了使用[2]。美国同样也取得很大的发展,中国发展无人船,就是要利用无人船与美国进行军事竞赛,然后以达到超越美国,保护中国在海洋上的利益。
其次,在这个无人船的通信领域,如果用LoRa通信,它不受美国的控制,打破美国的垄断,不论从供应商体系,还是可替代的角度,LoRa都远远领先于其他的通信方式,而因为这,可以得到更多海洋的资源。
当下,遇到的问题主要是对遥控器器件进行选型和电路图绘制,再到后面器件的焊接等。对设计的遥控器进行性能优化,使其稳定性和实用性提升。和小组成员进行LoRa通信调试,最终实现对无人船的控制工作。

硬件框架
根据上图中显示的部分,就可以知道一些开发环境和所需要的单片机上的一些具体的硬件资源,进而就可以完成这个设计的一个整体上的架构,就如下图所示,要完成的这个设计,它主要是分为三部分,一个是LCD屏显示部分,一个是LoRa通信部分,最后是这个摇杆和按键部分。





软件框架说明
正如图所示,当进行LCD屏的显示时,首先它分为三大界面,它分为这个校准界面和配置界面,通信界面,其中如果要用到触摸屏去输入数据的时候,也要进行触摸屏幕的一个驱动。当然可以知道的是,这些屏幕的显示它都是在同一个屏幕上进行的,所以要合理的去分配,如何去在屏幕之间进行切换。第二个大部分呢是这个LoRa通信的部分,它主要是也分为三块,有驱动方式,通信方式和最后的一个通信协议,比较中重要的呢是这个通信方式,因为LoRa通信中它主要分为两大通信模式,一个是定点传输,一个是透明传输。而这个通信协议呢,就需要负责人和另一方做基*的同学一起进行设计。第三大部分就是摇杆和按键部分,使用一个摇杆可以更方便的去控制无人船的转动角度和速度。使用独立按键,可以更加方便的对单片机进行一个参数设置,再到最后的一键返航功能的实现。而如何用AD采集来的电位器数据进行推算,无人船转动的角度和速度也是非常重要的,要学会将这部分数据进行转化并且传输到基*中,进行对无人船的控制。

软件模块说明
在进行软件设计之前需要明确所需要的连接的管脚,所以如
根据上图中显示的部分,就可以知道我们需要FSMC对存储器进行操作。在这次的系统设计中,就是要用FSMC去驱动显示屏幕,根据上文中对于FSMC的介绍中,可以知道,只需要将显示屏的端口与FSMC的端口进行连接,就可以实现数据总线的通讯,也就是说使用FSMC的存储器的某一区域,就可以实现对于LCD屏的一个驱动。在软件上可以通过定义一个对于显示屏的操作结构体,然后通过去操作这个结构体的,它的具体地址实现,对于显示屏上内容的写命令和读操作。在这个里面进行的片选写入读出和IO口的一些操作都是有刚才讲的FSMC外设进行控制的,并不需要自己进行设配置等等。 在了解这些后,需要根据项目需要设计软件,软件设计程序流程图如下:
接下来,介绍另一个重要结构体:LCD重要参数集。其中包括LCD宽度、LCD高度、LCD的ID、横屏和竖屏、开始写命令、设置x坐标指令、设置y坐标指令。这个结构体虽然占用了十几个字节的内存,但是却可以让驱动函数支持不同尺寸的 LCD,同时可以实现 LCD 横竖屏切换等重要功能。
下面需要写一些重要函数:写寄存器函数、写入LCD的数据、读取LCD数值、写寄存器及数据、读寄存器、开始写LCD、写GRAM等。因为 FSMC 自动控制了 WR/RD/CS 等这些信号,所以这几个函数实现起来都非常简单,就不多说。
最后,设计基于坐标的像素操作函数。首先,需要一个坐标设置函数,设置当前光标的位置。其次,需要设计一个画点函数,输入想要的坐标值,就可以在屏幕上显示像素点。该函数实现比较简单,就是先设置坐标,然后往坐标写颜色。其中呢,可以通过设置一个全局变量来定义它的一个背景颜色,再定义一个变量,用于存放画笔的颜色,这样的话,就可以通过控制这两个颜色进行LCD屏上面的绘画了,虽然描点这个函数非常的简单,但是它是一个基础,它所有的函数基本上都要通过去使用这个函数来进行实现它们的基本功能。除了画点的函数,还需要读取像素点的函数,下一个函数,就是一个用于读取像素点的函数。


演示效果

视频地址:https://www.bilibili.com/video/BV1p54y1z7YU/

代码地址https://github.com/Two-of-E/lora


【RTOS】+ 基于lora的遥控器.pdf

277.27 KB

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

2

帖子

0

粉丝