Beispiel #1
0
def connection(id):
    global dev_list
    print("{} connecting...".format(id))
    if id not in dev_list:
        return
    if dev_list[id] != None:
        return
    device_info = devices[id]
    dev = blecontroller.BLEController(device_info["mac"])
    dev.enable_action()
    dev.enable_continual_imu_measurement()
    dev.stop_motor()
    dev.set_speed(device_info["speed"])
    return dev
    sys.stdout.write(prompt)
    sys.stdout.flush()
    (ready, _, _) = select.select([sys.stdin], [], [], timeout)
    if ready:
        return sys.stdin.readline().rstrip('\n')
    else:
        return 0

current_dir = pathlib.Path(__file__).resolve().parent
sys.path.insert(0, str(current_dir) + '/../') # give 1st priority to the directory where pykeigan exists

from time import sleep
from pykeigan import blecontroller
from pykeigan import utils

dev=blecontroller.BLEController("fe:e1:8c:0a:7d:a0")#下モータ
dev2=blecontroller.BLEController("ef:23:f5:42:8f:be")#上モータ

speed = utils.rpm2rad_per_sec(10)

dev.enable_action()
dev.set_led(1, 0, 200, 0)
dev.set_speed(speed)
dev.move_to_pos(0.3)
sleep(3)

dev2.enable_action()
dev2.set_led(1, 0, 200, 0)
dev2.set_speed(speed)
dev2.set_max_torque(100)
dev2.move_to_pos(-2.9)
Beispiel #3
0
            print('status {} '.format(dev.read_status()), end="", flush=True)

            print("\033[8;2H\033[2K", end="", flush=True)
            print('measurement {} '.format(dev.read_motor_measurement()),
                  end="",
                  flush=True)

            print("\033[12;2H\033[2K", end="", flush=True)
            print('imu_measurement {} '.format(dev.read_imu_measurement()),
                  end="",
                  flush=True)
        sleep(0.5)


#接続
dev = blecontroller.BLEController(
    "FB:78:30:D3:7C:2F")  #モーターのMACアドレス 参照 ble-simple-connection.py
dev.set_led(2, 255, 255, 0)
dev.enable_continual_imu_measurement()  #IMUは通知をOnにする必要がある
sleep(0.5)

#一定間隔で取得
executor = ThreadPoolExecutor(max_workers=2)
res = executor.submit(get_motor_informations)
"""
Exit with key input
"""
os.system('clear')
for i in range(20):
    print("       ")
print("\033[17;2H", end="")
print("---------------------------------------")
from pykeigan import blecontroller
from pykeigan import utils
"""
----------------------
モーターへの接続
----------------------
    モーターのMACアドレスについて
        MACアドレスは"nRF Connect"を使用して調べる事が可能です。 
        https://play.google.com/store/apps/details?id=no.nordicsemi.android.mcp
        
        Bluetoohでモーターが検出されない場合は、モーターの"インターフェイスのリセット"を実行して下さい。
        https://document.keigan-motor.com/basic/reset
"""

dev = blecontroller.BLEController("C1:C5:89:AE:3F:CD")  #モーターのMACアドレス
dev.set_led(
    2, 255, 255, 0
)  # (LEDflash:2,R:255,G:255,B:0) https://document.keigan-motor.com/software_dev/lowapis/led
dev.enable_action()  #安全装置。初めてモーターを動作させる場合に必ず必要。
dev.set_speed(utils.rpm2rad_per_sec(5))  #rpm -> radian/sec
dev.run_forward()
"""
Exit with key input
"""
while True:
    print("---------------------------------------")
    inp = input('Exit:[key input] >>')
    if inp != None:
        dev.set_led(1, 100, 100, 100)
        dev.disable_action()
current_dir = pathlib.Path(__file__).resolve().parent
sys.path.insert(0, str(current_dir) + '/../') # give 1st priority to the directory where pykeigan exists

from time import sleep
from pykeigan import blecontroller
from pykeigan import utils

"""
----------------------
モーターを5rpmで 正転(10秒) -> 逆転(10秒) -> 停止(トルクあり) -> 停止(トルク無し)
----------------------

"""

