micro:bit で関数を使う — 小文字→大文字変換プログラムの設計と実装手順(1)
前回の記事では micro:bit のシリアル通信を使ってパソコンから文字列データを送受信する方法を解説しました。今回はその応用として、受信した文字列が小文字の場合に大文字へ変換して LED に表示するプログラムを作成します。実装を通じて MakeCode における関数の定義・呼び出しの基本を学びます。
実装する機能の仕様を整理する
パソコン → micro:bit に文字列データを送り、その文字列を LED に表示するプログラムは前回の記事で作成済みです。
今回は受信した文字列が小文字だった場合に大文字へ変換するプログラムを追加します。仕様はシンプルに以下の2点です。
- 受信した文字列が大文字の場合:そのまま LED に表示する
- 受信した文字列が小文字の場合:大文字に変換してから LED に表示する
機能ブロックに分けてプログラムを設計する
少し複雑なプログラムを書く際、いきなりプログラムを書き始めることはオススメしません。前回の記事で記載したように、どのような機能が必要かを整理し、機能ブロックに分けることをオススメします。今回の機能ブロックは以下の3つです。
- シリアルインタフェースで文字列を受信する
- 文字列が小文字なら大文字に変換する
- 文字列を LED に表示する
1. と 3. については前回までの記事で実装済みです。プログラムは以下のようなものでした。

MakeCode で関数を定義して呼び出す
2. の「小文字を大文字に変換する」処理は関数として実装します。MakeCode でパーツリストの「関数」から「関数を作成する」を選択してください。

関数名を「Convert_a_to_A」とし、文字列ボタンを1回押して引数を1つ追加した状態にしてください。

作成された関数ブロックは「最初だけ」「ずっと」とは異なり、別の場所から呼び出すことで実行されます。「関数」パーツリストに「呼び出し…」のパーツが追加されているので、以下のように配置してください。

ここで “abc" は関数を呼び出す際に渡す固定の文字列(引数)です。まず以下のプログラムで動作を確認してみましょう。「文字列を表示」の中身を “text" に置き換えることを忘れずに。"text" は関数ブロックの “text" と書かれた部分をクリックすることで選択できます。

LED には “abc" が繰り返し表示されます。さらに以下のように変更して2つの文字列を交互に表示させてみましょう。

“abc" と “def" が繰り返し表示されることを確認できます。同様の処理を関数にまとめることで、「ずっと」のブロック内にコードを重複して書かずに済み、誰が見てもわかりやすいプログラムになります。
関数と引数の基本概念
関数とは「ある一通りのプログラム処理をひとつにまとめ、名前を付けたもの」です。その名前を使って別の場所から呼び出すことができます。
今回の例で “abc" や “def" にあたるものを引数と呼びます。「呼び出し元から関数に渡すデータ(文字列・数値など)」と理解してください。関数の内部では、引数を使ってさまざまな処理を行うことができます。
次回はこの Convert_a_to_A 関数の中身(小文字を大文字に変換する条件分岐)を実装していきます。




ディスカッション
コメント一覧
まだ、コメントがありません