「目指せmaker!初心者がarduinoにチャレンジしてみた」〜【html5j...
DESCRIPTION
2014/2/27 に開催した「html5j エンタメ技術部」の「第1回勉強会(http://atnd.org/events/47308)」の資料です。 セッション1で使ったスライドです。 ※ 公開用に一部の画像の差し替えや、口頭で補足した内容のテキストの追加を行っています。TRANSCRIPT
目指せMaker!
2/27(木)19:30~@インターネットイニシアティブ 17階 大会議室
~ Web技術者のためのArduino入門 ~
html5j エンタメ技術部 第1回勉強会
初心者がArduinoにチャレンジしてみた
豊田陽介(@youtoy)
14年3月9日日曜日
Arduino?公式サイトによると・・・(http://www.arduino.cc/)
Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It's intended for artists, designers, hobbyists and anyone interested in creating interactive objects or environments.
14年3月9日日曜日
Arduino?こんな感じ?オープンソースのプロトタイピングプラットフォーム
簡単に扱えるハードウェアとソフトウェアのセット
アーティスト、デザイナー、趣味で利用する方など、どんな方でもインタラクティブなものがつくれますよ~♪
14年3月9日日曜日
Arduino?ハードウェアの試作が簡単に!LEDを制御してみたり
温度・音・光センサーの入力を利用したハードウェアを作ったり
Perfumeの紅白歌合戦の衣装にも使われたとか・・・(http://www.daito.ws/work/nhk_kouhaku_63.html#3)
14年3月9日日曜日
Arduino?Arduioに関するTEDトーク
マッシモ・バンジ「想像力をオープンソース化するArdurino」http://www.ted.com/talks/massimo_banzi_how_arduino_is_open_sourcing_imagination.html
14年3月9日日曜日
何が必要?PC(Windows, Mac, Linux)
ハードウェア
Arduino基板
USBケーブル
ソフトウェア
Arduino IDE(オープンソース)
LEDを光らせるだけならこれだけ
14年3月9日日曜日
LEDを光らせてみる「エルチカ」 ⇒ プログラミングで言う 「Hello World !」
14年3月9日日曜日
LEDを光らせてみる ~ おおまかな手順1. PCとArduinoをUSBケーブルで接続
2. Arduino IDE を起動
3. プログラムを書く
4. 実行
14年3月9日日曜日
LEDを光らせてみる ~ プログラムを書いてみる
// 最初に1回だけ処理される部分
void setup() {
pinMode(13, OUTPUT); // 13番ピンを出力に設定}
// 繰り返し実行される部分void loop() {
digitalWrite(13, HIGH); // LEDを点ける delay(1000); // 1秒待つ digitalWrite(13, LOW); // LEDを消す delay(1000); // 1秒待つ
}
14年3月9日日曜日
ここに注目!!
実際に見てみましょう!!
14年3月9日日曜日
実際に見てみましょう!!
【Webカメラを使ったライブデモ】映像内容の補足: USBケーブルでPCとArduino 基板をつなぐと、つないだとたん に基板上のLEDが点滅
点滅!
14年3月9日日曜日
PCにつないだだけで、いきなり光ってる!?
14年3月9日日曜日
Arduinoの起動と終了送り込んだプログラムは、電源が入ると実行されます。電源を抜いても残ったままです。(出荷時にはエルチカのプログラムがすでに 入っていたり・・・)= つないだだけで、以前に送り込んだ プログラムがいきなり実行されたりします。
終了する、という操作はないため、終了させたいときは電源を切ればOKです。
14年3月9日日曜日
プログラムを変更してみる
例えば、時間を 1/10 にしてみたり
~ プログラムが実際に送り 込まれているかを確認する
14年3月9日日曜日
LEDを光らせてみる ~ 点滅速度を変える// 最初に1回だけ処理される部分
void setup() {
pinMode(13, OUTPUT); // 13番ピンを出力に設定}
// 繰り返し実行される部分void loop() {
digitalWrite(13, HIGH); // LEDを点ける delay(1000); // 1秒待つ digitalWrite(13, LOW); // LEDを消す delay(1000); // 1秒待つ
}
例えば「 delay(100); 」とかにしてみる。=「0.1秒待つ」処理になる
14年3月9日日曜日
実際に見てみましょう!!
【Webカメラを使ったライブデモ】映像内容の補足: 変更後のプログラムを送り込む と、基板上のLEDの点滅速度が 速くなる
点滅!
14年3月9日日曜日
いろんな部品を試してみる!
14年3月9日日曜日
でも何を買えば・・・
14年3月9日日曜日
Arduinoの入手購入はオンラインストアや秋葉原などにある電子部品を扱う店で
自分の場合はAmazonで購入
自分で部品を選んで買っても良いですが、セット品を買ってしまったほうが楽かも⇒ 「Arduinoをはじめようキット」とか、「Arduinoエントリーキット」 とか(価格は4200円くらい)
14年3月9日日曜日
ArduinoのキットArduino基板(Arduino Uno R3)、USBケーブル、ブレッドボード、ジャンパワイヤー、抵抗器、センサー等がセットに
書籍「Arduinoをはじめよう 第2版(オライリー・ジャパン)」などに対応したセット品。⇒ もちろん、ネットで情報を探しつつ試してみてもOKです!
14年3月9日日曜日
基板の種類や、部品の基礎知識等は、後のセッションにて
セッション2:「Arduino応用編」http://www.slideshare.net/tomowatanabe/arduino-31704976
セッション3:「JavaScript と Arduino でオリジナルデバイスを作ろう」http://www.slideshare.net/YoshihiroIwanaga/javascript-arduino
【公開資料へのリンク】
14年3月9日日曜日
とりあえず試してみる~ その2 ~
14年3月9日日曜日
この後は、「Arduinoエントリーキット」に入っている部品を使って
進めていきます
14年3月9日日曜日
部品をつなぐ
14年3月9日日曜日
実際に見てみましょう!!【Webカメラを使ったライブデモ】デモで提示した映像内容の補足: 右の画像のとおりに 部品を接続
14年3月9日日曜日
LEDを光らせてみる// 最初に1回だけ処理される部分
const int LED = 9; // 9番ピンにLEDをつないでいる
void setup() {
pinMode(LED, OUTPUT); // LEDに出力}
// 繰り返し実行される部分void loop() {
digitalWrite(LED, HIGH); // LEDを点ける delay(1000); // 1秒待つ digitalWrite(LED, LOW); // LEDを消す delay(1000); // 1秒待つ
}
14年3月9日日曜日
実際に見てみましょう!!【Webカメラを使ったライブデモ】デモで提示した映像内容の補足: 基板上のLEDでなく、 ブレッドボード上に接続 されたLEDが点滅
点滅!
14年3月9日日曜日
さらに試してみる~ デジタルでアナログ ~
14年3月9日日曜日
先ほどのプログラムの遅延をかなり小さくする
&割合を変えてみる
14年3月9日日曜日
もう少し簡単な方法が!
14年3月9日日曜日
LEDの明るさ、モーターの回転数等を制御する「analogWrite」
14年3月9日日曜日
LEDを光らせてみる// 最初に1回だけ処理される部分
const int LED = 9; // 9番ピンにLEDをつないでいる
void setup() {
pinMode(LED, OUTPUT); // LEDに出力}
// 繰り返し実行される部分void loop() {
analogWrite(LED, 255); // 出力最大(値は 0~255)}
使えるピンが決まっているので注意!!
14年3月9日日曜日
実際に見てみましょう!!【Webカメラを使ったライブデモ】
デモで提示した映像内容の補足: ブレッドボード上に接続された LEDが明るく光る
光ったまま
14年3月9日日曜日
LEDでフェードイン/アウト// 最初に1回だけ処理される部分
const int LED = 9; // 9番ピンにLEDをつないでいる
int i = 0;
void setup() {
pinMode(LED, OUTPUT); // LEDに出力
}
// 繰り返し実行される部分
void loop() {
for(i=0; i<255; i++) {
analogWrite(LED, i); // 出力を徐々に大きくしていく
delay(10); // 変化が目に見えるように遅延を加える
}
for(i=255; i>0; i--) {
analogWrite(LED, i); // 出力を徐々に小さくしていく
delay(10);
}
}
14年3月9日日曜日
実際に見てみましょう!!【Webカメラを使ったライブデモ】
ブレッドボード上に接続された LEDがだんだんと明るくなり、 最大の明るさになった後、 今度はだんだんとLEDが暗く なる(これの繰り返し)
明るくなったり、暗くなったり(繰り返し)
デモで提示した映像内容の補足:
14年3月9日日曜日
さらに試してみる~ センサを使う ~
14年3月9日日曜日
部品をつなぐ
CdS(硫化カドミウム)セル⇒ 強い光があたるほど、抵抗の値が 小さくなる
14年3月9日日曜日
実際に見てみましょう!!【Webカメラを使ったライブデモ】デモで提示した映像内容の補足: 右の画像のとおりに 部品を接続
14年3月9日日曜日
光量によってLEDの点滅スピードが変化const int LED = 13;
int val = 0; // センサからの値を格納する変数
void setup() {
pinMode(LED, OUTPUT); // LEDに出力
// アナログの入力は自動設定されるので、記載しない
}
void loop() {
val = analogRead(0); // センサの値を読み込む
digitalWrite(LED, HIGH); // LEDをつける
delay(val); // センサの入力値が大きいほど遅延が大きくなる
digitalWrite(LED, LOW); // LEDを消す
delay(val);
}
光が強い(=抵抗が小さい)
⇒ アナログ入力の電流が 大きくなる
⇒ 遅延が大きくなるので、 LEDがゆっくり点滅
⇒ 暗くなるとLEDの点滅が 早くなる
14年3月9日日曜日
実際に見てみましょう!!【Webカメラを使ったライブデモ】
センサー付近を手で覆うと、 LEDの点滅速度が速くなり、 覆った手をセンサーから 離すと、LEDの点滅速度が ゆっくりになる
①ここを手で覆ったり、覆った手を離したりすると、
デモで提示した映像内容の補足:
②点滅する速度が速くなったり、ゆっくりになったり
14年3月9日日曜日
さらに試す~ 音を鳴らしてみる ~
14年3月9日日曜日
部品をつなぐ
ピエゾスピーカー
14年3月9日日曜日
実際に見てみましょう!!【Webカメラを使ったライブデモ】デモで提示した映像内容の補足: 右の画像のとおりに 部品を接続
14年3月9日日曜日
音を鳴らすstatic int PIEZO = 12;
static long LENGTH = 300;
void setup() {
pinMode(12, OUTPUT); // 12番ピンを出力に設定
}
// 繰り返し実行される部分
void loop() {
tone(12, 262); // 音を鳴らす
delay(LENGTH);
tone(12, 294); // 音を鳴らす
delay(LENGTH);
。。(途中省略)。。
tone(12, 294, LENGTH*3); // 音を鳴らす
delay(2000); // 2秒待つ
}
14年3月9日日曜日
実際に聞いてみましょう!!【ライブデモ】
デモで行った内容の補足: プログラムで書かれた ある メロディ が繰り返し再生 される
♪ ♩♫
14年3月9日日曜日
リファレンス公式: Arduino - Reference http://arduino.cc/en/Reference/HomePage
翻訳されたもの: Arduino 日本語リファレンス http://www.musashinodenpa.com/arduino/ref/
14年3月9日日曜日
最後に様々な部品の組み合わせが可能センサーなどによる入力
音や光などの出力
PC上のメディアアート系のプログラムとの連携も可能
あなたも明日からMaker!?
14年3月9日日曜日