「プログラミング」とはどのようなものなのか説明します。
プログラミングとは
今までの記事では「プログラミング」や「プログラム」という言葉を使ってきましたが、具体的な中身がよくわからないままでしたよね。すみませんでした…
プログラミングの入門書を読むと「プログラムとは、コンピュータをどのように動作させるかを記述した指示書です」というように説明されています。この説明を聞いても分かったような、分からないような、なんだかフワフワした感じになるかもしれません。
そこで、この記事では「プログラム」「プログラミング」の中身について具体的に理解を深めようと思います。
まず、用語についてもういちど整理しておきます。
- 「プログラム」
Arduinoボードがどのように電子部品を制御するか、という動作内容を書いたもの。つまりコンピュータをどのように動作させるかを書いた指示書になります。 - 「プログラミング」
「プログラム」を作成する作業
また「プログラム」を作成する人のことを「プログラマ」と呼んでいます。
それでは、この「プログラム」のイメージを具体的に見てみましょう。
プログラムのイメージ
基礎編パート1ではキッチンタイマーを作るわけですが、具体的にはArduinoをキッチンタイマーとして動作させるためのプログラム(どのように電子部品を制御するのかという指示書)を作っていきます。
「指示書を作る」といっても、どのようなことを書くのか想像つきませんよね。「キッチンタイマーとして電子部品を制御してください」なんていう指示書を書いても、うまく動作できそうにありません。(他の人からこのように指示をされても、「さて、何をどうしたらいいんだろう」ってことになってしまいますよね)
そこで今回の記事では、この指示書の内容がどのようなものか、少し具体的にみていきます。
ただ、キッチンタイマーを例に説明すると複雑になってしまいますので、もっと簡単な例で指示書がどのような内容になるのか一緒に見ていきましょう。
これから、ArduinoボードにLEDを接続して、
「LEDを1秒ごとにつけたり消したりする」
という動作をしたい場合、どのようなプログラム(指示書)になるかを例にして説明します。
なお実際のプログラムは英単語を使って作成しますが、イメージをわかりやすくするために、プログラムをもし日本語で作成するとしたらどのようになるか説明します。
プログラミングの経験がないと、プログラムの内容は次の図に書いてあるような内容になるのでは?、と思われるかもしれません。
残念ながらこのような内容のプログラムを作成してもArduinoは理解することができないんです。このような日常会話的な内容を理解できるわけではありません。
実は、Arduinoが理解できる指示はあらかじめ決められています。その以外の用語を使うと理解できません。
この限られた「指示」はどのようなものか説明します。
まず、Arduinoボードの端子にはそれぞれ番号が割り当てられています。
この端子に接続した電子部品を制御するために、以下の指示が用意されています。
- 「Arduinoボードの〇番端子のスイッチをONにする」
〇には数字を入れることができます。Arduinoはこの指示を受けると、指示された数字の端子のスイッチをONにします。
実際の指示の例: 「Arduinoボードの10番端子のスイッチをONにする」 - 「Arduinoボードの〇番の端子のスイッチをOFFにする」
ONの時と同様、〇には数字を入れることができます。Arduinoはこの指示を受けると、指示された数字の端子のスイッチをOFFにします。
実際の指示の例: 「Arduinoボードの10番端子のスイッチをOFFにする」 - 「〇秒間何もしない」
〇には数字を入れることができます。Arduinoはこの指示を受けると、指示された数字の時間、何もしない状態になります。
実際の指示の例: 「1秒間何もしない」
それでは、以下のように組み立てた状態で、LEDを1秒ごとにつけたり消したりという動作を3回行う場合、プログラムはどのようになるか一緒に考えてみましょう。
上の画像は、Arduinoボードの10番端子にLEDを接続しています。
さて、先ほどの3種類の指示をうまく組み合わせて1秒ごとにLEDをつけたり消したりを3回行う場合、プログラム(指示書)はどのように作成すればよいか、一緒に考えてみましょう。
「1秒ごとにLEDをつけたり消したりする」というのは、実際の動作としては「LEDをつけて」→「1秒間そのままの状態にして」→「LEDを消して」→「1秒間そのままにして」→「LEDをつけて」、、、という動作を繰り返せばよさそうですよね。
このように考えると、先ほどの指示を以下のように組み合わせればLEDを1秒ごとにつけたり消したり3回行うことができます。
- Arduinoボードの10番端子のスイッチをONにする
- 1秒間何もしない
- Arduinoボードの10番端子のスイッチをOFFにする
- 1秒間何もしない
- Arduinoボードの10番端子のスイッチをONにする
- 1秒間何もしない
- Arduinoボードの10番端子のスイッチをOFFにする
- 1秒間何もしない
- Arduinoボードの10番端子のスイッチをONにする
- 1秒間何もしない
- Arduinoボードの10番端子のスイッチをOFFにする
このように、プログラミングとは
あらかじめ用意されている指示をうまく組み合わせて、自分が考えた動作をするように指示書(プログラム)を作成する
という作業になります。
この指示ですが、とても重要なポイントがあります。
指示の内容は1文字でも間違えるとArduinoボードは理解できない!
例えば、「Arduinoボードの10番端子のスイッチをONにする」という指示がありますが、これを「Arduinoボード10番端子のスイッチをONにする」というように書いてしまうと、Arduinoボードは動作しません。
どこが違うの?と思われるかもしれませんが、間違っている方は「Arduinoボード10番端子」と書いてします。正しくは「Arduinoボードの10番端子」です。「の」が抜けているだけで、Arduinoボードは指示の内容がわかりません。
指示書に書くことのできる内容はあらかじめ決められている、と説明しましたが、この内容を指示書に書くとき、1文字でも間違えると動作しない、というほど厳密に決められている点に注意してください。
これから、Arduinoで用意されている指示にはどのようなものがあるのか、それらをどのように組み合わせれば思った通りに動かすことができるのか、ということを一緒に習得していきます。つまりプログラミングを習得する、ということですね。
繰り返しになりますが、実際のArduinoのプログラムはローマ字を使って(英単語を使って)で作成する点に注意してください。
スケッチ
Arduinoではプログラムのことを「スケッチ」と呼んでいます。そこで、このシリーズでは今後「プログラム」「スケッチ」という用語を使用します。どちらも同じ意味です。(使い分けに深い意味はありません)
ところで、Arduinoではプログラムのことを「スケッチ」と呼ぶのには理由があるのですが、その理由を理解するためにはプログラミングの基礎をある程度理解している必要があります。
そこで「スケッチ」と呼ぶ理由は、基礎編パート1の最後に説明します。
更新履歴
日付 | 内容 |
---|---|
2019.6.27 | 新規投稿 |
2020.1.18 | Gamebuinoのリンク更新 |
2021.8.21 | 新サイトデザイン対応 |
2024.11.12 | 説明内容補足 |