【毕业设计】低成本打造360°监控系统
-
8个HC-SR04超声波测距模块,高达5Hz的更新速率可确定八个扇区(0°,45°,90°,135°,180°,225°,270°和315°)中与障碍物的距离,精度为2厘米的监控系统来了——
这样的系统对室内导航来说足够了。接下来就来一步步实现这个项目吧。
先一句话介绍系统功能:数据可以在Kinetis板上进行处理使用,通过USB串口发送到计算机上显示。通过这个项目,大家可以学习Kinetis板上FlexIO的更多知识以及如何使用FlexIO。
系统硬件搭建
所需硬件:FRDM-K82F开发板、8个HC-SR04超声波传感器、8个WS2812 LED、2个74HC4050。
操作步骤:
1)准备两个5cmx7cm的洞洞板,每个洞洞板上焊有4个HC-SR04超声波传感器(彼此错开90°)。
2)将两块洞洞板相互偏移45°安装。洞洞板之间的用于固定的垫片作为STL文件提供,可以用3D打印机打印。使用强力胶将洞洞板固定到3D打印的垫片上。
3)将所有8个HC-SR04传感器连接到FRDM开发板,有关接线参考下面原理图。74HC4050用于5V至3.3V的电平转换,因为HC-SR04的输出信号为5V,而开发板上MCU的输入电压最大为3.3V。
上面原理图使用开源工具KiCad完成,可以在“达尔闻说”微信回复:超声波测距,获取。
4)将WS2812 LED环安装在传感器顶部。0号LED指向180°HC-SR04传感器。此项目附赠的STL文件提供传感器洞洞板和LED环之间的垫片。垫片全部组装好之后像一个柱子。将LED环连接到Kinetis板上,有关接线可以看上面的原理图。
如何使用系统
超声波提供串行数据输出,通过USB将Kinetis板连接到PC,在终端进行数据显示,还可以发送命令给系统。
系统还可以扩展Kinetis固件并在FRDM开发板内部使用超声波的数据。使用LED环,轻松确定系统状态。8个WS2812 LED用于显示每个HC-SR04传感器的距离。蓝灯闪烁表示正在进行测量。绿色表示未检测到物体,检测物体则变为红色,红色亮度检测到的物体距离有关。
如何使用系统
该项目使用Kinetis USB端口作为串行接口。连接到PC时,将出现一个串行接口。在我的Ubuntu笔记本上,它称为/ dev / ttyACM0。
串口参数:波特率115200,8个数据位,无奇偶校验,1个停止位。
图形用户界面(GUI)
为了测试系统,通过一个小的Python程序,可以让测试数据可视化。
在Ubuntu16.04系统上,可以通过下面一行代码执行程序:“python ultrasonicradar.py”这个程序分享给大家,可以在“达尔闻说”微信回复:超声波测距,获取。
FlexIO代码驱动编写
FlexIO是板载的一种外设,非常灵活并且可以随意配置的模块,不仅可以模拟出 UART, I2C, SPI 等常用通信接口,用户还可以使用它来模拟 6800 总线。
Kinetis FlexIO计时器和Shifter用于读取HC-SR04传感器检测到的距离并驱动八个WS2812状态LED。为此项目开发了两个FlexIO驱动程序:
1)HC-SR04 FlexIO驱动程序
HC-SR04 FlexIO驱动程序使用两个FlexIO定时器,四个FlexIO移位寄存器,八个FlexIO引脚和八个GPIO引脚。第一个FlexIO定时器生成移位时钟,第二个FlexIO定时器生成“捕获”时钟。此时GPIO引脚开始测量。四个FlexIO移位器连接在一起,它们捕获HC-SR04回波信号。HS-SR04回波信号启动移位时钟,移入128位后,移位时钟定时器停止,结果被捕获。每个捕获的位表示2厘米的距离。为了确定距离,必须对这些位进行计数并乘以2,以得到以厘米为单位的距离。
2)WS2812 FlexIO驱动程序
WS2812 FlexIO驱动程序使用两个FlexIO计时器,一个FlexIO移位寄存器和一个FlexIO引脚。第一个FlexIO定时器(350ns)生成移位时钟,第二个FlexIO定时器是FlexIO移位寄存器的32位重载定时器(350ns)。FlexIO S移位寄存器将数据逐位移至WS2812 LED数据线上。在FlexIO移位器将数据移出之前,数据已由驱动程序生成。
软件开发平台安装
程序开发IDE有两个:Kinetis Design Studio 3.2.0和KSDK 2.0.0,都安装在 Ubuntu 16.04 系统上。
如何在Ubuntu 16.04上配置开发环境:
第1步:下载适用于Linux的Kinetis Design Studio ,64位版本的
第2步:在Ubuntu上安装Kinetis Design Studio
第3步:在kex.nxp.com/en/welcome上创建SDK
第4步:下载SDK,并解压SDK
第5步:运行Kinetis Design Studio
第6步:现在,可以通过单击“文件->新建-> Kinetis SDK 2.X项目”开始开发。在对话框中,必须设置Kinetis SDK文件夹,这是在步骤6中选择的文件夹。如此360°监控系统就完成了。
这个项目中使用的是NXP的Kinetis 开发板,也可以使用其他MCU开发板实现,简单易上手不妨一试。
-