实验任务
1.掌握python缩进规则和单分支语句
2. 电脑数字键盘通过网络发送指令,经路由器传递,PinPong Board 上的RGB彩灯显示不同颜色
材料清单
- PinPongborad X1
- 7.4V 2500MA 锂电池 (带充放电保护板) X1 链接
- 一体机或是笔记本(可无线连接路由器) X1
- 路由器(测试为2.4G) X1
知识储备
1.什么是RGB LED灯?
RGB灯是以三原色共同交集成像,此外,也有蓝光LED配合黄色荧光 粉,以及紫外LED配合RGB荧光粉,整体来说,这两种都有其成像原理。目测测试板的是贴片RGB灯。
2.RGB灯的成色原则
虽然可见光的频率有一定的范围,但我们在处理颜色时并不需要将每一种频率的颜色都单独表示。因为自然界中所有的颜色都可以用红、绿、蓝(RGB)这三种颜色频率的不同强度组合而得,这就是人们常说的三基色原理。三基色英文表示就是R(red)、G(green)、B(blue)RGB各有256级亮度,用数字表示为从0、1、2..255,理论上256级的RGB色彩总共能组合出约1678万种,即256×256×256=16777216。色彩实际测试白色可表示为(255,255,255),红色可表示为(255,0,0),绿色可表示为(0,255,0)蓝色可表示为(0,0,255)灭灯可表示为(0,0,0)
3.Python知识点1---缩进规则
Python 采用代码缩进和冒号( : )来区分代码块之间的层次。
在 Python 中,对于类定义、函数定义、流程控制语句、异常处理语句等,行尾的冒号和下一行的缩进,表示下一个代码块的开始,而缩进的结束则表示此代码块的结束。注意,Python 中实现对代码的缩进,可以使用空格或者 Tab 键实现。但无论是手动敲空格,还是使用 Tab 键,通常情况下都是采用 4 个空格长度作为一个缩进量(默认情况下,一个 Tab 键就表示 4 个空格)。
对于 Python 缩进规则,初学者可以这样理解,Python 要求属于同一作用域中的各行代码,它们的缩进量必须一致,但具体缩进量为多少,并不做硬性规定。
4.Python知识点2---单分支if语句(流程图附后)
if(条件表达式):
语句A
语句B
或是 if(条件表达式): 语句A;语句B
步骤1 配置PinPongborad的IP和端口
USB线连接PinPongborad,python运行代码,屏幕显示IP和端口,则配置成功
此处注意!
测试板显示屏少了一个3,应该是192.168.13.153;
真实IP设置请参考python运行窗口中的IP地址。
# -*- coding: utf-8 -*-
import time
from pinpong.board import Board,Pin,WIFI
from pinpong.libs.dfrobot_ssd1306 import SSD1306_I2C #导入ssd1306库
Board("PinPong Board").begin()#初始化,选择板型和端口号,不输入端口号则进行自动识别
oled=SSD1306_I2C(width=128, height=64) #初始化屏幕,传入屏幕像素点数
obj = WIFI()
ssid = "test" #wifi名
password = "12345678" #wifi密码
obj.set_ssid(ssid) #设置wifi名
obj.set_password(password) #设置wifi密码
obj.connect_wifi() #开始连接
print("Waiting for WIFI connection...")
time.sleep(5)
while True:
ip,port = obj.get_ip_port()
if ip != None:
print("ip: {} port: {}".format(ip, port))#打印ip地址和port
break
time.sleep(1)
ip = "ip:" + str(ip)
port = "port:"+str(port)
oled.text(ip,0,10) #指定位置显示文字
oled.text(port,0,30)
oled.show() #显示生效
步骤2 拔掉USB线,连接电池,打开开关,一体机运行程序
代码格式一
#实验效果:根据输入序号RGB灯亮不同颜色
#接线:使用7.4V电池直接给PinPong主板供电,运行前打开主板的开关
import time
from pinpong.board import Board,Pin,NeoPixel
ip = "192.168.13.153" #网络配置中OLEB屏上显示的ip
port = 8081 #网络配置中OLEB屏上显示的port
NEOPIXEL_PIN = Pin.D9
PIXELS_NUM = 1 #灯数
Board(ip, port)
np = NeoPixel(Pin(NEOPIXEL_PIN), PIXELS_NUM)
while True:
a=input('请输入序号')
if a=='1':
np[0] = (255, 0 ,0)
if a=='2':
np[0] = (0, 255 ,0)
if a=='3':
np[0] = (0, 0 ,255)
if a=='4':
np[0] = (255, 255,0)
if a=='5':
np[0] = (0, 255 ,255)
if a=='6':
np[0] = (255, 0 ,255)
if a=='7':
np[0] = (255, 255 ,255)
if a=='8':
np[0] = (0, 0 ,0)
代码格式二
#实验效果:根据输入序号RGB灯亮不同颜色
#接线:使用7.4V电池直接给PinPong主板供电,运行前打开主板的开关
import time
from pinpong.board import Board,Pin,NeoPixel
ip = "192.168.13.153" #网络配置中OLEB屏上显示的ip
port = 8081 #网络配置中OLEB屏上显示的port
NEOPIXEL_PIN = Pin.D9
PIXELS_NUM = 1 #灯数
Board(ip, port)
np = NeoPixel(Pin(NEOPIXEL_PIN), PIXELS_NUM)
while True:
a=input('请输入序号')
if a=='1': np[0] = (255, 0 ,0)
if a=='2': np[0] = (0, 255 ,0)
if a=='3': np[0] = (0, 0 ,255)
if a=='4': np[0] = (255, 255,0)
if a=='5': np[0] = (0, 255 ,255)
if a=='6': np[0] = (255, 0 ,255)
if a=='7': np[0] = (255, 255 ,255)
if a=='8': np[0] = (0, 0 ,0)
RGB配色参考
https://baike.baidu.com/item/RGB/342517?fr=aladdin
评论