1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
| class robots(object):
def __init__(self,dueros, player): ''' 类初始化 :param dueros:DuerOS核心模块实例 :param player: 播放器实例(平台相关) ''' self.namespace = 'ai.dueros.device_interface.thirdparty.robot.xiaobai' self.dueros = dueros self.token = '' self.state = 'IDLE'
self.player = player self.player.add_callback('eos', self.__playback_finished) self.player.add_callback('error', self.__playback_failed)
print '....WIFIROBOTS START!!!...'
####################################### #############信号引脚定义############## ####################################### GPIO.setmode(GPIO.BOARD)
########电机驱动接口定义################# ENA = 29 # //L298使能A ENB = 31 # //L298使能B IN1 = 7 # //电机接口1 IN2 = 16 # //电机接口2 IN3 = 13 # //电机接口3 IN4 = 15 # //电机接口4
########舵机接口定义################# S_Hand_L = 18 S_Hand_R = 22 S_Ear_L = 37 S_Ear_R = 36
########超声波接口定义################# ECHO = 32 # 超声波接收脚位 TRIG = 31 # 超声波发射脚位
####################################### #########管脚类型设置及初始化########## ####################################### GPIO.setwarnings(False)
#########电机初始化为LOW########## GPIO.setup(ENA, GPIO.OUT, initial=GPIO.LOW) ENA_pwm = GPIO.PWM(ENA, 1000) ENA_pwm.start(0) ENA_pwm.ChangeDutyCycle(100) GPIO.setup(IN1, GPIO.OUT, initial=GPIO.LOW) GPIO.setup(IN2, GPIO.OUT, initial=GPIO.LOW) GPIO.setup(ENB, GPIO.OUT, initial=GPIO.LOW) ENB_pwm = GPIO.PWM(ENB, 1000) ENB_pwm.start(0) ENB_pwm.ChangeDutyCycle(100) GPIO.setup(IN3, GPIO.OUT, initial=GPIO.LOW) GPIO.setup(IN4, GPIO.OUT, initial=GPIO.LOW)
#########舵机初始化########## GPIO.setup(S_Hand_L, GPIO.OUT) GPIO.setup(S_Hand_R, GPIO.OUT) GPIO.setup(S_Ear_L, GPIO.OUT) GPIO.setup(S_Ear_R, GPIO.OUT)
##########超声波模块管脚类型设置######### GPIO.setup(TRIG, GPIO.OUT, initial=GPIO.LOW) # 超声波模块发射端管脚设置trig GPIO.setup(ECHO, GPIO.IN, pull_up_down=GPIO.PUD_UP) # 超声波模块接收端管脚设置echo
##########机器人方向控制########################### def Motor_Forward(self): print 'motor forward' GPIO.output(self.ENA, True) GPIO.output(self.ENB, True) GPIO.output(self.IN1, True) GPIO.output(self.IN2, False) GPIO.output(self.IN3, True) GPIO.output(self.IN4, False)
shutil.copy("/home/pi/DuerOS-Python-Client/app/resources/forward.mp3", "/home/pi/DuerOS-Python-Client/temp.mp3") print "语音反馈" self.player.play('file://{}'.format('/home/pi/DuerOS-Python-Client/temp.mp3')) os.remove("temp.mp3")
# time.sleep(2) # GPIO.output(LED1,False)#LED1亮 # GPIO.output(LED2,False)#LED1亮
def Motor_Backward(self): print 'motor_backward' GPIO.output(self.ENA, True) GPIO.output(self.ENB, True) GPIO.output(self.IN1, False) GPIO.output(self.IN2, True) GPIO.output(self.IN3, False) GPIO.output(self.IN4, True) shutil.copy("/home/pi/DuerOS-Python-Client/app/resources/backward.mp3", "/home/pi/DuerOS-Python-Client/temp.mp3") print "语音反馈" self.player.play('file://{}'.format('/home/pi/DuerOS-Python-Client/temp.mp3')) os.remove("temp.mp3")
# time.sleep(2) # GPIO.output(LED1,True)#LED1灭 # GPIO.output(LED2,False)#LED2亮
|