最近入围了lets do第二期活动 NXP FRDM-MCXA153开发板,实现一套简易的桌面超声波测距装置。项目目标比较明确——通过超声波模块测量前方物体的距离,把结果实时显示出来。先简单记录一下开箱和后续的项目计划。
这次使用的核心控制器是NXP FRDM-MCXA153开发板。FRDM-MCXA153是NXP推出的MCX A系列Cortex-M33入门评估板,面向智能传感、电机控制和USB嵌入式设备等原型开发。板载MCU-Link调试器,兼容Arduino®、mikroBUS™等多种扩展接口,开箱即可调试下载,不需要额外准备仿真器。
从外观来看,开发板整体布局比较规整,板载调试接口、USB接口、扩展排针和常用按键都已经集成好,比较适合原型验证。
内核:Arm® Cortex®-M33,主频96MHz
存储:128KB Flash(带ECC),32KB SRAM(8KB支持ECC)
主要外设:
LPLUART x4(低功耗串口)
LPSPI x2,LPI2C x2,I3C x1
16位ADC(最多24通道)
FlexPWM(3个子模块,9路PWM输出,适合电机控制)
eQDC正交编码/解码器
DMA控制器,RTC,WDT
USB2.0 Full-Speed,内置PHY,Type-C接口
板载P3T1755DPJ I3C/I²C温度传感器
板载RGB用户LED,复位、ISP、唤醒按钮
在这个项目中,FRDM-MCXA153主要负责以下工作:产生超声波模块所需的触发信号;测量回波信号的持续时间;根据声速计算目标距离;对测量结果进行滤波处理;驱动OLED屏幕显示距离和工作状态;通过串口输出调试信息。


测距部分计划使用常见的HC-SR04超声波模块。模块正面有两个圆形探头,一个负责发射超声波,另一个负责接收回波。使用时,主控向Trig引脚发送一个短触发脉冲,模块随即发射超声波,并通过Echo引脚返回与传播时间对应的脉冲信号。之所以距离要除以2,是因为超声波经历了从模块到目标物体、再从目标物体返回模块的往返过程。下面是我自己准备的hcsr04模块 (digikey的太贵了)

显示部分准备了一块SSD1306 OLED屏幕,就不用lcd1602了,分辨率为128×64,采用I²C接口驱动,只需要两根数据线(SDA和SCL)即可与开发板通信,极大地节省了IO引脚资源。相比传统LCD,OLED屏幕具有自发光、对比度高、功耗低和响应速度快等优点,能在不占用过多GPIO的情况下清晰显示测量数据。初步计划第一行显示当前测量距离(Distance: 35.6cm),第二行显示设备状态(Status: Normal / Warning),如果需要还可以加入简单的波形或图标,让显示效果更直观。使用I²C接口的另一个好处是,如果后续需要增加更多I²C传感器(如温湿度传感器进行声速补偿),可以挂在同一条总线上,扩展起来非常方便。

整个测距流程大致分为五步:定时产生触发脉冲启动测量;通过定时器记录Echo信号脉冲宽度;将脉冲时间换算为实际距离;对多次测量结果进行滤波;把处理后的距离显示在OLED屏幕上,同时通过串口输出原始数据方便调试。
接下来计划按照以下顺序推进:搭建FRDM-MCXA153开发环境,完成程序下载和基础调试;测试GPIO、串口和定时器功能;单独调试SSD1306 OLED完成字符显示;接入HC-SR04获取原始回波时间;完成距离换算和串口输出;最后将测距结果显示在OLED屏幕上。
目前硬件已经基本准备齐全,等项目一步步推进再和大家分享后续进展!
我要赚赏金
