2025年1月9日

017-1.SPIKEプライム入門-第8回「物をつかむロボットを作る」

この連載では「レゴ エデュケーションSPIKEプライム(以下、SPIKE)」を使ったプログラミングの方法を紹介します。SPIKEは2020年1月にレゴ エデュケーションが発売したSTEAM教材です。マイコン搭載のブロックをプログラミングすることで、科学・技術・工学・アート・数学を学ぶことができます。プログラミングを行うにはWindowsかMacのパソコン、Androidタブレット、iPad、Chromebookのいずれかが必要です。(文/松原拓也)

◆ グリッパーを作る

今回は物をつかむことができるロボットを作りたいと思います。
ここではロボットのつかむ装置を「グリッパー」と呼ぶことにします。グリッパーは五十川芳仁さんが設計したEV3 for home用のロボットをお手本にして作ることにします。 丸の部分がグリッパーです。
ただし、それをそのままマネするだけではダメです。自分になりに仕組みをアレンジして、SPIKEの基本セットだけで作れるようにします。

今回はLアンギュラーモーター(Lモーター)を使うことにします。LモーターはSPIKEの基本セットに1つ含まれています。
LモーターはMモーターと比べて、幅が2ポッチほど大きいモーターです。LモーターはMモーターよりも回転速度が遅く、その代わりにトルク(回転する力)が大きいです。

この写真のようにパーツを用意します。
特に重要なパーツが「ベベルギヤ」です。ベベルギヤは歯のカドが取れていて、丸みのある形状をしているギヤです。

ベベルギヤを組み合わせるとこうなります。ベベルギヤは向きを90度変えて組み合わせることができます。
この写真の状態では回転に余分な力が加わると、簡単にギヤが外れてしまいます。このため、プログラムを工夫して、モーターを回転する力をおさえる必要があります。

グリッパーが出来上がりました。
モーターはポートCに接続することにします。

モーターを正転させると、グリッパーが閉じます。
ここからさらにモーターを正転させると、グリッパーが持ち上がります。

ちなみに、これは失敗作のグリッパーです。
モーターを正転させた場合、グリッパーが開いたまま、持ち上がってしまっています。これでは物をつかめません。
なぜグリッパーが閉じてくれないかというと、グリッパー自体の重さがうまくギヤに伝わっていないからです。正常なグリッパーは、グリッパーの重さで自動的に閉じることができます。閉じる力よりもモーターの回転が上回った時だけグリッパーが持ち上がります。

◆ グリッパーを動かすプログラム

写真はモーターを「スピードで制御」するブロックと、「パワーで制御」するブロックです。 グリッパーを動かす場合、このどちらを使った方がよいでしょうか?
正解は右の「パワー制御」です。もしスピードで制御してしまうと、グリッパーが開閉の限界に達した時に、無理にモーターを回転させてしまい、モーターやギヤを傷つけてしまう危険があります。パワーで制御した場合は、モーターをストール(負荷がかかって回転できない状態)させることができますので、開閉の限界に達した時にモーターを止めることができます。
パワー制御を行うには、SPIKEアプリのメニューから「拡張機能を開く」を選択して、メニューから「モーター拡張」を選択します。「モーター拡張」は今まで使ってきた「移動拡張」に似ていて、パワーを制御することができる機能です。

グリッパーを動かすプログラムを作ってみました。
右ボタンか左ボタンが押されたら、0.5秒だけモーターを回転します。
モーターはパワー制御で回します。グリッパーが開閉の限界に達した時にモーターをストールさせたいため、パワーを低く設定します。ただし、パワーが低すぎると、モーターが回らなくなってしまいます。逆にパワーが強すぎると、ギヤが外れてしまいます。そこで、強すぎず弱すぎない、適度な値にパワーを調節する必要があります。ここでは正転時を「15」、逆転時を「-15」に設定しました。

プログラムを実行します。 ハブの右ボタンを押すと、モーターが逆転して、グリッパーが開きます。

左ボタンを押すと、モーターが正転して、グリッパーが閉じます。

さらにモーターを正転させると、グリッパーが持ち上がります。
この機能を使えば、1つのモーターで物をつかんで持ち上げたり、降ろすことができます。
もし、ギヤが「バキバキ」と音を立ててしまう場合にはパワーの値を0に近づけましょう。

今回作成したプログラム(SPIKEアプリ用)

当ブログの内容は、弊社製品の活用に関する参考情報として提供しております。
記載されている情報は、正確性や動作を保証するものではありません。皆さまの創意工夫やアイデアの一助となれば幸いです。