Deprecated: 関数 seems_utf8 は、バージョン 6.9.0 から非推奨になりました ! 代わりに wp_is_valid_utf8() を使用してください。 in /home/afrel/afrel.xsrv.jp/public_html/afcms/wp-includes/functions.php on line 6131

Deprecated: 関数 seems_utf8 は、バージョン 6.9.0 から非推奨になりました ! 代わりに wp_is_valid_utf8() を使用してください。 in /home/afrel/afrel.xsrv.jp/public_html/afcms/wp-includes/functions.php on line 6131

Deprecated: 関数 seems_utf8 は、バージョン 6.9.0 から非推奨になりました ! 代わりに wp_is_valid_utf8() を使用してください。 in /home/afrel/afrel.xsrv.jp/public_html/afcms/wp-includes/functions.php on line 6131

Deprecated: 関数 seems_utf8 は、バージョン 6.9.0 から非推奨になりました ! 代わりに wp_is_valid_utf8() を使用してください。 in /home/afrel/afrel.xsrv.jp/public_html/afcms/wp-includes/functions.php on line 6131

Deprecated: 関数 seems_utf8 は、バージョン 6.9.0 から非推奨になりました ! 代わりに wp_is_valid_utf8() を使用してください。 in /home/afrel/afrel.xsrv.jp/public_html/afcms/wp-includes/functions.php on line 6131

Deprecated: 関数 seems_utf8 は、バージョン 6.9.0 から非推奨になりました ! 代わりに wp_is_valid_utf8() を使用してください。 in /home/afrel/afrel.xsrv.jp/public_html/afcms/wp-includes/functions.php on line 6131

Deprecated: 関数 seems_utf8 は、バージョン 6.9.0 から非推奨になりました ! 代わりに wp_is_valid_utf8() を使用してください。 in /home/afrel/afrel.xsrv.jp/public_html/afcms/wp-includes/functions.php on line 6131

Deprecated: 関数 seems_utf8 は、バージョン 6.9.0 から非推奨になりました ! 代わりに wp_is_valid_utf8() を使用してください。 in /home/afrel/afrel.xsrv.jp/public_html/afcms/wp-includes/functions.php on line 6131
017-1.SPIKEプライム入門-第8回「物をつかむロボットを作る」 | AFREL TECH BLOG |(株)アフレル
Warning: Undefined variable $wp in /home/afrel/afrel.xsrv.jp/public_html/afcms/wp-content/themes/afrel/functions.php on line 1997

Warning: Attempt to read property "request" on null in /home/afrel/afrel.xsrv.jp/public_html/afcms/wp-content/themes/afrel/functions.php on line 1997

Deprecated: strstr(): Passing null to parameter #1 ($haystack) of type string is deprecated in /home/afrel/afrel.xsrv.jp/public_html/afcms/wp-includes/functions.php on line 1154

Deprecated: stripos(): Passing null to parameter #1 ($haystack) of type string is deprecated in /home/afrel/afrel.xsrv.jp/public_html/afcms/wp-includes/functions.php on line 1161

Deprecated: stripos(): Passing null to parameter #1 ($haystack) of type string is deprecated in /home/afrel/afrel.xsrv.jp/public_html/afcms/wp-includes/functions.php on line 1164

Deprecated: str_contains(): Passing null to parameter #1 ($haystack) of type string is deprecated in /home/afrel/afrel.xsrv.jp/public_html/afcms/wp-includes/functions.php on line 1171

Deprecated: str_contains(): Passing null to parameter #1 ($haystack) of type string is deprecated in /home/afrel/afrel.xsrv.jp/public_html/afcms/wp-includes/functions.php on line 1174

Notice: 関数 WP_Scripts::add が誤って呼び出されました。ハンドル「wpcf7-recaptcha」のスクリプトは、未登録の依存関係とともにキューへ追加されました: google-recaptcha。 詳しくは WordPress のデバッグをご覧ください。 (このメッセージはバージョン 6.9.1 で追加されました) in /home/afrel/afrel.xsrv.jp/public_html/afcms/wp-includes/functions.php on line 6131

Deprecated: 関数 seems_utf8 は、バージョン 6.9.0 から非推奨になりました ! 代わりに wp_is_valid_utf8() を使用してください。 in /home/afrel/afrel.xsrv.jp/public_html/afcms/wp-includes/functions.php on line 6131

Deprecated: 関数 seems_utf8 は、バージョン 6.9.0 から非推奨になりました ! 代わりに wp_is_valid_utf8() を使用してください。 in /home/afrel/afrel.xsrv.jp/public_html/afcms/wp-includes/functions.php on line 6131

Deprecated: 関数 seems_utf8 は、バージョン 6.9.0 から非推奨になりました ! 代わりに wp_is_valid_utf8() を使用してください。 in /home/afrel/afrel.xsrv.jp/public_html/afcms/wp-includes/functions.php on line 6131

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アプリ用)

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


Deprecated: 関数 seems_utf8 は、バージョン 6.9.0 から非推奨になりました ! 代わりに wp_is_valid_utf8() を使用してください。 in /home/afrel/afrel.xsrv.jp/public_html/afcms/wp-includes/functions.php on line 6131

Deprecated: 関数 seems_utf8 は、バージョン 6.9.0 から非推奨になりました ! 代わりに wp_is_valid_utf8() を使用してください。 in /home/afrel/afrel.xsrv.jp/public_html/afcms/wp-includes/functions.php on line 6131

Deprecated: 関数 seems_utf8 は、バージョン 6.9.0 から非推奨になりました ! 代わりに wp_is_valid_utf8() を使用してください。 in /home/afrel/afrel.xsrv.jp/public_html/afcms/wp-includes/functions.php on line 6131