「maqueen」タグアーカイブ

micro:Maqueen Plus を堪能 – HuskyLens を 添えて –

先日、DFRobot様より素敵な製品をいただきました!ありがとうございます!!

今回は micro:Maqueen Plus を楽しみましたので報告いたします。

 

 

micro:Maqueen Plus

micro:Maqueen Plusはエンコーダ付きモータ2個と各種センサを搭載したプログラミングロボットです。

 

micro:bit用のスロットが搭載されており、Arduino IDE や MakeCodeなどでプログラミング可能です。

可愛い専用ボックスに入っており、超音波センサも同梱されています。

 

micro:Maqueen Plus の前機種の micro:Maqueen よりもサイズが大きく、ライントレース用のセンサの数も多くなっています。

 

micro:Maqueen Plus は18650型バッテリで給電します。ここでは以下を購入し使用しました。
充電用のUSBマイクロ端子も実装されています。

動作

同梱されていた紙のライントレースコースを以下のサンプルMakeCode で走らせてみました。
 https://makecode.microbit.org/54033-76373-09765-24488

参考

 

HuskyLens との連携

前機種のmicro:MaqueenでもやったAIカメラの HuskyLens との連携動作を試してみました。

Microsoft MakeCode で ビジュアルプログラミング

 

HuskyLensの色認識機能で金魚を認識してモータを制御して追従してみます。

 

HuskyLensは設定でデータ出力を”I2C”にして、同梱の4線コネクタでmicro:Maqueen PlusのI2Cコネクタに接続します。

MakeCode

MakeCodeでプログラミングします。
MakeCodeはブロックエディタやJavaScriptエディタでプログラムできるWebベースのコードエディタです。
 https://www.microsoft.com/ja-jp/makecode

micro:bitのプロジェクトを起動して ”高度なブロック” ->  “拡張機能” で検索してMakeCodeにMaqueen plusとHuskyLensのブロックを追加します。

金魚の赤色がHuskyLensの画面の中央に来るようにモータを駆動し旋回する。

物体の中心座標がx軸の中心(160)付近からずれたらモータで旋回するようにしました。

 

動作

 

参考

HuskyLens を MakeCodeで楽しむ

前回、味見程度ではありますが HuskyLens の動作を楽しみました。
今回はHuskyLensの沼にもう少しだけ踏み込んでみようと思います。

 

 

MakeCode

サヌキテックネットさんの記事でHuskyLensがMakeCodeでプログラミングできることがわかりました。

MakeCodeはブロックエディタやJavaScriptエディタでプログラムできるWebベースのコードエディタです。
 https://www.microsoft.com/ja-jp/makecode

micro:bitやAdafruitのCircuit Playground Express というマイコンシリーズなどに対応しています。

Microsoft MakeCode で ビジュアルプログラミング

 

前述の記事のとおりHuskyLensのブロックも用意されていますのでここでは、micro:bitと組み合わせて楽しみました。
めっちゃ便利!!

 

micro:bit(Maqueen)と連結

ここではmicro:bit用のロボットプラットフォームMaqueenとHuskyLensを連結して使用します。
付属の金具で可愛く実装できました♪

 

 

HuskyLensの4ピンコネクタとMaqueenのI2Cコネクタで結線します。

 

 

MakeCodeコーディング

まずはMakeCodeにMaqueenとHuskyLensのブロックを追加します。

micro:bitのプロジェクトを起動して”高度なブロック” ->  “拡張機能”で検索して追加します。

  • Maqueen:Maqueenと検索
  • HuskyLens:”https://github.com/tangjie133/pxt-huskylens”と入力し検索

物体追従 味見

学習した物体(HuskyLens君)を検出したら、右赤LEDを光らす。

“最初だけ”でI2C通信と物体追従モードを確立させます。

“ずっと”で物体検出したら右赤LEDを点灯させてます。

簡単すぎる。。。

物体追従 モータ駆動

対象の物体がHuskyLensの画面の中央に来るようにモータを駆動し旋回する。

物体の中心座標がx軸の中心(160)付近からずれたらモータで旋回するようにしました。

 

 

ちょっと制動が甘いですが。。。簡単にできてしましました。
モータ駆動はArduino IDEとかでまじめに制御したほうがよさそうです。
 

おわりに

HuskyLensのたぐいまれなるAI機能をI2C通信で気軽に利用することができました!

micro:bitと接続してMakeCodeで試せるのも簡単で魅力的ですね。
思い付きが簡単に実現できるので今後もいろいろ作ってみたいです。

micro:Maqueen 発話でラジコン! ー Alexa + Node-RED + micro:bit ー

ものすごく便利なNode-REDモジュールを見つけてしまいました。

Node-RED Alexa Home Skill Bridge というもので、仮想のAlexaデバイスを作成して発話応答をNode-REDへ返してくれます。まさにブリッジとなってAmazon Echoへの発話とNode-REDの各種パレットをつないでくれます。

