Beispiel #1
0
 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
Beispiel #2
0
 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
Beispiel #3
0
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
Beispiel #4
0
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)
Beispiel #5
0
#!/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)
Beispiel #8
0
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()
Beispiel #10
0
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
Beispiel #11
0
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)
Beispiel #13
0
#!/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()

Beispiel #14
0
#!/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()


Beispiel #15
0
#!/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()
Beispiel #16
0
#!/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.')

Beispiel #18
0
                                  (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)
Beispiel #19
0
#!/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()
Beispiel #20
0
#!/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