内容介绍
内容介绍
1 项目需求
- 在LCD屏上显示一个图形化的温度计,并实时显示当前的温度(通过RP2040内部的温度传感器测量)
- 可以通过摇杆或按键设定报警温度阈值(如上图下面的部分,需要补充上数字)
- 可以对芯片稍微加温,使温度超过设定的阈值,温度图示颜色变红,且蜂鸣器发出报警声音
- 给芯片降温到阈值一下,温度传感器颜色变绿,蜂鸣器停止报警
2 完成的功能及达到的性能
达到了项目的要求,可以显示当前芯片的温度。对温度进行了取平均值处理。输出更稳定。可以通过遥杆和按键设定温度报警值。可以超温报警。可以在屏幕显示。
3 实现思路
板载芯片含有温度计可测温。绘图采用ST7789驱动。按键触发定时器设定温度。项目流程图如下:
4 实现过程
采用ST7789驱动。
import machine
import st7789 as st7789
from fonts import vga2_8x8 as font1
from fonts import vga1_16x32 as font2
import utime
增加绘图函数。
def draw_circle(xpos0, ypos0, rad,
col=st7789.GREEN):
x = rad - 1
y = 0
dx = 1
dy = 1
err = dx - (rad << 1)
while x >= y:
display.pixel(xpos0 + x, ypos0 + y, col)
display.pixel(xpos0 + y, ypos0 + x, col)
display.pixel(xpos0 - y, ypos0 + x, col)
display.pixel(xpos0 - x, ypos0 + y, col)
display.pixel(xpos0 - x, ypos0 - y, col)
display.pixel(xpos0 - y, ypos0 - x, col)
display.pixel(xpos0 + y, ypos0 - x, col)
display.pixel(xpos0 + x, ypos0 - y, col)
if err <= 0:
y += 1
err += dy
dy += 2
if err > 0:
x -= 1
dx += 2
err += dx - (rad << 1)
测量温度,取平均值。
def get_T():
sensor_temp = machine.ADC(4)
conversion_factor = 3.3 / (65535)
reading = sensor_temp.read_u16() * conversion_factor
temperature = 27 - (reading - 0.706)/0.001721
return temperature
def ave_T():
my_list=[]
for x in range(1,51):
a=get_T()
my_list.append(a)
ave=sum(my_list)/50
return ave
绘制按钮移动效果。
if up_limit>tem_limit:
display.fill_rect(85+up_limit, 220, 10, 20, st7789.WHITE)
display.fill_rect(80+tem_limit, 220, up_limit-tem_limit+5, 20, st7789.BLACK)
print(up_limit,tem_limit)
display.fill_rect(10, 230, 220, 1, st7789.WHITE)
elif up_limit<tem_limit:
display.fill_rect(85+up_limit, 220, 10, 20, st7789.WHITE)
display.fill_rect(85+up_limit+10, 220, tem_limit-up_limit+5, 20, st7789.BLACK)
print(up_limit,tem_limit)
display.fill_rect(10, 230, 220, 1, st7789.WHITE)
5收获
经过学习,熟悉了rp2040的micropython编程。也比较了他和python在电脑上编程的不同。pico有一个600多页的手册,可以结合这个平台去学习。另外,micropython有micropython-nano-gui-master之类的开源图形库。也可以结合这个开发板学习。在这导体的编写过程中,体会到局部刷新的用处,另外又熟悉了一下中断的处理。是一个会继续研究的平台。
附件下载
main.py
主文件
wenduji.zip
项目文件打包
团队介绍
我是一名机械工程师,现在在天津工作。参加硬禾学堂的活动,扩展自己的电路技能。
团队成员
MMA
评论
0 / 100
查看更多
猜你喜欢
基于RP2040嵌入式系统学习平台制作的图形化显示、超温报警的温度计该项目是一个基于树莓派RP2040的嵌入式系统学习板、使用micropython进行编程实现的图形化显示、超温报警的温度计。
EIDog
1422
基于树莓派RP2040的嵌入式系统学习平台制作一个图形化显示、超温报警的温度计该项目是一个图形化显示、超温报警的温度计实现的功能有:1、在LCD屏上显示一个图形化的温度计,并实时显示当前的温度;2、可以通过摇杆或按键设定报警温度阈值;3、芯片温度超过设定的阈值,温度图示颜色变红,且蜂鸣器发出报警声音;
针针扎是带啥纸
1367
基于树莓派RP2040制作图形化显示、超温报警的温度计该项目使用micropython编程,基于树莓派RP2040实现温度计。温度计能够显示温度,并且在温度高于阈值时,启动蜂鸣器,并将图像变红。
XZYZYZY
1647