電子工作入門プログラミング入門-基礎1今回はスケッチを見やすくします。キッチンタイマーのスケッチを作る前に第12回までの記事で、LEDを1秒ごとにつけたり消したりするスケッチを作成して、実際にArduinoを動作させてみました。これからキッチンタイマーのスケッチを新規に作成していきますが、途中でいろいろな動作確認をするために別のスケッチを作成します。今の時点では作成したスケッチは1つしかありませんが、今後スケッチがどんどん増えてくるわけです。ファイル名に日付を入れたり、ファイル名に変更内容を簡単に付け足したり、いろいろな工夫をしてファイルを区別していたかもしれません。これから作成するスケッチは、基本的にファイル名を工夫してわかるようにします。ファイル名が「LED_blink」であれば、1秒ごとにLEDをつけたり消したりするスケッチとわかります。スケッチ作成の練習として0.5秒ごとにLEDをつけたり消したりするスケッチを別につくるとき、ファイル名を工夫しても、ファイル名のみからスケッチの中身を思い出すのは難しくなってきそうです。これはプログラムを作成するときに必ず発生する問題です。そこで、どのようなプログラミング言語でも、プログラムの中にメモ書きできる仕組みが用意されています。このメモ書きできる仕組みを利用してスケッチの中に動作内容を書いておけば、あとからスケッチをみたときにスケッチの中身まで見なくてもメモ書きを読めば動作内容がすぐにわかるというわけです。それでは、これから作成した「LED_blink」スケッチの中に、「1秒ごとに12番ピンに接続したLEDをつけたり消したりするスケッチ」というメモ書きを書きましょう。IDEに怒られます(例のやつです。気に食わないとダメなところを目立つようにして英語で怒られるやつです)。スケッチ(プログラム)に書くメモのことを「コメント」と呼んでいます。プログラム(スケッチ)の中に書いたコメントは「コメント文」と呼ばれます。C/C++言語ではコメント文の書き方2通り用意されています。それではひとつずつ覚えていきましょう。今後、命令の説明図の右上に「C/C++言語」「Arduino」とマークをつけます。「C/C++言語」マークがついている命令はC/C++言語の文法です。PiではC/C++言語でプログラミングできますが、そのときも同じになります。「Arduino」のマークがついている命令はArduino独自の命令です。Piなど他のコンピュータでは使用できません。コメントを、最初を「/*」、最後を「*/」で囲むとその部分がコメント文となります。このコメント文は複数行で書いても問題ありません。以下のように書いてもOKです。*/このコメント文の書き方では「/*」から始まって、「*/」が出てくるまでどこまでもコメント文になります。以下のように書けば、命令の意味を書いておくこともできます。*/C/C++言語ではもうひとつコメント文の書き方があります。「//」と「/」を2回続けて書くと、この「//」から改行まで、つまりその行の終わりまでが改行になります。1秒ごとに12番ピンに接続したLEDをつけたり消したりするスケッチ以下のコメント文は2行目が怒られます。1秒ごとに12番ピンに接続したLEDをつけたり消したりするスケッチまた、先ほどのように命令の意味を書いておくことができます。*/」のコメント文より入力する文字が少ないので、こちらのコメントの方がいいですよね。以前からずっと気になっていたあれ、ありますよね。これはコメント文だったんです。このコメント文、ちょっと薄いグレーの色になっていますよね。IDEがこの行をコメント文と認識してグレーにしています。スケッチの主体は命令で、コメント文は脇役(わきやく)ということで、コメント文がそれほど目立たないようにグレーになっています。このコメント文は英語で書いてありますが、日本語の意味は以下になります。repeatedly:”「ずっと繰り返し実行する命令をここに書いてください」もうこの仕組みはわかっていますので、このコメント文は必要ないですよね。あとで削除しましょう。このコメント文の先頭にスペースが入っているのは気にはなりますが...スケッチにコメントを書こうそれでは、あとからスケッチを見て内容がすぐにわかるようにコメントを書いてみます。書く内容は、スケッチの動作内容以外にも自分で書いておきたい内容を書いておいてください。いっても何を書けばいいの?って感じですよね。一般的にプログラムの先頭には以下のような項目を書くケースが多いです。ライセンス(商用に使ってはダメ、とか細かい規定)とはいっても、個人でつくるものですので、自分があとから見てわかる内容であればOKです。*/」の方で書きましょう。それでは作成した「LED_blink」を開いてください。以下のようにスケッチの先頭に2行ぐらい空けましょう。次に1行目に「/*」と入力します。なんだか全体がグレーになりましたよね。IDEが「/*」を認識して「*/」までの文字をコメントと認識するためです。この状態ではコメント文の終わりの「*/」がないので、最後までコメント文として認識しているわけです。次にリターンキーを押してください。以下のように自動的に「*/」を入力してくれましたよね。これで「/*」から「*/」までの間がコメントとなり、ここに自由にコメントが書けます。コメント内容は自分で考えて入力してみてください。以下は入力例ですが、特に決まりはありませんので、自分が後から見てわかる内容にしましょう。あとは例の最初から書かれていたコメントは削除しておきます。これでコメントが書けました。今後自分でスケッチを作成するとき、できるだけコメントを書いておくようにしてください。他の人のコメントの書き方を見てみようここで、他の人はどのようなコメントを書くのか見てみましょう。IDEの「ファイル」→「スケッチ例」メニューを選択してください。このメニューは、スケッチのサンプルがたくさん入っています。この中から、「01.Basics」の「Blink」を選択してください。IDEに入っているLEDを1秒ごとにつけたり消したりするスケッチです(なんだあったんだ、って感じですね)。スケッチの最初の方にコメントがたくさん書いてあります。いうかスケッチの命令本体よりコメントの方が長いですよね。書いてある内容は以下です。変更日と変更した人の名前このプログラムは自由に使っていいですよ、という内容サイトの説明へのリンクところで、「LED_blink」に入力したコメントと、このスケッチ例にある「Blink」スケッチのコメントですが、ちょっと書き方が違いますよね。自分で入力したコメントは各行の先頭に「*」が付いています。スケッチ例のコメントは「*」がありません。どちらもコメントの書き方のルールにあっています。これは好みの問題なので自分が見やすい書き方で問題ありません。先ほどのように「/*」と入力してコメントを書いていくと自動的に「*」が入力されてしまいますよね。これを避けたい場合は以下のように入力します。最初にコメントを入力したときと同様に「/*」と入力してリターンキーを押して以下のような状態にしてから、2行目の「*」を削除します。この状態で2行目から書き始めると、自動で「*」が入力されなくなります。IDEでは、リターンキーを押すと、前の行をみて推測して次の行を準備してくれます。一度「*」がない行を作れば、次の行からは「*」を自動的に入力しなくなります。ブロックコメントとインラインコメント最後にコメント文についてもう少し用語を覚えておきましょう。*/」を「ブロックコメント」と呼びます。「ブロック」は日本語で「かたまり」という意味です。*/」は複数行書くことができます。このように複数行書くと「行」というより「かたまり」に見えるので「ブロックコメント」と呼ばれています。ひとつの「//」のコメントは「インラインコメント」と呼びます。「インライン」は日本語で「行内」「行の中」という意味です。青色LEDをつけるのような書き方を見ると、1行の中にコメントを書いていますよね。「//」はこのように1行で書くので「インラインコメント」と呼ばれています。他のプログラミング言語を習得するとき、「ブロックコメントはこのように書きます」「インラインコメントはこのように書きます」という説明があります。このような用語を覚えておくと、他のプログラミング言語の習得が早くなります。