SlideShare a Scribd company logo
Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
Arduinoを使ってみる
2016年11月19日
先端IT活用推進コンソーシアム
クラウド・テクノロジー活用部会 リーダー
アドソル日進株式会社 荒本道隆
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]
ウィキペデアより
2
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 の方が
安上がりな場合も
3
Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
機器購入時の注意事項
• 無線LAN, Bluetoothは、技適が付いているか?
– 海外の無線シールドには、技適が付いていない
– 技適が付いていないものを使うデメリット
• 発表時に、構成を詳しく言えない
• 電波法違反=「1年以下の懲役又は100万円以下の罰金刑に処せ
れる」
– 有線→無線変換が簡単
• 配置時
– 電源の確保
• スマホの充電で使うUSBアダプタが大活躍
• センサだけなら、電池でも結構持つ
– 無線LANを電池で使いたいなら、省電力のものを選択
4
Amazon「PLANEX 充電万能
2ポートUSB充電器 ホワイト」
¥1,002-
Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
Arduinoの概要
デジタル入出力(プログラムで切り替え)
アナログ入力(0~1023の範囲)電源
出力にすると
5V, 40mA
5
Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
ブレッドボードの概要
+-だけ縦に
つながっている
横に
つながっている
GND 5V
6
横に
つながっている
a~e, f~j
Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
プロトタイピング
開発時
テスト配置時
7
Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
ドライバと開発環境をインストール
• ダウンロード
– http://arduino.cc/en/main/software
• Windows
– 「Windows ZIP file」をダウンロードして、解凍
– drivers¥arduino.inf を右クリックして「インストール」
– Arduino を接続
– arduino.exe でIDEを起動
– メニューの「ツール」から
• →「シリアルポート」→「COM3」(PCによって違う)を選択
• →「マイコンボード」→「Arduino Uno」を選択
• Mac
– 「Mac OS X」をダウンロードして、解凍
– Arduino を接続
– arduino でIDEを起動
– メニューの「ツール」から
• →「シリアルポート」→「/dev/tty.usbmodem3d11」を選択
• →「マイコンボード」→「Arduino Uno」を選択
8
Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
練習問題
• LEDを点ける
– 状況が目視できるようになる
5VとGND
を取り出す 5V側に抵抗
を入れる
足の長い方が+
挿し易いように、カット済み
LEDの仕様で
抵抗値は違う
抵抗無しだと
焼き切れる事も
9
Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
ステップ1-1
• LEDを1秒ごとに点滅させる
– デジタルの8番をLEDの+に接続
• さっきまでの5Vの線は外す
デジタルの8番
10
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);
}
書き込んだら、
自動で実行開始
11
Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
ステップ2-1
• 照度センサの値をPCで参照
– 照度センサをアナログの0番に入力
• 足の短い方:5V
• 足の長い方:GND→抵抗→、A0に渡す
セ
ン
サ
A0へ入力
12
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);
}
13
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); // 反応の遅延を減らす
}
閾値は、場所に合わせて調整
14
Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
その他のセンサ
• 人感センサ
– Panasonic AMN41121
• 温湿度センサ
– DHT11
デジタルで、HIGH/LOWを読むだけ
シリアル通信するので、
ちょっと大変
アナログに挿しても、楽しい
15
Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
• 仕様
– 人感センサの状態をLEDで表示
– ある程度暗くて、人が居たら、照明(別のLED)を点ける
– 人が居なくなったら、しばらく(3秒)したら照明を消す
– 照明を点けた/消した、をサーバに記録
– デジタル入力を使うには
• pinMode(ピン番号, INPUT);
• int a = digitalRead(ピン番号);
16
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円)もある
17
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
18
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!");
}
19
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);
}
20
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時間運転する場合は
– ちゃんとケースに入れましょう
21
http://d.hatena.ne.jp/koki-
h/comment/20090407/1239090406
Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
後片付け
• ブレッドボード上に、最初の状態に戻す
22
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

