LEGO Mindstorms EV3 を パソコンのキーボードから操作してみます。

私は、LEGO Mindstorms EV3の教育版を買ったので、家庭版と違いリモコンがありません。でも、ラジコンのようにロボットカーを操作したい!そこで、MQTTというプロトコルを利用して、ノートPCのキーボードを使ってロボットカーを制御する方法を思いつきました。

まずは、結果をどうぞ!

環境

  • Publisher(PC) Ubuntu 16.04
  • Subscriber(ev3) ev3dev
  • Python 3.6
  • ev3dev-lang-python

ロボットの組み立て

この本に載っているtribotを作成しました。

Setup

MQTTという軽量な通信プロトコルを使った方法がev3devのサイトに紹介されていたので、それを参考にする。

MQTTではpublisher(出版者)が発するメッセージをbroker(仲介者)がsubscriber(購読者)へ配信する。今回は、publisherが ノートPC, brokerとsubscriberが ev3になる。

ev3に brokerサーバソフトをインストールする。mosquittoというソフトをインストール

sudo apt-get install mosquitto

インストールが完了すると、サービスが立ち上がる。

続いて、mqttをPythonで使うための pahoというソフトをノートPCと ev3の両方にインストール。

sudo apt-get install python3-pip
sudo pip3 install paho-mqtt

PC 側

pip3 install paho-mqtt

これで、MQTT で通信する準備は整った。

punput

Pythonで押されたキーボードのキーの取得をするために、punputというライブラリを利用する。

ラズパイカーで同じようなことを考えている人のブログ記事を発見した。これはありがたい。

コード

最後に、書いたコードが以下。これで、キーボードの十字キーを使ってロボットカーをリモコン代わりに操作することができた。

https://gist.github.com/tsu-nera/86761c607c33ec1fb2cedc074fbf286d