mPythonX 帮助文档

mPythonX是一款掌控板专用、易上手、可图形化编程的软件。

_images/mPythonX.jpg

目录

mPython X 使用说明

软件安装

最新版本为0.6.1:

beta测试版本:

附:掌控板的Mac驱动

https://www.silabs.com/documents/public/software/Mac_OSX_VCP_Driver.zip

Mac驱动装不上的解决方案

https://www.labplus.cn/posts/5ce21e777f719d2556d121c3

提示

安装过程有可能被杀毒软件误报病毒,需要选择“允许程序所有操作”。

安装软件的最后一步,会自动安装CP210x的驱动,如果先前安装过则可以忽略。

_images/software_2.png

更新日志

0.6.1

  1. 掌控板固件更新到v2.2.1;
  2. 优化按键、触摸键事件语法;
  3. 单次上传文件改为最大1M;
  4. 增加扩展:N+小方舟、MU视觉传感器等;
  5. 增加UDP消息传递;
  6. 增加蓝牙iBeacon室内定位及示例。

0.6.0

  1. 增加一个新的BLE固件;
  2. 增加BLE相关功能与示例;
  3. 改写讯飞语音识别与示例。

0.5.2

  1. 掌控板固件更新到v2.0.2;
  2. 修复讯飞语音TTS;
  3. 增加百度语音及示例。

0.5.1

  1. 掌控板固件更新到v2.0.1;
  2. 优化掌控板语音识别;
  3. 界面小修改。

0.5.0

  1. 加入硬件选择:掌控板/AI交互实验箱/micro:bit;
  2. 掌控板模式下,可烧录掌控板2.0固件(兼容1.X板);
  3. 掌控板模式下,增加磁力计(仅掌控板2.0可用)、讯飞语音识别、及一些通用传感器;
  4. AI交互实验箱模式下,提供实验箱专用固件与示例;
  5. micro:bit模式下,相比旧版micro:bit专用软件,增加REPL区与示例。

0.3.5

  1. 固件更新到1.5.1,内置增加一些中国歌曲、修复舵机bug;
  2. 增加可选固件:模拟 micro:bit 连 Scratch 3(测试版);
  3. 软件启动速度有所提高;
  4. 检测掌控板连接情况,自动连接、断开;
  5. 控制台可以 Ctrl+V 粘贴代码;
  6. 增加“天气”分类,支持心知天气;
  7. 支持 DS18B20 传感器;
  8. 产生真随机数(通过随机种子)。

0.3.4

  1. 固件更新到1.5.0,可用空间扩大至2M;
  2. 新增sdcard库,支持外接sd卡;
  3. urequests库支持http上传二进制文件;
  4. gui库支持显示bmp图片;
  5. gui库支持生成并显示二维码;
  6. ap模式可设置密码;
  7. neopixel新增调整亮度block;
  8. mqtt新增腾讯物联网block;
  9. 对部分OSError增加中英文提示。

0.3.3

  1. 允许刷入main.py之外的其他文件;
  2. 文件系统增加选取任意*.py文件运行的功能;
  3. “事件”分类增加掌控板被抛起的事件。

0.3.2

  1. 允许香港手机号码登录小程序。

0.3.1

  1. 支持MQTT、EasyIoT;
  2. 调整引脚下拉框编程方式;
  3. 新增库函数hcsr04.py。

0.3.0

  1. 增加audio、tts、radio等;
  2. 增加微信小程序功能;
  3. 支持Tello教育版、Yeelight;
  4. Blynk库升级到最新版,支持私服;
  5. 增加“串口”分类,增加、优化若干block;
  6. 增加“擦除固件”、“打开板载文件”等功能。

0.2.2

  1. 增加内置英文字体、允许自定义英文字体;
  2. 增加自定义条件触发事件;
  3. 对pbm图片的支持更友好;
  4. python基础语法完善:增加“集合”分类、try-except-finally语法;
  5. 增加”三轴倾斜角值”、”I2C超声波值”等block;
  6. 调试与文件下载增加出错提示;
  7. 固件内置资源更新,增加若干表情、字体。

0.2.1

  1. 集成tinywebio库;
  2. 增加功能:只刷代码;
  3. 增加自定义代码block;
  4. 增加灯带彩虹效果block,及示例;
  5. 增加P~N触摸事件block。

0.2.0

  1. 固件更新,开机动画优化;
  2. 在代码出错时,OLED能提示具体错误行数;
  3. 菜单功能增加:掌控内部文件系统、示例程序、中英双语;
  4. 优化文件打开方式、增加信息提示、固件自检;
  5. 增加文件、字典、Bluebit等分类;
  6. 优化音乐、列表、元组等分类;
  7. 允许用户上传pbm图片并读取、wifi能选时区等。

0.1.2

  1. 增加开机动画;
  2. 增加 按钮/定时器/引脚电平 触发事件;
  3. 增加“元组”定义。

0.1.1

  1. 修正tab键导致python程序出错的bug;
  2. 修正变量的None定义导致python程序出错的bug;
  3. 内置官方固件、Scratch固件、允许烧录自定义固件;
  4. 双击图形化编程区隐藏代码区,再双击还原;
  5. 图形化增加工具栏,允许鼠标放大缩小。

0.1.0

  1. 修复内置固件的bug;
  2. 增加“检查更新”按钮;
  3. 优化中文读写;
  4. 红色显示报错信息、屏蔽读取文件时的回传内容。

接入硬件

点击桌面快捷方式mPython X,打开软件主界面。

_images/mPythonX_1.png

用USB线接入掌控板。正确识别后,“连接串口”处会出现COM口,如下图:

_images/mPythonX_2.png

上述顺序可以颠倒,即:可以先接入掌控,再打开软件。

图形编辑区

保存

“保存代码”只保存程序对应的代码,后缀为py:

_images/mPythonX_3.png

点击“本机读取”,加载保存的py文件:

_images/mPythonX_5.png

读取效果如图:

_images/mPythonX_4.png

“保存模块”保存程序对应的代码及图形化模块,后缀为xml:

_images/mPythonX_6.png

点击“本机读取”,加载保存的xml文件,读取效果如图:

_images/mPythonX_7.png

模块提示

鼠标停留在模块上会有提示:

_images/mPythonX_8.png

帮助文档

在模块上,点击鼠标右键:

_images/mPythonX_9.png

点击帮助,即可跳转至帮助文档:

_images/mPythonX_10.png

切换图形/代码模式

点击“代码模式”/“图形模式”,即可实现对应切换:

_images/mPythonX_11.png _images/mPythonX_12.png

改变图形区/代码区大小

鼠标停留在圈红的灰色三角上,按住左键左右拖动即可:

_images/mPythonX_13.png

代码编辑区

代码联想:

_images/mPythonX_14.png

运行/刷入

运行/刷入

运行/刷入两种模式皆可实现程序效果。

点击“连接串口”,按钮字样变成“断开连接”,即可开始运行/刷入:

_images/mPythonX_15.png

注解

“运行”的代码脱机后即失效,“刷入”的代码脱机后再次连接电源仍有效

代码查错

圈红处是反馈的信息,包括硬件信息、代码报错信息等:

_images/mPythonX_16.png

