Code4NaraHandson2_151118

37
2015.11.18 Code for Nara 奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈奈 Code for Nara 奈奈奈奈奈Arduino で L でででででででで

Transcript of Code4NaraHandson2_151118

Page 1: Code4NaraHandson2_151118

2015.11.18Code for Nara

奈良オープンデータハッカソン対策Code for Nara 勉強会その2

Arduino で L チカをしてみよう

Page 2: Code4NaraHandson2_151118

準備今日の資料、サンプルソースは以下にまとめています。

http://www.code4nara.org/151118/sample.zip

ダウンロードして任意のフォルダに展開してください。

利用する開発環境は以下からダウンロードできます。

https://www.arduino.cc/en/Main/Software

予めの OS に合ったインストーラーをダウンロードしておくと後の作業がスムーズに進みます。

Page 3: Code4NaraHandson2_151118

勉強会の目的

奈良オープンデータハッカソン

で使う可能性のある技術の

初心者向けハンズオン

「とりあえず使ってみよう」レベル

Page 4: Code4NaraHandson2_151118

奈良オープンデータハッカソンデータソンとは

いままでの経緯

フューチャーセッション( 2015/9/5)– 多様な参加者による奈良をより良くするアイディア検討

– http://idea.linkdata.org/idea/idea1s1262i

マッピングイベント( 2015/10/17 )– バリアフリーや店舗に関する地理情報を収集

– http://idea.linkdata.org/idea/idea1s1273i

これらを踏まえ、新たなアプリやサービスの創出を目指す

Page 5: Code4NaraHandson2_151118

奈良オープンデータハッカソンデータソンとは

 過去の活動の成果を踏まえ、オープンデータを利用し、

Arduino や Rapsberry PI 等の小型 IoT デバイスも組み合わせ、

より良い未来の奈良市を目指した開発を行います。

 日時:  2015 年 12 月 5 日(土) 10:00 - 6 日(日) 18:00

 場所: 奈良市 きらっ都・奈良  3 階会議室

現在、申し込みサイトは準備中です。しばらくお待ちください。

Page 6: Code4NaraHandson2_151118

ということで

Page 7: Code4NaraHandson2_151118

今日の目標

Arduino を使って

実際に配線してみてL チカ( LED を点滅させる)

です。

モーターやセンサーの利用、通信等は各自で勉強してください。

Page 8: Code4NaraHandson2_151118

今日の概要

Step1   開発環境の設定

Step2    Arduino デバイスを認識させる

Step3   スケッチを使う (開く・検証・保存)

Step4    Arduino デバイスにスケッチを書き込む

Step5   電子工作入門( Arduino 基盤と LED をつなぐ)

Step6   接続した LED をチカチカさせてみる

Step7    LED を増やしてみる

Appendix   簡単な応用例

Page 9: Code4NaraHandson2_151118

Arudino とはArduino (アルドゥイーノ)は、 AVR マイコン、入出力ポートを備えた基板、

C++ 風の Arduino 言語とそれの統合開発環境から構成されるシステム

                                      (WikiPedia より)

フィジカル・コンピューティング・デバイス– 実際のものを動かしたり、センサーなどから情報を取り込むことができるデバイス

– 統合開発環境があるため、簡単に試作できる

オープンハードウエア– 回路を含めて公開されているので、多くの互換機が存在

– シールドと呼ばれる本体上部に接続するボードで機能拡張が可能

いろいろなハードウエアが流通している– 勉強会では Arduino UNO R3 を想定

– 準備の関係上、互換ボードも使います

Page 10: Code4NaraHandson2_151118

Arudino の開発Arduino IDE  (統合開発環境)

– クロスプラットフォームの Java アプリ。

– エディター、コンパイラー、基板へのファームウェア転送機能を含む。

– Arduino ではプログラムをスケッチと呼ぶ

– オープンソース

統合開発環境を使えば、ワンストップでソフトウェアを開発できるので、

不慣れな人でも比較的簡単にプログラミングができます

Page 11: Code4NaraHandson2_151118

作業の前に今日の資料、サンプルソースは以下にまとめています。

http://www.code4nara.org/151118/sample.zip

ダウンロードして任意のフォルダに展開してください。用意した Arduino 基板は「2種類」あります。「 Arduino UNO R3 」( UNO )「 Arduino互換ボード」(互換機)

USBドライバと、スケッチのピン番号が異なりますので注意してください。

Page 12: Code4NaraHandson2_151118

開発環境を作る

Page 13: Code4NaraHandson2_151118

Step1-1 :開発環境のダウンロード

ブラウザで http://arudino.cc/ にアクセス

Download タブを選択

最新版のインストーラをダウンロード– お使いの OS をクリックします。– Windows は Windows installer

ダウンロード実行– 下の 「 Just Download 」 をクリック (約 70MB )

OSを選ぶと寄付を求められます。このソフトが役立つと思った方は、次回ダウンロード時にでも寄付して下さい。

Page 14: Code4NaraHandson2_151118

Step1-2 :開発環境のインストール

Windows – Windows installer をダブルクリックなどで実行します

