【レゴエデュケーション SPIKE プライム】ロボットアーム

ロボットアームを作ってみました。作り方は専用アプリの中にはなく、公式サイトでPDFが公開されています

公式の教員向けレッスンプランはこちらです

世の中の役に立つ設計
デザインプロセスを使用して、プロテーゼ(人工器官)に関連した現実の問題を解決する。

ただし、ロボットアームの先端部分の作り方は紹介されていないみたいなので、自分で工夫して作る必要があります。ちょっとハードル高めです

先端部分は公式サイトの写真を見ながら再現してみました

つなげてみました

圧力センサーを押すと、モノをつかむことができます。実際の動きはこちら

最初の腕を掴んでロックする動きがカッコイイですね

こちらがワードブロックのプログラムです

ただし、「モーターを停止時位置を維持する」ブロックがうまく動作しないみたいです。動かしているうちに、腕をつかむ部分の力が弱くなってきます(Pythonのプログラムだと正しく動作します)

こちらがPythonのプログラム。こっちのプログラムは腕をガッチリつかんでくれるので、こちらで動かすのがオススメです

from spike import PrimeHub, Motor, ForceSensor
from spike.control import wait_for_seconds

hub = PrimeHub()
motor_a = Motor('A')
motor_e = Motor('E')
moter_f = Motor('F')

force_sensor = ForceSensor('B')
motor_a.set_default_speed(100)
motor_e.set_default_speed(-100)
motor_a.set_stall_detection(False)
motor_e.set_stall_detection(False)
motor_a.set_stop_action('hold')
motor_e.set_stop_action('hold')
motor_a.run_to_position(0)
hub.speaker.beep(60)
hub.speaker.beep(72)

# 義手を人の腕につかまらせます。
motor_a.run_for_seconds(1)
motor_e.run_for_seconds(1)
while True:
    if hub.right_button.was_pressed():
        # 左ボタンを押すと、義手を腕から放します
        motor_a.run_to_position(0)
        motor_e.run_to_position(0)
        break
    if force_sensor.get_force_newton() > 5:
        hub.light_matrix.show_image('SQUARE')
        moter_f.run_to_position(90)
    else:
        hub.light_matrix.off()
        moter_f.run_to_position(0)
    wait_for_seconds(0.01)
[PR]
タイトルとURLをコピーしました