ARDUINOプログラム入門 - yeah.b.la9.jpyeah.b.la9.jp/arduino/arduino_entry.pdf ·...

14
Arduinoプログラム入門 バージョン0.7 1 2014/08/15 Copyright M 2014

Transcript of ARDUINOプログラム入門 - yeah.b.la9.jpyeah.b.la9.jp/arduino/arduino_entry.pdf ·...

Page 1: ARDUINOプログラム入門 - yeah.b.la9.jpyeah.b.la9.jp/arduino/arduino_entry.pdf · 1.プログラムとは •人の「やりたいこと」を、コンピュータに仕事

Arduinoプログラム入門

バージョン0.7

1 2014/08/15 Copyright M 2014

Page 2: ARDUINOプログラム入門 - yeah.b.la9.jpyeah.b.la9.jp/arduino/arduino_entry.pdf · 1.プログラムとは •人の「やりたいこと」を、コンピュータに仕事

内容(ないよう)

• 1.プログラムとは

• 2.プログラムのかたち

• 3.プログラムの流れ

• 4.スケッチのしくみ(イメージ)

• 5.変数(へんすう)

• 6.定数(ていすう)

• 7.関数(かんすう)

• 8.コンパイル

2

Page 3: ARDUINOプログラム入門 - yeah.b.la9.jpyeah.b.la9.jp/arduino/arduino_entry.pdf · 1.プログラムとは •人の「やりたいこと」を、コンピュータに仕事

1.プログラムとは

• 人の「やりたいこと」を、コンピュータに仕事 (処理)をさせるための指示 (例) ゲームで、ボタンを押したら、画面を変える。 塾で、カードをかざしたら、親にメールする。 車を自動走行させる。

機械(ハードウェア)でもできるが、プログラム(ソフトウェア)の方が、簡単な場合もある。

3

Page 4: ARDUINOプログラム入門 - yeah.b.la9.jpyeah.b.la9.jp/arduino/arduino_entry.pdf · 1.プログラムとは •人の「やりたいこと」を、コンピュータに仕事

2.プログラムのかたち • プログラムの3つのかたち(ほとんど、3つでできている) ①指示を順に行う。(順番処理) 朝起きなさい; 顔を洗いなさい; ご飯を食べなさい; ②もしもの場合の指示を行う。(別れ道処理) もし、(雨が降っている)場合、{傘を持っていきなさい;} それ以外、{傘を持たずにいきなさい;} ③繰り返すことが必要な場合の指示を行う。(繰り返し処理) (学校につくまで)の間、{ 右足を前に出しなさい; 左足を前に出しなさい; }

4

Page 5: ARDUINOプログラム入門 - yeah.b.la9.jpyeah.b.la9.jp/arduino/arduino_entry.pdf · 1.プログラムとは •人の「やりたいこと」を、コンピュータに仕事

3.プログラムの流れ(順番)

• 順番処理

処理1

開始

終了

例 ①1秒待つ。 delay(1000); ※delay(ディレイ):英語で「遅らす」の意味 ()の中は、ミリ秒(1000ミリ秒=1秒) ②8番のピンを5V出力にする。 degitalWrite(8,HIGH); ※degital(デジタル)Write(ライト): 英語の意味では、デジタル出力書き込み HIGH(ハイ):英語で「高い」の意味(5V) 反対は、LOW(ロウ):「低い」(0V)

処理2

文の終わりには、 ;(セミコロン)

5

Page 6: ARDUINOプログラム入門 - yeah.b.la9.jpyeah.b.la9.jp/arduino/arduino_entry.pdf · 1.プログラムとは •人の「やりたいこと」を、コンピュータに仕事

3.プログラムの流れ(別れ道)

• 別れ道処理

処理A

開始

終了

例 ①もし、数字項目iが10より大きいなら、処理(8 番ピンに5V出力)をする。 それ以外なら、何もしない。 if (i > 10 ) { degitalWrite(8,HIGH); } ※if(イフ):英語で「もしも」の意味 ()の中は、算数と似ている。(>、<、 ==) ②もし、数字項目iが10より大きいなら、8番ピ ンに5V出力をし、それ以外なら、0Vにする。 if (i > 10 ) {degitalWrite(8,HIGH); } else {degitalWrite(8,LOW);} ※else(エルス):英語で「その他」の意味

判定

If 文には、 () 丸かっこ {} 波かっこ が必要

6

処理B

はい

いいえ

