Code4NaraHandson2_151118

Post on 10-Apr-2017

121 views 1 download

Transcript of Code4NaraHandson2_151118

2015.11.18Code for Nara

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

Arduino で L チカをしてみよう

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

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

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

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

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

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

勉強会の目的

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

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

初心者向けハンズオン

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

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

いままでの経緯

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

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

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

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

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

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

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

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

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

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

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

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

ということで

今日の目標

Arduino を使って

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

です。

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

今日の概要

Step1   開発環境の設定

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

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

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

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

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

Step7    LED を増やしてみる

Appendix   簡単な応用例

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

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

                                      (WikiPedia より)

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

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

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

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

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

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

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

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

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

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

– オープンソース

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

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

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

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

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

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

開発環境を作る

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

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

Download タブを選択

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

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

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

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 ランタイムが必要です。今すぐインストールしますか?」と表示された場合は、「インストール」をクリックして進めます。

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

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

Arduino UNO R3

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

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

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

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

◆UNO の場合

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

例: C:\Program Files\Arduino\drivers

 

スケッチを使う

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

ます

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

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

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

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

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

エラーが表示されます。

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

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

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

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

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

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

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 に定義

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

スケッチを書き込む

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

UNO :

Arduino/Genuino UNO

 

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

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

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

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

と表示されれば成功

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

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

ここ

やっと工作のお時間

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

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

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

ブレッドボード

ジャンパワイヤー

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

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

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

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

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

UNO 基板  PIN 9  

- 抵抗器( 1kΩ )  

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

  LED

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

- UNO基板のGND

ピン番号

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);}

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

UNO 基板  PIN 10

- 抵抗器( 1kΩ )  

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

  LED

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

- UNO基板のGND

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);}

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

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

Appendix時間のある方

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); }}

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

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文字を読み込む入力文字により処理を変える

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

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

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

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

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

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

パーツ類の入手方法

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

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

(参考) 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/