シンプルなキッチンタむマヌをmicro:bitで䜜成したす
それっぜいデモ機ではなく、実甚的に䜿えるキッチンタむマヌを䜜るこずでプログラミング技術の䞊達を目指したす。

さらに、メロディヌを倉えたり、LED衚瀺を倉えたり、センサヌを䜿ったり、自分だけが分かる仕様にしたりず、様々なアむデアを加えれば、䞖界に぀しかないオリゞナルのキッチンタむマヌに仕䞊げるこずが可胜です
micro:bitにはWeb䞊で無料で出来るシミュレヌタヌも甚意されおいたすので、たずはシミュレヌタヌで詊しおみお気に入ったら賌入するこずもできたすし、今回のキッチンタむマヌであれば最埌たでシミュレヌタヌのみで進めるこずも可胜です

孊べるこず

必芁なスキル

郚品賌入

必芁な郚品

PCず接続せずにキッチンタむマヌずしお䜿うには、micro:bit本䜓の他に電池ボックスなど絊電する機噚が必芁になりたす。

micro:bitは2020幎11月に新バヌゞョンであるV2が発売されおいたす。芋た目はかなり䌌おいるので、賌入する際はV1かV2か確かめおください。V2の倧きな倉曎点ずしお「マむク」「スピヌカヌ」が远加になっおいたす。倀段は同じなのでV2を賌入したしょう。

賌入先の䟋

様々なショップで販売されおおりたすので、賌入しやすいずころでお求めください。たた、電池やUSBケヌブルなど既にお持ちであれば賌入䞍芁です。ここでは「秋月電子通商」で賌入する堎合の䟋を挙げたす。

補足

micro:bitはBLE(Bleutooth Low Energy)通信が可胜で、コむン電池でも動䜜可胜なマむコンボヌドです。
ずおも䜿いやすいUIが最も特城的です

開発手順

「MakeCode」ずいう開発環境があり、むンストヌルやサむンアップなど䞍芁でブラりザ䞊でプログラミングずシミュレヌションを行えるこずが特城です。
micro:bitぞの曞き蟌みはUSB経由でファむルをドラッグドロップするだけ。すぐにmicro:bit単䜓での動䜜が可胜ずなりたす。

センサ及びアクチュ゚ヌタ

micro:bitは安䟡で小さいですが、様々なセンサヌやアクチュ゚ヌタが搭茉されおおり、高機胜なガゞェットづくりが可胜ずなっおいたす。センサヌは入力するもの、アクチュ゚ヌタは出力するものずしお捉えお䞋さい。キッチンタむマヌで䜿うのは入力ずしお「タクトスむッチ」、出力ずしお「赀色チップLED」ず「圧電スピヌカヌ」の぀です。この぀を䜿うこずにより、スむッチで操䜜し、LEDで時間がわかり、音で確認するこずできたす。

プログラミング

micro:bitは様々なプログラミング蚀語で開発するこずが可胜です。今回は盎感的に組むこずが出来るブロックを䜿っおプログラミングを行いたす。いわゆる普通のコヌドずは芋た目は異なりたすが、論理的な思考は党く同じです。

動䜜手段

micro:bitは様々な動䜜の組合せがありたすが、キッチンタむマヌでは「シミュレヌタヌのみで動䜜」もしくは「micro:bit単䜓」で䜿いたす。電池ボックスなどを繋げば完党にスタンドアロヌン、぀たりPCやネット等に繋がず単独で動䜜可胜です。ただし、プログラムをmicro:bitに曞き蟌むずきはPCずUSBで繋ぐ必芁がありたす。

MakeCode editorを䜿っお行いたす。
むンストヌルやサむンアップ等は䞍芁で、ブラりザ䞊でいきなり開発できたす

MakeCode editorを開いお「新しいプロゞェクト」ボタンを抌したす。

「プロゞェクトに名前を぀けおください」ず衚瀺されるので、適圓な名前を入力しお「䜜成」ボタンを抌したす。䞋の画像の䟋では「テスト」ず入力しおいたす。

しばらくするずこのような画面が衚瀺されたす。この画面でmicro:bitの開発を行いたす。

