板载资源应用
板载资源应用
案例1:屏幕显示


区域显示代码
from npython import * #导入库文件
oled.print(8,2,'你好', 1)#在第2行第8列区域显示
oled.print (5,3,'hello,world',1)#在第3行第5列区域显示
程序说明
显示屏由128*64象素构成,列象素位为0-127,行象素位为0-63;在分区显示时将区域分成5行16列,oled.print(x,y,data,num)函数第1个参数为列位,值为1~16,第2个参数为行位,值为1~5,第3个参数为显示内容,需符合python语法的字符显示格式,第4个参数为清行标志,值为0或1,其中为1时表示显示前清除此行内容,为0时表示不清行。
呈现效果

图形显示代码
from npython import * #导入库文件
oled.fill(0)#填充屏幕黑色,清屏
oled.line(0,0,32,32,1)#画(0,0)到(32,32)白色直线
oled.circle(32,32,10,1)#画圆心在(32,32)半径为10象素的圆
oled.show()#将图形输出显示
程序说明
此程序为图形化显示图形。oled.fill(0)为全屏填充,参数为1表示填白,为0表示填黑。oled.line(0,0,32,32,1)为画直线函数,前4个参数表示直线起点与终点坐标的象素位,最后一个为画线的颜色值,1为白,0为黑色。oled.circle(32,32,10,1)为画圆函数,前2个参数为圆心坐标,第3个为半径象素值,最后一个为颜色值,1为白,0为黑色。oled.show()为图形输出函数,凡画图函数最后都应用此函数输出到屏幕中,否则看不到呈现效果。其他图形显示函数的应用请参考相关的应用说明。
呈现效果

案例2:板载led灯控制
程序代码
from npython import *
while True:
led.on() #LED打开
time.sleep(1) #延时1秒
led.off()#LED关闭
time.sleep(1)
程序说明
此程序用于控制板载LED灯的亮灭。led.on()为打开LED灯函数;led.off()为关闭LED灯函数。time.sleep(t) #秒延时函数,其中t为秒数,支持小数,用于保持之前的状态。
呈现效果

案例3:板载RGB全彩灯控制
程序代码
from npython import *
rgb.write_left(255, 0, 0) # 左侧灯为红色,全亮度
rgb.write_right(0, 128, 0) # 右侧灯为绿色,半亮度
time.sleep(1)
rgb.write_left(0, 128, 0) # 左侧灯为绿色,半亮度
rgb.write_right(0, 0, 64) # 右侧灯为蓝色,1/4亮度
程序说明
(参数1,参数2,参数3):分别代表红、绿、蓝三色成分亮度值,每色的范围为0~255,值越大代表此成分的亮度值越大。如(255,0,0)为红色最亮;(0,0,0)为全灭,即灯熄灭;(255,255,255)为全最亮,即白光最亮。
呈现效果

案例4:板载光敏传感器
程序代码
from npython import *
while True:
#显示板载光敏传感器
oled.print(5,3,"亮度:"+str(light.read()),1)
time.sleep_ms(50)#延时50ms
程序说明
通过板载光敏传感器采集当前环境的亮度值,light.read()为光敏的获取函数,返回值范围为0~4095的模拟值。time.sleep_ms(50)#毫秒延时函数,参数为延时的毫秒数,只支持整数。
呈现效果

案例5:板载温湿度传感器
程序代码
from npython import *
while True:
oled.print(1,2,"温 度:%0.2f C" % (aht20.read_temp()), 1) #获取温度值
oled.print(1,4,"湿 度:%0.2f %%" % (aht20.read_hum()),1) #获取湿度值
time.sleep_ms(100)#延时100毫秒
程序说明
通过板载温湿度传感器采集当前环境的温湿度数值,其中aht20.read_temp()为温度的获取函数,返回值为标准的摄氏温度值,范围为-40~85的小数,aht20.read_hum()为湿度的获取函数,返回值为标准的湿度百分数,范围为0~100的小数。
呈现效果

