所有分类
主题 主题
平台 平台
我的工作台
userHead
注册时间 [[userInfo.create_time]]
创造力 [[userInfo.creativity]]
[[userInfo.remark]]
[[d.project_title]]
articleThumb
[[d.material_name]]
timelineThumb
进入工作台
折叠
所有分类 我的工作台
展开
#高考#【PinPong特色计时器】
gray6666 gray6666 2021-06-02 17:42:41
0
0
简单

十年一剑今朝试,鹏飞万里遂我心

项目背景:

    高三紧张而漫长,很多同学感到时间有时像流水,不经意间就浪费掉了。合理安排时间是高考取胜的关键,往往很多同学没个头绪,时而紧时而松,很难奏效。而许多高考成绩优异的同学,正是由于合理安排时间,才最终取得了成功,跨进了名校的大门。本次设计作品为《PingPong特色计时器》,希望可以帮助考生们合理安排时间,取得成功。

提前预祝考生们高考胜利!

步骤1 步骤1
实现功能

1.自主设置及时器的时间

2.LED灯显示当前状态

3.计时开始和结束,OLED屏幕提示语言

4.系统开始,计时结束音乐提醒

 

projectImage
材料清单 材料清单
1x
PinPong板【感谢提供,试用机会】
1x
数据线
步骤2 步骤2
程序实现

程序运行流程

projectImage

一、蜂鸣器播放音乐

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 步骤3
测试视频
Makelog作者原创文章,未经授权禁止转载。
0
0
评论
[[c.user_name]] [[c.create_time]]
[[c.parent_comment.count]]
[[c.comment_content]]