控制模块/Control

本模块包含一系列可用于 输入 的传感器,用户可以通过传感器向电子系统发送指令进行“控制”。
按键:SW1、SW2
拨动开关:SW3
圆盘电阻器:SW4
阻抗传感器:M1、M2

SW1是否按下

Control.is_sw1_pressed()
判断按键SW1是否被按下
返回:
True: 按键被按下
False: 按键没有被按下
返回类型:bool

Examples

# 测试SW1和SW2状态,实时显示

from wonderbits import Control,Display
display1 = Display()
control1 = Control()

# 在显示屏上实时显示SW1和SW2的状态
while True:
    display1.print(1,1, control1.is_sw1_pressed() )
    display1.print(2,1, control1.is_sw2_pressed() )

SW2是否按下

Control.is_sw2_pressed()
判断按键SW2是否被按下
返回:
True: 按键按下
False: 按键没有按下
返回类型:bool

Examples

未提供。可参考 is_sw1_pressed 的使用案例

SW3是否在‘1’位置

Control.is_sw3_at_1()
判断SW3的是否在‘1’的位置(‘1’指的是电路上白色的数字)
返回:
True: 开关SW3在’1’位置
False: 开关SW3在’0’位置
返回类型:bool

Examples

# 测试SW1状态,实时显示

from wonderbits import Control,Display
display1 = Display()
control1 = Control()

# 在显示屏上实时显示SW1状态
while True:
    if control1.is_sw3_at_1():
        display1.print(1,1,'right ')
    else:
        display1.print(1,1,'left')

获取SW4位置

Control.get_sw4()
获取SW4的位置值
返回:
圆盘电阻器SW4的位置
范围 0~100
返回类型:int

Examples

# 显示SW4位置值,并且当其大于50时显示‘>50 ’,否则显示'<=50'

from wonderbits import Control,Display
display1 = Display()
control1 = Control()

# 在显示屏上实时显示SW1状态
while True:
    value = control1.get_sw4() # 先获取SW4位置值,存在变量里
    display1.print(1, 1, value) # 在显示屏第一行显示这个值

    # 通过判断这个变量的大小,分情况显示内容
    if value > 50:
        display1.print(2,1,'>50 ')
    else:
        display1.print(2,1,'<=50')

M1是否被触摸

Control.is_m1_touched()
判断获取M1与COM是否导通
一般的使用方法是:将连接线插入到控制模块的接头上,实验者一手握住COM线头(黑色),另一手握住M1或M2线头(黄或绿色)。导通时板子上相应指示灯会亮起
返回:
True: M1与COM之间导通(连接着可导通的介质,如:人体)
False: M1与COM之间不导通
返回类型:bool

Examples

# 实时显示M1和COM之间是否导通

from wonderbits import Control,Display
display1 = Display()
control1 = Control()

# 当m1与com导通时显示'M1',否则'No'
while True:
    if control1.is_m1_touched():
        display1.print(1, 1, 'M1')
    elif control1.is_m2_touched():
        display1.print(1, 1, 'M2')
    else:
        display1.print(1, 1, 'No')

M2是否被触摸

Control.is_m2_touched()
判断获取M2与COM是否导通
一般的使用方法是:将连接线插入到控制模块的接头上,实验者一手握住COM线头(黑色),另一手握住M1或M2线头(黄或绿色)。导通时板子上相应指示灯会亮起
返回:
True: M2与COM之间导通(连接着可导通的介质,如:人体)
False: M2与COM之间不导通
返回类型:bool

Examples

未提供。可参考 is_m1_touched 的使用案例

设置M1和M2灵敏度

Control.set_m1_m2_sensitivity(limit=70)
灵敏度越高,is_m1_connected() 和is_m2_connected()越容易返回 True
参数:limit (int) – 灵敏度:0~100

Examples

# 测试不同灵敏度的差别。当SW3位置在1时,灵敏度设为80;否则设置为20
# 灵敏度越小,检测越不灵敏。所以设置为20,双手分别握住COM和M1,有可能检测不到导通状态,快去试试吧

from wonderbits import Control,Display
import time
display1 = Display()
control1 = Control()

while True:
    # 通过SW3的位置来设置不同的灵敏度
    if control1.is_sw3_at_1():
        control1.set_m1_m2_sensitivity(80)
        display1.print(1, 1, 'set to 80.')
    else:
        control1.set_m1_m2_sensitivity(20)
        display1.print(1, 1, 'set to 20.')

    # 循环检测M1的状态并显示
    if control1.is_m1_touched():
        display1.print(2, 1, 'M1')
    elif control1.is_m2_touched():
        display1.print(2, 1, 'M2')
    else:
        display1.print(2, 1, 'No')

获取M1电阻率

Control.get_m1_value()
获取M1的电阻率
返回:
M1和COM之间的电阻率,值越大代表电阻越大。0代表短路,100代表绝缘
范围 0~100
返回类型:float

Examples

# 实时显示M1的COM之间电阻率
from wonderbits import Control,Display
display1 = Display()
control1 = Control()

# 在显示屏上实时显示电阻率
while True:
    display1.print(1, 1, 'M1:')
    display1.print(1, 4, control1.get_m1_value())
    display1.print(2, 1, 'M2:')
    display1.print(2, 4, control1.get_m2_value())

获取M1电阻率

Control.get_m2_value()
获取M2的电阻率
返回:
M2和COM之间的电阻率,值越大代表电阻越大。0代表短路,100代表绝缘
范围 0~100
返回类型:float

Examples

未提供。可参考 get_m1_value 的使用案例

当SW1按下

Control.when_sw1_pressed()
当SW1按下时,执行被修饰的函数

Examples

# 按下control1的SW1会在display1模块中显示i的值,并且将i的值加1

from wonderbits import Control,Display

display1 = Display()
control1 = Control()

i = 0

@control1.when_sw1_pressed()
def run1(val):
    global i
    display1.print(1, 1, i)
    i += 1

while True:
    pass

当SW2按下

Control.when_sw2_pressed()
当SW2按下时,执行被修饰的函数

Examples

未提供。可参考 when_sw1_pressed 的使用案例

当SW3被拨动到1位置

Control.when_sw3_set_to_1()
当SW3从‘0’位置拨到‘1’位置时,执行被修饰的函数

Examples

未提供。可参考 when_sw1_pressed 的使用案例

当SW4改变

Control.when_sw4_changed(val=1)
当SW4的值改变时,执行被修饰的函数
参数:val (int) – 改变值的触发条件,改变值不小于val才会触发事件。范围:0~100

Examples

# 拨动control1的sw4改变其值会在display1模块中显示sw4的值

from wonderbits import Control,Display

display1 = Display()
control1 = Control()

@control1.when_sw4_changed()
def run1(val):
    display1.print(1, 1, val)

while True:
    pass

当M1被触摸

Control.when_m1_pressed()
当M1被触摸时,执行被修饰的函数

Examples

未提供。可参考 when_sw1_pressed 的使用案例

当M2被触摸

Control.when_m2_pressed()
当M2被触摸时,执行被修饰的函数

Examples

未提供。可参考 when_sw1_pressed 的使用案例

事件源

Control.Control.source_sw1

SW1事件源

Control.Control.source_sw2

SW2事件源

Control.Control.source_sw3

SW3事件源

Control.Control.source_sw4

SW4事件源

Control.Control.source_m1

M1事件源

Control.Control.source_m2

M2事件源

Control.Control.source_m1_value

m1_value事件源

Control.Control.source_m2_value

m2_value事件源