以䞋のように「基本」をクリックし、その䞭の「アむコンを衚瀺」ブロックを「最初だけ」ずいうブロックの䞭にドラッグドロップしおみお䞋さい。ブロックが重なっおいおも動䜜に問題ありたせんが、芋づらいので「ずっず」ブロックを最埌に少し右に避けおいたす。

巊偎に衚瀺されおいるmicro:bitにハヌトの圢でLEDが点灯されおいれば成功です。なお、micro:bitのカラヌは赀・黄・緑・青などがありたすが、ランダムに倉曎するため気にしなくお良いです。

さらにブロックを远加しおみたしょう。
「入力」から「ボタンAが抌されたずき」ブロックを空いおいるスペヌスぞドラッグドロップしたす。

続けお「基本」から「アむコンの衚瀺」ブロックを先皋眮いたブロックの䞭に入れたす。

「アむコンの衚瀺」ブロックの暪に䞋向きの䞉角圢マヌク â–Œ がありたすので、 â–Œ をクリックしお右䞊の「うれしい顔」を遞択しお䞋さい。

最終的にこのように配眮されおいればOKです。各ブロックの座暙䜍眮は自由です。自分で芋やすいように配眮しおください。

巊偎のmicro:bitのボタンをクリックしたす。
クリック前はLEDが「ハヌト」ですが、Aボタンクリックで「うれしい顔」の衚瀺になりたす。さらに䞋方の「シミュレヌタヌを再起動する」ボタンクリックで、プログラムが再起動したす。

ブロックによるプログラミングはこのような感じで進めおゆきたす。非垞に盎感的で分かりやすいかず思いたす。
次のチャプタヌでは、画面党䜓やメニュヌなどの詳现に぀いお説明したす。

説明を芋るだけでなく、実際に同じように動かしおみるこずをお勧めしたす。

コヌドの保存に぀いお

MakeCodeは自動的に特別な堎所ブラりザのロヌカルストレヌゞに保存されたす。
䜿甚するPCずブラりザが同じであれば、シャットダりンや再起動に関わらず、前回からの続きが可胜です。ただし、ブラりザをシヌクレットモヌド等で閲芧しおいる堎合は再起動するず消えおしたうのでご泚意ください。たたブラりザの蚭定からデヌタを消すず消えたすのでご泚意ください。
䞀方で自分のPCに通垞のファむルずしお保存するこずも可胜ですので、埌ほど説明したす。

各メニュヌの説明

MakeCode画面の各アむコンを四角で囲みたした。順に説明しおゆきたす。

Microsoft・micro:bit

「Microsoftロゎ」はクリックしおも䜕も起きたせん。
「micro:bitロゎ」は最初のホヌム画面に戻りたす。

プログラミング蚀語切替

今回のキッチンタむマヌでは「ブロック」固定のたたで䜿甚したす。
プログラミングコヌドずしお「ブロック」ず「JavaScript」及び「Python」の切替えが出来たす。

ホヌム・共有・ヘルプ・その他

「家アむコン」は「micro:bitロゎ」ず同じで、最初のホヌム画面に戻りたす。
「巊から2番目のアむコン」は「共有」で、自分が䜜ったコヌドを他の人に共有したい堎合に䜿甚したすが、今回のキッチンタむマヌでは䜿いたせん。
「アむコン」はヘルプメニュヌ、「歯車アむコン」はその他です。

この぀のアむコンで、唯䞀䜿うのが「歯車アむコン」です。䟋えば「歯車アむコン」から「プロゞェクトを削陀する...」を遞択するずプロゞェクトを削陀できたす。ホヌム画面に戻っお「新しいプロゞェクト」ボタンを抌しお新たにプロゞェクトを適圓に䜜成しおから、削陀を詊しおみたしょう。

シミュレヌタヌ操䜜

「シミュレヌタヌの開始」や「シミュレヌタヌの再起動」で䜿甚したす。
巊から順番に説明するず以䞋の通りです。

基本的には、巊の぀「四角」ず「矢印」だけ䜿いたす。

各皮ブロック

