Workshop @ Make: Tokyo Meeting 02

Post on 18-May-2015

1,797 views 0 download

Tags:

transcript

はじめての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日・多摩美術大学情報デザイン学科