パワーアップ プログラミング

Pythonからクムクムをコントロールする

投稿日:

最近、Pythonからリモートでクムクムを動かしたい!というご要望を多くお受けします。
そのため、ここではひとつの例として弊社のPython用実験ライブラリーを使ったプログラムをご紹介します。
なお、ここで使うDLLは、実験要素を含むものです。
弊社内の技術や多くの方技術の方にいろいろ試していただいていますが、一部実験的な要素も含みますので、不具合やおかしなところに気づかれたかがいらっしゃいましたら弊社までご連絡ください。

PCとQumcumの関係

PC側とクムクムの通信関係を簡単な図で表すと下記のようになります。

・PCとクムクムが通信するためには、クムクムの通信口であるBluetoothを使用します。
・クムクム通信口に使用されているBluetoothモジュールは、マイクロチップ社のRN4020を使用しています。
・このRN4020には、通常のBluetoothの通信としての方法(現在のBLE方式やBluetoothクラッシック)と、RN4020どうしの独自の方法(MLDP)があります。
・通信はどちらの方法でも可能ですが、前者の中でBLEを使用した場合、アドバタイジングやキャラクタリスティックなどBLE独自の手法を理解している必要があります。
・また前者の中でも、Bluetoothクラッシックとして仮想シリアルポートでユーザープログラム(ここではPython)からシリアルポートとして普通に通信ができれば、それほど難しくはありません。
・クムクム側のファムではいずれにしても、ユーザプログラムから送信されたコマンドを受信し解析しモータなどペリフェラルをコントロールするプログラムが必要です。

※つまり、上位側(PC側)と下位側(クムクムファームウエア)の両方の開発が必要です。

Pythonで簡単にクムクムを動かすためには

全ての開発を行うのはとても大変です。
そのため、弊社では、購入時のクムクムをそのままスクラッチからではなくPythonから動作させるためのAPIをDLLとして用意しました。
このプログラムは ココ をクリックすることで すべてのファイルをダウンロードすることができます。

このAPIは、弊社通信機とクムクムを簡単に接続し、スクラッチとクムクムが通信しているように、RN4020のMLDP方式を使って通信を行います。
APIには、接続からペリフェラルの制御などすべてのコマンドを用意しています。

ダウンロードしたreadme やコマンドリファレンスにも記載していますが下記にも記載いたします。

●使用方法

実行するプログラムのフォルダに QumCommLib.dll を置きます。
QumCommLib.dllは、OSが64ビットOSの場合は qumcum_python\lib\x64 32ビットOSの場合は qumcum_python\lib\x86のDLLを使用してください。
DLLの関数を呼び出すには、スクリプト内に dll = cdll.QumCommLib と記述して、DLLをロードし、dll.関数名でAPIを呼び出します。
ペリフェラルのコントロールなど、コマンドの詳細は、qumcum_python\docにある Qumcum_python用インターフェース一覧.xlsx をご確認ください。

なお、sampleフォルダのQumcum.pyは、このDLLの関数呼び出しを行っているものです。
実装例は、qumcum_python\sampleにあるsample.pyを参考にしてください。

※使用上の注意

1.API(DLL)はサンプルβバージョンにより不具合などがある場合もあります。
2.APIの細かい使い方、サンプルプログラムの内容、改造などについてのご質問については原則的にお答えできません。
3.技術的なアドバイスや細かい内容について個人的な範囲でのお答えは原則的にお答えできません。
4.API・サンプルのs著作権は弊社に帰属しますが、第三者への配布などはご自由です。

あくまで個人の学習用として参考としてお使いください。

-パワーアップ, プログラミング

Copyright© クムクム技術ブログ , 2020 All Rights Reserved.