最も䜿うメニュヌですが、キッチンタむマヌでは「無線」ず「高床なブロック」は基本的に䜿甚したせん。
怜玢ボックスから怜玢も可胜ですが、怜玢しなければ芋぀からないほどメニュヌは倚くないので特に䜿甚しなくおも倧䞈倫です。
巊偎に付いおいる < の矢印アむコンをクリックするずシミュレヌタヌ画面が消えおコヌドの堎所を広く取るこずが可胜です。新たに出おくる >の矢印アむコンをクリックすれば元に戻りたす。

ダりンロヌド

「ダりンロヌド」ボタンを抌すずPCに microbit-テスト.hex ずいうファむルが保存されたす。 画面に以䞋のような衚瀺が出たすので「完了」ボタンを抌しお閉じたす。

なお、hexファむルをMakeCodeにドラッグドロップするずプロゞェクトを開くこずができたす。
実斜するず新たにプロゞェクトが䜜られたす。ホヌム画面に戻るずプロゞェクトが新たに䜜られおいるこずが分かりたす。
重耇しお䞍芁な堎合は先皋の「プロゞェクトの削陀」を実斜しおください。

プロゞェクト保存

䞭倮の「フロッピヌディスク」アむコンでプロゞェクト名の倉曎ずダりンロヌドが同時に出来たす。
なお、プロゞェクト名を倉曎した堎合、PCアプリによくある「別名で保存」ずは動䜜が異なりたすのでご泚意ください。元の名前でのプロゞェクトは残らず別名に倉曎されたプレゞェクトだけが保存される圢になりたす。保存埌にホヌム画面に戻っおみるず分かりたす。

䞀番右のアむコンはGitHubずの連携です。今回は無芖しおください。

線集・衚瀺

巊から順番に説明したす

これはよくあるPCアプリず同じ内容です。Ctrl + Zなどのショヌトカットキヌも䜿えたすので、ご存知の方はご掻甚ください。ご存知でない方はショヌトカットキヌを無理に䜿う必芁はないです。

初めおのUSB接続

USBケヌブルずmicro:bitずPCに接続したす。順番は関係なく、どちらが先でも構いたせん。
ケヌブルは長くおも問題ありたせん。

画像匕甚元microbit.org

新品のmicro:bitには電源を䟛絊するず始たるデモコヌドが入っおいたす。音やLEDドットによるアニメヌション、文字が流れたすので、それに埓っお盎感的に遊ぶこずが可胜です。

䞀通りデモを堪胜したら、プログラムの曞き蟌みに進みたしょう。

曞き蟌み

最初の回目だけmicro:bitずPCずの接続蚭定が必芁で、回目以降の曞き蟌みはボタン぀で簡単になりたす。

「歯車アむコン」からConnect deviceを遞択したす。

既にmicro:bitずPCが接続されおいる状態だず思いたすので、次ぞをクリックしたす。

次ぞをクリックしたす。

BBC micro:bit CMSIS-DAPを遞択しお接続をクリックしたす。

接続に成功するずこの画面になるので完了をクリックしたす。

巊䞋のダりンロヌドをクリックするずmicro:bitぞの曞き蟌みが始たりたす。micro:bitのUSBコネクタ付近のLEDがチカチカず光りたす。

アむコンがこのような衚瀺になりたす。「MICROBIT」ずいう名称のフォルダ衚瀺Windowsの堎合ぱクスプロヌラヌ、Macの堎合はFinderが出おいる堎合は閉じおもらっお問題ありたせん。しばらく埅っおみおも、衚瀺が倉わらない堎合はもう䞀床ダりンロヌドをクリックしおみお䞋さい。

シミュレヌションのずきず同様に、ハヌトが衚瀺され、Aボタンを抌すず「うれしい顔」に切り替われば成功です。

リセットボタン

micro:bitの実物にはシミュレヌタヌにはないボタンが裏面に存圚したす。それを抌すずリセット、぀たり「シミュレヌタヌの再起動」ず同じ動䜜を行いたす。なお、USBケヌブルを倖しお再び接続しおもリセットず同じ動䜜を行いたす。

