def get(self, hub_id, hci=MY_BTCTRLR_HCI): print("Turn on MoveHub") movehub = MoveHub(hub_id, 'Auto', hci) movehub.start() print("MoveHub ready!") self.movehub = movehub return self.movehub
def init_hub(self): retval = {} self.my_movehub = MoveHub(self.mac_addr, self.mode, self.hci) try: self.my_movehub.start() except: err_msg = sys.exc_info()[0] logger.error("Could not INIT movehub({},{},{}). Error:{}".format( self.mac_addr, self.mode, self.hci, err_msg)) retval['errStr'] = str(err_msg) self.try_stop_movehub() return retval
def init_lego(): retval = {} my_movehub = MoveHub(MY_MOVEHUB_ADD, MY_MOVEHUB_MODE, MY_BTCTRLR_HCI) retval['movehub'] = my_movehub try: my_movehub.start() except: retval['errStr'] = str(sys.exc_info()[0]) retval['movehub'] = None try_stop_movehub(my_movehub) return retval
class Boost: def __init__(self, mac_addr, mode='Auto', hci="hci0"): self.mac_addr = mac_addr self.mode = mode self.hci = hci def init_hub(self): retval = {} self.my_movehub = MoveHub(self.mac_addr, self.mode, self.hci) try: self.my_movehub.start() except: err_msg = sys.exc_info()[0] logger.error("Could not INIT movehub({},{},{}). Error:{}".format( self.mac_addr, self.mode, self.hci, err_msg)) retval['errStr'] = str(err_msg) self.try_stop_movehub() return retval def try_stop_movehub(self): if (self.my_movehub is not None): try: logger.error("Stopping movehub({},{},{})".format( self.mac_addr, self.mode, self.hci)) self.my_movehub.stop() except: err_msg = sys.exc_info()[0] logger.error( "Could not STOP movehub({},{},{}). Error:{}".format( self.mac_addr, self.mode, self.hci, err_msg)) def try_move_hub(self, motor, time_ms, dutycycle_pct): retval = {} try: self.my_movehub.run_motor_for_time(motor, time_ms, dutycycle_pct) except: err_msg = sys.exc_info()[0] logger.error("Could not MOVE movehub({},{},{}). Error:{}".format( self.mac_addr, self.mode, self.hci, err_msg)) #-- if(say_error): #-- say("Error while trying to move lego. {}".format( #-- sys.exc_info()[0])) retval['errStr'] = str(err_msg) return retval def go_forward_command(self): self.try_move_hub(MOTOR_AB, 2000, 100) def go_back_command(self): self.try_move_hub(MOTOR_AB, 2000, -100)
#!/usr/bin/env python3 from pyb00st.movehub import MoveHub from pyb00st.constants import * from time import sleep import os MY_MOVEHUB_ADD = os.environ.get('MYMOVEHUB') MY_BTCTRLR_HCI = 'hci0' mymovehub = MoveHub(MY_MOVEHUB_ADD, 'BlueZ', MY_BTCTRLR_HCI) try: mymovehub.start() mymovehub.subscribe_all() mymovehub.listen_hubtilt(MODE_HUBTILT_BASIC) while True: print('Is connected: ', mymovehub.is_connected()) sleep(1) finally: mymovehub.stop()
#!/usr/bin/env python3 from pyb00st.movehub import MoveHub from pyb00st.constants import * from time import sleep MY_MOVEHUB_ADD = '00:16:53:A4:CD:7E' MY_BTCTRLR_HCI = 'hci0' mymovehub = MoveHub(MY_MOVEHUB_ADD, 'BlueZ', MY_BTCTRLR_HCI) try: mymovehub.start() mymovehub.subscribe_all() mymovehub.listen_wedo_tilt(PORT_C, MODE_WEDOTILT_ANGLE) while True: sleep(0.2) print(mymovehub.last_wedo2tilt_C_roll, mymovehub.last_wedo2tilt_C_pitch) finally: mymovehub.stop()
# # This example needs the color sensor at PORT C # and same sort of car with wheels on PORT A and B # video: https://youtu.be/8XWXnisMeAY # from pyb00st.movehub import MoveHub from pyb00st.constants import * from time import sleep MY_MOVEHUB_ADD = '00:16:53:A4:CD:7E' MY_BTCTRLR_HCI = 'hci0' mymovehub = MoveHub(MY_MOVEHUB_ADD, 'BlueZ', MY_BTCTRLR_HCI) mymovehub.subscribe_all() mymovehub.listen_colordist_sensor(PORT_C) while True: color = mymovehub.last_color_C if color in COLOR_SENSOR_COLORS: if color == 'BLUE': mymovehub.run_motors_for_time(MOTOR_A, 500, -100, -100) sleep(0.5) elif color == 'WHITE': mymovehub.run_motor_for_time(MOTOR_A, 500, -100) sleep(0.5) elif color == 'YELLOW': mymovehub.run_motor_for_time(MOTOR_B, 500, -100) sleep(0.5)
for device in devices: if device.name == MY_GAMEPAD_NAME: my_gamepad = evdev.InputDevice(device.fn) gamepad_found = True if not gamepad_found: print('\'{}\' not found'.format(MY_GAMEPAD_NAME)) exit() else: print('Gamepad found') # # Connect to BOOST Move Hub # mymovehub = MoveHub(MY_MOVEHUB_ADD, 'Auto', MY_BTCTRLR_HCI) try: mymovehub.start() mymovehub.subscribe_all() mymovehub.listen_colordist_sensor(PORT_C) mymovehub.listen_button() sensors_thread = SensorsThread() sensors_thread.setDaemon(True) sensors_thread.start() motors_thread = MotorsThread() motors_thread.setDaemon(True) motors_thread.start()
#!/usr/bin/env python3 from pyb00st.movehub import MoveHub from pyb00st.constants import * from time import sleep MY_MOVEHUB_ADD = '00:16:53:A4:CD:7E' MY_BTCTRLR_HCI = 'hci0' mymovehub = MoveHub(MY_MOVEHUB_ADD, 'BlueZ', MY_BTCTRLR_HCI) try: mymovehub.start() mymovehub.subscribe_all() mymovehub.listen_button() while True: sleep(0.2) if mymovehub.last_button == BUTTON_PRESSED: print('PRESSED') elif mymovehub.last_button == BUTTON_RELEASED: print('RELEASED') else: print('') finally: mymovehub.stop()
def init_movehub(): mh = MoveHub(MY_MOVEHUB_ADD, 'BlueZ', MY_BTCTRLR_HCI) mh.start() mh.subscribe_all() mh.listen_hubtilt(MODE_HUBTILT_BASIC) mh.listen_colordist_sensor(PORT_D) mh.listen_angle_sensor(PORT_C) if mh.is_connected(): print(('Is connected: ', mh.is_connected())) return mh
def hub(): return MoveHub(MY_MOVEHUB_ADD, 'BlueZ', MY_BTCTRLR_HCI)
from utopia2output import * from time import sleep from pyb00st.movehub import MoveHub from pyb00st.constants import * mymovehub = MoveHub('00:16:53:a5:6f:8a', 'Auto', 'hci0') try: mymovehub.start() mymovehub.subscribe_all() mymovehub.listen_angle_sensor(PORT_C) mymovehub.listen_angle_sensor(PORT_A) mymovehub.listen_angle_sensor(PORT_B) except: print('Cannot connect to Boost.') # define our action functions def head(objID): start_angle_c = mymovehub.last_angle_C print('move head') try: mymovehub.run_motor_for_angle(MOTOR_C, 90, -20) sleep(1) mymovehub.run_motor_for_angle(MOTOR_C, 270, 20) sleep(2) mymovehub.run_motor_for_angle(MOTOR_C, 180, -50) sleep(2) mymovehub.run_motor_for_angle(MOTOR_C, 100, 10) sleep(2)
#!/usr/bin/env python3 from pyb00st.movehub import MoveHub from pyb00st.constants import * from time import sleep import os MY_MOVEHUB_ADD = os.environ.get('MYMOVEHUB') MY_BTCTRLR_HCI = 'hci0' mymovehub = MoveHub(MY_MOVEHUB_ADD, 'BlueZ', MY_BTCTRLR_HCI) #mymovehub = MoveHub(MY_MOVEHUB_ADD, 'BlueGiga', '') #mymovehub = MoveHub(MY_MOVEHUB_ADD, 'Auto', MY_BTCTRLR_HCI) try: mymovehub.start() print(mymovehub.backend) mymovehub.subscribe_all() mymovehub.listen_hubtilt(MODE_HUBTILT_BASIC) while True: sleep(0.2) if mymovehub.last_hubtilt in TILT_BASIC_VALUES: print(TILT_BASIC_TEXT[mymovehub.last_hubtilt]) finally: mymovehub.stop()
#!/usr/bin/env python3 from pyb00st.movehub import MoveHub from pyb00st.constants import * from time import sleep mymovehub = MoveHub('00:16:53:AA:9F:76', 'BlueGiga', '') try: mymovehub.start() print(mymovehub.get_name()) for i in range(20): # turn motor A ON for 1000 ms at 100% duty cycle in both directions mymovehub.run_motor_for_time(MOTOR_A, 1000, 100) sleep(1) mymovehub.run_motor_for_time(MOTOR_A, 1000, -100) sleep(1) finally: mymovehub.stop()
#!/usr/bin/env python3 from pyb00st.movehub import MoveHub from pyb00st.constants import * from time import sleep import os MY_MOVEHUB_ADD = os.environ.get('MYMOVEHUB') MY_BTCTRLR_HCI = 'hci0' mymovehub = MoveHub(MY_MOVEHUB_ADD, 'BlueZ', MY_BTCTRLR_HCI) try: mymovehub.start() mymovehub.subscribe_all() mymovehub.listen_wedo_distance(PORT_D, MODE_WEDODIST_DISTANCE) while True: sleep(0.2) print(mymovehub.last_wedo2distance_D) finally: mymovehub.stop()
#!/usr/bin/env python3 from pyb00st.movehub import MoveHub from pyb00st.constants import * from time import sleep import os MY_MOVEHUB_ADD = os.environ.get('MYMOVEHUB') MY_BTCTRLR_HCI = 'hci0' mymovehub = MoveHub(MY_MOVEHUB_ADD, 'BlueZ', MY_BTCTRLR_HCI) try: mymovehub.start() mymovehub.subscribe_all() mymovehub.listen_angle_sensor(PORT_D) mymovehub.listen_colordist_sensor(PORT_C) while True: sleep(0.2) print('Motor D: {} Color: {}'.format(mymovehub.last_angle_D, mymovehub.last_color_C)) finally: mymovehub.stop()
#!/usr/bin/python3 from utopia2output import * from time import sleep from pyb00st.movehub import MoveHub from pyb00st.constants import * mymovehub = MoveHub('00:16:53:A5:03:67', 'Auto', 'hci0') mymovehub.start() while True: try: mymovehub.connect() except Exception as e: print(e) print('Cannot connect to Boost, trying again..') else: break # define our action functions def head(objID): print('move head') try: mymovehub.run_motor_for_angle(MOTOR_D, 70, 20) sleep(2) mymovehub.run_motor_for_angle(MOTOR_D, 140, -10) sleep(1) mymovehub.run_motor_for_angle(MOTOR_D, 70, 20) except: print('Cannot connect to Boost.')
(self._set_working(False), callback())) elif status == CLOSED and self.get_status() == OPEN: logger.debug("closing thumb turn") self._set_working(True) self.motor_actor.close(lambda: (self._set_working(False), callback())) def get_status(self): """サムターンの状態を取得する""" color = self.hub_actor.get_color().get() return to_status_from_color(color) print('turn the power on of the movehub in 10 seconds') sleep(1) hub = MoveHub(address=None, backend='Auto') hub.start(timeout=1, retry=10) hub.subscribe_all() def sigint_handler(sig, stack): hub.stop() signal.signal(signal.SIGINT, sigint_handler) sleep(1) hub_actor_ref = HubActor.start(hub) hub_actor_proxy = hub_actor_ref.proxy() key_motor_actor_ref = KeyMotorActor.start(hub_actor_proxy)
#!/usr/bin/env python3 from pyb00st.movehub import MoveHub from pyb00st.constants import * from time import sleep import os MY_MOVEHUB_ADD = os.environ.get('MYMOVEHUB') MY_BTCTRLR_HCI = 'hci0' mymovehub = MoveHub(MY_MOVEHUB_ADD, 'BlueZ', MY_BTCTRLR_HCI) try: mymovehub.start() # turn WeDo motor on port C ON for 500 ms at 100% duty cycle in both directions # then stop mymovehub.motor_wedo(PORT_C, 100) sleep(0.5) mymovehub.motor_wedo(PORT_C, -100) sleep(0.5) mymovehub.motor_wedo(PORT_C, 0) finally: mymovehub.stop()
#!/usr/bin/env python3 from pyb00st.movehub import MoveHub from pyb00st.constants import * from time import sleep MY_MOVEHUB_ADD = '00:16:53:A4:CD:7E' MY_BTCTRLR_HCI = 'hci0' mymovehub = MoveHub(MY_MOVEHUB_ADD, 'BlueZ', MY_BTCTRLR_HCI) try: mymovehub.start() # turn motor A ON for 1000 ms at 100% duty cycle in both directions mymovehub.run_motor_for_time(MOTOR_A, 1000, 100) sleep(1) mymovehub.run_motor_for_time(MOTOR_A, 1000, -100) sleep(1) sleep(0.5) # rotate motor 90 degrees at 100% duty cycle in both directions mymovehub.run_motor_for_angle(MOTOR_A, 90, 100) sleep(0.5) mymovehub.run_motor_for_angle(MOTOR_A, 90, -100) sleep(0.5) # turn pair AB ON for 1000 ms at 100% duty cycle in both direction