比如,红字为代码报错信息:

_images/mPythonX_17.png

读出上一次刷入的代码

点击“从掌控读出”即可读出上一次刷入的代码。

恢复固件

点击“恢复固件”,按照提示操作:

_images/mPythonX_18.png

提示

如果恢复固件失败(或超过30秒仍然一直在恢复),请先尝试关闭杀毒软件,或者选择信任esptool。5

图形块 API

显示

oled.DispChar()

描述: oled屏显示文本

_images/DispChar.png

oled.DispChar(s, x, y, mode=TextMode.normal)

参数:

  • s -需要显示的文本。

  • xy -文本的左上角作为起点坐标。

  • mode - 设置文本模式,默认为TextMode.normal

    • TextMode.normal - 等于1 。普通模式,文本显示白色,背景为黑色。
    • TextMode.rev - 等于2 。反转模式,文本显示黑色,背景为白色。
    • TextMode.trans - 等于3 。透明模式,透明文本意味着文本被写在显示中已经可见的内容之上。不同之处在于,以前屏幕上的内容仍然可以看到,而对于normal,背景将被当前选择的背景颜色所替代。
    • TextMode.xor - 等于4 。XOR模式,如果背景是黑色的,效果与默认模式(normal模式)相同。如果背景为白色,则反转文本。

oled.show()

描述: 将缓存发送至oled显示。

_images/show.png
示例

显示 hello,world!

_images/hello.png

oled.fill()

描述: 点亮或者熄灭所有屏幕像素点。

_images/fill.png

oled.fill(c)

参数:

  • c - 为1时,像素点亮;为0时,像素点灭。
示例

1秒间隔,全屏亮灭

_images/blink.png

点击下载图形化示例

oled.invert()

描述: 翻转像素点,设置黑底、白底。

_images/invert.png

oled.invert(n)

参数:

  • n - 当n=1时,未填充像素点点亮,填充像素点灭。当n=0时,则反。默认启动是填充像素点点亮。

oled.pixel()

描述: 点亮或熄灭坐标像素点

_images/pixel.png

oled.pixel(x, y,c)

参数:

  • x , y - 像素点坐标
  • c - 当为1时,点亮;当为0时,熄灭

oled.circle()

描述: 绘制空心圆。

_images/circle.png

oled.circle(x, y, radius, c)

参数:

  • xy -左上角作为起点坐标
  • radius - 圆半径大小
  • c - 为1时,像素点亮;c 为0时,像素点灭

oled.fill_circle()

描述: 绘制实心圆。

_images/fill_circle.png

oled.fill_circle(x, y, radius, c)

参数:

  • xy -左上角作为起点坐标
  • radius - 圆半径大小
  • c - 为1时,像素点亮;c 为0时,像素点灭

oled.triangle()

描述: 绘制空心三角形。

_images/triangle.png

oled.triangle(x0, y0, x1, y1, x2, y2, c)

参数:

  • x0y0 -三角形上顶点坐标
  • x1y1 -三角形左顶点坐标
  • x2y2 -三角形右顶点坐标
  • c - 为1时,像素点亮;c 为0时,像素点灭

oled.fill_triangle()

描述: 绘制实心三角形。

_images/fill_triangle.png

oled.fill_triangle(x0, y0, x1, y1, x2, y2, c)

参数:

  • x0y0 -三角形上顶点坐标
  • x1y1 -三角形左顶点坐标
  • x2y2 -三角形右顶点坐标
  • c - 为1时,像素点亮;c 为0时,像素点灭
示例
_images/fill_triangle1.png

点击下载图形化示例

oled.hline()

描述: 绘制水平线

_images/hline.png

oled.hline(x, y, w, c)

参数:

  • xy - 起点坐标
  • w - 长度
  • c - 为1时,像素点亮;c 为0时,像素点灭

oled.vline()

描述: 绘制垂直线

_images/vline.png

oled.vline(x, y, l, c)

参数:

  • xy - 起点坐标
  • l - 长度
  • c - 为1时,像素点亮;c 为0时,像素点灭

oled.line()

描述: 绘制线段

_images/line.png

oled.line(x1, y1, x2, y2, c)

参数:

  • x1y1 - 起点坐标
  • x2y2 - 终点坐标
  • c - 为1时,像素点亮;c 为0时,像素点灭

oled.rect()

描述: 绘制矩形边框

_images/rect.png

oled.rect(x, y, w, h, c)

参数:

  • xy - 起点坐标
  • wh - 宽度,高度
  • c - 为1时,像素点亮;c 为0时,像素点灭

oled.fill_rect()

描述: 绘制实心矩形

_images/fill_rect.png

oled.fill_rect(x, y, w, h, c)

参数:

  • xy - 起点坐标
  • wh - 宽度,高度
  • c - 为1时,像素点亮;c 为0时,像素点灭

oled.RoundRect()

描述: 绘制弧角矩形边框

_images/RoundRect.png

oled.RoundRect(x, y, w, h, r, c)

参数:

  • xy - 起点坐标
  • wh - 宽度,高度
  • r - 圆弧角半径
  • c - 为1时,像素点亮;c 为0时,像素点灭

oled.Bitmap()

描述: 绘制bitmap图案

_images/bitmap.png

oled.Bitmap(x, y, bitmap, w, h, c)

参数:

  • xy - 起点坐标
  • bitmap - 图案bitmap数组名称
  • w - 图案宽度
  • h - 图案高度
  • c - 为1时,像素点亮;c 为0时,像素点灭

UI.ProgressBar()

描述: 绘制进度条

_images/ProgressBar.png

UI.ProgressBar(x, y, width, height, progress)

参数:

  • xy -左上角作为起点坐标
  • width -进度条宽度
  • height -进度条高度
  • progress -进度条百分比

UI.stripBar()

描述: 绘制垂直或水平的柱状条

_images/stripBar.png

UI.stripBar(x, y, width, height, progress,dir=1,frame=1)

参数:

  • xy -左上角作为起点坐标
  • width -柱状条宽度
  • height -柱状条高度
  • progress -柱状条百分比
  • dir -柱状条方向。dir=1时水平方向,dir=0时,垂直方向。
  • frame -当frame=1时,显示外框;当frame=0时,不显示外框。

按键

按键控制类指令

button_[a,b].value()

描述: 获取 button_[a,b] 按键引脚状态

_images/button.png

touchPad_[P,Y,T,H,O,N].read()

描述: 返回触摸引脚 touchPad_P/Y/T/H/O/N 的值

声音

声音传感器指令

sound.read()

描述: 获取声音传感器的数据

_images/sound.png

光线

光线传感器指令

light.read()

描述: 获取光线传感器的数据

_images/light.png

加速度

加速度传感器指令,单位g,范围-2~+2g

accelerometer.get_x()

描述: 获取x轴上的加速度测量值

_images/accelerometer.png

accelerometer.get_y()

描述: 获取y轴上的加速度测量值

accelerometer.get_z()

描述: 获取z轴上的加速度测量值

板载RGB

RGB LED控制类指令,用于控制掌控板的3颗RGB ws2812灯珠,rgb对象为neopixel的衍生类,继承neopixel的方法

rgb[n] = (r, g, b)