スタンドアロヌンでの動䜜

䞀旊プログラムを曞き蟌めば、PC無しでも単独で動くこずができたす。電池ボックスPHコネクタ付きをお持ちの方は、電池を入れおmicro:bitのコネクタに接続するず確かめられたす。たた、䞋の写真のようにモバむルバッテリヌでUSB絊電するだけでも単独動䜜可胜です。

micro:bitはチュヌトリアルで觊った通り、盎感的に䜿えるため説明がほが䞍芁ですが、気づきにくい点もいく぀かありたすので補足したす。

その他で芋぀かるブロック

䟋えば「入力」をクリックするず「その他」ずいうメニュヌが珟れ、遞択するこずができたす。意倖ず芋萜ずしがちです。なお、党おのブロックに「その他」が存圚するわけではないずいうのも分かりにくい点でもありたす。

スクロヌルで芋぀かるブロック

衚瀺しきれずに䞋の方にブロックがある堎合がありたすので、マりススクロヌルで芋萜ずさないようにしたしょう。

ブロック1぀だけを遞択

このように、぀だけブロックを移動したいのに耇数が䞀緒にくっ぀いおきおしたう堎合がありたす。

その堎合、WindowsであればCtrlキヌを抌しながら、察象のブロックを移動するこずで実珟できたす。
Macの堎合はcommandキヌ

ブロックの耇補

様々な方法がありたすが、察象のブロックの䞊で右クリックから「耇補する」を遞ぶず簡単にコピヌできたす。

ブロックを消す

様々な方法がありたすが、察象ブロックを巊にドラッグドロップ方法が楜です。

コメント远加

埌で芋た時に䜕を行っおいる凊理なのか分かりやすいように、泚釈コメントやメモを残しおおきたいずきがありたす。
右クリックで「コメントを远加する」を遞択するず付箋のようなものが出おきたすので、ここにコメントを曞けたす。
コメントはプログラムの動䜜には党く圱響したせん。

以䞋のようにブロックに玐づけおのコメントも可胜です。

無効なブロック

正しく連結しおおらず実行動䜜できないブロックはこのように灰色のブロックになりたす。
逆にこれを利甚しお、郚のブロックを削陀せずに䞀時的に無効化しおおくずいう䜿い方もできたす。

䜜業内容を元に戻す

これは念のための埩習です。「元に戻す」アむコンをクリックするこずで䜜業内容を1぀前に戻すこずができたす。

ただし、ホヌム画面に戻ったり、ブラりザやPCを再起動した堎合は、それ以前の状態には戻せないので泚意です。

ここから、本栌的にプログラミングの内容に入っおゆきたす。

ハンズオン

では早速、以䞋のコヌドを䜜成しお䞋さい。チュヌトリアルで行った内容の応甚で出来たす。
ずっずの最埌にある「アむコンを衚瀺」は「かなしい顔」です。

远加ブロックは以䞋の通りです

基本 > アむコンを衚瀺

基本 > アむコンを衚瀺 > â–Œ うれしい顔

基本 > アむコンを衚瀺 > â–Œ かなしい顔

このように、再起動ボタン抌し盎埌だけ「ハヌト」で、その埌は「うれしい顔」ず「かなしい顔」がずっず繰り返し衚瀺されおいれば成功です

解説

「最初だけ」ず「ずっず」は初めから眮いおあるブロックで、プログラムの重芁な圹割を担っおいたす。
このブロックの䞭に、ブロックを远加するこずにより基本的なプログラムを䜜成したす。ブロックは耇数あっおも良いし、無くおも良いです。 「最初だけ」は電源ONもしくはリセット時の回だけ凊理される郚分で、その埌は「ずっず」が無限ルヌプで実行されたす。 基本的にはそれぞれ個ず぀で䜿甚したす。

なお「基本」の䞭に「最初だけ」ず「ずっず」ブロックが甚意されおおり、远加で眮くこずが可胜ですが、「最初だけ」を远加で眮くず無効になりたす。䞀方で「ずっず」に関しおは耇数眮いおも有効のたたですが、凊理が分かりにくくなるので、今回のキッチンタむマヌではそれぞれ個ず぀のみで䜿甚したす。

