第3回 プログラミングとは

「プログラミング」とはどのようなものなのか説明します。

目次

プログラミングとは

今までの記事では「プログラミング」や「プログラム」という言葉を使ってきましたが、具体的な中身がよくわからないままでしたよね。すみませんでした…

プログラミングの入門書を読むと「プログラムとは、コンピュータをどのように動作させるかを記述した指示書です」というように説明されています。この説明を聞いても分かったような、分からないような、なんだかフワフワした感じになるかもしれません。

そこで、この記事では「プログラム」「プログラミング」の中身について具体的に理解を深めようと思います。

まず、用語についてもういちど整理しておきます。

  • 「プログラム」
    Arduinoボードがどのように電子部品を制御するか、という一連の制御指示を書いたもの。つまりコンピュータをどのように動作させるかを書いた指示書になります。
  • 「プログラミング」
    「プログラム」を作成する作業

また「プログラム」を作成する人のことを「プログラマ」と呼んでいます。

それでは、この「プログラム」のイメージを具体的に見てみましょう。

プログラムのイメージ

基礎編パート1ではキッチンタイマーを作るわけですが、具体的にはArduinoをキッチンタイマーとして動作させるためのプログラム(どのように電子部品を制御するのかという指示書)を作っていきます。

「指示書を作る」といっても、どのようなことを書くのか想像つきませんよね。「キッチンタイマーとして電子部品を制御してください」なんていう指示書を書いても、うまく動作できそうにありません。(他の人からこのように指示をされても、「さて、何をどうしたらいいんだろう」ってことになってしまいますよね。Arduino Microもこのように指示されても「さて、何をどうするんだろう」という状況に陥ってしまいます)

そこで今回の記事では、この指示書の内容がどのようなものか、少し具体的にみていきます。

ただ、キッチンタイマーを例に説明すると複雑になってしまいますので、もっと簡単な例で指示書がどのような内容になるのか一緒に見ていきましょう。

これから、ArduinoボードにLEDを接続して、

「LEDを1秒ごとにつけたり消したりする」

という動作をしたい場合、どのようなプログラム(指示書)になるかを例にして説明します。

サンプル回路

なお実際のプログラムは英単語を使って作成しますが、イメージをわかりやすくするために、プログラムをもし日本語で作成するとしたらどのようになるか説明します。(実際のプログラムは英単語を使用して作成します)

プログラミングの経験がないと、プログラムの内容は次の図に書いてあるような内容になるのでは?と思われるかもしれません。

プログラム例

残念ながらこのような内容のプログラムを作成してもArduinoは理解することができないんです。このような日常会話的な内容を理解できるわけではありません

実は、Arduinoが理解できる指示はあらかじめ決められています。その決められた用語以外を使うと理解できません。

そこで、この「限られた指示」はどのようなものか見ていきましょう。


Arduinoボードの端子には、次のようにそれぞれ番号が割り当てられています。この番号はArduino Microボードにも書かれていますので、実物を確認してみてください。

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にする
Arduinoプログラムイメージ

このように、プログラミングとは

あらかじめ用意されている指示をうまく組み合わせて、自分が考えた動作をするように指示書(プログラム)を作成する

という作業になります。

この指示ですが、とても重要なポイントがあります。

指示の内容は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.18Gamebuinoのリンク更新
2021.8.21新サイトデザイン対応
2024.11.12説明内容補足
通知の設定
通知タイミング
guest
0 コメント
新しい準
古い順 一番投票が多い
本文中にフィードバック
全てのコメントを見る
目次