当サイトは2020年小学生のプログラミング必修化に関して、関連する情報を纏めています。

Micro:bit(マイクロビット)で学ぶ 17

Micro:bit(マイクロビット)で学ぶ 17

 

前回の記事では、ブロックエディターの高度なブロックの関数、配列、文字列とmicropythonを対比しながら説明しました。今回は高度なブロックの画像と入出力端子パート1の紹介です。

当記事は、シリーズでマイクロビット(Micro:bit)のプログラミングについて紹介しています。初めての方はこちらをご覧ください。

2021年8月25日更新:Mu EditorがV1.1.0b5へバージョンアップされていますので、『Micro:bit(マイクロビット)で学ぶ 9』を参照して最新版を導入してみてください。ただし、当記事はV1.0.3を基にしていますので画面が異なっている場合があるかもしれませんが、プログラミング的には変わりはありません。

以下の説明とサンプルプログラムは、こちらのページの内容を私なりに、ブロックエディターと比較してmicropythonで記述する例を紹介しています。高度なブロックですので少し難しくなりますが、サンプルプログラムを参考にしてご自分でプログラムしてみてください。。

高度なブロックの画像について
 
ブロック micropython
1.画像をドットをずらして表示
microbit17-1
microbit17-2
shift_left(x)、shift_right(x)、shift_up(x)、shift_down(x)
ブロックでは、左へドットをずらすのみでしたが、命令では上下左右にずらすことができます。変数には、イメージを指定します。
以下は、ボートのイメージを左に1ドットずつずらしてLEDに表示するプログラム
2.イメージの作成
microbit17-3
Micro:bitの表面の25個の各LEDの明るさを0から9で指定することで、自分の好きなイメージを作成できます。
以下は、ボートのイメージをLEDに表示するプログラム
3.大きなイメージの作成
microbit17-4
2と同じ指定方法で、横長のイメージも作成できます。サンプルのように横11列でも作成できます。
以下は、ボートと波のイメージをLEDに表示するプログラム
4.矢印の画像、アイコンの画像
microbit17-5
microbit17-6
microbit17-7
Image.ARROW_N、Image.HEART
画像については、いろいろな向きの矢印、色々なアイコンが定義されています。定義されているイメージは、こちらを参考にしてください。イメージの名前と実際のイメージ対比表は準備中です。(pdfファイルを準備中です)
以下は、矢印をLEDに表示するプログラム
高度なブロックの入出力端子について
 
ブロック micropython
1.デジタルで読み取る
microbit17-8
pin0.read_digital()
端子がハイの場合は 1 を返し、ローの場合は 0 を返します。
以下は、pin0をデジタルで読み取り値をLEDに表示するプログラム(何も接続していない場合は0が表示されます。
2.デジタルで出力する
microbit17-9
 pin0.write_digital(値)
値が1の場合、端子をハイに設定し、0 の場合はローに設定します。
以下は、pin0を0.5秒毎にハイとローを出力するプログラム(以下のようにLEDを接続するとLEDが点滅します)
microbit17-10
3.アナログ値を読み取る
microbit17-11
pin0.read_analog()
端子の電圧を読み取り、0 (0V の意味)から 1023 (3.3V の意味)までの間の整数として返します。
以下は、pin0のアナログ値をLEDに表示するプログラム(片方の手でGNDを触り、もう片方の手でpin0を触ったり、離したりすると値が変化します)
4.アナログで出力する
microbit17-12
pin0.write_analog(値)
PWM 信号を端子に出力します。時間幅周期は供給電圧 value に比例します。 value には 0 (時間幅周期 0%)から 1023 (時間幅周期 100%)までの整数または浮動小数点数を指定できます。PWMについてはこちらを参照してください。出力電圧をパルスの幅で調整して0Vから3.3V出力できます。
以下は、2と同じ回路でLEDを徐々に明るくしたり暗くするプログラム
5.アナログ出力パルス幅設定
microbit17-13
pin0.set_analog_period_microseconds(値)
出力される PWM 信号の周期を値でマイクロ秒単位で設定します。有効な最小値は 256μs です。
以下は、2と同じ回路でLEDを点滅させるプログラム
6.数値をマップする
microbit17-14
該当する関数が見当たりませんが、面倒ですが以下の方法で代用可能と考えられます。ブロックと同じ例であれば、1023÷4で変換比を求めると255.75になります。それを使い、結果の値を求めます。
以下は、上記の例をプログラムして、LEDに変換前の値→変換結果を表示するプログラム(片方の手でGNDを触り、もう片方の手でpin0を触ったり、離したりすると値が変化します)

7.パルス
microbit17-15
microbit17-16
microbit17-17
現時点、実装されていないようです。継続調査します。
8.端子プルアップ/ダウン
microbit17-18
端子のプルモードは、端子が入力モードに変わると自動的に構成されるようです。read_analog:プル無し
read_digital:プルダウン
is_touched:プルアップ
set_pullで変更ができると記述がありますがMuの自動入力補助で表示されないので、現時点実装されているかどうか不明です。
プルアップ/ダウンについては、こちらの記事が参考になります。
9.音を鳴らす
microbit17-19
microbit17-20
こちらの記事を参照してください。

高度なブロックの画像、入出力端子のパート1についての紹介は以上です。次の記事では残りの高度なブロックの紹介をします。


最後まで記事をお読みいただきありがとうございます。
記事の改善に役立てたいと思いますので、よろしければアンケートにご協力ください。

記事内容についてお伺い


    良く解る解る解りにくい部分がある解りにくい 


     

    マイクロビットカテゴリの最新記事