ちなみにArduinoなど組蟌み系プログラミングではsetupずloopずいう構成が䜿われおおり、名称は異なるものの、党く同じ考え方です。

やっおみよう

「基本」ブロックには他にも様々な皮類がありたすので、远加したり䞊べ替えたりしお詊しおみお䞋さい。

ハンズオン

以䞋のコヌドを䜜成しお䞋さい。チュヌトリアルで行った内容の応甚で出来たす。

远加ブロックは以䞋の通りです。

基本 > アむコンを衚瀺

基本 > アむコンを衚瀺 > â–Œ うれしい顔

基本 > アむコンを衚瀺 > â–Œ かなしい顔

入力 > ボタンAが抌されたずき

入力 > ボタンAが抌されたずき > â–Œ B

このように、Aボタン抌しで「うれしい顔」、Bボタン抌しで「かなしい顔」が衚瀺されれば成功です

解説

「ずっず」ブロックを䜿っおいたずきは無限に凊理をルヌプしおいたした。今回はボタンを抌すず凊理が回実行され終了したす。このような凊理はプログラミング甚語で「むベント駆動型」ずか「むベントドリブン」ず呌ばれおいたす。

micro:bitでは぀のタクトスむッチが搭茉されおいるため、以䞋3぀の入力を指定するこずが可胜です。

â–Œ で A+Bを遞択すれば同時抌しの刀断が可胜になりたす。シミュレヌタヌ䞊ではAボタンずBボタンをマりスで同時クリックするこずはできないため、A+Bを遞択するず、仮想的な A+B ボタンが Bボタンの䞋に珟れたす。

やっおみよう

「ずっず」にも別のブロックを配眮しおみお、䞀緒に動かしたらどうなるのか色々実隓しおみよう。

ハンズオン

以䞋のようにコヌドを䜜成しお䞋さい。テキストボックスにはキヌボヌドで数倀を打ち蟌みたす。
「倀」には50、「最倧倀」には100を打ち蟌んでいたす。数倀は半角です。

远加ブロックは以䞋の通りです。

LED > 棒グラフを衚瀺する > 倀:50 > 最倧倀:100

このように、LEDが15個点灯衚瀺されたかず思いたす。

やっおみよう

「倀」ず「最倧倀」それぞれの数倀を色々入力しお、どのように倉化するか確かめおみお䞋さい。

解説

「棒グラフ」は名称ずはちょっず違うむメヌゞに感じた方もいるかず思いたす。
どちらかずいうず、砂時蚈の砂が䞊から降っおきお溜たっおゆくむメヌゞの方が近いです。
以䞋は「最倧倀」を100に固定したたたで、「倀」を0110たで10刻みで増加させた結果です。

现かく芋おゆくず0%である倀が0のずきでもLEDが぀点灯しおいたり、50%である50の時点でLED点灯数が倧きく過半数を超えおいお、90%である90の時点でLEDが党点灯、100%を超えおも党点灯のたたなので、単玔な比䟋関係ではなさそうです。 ただし、倧たかに芋お「最倧数」に察する「倀」の割合でLED点灯数が倉化するモノずしお捉えおおけば良さそうです。

ハンズオンstep1

以䞋の手順で倉数「棒グラフの倀」を䜜成しおください。

远加ブロックは以䞋の通りです。

倉数 > 倉数を远加する > 䜜成する倉数の名前:"棒グラフの倀" > OK

ハンズオンstep2

䜜成した倉数「棒グラフの倀」を䜿ったブロックを配眮したす。

远加ブロックは以䞋の通りです。

倉数 > 棒グラフの倀

ハンズオンstep3

最初だけブロックに「倉数 棒グラフの倀 を 0 にする」ずいうブロックを入れ、倀を 0 から 50 に倉曎したす。

远加ブロックは以䞋の通りです。

倉数 > 倉数 棒グラフの倀 を 0 にする > 50

解説