PPTX
2015/05/23 シニア技術者プログラム第3弾 「第二回IoT勉強会&交流会」 15:00~15:20 Arduinoで簡単回路作成実演
PDF
.NET Gadgeteerでプロトタイピングする EnOceanエネルギーハーベスティング システム
PDF
2016年12月21日 AITCシニア技術者勉強会 第2回「センサに反応する総天然色イルミネーションを作ってみよう!」
PPTX
20160320 BLE4.2勉強会 MakerLab Nagoya
PDF
20140922 ble bootcamp
PDF
ネットワークスイッチ構築実践 1.VLAN・LinkAggregation編
PDF
ネットワーク構築訓練 入門
PDF
D2Cコンテスト 2013 参加者トレーニング .NET Gadgeteer の活用
2015/05/23 シニア技術者プログラム第3弾 「第二回IoT勉強会&交流会」 15:00~15:20 Arduinoで簡単回路作成実演
.NET Gadgeteerでプロトタイピングする EnOceanエネルギーハーベスティング システム
2016年12月21日 AITCシニア技術者勉強会 第2回「センサに反応する総天然色イルミネーションを作ってみよう!」
20160320 BLE4.2勉強会 MakerLab Nagoya
20140922 ble bootcamp
ネットワークスイッチ構築実践 1.VLAN・LinkAggregation編
ネットワーク構築訓練 入門
D2Cコンテスト 2013 参加者トレーニング .NET Gadgeteer の活用

What's hot (20)

PDF
ネットワークスイッチ構築実践 2.STP・RSTP・PortSecurity・StormControl・SPAN・Stacking編
PDF
AITCクラウド部会 2014年度 これまでの振り返りとこれから
PDF
150130 edison-ug
PDF
エヌビディアが加速するディープラーニング~進化するニューラルネットワークとその開発方法について~
PDF
Android & Nui & Physical Computing
PDF
マイクロソフトが考えるAI活用のロードマップ
PPTX
Intel edison edison向け基板のご紹介
PDF
Latte panda workshop_japan
PDF
Nordic Semiconductor ASA, nRF51/Softdevice to offer innovative Module platfor...
PDF
13apr2013 kernelvm8-main
PDF
エンジニアコミュニティ支援制度「NiFcLounge」のご紹介
PDF
Jetson Xavier NX クラウドネイティブをエッジに
PDF
Chainer でのプロファイリングをちょっと楽にする話
PDF
マスタリングTCP/IP ニフクラ編
PDF
1000: 基調講演
PDF
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
PDF
Node-RED Conference2020 naotakasaito
PDF
2017年01月21日 AITCシニア技術者勉強会 第3回「各種センサーを使ってみよう!~温湿度と加速度~」
PDF
AppFormix勉強会資料
PDF
IOS/IOS-XE 運用管理機能アップデート
ネットワークスイッチ構築実践 2.STP・RSTP・PortSecurity・StormControl・SPAN・Stacking編
AITCクラウド部会 2014年度 これまでの振り返りとこれから
150130 edison-ug
エヌビディアが加速するディープラーニング~進化するニューラルネットワークとその開発方法について~
Android & Nui & Physical Computing
マイクロソフトが考えるAI活用のロードマップ
Intel edison edison向け基板のご紹介
Latte panda workshop_japan
Nordic Semiconductor ASA, nRF51/Softdevice to offer innovative Module platfor...
13apr2013 kernelvm8-main
エンジニアコミュニティ支援制度「NiFcLounge」のご紹介
Jetson Xavier NX クラウドネイティブをエッジに
Chainer でのプロファイリングをちょっと楽にする話
マスタリングTCP/IP ニフクラ編
1000: 基調講演
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
Node-RED Conference2020 naotakasaito
2017年01月21日 AITCシニア技術者勉強会 第3回「各種センサーを使ってみよう!~温湿度と加速度~」
AppFormix勉強会資料
IOS/IOS-XE 運用管理機能アップデート
Ad

Viewers also liked (12)

