はじめての Arduino ワークショップ 小林茂(mayfair [at] iamas.ac.jp) 2008 年 11 月 8 日・多摩美術大学情報デザイン学科
May 18, 2015
はじめてのArduinoワークショップ
小林茂(mayfair [at] iamas.ac.jp)2008年 11月 8日・多摩美術大学情報デザイン学科
自己紹介
• 1970年愛知県名古屋市生まれ• 電子楽器メーカー(1993~2004)
– サウンドデザイナー– 技術研究所– ソフトウェアエンジニア
• IAMAS(2004~)– フィジカルコンピューティング– インタラクションデザイン
このセッションの内容
• フィジカルコンピューティングとは?• Arduinoをスタンドアロンで使ってみる• ArduinoをPCとつないで使ってみる
フィジカルコンピューティングとは?
• ニューヨーク大学の ITP*1でTom Igoeらが中心となって教えているコースの名前
• インタラクションデザインを教えるための方法の1つ
• コンピュータが理解したり反応できる人間のフィジカルな表現の幅をいかに増やすか
• デザインやアート教育の1つの分野として定着
*1 Interactive Telecommunications Program
フィジカルコンピューティング関連書籍
Physical ComputingSensing and Controlling the Physical World with Computers
Dan O’Sullivan and Tom Igoe(Course Technology Ptr・2004年)
フィジカルコンピューティング関連書籍
Making Things TalkArduinoで作る「会話」するモノたち
Tom Igoe 著・小林 茂監訳・水原文翻訳(オライリー・2008年)
フィジカルコンピューティング関連書籍
Getting Started with ArduinoThe open source electronics prototyping platform
Massimo Banzi(O’Reilly Media・2008年)
フィジカルコンピューティングとは?
一般的なPCから見た人間は?
• キー情報(ASCIIキーボードから)• マウス情報(1つのマウスから)
Alto (1973)
出典:http://toastytech.com/guis/
フィジカルコンピューティングの構成要素
• センサ(例:光、圧力、音、温度、加速度など)• アクチュエータ(例:LED、モータ、ソレノイドなど)• プロセッサ(例:マイコン、I/Oモジュール+PCなど)
→ものすごく簡単にまとめると プログラミング+電子工作
フィジカルな世界とつなぐ方法
マイコンのみa
b
c
d
A
B
C
D
マイコンmicrocontroller
program
a0]=ain.o;aout.1 = 255;
フィジカルな世界とつなぐ方法
マイコン+PC
a
b
c
d
A
B
C
D
マイコンmicrocontroller
PC
USB
program
a0]=ain.o;aout.1 = 255;
program
a0]=ain.o;aout.1 = 255;
フィジカルな世界とつなぐ方法
I/Oモジュール+PC(GainerやPhidgetsなど)a
b
c
d
A
B
C
D
I/OモジュールI/O module
PC
USB
program
a0]=ain.o;aout.1 = 255;
Arduinoとは?
• Hernando Barraganが IDII*2にいた時に開発を始めたWiringがベース
• 電子回路をプロトタイピングするためのオープンソースのプラットフォーム
• IDEとArduino I/Oボードから構成される
*2 Interaction Design Institute Ivrea
Wiring
写真:SparkFun Electronics
Arduino Duemilanove
写真:SparkFun Electronics
Arduino IDE
オープンソース・ハードウェアとは?
• ハードウェアのデザインデータがオープン– 回路図– 基板レイアウト
• ライセンスに基づいて自由に改変できる
LilyPad Arduino
写真:SparkFun Electronics
Arduino Pro Mini
写真:SparkFun Electronics
Arduino ProtoShield
写真:SparkFun Electronics
Arduino XBee Shield
写真:SparkFun Electronics
FIO: Funnel I/O Module v1.0
電圧~電流~抵抗
電気の流れは水の流れのようなもの
• 電圧– 2点間の高度(電位)の違い– 基準点が必要(GND)– 単位はボルト(V)
電圧のイメージ図
低高
電圧~電流~抵抗
電気の流れは水の流れのようなもの
• 電流– 電圧の高いところから低いところに流れる– 単位はアンペア(A)
電流のイメージ図
少多
電圧~電流~抵抗
電気の流れは水の流れのようなもの
• 抵抗– 電流の流れにくさ– 単位はオーム(Ω)
抵抗のイメージ図
低 高
電圧~電流~抵抗
よく出てくる補助単位の例
• 1,000倍を表すキロ(例:1kΩ)• 1,000,000倍を表すメガ(例:1MΩ)• 1
1,000を表すミリ(例:1mA)• 1
1,000,000を表すマイクロ(例:50µA)
回路図ってなに?
回路図ってなに?
回路図は電子回路の設計図
• シンボルで表した電子部品の接続を示したもの• シンボルに若干のバリエーションはあるが、基本的には全世界共通
電源の回路図シンボル
+5V GND
スイッチの回路図シンボルと部品例
抵抗器の回路図シンボルと部品例
可変抵抗器の回路図シンボルと部品例
LEDの回路図シンボルと部品例
Arduino入門
Make日本語版Volume 04特集「Sketchーハードウェアでスケッチする」
オライリー・ジャパン編(オライリー・ジャパン・2008年)
Arduinoの各部紹介
デジタル入出力 x14
アナログ入力 x6GND +5V
GND
ハードウェアにおける「Hello World!」
• LEDを一定の間隔で点滅させるExamples/Digital/Blink
• delay()の値を変更して間隔を変えてみる
スケッチをアップロードする
スイッチでLEDをコントロールする
+ - + -
ブレッドボードってなに?
• 部品の足を穴にさすことで電子回路を形成• はんだ付け不要
– 部品を再利用できる– 回路を組み間違えてもやり直しできる– 耐久性にはやや注意が必要
ブレッドボードの構造
• 横方向のブロックは背面で接続• 縦方向のブロックは未接続• 電源用のエリアは専用に用意されている
参考:ジャンプワイヤの色分け
• 赤:電源の+側(+5V)• 黒:電源のー側(GND)• 白・青・黄:センサとの接続など
もう少しいろいろ試してみよう
• ボリュームの値でLEDの点滅速度を変えるExamples/Analog/AnalogInput
• 光センサの値でLEDを点灯/消灯する
ArduinoとPCをつなぐ方法
• 有線– シリアル– USB– Ethernet
• 無線– Bluetooth– IEEE 802.15.4 / ZigBee
どのようにデータをやり取りするかについて取り決め(=プロトコル)が必要
プロトコル:Firmata
http://www.arduino.cc/playground/Interfacing/Firmata
• Hans-Christoph Steinerが提案• MIDIを参考にしたプロトコル• Arduino 0012から標準に
Firmataに対応したPC側のライブラリ
• Pd (aka Pure Data)• Processing• Funnel• Linux C++• C++/openFrameworks
質疑応答など
• Arduinoについて• フィジカルコンピューティングについて• Making Things Talkについて• その他
はじめてのArduinoワークショップ
小林茂(mayfair [at] iamas.ac.jp)2008年 11月 8日・多摩美術大学情報デザイン学科