4.常用API函数汇总

您当前位置: 首页 > Microbit魔块世界套件 > 5.MicroPython课程

一、魔块世界

1. RGB模块

WOM_Sensor_Kit.WOM_rgb(1023,1023,1023)

参数定义:WOM_rgb(红色,绿色,蓝色) 颜色范围0-1023,固定连接P14,P13,P12引脚,不可更改。


2. 按键模块

WOM_Sensor_Kit.WOM_button(pin0)

参数定义:WOM_button(引脚) 按下返回1,否则返回0


3. 摇杆模块

WOM_Sensor_Kit.WOM_rocker(pin0,pin1,WOM_Sensor_Kit.WOM_up)

WOM_Sensor_Kit.WOM_rocker(pin0,pin1,WOM_Sensor_Kit.WOM_down)

WOM_Sensor_Kit.WOM_rocker(pin0,pin1,WOM_Sensor_Kit.WOM_left)

WOM_Sensor_Kit.WOM_rocker(pin0,pin1,WOM_Sensor_Kit.WOM_right)

参数定义:WOM_rocker(引脚X,引脚Y,状态),返回1或0,X和Y可修改为其他引脚,注意保持接线与程序一致。


4. 光敏模块

WOM_Sensor_Kit.WOM_light(pin0)

参数定义:WOM_light(引脚X) 返回模拟量0-1023,光照越强,数值越小,X可修改为其他引脚,注意保持接线与程序一致。


5. 红外模块

WOM_Sensor_Kit.WOM_ir(pin0)

参数定义:WOM_ir(引脚X),有障碍物返回0,无障碍物返回1,X可修改为其他引脚,注意保持接线与程序一致。


6. 温湿度模块

WOM_Sensor_Kit.WOM_dht11(pin0, WOM_Sensor_Kit.WOM_temp_C)

WOM_Sensor_Kit.WOM_dht11(pin0, WOM_Sensor_Kit.WOM_temp_F)

WOM_Sensor_Kit.WOM_dht11(pin0, WOM_Sensor_Kit.WOM_humidity)

参数定义:WOM_dht11(引脚,读取数据),X可修改为其他引脚,注意保持接线与程序一致。

返回对应读取数据,包括 WOM_temp_C、WOM_temp_F、WOM_humidity

每次获取的间隔必须在1s以上。


7. 超声波模块

WOM_Sensor_Kit.WOM_ultrasonic(pin3,pin2)

参数定义:WOM_ultrasonic(引脚Echo,引脚Trig),返回超声波数据。Echo和Trig可修改为其他引脚,注意保持接线与程序一致。


8. 数码管模块

WOM_Sensor_Kit.WOM_init_display(1)

参数定义:WOM_init_display(亮度等级)  范围0-7,其中0最大,1最小,1-7递增

WOM_Sensor_Kit.WOM_display(100)

参数定义:WOM_display(数字) 显示数字范围0-9999,固定连接SCL和SDA引脚


9. 人体红外感应器模块

WOM_Sensor_Kit.WOM_pir(pin0)

参数定义:WOM_pir(引脚X)  有人返回1,X可修改为其他引脚,注意保持接线与程序一致。


10. 颜色识别模块

WOM_Sensor_Kit.WOM_color(WOM_Sensor_Kit.WOM_red)

WOM_Sensor_Kit.WOM_color(WOM_Sensor_Kit.WOM_green)

WOM_Sensor_Kit.WOM_color(WOM_Sensor_Kit.WOM_blue)

参数定义:WOM_color(获取的颜色),返回读取的颜色RGB值,返回的值的范围[0,255],固定连接SCL和SDA引脚


11. 舵机

WOM_Sensor_Kit.WOM_servo360(pin10,360)

12. 参数定义:WOM_servo360(引脚X,角度),驱动连接在引脚P10上的舵机转动到360度,X可修改为其他引脚,注意保持接线与程序一致。角度的范围是0-360.

 

二、micro:bit官方函数

如果需要查看micro:bit完整的micropython库函数,请访问以下链接:

https://microbit-micropython.readthedocs.io/en/v2-docs/

 

1.显示

display.scroll("Hello, World!")

micro:bit点阵上滚动显示Hello, World!,其中Hello, World!可以替换成任意字符。

 

display.show(Image.HAPPY)

