回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页

【PinPong Board】PinPong Board 玩物联2-物联RGB灯 简单

头像 gray6666 2021.04.27 374 0

实验任务

1.掌握python缩进规则和单分支语句

2. 电脑数字键盘通过网络发送指令,经路由器传递,PinPong Board 上的RGB彩灯显示不同颜色

project-image

材料清单

  • 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

project-image

步骤1 配置PinPongborad的IP和端口

USB线连接PinPongborad,python运行代码,屏幕显示IP和端口,则配置成功

project-image

此处注意!

测试板显示屏少了一个3,应该是192.168.13.153;

真实IP设置请参考python运行窗口中的IP地址。

project-image
代码
# -*- 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线,连接电池,打开开关,一体机运行程序

project-image

代码格式一

代码
#实验效果:根据输入序号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

评论

user-avatar