首页-达尔闻    全部    【毕业设计】低成本打造360°监控系统

【毕业设计】低成本打造360°监控系统

8个HC-SR04超声波测距模块,高达5Hz的更新速率可确定八个扇区(0°,45°,90°,135°,180°,225°,270°和315°)中与障碍物的距离,精度为2厘米的监控系统来了
收藏
  • 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开发板实现,简单易上手不妨一试。