Page 7: ARDUINOプログラム入門 - yeah.b.la9.jpyeah.b.la9.jp/arduino/arduino_entry.pdf · 1.プログラムとは •人の「やりたいこと」を、コンピュータに仕事

3.プログラムの流れ(繰り返し) • 繰り返し処理

処理

開始

終了

例 ①LEDの点滅を10回繰り返す。 for (i = 1;i <= 10; i++ ) { degitalWrite(8,HIGH); delay(1000); //1秒待つ degitalWrite(8,LOW); delay(1000); //1秒待つ } ※for(フォア):英語で「~の間」の意味 ()の中は、初期値;繰り返す条件;1加算 ②数字項目iが0の間、繰り返す。 While (i == 0 ) { 処理; if (XXX == 1 && YYY == 2){ i = 0; //終了を間違うと暴走 } } ※While(ホワイル):英語で「 ~の間」の意味 &&は「かつ」の意味。||は「または」。

判定

繰返し文には、 () 丸かっこ {} 波かっこ が必要

7

はい

いいえ

Page 8: ARDUINOプログラム入門 - yeah.b.la9.jpyeah.b.la9.jp/arduino/arduino_entry.pdf · 1.プログラムとは •人の「やりたいこと」を、コンピュータに仕事

4.スケッチのしくみ(イメージ) Arduino

main() { //プログラム本体 init(); //1回だけ動く setup(); //1回だけ動く for (;;) { //何回も繰り返す loop(); //何回も動く } return 0; //終わり }

共通の変数(入れ物)の定義; setup(){ //部品 ピンモードの初期化; など } loop (){ //部品 loop内だけの変数の定義; 実行したいプログラム(指示); 順番処理 別れ道処理 繰り返し処理 }

みなさんが作れるもの!!

8

Page 9: ARDUINOプログラム入門 - yeah.b.la9.jpyeah.b.la9.jp/arduino/arduino_entry.pdf · 1.プログラムとは •人の「やりたいこと」を、コンピュータに仕事

5.変数(へんすう) コンピュータへの指示(処理)を作るため、プログラムの中に、自由に作れる

何かしらの数値が入る箱(マッチ箱とか、さいふ、筆入れ、小物入れのようなもの) ①数字用の箱(出し入れ自由) int x ; //読み:イント エックス、意味:整数の箱(変数) x を使います。 //整数(int)の場合 、入れられる範囲は、-32768~32767 x = 1; //x に、1を入れる。 x = x + 2; //x に2を足す。結果としては、 x は、3になる。(引き算は、- ) x = x * 3; //x に3を掛ける。結果としては、 x は、9になる。(割り算は、/ ) long y; //読み:ロング ワイ、意味:大きい整数の箱(変数) y を使います。 //大きい整数(long)の場合 、入れられる範囲は、-2億~2億位 ②文字用の箱(出し入れ自由) char a; //読み:キャラ エー、意味:1文字の箱(変数) a を使います。 a = ‘A’; //a に、Aを入れる。 string s; //読み:ストリング エス、意味:文字列の箱(変数) s を使います。 s = “ABCD”; //sに、ABCDを入れる。 ③オン・オフ用(true/false)の箱(出し入れ自由) boolean f; //読み:ブーリアン エフ、意味:オン・オフ用の箱(変数) f を使います。 f = true; //読み:エフ イコール トゥルー、意味:オン(true 真)にします。 f = false; //読み:エフ イコール フォルス、意味:オフ(false 偽)にします。 9

Page 10: ARDUINOプログラム入門 - yeah.b.la9.jpyeah.b.la9.jp/arduino/arduino_entry.pdf · 1.プログラムとは •人の「やりたいこと」を、コンピュータに仕事

5.変数 ④箱をくっつけた箱(出し入れ自由)

int x[4] ; //読み:イント エックス 4、意味:整数の4箱(変数) x を使います。 x[0] = 1; //xの1番目の箱(x[0]) に、1を入れる。([]内の始まりは、0から) x[] = {2,4,6,8}; // xの1番目の箱(x[0]) に2、xの2番目の箱(x[1]) に4、 // xの3番目の箱(x[2]) に6、xの1番目の箱(x[3]) に8を入れます。 char a[4] ; //読み:キャラ エー4、意味:1文字の4箱(変数) a を使います。 a[0] = ‘A’; //aの1番目の箱(a[0]) に、Aを入れる。([]内の始まりは、0から)

2 5

33

7 ア イ

変数 数字 文字 2つ以上

true

オン・ オフ

10

Page 11: ARDUINOプログラム入門 - yeah.b.la9.jpyeah.b.la9.jp/arduino/arduino_entry.pdf · 1.プログラムとは •人の「やりたいこと」を、コンピュータに仕事

6.定数(ていすう) コンピュータへの指示(処理)を作るため、プログラムの中に、自由に作れる 決まった数値の名札 ①最初から、Arduinoで、決まっている名札 true/false //読み:トゥルー/フォルス、意味:真(オン)/偽(オフ) HIGH/LOW //読み:ハイ/ロー INPUT/OUTPUT //読み:インプット/アウトプット、意味:入力/出力 ②自由につけられる名札(コンパイルした後は、変えられません。読み取り専用) #define Speed 9 //読み:デファイン スピード 9 //意味:このプログラムでは、9に対して、Speed と名付けます。 const int Speed = 9; // 読み:コンスト イント スピード = 9 //意味:defineとほぼ同じ。

入出力 HIGHの意味 LOWの意味

INPUT(入力) 3V以上の電圧 2V以下の電圧

OUTPUT(出力) 5Vの電圧 0Vの電圧

11

Page 12: ARDUINOプログラム入門 - yeah.b.la9.jpyeah.b.la9.jp/arduino/arduino_entry.pdf · 1.プログラムとは •人の「やりたいこと」を、コンピュータに仕事

7.関数(かんすう) コンピュータへの指示(処理)を作るため、プログラムの中に、自由に使える作れる 処理の部品 (使うときの書き方) 戻り値 = 関数名 ( 渡す値1, 渡す値2、・・・);

自動販売機だと、お金と選んだ商品ボタンをおすと、商品が出てくる。これを関数の書き方だとこうなる。 コーラ出てくる = ジュース自動販売機 ( 120円, コーラボタンを押す ); ①最初から、Arduinoにある部品(関数)をつかった例 pinMode(13, OUTPUT); //読み:ピンモード 13 アウトプット //意味:ピンの動作をセットする関数(ピンモード)を使う //結果:ピン13は、出力となる。戻り値は、なし。 digitalWrite(13, HIGH); //読み:デジタルライト 13 ハイ //意味:ピンに出力する関数(デジタルライト)を使う //結果:ピン13は、5V出力となる。戻り値は、なし。 ②部品(関数)を作った例 使い方: int kekka = tashizan ( 1, 2); //意味:足し算する関数を呼び、1+2を得る 部品(関数) int tashizan ( int x, int y) { //関数名は tashizan 、 戻り値は数字 return ( x + y ) ; //渡された値1 + 渡された値2を返して終了 } 12

Page 13: ARDUINOプログラム入門 - yeah.b.la9.jpyeah.b.la9.jp/arduino/arduino_entry.pdf · 1.プログラムとは •人の「やりたいこと」を、コンピュータに仕事

7.関数(かんすう) ③Arduinoにない他の人が作った部品(関数)をつかった例 #include <Servo.h> //読み:インクルード サーボ エッチ //意味:他の人が作ったサーボ用の関数を持ってくる Servo myservo; //読み:サーボ マイサーボ //意味:関数をmyservoの名前で使えるよう準備 myservo.attach(servo); //意味:関数の使い方は、それぞれしらべる必要あり。 ④スケッチについて わたしたちがつくるsetupや、loopも、関数です。 void setup() { //読み:ボイド セットアップ //意味:setup(セットアップ)関数は、渡される値はなし、戻り値なし //void(ボイド)は戻り値なし。()丸かっこの中なしは渡される値なし 処理; } void loop() { 処理; }

13

Page 14: ARDUINOプログラム入門 - yeah.b.la9.jpyeah.b.la9.jp/arduino/arduino_entry.pdf · 1.プログラムとは •人の「やりたいこと」を、コンピュータに仕事

8.コンパイル コンパイルとは、プログラムの簡単なエラーチェックを行い、エラーがなければ機械を動かすソフトに翻訳(ほんやく)すること。 コンパイルエラーの例 ①文末に ; (セミコロン)がない例 スケッチ: pinMode(Right, OUTPUT) pinMode(Left, OUTPUT); エラー: expected `;’ before pinMode ② if 文に { (波かっこ)がない例 スケッチ: if (x > 0) analogWrite(Speed, x); } else { エラー: ‘else’ without a previous ‘if’

ここの前に ; がない

If 文が正しくないのにelseがある

14