学習用ロボット(クムクムロボット)をPythonのプログラムから動かす
学習用ロボット(クムクムロボット)とPCの間は、BLEモジュール’RN4020’が持つMLDPモードという通信方式を使って通信を行っています。
MLDPモードとは、Microchip Low-energy Data Profile のことで、SSP (Serial Port Profile) を使って無線化することを指します。
そして、クムクムロボットをPythonのプログラムから動かすには、まず、PCとクムクムロボットの間でシリアル通信ができないといけません。
Pythonでシリアル通信を行うことも可能ですが、ここでシリアル通信を行い、クムクムロボットを制御するためのコマンドなどを作っているととても時間がかかってしまいます。
Python用ライブラリがある
学習用ロボット(クムクムロボット)のサイトに、Python用ライブラリがあり配布されています。
Qumcum Pythonライブラリ
クムクムロボットのサイトで下記の注意がありますのでご一読ください。
使用上の注意
1.API(DLL)はサンプルβバージョンにより不具合などがある場合もあります。
2.APIの細かい使い方、サンプルプログラムの内容、改造などについてのご質問については原則的にお答えできません。
3.技術的なアドバイスや細かい内容について個人的な範囲でのお答えは原則的にお答えできません。
4.API・サンプルのs著作権は弊社に帰属しますが、第三者への配布などはご自由です。あくまで個人の学習用として参考としてお使いください。
使用上の注意を確認いただいたうえで、QumcumのサイトからPython用ライブラリ(qumcum_python.zip)をダウンロードします。
ダウンロードはこちらから。
Qumcum Pythonライブラリを展開する
Qumcum Pythonライブラリをダウンロードしたらqumcum_python.zipを選択して、右クリックメニューから「すべて展開…」で圧縮ファイルを展開します。
圧縮ファイルを展開すると下記のようなフォルダがあります。
フォルダ | 内容 |
doc | Qumcum Pythonライブラリのドキュメントがあります。 |
lib/x64 | Python(64-bit)をインストールした場合のQumcum Pythonライブラリの本体(プログラム実行に必要なファイル)があります。 |
lib/x86 | Python(32-bit)をインストールした場合のQumcum Pythonライブラリの本体(プログラム実行に必要なファイル)があります。 |
sample | Qumcum Pythonライブラリを使うサンプルプログラムがあります。 |
各フォルダ内のファイル
フォルダ | ファイル | 説明 |
doc | Qumcum_python用インターフェース一覧.pdf | クムクムロボット制御用APIのインターフェースの説明が書かれたドキュメントです。 |
lib/x64 | QumCommLib.dll | Python(64-bit)をインストールした場合のDLLです。 |
lib/x86 | QumCommLib.dll | Python(32-bit)をインストールした場合のDLLです。 |
sample | QumCommLib.dll | サンプルにはPython(32-bit)をインストールした場合のDLLが入っています。 |
sample | qumcum.py | QumCommLib.dllを使うためのPythonモジュール |
sample | sample.py | PythonからQumCommLib.dllのみを使ってクムクムロボットを制御するサンプルプログラム |
sample | qumcum_sample.py | qumcum.py経由でQumCommLib.dllを呼び出してクムクムロボットを制御するサンプルプログラム |
QumCommLib.dllとPythonモジュール(qumcum.py)とプログラムの関係
クムクムロボットとPCを接続し、Qumcum Pythonライブラリを使ってPythonで制御するには2通りの方法があります。
a. PythonからQumCommLib.dllのみを使ってクムクムロボットを制御する
クムクムロボットの制御を呼び出すプログラムのコード上から直接QumCommLib.dllをロードし、接続を行い制御します。
b. qumcum.py経由でQumCommLib.dllを呼び出してクムクムロボットを制御する
クムクムロボットの制御を呼び出すプログラムからはqumcum.pyをインポートして、APIを呼び出して制御します。
上記2つの方法は、それぞれ下記のような特徴があります。
方法 | メリット | デメリット |
a. PythonからQumCommLib.dllのみを使ってクムクムロボットを制御する | DLLを直接呼び出すことができるので他のコードの影響が少ない | DLLのロードからアンロードまでの管理を自分のプログラム内で行わなければいけない |
b. qumcum.py経由でQumCommLib.dllを呼び出してクムクムロボットを制御する | qumcum.pyがDLLのロードからアンロードまでの管理を担ってくれるのでプログラムのコード量を抑えることができる | インポートを行うためqumcum.pyの実装に依存することになる |
Qumcum Pythonライブラリを使用するための準備
シリアル通信を使用するため、接続するシリアルポートを確認しておく必要があります。
確認を始める前にクムクムロボットの通信機がPCとUSBケーブルで接続されている場合は、いったん通信機を外しておいてください。
シリアルポートの確認方法
- デバイスマネージャを開きます。
デバイスマネージャは[スタート]ボタン上で右クリックして[デバイスマネージャ]をクリックすると開くことができます。 - デバイスマネージャの<コンピュータ名>の中にある「ポート(COMとLPT)」の横の→をクリックして展開します。
- この状態でクムクムロボットの通信機とPCをUSBケーブルで接続します。
- クムクムロボットの通信機が認識されると「USB Serial Port(COM*)」(*はCOMポートの番号)というデバイスが表示されます。
この“COM*”(*はCOMポートの番号)の部分が、Qumcum Pythonライブラリでクムクムロボットと通信を行うときに必要になります。
QumCommLib.dllのみでの使用方法
実行するプログラムのフォルダに QumCommLib.dll を置きます。
QumCommLib.dllは、Python(64-bit)をインストールした場合は qumcum_python\lib\x64 Python(32-bit)をインストールした場合は qumcum_python\lib\x86のDLLを使用してください。
PythonからQumCommLib.dllのみを使ってクムクムロボットを制御する
DLLの関数を呼び出すには、スクリプト内に dll = cdll.QumCommLib と記述して、DLLをロードし、dll.関数名でAPIを呼び出します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
import os import time from ctypes import * # DLLのフォルダにカレントディレクトリを追加します os.add_dll_directory(os.getcwd()) # DLLをロードします dll = cdll.QumCommLib # COMポートの番号文字列を生成 port = c_char_p('COM7'.encode('utf-8')) # Qumcumと接続 h = dll.qumcomm_connect(port, 115200) |
「COMポートの番号文字列を生成」の部分で指定している’COM7’の部分は、さきほどデバイスマネージャで確認した’COM*'(*はCOMポートの番号)を指定します。
Qumcum Pythonライブラリでは sample/sample.py にサンプルがあります。
qumcum.py経由でQumCommLib.dllを呼び出してクムクムロボットを制御する
同じフォルダにあるqumcum.pyの関数が使用できるようインポートし、そのインポートした’qumcum’に関数呼び出しを記述して呼び出します。
1 2 3 4 5 |
import qumcum # Qumcumと接続 # ※"COM7"は通信機を接続したときに表示されたCOMポートの名称です qumcum.connect("COM7") |
qumcum.connect()の引数で指定している’COM7’の部分は、さきほどデバイスマネージャで確認した’COM*'(*はCOMポートの番号)を指定します。
サンプルプログラムを動かしてみる
Qumcum Pythonライブラリでは sample/qumcum_sample.py というPythonのサンプルプログラムがあります。
サンプルプログラムを動かすには
エクスプローラで qumcum_sample.py があるsampleフォルダを開き、sampleフォルダを右クリックして、[Codeで開く]をクリックします。
(メニューに[Codeで開く]が表示されない場合は、VSCodeがインストールされていない可能性がありますので、VSCodeがインストールされているか確認し、インストールされていない場合はVSCodeのインストールを行ってください)
VSCodeが起動されたら、VSCodeの左ペインにあるファイルの一覧から qumcum_sample.py をクリックします。
(VSCode内のファイル一覧では、クリックするだけでファイルを開きます)
qumcum_sample.py が開いたら、VSCode左側にある[実行とデバッグ]ボタンをクリックし、表示された画面にある[実行とデバッグ]という青いボタンをクリックします。
右に表示された「Select a debug configuration」の中にある「Python File Debug the currently active Python file」をクリックします。
現在開いているPythonファイル(qumcum_sample.py)が実行されます。
プログラムの実行中は、VSCodeのウィンドウ下部の色が変わり、プログラムの実行が終了したら、VSCodeのウィンドウ下部の色が元に戻ります。
例では、プログラム実行中がオレンジ色で通常は青色です。