micro:bitを紹介するためのページ

#このページの趣旨
micro:bitは，とても導入の敷居が低い割に，拡張性は非常に高い．とても有益なマイコンボードだと思うので，今後，私がいろいろな場所で，micro:bitを紹介すると思う．そのため，このページまとめて行こうと思います．当面，現在進行系で，書き足して行こうと思っています．

#履歴
- 2019.05.17 本校基礎研究のものづくりガイダンスで説明のため[micro:bitの特徴]を加筆
- 2019.04.30 ラズパイのBLE接続でIoTのエッジとしてmicro:bitを使う
- 2019.04.21 ２台のmicor:bitでデータを転送してPCでシリアル受信
- 2019.04.07 ４月からの講義用にシリアル通信のプログラムを追加
- 2019.03.27 ベトナム・ドンナイ省の職業訓練短大とラックホン大学でのレクチャーに使用（01-04を予定）

# micro:bitの特徴

- [micro:bit公式ページ](https://microbit.org/ja/guide/)
- ブロックプログラム、JavaScript、microPythonで開発可能
- 本体に多くのセンサーが内蔵されている
- Chromeブラウザを使うとデータの計測が容易
- Bluetoothを使って複数台の通信が容易
- 外部機器接続して、プログラムすることが容易
- スマートフォンでも開発できる


#サンプルプログラム
##01　文字列の表示
- お決まりの「Hello,world!」
- [公開コード01](https://makecode.microbit.org/_01Efi25mvhRJ)
- ブロックプログラムの説明をする
- プログラムの書き込み方の説明をする


##02　マークの表示
- ハートマークの点滅
- [公開コード02](https://makecode.microbit.org/_JUX9X7CUALhJ)


##03　デジタル入力（ボタン）
- Aボタンを押すとスマイルマーク,Bボタンを押すと消える．
- [公開コード03](https://makecode.microbit.org/_cbig4jgyJYkW)

##04　外部入力とグラフ表示とデータのダウンロード
- アナログセンサーP0のグラフ表示
- [公開コード04](https://makecode.microbit.org/_Az2D651z1a5b)
- 画面上に描画できることを説明
- CSVデータにできることを説明
- エクセルでグラフ化できることを紹介

##05　BLE無線通信
- 通信の実験（２つのmicro:bit）に同じプログラムを書く
- [公開コード05](https://makecode.microbit.org/_bPDAv31reVo1)
- Aボタンを押すと押した方が送信側となり　✓マーク表示．
- 他方は受信側となり　Aを表示．

##06 シリアル通信（microbitから送信）
- usb接続でChromeでのシリアルモニタやTeraTermでデータ取得
- [公開コード06](https://makecode.microbit.org/_H83aHrTgqXjP)
- 稼働時間、明るさ、温度を送信している。

##07 シリアル通信（microbitで受信）
- usb接続でPC側の[シリアル通信ソフト:シリアル通信テスタ Serister](https://www.vector.co.jp/soft/win95/hardware/se423507.html)から送信して、microbitのLEDに表示する
- [公開コード07](https://makecode.microbit.org/_WX9KHy27Ec4A)
- 改行コードはLFを付与。あるいはCRLFでも送信される。違いは１文字だけ送信した場合、LFなら１文字送信した文字の表示を保持。CRLFなら表示後文字は消える。
- ![Serister.PNG](https://qiita-image-store.s3.amazonaws.com/0/237044/29a4c648-720d-88ba-0cff-c0a599d4720a.png)
- 上の画面は、改行コードを探しているときのもの。CRLF受信で、それまでに入力していた文字列がmicrobitのLEDに表示された。
- [参考コード：送受信のコード](https://makecode.microbit.org/_YyURg62bPCwY)]

##08 メッセージ
- [公開コード08](https://makecode.microbit.org/_V6fKY9EdaR1k)
- [Macの端末で受信するための説明ページ](https://qiita.com/hideyuki/items/9258f33180d98ad0cb1e)

##09 ２台のマイクロビットの通信を使ったロボットの操縦系
- [専用ページ：micro:bit GAMEPAD ZIP64を使ったプログラム](https://qiita.com/tmdoi/items/3d971b8dd55b57226faf)

##10 IoT
- [詳細はこちら](https://qiita.com/tmdoi/items/cc7a278aedc994f40549)


##11 時間制御
- [時間制御をするための時計](https://makecode.microbit.org/_L2ycAMTxrA9W) 
- [時間を追って処理を進める例](https://makecode.microbit.org/_850hgFUgpTEq)
- エラー　文字列変数に対して計算するとエラーになる。
- ![スクリーンショット 2019-05-28 2.16.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/237044/a987debd-0124-28ec-816e-07a25f1a111c.png)
- ![スクリーンショット 2019-05-28 2.12.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/237044/160b40ea-d916-7148-5229-15850e3414c4.png)
- headerという文字列変数に１を足そうとしている。
- ![スクリーンショット 2019-05-28 2.13.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/237044/2ea51c5c-5fc7-eead-c105-14d846a43b78.png)
- ![スクリーンショット 2019-05-28 2.14.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/237044/b3f67e58-aecc-f48d-9117-6c9309ca9111.png)




#メンテナンス関係
##ファームウェアアップデート
- 購入後にファームウェアのアップデートを行うこと
- [ファームウェアアップデートの記事](https://sanuki-tech.net/micro-bit/appendix/update-firmware/)

##出荷時のプログラムを再現する
- C++で記述されたプログラムが書き込まれているためブロックエディタやPythonEditorでは見ることができない。以下のサイトでHEXファイルが配布されている。
- [first-experience-demo-program](https://support.microbit.org/support/solutions/articles/19000021613-first-experience-demo-program)

##スマホアプリでの開発
- [スマホのアプリでプログラム開発](https://qiita.com/toyowata/items/00c596696a734c2551da)

##Arduino IDEで開発

- [Arduino IDE でプログラミング](https://qiita.com/ht_deko/items/96c20b76b101c4065187)