The Fool In The Valleyの雑記帳

-- 好奇心いっぱいのおじいちゃんが綴るよしなし事 --

Mindstorms最新事情

LEGOのMindstormsの20年来のファンで、写真に示すように初代のRCXからNXT、EV3と使ってきました。

f:id:tfitv:20201129171347j:plain

これまで、7,8年ごとに進化してきているので、そろそろ次が計画されているかと思って調べたら色々と事情が変わって来ているようです。

① Scratchの採用
EV3には、EV3ソフトウェア(EV3 Lab)と呼ばれるLabViewをベースにしたビジュアル・プログラミングのソフトウェアが付属していましたが、それがScratchベースのプログラミング環境「EV3 Classroom」へ変更されたようです。
ここからダウンロードできます。

www.microsoft.com
downloadしたものを起動し、サンプルを見ると確かにScratchです。

f:id:tfitv:20201129171604p:plain


Scratchは、初学者向けのプログラミング言語として世界的に定着してきているので、LEGOとしてはその流れに沿った方が得策だと判断したのでしょう。私自身これを使うことはないでしょうが、この変更は支持します。

② MicroPythonの採用
これまでMinsdtorms向けにサードパーティーから様々な開発言語が提供されてきました。それらを利用することにより、高度なプログラミングが可能になっていましたが、LEGOが公式にサポートするものではありませんでした。私がこれまで主に使ってきたのはleJOSと呼ばれるJavaで、MotorやSensorをドライブするためのライブラリが充実しているし、Eclipse用のプラグインが提供されていてともて使いやすい開発環境になっています。

www.lejos.org
しかしここに来てようやく、LEGOが重たい腰を上げ、高級言語での開発を公式にサポートすることにして、言語としてMicroPythonを選択したようです。

education.lego.com

これも正しい判断だと思います。

MicroPythonを使った開発については以下にチュートリアルがありました。

pybricks.github.io
ちょっと覗くと、面白そうなサンプルもいくつか用意されていて、なんと、下図のようなSegway型(倒立振り子型)の自立走行ロボットもあるではありませんか。

 

f:id:tfitv:20201129172329j:plain
私自身、以前下の写真のようなこのタイプのロボットを作ってJavaで制御プログラムを書いたことがあります。

f:id:tfitv:20201129180551j:plain

それをPythonに移植することも考えていたので、どういう考え方・手法で実現されているのかとても興味のあるところです。 

 

EV3はARMのプロセッサを使っていますが、H/W的には最近のスマートフォンタブレットと比較して目立った性能を持ったものではありません。それでも、Mindstormsが提供しているMotorやSensorをコントロールするには十分な性能を有しているので、LEGOとしてはH/W的にはもう進化させる気はないのかもしれません。
Mindstormsのターゲットは、エンジニアリング教育やホビイストだと思われますから、それに向けて、世の中の主流に合わせたソフトウェア環境を提供していくことを主眼にして今後展開していくような気がします。

この最近の動きに、ホビイストの一(いち)ファンとしては全く文句はありません。

このブログで書いてきたように、「数独Pythonを」というプロジェクトを通してPythonにも慣れたところです。これまでMindstomrsのソフトウェア開発はJavaに頼ってきたので、それをどうしようかと考えていたのですが、このように状況が変ってきたのであれば私はJavaからPythonへ全面移行することにします。