案例6:板载按键
程序代码
from npython import *
while True:
if button.get_a() == 1 : #按键A按下
time.sleep_ms(10)#消除抖动,防止误按
if button.get_a()==1:
rgb.write_left(255,0,0) # 设置左侧为红色
rgb.write_right(255,0,0) # 设置右侧为红色
if button.get_b() == 1 : #按键B按下
time.sleep_ms(10) #消除抖动,防止误按
if button.get_b()==1:
rgb.write_left(0, 0, 0) #关灯
rgb.write_right(0, 0, 0)
程序说明
通过板载按键的A键、B键,控制RGB彩灯显示红灯或熄灭。运行程序后,短按A键一下松开,RGB彩灯亮红灯;短按B键一下松开,RGB彩灯熄灭。
呈现效果

案例7:板载麦克风
程序代码
from npython import *
while True:
#获取板载麦克风的声音值并显示
oled.print(1,2,"声音:%d" % (sound.read()),1)
time.sleep(0.5)#延时0.5秒
程序说明
通过板载麦克风采集当前环境的模拟声音值,sound.read()为声音值的获取函数,返回值为模拟值,范围0~4095。
呈现效果

案例8:板载蜂鸣器
程序代码
from npython import *
beep.time(500)#0.5秒BEEP音
time.sleep(2) #延时2秒
程序说明
通过蜂鸣器发出BEEP提示音或播放一段模拟音乐。beep.time(500)为播放一定长度的BEEP音,参数为时长,单位为毫秒。
呈现效果
发一个BEEP音,播放一段内置音频。
扩展函数
music.play(gequ[0])#参数0~4,可播放内置的5首歌曲文件。
案例9:板载大气压(需要扩展)
程序代码
from npython import *
while True:
oled.print(1,1,"环境监测数据", 1)
oled.print(1,2,"温度:%0.2f C" % (emb.temperature()), 1)
oled.print(1,3,"湿度:%0.2f %%" % (emb.humidity()), 1)
oled.print(1,4,"压力:%0.2f Pa" % (emb.pressure()), 1)
time.sleep_ms(50)#延时50毫秒
程序说明
BME280是一款集成温度、湿度、气压,三位一体的环境传感器。工作温度:-40℃~+85℃,压力检测范围:300~1100hPa。
emb.temperature()为其温度获取函数,返回值为小数;
emb.humidity()为其湿度获取函数,返回值为小数;
emb.pressure()为其压力获取函数,返回值为小数。
呈现效果

案例10:三轴加速度(需要扩展)
程序代码
from npython import *
while True:
x,y,z = snsr.readXYZ()
oled.print(1,1,"三轴加速度数据",1)
oled.print(1,2,"X值:%0.1f mg" % (x),1)
oled.print(1,3,"Y值:%0.1f mg" % (y),1)
oled.print(1,4,"Z值:%0.1f mg" % (z),1)
time.sleep_ms(50) #延时50毫秒
程序说明
获取三轴加速度X、Y、Z轴方向的加速值,分辨率高达13位,测量范围:±2/4/8/16G。snsr.readXYZ()为三轴加速度传感器的三轴方向的数据读取函数,返回值一组加速度值的数据,第一个数据对应X轴加速度值,第二个数据对应Y轴加速度值,第三个数据对应Z轴加速度值,值均为浮点数数据。
呈现效果

案例11:地磁数据(需要扩展)
程序代码
from npython import *
magnetic2=Magnetic()#获取地磁传感器类
while True:
oled.print(1,1,"地磁数据", 1)
oled.print(1,2,"X磁力值:%0.1f mG" % (magnetic2.get_x()), 1)
oled.print(1,3,"Y磁力值:%0.1f mG" % (magnetic2.get_y()), 1)
oled.print(1,4,"Z磁力值:%0.1f mG" % (magnetic2.get_z()), 1)
time.sleep_ms(50) #延时50毫秒
程序说明
地磁传感器的测量范围:±8 Gauss;精度0.4mGs,电子罗盘误差±0.5°。magnetic2.get_x()为地磁传感器的X方向的地磁数据;magnetic2.get_y()为地磁传感器的Y方向的地磁数据;magnetic2.get_z()为地磁传感器的Z方向的地磁数据,返回数据均为浮点数数据。
呈现效果