● License Agreement は 「 I Agree 」(承認)● Select components to install は全選択のまま「 Next 」● Install Folder を指定(変更しなくても OK) し、「 Install 」● 「デバイスソフトウエアをインストールしますか」 は全部インス

トール

Mac OS X– Zip ファイルを展開しアプリとして認識させる

「“ Java SE 6 ランタイムが必要です。今すぐインストールしますか?」と表示された場合は、「インストール」をクリックして進めます。

Page 15: Code4NaraHandson2_151118

Step2-1: 本体をつないでみようさっそく

  パソコンと USB ケーブルで接続してみましょう

Arduino UNO R3

  横に ON とある緑の LED が点灯します。 ここ

Page 16: Code4NaraHandson2_151118

Step2-2: デバイスの認識Windows :「コントロールパネル」⇒「デバイスとプリンタ」で確認

「不明なデバイス」と表示されていたら手動インストールします。

「ドライバの更新」⇒「手動で検索してインストール」を選びます。

◆UNO の場合

インストールフォルダの drivers を指定

例: C:\Program Files\Arduino\drivers

 

Page 17: Code4NaraHandson2_151118

スケッチを使う

Page 18: Code4NaraHandson2_151118

Step3-1 :スケッチを開いてみようスタート⇒すべてのアプリなどから Arduino IDE を起動し

ます

上部の「下矢印アイコン」または「ファイル」「開く」で、ダウンロードしたスケッチ sketch_151118_0 を開きます

Page 19: Code4NaraHandson2_151118

Step3-2 :スケッチを検証しようスケッチの保存

– 左端の下の「レ」印をクリック– 「スケッチ」⇒「 Verify/Compile 」

と同じ– 「コンパイルが完了しました」

と表示されると成功– 間違いがあると、右のように

エラーが表示されます。

編集1一番下に余計な GOMI があるので削除してから「検証」してみましょう

Page 20: Code4NaraHandson2_151118

Step3-3 :スケッチを保存しよう

作成・修正した後に、スケッチを

保存しないと消えてしまいます。

スケッチの保存– 右端の「下矢印アイコン」をクリック

– 別名で保存する場合は「ファイル」⇒「名前を付けて保存」

Page 21: Code4NaraHandson2_151118

Step4 :スケッチの中身

define LED_PIN 13