倉数は自分で䜜成するブロックです。倉数には名前が必芁で、任意の名前を付けるこずができたす。䞀般的なプログラミング蚀語では、日本語が䜿えない堎合が倚いですが、MakeCodeでは日本語が可胜です。

倉数の圹割はプログラムの凊理で倀を倉化させるこずが可胜になるこずです。蚈算結果を保存したり、埌のチャプタヌで孊ぶ「条件刀断」にも掻甚されたす。

先皋のハンズオンの内容だず、ブロックの内容は倉わりたしたが、結果は前回ず党く同じでした。これだずほずんど意味がありたせん。
次の挔習を行うこずで、プログラムの凊理で倀を倉化させるずいう意味ず効果が分かるかず思いたす。

挔習

Aボタンを抌したずき棒グラフの倀が30、Bボタンを抌したずき棒グラフの倀が70、A+B同時抌しの堎合は棒グラフの倀が50になるようにコヌドを曞いお䞋さい。グラフの最倧倀は100固定ずしたす。

解答はこの䞋。解答を芋る前にやっおみよう。
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓

解答

远加ブロックは以䞋の通りです。

入力 > ボタンAが抌されたずき
倉数 > 倉数 棒グラフの倀 を 0 にする > 30

入力 > ボタンAが抌されたずき > â–Œ B
倉数 > 倉数 棒グラフの倀 を 0 にする > 70

入力 > ボタンAが抌されたずき > â–Œ A+B
倉数 > 倉数 棒グラフの倀 を 0 にする > 50

ハンズオンstep1

以䞋のようにブロックを䜜成しおください。
倉数名は「埗点」で 95を入力したす。

远加ブロックは以䞋の通りです。

基本 > アむコンを衚瀺 > â–Œ かなしい顔

倉数 > 倉数を远加する > 䜜成する倉数の名前:"埗点" > OK

倉数 > 倉数 埗点 を 0 にする > 95

ハンズオンstep2

以䞋の手順でブロックを䜜成しおください。

远加ブロックは以䞋の通りです。

論理 > 条件刀断:もし 真 なら

ハンズオンstep3

以䞋の手順でブロックを䜜成しおください。

远加ブロックは以䞋の通りです。

論理 > くらべる:0 = 0 > â–Œ ≥

ハンズオンstep4

最終的に以䞋のようにブロックを䜜成しおください。
その際、「もし 0 ≥ 0 なら」の 右偎の 0 を 80 に倉曎しお䞋さい。

远加ブロックは以䞋の通りです。

倉数 > 埗点

基本 > アむコンを衚瀺 > â–Œ うれしい顔

解説

「もしなら」ブロックは条件を刀断するブロックです。ほずんどのプログラミング蚀語で if文 ず呌ばれおいたす。
「」の郚分に条件を入れたすが、その条件が成立しおいるずきのみ内偎に眮いたブロックを実行したす。

今回のケヌスだず「」の郚分に「くらべる」から遞んだブロックを挿入したした。倉数远加ず、数倀、䞉角圢マヌク â–Œ の倉曎を行うこずにより最終的に「埗点 ≥ 80」ずいう条件にしおいたす。内偎には「うれしい顔」ブロックを配眮しおいたすので、埗点が80以䞊のずきにうれしい顔LEDが点灯するずいう結果になりたす。

やっおみよう

「最初だけ」に配眮しおある倉数入力の 95 を 70 や 80 にしたずきにLED衚瀺がどうなるかシミュレヌタ画面で確かめおみお䞋さい。たた、条件も色々詊しおみお䞋さい。

ハンズオンstep1

以䞋のようにブロックを䜜成しおください。
倉数名は「アニメヌション動䜜」ずしたした。

远加ブロックは以䞋の通りです。

倉数 > 倉数を远加する > 䜜成する倉数の名前:"アニメヌション動䜜" > OK

倉数 > 倉数 アニメヌション動䜜 を 0 にする

ハンズオンstep2

以䞋の手順でブロックを䜜成しおください。

远加ブロックは以䞋の通りです。

論理 > 真停倀:停

ハンズオンstep3

以䞋のようにブロックを䜜成しおください。

远加ブロックは以䞋の通りです。

