バグ集 / デバッグ方法【micro:bit】

はじめまして、ますみです！

[![自己紹介.png](https://www.umi-mori.jp/wp-content/uploads/2023/02/introduction_banner_2-2048x533.png)](https://bit.ly/banner_intro_masumi_creator_qiita)


#1. 大前提のデバッグ方法
思い通りに動かない時、その問題は「**<font color="red">Hardware</font>**」か「**<font color="blue">Software</font>**」のどちらかにある。
そして、その見分け方はシミュレータで正しく動いているかでチェックできる。

\>>シミュレータ（画面左側のmicro:bitのこと）
<img width="300" alt="シミュレータ.png" src="https://qiita-image-store.s3.amazonaws.com/0/240280/74b7bfb9-0cea-e35a-acfc-752dc606d012.png">


#2. チェックシート！【保存版】

<img width="1000" alt="DebugManual.png" src="https://qiita-image-store.s3.amazonaws.com/0/240280/c761cbc6-3dad-1b64-5ad9-25b7476a22ad.png">


#3. 具体的な対処法について
「2. チェックシート」において、導かれた **各Method** について詳しく説明は以下の通りである。

##- M.1 電池不足
症状：**\#音が鳴らない** 、**\#LEDがつかない / 起動しない** 、**\#接続機器がうまく動かない**
対処：電池を入れ替える / 電池を供給する機器の異常を確認する。

##- M.2 端子問題
症状：**\#音が鳴らない** 、**\#LEDがつかない / 起動しない** 、**\#接続機器がうまく動かない**
対処：入出力端子の接触を確認する。
備考："[Mi:power board](https://www.kitronik.co.uk/5610-mipower-board-for-the-bbc-microbit.html)" を使用している場合、ナットの緩みが原因の可能性あり。

##- M.3 回路本体の問題 / その他
症状：**\#音が鳴らない** 、**\#LEDがつかない / 起動しない** 、**\#接続機器がうまく動かない**
対処：回路を修理する / micro:bit本体を変える。
備考：接続機器がうまく動かない場合、接続機器や配線に問題がある可能性もあり。

##- M.4 重複ブロックの問題
症状：**\#エラーが出ていないのに、思い通り動かない** 、**\#「最初だけ」ブロックがグレーになる** 、**\#「入力」ブロックがグレーになる**
対処：重複している 「最初だけ」ブロック や 「入力」ブロックのプログラムを一つにまとめる。
備考：重複して同じブロックがあると、どちらから実行していいかわからなくなるため、無効化される（グレーになる）のだと考えられる。

\>>問題例
<img width="400" alt="問題.png" src="https://qiita-image-store.s3.amazonaws.com/0/240280/a9461db0-e668-1265-51fa-61a42f55c2f4.png">

\>>改善例
<img width="400" alt="改善.png" src="https://qiita-image-store.s3.amazonaws.com/0/240280/11a15351-0810-4732-7d8f-dff469cb652a.png">

##- M.5 エラー記号のバグ
症状：**\#「このプロジェクトを動かすことができませんでした。プログラムが正しいかどうかチェックしてください。」と表示される**
対処：エラー記号の付いているブロックを探して、デバッグする。
備考：変数の型の矛盾によるバグが多い。

\>>エラー記号
<img width="50" alt="エラー記号.png" src="https://qiita-image-store.s3.amazonaws.com/0/240280/6b0ade87-2ed4-8db4-42bd-6f9aa75dfa9a.png">

###バグ例①：真偽値（Bool）と整数値（Float）の矛盾
\>>問題例
<img width="300" alt="スイッチ.png" src="https://qiita-image-store.s3.amazonaws.com/0/240280/229f5cc4-c739-7734-be5b-4ed9f3d89a90.png">

\>>エラー名：【Type 'number' is not assignable to type 'boolean'】
<img width="300" alt="スイッチエラー.png" src="https://qiita-image-store.s3.amazonaws.com/0/240280/e3f4406f-67ef-567f-24fc-9519f249ec45.png">

###バグ例②：LED Spriteを型とする変数
\>>問題例
<img width="500" alt="スプライト.png" src="https://qiita-image-store.s3.amazonaws.com/0/240280/5ac2a5f5-b20a-2938-bdf2-663558f8af86.png">

\>>エラー名：【Type 'number' is not assignable to type 'LedSprite'】
<img width="400" alt="スプライトエラー.png" src="https://qiita-image-store.s3.amazonaws.com/0/240280/5a9ea144-c37d-2c92-13f8-cb14c8bb57d1.png">

##- M.6 エラーコードのバグ
症状：**\#エラーコードが表示される**
対処：エラー記号の付いているブロックを探して、デバッグする。
　　　もしも、エラー記号がない場合は、パソコンを変えてみる。
備考：ブロックとコードがうまく紐付いていないことが考えられる。

###バグ例③：初期化されていない変数

\>>問題例（エラー名：【r.isRef is not a function】）
<img width="400" alt="初期化.png" src="https://qiita-image-store.s3.amazonaws.com/0/240280/e54f0a4a-9ab9-0114-4c5c-6f30ec25fc42.png">

\>>改善例（対処：初期化されていない変数を探して、変数の初期化を行う。）
<img width="500" alt="初期化改善.png" src="https://qiita-image-store.s3.amazonaws.com/0/240280/243d0f79-4c91-55bd-cad1-0b1b036255e9.png">


#4. その他 - Tips
##・「変数の追加」のエラー
<img width="500" alt="変数の追加.png" src="https://qiita-image-store.s3.amazonaws.com/0/240280/587450c0-a382-165b-2398-a98c7e2b59ab.png">

エラー名：【A variable named '変数' already exists.】
和訳：'変数'という名前の変数はすでに存在します。
対処：別の変数名にする。

##・変数の削除の方法
方法：変数のブロックを出し、プルダウンボックスの中から「この変数「○○○」を削除」を選択。
<img width="300" alt="変数の削除.png" src="https://qiita-image-store.s3.amazonaws.com/0/240280/476935b8-d60c-c2cc-a9b2-d50ec92b1aaa.png">

# 最後に
最後まで読んでくださり、ありがとうございました！
いかがだったでしょうか？

この記事を通して、少しでもあなたの学びに役立てば幸いです！

:::note info
【仕事の相談はこちら】
お仕事の相談のある方は、下記のフォームよりお気軽にご相談ください。

[問い合わせフォームはこちら](https://forms.gle/G5g1SJ7BBZw7oXYA7)

もしもメールでの問い合わせの方がよろしければ、下記のメールアドレスへご連絡ください。

info*galirage.com（*を@に変えてご送付ください）

🎁 「生成AI活用の無料相談券」もしくは「生成AIの社内ガイドライン（無料PDF）」を『公式LINE』で配布中 🎁
『生成AIを業務に活用したいけど、どうしたらいいかわからない』といった声を多くいただきます。

Galirageでは公式LINEにて、チャットやオンライン会議で「完全個別の生成AI活用無料相談会」を実施しております！
（期間限定で実施しているため、ご興味ある方はお早めに以下のLINE公式アカウントをご登録ください^^）
https://lin.ee/rvz6lMN

※ 予告なく、キャンペーンを終了する可能性がございますが、ご了承ください。

【業務内容】
具体的には、以下のお仕事を中心に受け付けております！（[詳しくはこちら](https://galirage.notion.site/Galirage-AI-c2f3945fafb0433d8d2fd03e56927fd8)）
1. 受託開発（例：生成AIを使った社内システムの開発）
2. コンサルティング（例：技術戦略のアドバイス）
3. 講演（例：社内研修、イベント登壇）

※ 特に「生成AIを使ったシステム開発のご依頼」が多く、ご好評いただいております。

【これまでの相談事例】
以下のようなご相談が多くあります。

🔑 機密情報を漏洩させないための、生成AIのシステム構築をお願いしたい。
🤖 自社データを用いたFAQチャットボットの作り方を知りたい。
💡 ChatGPTを、自分たちの事業にどのように活かせるか、アドバイスやアイデアが欲しい。
:::
# おまけ
エンジニアの仲間（データサイエンティストも含む）を増やしたいため、公式LINEを始めました🎉

「**一緒に仕事をしてくれる方**」「**友だちとして仲良くしてくれる方**」は、友だち追加をしていただけますと嬉しいです！（仲良くなった人たちを集めて、「ボードゲーム会」や「ハッカソン」や「もくもく会」もやりたいなと考えています😆）

とはいえ、みなさんにもメリットがないと申し訳ないので、特典を用意しました！

友だち追加後に、アンケートに回答してくれた方へ「**エンジニア図鑑（職種20選）**」のPDFをお送りします◎

https://lin.ee/hFUN4TL

[![](https://www.umi-mori.jp/wp-content/uploads/2023/10/line_banner_v2.png)](https://lin.ee/hFUN4TL)
# 参考文献

http://microbit.org/ja/guide/

https://www.kitronik.co.uk/5610-mipower-board-for-the-bbc-microbit.html