Пример #1
0
def on_topic_read(topic):
    global topic_msg_map
    result = topic_msg_map.get(topic, None)
    del site[topic]
    return result


siot.init('', '127.0.0.1', user='******', password='******')
siot.connect()
_siot_connected = True
if _siot_connected:
    siot.subscribe('af/d2', on_topic_subscribe)
    siot.loop()
    while True:
        a0 = Pin("A0", Pin.ANALOG).read_analog()
        siot.publish('af/a0', a0)
        sleep(0.01)
        a1 = Pin("A1", Pin.ANALOG).read_analog()
        siot.publish('af/a1', a1)
        sleep(5)
        if '1' == on_topic_read('af/d2'):
            Pin(2, Pin.OUT).write_digital(1)
            sleep(5)
        else:
            Pin(2, Pin.OUT).write_digital(0)
        if 380 > a1:
            Pin(2, Pin.OUT).write_digital(1)
            sleep(2)
            Pin(2, Pin.OUT).write_digital(0)
Пример #2
0
from xugu import Pin  #从xugu库中导入Pin类
import time  #导入时间模块
pin = Pin(4, Pin.IN)  #创建Pin对象
test = 30
while test > 0:
    value = pin.read_digital()  #读取对应Pin脚的电平值
    if value:
        print("find human!!!")  #电平为1代表发现人
    else:
        print("no human!!!")  #电平为0代表没发现人
    time.sleep(1)  #睡眠1秒
    test -= 1
Пример #3
0
from xugu import Pin  # 从xugu库中导入Pin类
p = Pin(10, Pin.OUT)  # 初始化10号引脚设置为输出模式
p.write_analog(128)  # 给引脚设置模拟值128
Пример #4
0
def xugu():
    global value, ret, types
    while True:
        if ret == 0:
            xugu_pin = Pin(pin, Pin.IN)
            value = xugu_pin.read_digital()
            ret = None
        if ret == 1:
            xugu_pin = Pin(pin, Pin.ANALOG)
            value = xugu_pin.read_analog()
            ret = None
        if types in type_D_list:
            xugu_pin = Pin(pin, Pin.OUT)
            if value == 0:
                xugu_pin.write_digital(value)
            else:
                value = 1
                xugu_pin.write_digital(value)
            types = None
        if types in type_A_list:
            xugu_pin = Pin(pin, Pin.OUT)
            xugu_pin.write_analog(value)
            types = None
        if types in type_S_list:
            xugu_servo = Servo(pin)
            xugu_servo.write_angle(value)
            types = None
Пример #5
0
import time

from xugu import Pin

p = Pin(13, Pin.OUTPUT, Pin.DIGITAL)  # 初始化13号数字信号针脚,设置为输出模式

while 1:
    p.high()  # 给针脚设置高电位值
    time.sleep(1)
    p.low()  # 给针脚设置低电位值
    time.sleep(0.5)
Пример #6
0
from xugu import Pin, SerialMgt  # 从 xugu 库中导入 Pin、SerialMgt 类
import time  # 导入时间模块
p = Pin(4, Pin.IN)  # 初始化 4 号引脚,设置为数字输入模式
ser = SerialMgt()  #初始化串口
while True:
    value = p.read_digital()  # 读取 4 号引脚电平信息,赋值给 value
    print(value)  # 将value的值打印到终端上
    ser.write(str(value).encode())  # 将value的值写入到串口
    time.sleep(0.1)  # 持续100ms
Пример #7
0
import time

from xugu import Pin, ADC

p = Pin(2, Pin.INPUT, Pin.ANALOG)  # 初始化2号模拟信号针脚,设置为输入模式
adc = ADC(p)  # 初始话模拟信号对象
while 1:
    print(adc.read())  # 读取模拟信号电位值
    time.sleep(1)
#添加诗词库,用户读前一句(奇数),机器对出下一句(偶数)
shici = ['床前明月光', '疑是地上霜', '举头望明月', '低头思故乡']
shici.extend(['大漠沙如雪', '燕山月似钩', '何当金络脑', '快走踏清秋'])
#可以用类似VB的语法,采用+的方式
shici = shici + ['小时不识月', '呼作白玉盘', '又疑瑶台镜', '飞在青云端']
shici = shici + ['天苍苍野茫茫', '风吹草低见牛羊']
shici = shici + ['少壮不努力', '老大徒伤悲']
#输出列表
print(shici)

# In[ ]:

