所有分类
主题 主题
平台 平台
我的工作台
userHead
注册时间 [[userInfo.create_time]]
创造力 [[userInfo.creativity]]
[[userInfo.remark]]
[[d.project_title]]
articleThumb
[[d.material_name]]
timelineThumb
进入工作台
折叠
所有分类 我的工作台
展开

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

gray6666 gray6666 2021-04-27 16:35:41
0
0
简单

实验任务

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

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

 

projectImage
材料清单 材料清单
1x
PinPongborad
1x
7.4V 2500MA 锂电池 (带充放电保护板)
1x
一体机或是笔记本(可无线连接路由器)
1x
路由器(测试为2.4G)

知识储备

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 

 

projectImage
步骤1 步骤1
配置PinPongborad的IP和端口

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

projectImage

此处注意!

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

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

projectImage
代码 代码
	                    					# -*- 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 步骤2
拔掉USB线,连接电池,打开开关,一体机运行程序
projectImage

代码格式一

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

Makelog作者原创文章,未经授权禁止转载。
0
0
评论
[[c.user_name]] [[c.create_time]]
[[c.parent_comment.count]]
[[c.comment_content]]