これなんでもできるようになるんじゃ。。。可能性ひろがるぅ 😳 

ここではAmazon Echoでコントロールするラジコンカーを作ってみました。

構成

Amazon Echoへの発話応答をNode-RED Alexa Home Skill Bridgeを介して ラズパイZero W上のNode-REDに返して、BLEでmicro:bitに信号を送ります。micro:bitは拡張ミニロボットカーMaqueenに載せて信号を受けて動かします。

部品

  • Amazon Echo Dot

     
  • Raspberry Pi Zero W

     
  • micro:bit

     
  • micro: Maqueen

Maqueen詳細については以下参照ください。

micro:Maqueen を使ってみた

Node-RED Alexa Home Skill Bridgeの設定

Node-RED Alexa Home Skill Bridge用のアカウントを作成してロボットカーを制御するための仮想のAlexaデバイスを作成します。

アカウント登録

以下にアクセスして、Resisterをクリックします。
 https://alexa-node-red.bm.hardill.me.uk/

ユーザ名とメアド、パスワードを登録します。

デバイス登録

登録後、Devicesタグを選択してAdd Deviceをクリックします。

 
ロボットカーのモータを回して前進、後進させるためのAlexa用デバイス”回転”を作成しました。

Name: デバイス名 ” 回転” 入力
Description: デバイスの簡単な説明記載
Actions: デバイスの動作種類を選択。ここではOnとOffを選択。
     Onで前進、 Offで後進させます。

同様にロボットカーを左右に向かせる”ターン”と、停止させる”ストップ”という2つのデバイスを追加で作成しました。

Alexaスキル  Node-RED有効化

スマホのAlexaアプリでNode-REDスキルを有効にしてAlexaサービスとNode-RED Alexa Home Skill Bridgeを紐づけます。

 
スキルを有効にするとNode-RED Alexa Home Skill Bridgeのアカウント入力画面に切り替わるので、登録したユーザ名とパスワードを入力します。

 
問題なければデバイス検出画面に移行します。

 
端末の検出をクリックで作成したデバイスが見つかります。

定型アクションを編集

作成したデバイスの起動するための発話をカスタマイズするために、 Alexaスマホアプリで定型アクションを編集します。

以下のように設定しました。

「アレクサ、前に進め」:デバイス “回転” On
「アレクサ、バックして」:デバイス “回転” Off
「アレクサ、右向け右」:デバイス “ターン” On
「アレクサ、左向け左」:デバイス “ターン” Off
「アレクサ、止まれ」:デバイス “ストップ” On

参考

 

Node-RED設定

Node-REDにAlexa Home Skill Bridge用のノードをインストールして、発話を受けてBLEでmicro:bitに文字列を送信できるようにします。ここではRaspberry Pi Zero WのNode-REDを使用しました。

我が家ではRaspberry Pi Zero Wを自宅内サーバとして使っていて、コンシェルジュのティラノくんが宿題やったか?とか朝だよーとか言ってくれるのです。

AquesTalk と Node-RED と ラズパイで おしゃべりティラノくん作製

ノードのインストール

node-red-contrib-alexa-home-skillをインストールします。

設定でパレットのインストールでnode-red-contrib-alexa-home-skillを検索して”install”クリックでノードが追加されます。

更にBLEを使用するために以下も同様にインストールします。
 node-red-contrib-generic-ble

Node-REDフロー

Alexa-homeノード

作成した仮想Alexaデバイス”回転”、”ターン”、”ストップ”の3つを配置します。

ノードを配置してまずはNode-RED Alexa Home Skill Bridgeで登録したユーザ名とパスワードを入力します。

 
デバイスを選択します。ここでは”回転”を選択。

同様に”ターン”とストップ”用のノードも配置します。
 

true/false分岐 ファンクションノード

“回転”と”ターン”デバイスは発話によってtrueとfalseを返すので、ファンクションノードで分岐させます。

 

BLE送信用文字列 ファンクションノード

“回転”と”ターン”のOn/Offと”ストップ”のOnの発話応用に対応するBLE送信用の文字列を生成するファンクションノードを配置します。

前進(”回転”デバイス On)では文字列 “1:”を送信しています。
micro:bit BLEの書き込み用UUIDと16進数文字列を指定します。

それぞれ以下の文字列を送信します。
 前進(”回転”デバイス On): “1:”
 後進(”回転”デバイス Off): “2:”
 右向(”ターン”デバイス On): “3:”
 左向(”ターン”デバイス Off): “4:”
 ストップ(”ストップ”デバイス On): “5:”
 

Generic BLE 出力ノード

Generic BLE outノードを配置して、鉛筆マークをクリックします。

 
Select from scan resultにチェックを入れ、BBC micro:bit を選択します。

 

MakeCode

Node-REDからの文字列をBLE介してmicro:bitで受けて、ミニロボットカーを制御します。

ここではMakeCodeでブロックコーディングしてmicro:bitに書き込みます。

 https://makecode.microbit.org/