描述: 设置对应灯珠的颜色,n 为板载RGB灯的个数,第一个灯为0, r、g、b 为颜色亮度值,范围值为0~255

rgb.write()

描述: 把数据写入RGB灯珠中

rgb.fill( (r, g, b) )

描述: 填充所有灯珠颜色及亮度, r、g、b 为颜色亮度值,范围值为0~255

外部RGB

外部RGB灯带控制类指令

class NeoPixel(pin, n, bpp=3, timing=0)

描述: 构建对象

_images/class.png

参数:

  • pin - 输出引脚
  • n - LED灯的个数
  • bpp - bpp=3,默认为3元组RGB;bpp=4,对于具有3种以上颜色的LED,例如RGBW像素或RGBY像素,采用4元组RGBY或RGBY像素
  • timing - 默认等于0,为400KHz速率;等于1,为800KHz速率

NeoPixel.write()

描述: 把数据写入RGB灯珠中

NeoPixel.fill( (r, g, b) )

描述: 填充所有灯珠颜色及亮度, r、g、b 为颜色亮度值,范围值为0~255

bme280

bme280环境传感器指令

bme280是一款集成温度、湿度、气压,三位一体的环境传感器,具有高精度,多功能,小尺寸等特点

  • 温度检测范围:-40℃~+85℃,分辨率0.1℃,误差±0.5℃
  • 湿度检测范围:0~100%RH,分辨率0.1%RH,误差±2%RH
  • 压力检测范围:300~1100hPa
  • 湿度测量响应时间:1s

注意

掌控板预留bme280芯片位置未贴片,默认配置的掌控板是不带bme280环境传感器,需留意!

bme280.temperature()

描述: 返回温度值,单位摄氏度

_images/bme280.png

bme280.pressure()

描述: 返回大气压值,单位Pa

bme280.humidity()

描述: 返回环境湿度,单位%

示例

预置bme280环境传感器的掌控板获取气压值

_images/bme2801.png

点击下载图形化示例

模拟时钟

UI类指令,提供模拟钟表显示功能

class UI.Clock(x, y, radius)

描述: 构建对象

_images/class1.png

参数:

  • xy - 左上角作为起点坐标
  • radius - 钟表半径

UI.settime()

描述: 获取本地时间并设置模拟钟表时间

_images/settime.png

UI.drawClock()

描述: 绘制钟表

_images/drawClock.png

UI.clear()

描述: 清除钟表

wifi

提供便捷的 wifi 连接网络方式或热点 wifi 功能

wifi.connectWiFi()

描述: 连接 wifi 网络,连接掌控板开启的热点则无需密码

_images/connectWiFi.png

参数:

  • ssid - WiFi网络名称
  • password - WiFi密码

wifi.sta.ifconfig()[n]

描述: wifi 连接成功后,获取wifi配置信息,含 IP、netmask、getway、DNS,n为0、1、2、3

_images/sta.ifconfig.png

示例

_images/ifconfig.png

点击下载图形化示例

wifi.disconnectWiFi()

描述: 断开wifi网络连接

_images/disconnectWiFi.png

wifi.enable_APWiFi(essid,channel)

描述: 开启无线AP功能,用于掌控板之间的相互通信

_images/enable_APWiFi.png

参数:

  • essid - 创建WiFi网络名称
  • channel -设置wifi使用信道,channel 1~13

wifi.disable_APWiFi()

描述: 关闭无线AP

_images/disable_APWiFi.png

ntptime.settime(timezone, server)

描述: 将掌控板的时间与网络时间同步

_images/ntptime.settime.png

参数:

  • timezone - 时区时间差,默认为东八区,补偿8小时
  • server - 可自行指定授时服务器,server为字符串类型,默认授时服务器为”ntp.ntsc.ac.cn”

appserver.start()

描述: TinyWebIO服务后台运行,该服务为App Inventor应用提供远程控制接口的掌控板工具包

_images/TinyWebIO.png

appserver.start_foreground()

描述: TinyWebIO服务前台运行

引脚

引脚控制类指令

pin.read_digital()

描述: 读取IO引脚电平值,1代表高电平,0代表低电平

_images/read_digital.png
pin = MPythonPin(pin_num,PinMode.IN)
pin.read_digital()
  • pin_num - 掌控板引脚编号
示例

串口打印读取引脚值

_images/read_digital1.png

点击下载图形化示例

pin.write_digital()

描述: 设置IO引脚的高低电平,1为高电平,0为低电平

_images/write_digital.png
pin = MPythonPin(pin_num,PinMode.OUT)
pin.write_digital()
  • pin_num - 掌控板引脚编号
示例

IO引脚高低电平切换

_images/write_digital1.png

点击下载图形化示例

pin.read_analog()

描述: 读取IO引脚的模拟输入

_images/read_analog.png
pin = MPythonPin(pin_num,PinMode.ANALOG)
pin.read_analog()
  • pin_num - 掌控板引脚编号

pin.write_analog()

描述: 设置IO引脚的PWM输出

_images/write_analog.png
pin = MPythonPin(pin_num,PinMode.PWM)
pin.write_analog()
  • pin_num - 掌控板引脚编号

无线广播

radio 模块提供无线广播功能,支持13 Channel,在相同的 Channel 内能接收到成员发出的广播消息,适合10米范围内的多板组网的通讯

radio.on()

描述: 开启无线功能

_images/12.png

radio.off()

描述: 关闭无线功能

radio.config(channel)

描述: 配置无线参数

_images/21.png

参数:

  • channel (int) - 无线通道,范围1~13

radio.receive()

描述: 接收无线广播消息,消息以字符串形式返回。最大可接收250字节数据。如果没有接收到消息,则返回 None 。当 receive 内参数为 True ,即 receive(True) ,返回 (msg,mac) 的二元组。默认缺省 receive(False) ,即只返回 msg

_images/41.png

radio.receive_bytes()

描述: 接收无线广播消息,消息以字节形式返回。其他同 radio.receive() 相同

radio.send()

描述: 发送无线广播消息,发送数据类型为字符串。当发送成功后返回 True,否则返回 False

_images/31.png

radio.send_bytes()

描述: 发送无线广播消息,发送数据类型为字节。当发送成功后返回 True,否则返回 False

音乐

音乐控制类指令

music.pitch()

描述: 播放一定时长的频率

_images/pitch.png
music.pitch(frequency, duration=-1, pin=6, wait=True)
  • frequency - 频率
  • duration - 毫秒数,如果为负,则连续播放频率,直到阻塞或者被中断,或者在后台呼叫的情况下,设置或调用新频率stop
  • pin - 默认是掌控板的P6引脚,一次只能在一个引脚上播放频率
  • wait - 阻塞,如果为 True 则阻塞,反之则不

range()

描述: 创建一个整数列表,一般用在 for 循环中

range(start, stop[, step])
  • start - 计数从 start 开始,默认是从 0 开始,例如range(5)等价于range(0, 5)
  • stop - 计数到 stop 结束,但不包括 stop,例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
  • step - 步长,默认为1,例如:range(0, 5) 等价于 range(0, 5, 1)

music.play()

描述: 播放音乐

