Python超声波测距仪制作教程
1.实验目的
- 学习在PC机系统中扩展简单I/O 接口的方法。
- 进一步学习编制数据输出程序的设计方法。
- 学习超声波模块的测距原理。
- 学习LCD5110接线方法
- 学习TPYboard控制超声波模块测距。
2.所需元器件
超声波模块一个
TPYBoard板子一块
5110LCD显示屏一个
数据线一条
详细教程请参考TPYBoard官网链接内容
3.超声波模块工作原理
(1)采用IO口TRIG触发测距,给最少10us的高电平信呈。
(2)模块自动发送 8 个 40khz 的方波,自动检测是否有信号返回。
(3)有信号返回,通过 IO 口 ECHO 输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=(高电平时间*声速(340M/S))/2。
如下图接线,VCC 供 5V电源, GND 为地线,TRIG 触发控制信号输入,ECHO 回响信号输出等四个接口端。
4.控制5110显示屏显示6x8字符
先看一下LCD5110针脚含义吧(注意:LCD5110的针脚有些不一样的)
TPYBoard的针脚与5110的针脚对应关系如下:
TPYBoard LCD5110 memo
————————————————————————————
# any Pin => RST Reset pin (0=reset, 1=normal)
# any Pin => CE Chip Enable (0=listen for input, 1=ignore input)
# any Pin => DC Data/Command (0=commands, 1=data)
# MOSI => DIN data flow (Master out, Slave in)
# SCK => CLK SPI clock
# 3V3 or any Pin => VCC 3.3V logic voltage (0=off, 1=on)
# any Pin => LIGHT Light (0=on, 1=off)
# GND => GND
还是看不明白的话,直接上针脚编号吧
TPYBoard LCD5110 memo
————————————————————————————
Y10 => RST Reset pin (0=reset, 1=normal)
Y11 => CE Chip Enable (0=listen for input, 1=ignore input)
Y9 => DC Data/Command (0=commands, 1=data)
X8 => DIN data flow (Master out, Slave in)
X6 => CLK SPI clock
VCC
Y12 => LIGHT Light (0=on, 1=off)
GND
接线ok后,并且导入font.py文件和upcd8544.py文件,编写main.py将测到的距离显示在5110显示屏上,运行main.py就ok了。(font.py和upcd8544.py可以从官网上下载,最后会告诉下载地址)。
5.源代码
import pyb
from pyb import Pin
from pyb import Timer
import upcd8544
from machine import SPI,PinTrig = Pin('X2',Pin.OUT_PP)
Echo = Pin('X1',Pin.IN)
num=0
flag=0
run=1
def start(t):global flagglobal numif(flag==0):num=0else:num=num+1
def stop(t):global runif(run==0):run=1
start1=Timer(1,freq=10000,callback=start)
stop1=Timer(4,freq=2,callback=stop)while True:if(run==1):SPI = pyb.SPI(1) #DIN=>X8-MOSI/CLK=>X6-SCK#DIN =>SPI(1).MOSI 'X8' data flow (Master out, Slave in)#CLK =>SPI(1).SCK 'X6' SPI clockRST = pyb.Pin('Y10')CE = pyb.Pin('Y11')DC = pyb.Pin('Y9')LIGHT = pyb.Pin('Y12')lcd_5110 = upcd8544.PCD8544(SPI, RST, CE, DC, LIGHT)Trig.value(1)pyb.udelay(100)Trig.value(0)while(Echo.value()==0):Trig.value(1)pyb.udelay(100)Trig.value(0)flag=0if(Echo.value()==1):flag=1while(Echo.value()==1): flag=1if(num!=0):#print('num:',num)distance=num/10000*34000/2print('Distance')print(distance,'cm')lcd_5110.lcd_write_string('Distance',0,0)lcd_5110.lcd_write_string(str(distance),6,1)lcd_5110.lcd_write_string('cm',58,1)lcd_5110.lcd_write_string('This is a test of Distance',0,2)flag=0run=0
Python超声波测距仪制作教程相关推荐
- 2个Python学习网站制作教程
最近次条总结了一些2个Python学习网站制作教程的一些核心技术,这里整理了下一些目录,分别是两个网站,大部分技术都在前端,熟悉前端的话直接可以查看网页源码对应去了解学习,这些教程重在理解思路,思路通 ...
- python小软件制作教程_[Python]手把手教程:Python制作番茄钟
这篇文章是根据Udacity的免费课程 编程基础:Python所做的笔记,适合零基础学习Python 我们先了解这个番茄钟的概念,就是每隔一段固定的时间就提醒你休息一下,可能是播放一段音乐, 弹出一个 ...
- python可视化报表制作教程_如何使用Python快速制作可视化报表
数据可视化能力已经越来越成为各岗位的基础技能.领英的数据报告显示,数据可视化技能在2017年中国最热门技能中排名第一. 就数据分析而言,可视化探索几乎是你正式进行数据分析的第一步,通过SQL拿到数据之 ...
- python利用thinker制作多页面切换的桌面应用实例教程
本篇文章主要讲解,python利用thinker制作多页面的桌面实例教程.可以在一个主界面中相互进行切换和设置相关的表单信息,布局等方法 代码片段的实际效果 视频演示: python使用thinker ...
- 超声波测距仪设计制作
一.硬件设计 在现实的生活生产中,测距的应用比较多,比如汽车倒车时到障碍物的距离.水塔中顶部到液面的距离等很多方面都需要使用到测距,伴随着电子技术的迅速发展,超声波的出现为测距提供了良好的实现方法,利 ...
- 超声波测距仪编程_简易超声波测距仪的制作
没有进行补偿, 能达到简单应用的基本要求. 3 电路结构 根据超声波测距基本原理, 可 以设计出超声波测距系统的 组成框图如图 3- 1 所示. 3.1 单片机系统及显示电路 单片机用 P1.0 端口 ...
- 如何使用Arduino Uno开发板制作超声波测距仪
测距仪是用于查找从点到最近障碍物的距离的设备.该装置使用超声波技术测量距离.您可以将它视为一种无障碍的电子卷尺,测量范围为2cm至400cm,精度为1cm. Arduino超声波测距仪的典型应用包括停 ...
- Python利用matplotlib制作雷达扫描显示仪(之后可结合串口和超声波传感器使用,亦可以做为仪表盘使用)
Python利用matplotlib制作雷达扫描显示仪(之后可结合串口和超声波传感器使用,亦可以做为仪表盘使用).内有制作雷达扫描GIF图的源代码包含. ''' matplotlib雷达扫描 ''' ...
- chatgpt赋能python:Python平面图制作教程
Python平面图制作教程 Python是一种高级编程语言,也是数据科学和机器学习领域中使用最广泛的编程语言之一.在数据可视化中,Python语言具有优秀的表现力和灵活性,可以为用户展示各种数据可视化 ...
最新文章
- 论文被拒,项目被砍?斯坦福最惨在读博士教你如何直面失败
- (一)安装docker
- php多表数据排除,thinkphp中多表查询中防止数据重复的sql语句(必看)
- SilverLight学习笔记--建立Silverlight自定义控件(1)--外观设计
- (转载)大数据实战:站在JMP分析平台上的FIT足迹识别技术
- 【S操作】冰箱正常运行监控系统需求整理
- java 继承 冒号_java继承(extends)简单介绍
- Codeforces Round #243 (Div. 1)
- iOS - 视频开发
- 使用poi生成word文档(最全例子)
- 泛函编程(29)-泛函实用结构:Trampoline-不再怕StackOverflow
- 最受欢迎Java数据库访问框架大比拼,你独爱哪一款?
- python-random
- 创新不是突然而至——它是慢慢成长的
- 软件系统设计-13-质量属性
- 求100以内奇数的和
- 闲时整理(5)--圆形标签
- 英特尔处理器后缀字母的意思
- ORA-20001: Invalid or inconsistent input values
- 爬虫pyquery查找节点
热门文章
- 前端复盘: knockout + require + director 构建单页面程序
- 红米k20 android版本,红米k20pro入手哪个版本好 红米k20pro哪个更值得入手
- 社会工程学——无法忽略的另类安全
- vscode编译程序c语言,如何用VS code编译C语言代码?
- WIFI环境搭建与测试
- Apache Doris的动态分区dynamic_partition
- 工作流 activiti 自定义下一审批人和多人会签的简单实现
- iterable类型
- 惠普星14青春版12代酷睿值不值得买 好不好
- 举个栗子~Tableau 技巧(242):学做 条形图 和 桑基图 的组合图表