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)
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
from xugu import Pin # 从xugu库中导入Pin类 p = Pin(10, Pin.OUT) # 初始化10号引脚设置为输出模式 p.write_analog(128) # 给引脚设置模拟值128
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
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)
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
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 = "在下才疏学浅,甘拜下风。"
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
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)
from xugu import Pin # 从 xugu 库中导入 Pin 类 p = Pin(10, Pin.OUT) # 初始化 Pin 类,将 10 号数字引脚设置为输出模式 # p = Pin(“D10”, Pin.OUT) p.write_digital(0) # 设置 10 号引脚为低电平
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)
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秒
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
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的模拟电位值,设置对应引脚的电位值