music.play(music, pin=6, wait=True, loop=False)
  • music - 内置音乐,如music.PYTHON;音符,如’c1:4’;音符列表,如[‘r4:2’, ‘g’, ‘g’, ‘g’, ‘eb:8’, ‘r:2’, ‘f’, ‘f’, ‘f’, ‘d:8’]
  • pin - 默认是掌控板的P6引脚
  • wait - 阻塞,如果为 True 则阻塞,反之则不
  • loop - 如果 loop 设置为 True ,则重复调整直到stop被调用或阻塞调用被中断

music.set_tempo()

描述: 设置播放节拍

music.set_tempo(ticks=4, bpm=120)
  • ticks - 一定数量的ticks(整数)构成单个节拍
  • bpm - 每分钟节拍数

music.get_tempo()

描述: 获取当前速度作为整数元组: (ticks, bpm)

_images/get_tempo.png

music.reset()

描述: 以下列方式重置以下属性的状态

  • ticks = 4
  • bpm = 120
  • duration = 4
  • octave = 4
_images/reset.png

music.stop()

描述: 停止给定引脚上的所有音乐播放

_images/stop.png

music.stop(pin=6)

  • pin - 默认是掌控板的P6引脚

音频

音频指令,提供音频录音播放功能,使用P8和P9引脚作为音频解码输出

注意

目前只实现音频播放功能

audio.player_init()

描述: 音频播放初始化,为音频解码开辟缓存

_images/player_init.jpg

audio.play(url)

描述: 本地或网络音频播放,目前只支持mp3格式音频

audio.play(url)
  • url - 音频文件路径,类型为字符串,可以是本地路径地址,也可以是网络上的URL地址
_images/play.jpg

audio.set_volume(vol)

描述: 设置音频音量

audio.set_volume(vol)
  • vol - 音量设置,范围0~100
_images/set_volume.jpg

audio.stop()

描述: 音频播放停止

_images/stop.jpg

audio.pause()

描述: 音频播放暂停

audio.resume()

描述: 音频播放恢复,用于暂停后的重新播放

audio.player_status()

描述: 用于获取系统是否处于音频播放状态,返回1,说明正处于播放中,返回0,说明播放结束,处于空闲

audio.player_deinit()

描述: 音频播放结束后,释放缓存

_images/player_deinit.jpg

事件

按键、引脚、定时器、子线程等事件指令

button_[a,b].irq(handler=None, trigger=(Pin.IRQ_FALLING | Pin.IRQ_RISING), priority=1, wake=None)

描述: 按键 a 中断事件

button_[a,b].irq(handler=None, trigger=(Pin.IRQ_FALLING | Pin.IRQ_RISING), priority=1, wake=None)
  • trigger - trigger 配置可以触发中断的事件,可能的值是:Pin.IRQ_FALLING 下降沿中断;Pin.IRQ_RISING 上升沿中断;Pin.IRQ_LOW_LEVEL 低电平中断;Pin.IRQ_HIGH_LEVEL 高电平中断
  • handler - handler 是一个可选的函数,在中断触发时调用,返回一个回调对象
  • priority - 设置中断的优先级,它可以采用的值是特定于端口的,但是更高的值总是代表更高的优先级
  • wake - 选择此中断可唤醒系统的电源模式,它可以是 machine.IDLE , machine.SLEEP 或 machine.DEEPSLEEP
_images/button_irq.png

class machine.Timer(id, …)

描述: 构造给定id的新计时器对象,Id为-1构造虚拟计时器

Timer.init(*, mode=Timer.PERIODIC, period=-1, callback=None)

描述: 初始化计时器

Timer.init(*, mode=Timer.PERIODIC, period=-1, callback=None)
  • mode - Timer.ONE_SHOT:计时器运行一次,直到配置完毕通道的期限到期;Timer.PERIODIC:定时器以通道的配置频率定期运行
_images/Timer_init.png

Timer.deinit()

描述: 取消定时器的初始化,停止计时器,并禁用计时器外围设备

_images/Timer_deinit.png

Timer.value()

描述: 获取并返回计时器当前计数值

_images/Timer_value.png

Pin.irq(handler=None, trigger=(Pin.IRQ_FALLING | Pin.IRQ_RISING))

描述: 配置在引脚的触发源处于活动状态时调用的中断处理程序

Pin.irq(handler=None, trigger=(Pin.IRQ_FALLING | Pin.IRQ_RISING))
  • handler - 是一个可选的函数,在中断触发时调用
  • trigger - 配置可以触发中断的事件,可能的值是:Pin.IRQ_FALLING 下降沿中断;Pin.IRQ_RISING 上升沿中断;Pin.IRQ_LOW_LEVEL 低电平中断;Pin.IRQ_HIGH_LEVEL 高电平中断
_images/Pin_irq.png

_thread.start_new_thread(function, args [, kwargs])

描述: 启动一个新线程并返回其标识符。线程使用参数列表args(必须是元组)执行函数。可选kwargs参数指定关键字参数的字典。 当函数返回时,线程将以静默方式退出。当函数以未处理的异常终止时,将打印堆栈跟踪,然后线程退出(但其他线程继续运行)

_images/_thread.png

循环

break

描述: break 语句可以跳出 for 和 while 的循环体。如果你从 for 或 while 循环中终止,任何对应的循环 else 块将不执

continue

描述: continue 语句被用来告诉 Python 跳过当前循环块中的剩余语句,然后继续进行下一轮循环

逻辑

and

描述: 布尔”与”

or

描述: 布尔”或”

not

描述: 布尔”非”

None

描述:

return

描述: return [表达式] 语句用于退出函数,选择性地向调用方返回一个表达式。不带参数值的 return 语句返回 None

try…except…finally

描述: 执行 try 语句,无异常则继续执行 try 语句;发生异常则跳转至 except 语句并执行之,执行 except 语句完毕后跳回执行 try 语句的剩余部分。无论有无异常,最后必定执行 finally 语句

_images/11.png

type(object)

描述: 返回对象类型

参数:

  • object - 对象

eval(expression[, globals[, locals]])

描述: 用来执行一个字符串表达式,并返回表达式的值

_images/2.png

参数:

  • expression - 表达式
  • globals - 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象
  • locals - 变量作用域,局部命名空间,如果被提供,可以是任何映射对象

数学

math.sqrt(x)

描述: 返回 x 的平方根

math.fabs(x)

描述: 返回 x 的绝对值

math.log(x)

描述: 返回 x 的自然对数,x > 0

math.log10(x)

描述: 返回以10为基数的 x 对数,x > 0

math.exp(x)

描述: 返回 e 的 x 次幂,如 math.exp(1) 返回2.718281828459045

math.pow(x, y[, z])

描述: 返回 x 的 y 次方,如果 z 存在,则再对结果进行取模,其结果等效于 pow(x,y) %z

math.sin(x)

描述: 返回的 x 弧度的正弦值

math.cos(x)

描述: 返回的 x 弧度的余弦值

math.tan(x)

描述: 返回的 x 弧度的正切值

math.radians(x)

描述: 返回角度 x 的弧度值

math.asin(x)

描述: 返回 x 的反正弦弧度值

math.acos(x)

描述: 返回 x 的反余弦弧度值

math.atan(x)

描述: 返回 x 的反正切弧度值

round(x [, n])