dev=blecontroller.BLEController("d1:5a:fa:a7:d9:5d")#モーターのMACアドレス 参照 ble-simple-connection.py
dev.enable_action()#安全装置。初めてモーターを動作させる場合に必ず必要。
dev.set_speed(utils.rpm2rad_per_sec(5))#rpm -> radian/sec

dev.set_led(1, 0, 200, 0)
dev.run_forward()

sleep(10)

dev.set_led(1, 0, 0, 200)
dev.run_reverse()

sleep(10)

dev.set_led(1, 200, 0, 0)
dev.stop_motor()
def connection(dev,macdress):
    target_dev = blecontroller.BLEController(macdress)
    target_dev.set_led(2,255,255,0)# (LEDflash:2,R:255,G:255,B:0) https://document.keigan-motor.com/software_dev/lowapis/led
            print("\033[8;2H\033[2K", end="", flush=True)
            print('measurement {} '.format(dev.read_motor_measurement()),
                  end="",
                  flush=True)

            print("\033[12;2H\033[2K", end="", flush=True)
            print('imu_measurement {} '.format(dev.read_imu_measurement()),
                  end="",
                  flush=True)
        sleep(0.5)


#接続
#dev=blecontroller.BLEController("fe:e1:8c:0a:7d:a0")#下モータ
dev = blecontroller.BLEController("ef:23:f5:42:8f:be")  #上モータ
dev.set_led(2, 255, 255, 0)
dev.enable_continual_imu_measurement()  #IMUは通知をOnにする必要がある
sleep(0.5)

#一定間隔で取得
executor = ThreadPoolExecutor(max_workers=2)
res = executor.submit(get_motor_informations)
"""
Exit with key input
"""
os.system('clear')
for i in range(20):
    print("       ")
print("\033[17;2H", end="")
print("---------------------------------------")
sys.path.insert(
    0,
    str(current_dir) +
    '/../')  # give 1st priority to the directory where pykeigan exists

from time import sleep
from pykeigan import blecontroller
from pykeigan import utils
"""
----------------------
モーターを5rpmで 正転(10秒) -> 逆転(10秒) -> 停止(トルクあり) -> 停止(トルク無し)
----------------------

"""

dev = blecontroller.BLEController(
    "fe:e1:8c:0a:7d:a0")  #モーターのMACアドレス 参照 ble-simple-connection.py
dev.enable_action()  #安全装置。初めてモーターを動作させる場合に必ず必要。
dev.set_speed(utils.rpm2rad_per_sec(1))  #rpm -> radian/sec

dev.set_led(1, 0, 200, 0)
dev.run_forward()

sleep(10)

dev.set_led(1, 0, 0, 200)
dev.run_reverse()

sleep(10)

dev.set_led(1, 200, 0, 0)
dev.stop_motor()
from pykeigan import blecontroller
from pykeigan import utils

"""
----------------------
モーターへの接続
----------------------
    モーターのMACアドレスについて
        MACアドレスは"nRF Connect"を使用して調べる事が可能です。 
        https://play.google.com/store/apps/details?id=no.nordicsemi.android.mcp
        
        Bluetoohでモーターが検出されない場合は、モーターの"インターフェイスのリセット"を実行して下さい。
        https://document.keigan-motor.com/basic/reset
"""

dev=blecontroller.BLEController("d1:5a:fa:a7:d9:5d")#モーターのMACアドレス
dev.set_led(2,255,255,0)# (LEDflash:2,R:255,G:255,B:0) https://document.keigan-motor.com/software_dev/lowapis/led
dev.enable_action()#安全装置。初めてモーターを動作させる場合に必ず必要。
dev.set_speed(utils.rpm2rad_per_sec(5))#rpm -> radian/sec
dev.run_forward()

"""
Exit with key input
"""
while True:
    print("---------------------------------------")
    inp = input('Exit:[key input] >>')
    if inp !=None:
        dev.set_led(1, 100, 100, 100)
        dev.disable_action()
        dev.disconnect()