この記事が気に入ったら
いいね!しよう
最新情報をお届けします。

AI画像認識を使った分身ロボット作り

その他

まずは、完成ビデオをご紹介します。私の頭・腕の動きと連動して、分身ロボットが動きます。

では、どのようにして作るか、ご紹介します。

Scratch特別バージョンには、AIの画像認識機能を使える拡張ブロックがいろいろあります。

これを使うと、画像から物の名前や、人体の目や鼻などの座標、音声認識など、いろいろなことができます。
さらに、Scratchとmicro:bitをBluetooth通信でつなぐ機能などもあります。

そこで、Scratchで顔の傾きや手の上げ下げを認識させて、micro:bit上のサーボモーターを動かすことで自分のアバター(というほどの物ではありませんが)を作ってみたいと思います。

まず、工作です。

3つのサーボーモーターを棒に貼り付け、さらにイーオがぶら下がるようにネジを付けます。イーオの穴の部分は、このような工作に役立ちます。

木の棒に、3つのサーボモーターを取り付けていきます。

グルーガンで、腕をはり付けます。

ネジをつけて、イーオを吊せるようにします。

かなり雑ですが、大体できました。3つのサーボモーターは、イーオのピンに差し込みます。今回は、P0(頭),P1(右腕),P2(左腕)を使用しています。

イーオ上のP0,P1,P2端子に差し込みます。電源は、イーオの裏にある単4×3本の電池から供給しました。


プログラム

事前準備①

次のページからmicrobit-more用のHEXファイルをダウンロードして、micro:bitにドラッグアンドドロップで書き込みします。

事前準備②

Windowsで使う場合には、Scratch Linkをインストールします。

事前準備③

拡張された特別のScratchを使用します。

micro:bitと通信する際に、サーボのコントロールをしたいので、拡張機能のmicrobit-moreを読み込みます。

さらに、AI機能としてPosenet2scratchを読み込みました。

いよいよプログラムです。Posenet2scratchには、右目・左目・右腕・左腕の位置座標を返すブロックが準備されているので、そのブロックを使いました。

頭の傾きは、(左目のy座標ー右目のy座標)を計算して、マイナスなら右に傾いている、プラスなら左に傾いているという判断をさせました。

腕の上下は、ちょうどスクラッチのy座標が-180~+180だったので、その座標を半分にしてサーボを0~180°動かしています。

microbit-moreを使うと、直接イーオにつないだサーボモーターをコントロールできます。

イーオは、乾電池でサーボモーターまで動かせるので、このような工作でも簡単にできます。


イーオの販売ページ

micro:bit用拡張ユニット iːo(イーオ)V2
micro:bit(マイクロビット)を使う上で、より便利に、そして拡張機能も手に入るモジュールです。micro:bit本体の基本機能にプラスして、電池を使った持ち運びや、フルカラーLEDを使ったプログラミング、リレーを使った豆電球やモーターの制御などができるようになります。

このようば素晴らしいソフトを開発しているchampierre様、Yengawa Lab様に感謝申し上げます。

タイトルとURLをコピーしました