描述: 返回浮点数 x 的四舍五入值

参数:

  • x - 数字表达式
  • n - 表示从小数点位数,其中 x 需要四舍五入,默认值为 0

math.ceil(x)

描述: 返回一个大于或等于 x 的的最小整数

math.floor(x)

描述: 返回数字的下舍整数,小于或等于 x

random.randint(a, b)

描述: 返回随机整数 N 满足 a <= N <= b。相当于 randrange(a, b+1)

random.randrange(start, stop[, step])

描述: 返回指定递增基数集合中的一个随机数,基数缺省值为1

返回值: 从给定的范围返回随机项

参数:

  • start - 指定范围内的开始值,包含在范围内
  • stop - 指定范围内的结束值,不包含在范围内
  • step - 指定递增基数

random.random()

描述: 返回随机生成的一个实数,它在[0,1)范围内

‘~’

描述: 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1。~x 类似于 -x-1

‘&’

描述: 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0

‘|’

描述: 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1

‘^’

描述: 按位异或运算符:当两对应的二进位相异时,结果为1

‘<<’

描述: 左移动运算符:运算数的各二进位全部左移若干位,由”<<”右边的数指定移动的位数,高位丢弃,低位补0

‘>>’

描述: 右移动运算符:把”>>”左边的运算数的各二进位全部右移若干位,”>>”右边的数指定移动的位数

文本

文本操作

%.2f

描述: 保留两位小数,四舍五入

示例

print(“%.2f %.2f %.2f” % (3.1415926, 5.123, 5.125))

{:.2}

描述: 保留宽度为2,如保留前两位数字或前两个字符

示例

print(“{:.2} {:.3}”.format(‘abc’, 3.1415926))

str.isdigit()

描述: 检测字符串是否只由数字组成

str.isalpha()

描述: 检测字符串是否只由字母组成

str.find(str, beg=0, end=len(string))

描述: 检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果指定范围内如果包含指定索引值,返回的是索引值在字符串中的起始位置。如果不包含索引值,返回-1

返回值: 如果包含子字符串返回开始的索引值,否则返回-1

参数:

  • str - 指定检索的字符串
  • beg - 开始索引,默认为0
  • end - 结束索引,默认为字符串的长度

str.rfind(str, beg=0 end=len(string))

描述: 返回字符串最后一次出现的位置,如果没有匹配项则返回-1

返回值: 返回字符串最后一次出现的位置,如果没有匹配项则返回-1

参数:

  • str - 指定检索的字符串
  • beg - 开始索引,默认为0
  • end - 结束索引,默认为字符串的长度

str.lower()

描述: 转换字符串中所有大写字符为小写

返回值: 返回将字符串中所有大写字符转换为小写后生成的字符串

str.upper()

描述: 字符串中的小写字母转为大写字母

返回值: 返回小写字母转为大写字母的字符串

str.strip([chars])

描述: 移除字符串头尾指定的字符(默认为空格)或字符序列

返回值: 返回移除字符串头尾指定的字符序列生成的新字符串

参数:

  • chars - 移除字符串头尾指定的字符序列

bytes([source[, encoding[, errors]]])

描述: 返回一个新的 bytes 对象,该对象是一个 0 <= x < 256 区间内的整数不可变序列。它是 bytearray 的不可变版本

返回值: 返回一个新的 bytes 对象

参数:

  • source - 如果 source 为整数,则返回一个长度为 source 的初始化数组
  • source - 如果 source 为字符串,则按照指定的 encoding 将字符串转换为字节序列
  • source - 如果 source 为可迭代类型,则元素必须为[0 ,255] 中的整数
  • source - 如果 source 为与 buffer 接口一致的对象,则此对象也可以被用于初始化 bytearray
  • source - 如果没有输入任何参数,默认就是初始化数组为0个元素

bytes.decode(encoding=”utf-8”, errors=”strict”)

描述: 以指定的编码格式解码 bytes 对象。默认编码为 ‘utf-8’

返回值: 返回解码后的字符串

参数:

  • encoding - 要使用的编码,如”UTF-8”
  • errors - 设置不同错误的处理方案。默认为 ‘strict’,意为编码错误引起一个UnicodeError。 其他可能得值有 ‘ignore’, ‘replace’, ‘xmlcharrefreplace’, ‘backslashreplace’ 以及通过 codecs.register_error() 注册的任何值

ujson.dumps(obj)

描述: 将 dict 类型的数据转换成 str,因为如果直接将 dict 类型的数据写入 json 文件中会发生报错,因此在将数据写入时需要用到该函数

返回值: 返回转换后的 json 字符串

参数:

  • obj - 要转换的对象

ujson.loads(str)

描述: 解析 json 字符串并返回对象。如果字符串格式错误将引发 ValueError 异常

返回值: 返回对象

参数:

  • str - 要转换的 json 字符串

列表

列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现,如[0, ‘mpython’]

list.append(obj)

描述: 在列表末尾添加新的对象

list.append(obj)
  • obj - 添加到列表末尾的对象
_images/list_append.png

list.extend(seq)

描述: 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)

list.extend(seq)
  • seq - 元素列表,可以是列表、元组、集合、字典,若为字典,则仅会将键(key)作为元素依次添加至原列表的末尾
_images/list_extend.png

list.clear()

描述: 清空列表,类似于 del a[:]

_images/clear.png

list.insert(index, obj)

描述: 将指定对象插入列表的指定位置

list.insert(index, obj)
  • index - 对象obj需要插入的索引位置
  • obj - 要插入列表中的对象
_images/insert.png

list.pop([index=-1])

描述: 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值

list.pop([index=-1])
  • index - 可选参数,要移除列表元素的索引值,不能超过列表总长度,默认为 index=-1,删除最后一个列表值
_images/pop.png

str.split(str=””, num=string.count(str))

描述: 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则仅分隔 num+1 个子字符串

str.split(str=””, num=string.count(str))
  • str - 分隔符,默认为所有的空字符,包括空格、换行(n)、制表符(t)等
  • num - 分割次数,默认为 -1, 即分隔所有
_images/split.png

str.join(seq)

描述: 将序列中的元素以指定的字符连接生成一个新的字符串

str.join(seq)
  • seq - 要连接的元素序列
_images/join.png

元组

Python 的元组与列表类似,不同之处在于元组的元素不能修改

tuple(seq)

描述: 将列表转换为元组

_images/tuple.png

字典

字典是一种可变容器模型,且可存储任意类型对象,格式如 d = {key1 : value1, key2 : value2},键必须是唯一的,但值则不必

集合

集合(set)是一个无序的不重复元素序列。可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

set.intersection_update(set1, set2 … etc)

描述: 修改当前集合,保留与参数中的集合的相同元素

_images/set.png

set.intersection_update(set1, set2 … etc)

  • set1 - 必需,要查找相同元素的集合
  • set2 - 可选,其他要查找相同元素的集合,可以多个,多个使用逗号 , 隔开

set.update(set)

描述: 修改当前集合,可以添加新的元素或集合到当前集合中,如果添加的元素在集合中已存在,则该元素只会出现一次,重复的会忽略

set.update(set)

  • set - 必需,可以是元素或集合

set.difference_update(set)