機能拡張

設定アイコン -> 拡張機能をクリックでMaqueen用とbluetooth用のブロックを追加します。

 

Maqueenブロック追加

以下のライブラリリンクを入力して検索をクリック

maqueenをクリックでMaqueenのブロックが追加されます。

 

bluetoothブロック追加

拡張機能でbluetoothを選択。無線ブロックと共存ができないので、無線ブロック削除メッセージが出ます。削除しちゃってください。

 
bluetooth用ブロックが追加されます。

 

micro:bitのBLEペアリング設定を変更します。設定アイコン -> プロジェクトの設定をクリックで一番上の”No Paring Required”を選択します。これでペアリング無しで通信が可能となります。

 

参考

MakeCode ブロック

以下がMaqueen制御用のMakeCodeブロックです。


 

① 初期設定

変数stateを初期化して、BluetoothがNode-RED(Raspberry Pi Zero W)と接続されるとニコニコマークをmicro:bitのLEDマトリクスに表示します。


 

② 文字列受信

Node-REDからの文字列を受信してコロン”:”前の文字を変数stateに代入します。


 

③ 前後進制御

文字列”1:”受信で前進、”2:”受信で後進させます。LEDマトリクス表示もそれぞれ変えます。


 

④ 右向き制御

文字列”3:”受信で右に90°ターンします。LEDマトリクスにはターン方向の矢印を表示させて Maqueen前方についている赤LEDインジケータ右側をウィンカーのように点滅させてます。ターン後、全て停止します。


 

⑤ 左向き制御

文字列”4:”受信で左に90°ターンします。LEDマトリクスにはターン方向の矢印を表示させて Maqueen前方についている赤LEDインジケータ左側をウィンカーのように点滅させてます。ターン後、全て停止します。


 

⑥ モータ停止

文字列”5:”受信でモータ停止し、LEDマトリクスの表示を消します。

 

MakeCode JavaScript

全体のJavaScriptコードを以下に記載します。

 

 

動作まとめ

ゴチャついてきたので、動作を一覧にまとめます。


 

動作

音声でロボットカーを制御できております!

ちょっと初期設定が大変かもだけど、ブロック組み合わせるだけで実にフィジカルなVUIアプリを作成できました!

ゴミ箱とか音声で近くに移動してくれたりとかいいかも 🙄 

とにかくNode-RED Alexa Home Skill Bridge が神がかって便利なので今後もいろいろ活用考えたいです!

micro:Maqueen を使ってみた

DFRobot様より提供いただいたmicro:bitを拡張するロボットカー”Maqueen”を使ってみました。

 

 

micro:bit ロボットプラットホーム “Maqueen”とは

micro:bitを拡張するミニロボットカーです。

 

micro:bitを差し込むソケットやギアドモータを搭載した基板とタイヤ、電池ケース(単4 ✕ 3)、超音波距離計 HC-SR04 が同梱されていました。

組み立て

  • タイヤをモータに差し込む

     
  • 電池ケースに両面テープを貼り付け

     
  • 電池のコネクタを基板に差し込む

     
  • 電池ケースを基板に両面テープで固定。 micro:bitをソケットに差し込む

     

完成!なんかかわいい!前方には超音波距離計を差し込むコネクタもあります。

仕様

  • 前方赤LED、フルカラーLED搭載
  • 赤外線受信センサ搭載
  • ブザー搭載
  • ライントレース用フォトリフレクタ搭載
  • 超音波センサインターフェース搭載

MakeCode用 Maqueenブロック追加

Micro:bitを拡張したロボットカーですのでMakeCodeでブロックコーディングできます。

Maqueenブロック追加方法

  • 以下にアクセスして”新しいプロジェクト”をクリック
     https://makecode.microbit.org/
     
  • 設定アイコン -> 拡張機能をクリック

     
  • 以下のライブラリリンクを入力して検索をクリック

    maqueenをクリックしてインストール

     

  • Maqueenのブロックが追加されます。

これでMakeCodeでMaqueenのコーディングができるようになりました。

 

サンプルコード

以下にMaqueen用のMakeCodeサンプルコードが各種アップされています。

ライントレーサー

ライントレースのサンプルコードを試してみました。基板前方底面の2つのフォトリフレクタで黒いラインをセンシングしてモータを制御するコードです。

紙にマジックで線を書いて走らせてみただけですww

 

もっと大きいコースを書いてみた。サンプルのままだとちょっとスピードが早いのでモータへのPWM出力を255→25に変更して遅く走るようにしてます。

おわりに

いいものいただいたー!見た目もかわいいし! 

MakeCodeによるブロックコーディングにも慣れてきたので、いろいろ試してオリジナルのコードも書いてみたいと思います。その際にはまた報告させていただきます。

 

参考

応用

Alexaを使って発話でmicro:Maqueenを操作してみました♪

AquesTalk と Node-RED と ラズパイで おしゃべりティラノくん作製