micro:bit点阵上显示笑脸的图形,MicroPython还有很多内置的图片可以显示在显示屏上,例如下面就是一个内置图像的列表:

• Image.HEART

• Image.HEART_SMALL

• Image.HAPPY

• Image.SMILE

• Image.SAD

• Image.CONFUSED

• Image.ANGRY

• Image.ASLEEP

• Image.SURPRISED

• Image.SILLY

• Image.FABULOUS

• Image.MEH

• Image.YES

• Image.NO

•Image.CLOCK12, Image.CLOCK11, Image.CLOCK10, Image.CLOCK9, Image.CLOCK8, Image.

CLOCK7, Image.CLOCK6, Image.CLOCK5, Image.CLOCK4, Image.CLOCK3, Image.CLOCK2,Image.CLOCK1

•Image.ARROW_N, Image.ARROW_NE, Image.ARROW_E, Image.ARROW_SE, Image.ARROW_S,Image.ARROW_SW, Image.ARROW_W, Image.ARROW_NW

• Image.TRIANGLE

• Image.TRIANGLE_LEFT

• Image.CHESSBOARD

• Image.DIAMOND

• Image.DIAMOND_SMALL

• Image.SQUARE

• Image.SQUARE_SMALL

• Image.RABBIT

• Image.COW

• Image.MUSIC_CROTCHET

• Image.MUSIC_QUAVER

• Image.MUSIC_QUAVERS

• Image.PITCHFORK

• Image.XMAS

• Image.PACMAN

• Image.TARGET

• Image.TSHIRT

• Image.ROLLERSKATE

• Image.DUCK

• Image.HOUSE

• Image.TORTOISE

• Image.BUTTERFLY

• Image.STICKFIGURE

• Image.GHOST

• Image.SWORD

• Image.GIRAFFE

• Image.SKULL

• Image.UMBRELLA

• Image.SNAKE

Image.ALL_CLOCKS
Image.ALL_ARROWS

 

 

display.get_pixel(x, y)

得到像素的亮度(x,y),亮度可以是0(熄灭)到9(像素处于最大亮度)。

 

display.set_pixel(x, y, val)

将像素(x,y)的亮度设置为val(在0到9之间)

 

display.clear()

清除显示

 

display.show(image, delay=0, wait=True, loop=False, clear=False)

显示图像

 

display.show(iterable, delay=400, wait=True, loop=False, clear=False)

在可迭代的情况下显示每个图像或字母,每一个都有延迟,延迟为400毫秒。

 

display.scroll(string, delay=400)

在显示屏上滚动一个字符串,每一个都有延迟,延迟为400毫秒。

 

image Image()

创建一个5*5像素的空图像

 

image Image('90009:09090:00900:09090:90009:')

自定义显示图像,在micro:bit点阵上的每个LED亮度都可以设置为0-9中的一个值。如果一个LED的亮度被设置为0,那么它就熄灭了。如果如果它的亮度被设置为9,那么它就处于最亮的水平,冒号“:”表示一条线的末端。

 

image Image(width, height)

创建一个空图像并给出尺寸

 

image Image(width, height, buffer)

用指定的宽度和高度初始化一个图像,缓冲是长度和宽度的数组

 

image.width()

返回图像的宽度(通常是5)

 

image.height()

返回图像的高度(通常是5)

 

image.set_pixel(x, y, value)

将像素设置为指定位置,像素值在0到9之间

 

image.get_pixel(x, y)

获取指定位置的像素,像素值在0到9之间

 

image.shift_left(n)

通过将图片向左移动n次,返回一个新图像

 

image.shift_right(n)

通过将图片向右移动n次,返回一个新图像

 

image.shift_up(n)

通过将图片向上移动n次,返回一个新图像

 

image.shift_down(n)

通过将图片向下移动n次,返回一个新图像

 

repr(image)

获得图像的字符串表示

 

str(image)
image image

得到一个可读的字符串表示的图像

 

image n

通过将图片放大n倍,返回一个新图像

 

accelerometer.get_x()

测量X轴的重力值,以重力g为单位

 

accelerometer.get_y()

测量Y轴的重力值,以重力g为单位

 

accelerometer.get_z()

测量Z轴的重力值,以重力g为单位

 

accelerometer.get_values()

获取X、Y和Z轴的重力数值(按此顺序列出)

 

accelerometer.current_gesture()