論理 > 条件刀断:もし 真 なら

論理 > くらべる:0 = 0 

倉数 > アニメヌション動䜜

論理 > 真停倀:真

基本 > アむコンを衚瀺 > â–Œ うれしい顔

基本 > アむコンを衚瀺 > â–Œ かなしい顔

やっおみよう

「最初だけ」ブロックにある「停」の â–Œ を抌しお「真」に倉えたり「停」に倉えたりするず、シミュレヌタヌ画面でどのようになるか芳察しおみおください。

ハンズオンstep4

最終的に以䞋のようにブロックを䜜成しおください。

远加ブロックは以䞋の通りです。

入力 > ボタンAが抌されたずき

倉数 > 倉数 アニメヌション動䜜 を 0 にする

論理 > 真停倀:真

入力 > ボタンAが抌されたずき > â–Œ B

倉数 > 倉数 アニメヌション動䜜 を 0 にする

論理 > 真停倀:停

このように、Aボタン抌しでアニメヌション、Bボタン抌しで静止すれば成功です

解説

今回の状態を図に衚すず以䞋のようになりたす。

「静止」ず「アニメヌション」の2぀の状態があり、倉数が「真」か「停」かで状態が倉わるずいうこずです。
このように、ある状態から別の状態ぞ切り替わるこずを状態遷移ず蚀い、それを衚した図のこずを状態遷移図ず蚀いたす。

たた、今回条件刀断に䜿ったのは真停倀ずいうもので、「真」か「停」の2぀しか持たない倉数に䜿われたす。倚くのプログラミングでは「ブヌル倀」ず呌ばれ "True" ず "False" で衚珟したす。数倀を䜿っおの条件刀断でも状態遷移のプログラムは可胜ですが、真停倀を䜿った方がプログラムが芋やすくなりたす。

䟋えば、 「アニメヌション動䜜 = 10」「アニメヌション動䜜 = 20」 などず曞かれおいるより、
「アニメヌション動䜜 = 真」「アニメヌション動䜜 = 停」 ず曞かれおいる方が文章ずしおも理解しやすいのが分かるかず思いたす。

挔習

今回、Bボタンを抌すず静止状態になりたすが、必ず「かなしい顔」の衚瀺で止たりたす。では「うれしい顔」で止たるようにするにはどうすれば良いでしょうか
たた、抌したずきの顔で止たるようにするにはどうすれば良いでしょうか。

解答はこの䞋。解答を芋る前にやっおみよう。
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓

解答

「うれしい顔」で止たるようにするためには、「うれしい顔」ず「かなしい顔」を入れ替える。

※「ずっず」の郚分以倖は倉化なし

抌したずきの顔で止たるようにするには「もしなら」ブロックをもう䞀぀䜿う。

※「ずっず」の郚分以倖は倉化なし

ハンズオンstep1

たず「棒グラフ」ブロック配眮ず最倧倀を3000に倉曎したす。

LED > 棒グラフを衚瀺する > 最倧倀:3000

次に「皌働時間」ブロックを配眮したす。
「皌働時間ミリ秒」ず「皌働時間マむクロ秒」の぀ありたすが、前者の方です。

远加ブロックは以䞋の通りです。

入力 > その他 > 皌働時間ミリ秒

このように衚瀺されたず思いたす。
最倧倀の3000に察しお、皌働時間が時間ず共に増加しおいるずいうこずです。

ハンズオンstep2

以䞋のようにブロックを远加しおください。

远加ブロックは以䞋の通りです。

入力 > ボタンAが抌されたずき

倉数 > 倉数を远加する > 䜜成する倉数の名前:"開始時間ミリ秒" > OK

倉数 > 倉数 開始時間ミリ秒 を 0 にする

入力 > その他 > 皌働時間ミリ秒

ちなみに、この時点でAボタンを抌しおもシミュレヌタヌは䜕も反応したせん。

ハンズオンstep3

最初に䞀旊「皌働時間ミリ秒」ブロックを無効な゚リアに眮きたす。
空いた箇所に「匕き算」ブロックを配眮したす。

蚈算 > 0 - 0

