表題の内容のとおりです。
KittenBot KOI - AIモジュールについて
KittenBot KOI - AIモジュール(以下、本文では KOI と記載) は、以下の機能などを搭載したデバイスです。
・カメラ ・マイク
・スピーカー ・Wi-Fi
・IPSスクリーン
実現できる内容として、以下の内容などがあるようです。
・画像分類 ・顔認識
・音声認識 ・音声合成
MCU は K210 です。
ちなみに、自分は以下のスイッチサイエンスさんのページから購入しました(ずいぶん前に...)。
●KittenBot KOI - AIモジュール - スイッチサイエンス
https://www.switch-science.com/catalog/6359/
とりあえず月曜までは封印しておかないと。
— you (@youtoy) October 1, 2020
会社帰りに近所のコンビニ(略 pic.twitter.com/9G7FJ6lEtp
公式サイトの説明・写真によると、様々なデバイスと組み合わせることができるようです。
また、開発環境は以下が利用できるようです。
今回は、この中の 1つである「Kittenblock」を使います。
Kittenblock について
Kittenblock は Scratch 3.0 ベースに開発されたと思われるビジュアルプログラミング環境です。
以下のサイトからダウンロードできて、Windows版と Mac版があるようなのですが、記事執筆時点では Mac版のアプリはダウンロード用ボタンを押しても、ダウンロードができませんでした。
●Software – KittenBot
https://www.kittenbot.cc/pages/software
拡張ブロックを見てみると、Scratch 3.0 で標準で使えるものも並んでいましたが、それ以外に主にデバイス系の拡張がたくさん並んでいました。
ドキュメントについて
ググってみてドキュメント等を探したのですが、この記事の執筆時点では、以下の中国語のものしか見つからなそうでした。
●Kittenblock中编程 · 语雀
https://www.yuque.com/kittenbot/hardwares/koi-kittenblock
あと、Twitter上で検索したらこんなツイートが出てきたりしました。
「クリスマスにゲットしたら、中国語以外のドキュメントを見つけられないガジェットだった!」とか書いてあります。そして、この方は micro:bit と連携させる形で動かしたようです。
Asked for a KittenBot Koi for x-mas, today I received it (Brexit mail issues), to then notice I barely find any non-Chinese documentation on this gadget. Omg 💀 I finally got it up and running though (a Hello World at least) 😄 pic.twitter.com/CvQj7ugBun
— valies (@da_valies) January 21, 2021
実際に試してみる(簡単な動作確認から MQTT の利用まで)
簡単に動かす程度なら、ドキュメントなしでもできそうな気がしたので、実際に動かしてみながら使い方を探っていきました。
デバイスとの接続
Kittenblock を起動して、まずは KOI との接続を行っていきます。
接続に関して、Kittenblock をインストールした PC と KOI を USBケーブルで接続します。
その後、アプリ上で以下の「拡張ブロックの追加 ⇒ デバイス接続用の操作」を行って、デバイスをアプリと接続します。
そして、動作確認を兼ねて、KOI のボタンを使いプログラムを動かしてみました。
動作確認ができました。無事に接続はできているようです。
MQTT を使う環境をそろえる
MQTT を試してみるのに、KOI 以外に仲介役となる MQTTブローカーが必要です。また、MQTT でのやりとりをする先のクライアントが 1つあると良さそうです。
MQTTブローカーについては、これまでにも使ったことがあった shiftr.io Desktop app を使いました。
これは、PC上でアプリを起動すると、ローカルネットワーク内で MQTTブローカーを動作させてくれるというものです。
また、MQTT のクライアントとして、以前から利用してきていた MQTT.fx という GUIフロントエンドとなるアプリを使いました。
MQTT.fx の公式ページを見たのですが、どうも今はドイツの企業がひきとったりしたようです(ちょっとだけ上記に書かれたリンク先のサイトを見たのですが、利用するのに有料になっている予感が...)。
MQTT用のブロックを使う
MQTT を使う環境は整えたので、ここからいよいよ MQTT用のブロックを使っていきます。
Publish/Subscribe の両方の機能のためのブロックがありましたが、今回は KOI側は Publish のみを行う形で組んでみました。最初に Wi-Fi 接続を行わせる処理も忘れずに入れてください。
なお、MQTT に用いるトピックは「/topic1」と「/topic2」というものを適当に決めて設定しています。
KOI MQTT Host の IPアドレスは、上記の shiftr.io Desktop app を動かす予定の PC の IPアドレスを指定しています。ポートはデフォルトの 1883 そのままで変える必要はなく、その他の client の部分や user・pass の部分も今回はデフォルトのままで OK です。
ここまでできたら、shiftr.io Desktop app と MQTT.fx を起動します。
MQTT.fx は shiftr.io Desktop app への接続設定と、上記の 2つのトピックを指定した Subscribe の設定が必要です。MQTT.fx の使い方について、以前記事を書いたことがあるので、よろしければご覧ください。
●GUIベースのMQTTクライアントアプ「MQTT.fx」の使い方メモ - Qiita
https://qiita.com/youtoy/items/1086cb1c9518a34968be
MQTTブローカーへ接続がされた後は、KOI の 2つのボタンをそれぞれ押してみて、MQTT での Publish が行われたかを確認します。以下のとおり、MQTTブローカー上でも別の MQTTクライアント上でも、メッセージが送られたり受信できたりしたのが確認できました。