描述: 修改当前集合,移除两个集合中都存在的元素

set.difference_update(set)

  • set - 必需,可以是元素或集合

set.issubset(set)

描述: 判断当前集合是否为指定集合的子集,如果是则返回 True,否则返回 False。

_images/issubset.png

set.issubset(set)

  • set - 必需,指定集合

set.issuperset(set)

描述: 判断当前集合是否为指定集合的超集,如果是则返回 True,否则返回 False。

set.issuperset(set)

  • set - 必需,指定集合

set.pop()

描述: 随机移除一个元素并返回之

_images/pop1.png

文件

文件操作

open(file, mode=’r’)

描述: 打开一个文件,并返回文件对象

open(file, mode=’r’)

  • file - 必需,文件路径(相对或者绝对路径)
  • mode - 可选,文件打开模式,常用选项:t,文本模式 (默认);b,二进制模式;r,以只读方式打开文件;rb,以二进制格式打开一个文件用于只读;w,打开一个文件只用于写入;wb,以二进制格式打开一个文件只用于写入

file.close()

描述: 关闭文件。关闭后文件不能再进行读写操作

file.read([size])

描述: 从文件读取指定的字节数,如果未给定或为负则读取所有

file.read([size])

  • size - 从文件中读取的字节数

file.write(str)

描述: 向文件中写入指定字符串。在文件关闭前或缓冲区刷新前,字符串内容存储在缓冲区中,这时你在文件中是看不到写入的内容的。如果文件打开模式带 b,那写入文件内容时,str (参数)要用 encode 方法转为 bytes 形式,否则报错:TypeError: a bytes-like object is required, not ‘str’

返回值: 返回的是写入的字符长度

file.write(str)

  • str - 要写入文件的字符串

网络

usocket.socket(af=AF_INET, type=SOCK_STREAM, proto=IPPROTO_TCP)

描述: 构建对象

_images/13.png

参数:

  • af - 地址
    • socket.AF_INET:=2 — TCP/IP – IPv4
    • socket.AF_INET6:=10 — TCP/IP – IPv6
  • type - socket 类型
    • socket.SOCK_STREAM:=1 — TCP 流
    • socket.SOCK_DGRAM:=2 — UDP 数据报
    • socket.SOCK_RAW:=3 — 原始套接字
    • socket.SO_REUSEADDR:=4 — socket可重用
  • proto - 协议号。一般不指定proto参数,因为有些MicroPython固件提供默认参数
    • socket.IPPROTO_TCP:=6
    • socket.IPPROTO_UDP:=17

usocket.getaddrinfo(host, port)

描述: 将主机域名(host)和端口(port)转换为用于创建套接字的5元组序列。元组列表的结构: (family, type, proto, canonname, sockaddr)

_images/6.png

socket.close()

描述: 关闭 socket。一旦关闭后,socket 所有的功能都将失效。远端将接收不到任何数据 (清理队列数据后)。 内存碎片回收时 socket 会自动关闭,但还是推荐在必要时用 close() 去关闭

_images/22.png

socket.bind(address)

描述: 以列表或元组的方式绑定地址和端口号

_images/32.png

参数:

  • address - 一个包含地址和端口号的列表或元组

socket.listen([backlog])

描述: 监听 socket,使服务器能够接收连接。如果指定了 backlog ,它不能小于0 (如果小于0将自动设置为0); 超出后系统将拒绝新的连接。如果没有指定,将使用默认值

_images/42.png

参数:

  • backlog - 接受套接字的最大个数,至少为0,如果没有指定,则默认一个合理值

socket.accept()

描述: 接收连接请求。socket 需要指定地址并监听连接。返回值是 (conn, address), 其中 conn 是用来接收和发送数据的套接字,address 是绑定到另一端的套接字

_images/51.png

参数:

  • conn - 新的套接字对象,可以用来收发消息
  • address - 连接到服务器的客户端地址

socket.connect(address)

描述: 连接到指定地址的服务器

_images/7.png

参数:

  • address - 服务器地址和端口号的元组或列表

socket.send(bytes)

描述: 发送数据,并返回发送的字节数

_images/8.png

参数:

  • bytes - bytes 类型数据

socket.sendall(bytes)

描述: 与 send() 函数类似,区别是 sendall() 函数通过数据块连续发送数据

参数:

  • bytes - bytes 类型数据

socket.recv(bufsize)

描述: 接收数据,返回接收到的数据对象

_images/10.png

参数:

  • bufsize - 指定一次接收的最大数据量

socket.sendto(bytes, address)

描述: 发送数据,目标由 address 决定,用于 UDP 通信,返回发送的数据大小

_images/9.png

参数:

  • bytes - bytes 类型数据
  • address - 目标地址和端口号的元组

socket.recvfrom(bufsize)

描述: 接收数据,用于 UDP 通信,并返回接收到的数据对象和对象的地址

参数:

  • bufsize - 指定一次接收的最大数据量

socket.setsockopt(level, optname, value)

描述: 根据选项值设置 socket

参数:

  • level - 套接字选项级别
  • optname - socket 选项
  • value - 可以是一个整数,也可以是一个表示缓冲区的bytes类对象

socket.settimeout(value)

描述: 设置超时时间,单位:秒

_images/111.png

socket.setblocking(flag)

描述: 设置 socket 的阻塞或非阻塞模式:若标记为 False,则将该 socket 设置为非阻塞模式

_images/121.png

socket.read([size])

描述: 从 socket 中读取 size 字节。返回一个字节对象。若未给定 size ,则按照类似 socket.readall() 的模式运行

_images/131.png

socket.readinto(buf[, nbytes])

描述: 将字节读取入缓冲区。若指定 nbytes ,则最多读取该数量的字节。否则,最多读取 len(buf) 数量的字节。 正如 read() ,该方法遵循“no short reads”方法 返回值: 读取并存入缓冲区的字节数量

socket.readline()

描述: 接收一行数据,遇换行符结束,并返回接收数据的对象

socket.write(buf)

描述: 向字节缓冲区写入socket,并返回写入数据的大小

urequests.get(url, data=None, json=None, headers={}, params=None)

描述: urequests 模块的方法,发送 GET 请求,返回 Response 对象

_images/14.png

参数:

  • url - Request 对象的 URL
  • data - 要附加到请求的正文。如果提供字典或元组列表,则将进行表单编码
  • json - json 用于附加到请求的主体
  • headers - 要发送的标头字典
  • params - 附加到 URL 的 URL 参数。如果提供字典或元组列表,则将进行表单编码

串口

UART(双工串行通信总线) 实现标准 UART / USART 双工串行通信协议。在物理层面,它由2根线组成:RX 和 TX。 通信单元是一个字符(不要与字符串混淆),可以是8bit或9bit宽

class machine.UART(id, baudrate, bits, parity, stop, tx, rx, rts, cts, timeout)

描述: 构建对象

参数:

  • id - 串口号:1、2
  • baudrate - 波特率
  • bits - 每个字符的位数
  • parity - 奇偶校验:0-偶数,1-奇数
  • stop - UART 读、写引脚
  • tx,rx - 停止位数量:1、2
  • timeout - 超时时间(单位:毫秒) < timeout ≤ 0x7FFF FFFF (十进制:0 < timeout ≤ 2147483647)