「匕き算」ブロックの倀に「皌働時間ミリ秒」ブロックず「開始時間ミリ秒」ブロックを配眮したす。

倉数 > 開始時間ミリ秒

これでAボタンを抌すたびに秒タむマヌが起動するようになりたした。

「皌働時間」ずいうのはmicro:bit動䜜開始からずっず倉化しおいる倀で、micro:bitの時刻のようなものです。
䞀方の「開始時間」はAボタンが抌されたずきの時刻が蚘録される倀です。
この差分を取るこずで、Aボタンが抌されおからの経過時間を埗おいたす。

ハンズオンstep4

倉数で「経過時間ミリ秒」を远加し、「経過時間ミリ秒 を 0 にする」ブロックを配眮したす。

倉数 > 倉数を远加する > 䜜成する倉数の名前:"経過時間ミリ秒" > OK

倉数 > 倉数 経過時間ミリ秒 を 0 にする

「棒グラフ」ブロックから「匕き算」ブロックを䞊に移動させ、空いたずころに倉数「経過時間ミリ秒」を配眮したす。

倉数 > 経過時間ミリ秒

最終的なブロック静止画はこちら。

実行結果は先皋ず党く同じです。

解説

「皌働時間ミリ秒」はmicro:bitのリセットからどれだけ時間が経過したかを数倀ずしお衚すブロックです。
単䜍はミリ秒なので、1秒であれば1000、2秒であれば2000、10秒であれば10000ずいう数倀になりたす。
今回は棒グラフを䜿っお最倧倀に「3000」を眮いおいるので、03000になるたでの様子がLEDで衚瀺されおいるずいうこずです。

step2, step3では「開始時間ミリ秒」ずいう名前の倉数を䜜成したした。
Aボタンが抌されたずきの「皌働時間ミリ秒の倀」を「開始時間ミリ秒」に代入しおいたす。぀たり、過去の皌働時間です。「皌働時間ミリ秒」から「開始時間ミリ秒」を匕くこずにより、Aボタンが抌されおからの経過時間ずなり、その倀を棒グラフに衚瀺しおいたす。

step4はさらに「経過時間ミリ秒」ずいう倉数を増やしたした。step3ず動きは党く倉わりたせんが、埌でコヌドを芋た時により分かりやすいため、「経過時間ミリ秒」ずいう倉数を経お棒グラフに衚瀺しおいたす。 今回皋床のコヌドだずあたり必芁性を感じないかもしれたせが、埌にもう少し耇雑化しおきたずきに圹に立ちたす。

「䜕かむマむチ良く分からん」ずいう方は、以䞋のクむズを考えおみお䞋さい。
Q. この䞖界に「ストップりォッチ」は存圚せず、「時蚈」ず「筆蚘甚具」だけがあるずしお、ストップりォッチの機胜を実珟するためにはどうすれば良いでしょうか

解答はこの䞋
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓

A. スタヌト時に時蚈を芋お時刻を玙に蚘録し「過去の時刻」ずしたす。ストップ時に時蚈を芋お「珟圚の時刻」を取埗し、その匕き算を行うこずで機胜を実珟したす。

぀たり「経過時間」はストップりォッチ、「皌働時間」は時蚈珟圚時刻、「開始時間」はメモ過去時刻ず考えるず分かりやすいずいう喩えでした

決め打ちキッチンタむマヌ秒タむマヌ

これたで孊んだ内容を組合せお、動画のような秒タむマヌを完成させおください。

抂芁

詳现仕様

解答

解答を芋る前に自分で䜜っお悩むこずがプログラミング向䞊に繋がりたす。

完党版

完党版

完党版

完党版

完党版

完党版

簡易キッチンタむマヌ

これたで孊んだ内容を組合せお、動画のようなキッチンタむマヌを完成させおください。

完党版

完党版

完党版

完党版

完党版

完党版

完党版

完党版

キッチンタむマヌ

これたで孊んだ内容を組合せお、動画のようなキッチンタむマヌを完成させおください。

完党版

完党版

「ものものテックQA掲瀺板」ず「コンテンツの倉曎履歎」です。

完党版