PPTX
University Makerspaces Serving the Community 服务社区的高校创客空间
PDF
managed-services-buying-guide
PPTX
DOCX
Cinthia t eoria
PPTX
Maker Space & Entrepreneur Incubator
PPTX
Makerspace and the Library: Active Learning, Innovation, and Design 主动学习、创新...
PPTX
Ta2.11 zeitz.16 jan17_unwdf_gis_event
PPT
Talento humano
PPTX
Presentación1
PPTX
The Art of the Possible: Makerspaces and Academic Libraries 可能性的艺术:创客空间和高校图书馆
PPT
Flora fauna y primeros hab americanos
PPTX
Reimagining the Library – a Design Thinking Framework
University Makerspaces Serving the Community 服务社区的高校创客空间
managed-services-buying-guide
Cinthia t eoria
Maker Space & Entrepreneur Incubator
Makerspace and the Library: Active Learning, Innovation, and Design 主动学习、创新...
Ta2.11 zeitz.16 jan17_unwdf_gis_event
Talento humano
Presentación1
The Art of the Possible: Makerspaces and Academic Libraries 可能性的艺术:创客空间和高校图书馆
Flora fauna y primeros hab americanos
Reimagining the Library – a Design Thinking Framework
Ad

Similar to 2016年11月19日 AITCシニア技術者勉強会 第1回「Arduinoを使ってみる」 (20)

PDF
20130517 midokura-ncc
PDF
CEDEC-Net 2015 テクニカルレビュー
PPTX
ソフトウエアジャパン2017 IT Forum AITC(6)
PDF
Lagopus Project (Open Source Conference)
PPTX
Mbed祭り 2017@春の新横浜 20170225 竹之下
PDF
DPDKによる高速コンテナネットワーキング
PDF
Aws summits2014 nttデータaws上のシステムはこう作る!
PDF
Software for Edge Heavy Computing @ INTEROP 2016 Tokyo
PDF
Node-redでプロトタイピング
PDF
CONBU LL Diver/YAPC::Asia 2014 Network
PDF
.NET Micro Framework の基礎
PDF
ネットワークコマンド入力に対応したツール事例
PDF
「スーパーコンピュータとクラウドゲーム」
PDF
Make: Ogaki Meeting 2012 Androidロボットサミットin大垣
PDF
Lagopus Switch Usecases
PDF
IoTでAzureのサービス利用~専門知識なしで始める超入門~
PDF
20141023 IPv6 Summit in FUKUOKA 2014 IPv6対応Webサービスの作り方
PPTX
2016 1102 EnOcean Alliance Japan Event
PDF
2015/04/27 IT概覧~IoTまでの流れ~
PDF
Windows 8 Developers カンファレンス
20130517 midokura-ncc
CEDEC-Net 2015 テクニカルレビュー
ソフトウエアジャパン2017 IT Forum AITC(6)
Lagopus Project (Open Source Conference)
Mbed祭り 2017@春の新横浜 20170225 竹之下
DPDKによる高速コンテナネットワーキング
Aws summits2014 nttデータaws上のシステムはこう作る!
Software for Edge Heavy Computing @ INTEROP 2016 Tokyo
Node-redでプロトタイピング
CONBU LL Diver/YAPC::Asia 2014 Network
.NET Micro Framework の基礎
ネットワークコマンド入力に対応したツール事例
「スーパーコンピュータとクラウドゲーム」
Make: Ogaki Meeting 2012 Androidロボットサミットin大垣
Lagopus Switch Usecases
IoTでAzureのサービス利用~専門知識なしで始める超入門~
20141023 IPv6 Summit in FUKUOKA 2014 IPv6対応Webサービスの作り方
2016 1102 EnOcean Alliance Japan Event
2015/04/27 IT概覧~IoTまでの流れ~
Windows 8 Developers カンファレンス

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 モノと社会をつなげる

