SlideShare a Scribd company logo
Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
Arduinoで簡単回路作成実演
2015年05月23日
先端IT活用推進コンソーシアム
クラウド・テクノロジー活用部会 リーダー
アドソル日進株式会社 荒本道隆
Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
• Arduinoの実演販売風
– ハンズオンは、デバイスの準備が大変
• 経験を積んだ人なら、見ただけで分かるはず
– ライブコーディングならぬ、ライブ回路作成
このセッションについて
2
Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
Arduino とは
Arduino はスタンドアロン型のインタラクティブデバイス開発だけでなく、ホスト
コンピュータ上のソフトウェア(例えば、Adobe Flash、Processing、Max/MSP、
Pure Data、SuperCollider)で制御することもできる。オープンソースハード
ウェアでありハードウェア設計情報のEAGLEファイルは無料で公開されてお
り、組み立て済みの基板を購入することもできるほか、誰でも自分の手で
Arduino を組み立てることができる。
Arduinoプロジェクトは2005年にイタリアで 始まり、当時入手可能だった他の
学生向けのロボット製造用コントロールデバイスよりも安価なプロトタイピン
グ・システムを製造することを目的にスタートし た。設計グループは多くの競
合製品よりも遥かに安価で簡単に使用できるプラットフォームの開発に成功し
た。Arduinoボードは、2008年10月までに5万ユニット以上[3]が、2011年2月
で約15万台[4]販売されている。Arduinoプロジェクトは2006年度のアルス・エ
レクトロニカ賞で名誉言及を受けている。[5][6][7]
ウィキペデアより
3
Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
Arduinoの特徴
• アナログ・デジタルの入出力が複数ある
– そこにセンサやリレーを簡単に接続できる
• 豊富なシールド
– イーサネット, GPS, LCD, モーター制御
– http://ideahack.me/article/147
• センサ以外は、使い慣れた技術・用語が多い
– USB, シリアル, HTTP, TCP/IP
• 取り扱いが容易
– 不器用な私でも何とかなった
• 無線シールドの半田付けに失敗し、3つほど捨てたけど
– そんなに高くない
• 壊してしまっても、大人なら平気
色々と追加すると、
Raspberry PI の方が
安上がりな場合も
4
Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
機器購入時の注意事項
• 無線LAN, Bluetoothは、技適が付いているか?
– 海外の無線シールドには、技適が付いていない
– 技適が付いていないものを使うデメリット
• 発表時に、構成を詳しく言えない
• 電波法違反=「1年以下の懲役又は100万円以下の罰金刑に処せ
れる」
– 有線→無線変換が簡単
• 配置時
– 電源の確保
• スマホの充電で使うUSBアダプタが大活躍
• センサだけなら、電池でも結構持つ
– 無線LANを電池で使いたいなら、省電力のものを選択
5
Amazon「PLANEX 充電万能
2ポートUSB充電器 ホワイト」
1,002-
Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
Arduinoの概要
デジタル入出力(プログラムで切り替え)
アナログ入力(0~1023の範囲)電源
出力にすると
5V, 40mA
6
Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
ブレッドボードの概要
+-だけ縦に
つながっている
横に
つながっている
GND 5V
7
横に
つながっている
a~e, f~j
Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
プロトタイピング
開発時
テスト配置時
8
Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
ドライバと開発環境をインストール
• ダウンロード
– http://arduino.cc/en/main/software
• Windows
– 「Windows ZIP file」をダウンロードして、解凍
– driversarduino.inf を右クリックして「インストール」
– Arduino を接続
– arduino.exe でIDEを起動
– メニューの「ツール」から
• →「シリアルポート」→「COM3」(PCによって違う)を選択
• →「マイコンボード」→「Arduino Uno」を選択
• Mac
– 「Mac OS X」をダウンロードして、解凍
– Arduino を接続
– arduino でIDEを起動
– メニューの「ツール」から
• →「シリアルポート」→「/dev/tty.usbmodem3d11」を選択
• →「マイコンボード」→「Arduino Uno」を選択
9
Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
練習問題
• LEDを点ける
– 状況が目視できるようになる
5VとGND
を取り出す 5V側に抵抗
を入れる
足の長い方が+
挿し易いように、カット済み
LEDの仕様で
抵抗値は違う
抵抗無しだと
焼き切れる事も
10
Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
ステップ1-1
• LEDを1秒ごとに点滅させる
– デジタルの8番をLEDの+に接続
• さっきまでの5Vの線は外す
デジタルの8番
11
Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
• LEDを1秒ごとに点滅させる
– 次にプログラムを作成
1.コンパイル
2.書き込み
ちょっと発展形
ステップ1-2
おまけ
高速に点灯と消灯を
繰り返せば、明るさ
を調節できる
#define LED_OUTPUT 8
boolean led = false;
void setup() {
pinMode(LED_OUTPUT, OUTPUT);
}
void loop() {
led = !led; // 反転
digitalWrite(LED_OUTPUT, led);
delay(1000);
}
書き込んだら、
自動で実行開始
12
Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
ステップ2-1
• 照度センサの値をPCで参照
– 照度センサをアナログの0番に入力
• 足の短い方:5V
• 足の長い方:GND→抵抗→、A0に渡す
セ
ン
サ
A0へ入力
13
Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
ステップ2-2
• 照度センサの値をPCで参照
– プログラムを作成
– 実行後は、「ツール」→「シリアルモニタ」で確認
#define LED_OUTPUT 8
#define CDS_INPUT 0
boolean led = true;
void setup() {
Serial.begin(9600);
}
void loop() {
int val = analogRead(CDS_INPUT);
Serial.print ("CdS :");
Serial.print (val);
Serial.println();
delay(1000);
}
14
Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
ステップ3
• 「暗くなったら、LEDを灯す」を実現
– ステップ2のプログラムを改良
#define LED_OUTPUT 8
#define CDS_INPUT 0
boolean led = LOW;
void setup() {
pinMode(LED_OUTPUT, OUTPUT);
// Serial.begin(9600);
}
void loop() {
int val = analogRead(CDS_INPUT);
if (val < 400){ // 暗ければ
led = HIGH; // 点ける
} else { // そうでなければ、
led = LOW; // 消す
}
digitalWrite(LED_OUTPUT, led);
delay(100); // 反応の遅延を減らす
}
閾値は、場所に合わせて調整
15
Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
その他のセンサ
• 人感センサ
– Panasonic AMN41121
• 温湿度センサ
– DHT11
デジタルで、HIGH/LOWを読むだけ
シリアル通信するので、
ちょっと大変
アナログに挿しても、楽しい
16
Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
• 仕様
– 人感センサの状態をLEDで表示
– ある程度暗くて、人が居たら、照明(別のLED)を点ける
– 人が居なくなったら、しばらく(3秒)したら照明を消す
– 照明を点けた/消した、をサーバに記録
– デジタル入力を使うには
• pinMode(ピン番号, INPUT);
• int a = digitalRead(ピン番号);
17
Panasonic AMN41121
人感センサを裏面から見た図
5V
GNDGND
デジタルの7番へ
100KΩ(茶黒黄金)
「人感照明」の作成例
Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
温度測定
• 温湿度センサ(DHT11)とはシリアル通信
– 専用のライブラリが公開されている
• http://playground.arduino.cc/main/DHT11Lib
– 安物(300円)なので精度と耐久度に不安
• AM2302という高級品(1,000円)もある
18
http://learning.grobotronics.com/2013/07/
measuring-humidity-with-dht11-sensor/
Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
HTTP通信に必要なもの
• イーサネットシールドでHTTP通信
– Macアドレスをハードコード、LAN内で重複しないように
– DNSを参照するのは手間なので、直IPアドレスで指定
– 別機器で無線LAN化(コンバータモードを使用)
イーサネットシールド
無線LAN化機器
PLANEX MZK-PR150N
19
Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
HTTP通信(サンプル前半)
#include <SPI.h>
#include <Ethernet.h>
#define LED_OUTPUT 8
#define CDS_INPUT 0
boolean led = LOW;
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; // 自分のMACを決める
IPAddress server(219,101,208,155); // 接続先のIPアドレス
int port = 80; // 接続先のポート番号
void setup() {
pinMode(LED_OUTPUT, OUTPUT);
Serial.begin(9600);
Serial.println("DHCP Request");
for(;Ethernet.begin(mac) == 0;) { // DHCPサーバからIPアドレスを取得
Serial.println("Failed to configure Ethernet using DHCP");
delay(10000);
}
Serial.println("START!");
}
20
Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
HTTP通信(サンプル後半)
void loop(){
int val = analogRead(CDS_INPUT);
boolean writeFlag = false;
if (val < 400){ // 暗ければ
if (led != HIGH){
led = HIGH; // 点ける
writeFlag = true;
}
} else { // そうでなければ、
if (led != LOW){
led = LOW; // 消す
writeFlag = true;
}
}
if (writeFlag == true){
digitalWrite(LED_OUTPUT, led);
Serial.print ("CdS :");
Serial.print (val);
Serial.println();
EthernetClient client;
if (client.connect(server, port)) {
Serial.println("HTTP connected");
// Make a HTTP request:
client.print("GET /arduino/ID/");// IDを識別できる名前に変更
client.print("?LED=");
client.print(led);
client.print(“&cds=");
client.print(val);
client.print(" HTTP/1.0");
client.println();
client.println();
delay(100); // 送信が終わるまで、ちょっと待つ
client.stop();
}
}
delay(100);
}
21
Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
注意事項
• 回路変更時には、必ず電源を抜く
• 抵抗値の計算について
– よく分からなければ、計算用サイトを利用
• http://diy.tommy-bright.com/
• Arduinoの電流量は貧弱
– 5V, 40mA
• 比較例:単三電池は1.5V, 100mA
– サーボモータなど大電流が必要な物は、別電源が必要
• 24時間運転する場合は
– ちゃんとケースに入れましょう
22
http://d.hatena.ne.jp/koki-
h/comment/20090407/1239090406
Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
後片付け
• ブレッドボード上に、最初の状態に戻す
23
Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
http://aitc.jp
https://www.facebook.com/aitc.jp
最新情報は
こちらをご参照ください
ハルミン
AITC非公式イメージキャラクター
Arduino+Raspberry PI で、
なんでもできます
センサって意外と単純

More Related Content

PDF
2016年11月19日 AITCシニア技術者勉強会 第1回「Arduinoを使ってみる」
PDF
2016年12月21日 AITCシニア技術者勉強会 第2回「センサに反応する総天然色イルミネーションを作ってみよう!」
PDF
.NET Gadgeteerでプロトタイピングする EnOceanエネルギーハーベスティング システム
PDF
D2Cコンテスト 2013 参加者トレーニング .NET Gadgeteer の活用
PDF
[SDN JAPAN 2013] IaaS事業者が考える真のSDN
PDF
20140922 ble bootcamp
PPTX
20160320 BLE4.2勉強会 MakerLab Nagoya
PDF
プログラマ目線から見たRDMAのメリットと その応用例について
2016年11月19日 AITCシニア技術者勉強会 第1回「Arduinoを使ってみる」
2016年12月21日 AITCシニア技術者勉強会 第2回「センサに反応する総天然色イルミネーションを作ってみよう!」
.NET Gadgeteerでプロトタイピングする EnOceanエネルギーハーベスティング システム
D2Cコンテスト 2013 参加者トレーニング .NET Gadgeteer の活用
[SDN JAPAN 2013] IaaS事業者が考える真のSDN
20140922 ble bootcamp
20160320 BLE4.2勉強会 MakerLab Nagoya
プログラマ目線から見たRDMAのメリットと その応用例について

What's hot (20)

PDF
150130 edison-ug
PDF
Aerospike on IDCF Cloud
PDF
SCALR OSS版のインストール手順のご紹介 20131204 01
PDF
VYATTA USERS MEETING Autumn 2013_idcf
PDF
MPLS_JAPAN_2013_IDCF
PDF
実話!実はIDCFクラウドって◯◯なんです
PDF
第1回 静岡 IT Pro 勉強会 セッション1
PDF
ベアメタルサーバー/オンプレミスと実現するハイブリッドクラウド
PDF
サーバー初心者のためのWordPressサイト構築手順
PPTX
Intel edison edison向け基板のご紹介
PDF
実践!DBベンチマークツールの使い方
PPTX
July techfesta2014 f30
PDF
201310 ITproEXPO_clouddaystokyo2013fall_idcf
PDF
Line hackson20170121
PDF
サーバー初心者のためのWordPressサイト構築手順
PDF
Vagrantでクラウド上にdocker環境を作る
PDF
2017年01月21日 AITCシニア技術者勉強会 第3回「各種センサーを使ってみよう!~温湿度と加速度~」
PDF
ハードウエアの会社ですがクラウドサービスを開発してみた
PDF
ネットワークスイッチ構築実践 1.VLAN・LinkAggregation編
PPTX
0円でできる自宅InfiniBandプログラム
150130 edison-ug
Aerospike on IDCF Cloud
SCALR OSS版のインストール手順のご紹介 20131204 01
VYATTA USERS MEETING Autumn 2013_idcf
MPLS_JAPAN_2013_IDCF
実話!実はIDCFクラウドって◯◯なんです
第1回 静岡 IT Pro 勉強会 セッション1
ベアメタルサーバー/オンプレミスと実現するハイブリッドクラウド
サーバー初心者のためのWordPressサイト構築手順
Intel edison edison向け基板のご紹介
実践!DBベンチマークツールの使い方
July techfesta2014 f30
201310 ITproEXPO_clouddaystokyo2013fall_idcf
Line hackson20170121
サーバー初心者のためのWordPressサイト構築手順
Vagrantでクラウド上にdocker環境を作る
2017年01月21日 AITCシニア技術者勉強会 第3回「各種センサーを使ってみよう!~温湿度と加速度~」
ハードウエアの会社ですがクラウドサービスを開発してみた
ネットワークスイッチ構築実践 1.VLAN・LinkAggregation編
0円でできる自宅InfiniBandプログラム
Ad

Similar to 2015/05/23 シニア技術者プログラム第3弾 「第二回IoT勉強会&交流会」 15:00~15:20 Arduinoで簡単回路作成実演 (20)

PPT
平成26年度熊本高専Arduino講座 第1週 センサーとArduno及びProcessingとの連携
PPTX
Lチカで終わらせないArduino シリアル通信 Part1(移行済)
PDF
第2回 某社Arduino勉強会 ハンズオン
PDF
Arduinoでプログラミングに触れてみよう 続編
PDF
SFC デザイン言語WS(電子工作)第3回「電子工作の作法」
PPTX
Arduino 入門
PPTX
PDF
プログラムによる計測と制御の仕組みを学ぶための学習支援ソフトウェア (ポスター)
PDF
20110724 WIZDOM:知識ゼロからのArduino(1)
PDF
今すぐ始めるArduino
PDF
ものづくりプロジェクトII 一日でわかるArduino入門
ODP
【入門】Arduino勉強会
PDF
Make @ Osaka
PDF
20140910 Arduino for beginners
PDF
SFC デザイン言語WS(電子工作)第4回「センサーを使う」
PDF
12.06.16 日本橋勉強会資料 公開用
PDF
Python, RaspberryPi, Arduinoで作る消費電力モニタリングシステム
PDF
KOGEI & KAIT Funnel WS
PDF
平成25年社会人講座 Arduinoによるマイコン入門講座
PDF
プログラムによる計測と制御の仕組みを学ぶための学習支援ソフトウェア
平成26年度熊本高専Arduino講座 第1週 センサーとArduno及びProcessingとの連携
Lチカで終わらせないArduino シリアル通信 Part1(移行済)
第2回 某社Arduino勉強会 ハンズオン
Arduinoでプログラミングに触れてみよう 続編
SFC デザイン言語WS(電子工作)第3回「電子工作の作法」
Arduino 入門
プログラムによる計測と制御の仕組みを学ぶための学習支援ソフトウェア (ポスター)
20110724 WIZDOM:知識ゼロからのArduino(1)
今すぐ始めるArduino
ものづくりプロジェクトII 一日でわかるArduino入門
【入門】Arduino勉強会
Make @ Osaka
20140910 Arduino for beginners
SFC デザイン言語WS(電子工作)第4回「センサーを使う」
12.06.16 日本橋勉強会資料 公開用
Python, RaspberryPi, Arduinoで作る消費電力モニタリングシステム
KOGEI & KAIT Funnel WS
平成25年社会人講座 Arduinoによるマイコン入門講座
プログラムによる計測と制御の仕組みを学ぶための学習支援ソフトウェア
Ad

More from aitc_jp (20)

PPTX
ITフォーラム2025 先端IT活用推進コミュニティ セッション1:AITCの活動紹介
PPTX
ITフォーラム2025 先端IT活用推進コミュニティ セッション1:AITCの活動紹介
PDF
ITフォーラム2025 先端IT活用推進コミュニティ セッション4:コンテキストコンピューティング研究グループの取り組み
PDF
ITフォーラム2025 先端IT活用推進コミュニティ セッション6:「下り坂の雲」の行き先を灯す、これからのITの使い方
PDF
ITフォーラム2025 先端IT活用推進コミュニティ セッション5:ビジネスXRの転回
PDF
ITフォーラム2025 先端IT活用推進コミュニティ セッション3:空気を読む家スタジオの取り組み
PDF
ITフォーラム2025 先端IT活用推進コミュニティ セッション2:オープンラボの取り組み
PDF
ITフォーラム2025 先端IT活用推進コミュニティ セッション:オープニング・タイムテーブル
PDF
ITフォーラム2024 AITCセッション(5)
PDF
ITフォーラム2024 AITCセッション(4)
PDF
ITフォーラム2024 AITCセッション(3)
PDF
ITフォーラム2024 AITCセッション(2)
PDF
ITフォーラム2024 AITCセッション
PDF
2)AIを活用したウェルビーイングを測定
PDF
TForum2023_AITC_2.pdf
PDF
2)AIを活用したウェルビーイングを測定
PDF
5)パネルディスカッション:『空気を読む家』×ウェルビーイング/メタバース・Web3
PDF
4)技術視点でウェルビーイングを考える
PDF
3-2)『空気を読む家』とメタバース駆動開発構想
PDF
3-1)『空気を読む家』とメタバース駆動開発構想 空間OS モノと社会をつなげる
ITフォーラム2025 先端IT活用推進コミュニティ セッション1:AITCの活動紹介
ITフォーラム2025 先端IT活用推進コミュニティ セッション1:AITCの活動紹介
ITフォーラム2025 先端IT活用推進コミュニティ セッション4:コンテキストコンピューティング研究グループの取り組み
ITフォーラム2025 先端IT活用推進コミュニティ セッション6:「下り坂の雲」の行き先を灯す、これからのITの使い方
ITフォーラム2025 先端IT活用推進コミュニティ セッション5:ビジネスXRの転回
ITフォーラム2025 先端IT活用推進コミュニティ セッション3:空気を読む家スタジオの取り組み
ITフォーラム2025 先端IT活用推進コミュニティ セッション2:オープンラボの取り組み
ITフォーラム2025 先端IT活用推進コミュニティ セッション:オープニング・タイムテーブル
ITフォーラム2024 AITCセッション(5)
ITフォーラム2024 AITCセッション(4)
ITフォーラム2024 AITCセッション(3)
ITフォーラム2024 AITCセッション(2)
ITフォーラム2024 AITCセッション
2)AIを活用したウェルビーイングを測定
TForum2023_AITC_2.pdf
2)AIを活用したウェルビーイングを測定
5)パネルディスカッション:『空気を読む家』×ウェルビーイング/メタバース・Web3
4)技術視点でウェルビーイングを考える
3-2)『空気を読む家』とメタバース駆動開発構想
3-1)『空気を読む家』とメタバース駆動開発構想 空間OS モノと社会をつなげる