_images/15.png

注意

UART(id=0) 用于 REPL; 所有引脚均可以作为串口的输入 RX,除 P2P3P4P10 只能作为输入,其余所有的引脚理论上都可以作为输出 TX; GPIO 1GPIO 3 用于掌控板的 USB 串口,在初始化 UART 定义 tx ,rx 引脚一般不使用,除非你要用到掌控板的 USB 接口作为串口输出

UART.init(baudrate, bits, parity, stop, tx, rx, rts, cts, timeout)

描述: 使用给定参数初始化UART总线

UART.deinit()

描述: 关闭 UART 总线

_images/91.png

UART.any()

描述: 返回一个整数,计算可以无阻塞地读取的字符数。如果没有可用字符,它将返回0,如果有字符,则返回正数。 即使有多个可读的字符,该方法也可以返回1

_images/52.png

UART.read([nbytes])

描述: 读字符。如果 nbytes 指定,则最多读取多个字节,否则读取尽可能多的数据

返回值: 包含读入的字节的字节对象。 None 超时时返回

_images/71.png

UART.readinto(buf[, nbytes])

描述: 将字节读入 buf 。如果 nbytes 指定,则最多读取多个字节。否则,最多读取 len(buf) 字节数

返回值: 读取和存储到超时 buf 或 None 超时的字节数

UART.readline()

描述: 读一行,以换行符结尾

返回值: 读取行或 None 超时的字节数

_images/61.png

UART.write(buf)

描述: 将字节缓冲区写入总线

返回值: 写入或 None 超时的字节数

_images/23.png

bluebit 模块

掌控板搭载 bluebit 套件的相关图形化指令

class bluebit.SHT20(i2c=i2c)

描述: 温湿度模块 SHT20 控制类

参数:

  • i2c - I2C 实例对象,默认 i2c=i2c

SHT20.temperature()

描述: 获取温度

返回值: 温度,单位摄氏度

_images/image193.png

SHT20.humidity()

描述: 获取湿度

class bluebit.Color(i2c=i2c)

描述: 颜色模块控制类

参数:

  • i2c - I2C 实例对象,默认 i2c=i2c

Color.getRGB()

描述: 获取 RGB 值

_images/image196.png

Color.getHSV()

描述: 获取 HSV 值

_images/image198.png

class bluebit.AmbientLight(i2c=i2c)

描述: 数字光线模块控制类

参数:

  • i2c - I2C 实例对象,默认 i2c=i2c

AmbientLight.getLight()

描述: 获取光线值

返回值: 返回光线值,单位lux

_images/image195.png

class bluebit.Ultrasonic(i2c=i2c)

描述: 超声波模块控制类

参数:

  • i2c - I2C 实例对象,默认 i2c=i2c

Ultrasonic.distance()

描述: 获取超声波测距

返回值: 返回测距,单位cm

_images/image194.png

class bluebit.SEGdisplay(i2c=i2c)

描述: 4段数码管模块 tm1650 控制类

参数:

  • i2c - I2C 实例对象,默认 i2c=i2c

SEGdisplay.numbers(x)

描述: 数字显示-999~9999

_images/image191.png

参数:

  • x (int) - 数字,范围-999~9999

SEGdisplay.Clear()

描述: 数码管清屏

_images/image192.png

class Matrix(i2c=i2c)

描述: 8x8点阵模块控制类

参数:

  • i2c - I2C 实例对象,默认 i2c=i2c

Matrix.brightness(brightness)

描述: 设置像素点亮度

_images/image180.png

参数:

  • brightness - 亮度级别,范围0~15

Matrix.fill(color)

描述: 填充所有

_images/image179.png

参数:

  • color - 1亮;0灭

Matrix.bitmap(bitmap)

描述: 显示位图

_images/image178.png

参数:

  • bitmap - 8x8点阵数据

Matrix.show()

描述: 显示生效

class bluebit.LCD1602(i2c=i2c)

描述: LCD1602 模块控制类

_images/image167.png

参数:

  • i2c - I2C 实例对象,默认 i2c=i2c

LCD1602.LEFT_TO_RIGHT

描述: 文本方向常量-从左到右

_images/image171.png

LCD1602.RIGHT_TO_LEFT

描述: 文本方向常量-从右到左

LCD1602.Init()

描述: 初始化函数

LCD1602.Print(str)

描述: 打印字符串

_images/image169.png

参数:

  • str (str) - 显示字符串,只支持英文

LCD1602.Clear()

描述: 清屏

_images/image170.png

LCD1602.setCursor(col, row)

描述: 设置光标位置

_images/image168.png

参数:

  • col (int) - 列,1~16
  • row (int) - 行,1~2

LCD1602.Cursor(show)

描述: 光标显示使能

_images/image174.png

参数:

  • show (bool) - True or False

LCD1602.display(enable)

描述: 设置光标位置

参数:

  • enable (bool) - True or False

LCD1602.move_left()

描述: 左滚动显示

_images/image172.png

LCD1602.move_right()

描述: 右滚动显示

LCD1602.text_direction

描述: 文本方向

class bluebit.MIDI(tx)

描述: MIDI 模块控制类

_images/image187.png

参数:

  • tx - 发送引脚

MIDI.volume

描述: 设置或返回音量

_images/image188.png

MIDI.instrument

描述: 设置或返回音色

_images/image189.png

MIDI.note(note, on_off)

描述: 播放音符

_images/image190.png

参数:

  • note - MIDI 音符编码
  • on_off - 音符播放或停止

class bluebit.MP3(tx)

描述: MIDI 模块控制类

_images/image181.png

参数:

  • tx - 发送引脚

MP3.play_song(num)

描述: 播放歌曲

参数:

  • num (int) - 歌曲编号,类型为数字

MP3.play()

描述: 播放,用于暂停后的重新播放

MP3.playDir(dir, songNo)

描述: 播放指定文件夹指定歌曲

参数:

  • dir (int) - 文件夹编号,类型数字
  • songNo (int) - 歌曲编号,类型为数字

MP3.playNext()

描述: 播下一首

MP3.playPrev()

描述: 播上一首

MP3.pause()

描述: 暂停播放

_images/image185.png

MP3.stop()

描述: 停止播放

MP3.loop(songNo)

描述: 目录内指定序号歌曲循环播放

_images/image184.png

参数:

  • songNo (int) - 歌曲编号,类型为数字

MP3.loopDir(dir)

描述: 指定目录内循环播放

参数:

  • dir (int) - 文件夹编号,类型数字

MP3.singleLoop(onOff)

描述: 单曲循环开关

_images/image186.png

参数:

  • onOff (int) - 0:不循环 1:循环

MP3.volume

描述: 设置或返回音量设置,范围0~30

_images/image182.png

MP3.volumeInc()

描述: 增加音量

_images/image183.png

MP3.volumeDec()

描述: 减小音量

MP3.resetDevice()

描述: 复位MP3

class bluebit.OLEDBit(rx, tx)

描述: OLED 模块控制类

_images/image160.png

参数:

  • rx, tx - 接收,发送引脚

OLEDBit.font_5x7

描述: 字体常量-5*7英文字体

OLEDBit.font_song16

