电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区首页
文章
使用树莓派制作两轮自平衡车(五)——显示和测距
分 享
扫描二维码分享
使用树莓派制作两轮自平衡车(五)——显示和测距
树莓派
平衡车
oled
gcrisis
关注
发布时间: 2020-08-18
丨
阅读: 439
显示和测距是平衡车的增强功能,不会影响小车平衡功能的实现。显示我使用了一款96x64的RGB OLED,控制芯片是ssd1331,超声波测距选用srf05。 ![](https://cf04.ickimg.com/bbsimages/202008/834a6c580280aed8d6edc46b85dc21d0.png) OLED使用了树莓派的SPI接口,另外需要两个GPIO控制DC和RST;超声波只需两个GPIO。 ![](https://cf04.ickimg.com/bbsimages/202008/64512e2a5ecfe9a8e58e42dd09c36c22.png) 显示屏有配套的驱动程序,在网上可以下载到或者购买时卖家会赠送。所以只需要移植一下就可以。移植要替换的部分有4处,SPI的读写,复位引脚的控制,DC引脚的控制和延时函数。只要把这4部分替换为我们自己的即可。 ![](https://cf04.ickimg.com/bbsimages/202008/e29be1ff84bc1725ceb3a25668a3b484.png) ![](https://cf04.ickimg.com/bbsimages/202008/31ef701b5f10abb549977d39580255f6.png) 关于Linux SPI的内容可以查看我的另一篇专栏。 [Linux通过SPI通讯](https://www.bilibili.com/read/cv5977665?from=articleDetail "Linux通过SPI通讯") 超声波的控制原理是一个头子发出特定的声波,另一个头子接收反射回来的声波。通过测算期间的时间差来计算距离。 ![](https://cf04.ickimg.com/bbsimages/202008/47060230f76cc9d91c15214b659418a3.png) Trig引脚就是用来触发声波发出的,Echo引脚用来接收回波信号,且它的持续时间就表示了发出到接收的时间差。 ![](https://cf04.ickimg.com/bbsimages/202008/b77ff889b9a4d70615c170e871cb0666.png) 了解了原理再写代码就容易很多了。 ![](https://cf04.ickimg.com/bbsimages/202008/f73bb0e6e990fdf50f2356ad358fa97e.png) 显示和测距分别在两个线程中运行。同一个进程的线程可以共享进程的数据,这省去了数据共享的麻烦,不过也要注意数据的同步。 ![](https://cf04.ickimg.com/bbsimages/202008/ebb82dba55457a97df4e555c05936d9d.png) ![](https://cf04.ickimg.com/bbsimages/202008/0c1312941ee8d3efa4b37ea3e4c13b16.png) OK,关于显示和测距就说这么多,相对比较简单,希望对大家有所帮助。 限于个人水平,难免会有遗漏和错误,欢迎大家交流指正。
原创作品,未经权利人授权禁止转载。详情见
转载须知
。
举报文章
点赞
(
0
)
gcrisis
关注
评论
(0)
登录后可评论,请
登录
或
注册
相关文章推荐
MK-米客方德推出工业级存储卡
Beetle ESP32 C3 蓝牙数据收发
Beetle ESP32 C3 wifi联网获取实时天气信息
开箱测评Beetle ESP32-C3 (RISC-V芯片)模块
正点原子数控电源DP100测评
DP100试用评测-----开箱+初体验
Beetle ESP32 C3环境搭建
【花雕体验】16 使用Beetle ESP32 C3控制8X32位WS2812硬屏之二
X
你的打赏是对原创作者最大的认可
请选择打赏IC币的数量,一经提交无法退回 !
100IC币
500IC币
1000IC币
自定义
IC币
确定
X
提交成功 ! 谢谢您的支持
返回
我要举报该内容理由
×
广告及垃圾信息
抄袭或未经授权
其它举报理由
请输入您举报的理由(50字以内)
取消
提交