差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
| gimmickkouza:electronic_basic:3:2_rule [2024/06/12 00:08] – [プログラムにはインデントを入れよう] matsuhachi | gimmickkouza:electronic_basic:3:2_rule [2024/06/21 18:23] (現在) – lutamesta | ||
|---|---|---|---|
| 行 2: | 行 2: | ||
| 世の中にはいろいろなプログラミング言語があり、それぞれに独自のルールを持っています。 | 世の中にはいろいろなプログラミング言語があり、それぞれに独自のルールを持っています。 | ||
| 先程のLチカのサンプルコードを使いながら、Arduino言語のお作法について解説します。 | 先程のLチカのサンプルコードを使いながら、Arduino言語のお作法について解説します。 | ||
| + | |||
| ===== Arduino言語の構造 ===== | ===== Arduino言語の構造 ===== | ||
| 行 12: | 行 12: | ||
| ②setup部よりも上の部分が宣言部です。 | ②setup部よりも上の部分が宣言部です。 | ||
| ライブラリを使うときに、ここで使いたいライブラリの名前を宣言しておくことで、プログラムの中で使えるようにしたり、プログラム全体で使う変数や関数を宣言する場所です。 | ライブラリを使うときに、ここで使いたいライブラリの名前を宣言しておくことで、プログラムの中で使えるようにしたり、プログラム全体で使う変数や関数を宣言する場所です。 | ||
| + | (ちなみにプログラム全体で使う変数をグローバル変数、関数をグローバル関数と呼びます) | ||
| 他にも、プログラムの内容などを説明するコメントをここに残しておく人もいます。 | 他にも、プログラムの内容などを説明するコメントをここに残しておく人もいます。 | ||
| 今回のLチカでは、特に書くことがないので空白になっています。 | 今回のLチカでは、特に書くことがないので空白になっています。 | ||
| - | <alert type=" | ||
| - | |||
| + | /*<alert type=" | ||
| == ②setup部 == | == ②setup部 == | ||
| void setup(){ }の、{ }(波かっこ)の部分の中がsetup部です。 | void setup(){ }の、{ }(波かっこ)の部分の中がsetup部です。 | ||
| 行 26: | 行 26: | ||
| Arduinoは②setup部を実行した後、この③loop部を繰り返し実行し続けます。 | Arduinoは②setup部を実行した後、この③loop部を繰り返し実行し続けます。 | ||
| プログラムのメインの部分です。電子部品からデータを読み取ったり、それをもとに計算をしたり、条件を付けて電子部品を動かしたりするためのプログラムをびっちり書きます。 | プログラムのメインの部分です。電子部品からデータを読み取ったり、それをもとに計算をしたり、条件を付けて電子部品を動かしたりするためのプログラムをびっちり書きます。 | ||
| + | |||
| === プログラムの動作順序 === | === プログラムの動作順序 === | ||
| Arudinoのプログラムは、基本的に一番上から順番に1行ずつ実行されます。 | Arudinoのプログラムは、基本的に一番上から順番に1行ずつ実行されます。 | ||
| 行 36: | 行 36: | ||
| つまり、 **①→②→③③③③③③③③③③③③③③③(以下無限ループ)** という動作をします。 | つまり、 **①→②→③③③③③③③③③③③③③③③(以下無限ループ)** という動作をします。 | ||
| - | + | ||
| - | + | ||
| ===== Arduinoの言語の書き方のお約束 ===== | ===== Arduinoの言語の書き方のお約束 ===== | ||
| Arduino言語でプログラムを書く上で、いくつかの決まり事があります。 | Arduino言語でプログラムを書く上で、いくつかの決まり事があります。 | ||
| この決まり事を守れていないとプログラムは動作できず、「検証」をかけたときにエラーが出ます。 | この決まり事を守れていないとプログラムは動作できず、「検証」をかけたときにエラーが出ます。 | ||
| + | |||
| ==== 文末には必ず「;」(セミコロン)をつける ==== | ==== 文末には必ず「;」(セミコロン)をつける ==== | ||
| 命令文を1文書いたら、その後ろには必ず「;」(セミコロン)を付けます。 | 命令文を1文書いたら、その後ろには必ず「;」(セミコロン)を付けます。 | ||
| 行 53: | 行 52: | ||
| つまり「;」を付けることによって、「この文はここで終わり。次の文字からは別の文」であることを、Arduinoにわからせます。 | つまり「;」を付けることによって、「この文はここで終わり。次の文字からは別の文」であることを、Arduinoにわからせます。 | ||
| 「;」を付け忘れると、Arduinoはどこからどこまでが一つの命令文なのかを判別できなくなり、エラーを吐いてしまいます。 | 「;」を付け忘れると、Arduinoはどこからどこまでが一つの命令文なのかを判別できなくなり、エラーを吐いてしまいます。 | ||
| - | + | ||
| ==== 括弧は必ず対になる ==== | ==== 括弧は必ず対になる ==== | ||
| Arduinoでは命令を書くため、或いはある命令の中に別の命令を書くためなど、様々な場面で括弧を使います。 | Arduinoでは命令を書くため、或いはある命令の中に別の命令を書くためなど、様々な場面で括弧を使います。 | ||
| 行 67: | 行 65: | ||
| ※「;」を打たないルールの命令文も少数ですがあります。それは個別で覚えてください | ※「;」を打たないルールの命令文も少数ですがあります。それは個別で覚えてください | ||
| + | |||
| ==== 2バイト文字(日本語や全角の英数字)は使えない ==== | ==== 2バイト文字(日本語や全角の英数字)は使えない ==== | ||
| コンピュータの世界の文字には「1バイト文字」と「2バイト文字」があります。 | コンピュータの世界の文字には「1バイト文字」と「2バイト文字」があります。 | ||
| 行 78: | 行 76: | ||
| 例2:下記の文は2バイト文字(全角英数記号)を使っているのでエラーが出ます | 例2:下記の文は2バイト文字(全角英数記号)を使っているのでエラーが出ます | ||
| < | < | ||
| + | |||
| ※唯一の例外として、後述するコメント部分だけは日本語(を含む2バイト文字)を使うことができます | ※唯一の例外として、後述するコメント部分だけは日本語(を含む2バイト文字)を使うことができます | ||
| + | |||
| ==== プログラムにはインデントを入れよう ==== | ==== プログラムにはインデントを入れよう ==== | ||
| 必須ではない(やらなくてもエラーは出ない)ですが、プログラムにはインデントを入れましょう。 | 必須ではない(やらなくてもエラーは出ない)ですが、プログラムにはインデントを入れましょう。 | ||
| 行 86: | 行 84: | ||
| インデントは半角スペースを入力するか、「Tab」キーを押すことで入れられます。 | インデントは半角スペースを入力するか、「Tab」キーを押すことで入れられます。 | ||
| - | 裏技:「Ctrl」キーを押しながら「T」を押すと、自動でインデントが入ります | + | 裏技1:ツールバーの「ツール」→「自動整形」を押すと、スケッチ全体に自動でインデントが入ります |
| + | 裏技2:「Ctrl」キーを押しながら「T」を押しても、裏技1と同じ効果を得られます | ||
| 参考:インデントのあるコードとないコードの視認性の比較 | 参考:インデントのあるコードとないコードの視認性の比較 | ||
| 行 93: | 行 92: | ||
| {{: | {{: | ||
| - | <alert type=" | + | /*<alert type=" |
| ---- | ---- | ||
| 行 106: | 行 105: | ||
| * 【置換:プログラム本文の任意の単語を別の単語に置き換えます】「Ctrl」+「H」 | * 【置換:プログラム本文の任意の単語を別の単語に置き換えます】「Ctrl」+「H」 | ||
| </ | </ | ||
| + | |||
| + | |||
| ===== プログラムにコメントを書く ===== | ===== プログラムにコメントを書く ===== | ||
| Arduinoのプログラム本文に文字を打ち込むと、その文字はプログラムの一部として認識されます。 | Arduinoのプログラム本文に文字を打ち込むと、その文字はプログラムの一部として認識されます。 | ||
| しかし特定の記号を打ち込むことで、プログラムの動作には影響を及ぼさない「コメント」を書きこむことができます。 | しかし特定の記号を打ち込むことで、プログラムの動作には影響を及ぼさない「コメント」を書きこむことができます。 | ||
| + | |||
| ==== コメントはどう役に立つか ==== | ==== コメントはどう役に立つか ==== | ||
| * 後からこのプログラムを見返した人(主に未来の自分ですが、そのプログラムを配布する場合は知らないどこかの誰か)の為に、プログラムの説明や注意を書いておく | * 後からこのプログラムを見返した人(主に未来の自分ですが、そのプログラムを配布する場合は知らないどこかの誰か)の為に、プログラムの説明や注意を書いておく | ||
| 行 116: | 行 116: | ||
| * プログラムを見やすくするための装飾などを入れる | * プログラムを見やすくするための装飾などを入れる | ||
| * プログラムの動作確認をするために、プログラムの特定の行や部分を一時的に「コメント」にしてしまうことで、プログラム本体から切り離して無効化する(この手法をコメントアウトといいます) | * プログラムの動作確認をするために、プログラムの特定の行や部分を一時的に「コメント」にしてしまうことで、プログラム本体から切り離して無効化する(この手法をコメントアウトといいます) | ||
| + | |||
| ==== コメントの書き方 ==== | ==== コメントの書き方 ==== | ||
| コメントの書き方は下記の2通りです。 | コメントの書き方は下記の2通りです。 | ||
| なおコメントになっている部分の文字は、ArduinoIDE上では薄灰色で表示されます。 | なおコメントになっている部分の文字は、ArduinoIDE上では薄灰色で表示されます。 | ||
| - | |||
| == 「// | == 「// | ||