What can make micro-maqueen looks better?マイクロマックイーンの見栄えをどうにかしたい

これの見た目どうにかならんのか?

https://www.dfrobot.com/product-1783.html

これを見たら閃いた

発砲どんぶり(お椀)で亀を作る:自由工作

上記リンク先の発泡どんぶりそのままだとデコレーションしづらい(油性ペン使えない)ので以下のアイテムを使うことにした。紙製かつ100円で環境にも優しいらしいので工作にはもってこい。

https://iyec.omni7.jp/detail/4973631533420

これだけだとマックイーンとの接着ができないので以下のアイテムを追加購入。

できたのがこちら

作ってみた感想

紙の土台だと工作もしやすいので良き。例えばサーボモータ乗っけて腕をつけるとかできそうかなと。

Open & Close detection module with microbit and magnetic switch / Microbitと磁気スイッチを使って開閉検知モジュールを作る

やりたいこと

  • マイクロビットにポン付できるお手軽なモジュールを作りたかった
  • 手始めに開閉検知機能を持ったモジュールを量産できたらと

使用機材

マイクロビット v2

https://www.switch-science.com/catalog/6600/

磁気スイッチ

ワニ口クリップ(赤黒黄それぞれ一つずつ)

抵抗器(1kΩ)

回路図

実際に作ったのがこちら

動作確認

プログラム

Micro Maqueen with remote operation / マイクロマックイーンをリモート操作する

初めに

マイクロマックイーンをリモート操作する拡張機能を作りました。まぁまぁ使えるもののしばらく間が経ってしまうとどうやってプログラムすればいいかわからなくなってしまうので覚書として残しておきます。

プログラムの手順

  • 新規プロジェクトをmakecode上で2つ作成する。一つはreceiver(受け手)、もう一つはsender(送り手)とする。
  • まずはreceiverを開いて 「高度なブロック」->「拡張機能」を開く
  • 以下のurlを検索窓に入力すると以下のような画面が表示されるのでクリックする。
    • https://github.com/kichinosukey/super-hand-power.git
  • 以下のように「HandPower」と「Maqueen」が拡張機能として追加されている。
  • 続いて以下のようにプログラムを追加する。
初めに無線通信のグループを定義(番号はreceiver-senderと共通であればなんでも良い)し、無線で受信した番号をreceiver関数の第一引数に設定する。第二引数はreceiver内部の処理が都度終了するたびに発生する待ち時間[ms]。第三引数はモーターの回転スピードを0-255で指定可能。
  • senderも同様に拡張機能を追加したら以下のようにプログラムを追加する。
無線グループはreceiverと同じく1、sender関数の第一引数はreceiverの第二引数と同様に処理の待ち時間となる。

動作風景

[技術ブログ]マイクロビットを使ったソーシャルディスタンスメーターの作り方

実現したいこと

  • 携帯端末で他者との距離を測定したい
  • 可能であれば2mまでの距離を測定したい

必要なもの

必要なもの、マイクロビットの駆動電源は別途用意が必要
  • マイクロビット
  • ワニグチクリップ×3
  • ジャンパーワイヤー(オスオス)×3
  • ブレッドボード
  • HC SR 04(赤外線センサ)
  • 電源(5V以上、赤外線センサ駆動用)

作成手順

手順① はじめに、ブレッドボードを電源に固定します

手順①ブレッドボードの固定

手順② 赤外線センサをブレッドボードに設置します。この時GND/エコー/トリガー/VCCはそれぞれ図のようになります。

手順②赤外線センサをブレッドボードに設置

手順③ ワニグチクリップとジャンパーワイヤーそれぞれを図のように接続します。ワイヤ間の配色はお任せしますが、混乱を避けるためにそれぞれの配色は統一することをおすすめします。

手順③ ワニグチクリップとジャンパーワイヤーを接続

手順④ ワニグチクリップをマイクロビットに接続します。

手順④ ワニグチクリップをマイクロビットに接続

手順⑤ マイクロビットに以下のプログラムをダウンロードします。

補足

コードの内部では、実測値をもとにした1次の線形回帰モデルをもとにセンサが持つ誤差を補正している。

1m程度であれば誤差5%以内で収まるあろうと思われる。

pxt-maqueenを日本語対応させるまで

Maqueenとは

Maqueen(マックイーン)はマイクロビットを使って制御できる教育向けのデバイスです。プログラムを作る際にはマイクロビットの開発環境であるMakeCodeエディターに拡張機能を追加する必要があります。

困った問題点

マックイーンは多機能で使いやすく遊びがいのあるとても良いデバイスなのでルークスのワークショップ アイテムとして使いたかったのですが、ブロックが日本語対応してないという問題があり導入に踏み切れていませんでした。

日本語対応してない状態

実際にワークショップにきた子に触らせてみたこともあるのですが、英語表記は扱いづらそうにしていたのでこの拡張機能を日本語化する方法について探る必要がありました。

原因は何なのか?

MakeCodeの拡張機能追加方法について調べてみた

まず初めに、MakeCodeエディターのドキュメントから拡張機能のローカライズに関する情報を見つけることができました。新規の拡張機能を作る場合にはNodeJSや別のコマンドラインツールのインストールが必要らしいのですが、既存の拡張機能についてはリポジトリをフォークして幾つかのソースに変更・追記するだけで良さそうなことがわかりました。

Maqueenのソースコード(Githubリポジトリ)を調べてみた

しかし、ドキュメントの内容に沿ってソースを改変したつもりが一向に翻訳が反映されませんでした。悩みながら解決策のヒントを探しにリポジトリの中を漁っているとこんなプルリクがありました。

見つけたプルリク

どうやらlocaleの表記をjpではなくjaにすべきだったようです。公式のドキュメントにはISOコードであることの旨が記載されていたのでjpで問題ないと思い込んでいたのが原因だったようです。実際に公式のドキュメントにもjpではなくjaと記載されてたことに後々気付きました。その他にも修正が必要だった点がありましたので、それらは以降で述べさせてもらいます。

対応方法のまとめ

結論だけ知りたい方はソースコードをご覧ください。

localeの表記

先ほども書いていたようにlocaleはjpではなくjaと記載しなければ翻訳が働かないようです。ISOコードとの整合は取れてないように思いますが、結果良ければ全てよしとしておきます。

辞書の追加

続いて、ソースコードの英語を日本語に翻訳するためのデータを各localeのディレクトリにjson形式で保存しておきます。こちらは公式ドキュメントと同様の方法で編集すれば問題ありませんでした。ひらがな表記もできることが確認できています。

ソースコードとpxt.jsonのバージョンを同期

ここも中々気付けなかったところで、どうやらソースのバージョンとpxt.jsonのバージョンは同期していないといけないようでした。例えばgitでタグをv0.1としていたならpxt.json内のversionもv0.1という具合にしないといけなかったようです。

変更内容をMasterブランチにマージ

最後は変更内容をマスターブランチにマージします。これは正しく検証ができてないのでマスターでなくてもデフォルトのブランチに変更内容が反映されていれば問題ないのかもしれません。

実際のプログラムがこちら

最後に

ルークス初の技術ブログ(?)はいかがだったでしょうか?普段プログラミングに触れてない人にとっては取っ付きにくい内容だったかもしれません。(編集者の文才がアレというのは棚に上げさせてもらいます)

ルークスでは今後も不定期でこのような技術ネタをブログにアップしていく予定です。皆さまの問題解決の一助になれれば幸いです。最後までお読みいただきありがとうございました!