microbit の覚え書き

初版作成  2017.3.29
最終更新  2018.08.22


◆◆ サイト ◆◆

玄関
http://microbit.org/ja/   日本語版

プログラミング環境は 2 つある。

(1) JavaScript ブロックエディタ
(2) python

(1) JavaScript Block Editor
https://makecode.microbit.org

(2) python
https://python.microbit.org/v/1

python リファレンス
https://microbit-micropython.readthedocs.io/ja/latest/


◆◆ プログラム実行の基本的な考え方 ◆◆

micro:bit は USB で接続すると 1 つのドライブとして認識される。
mbed と同じである。

web でコーディングをして hex ファイルを作る。
そのファイルをパソコンにダウンロードし、micro:bit の
ドライブにコピーする。

ただし、コピーしたファイルはブラックホールに吸い込まれたように、
見えなくなる。

◆◆ python を用いたコーディング ◆◆

Web でコーディングする。

   download (micro:bit にダウンロードする)
   save (ローカルな HDD にセーブする)
   load (ローカルな HDD から読み出す)

などのメニューがある。ローカルなエディタでコーディングして

   load ---> download

という方法もある。

コーディングした後、download でダウンロードした hex ファイルを
マイクロビットのドライブにコピーすると、プログラムがスタートする。

hex ファイルには python のインタープリタとソースファイルの
両方が入っているらしい。

micro:bit の中のインタープリタ上で、実行が開始される。
バグは実行されてから発覚する。エラー発生の場合、
5x5 の LED 上をエラーメッセージがスクロールするので、
非常に見づらい。エラーが発生した行番号を読み取る必要が
あるが、集中力が必要である。

◆◆ mu というエディタ ◆◆

https://codewith.mu/en/download

に mu というエディタがある。ローカル PC にインストールする。
micro:bit 用のエディタらしい。


◆◆ ピン配置 ◆◆

https://www.microbit.co.uk/device/pins

GND    Gnd
3V     3.3V
2      pin2  analog in
1      pin1  analog in
0      pin0  analog in

pin1, pin2 はデフォルトで 15k くらいの
プルダウン抵抗が入っているようだ (pin0 は未調査)。

read_digital()  を使うときは以下のように
配線すること。括弧内は暗黙の配線である。

3V --- SW --- pin1 (--- 15k --- Gnd )


◆◆ L チカ ◆◆

from microbit import *

while True:
    pin0.write_digital(1)
    sleep(500)
    pin0.write_digital(0)
    sleep(500)

◆◆ 入力 ◆◆

while True:
    a = pin2.read_analog()
    if a > 512:
        pin0.write_digital(0)
    else:
        pin0.write_digital(1)

while True:
    a = pin2.read_digital()
    if a == 1:
        pin0.write_digital(0)
    else:
        pin0.write_digital(1)


◆◆ 内蔵センサー ◆◆

タッチセンサー   button_a.is_pressed()
                 button_b.is_pressed()

加速度センサー   accerometer.get_x()

磁気センサー     angle = compass.heading()

温度センサー     a = temperature()

明るさセンサー   a = display.read_light_level()

while True:
    a = temperature()
    s = ":" + str(a)
    l = len(s)
    for i in range(0,l):
        display.show(s[i:i+1])
        sleep(1000)

◆◆ ピンの使い方 ◆◆

オブジェクト名  pin1, pin2, .....

入力

pin.read_digital()   0 or 1        プルダウン抵抗 (15k 程度) に注意!!!
pin.read_analog()    0 --- 1023

pin.is_touched()     boolian   人間の手が触れたか否か

出力

pin.write_ditigal(value)   0 or 1 or False or True
pin.write_analog(value)    0 --- 1023


# LED の使い方

display.clear()

display.show('A')

display.set_pixel(x,y,value)   value: 0--9
display.get_pixel(x,y)

display.show(image)

image = Image("90009:"
              "09090:"
              "00900:"
              "09090:"
              "90009")

image = Image.HEART

組み込み画像のリスト
https://microbit-micropython.readthedocs.io/ja/latest/microbit_micropython_api.html#images


◆◆ ディレイ ◆◆

sleep(2000)    [ms]


◆◆ JavaScript ブロックプログラミング環境 ◆◆

左側の Chrome ではエミュレータ画面が表示されない。
IE を使う。

プログラムはクラウドに保存される。

同じパソコンでも、ブラウザが変わると見えない。

そのときは、「ダウンロード」あるいは「フロッピーディスクアイコン」
でローカル HDD に hex ファイルを保存し、
「プロジェクト」---「ファイルを読み込む」を使う。

hex ファイルはバイナリのような拡張子だが、
コロンと16進数字を羅列したアスキーファイルである。
ソースコードを内包するようだ。