描述: 字体常量-16*16宋体

OLEDBit.font_song24

描述: 字体常量-24*24宋体

OLEDBit.font_consol32

描述: 字体常量-32*32宋体

OLEDBit.Print(str, x, y, font)

描述: 显示中英文字符串,支持字体 ‘0’ =Font5x7, ‘1’ = 宋体16x16, ‘2’ = 宋体24x24, ‘3’ = Consolas32x32

_images/image161.png

参数:

  • str (str) - 中英文字符串
  • x y (int) - 显示坐标
  • font - 字体类型, font_5x7 , font_song24 , font_consol32

OLEDBit.clear(x0=0, y0=0, x1=127, y1=63)

描述: 清除,默认全屏清除,也可以局部清除

_images/image162.png

参数:

  • x0 y0 (int) - 抹去区域左上坐标
  • x1 y1 (int) - 抹去区域右下坐标

OLEDBit.show()

描述: 显示生效,当使用 framebuf 类方法后使用 show() 刷新屏幕

OLEDBit.Bitmap(x, y, bitmap, w, h, c)

描述: 显示图案

_images/image163.png

参数:

  • x y (int) - 起点坐标
  • bitmap - 图案1bit数据
  • w,h - 图案宽高
  • c - 颜色,1 or 0

class bluebit.IRRecv(rx, uart_id=1)

描述: 红外接收模块

参数:

  • rx (int) - 接收引脚设置
  • uart_id - 串口号:1、2

IRRecv.recv()

描述: 接收数据

返回值: 返回红外值,类型整形

class bluebit.IRTrans(tx, uart_id=2)

描述: 红外发射模块

_images/image165.png

参数:

  • tx (int) - 发送引脚设置
  • uart_id - 串口号:1、2

IRTrans.transmit(byte)

描述: 发送数据

_images/image164.png

参数:

  • byte (byte) - 发送数据,单字节

parrot.MOTOR_1

描述: M1电机编号,0x01

parrot.MOTOR_2

描述: M2电机编号,0x02

parrot.set_speed(motor_no, speed)

描述: 设置电机速度

参数:

  • motor_no (int) - 控制电机编号,可以使用 MOTOR_1, MOTOR_2, 或者直接写入电机编号
  • speed (int) - 电机速度,范围-100~100,负值代表反转
_images/1.png

parrot.get_speed(motor_no)

描述: 返回电机速度

_images/3.png

参数:

  • motor_no (int) - 控制电机编号,可以使用 MOTOR_1, MOTOR_2, 或者直接写入电机编号

parrot.led_on(no, brightness=50)

描述: 打开灯。电机接口,除了可以驱动电机,还能做灯的控制

_images/4.png

参数:

  • no (int) - 控制电机编号,可以使用 MOTOR_1, MOTOR_2, 或者直接写入电机编号
  • brightness (int) - 设置亮度,范围0~100

parrot.led_off(no)

描述: 关闭灯

_images/5.png

参数:

  • no (int) - 控制电机编号,可以使用 MOTOR_1, MOTOR_2, 或者直接写入电机编号

Yeelight 智能灯

yeelight.discover_bulbs(timeout=2)

描述: 发现所有局域网内的Yeelight灯泡

返回值: 字典列表,包含网络中每个灯泡的IP,端口和功能

参数:

  • timeout (int) - 等待回复需要多少秒。发现将总是要花这么长的时间, 因为它不知道当所有的灯泡都响应完毕时

class yeelight.Bulb(ip, port=55443, effect=’smooth’, duration=300, auto_on=False)

描述: YeeLight的控制类

参数:

  • ip (str) - 灯泡的IP
  • port (int) - 连接灯泡的端口号,默认55443
  • effect (str) - 效果类型.”smooth” or “sudden”
  • duration (int) - 效果的持续时间,以毫秒为单位.最小值为30.突然效果会忽略此值
  • auto_on (bool) - 是否 ensure_on() 在每次操作之前调用以自动打开灯泡,如果它已关闭。这会在每条消息之前更新灯泡的属性, 每个命令会花费一个额外的消息。 如果您担心速率限制,请将其关闭并自行检查。get_properties() 或运行 ensure_on()

Bulb.turn_on()

描述: 打开灯泡

Bulb.turn_off()

描述: 关闭灯泡

Bulb.toggle()

描述: 反转灯泡状态

Bulb.set_rgb(red, green, blue)

描述: 设置灯泡的 RGB 值

参数:

  • red (int) - 红色范围 (0-255)
  • green (int) - 绿色范围 (0-255)
  • blue (int) - 蓝色范围 (0-255)

Bulb.set_hsv(hue, saturation)

描述: 设置灯泡的 HSV 值

参数:

  • hue (int) - 色调(0-359)
  • saturation (int) - 饱和度(0-100)

Bulb.set_color_temp(degrees)

描述: 设置灯泡色温

参数:

  • degrees (int) - 色温范围(1700-6500)

Bulb.set_brightness(brightness)

描述: YeeLight的控制类

参数:

  • brightness (int) - 亮度范围 (1-100)

MQTT

MQTT是一种基于发布 - 订阅的“轻量级”消息传递协议,用于在TCP / IP协议之上使用。 提供订阅/发布模式,更为简约、轻量,易于使用,针对受限环境(带宽低、网络延迟高、网络通信不稳定),可以简单概括为物联网打造

class MQTTClient(client_id, server, port=0, user=None, password=None, keepalive=0, ssl=False, ssl_params={})

描述: 构建对象

参数:

  • client_id - mqtt 客户端的唯一的 id
  • server - mqtt 代理服务器的 IP 地址
  • port - mqtt 的服务器访问的端口号,一般为1883,不同平台端口会有所不一样
  • user - 用于获取 mqtt 鉴权的用户名
  • password - 用于获取 mqtt鉴权的 password
  • keepalive - 连接保存时间,当在 keepalive 间隔时间内未有订阅或发布等包,将会自动断开连接

MQTTClient.set_callback(f)

描述: 为收到的订阅消息设置回调

参数:

  • f - f(topic, msg) 为回调函数,第1参数为 topic 接收到的主题,第2参数为 msg 为该主题消息

MQTTClient.set_last_will(topic, msg, retain=False, qos=0)

描述: 设置 MQTT “last will” 消息。应该在 connect() 之前调用

MQTTClient.connect(clean_session=True)

描述: 连接到服务器。如果此连接使用存储在服务器上的持久会话,则返回 True(如果使用 clean_session = True 参数,则返回 False(默认值))

MQTTClient.disconnect()

描述: 断开与服务器的连接,释放资源

MQTTClient.ping()

描述: Ping 服务器(响应由 wait_msg()自动处理)

MQTTClient.publish(topic, msg, retain=False, qos=0)

描述: 发布消息

MQTTClient.subscribe(topic, qos=0)

描述: 订阅主题

MQTTClient.wait_msg()

描述: 等待服务器消息。订阅消息将通过 set_callback()传递给回调集,任何其他消息都将在内部处理

MQTTClient.check_msg()

描述: 检查服务器是否有待处理的消息。如果是,则以与 wait_msg()相同的方式处理,如果不是,则立即返回

自定义图形块

项目

用于展示使用mpythonX图形化完成的项目