2016年11月19日 AITCシニア技術者勉強会 第1回「Arduinoを使ってみる」

  • 1. Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. Arduinoを使ってみる 2016年11月19日 先端IT活用推進コンソーシアム クラウド・テクノロジー活用部会 リーダー アドソル日進株式会社 荒本道隆
  • 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] ウィキペデアより 2
  • 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 の方が 安上がりな場合も 3
  • 4. Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 機器購入時の注意事項 • 無線LAN, Bluetoothは、技適が付いているか? – 海外の無線シールドには、技適が付いていない – 技適が付いていないものを使うデメリット • 発表時に、構成を詳しく言えない • 電波法違反=「1年以下の懲役又は100万円以下の罰金刑に処せ れる」 – 有線→無線変換が簡単 • 配置時 – 電源の確保 • スマホの充電で使うUSBアダプタが大活躍 • センサだけなら、電池でも結構持つ – 無線LANを電池で使いたいなら、省電力のものを選択 4 Amazon「PLANEX 充電万能 2ポートUSB充電器 ホワイト」 ¥1,002-
  • 5. Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. Arduinoの概要 デジタル入出力(プログラムで切り替え) アナログ入力(0~1023の範囲)電源 出力にすると 5V, 40mA 5
  • 6. Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. ブレッドボードの概要 +-だけ縦に つながっている 横に つながっている GND 5V 6 横に つながっている a~e, f~j
  • 7. Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. プロトタイピング 開発時 テスト配置時 7
  • 8. Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. ドライバと開発環境をインストール • ダウンロード – http://arduino.cc/en/main/software • Windows – 「Windows ZIP file」をダウンロードして、解凍 – drivers¥arduino.inf を右クリックして「インストール」 – Arduino を接続 – arduino.exe でIDEを起動 – メニューの「ツール」から • →「シリアルポート」→「COM3」(PCによって違う)を選択 • →「マイコンボード」→「Arduino Uno」を選択 • Mac – 「Mac OS X」をダウンロードして、解凍 – Arduino を接続 – arduino でIDEを起動 – メニューの「ツール」から • →「シリアルポート」→「/dev/tty.usbmodem3d11」を選択 • →「マイコンボード」→「Arduino Uno」を選択 8
  • 9. Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 練習問題 • LEDを点ける – 状況が目視できるようになる 5VとGND を取り出す 5V側に抵抗 を入れる 足の長い方が+ 挿し易いように、カット済み LEDの仕様で 抵抗値は違う 抵抗無しだと 焼き切れる事も 9
  • 10. Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. ステップ1-1 • LEDを1秒ごとに点滅させる – デジタルの8番をLEDの+に接続 • さっきまでの5Vの線は外す デジタルの8番 10
  • 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); } 書き込んだら、 自動で実行開始 11
  • 12. Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. ステップ2-1 • 照度センサの値をPCで参照 – 照度センサをアナログの0番に入力 • 足の短い方:5V • 足の長い方:GND→抵抗→、A0に渡す セ ン サ A0へ入力 12
  • 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); } 13
  • 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); // 反応の遅延を減らす } 閾値は、場所に合わせて調整 14
  • 15. Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. その他のセンサ • 人感センサ – Panasonic AMN41121 • 温湿度センサ – DHT11 デジタルで、HIGH/LOWを読むだけ シリアル通信するので、 ちょっと大変 アナログに挿しても、楽しい 15
  • 16. Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. • 仕様 – 人感センサの状態をLEDで表示 – ある程度暗くて、人が居たら、照明(別のLED)を点ける – 人が居なくなったら、しばらく(3秒)したら照明を消す – 照明を点けた/消した、をサーバに記録 – デジタル入力を使うには • pinMode(ピン番号, INPUT); • int a = digitalRead(ピン番号); 16 Panasonic AMN41121 人感センサを裏面から見た図 5V GNDGND デジタルの7番へ 100KΩ(茶黒黄金) 「人感照明」の作成例
  • 17. Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 温度測定 • 温湿度センサ(DHT11)とはシリアル通信 – 専用のライブラリが公開されている • http://playground.arduino.cc/main/DHT11Lib – 安物(300円)なので精度と耐久度に不安 • AM2302という高級品(1,000円)もある 17 http://learning.grobotronics.com/2013/07/ measuring-humidity-with-dht11-sensor/
  • 18. Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. HTTP通信に必要なもの • イーサネットシールドでHTTP通信 – Macアドレスをハードコード、LAN内で重複しないように – DNSを参照するのは手間なので、直IPアドレスで指定 – 別機器で無線LAN化(コンバータモードを使用) イーサネットシールド 無線LAN化機器 PLANEX MZK-PR150N 18
  • 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!"); } 19
  • 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); } 20
  • 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時間運転する場合は – ちゃんとケースに入れましょう 21 http://d.hatena.ne.jp/koki- h/comment/20090407/1239090406
  • 22. Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 後片付け • ブレッドボード上に、最初の状態に戻す 22
  • 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 で、 なんでもできます センサって意外と単純