获取当前的手势值给gesture,MicroPython能够识别下列手势:上、下、左、右、面朝下、面朝下,自由落体,3 g,6 g,8 g,摇。手势值的在程序中的表示依次是up, down, left, right, face up, face down,freefall, 3g, 6g, 8g, shake。

 

accelerometer.is_gesture(name)

返回真或假,以指示当前活动是否为指定的手势。

 

accelerometer.was_gesture(name)

返回真或假,以指示最后一次活动是否为指定的手势。

 

accelerometer.get_gestures()

返回手势历史的元组,最近的一次活动是最后一次。

 

compass.calibrate()

校准指南针

 

compass.heading()

返回一个数字,表示“北方”的程度偏移量。

 

compass.get_field_strength()

返回一个关于磁场强度的数值指示

 

compass.is_calibrated()

compass.clear_calibration()

 

 

2.按键

button_a.is_pressed()

表示按钮正被按下,返回真或假

button_a.was_pressed()

表示按钮是否被按下,返回真或假,再开始或最后调用这个函数。

button_a.get_presses()

这个函数返回之前A按下的次数。调用这个函数后,计数会清零,重新开始计数。

3.循环

while True:
无限循环

 

4.逻辑

if ...:  如果...事件是正确的或者发生了
# do one thing  执行这条命令
elif ...:  否则如果...事件是正确的或者发生了
# do another thing  执行这条命令
else:  否则
# do yet another thing执行这条命令

 

5.输入输出

 

pin.write_digital(value)

向引脚写入数字值,可以是0,1,False,True

 

pin.read_digital()

读取引脚的数字值,返回0或1

 

pin.write_analog(value)

向引脚写入模拟值,可以是1-1023范围内的值

 

pin.read_analog()

读取引脚的模拟值,返回1-1023范围内的值

 

pin.set_analog_period(int)

以毫秒为单位设置PWM输出的周期

 

pin.set_analog_period_microseconds(int)

将引脚的PWM输出的周期设置为微秒

 

pin.is_touched()

如果引脚被触摸,返回一个布尔值

 

6.音乐

 

music.play(music.NYAN)

播放一个旋律

MicroPython有很多内置的旋律。这里有一个完整的列表:

• music.DADADADUM
• music.ENTERTAINER

• music.PRELUDE
• music.ODE
• music.NYAN
• music.RINGTONE
• music.FUNK
• music.BLUES
• music.BIRTHDAY
• music.WEDDING
• music.FUNERAL
• music.PUNCHLINE
• music.PYTHON
• music.BADDY
• music.CHASE
• music.BA_DING
• music.WAWAWAWAA
• music.JUMP_UP
• music.JUMP_DOWN
• music.POWER_UP
• music.POWER_DOWN

 

7.其他

import random
display.show(str(random.randint(1, 6)))

1-6中生成一个随机数并显示

 

names = ["Mary", "Yolanda", "Damien", "Alia", "Kushal", "Mei Xiu", "Zoltan" ]

display.scroll(random.choice(names))

在列表names中随机显示一个名字

 

 

sleep(ms)

睡眠(延时)时间为给定的毫秒数。

 

running_time()

返回micro:bit最后一次启动的时间,返回值是微秒

 

panic(error_code)

使micro:bit进入恐慌模式(这通常发生在DAL运行内存不足时,在点阵是显示出一张悲伤的脸),这个错误代码可以是任意的整数值。

 

reset()

复位micro:bit

 

i2c.init(freq=100000, sda=pin20, scl=pin19)

初始化I2C频率为100000,SDA引脚连接micro:bit 的p20,SCL引脚连接micro:bit的p19.

注意:将I2C的引脚从默认值中更改,将使加速计和罗盘停止工作。

 

 

i2c.read(addr, n)

从带有7位地址addr的设备读取n个字节。

 

i2c.write(addr, buf)

buf到带有7位地址addr的设备上写入字节。

 

 

特别注意事项:

关于程序编写语法与大小写要求:

1 - 大小写必须正确!

2 - 拼写必须严格正确!

3 - 关键词如 # 与内容之间需要有个空格

4 - 程序以一行空白程序结尾

5 - 程序块体(如 while 所包含的程序体是以缩进为标志的),相对于C语言,Python完全省去了大括号(连同后缀的分号),并使用缩进结构来表示所属关系。