2015/05/23 シニア技術者プログラム第3弾 「第二回IoT勉強会&交流会」 15:00~15:20 Arduinoで簡単回路作成実演

  • 1. Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. Arduinoで簡単回路作成実演 2015年05月23日 先端IT活用推進コンソーシアム クラウド・テクノロジー活用部会 リーダー アドソル日進株式会社 荒本道隆
  • 2. Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. • Arduinoの実演販売風 – ハンズオンは、デバイスの準備が大変 • 経験を積んだ人なら、見ただけで分かるはず – ライブコーディングならぬ、ライブ回路作成 このセッションについて 2
  • 3. Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. Arduino とは Arduino はスタンドアロン型のインタラクティブデバイス開発だけでなく、ホスト コンピュータ上のソフトウェア(例えば、Adobe Flash、Processing、Max/MSP、 Pure Data、SuperCollider)で制御することもできる。オープンソースハード ウェアでありハードウェア設計情報のEAGLEファイルは無料で公開されてお り、組み立て済みの基板を購入することもできるほか、誰でも自分の手で Arduino を組み立てることができる。 Arduinoプロジェクトは2005年にイタリアで 始まり、当時入手可能だった他の 学生向けのロボット製造用コントロールデバイスよりも安価なプロトタイピン グ・システムを製造することを目的にスタートし た。設計グループは多くの競 合製品よりも遥かに安価で簡単に使用できるプラットフォームの開発に成功し た。Arduinoボードは、2008年10月までに5万ユニット以上[3]が、2011年2月 で約15万台[4]販売されている。Arduinoプロジェクトは2006年度のアルス・エ レクトロニカ賞で名誉言及を受けている。[5][6][7] ウィキペデアより 3
  • 4. Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. Arduinoの特徴 • アナログ・デジタルの入出力が複数ある – そこにセンサやリレーを簡単に接続できる • 豊富なシールド – イーサネット, GPS, LCD, モーター制御 – http://ideahack.me/article/147 • センサ以外は、使い慣れた技術・用語が多い – USB, シリアル, HTTP, TCP/IP • 取り扱いが容易 – 不器用な私でも何とかなった • 無線シールドの半田付けに失敗し、3つほど捨てたけど – そんなに高くない • 壊してしまっても、大人なら平気 色々と追加すると、 Raspberry PI の方が 安上がりな場合も 4
  • 5. Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 機器購入時の注意事項 • 無線LAN, Bluetoothは、技適が付いているか? – 海外の無線シールドには、技適が付いていない – 技適が付いていないものを使うデメリット • 発表時に、構成を詳しく言えない • 電波法違反=「1年以下の懲役又は100万円以下の罰金刑に処せ れる」 – 有線→無線変換が簡単 • 配置時 – 電源の確保 • スマホの充電で使うUSBアダプタが大活躍 • センサだけなら、電池でも結構持つ – 無線LANを電池で使いたいなら、省電力のものを選択 5 Amazon「PLANEX 充電万能 2ポートUSB充電器 ホワイト」 1,002-
  • 6. Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. Arduinoの概要 デジタル入出力(プログラムで切り替え) アナログ入力(0~1023の範囲)電源 出力にすると 5V, 40mA 6
  • 7. Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. ブレッドボードの概要 +-だけ縦に つながっている 横に つながっている GND 5V 7 横に つながっている a~e, f~j
  • 8. Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. プロトタイピング 開発時 テスト配置時 8
  • 9. Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. ドライバと開発環境をインストール • ダウンロード – http://arduino.cc/en/main/software • Windows – 「Windows ZIP file」をダウンロードして、解凍 – driversarduino.inf を右クリックして「インストール」 – Arduino を接続 – arduino.exe でIDEを起動 – メニューの「ツール」から • →「シリアルポート」→「COM3」(PCによって違う)を選択 • →「マイコンボード」→「Arduino Uno」を選択 • Mac – 「Mac OS X」をダウンロードして、解凍 – Arduino を接続 – arduino でIDEを起動 – メニューの「ツール」から • →「シリアルポート」→「/dev/tty.usbmodem3d11」を選択 • →「マイコンボード」→「Arduino Uno」を選択 9
  • 10. Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 練習問題 • LEDを点ける – 状況が目視できるようになる 5VとGND を取り出す 5V側に抵抗 を入れる 足の長い方が+ 挿し易いように、カット済み LEDの仕様で 抵抗値は違う 抵抗無しだと 焼き切れる事も 10
  • 11. Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. ステップ1-1 • LEDを1秒ごとに点滅させる – デジタルの8番をLEDの+に接続 • さっきまでの5Vの線は外す デジタルの8番 11
  • 12. Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. • LEDを1秒ごとに点滅させる – 次にプログラムを作成 1.コンパイル 2.書き込み ちょっと発展形 ステップ1-2 おまけ 高速に点灯と消灯を 繰り返せば、明るさ を調節できる #define LED_OUTPUT 8 boolean led = false; void setup() { pinMode(LED_OUTPUT, OUTPUT); } void loop() { led = !led; // 反転 digitalWrite(LED_OUTPUT, led); delay(1000); } 書き込んだら、 自動で実行開始 12
  • 13. Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. ステップ2-1 • 照度センサの値をPCで参照 – 照度センサをアナログの0番に入力 • 足の短い方:5V • 足の長い方:GND→抵抗→、A0に渡す セ ン サ A0へ入力 13
  • 14. Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. ステップ2-2 • 照度センサの値をPCで参照 – プログラムを作成 – 実行後は、「ツール」→「シリアルモニタ」で確認 #define LED_OUTPUT 8 #define CDS_INPUT 0 boolean led = true; void setup() { Serial.begin(9600); } void loop() { int val = analogRead(CDS_INPUT); Serial.print ("CdS :"); Serial.print (val); Serial.println(); delay(1000); } 14
  • 15. Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. ステップ3 • 「暗くなったら、LEDを灯す」を実現 – ステップ2のプログラムを改良 #define LED_OUTPUT 8 #define CDS_INPUT 0 boolean led = LOW; void setup() { pinMode(LED_OUTPUT, OUTPUT); // Serial.begin(9600); } void loop() { int val = analogRead(CDS_INPUT); if (val < 400){ // 暗ければ led = HIGH; // 点ける } else { // そうでなければ、 led = LOW; // 消す } digitalWrite(LED_OUTPUT, led); delay(100); // 反応の遅延を減らす } 閾値は、場所に合わせて調整 15
  • 16. Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. その他のセンサ • 人感センサ – Panasonic AMN41121 • 温湿度センサ – DHT11 デジタルで、HIGH/LOWを読むだけ シリアル通信するので、 ちょっと大変 アナログに挿しても、楽しい 16
  • 17. Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. • 仕様 – 人感センサの状態をLEDで表示 – ある程度暗くて、人が居たら、照明(別のLED)を点ける – 人が居なくなったら、しばらく(3秒)したら照明を消す – 照明を点けた/消した、をサーバに記録 – デジタル入力を使うには • pinMode(ピン番号, INPUT); • int a = digitalRead(ピン番号); 17 Panasonic AMN41121 人感センサを裏面から見た図 5V GNDGND デジタルの7番へ 100KΩ(茶黒黄金) 「人感照明」の作成例
  • 18. Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 温度測定 • 温湿度センサ(DHT11)とはシリアル通信 – 専用のライブラリが公開されている • http://playground.arduino.cc/main/DHT11Lib – 安物(300円)なので精度と耐久度に不安 • AM2302という高級品(1,000円)もある 18 http://learning.grobotronics.com/2013/07/ measuring-humidity-with-dht11-sensor/
  • 19. Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. HTTP通信に必要なもの • イーサネットシールドでHTTP通信 – Macアドレスをハードコード、LAN内で重複しないように – DNSを参照するのは手間なので、直IPアドレスで指定 – 別機器で無線LAN化(コンバータモードを使用) イーサネットシールド 無線LAN化機器 PLANEX MZK-PR150N 19
  • 20. Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. HTTP通信(サンプル前半) #include <SPI.h> #include <Ethernet.h> #define LED_OUTPUT 8 #define CDS_INPUT 0 boolean led = LOW; byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; // 自分のMACを決める IPAddress server(219,101,208,155); // 接続先のIPアドレス int port = 80; // 接続先のポート番号 void setup() { pinMode(LED_OUTPUT, OUTPUT); Serial.begin(9600); Serial.println("DHCP Request"); for(;Ethernet.begin(mac) == 0;) { // DHCPサーバからIPアドレスを取得 Serial.println("Failed to configure Ethernet using DHCP"); delay(10000); } Serial.println("START!"); } 20
  • 21. Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. HTTP通信(サンプル後半) void loop(){ int val = analogRead(CDS_INPUT); boolean writeFlag = false; if (val < 400){ // 暗ければ if (led != HIGH){ led = HIGH; // 点ける writeFlag = true; } } else { // そうでなければ、 if (led != LOW){ led = LOW; // 消す writeFlag = true; } } if (writeFlag == true){ digitalWrite(LED_OUTPUT, led); Serial.print ("CdS :"); Serial.print (val); Serial.println(); EthernetClient client; if (client.connect(server, port)) { Serial.println("HTTP connected"); // Make a HTTP request: client.print("GET /arduino/ID/");// IDを識別できる名前に変更 client.print("?LED="); client.print(led); client.print(“&cds="); client.print(val); client.print(" HTTP/1.0"); client.println(); client.println(); delay(100); // 送信が終わるまで、ちょっと待つ client.stop(); } } delay(100); } 21
  • 22. Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 注意事項 • 回路変更時には、必ず電源を抜く • 抵抗値の計算について – よく分からなければ、計算用サイトを利用 • http://diy.tommy-bright.com/ • Arduinoの電流量は貧弱 – 5V, 40mA • 比較例:単三電池は1.5V, 100mA – サーボモータなど大電流が必要な物は、別電源が必要 • 24時間運転する場合は – ちゃんとケースに入れましょう 22 http://d.hatena.ne.jp/koki- h/comment/20090407/1239090406
  • 23. Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 後片付け • ブレッドボード上に、最初の状態に戻す 23
  • 24. Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. http://aitc.jp https://www.facebook.com/aitc.jp 最新情報は こちらをご参照ください ハルミン AITC非公式イメージキャラクター Arduino+Raspberry PI で、 なんでもできます センサって意外と単純