from xugu import Pin  # 从 xugu 库中导入 Pin类
import time  # 导入时间模块
p = Pin(2, Pin.IN)
tts("我是吟诗作对机器人,来考考我吧。")
while True:
    value = p.read_digital()  # 读取引脚电平信息,赋值给 value
    #print(value) # 将value的值打印到终端上
    if (value == 1):
        tts("请在2秒钟后朗读诗句。")
        ret_s = audio_to_text(rec("input.wav"))
        print(ret_s)
        for i in range(len(shici) // 2):
            #print(shici[i*2-1])
            if shici[i * 2] in ret_s:
                back = shici[i * 2 + 1]
                break
            else:
                back = "在下才疏学浅,甘拜下风。"
Пример #9
0
from xugu import Pin, XuguLog, SerialMgt  # 从 xugu 库中导入 Pin、XuguLog、SerialMgt 类
import time  # 导入时间模块
test = 20  # 计数
p = Pin("A0", Pin.ANALOG)  # 初始化 A0 引脚,设置为输入模式
ser = SerialMgt()  #初始化串口
f = XuguLog(
    'read_analog_20_times.log')  #当不指定路径时,log文件保存在与digital_input.py同级路径下
#f=XuguLog('/home/scope/analog_input.log') # 初始化日志对象,当指定路径时log文件保存在指定路径下
while test > 0:
    value = p.read_analog()  #读取 A0 引脚的电压值
    f.write(str(value))  # 将变量 value 写入到日志文件中
    print(value)  # 将value的值打印到终端
    ser.write(str(value).encode())  # 将value的值写入串口
    test -= 1  # 计数自减1
    time.sleep(0.5)  # 持续500ms
Пример #10
0
import siot
import time
from xugu import Pin  # 从 xugu 库中导入 Pin类
p = Pin("A0", Pin.ANALOG)  # 初始化 A0 引脚,设置为输入模式
SERVER = "192.168.0.101"  #MQTT服务器IP
CLIENT_ID = ""  #在SIoT上,CLIENT_ID可以留空
IOT_pubTopic = 'DIY/TEST01'  #“topic”为“项目名称/设备名称”
IOT_UserName = '******'  #用户名
IOT_PassWord = '******'  #密码
siot.init(CLIENT_ID, SERVER, user=IOT_UserName, password=IOT_PassWord)

def sub_cb(client, userdata, msg):
    print("\nTopic:" + str(msg.topic) + " Message:" + str(msg.payload))

siot.connect()
siot.set_callback(sub_cb)
siot.getsubscribe(IOT_pubTopic)
siot.loop()
while True:
    TDS = p.read_analog()  #读取 A0 引脚的模拟量
    siot.publish(IOT_pubTopic, "%d" % TDS)
    time.sleep(1)

Пример #11
0
from xugu import Pin # 从 xugu 库中导入 Pin 类
p = Pin(10, Pin.OUT) # 初始化 Pin 类,将 10 号数字引脚设置为输出模式
# p = Pin(“D10”, Pin.OUT)
p.write_digital(0) # 设置 10 号引脚为低电平
Пример #12
0
from xugu import Pin  #从xugu库中导入Pin类
import time  #导入时间模块
lightSensor_pin = "a1"  #定义模拟输入引脚
led_pin = 11  #定义LED控制引脚
lightSensor = Pin(lightSensor_pin, Pin.ANALOG)  #创建Pin对象
led = Pin(led_pin, Pin.OUT)  #创建Pin对象
test = 30  #计数
while test > 0:
    value = lightSensor.read_analog()  #读取A1脚的模拟输入值
    print(value)
    if value > 200:  #判断A1脚获取的值是否大于200
        led.write_digital(1)  #点亮蓝色的LED灯
    else:
        led.write_digital(0)  #熄灭LED灯
    time.sleep(1)  #睡眠1秒
    test -= 1  #计数自减1
led.write_digital(0)
Пример #13
0
import siot  #导入siot库
import time  #导入time库
from xugu import Pin  # 从 xugu 库中导入 Pin类

p = Pin("A0", Pin.ANALOG)  # 初始化 A0 引脚,设置为输入模式

SERVER = "192.168.0.101"  #MQTT服务器IP
CLIENT_ID = ""  #在SIoT上,CLIENT_ID可以留空
IOT_pubTopic = 'DIY/TEST01'  #“topic”为“项目名称/设备名称”
IOT_UserName = '******'  #用户名
IOT_PassWord = '******'  #密码

siot.init(CLIENT_ID, SERVER, user=IOT_UserName,
          password=IOT_PassWord)  #将上述配置信息作为siot客户端参数

siot.connect()  #连接siot服务器
while True:
    TDS = p.read_analog()  #读取 A0 引脚的模拟量并赋值给变量TDS
    siot.publish(IOT_pubTopic, "%d" % TDS)  #发布检测到的TDS值
    time.sleep(1)  #等待1秒
Пример #14
0
from xugu import Pin  #从xugu库中导入Pin类
import time  #导入时间模块
potentiometer_pin = "a0"  #定义模拟输入引脚
potentiometer = Pin(potentiometer_pin, Pin.ANALOG)  #创建Pin对象
test = 30  #计数
while test > 0:
    value = potentiometer.read_analog()  #读取A0脚的模拟输入值
    print(value)  #将读取的值打印到终端
    time.sleep(1)  #睡眠1秒
    test -= 1  #计数自减1
Пример #15
0
from xugu import Pin                     #从xugu库中导入Pin类
p = Pin("A0",Pin.ANALOG)                 #创建Pin对象,并初始化A0引脚
p10 = Pin(10,Pin.PWM)                    #创建Pin对象,并初始化10号引脚
p10.write_analog(int(p.read_analog()/4)) #根据A0的模拟电位值,设置对应引脚的电位值