十年一剑今朝试,鹏飞万里遂我心
项目背景:
高三紧张而漫长,很多同学感到时间有时像流水,不经意间就浪费掉了。合理安排时间是高考取胜的关键,往往很多同学没个头绪,时而紧时而松,很难奏效。而许多高考成绩优异的同学,正是由于合理安排时间,才最终取得了成功,跨进了名校的大门。本次设计作品为《PingPong特色计时器》,希望可以帮助考生们合理安排时间,取得成功。
提前预祝考生们高考胜利!
步骤1 实现功能
1.自主设置及时器的时间
2.LED灯显示当前状态
3.计时开始和结束,OLED屏幕提示语言
4.系统开始,计时结束音乐提醒
材料清单
- PinPong板【感谢提供,试用机会】 X1
- 数据线 X1
步骤2 程序实现
程序运行流程
一、蜂鸣器播放音乐
music1和music2函数雷同, 实现音乐提示功能
代码
def music1():
for i in range(3):
print("freq=",tone.freq()) #读取频率并打印
tone.on() #打开蜂鸣器
time.sleep(1)
tone.off() #关闭蜂鸣器
time.sleep(1)
tone.freq(tone.freq()+100) #按照设置的频率播放
i=++i
功能二
time1模块计时
代码
def time1():
oled.fill(0) #全部填充熄灭,清屏
oled.text("Go ahead !!!",28,28) #指定位置显示文字
oled.show() #显示生效
np[0] = (0, 255 ,0) #设置RGB灯为绿色
start=time.time()
while True:
time.sleep(1)
end=round(time.time()-start)
print(end)
if (end//60)==30:#30为系统预设倒计时时间,可自主更改
oled.fill(0) #全部填充熄灭,清屏
oled.text("time up !!!",28,28) #指定位置显示文字
oled.show() #显示生效
print("time up")
np[0] = (255, 0 ,0) #设置RGB灯为红色
music2() #播放音乐提示
三、主要控制程序
代码
while True:
v = btn.value() #读取按钮模块的引脚电平
time.sleep(0.5)
print(v)
if v==1 :
print(v) #终端打印读取的电平状态
time1()
time.sleep(1)
四、全部程序
代码
# -*- coding: utf-8 -*-
import time
from pinpong.libs.dfrobot_ssd1306 import SSD1306_I2C #导入ssd1306库
from pinpong.board import Board,Pin,Tone,NeoPixel#导入蜂鸣器
#from pinpong.board import Board,Pin
Board("uno").begin() #初始化,选择板型
NEOPIXEL_PIN = Pin.D9 #初始化LED灯珠
PIXELS_NUM = 4 #灯数
np = NeoPixel(Pin(NEOPIXEL_PIN), PIXELS_NUM)
btn = Pin(Pin.D8, Pin.IN) #引脚初始化为电平输入
oled=SSD1306_I2C(width=128, height=64) #初始化屏幕,传入屏幕像素点数
tone = Tone(Pin(Pin.D5)) #将Pin传入Tone中实现模拟输出
tone.freq(200) #按照设置的频率播放
def music1():
for i in range(3):
print("freq=",tone.freq()) #读取频率并打印
tone.on() #打开蜂鸣器
time.sleep(1)
tone.off() #关闭蜂鸣器
time.sleep(1)
tone.freq(tone.freq()+100) #按照设置的频率播放
i=++i
def music2():
for i in range(3):
print("freq=",tone.freq()) #读取频率并打印
tone.on() #打开蜂鸣器
time.sleep(1)
tone.off() #关闭蜂鸣器
time.sleep(1)
tone.freq(tone.freq()+100) #按照设置的频率播放
i=++i
def time1():
oled.fill(0) #全部填充熄灭,清屏
oled.text("Go ahead !!!",28,28) #指定位置显示文字
oled.show() #显示生效
np[0] = (0, 255 ,0) #设置RGB灯为绿色
start=time.time()
while True:
time.sleep(1)
end=round(time.time()-start)
print(end)
if (end//60)==30: #30为系统预设倒计时时间,可自主更改
oled.fill(0) #全部填充熄灭,清屏
oled.text("time up !!!",28,28) #指定位置显示文字
oled.show() #显示生效
print("time up")
np[0] = (255, 0 ,0) #设置RGB灯为红色
music2()
break
music1()
oled.fill(1) #全部填充显示
oled.show() #显示生效
time.sleep(1)
oled.fill(0) #全部填充熄灭,清屏
oled.show() #显示生效
np[0] = (0, 0 ,255) #初始化提示灯,设置RGB灯为蓝色
while True:
v = btn.value() #读取引脚电平
time.sleep(0.5)
print(v)
if v==1 :
print(v) #终端打印读取的电平状态
time1()
time.sleep(1)
步骤3 测试视频
豆爸2021.09.20
666