void setup () { pinMode (LED_PIN, OUTPUT); // 13番ピンをデジタル出力に設定}

void loop () { digitalWrite (LED_PIN, HIGH); // LED を点灯する delay (1000); // 1秒待機する (1000ミリ秒 ) digitalWrite (LED_PIN, LOW); // LED を消灯する delay (1000); // 1秒待機する}

初期化処理:最初に定義ことを書く

スケッチ内の LED_PIN を 13 に定義

繰り返し処理:実際にしたいことを書く

Page 22: Code4NaraHandson2_151118

スケッチを書き込む

Page 23: Code4NaraHandson2_151118

Step4 :書き込み先を確認しよう◆「ツール」⇒「マイコンボード」で Arduino の接続を確認

UNO :

Arduino/Genuino UNO

 

◆「ツール」⇒「シリアルポート」

  COM * がチェックされている

Page 24: Code4NaraHandson2_151118

Step4 :スケッチを書き込んでみよう

マイコンボードに書き込む– 上の「→」をクリック– 「書き込みが完了しました」

と表示されれば成功

検証・コンパイルも同時に行われます

書き込み完了後は、すぐに動作をはじめます– UNO:  L の LED が1秒おきに点滅します

ここ

Page 25: Code4NaraHandson2_151118

やっと工作のお時間

Page 26: Code4NaraHandson2_151118

Step5: 配線してみよう1使うもの

発光ダイオード(LED)  2個– 極性(プラス、マイナス)があるので注意

抵抗器 (今回は1 kΩ  茶・黒・赤・(金)のもの)https://ja.wikipedia.org/wiki/%E6%8A%B5%E6%8A%97%E5%99%A8

ブレッドボード

ジャンパワイヤー

Page 27: Code4NaraHandson2_151118

Step5: 配線してみよう2ブレッドボードとは

 予め配線されているので、LEDや抵抗などの部品や

 ジャンパワイヤを挿すだけで電子回路ができます。

配線パターン線がつながっている所

Page 28: Code4NaraHandson2_151118

Step5: 配線してみよう3USB ケーブルを外してから、下の順に接続するように配線します。

UNO 基板  PIN 9  

- 抵抗器( 1kΩ )  

- (プラス側:長いほう)

  LED

  (マイナス側:短いほう)

- UNO基板のGND

ピン番号

Page 29: Code4NaraHandson2_151118

Step6: 接続した LED をチカチカさせよう

USB 接続してから、 sketch_151118_03 を開き Arduino に書き込む

#define LED_PIN_A 9 // for UNO// #define LED_PIN_B 10 // for UNO

void setup() { pinMode(LED_PIN_A, OUTPUT);// pinMode(LED_PIN_B, OUTPUT);}

void loop() { digitalWrite( LED_PIN_A , HIGH);// digitalWrite( LED_PIN_B , LOW); delay(500);

digitalWrite( LED_PIN_A , LOW);// digitalWrite( LED_PIN_B , HIGH); delay(500);}

Page 30: Code4NaraHandson2_151118

Step7:LED を増やしてみようLED をもう一個増やしてみます。

UNO 基板  PIN 10

- 抵抗器( 1kΩ )  

- (プラス側:長いほう)

  LED

  (マイナス側:短いほう)

- UNO基板のGND

Page 31: Code4NaraHandson2_151118

Step7:LED を交互点滅させようArdino IDE で sketch_151118_03 を修正して書き込む

#define LED_PIN_A 9 // for UNO#define LED_PIN_B 10 // for UNO

void setup() { pinMode(LED_PIN_A, OUTPUT); pinMode(LED_PIN_B, OUTPUT);}

void loop() { digitalWrite( LED_PIN_A , HIGH); digitalWrite( LED_PIN_B , LOW); delay(500);

digitalWrite( LED_PIN_A , LOW); digitalWrite( LED_PIN_B , HIGH); delay(500);}

コメントを表す先頭の // を削除

先頭の // を削除先頭の // を削除先頭の // を削除

Page 32: Code4NaraHandson2_151118

Appendix時間のある方

Page 33: Code4NaraHandson2_151118

Appendix1: LED を明暗変化させるsketch_151118_04

#define LED_PIN_A 9 // for UNO#define LED_PIN_B 10 // for UNO

void setup() { pinMode(LED_PIN_A, OUTPUT); pinMode(LED_PIN_B, OUTPUT);}

void loop() { int i; for(i=0;i<256;i++){ analogWrite( LED_PIN_A , i); analogWrite( LED_PIN_B,(255-i) ); delay(10); } for(i=0;i<256;i++){ analogWrite( LED_PIN_A, (255-i) ); analogWrite( LED_PIN_B, i); delay(10); }}

この値によって明るさが変わる

Page 34: Code4NaraHandson2_151118

Appendix2: キーボードで点灯させる

sketch_151118_05IDE の、 「ツール」→「シリアルモニタ」を開き、  1 2 3 4 で、 LED を付けたり、消したりします。

#define LED_PIN_A 9 // for UNO #define LED_PIN_B 10 // for UNOvoid setup() { pinMode(LED_PIN_A, OUTPUT); pinMode(LED_PIN_B, OUTPUT); Serial.begin(9600);}void loop() { int inputchar; inputchar = Serial.read(); if(inputchar != -1 ){ switch(inputchar){ case '1': Serial.print("LED_A ON\n"); digitalWrite(LED_PIN_A, HIGH); break; case '2': Serial.print(“LED_A OFF\n”); digitalWrite(LED_PIN_A, LOW); break; case '3': Serial.print("LED_B ON\n"); digitalWrite(LED_PIN_B, HIGH); break; case '4': Serial.print("LED_B OFF\n"); digitalWrite(LED_PIN_B, LOW); break; } }}

シリアルモニタの利用設定入力された1文字を読み込む入力文字により処理を変える

シリアルモニタに文字を出力

Page 35: Code4NaraHandson2_151118

Appendix3: 距離センサーを使うsketch_151118_06  (ソースは長いので省略)

距離センサー HC-SR04 を、 UNO の各ピンに接続

 

動作

1秒おきに計測100cm 以下でLEDが1個点灯30cm 以下で LED が2個点灯計算された距離を「シリアルモニタ」に出力

HC-SR04 UNOVCC +5V

Trig PIN 4

Echo PIn 6

GND GND

Page 36: Code4NaraHandson2_151118

もっと知りたい人はWebページなどに常に多くの情報があるのでいろいろ調べてみて下さい。

いきなりは難しい、という方は、初心者向け書籍がお勧めです。

 例: たのしい電子工作 Arduino で電子工作をはじめよう! [第 2版 ]

実際に本屋で手に取って、内容を見てみるのもいいかもしれません。

パーツ類の入手方法

◆オンライン通販で購入できます  スイッチサイエンス   https://www.switch-science.com/  秋月通商         http://akizukidenshi.com/   Amazon http://www.amazon.co.jp/  など

◆実物を見て買いたい場合は  大阪日本橋の共立電子シリコンハウス   http://silicon.kyohritsu.com/ 

Page 37: Code4NaraHandson2_151118

(参考) Arduino 関連情報Arduino.cc

http://arudino.cc/  (統合開発環境など)https://www.arduino.cc/en/Reference/HomePage (リファレンス) 

Arduino 日本語リファレンスhttp://www.musashinodenpa.com/arduino/ref/

Arduino (WikiPedia)https://ja.wikipedia.org/wiki/Arduino

ArduBlock    初心者向け視覚的プログラム言語http://blog.ardublock.com/  (本家)http://hidapio.jp/ardublock/ardublock.htm (改変版)

Arduino UNO R3https://www.switch-science.com/catalog/789/

Arduino をはじめようキット (最初に買うものとしてオススメ)https://www.switch-science.com/catalog/181/