いしかわのロボトレース研修 キット製作研修

いしかわのロボトレース研修【9】-STEP1の続きから-

いしかわのロボトレース研修

こんにちは。いしかわです。前回はサンプルプログラムSTEP1の内容を「命令を細分化する」という部分に着目して解説しました。今回はSTEP1の残りの部分を見ていきましょう。

STEP1

「=」は「等しい」ではない

まず、STEP1の1行目から見ていきましょう。

int LED_Pin= D13;

これは「LED_PinにD13を代入する」という命令です。トレーニングトレーサーに付けたNucleoボードには複数のピンがついています。このピンの中で「D13」のピンをLEDの操作に使用するという命令です。詳しい説明はNABEさんのブログに載っていますので、ぜひ読んでみてください。

Nucleoボードのピン 右上が「D13」のピン

「=」という記号ですが、プログラミングの世界では「代入」という意味になります。では「等しい」という意味はどう表すのかというと、「==」と表します。「=」が「等しい」ではないというのはプログラミング初心者の私にとって、とてもびっくりした出来事でした。

アールティでは、業務中にチャットを使用してコミュニケーションを取っています。そういえば、エンジニアとチャットでやり取りをしている際に「==」という表現を見たことが何回かありました。「タイピングミスをしたのかな」と思っていましたが、今回プログラミングを学んで、「あれはプログラミングの世界では等しいことを表す表現だったのか!」と気づくことができました。

起動時の命令

次に以下のプログラムを見ていきましょう。

void setup() {
// put your setup code here, to run once:
 pinMode(LED_Pin,OUTPUT);
}

これは「起動時にLED_Pinを出力モードにする」という命令です。void setup() {}とは「起動時に{}内の動作を行え」という命令の関数です。

「出力モード」とは電流を流して操作を行うということです。つまり、「トレーニングトレーサーの電流を入れた時に、LED_Pin(D13のピン)に電流を流せるようにする」という意味です。もっと簡単に表現すると、「これからLEDを付けたり消したりするから準備してね」と命令しているイメージです。

STEP1を日本語にすると

ここまででSTEP1をすべて解説しました。STEP1の内容を日本語に表してみましょう。
まずは元のプログラムです。

int LED_Pin= D13;

void setup() {
// put your setup code here, to run once:
pinMode(LED_Pin,OUTPUT);
}

void loop() {
 // put your main code here, to run repeatedly:
digitalWrite(LED_Pin,HIGH); //LEDを点灯
delay(1000);                //1秒待つ
digitalWrite(LED_Pin,LOW);  //LEDを消灯
delay(1000);                //1秒待つ
}

日本語に表すと以下のようになります。

LED_PinにD13を代入する

起動時に{}内の動作を行え
{
LED_Pinを出力モードにする
}

 {}内のプログラムを繰り返し行え
{
LEDを点灯
1秒待つ
LEDを消灯
1秒待つ
}

プログラムで見ると「難しそう」と思いますが、意味を理解して日本語に表すと、一つ一つの命令が非常に単純でわかりやすいですね。プログラミングを勉強するということは、この一つ一つの関数の意味を覚えて、組み合わせていくことの繰り返しです。

この研修ではサンプルプログラムSTEP8までを学習しました。STEP8まで学習すると、ライントレースができるようになります。

トレーニングトレーサーでライントレースしてみた

ちゃんと走っています。すごいでしょ!

このブログでの解説はSTEP1までとなります。STEP2からも気になる方はぜひご自身で体験してみてください。こちらのページでサンプルプログラムを見ることができます。「自分で作ってみたい」という方はアールティウェブショップからご注文ください。

まとめ

このブログを始めた3か月前はロボットを組み立てたことも、プログラミングを勉強したこともなかった私ですが、マニュアルを見ながらコツコツと作業を進めることで、ここまで成長することができました。自分でも、ロボットを一つ完成させることができたことが自信につながりました。

研修の目的である「全社員共通言語を作る」ということも実感することができました。ロボットを作ることで部品やプログラミングの知識を得ることができ、研修前より社内のエンジニアとのやり取りがスムーズになりました。また、エンジニアの苦労も具体的に想像することができるようになりました。今回の研修で学んだことを活かして、これからもエンジニアを支えていきたいと思います。

タイトルとURLをコピーしました