More Related Content
Similar to KOGEI & KAIT Funnel WS
Similar to KOGEI & KAIT Funnel WS(20)
More from Shigeru Kobayashi
More from Shigeru Kobayashi(20)
KOGEI & KAIT Funnel WS
- 10. 自己紹介:Sketching in Hardware 3
• フィジカルコンピューティングに関する会議
• 2008.7.25∼27の3日間開催
• 参加者は約40名
• 全員が発表
• 濃密な情報交換とコミュニティ作り
• 最後に「Sketching in Hardware」を実践
- 30. 比較:Gainer vs Arduino
Gainer Arduino Duemilanove
入出力ピン 16 20(RX/TXを含む)
A/D 8(8bit) 6(10bit)
PWM 8(8bit) 6(8bit)
ユーザLED 1 0
ユーザLED 1 1(D13兼用)
オープンソース Yes Yes
スタンドアロン No Yes
重点 シンプルさ 拡張性
- 33. 比較:通常のC言語でのLED点滅
コード例 2 通常のC言語でのLED点滅の例
#include <avr/io.h>
#include <avr/pgmspace.h>
#include <avr/delay.h>
#define CLK_CALIB_DATA (FLASHEND - 3)
void init() {
uint8_t osccal_data = pgm_read_byte(CLK_CALIB_DATA);
if (osccal_data != 0xff) OSCCAL = osccal_data;
DDRB = 0xff;
DDRD = 0xff;
return;
}
- 39. FunnelでArduinoを使うには
コード例 4 FunnelでArduinoを使う例
import processing.funnel.*;
Arduino arduino;
void setup() {
Configuration config = Arduino.FIRMATA;
config.setDigitalPinMode(13, Arduino.OUT);
arduino = new Arduino(this,config);
}
void draw() {
if (mousePressed) {
arduino.digitalPin(ledPin).value = 1.0;
...
- 41. FunnelでFIOを使うには
コード例 6 FunnelでFIOを使う例
import processing.funnel.*;
Fio fio;
void setup() {
int[] ids = {1};
Configuration config = Fio.FIRMATA;
config.setDigitalPinMode(12, Fio.IN);
fio = new Fio(this, ids, config);
}
void draw() {
if (fio.iomodule(1).digitalPin(12).value == 0) {
background(200);
...
- 42. FIO: Funnel I/O Module v1.3
• LilyPad v1.6がベース
• 3.3V動作
• Arduino互換機(動作速度は8MHz)
• XBee無線モデム(802.15.4またはZigBee)
• 充電器内蔵
• シールドでさまざまな機能を拡張
- 47. さまざまな無線通信の方式とその特徴
Wi-Fi Bluetooth 802.15.4 / ZigBee
IEEE規格 802.11b 802.15.1 802.15.4
通信距離 約100m 約10m 約30m
最大通信速度 11Mbps 1Mbps 250kbps
接続ノード数 32 7 65535
電池寿命 数時間 数日 数年
ネットワーク構成 スター型 スター型 スター型・メッシュ型など
主な用途 無線LAN 携帯電話 セキュリティ機器
表1 代表的な2.4GHz帯無線通信方式の比較
- 57. screenコマンドを使う方法
1. Terminalを起動する
2. $ screen /dev/tty.usbserial-XXXXXXXX 19200
とタイプする*4
3. Terminal上でキーをタイプするとモデムに送信され、
返信された内容だけが表示される
4. 終了するにはctrl-aに続けてctrl-をタイプする
5. Really quit and kill all your windows [y/n]
に対してyをタイプする
*4 今回配布したXBeeは19200bpsに設定されているが
デフォルトは9600bps
- 58. Processing用のスケッチを使う方法
1. Making Things Talkのサポートページからコードを
コピーする
http://www.makingthingstalk.com/chapter6/31/
2. Processingを起動してスケッチにコードを
貼付ける
3. スケッチを実行する
4. Display Windowをクリックしてアクティブにする
5. キーボードからATコマンドをタイプする
- 62. FIO:動作確認
• XBee Explorer USBをPCに接続
• Arduino 12を起動
• Tools→Boardから
Arduino Pro/ Pro Mini (8MHz)を選択
• Tools→Serial Portから
/dev/cu.usbserialで始まるポートを選択
• Open→Examples→Digital→Blinkを選択
• Upload to I/O Boardでアップロード
- 71. センサの出力から角度を求める(1/2)
コード例 7 スムージング+スケーリングの例
void setup()
{
...
int moduleIDs[] = {1};
fio = new Fio(this, moduleIDs, Fio.FIRMATA);
Filter f0[] = {
new Convolution(Convolution.MOVING_AVERAGE),
new Scaler(0.30, 0.70, -1.0, 1.0, Scaler.LINEAR, true)
};
...
fio.iomodule(1).analogPin(1).filters = f0;
...
}
- 74. SetPointとOscの使い方
コード例 9 暗くなるとLEDを点滅
void setup()
{
...
int[] moduleIDs = {1};
// ArduinoでGainerのaoutに相当するモードはPWM
Configuration config = Fio.FIRMATA;
config.setDigitalPinMode(11, Fio.PWM);
fio = new Fio(this, moduleIDs, config);
Filter f[] = {
// パラメータは閾値とヒステリシス
new SetPoint(0.5, 0.05)
};
fio.iomodule(1).analogPin(0).filters = f;
...
- 75. SetPointとOscの使い方
コード例 10 暗くなるとLEDを点滅(続き)
...
// パラメータは波形、周波数、繰り返し回数(0は無制限)
osc = new Osc(this, Osc.SIN, 0.5, 0);
osc.serviceInterval = 40;
osc.addEventListener(Osc.UPDATE, "oscUpdated");
}
// オシレータが更新する度に呼ばれるイベントリスナ
void oscUpdated(Osc osc)
{
fio.iomodule(1).digitalPin(11).value = osc.value;
}
- 76. SetPointとOscの使い方
コード例 11 暗くなるとLEDを点滅(続き)
// SetPointをセットした入力が0から1に変化する時に呼ばれるイベントリスナ
void risingEdge(PortEvent e)
{
// Arduinoでピンを連番で表現する際、A0はD13の後の14番になる
if (e.target.number == 14) {
// 明るくなったらオシレータを停止してLEDを消灯
println("BRIGHT");
osc.stop();
fio.iomodule(1).digitalPin(11).value = 0;
}
}
- 77. SetPointとOscの使い方
コード例 12 暗くなるとLEDを点滅(続き)
// SetPointをセットした入力が1から0に変化する時に呼ばれるイベントリスナ
void fallingEdge(PortEvent e)
{
// Arduinoでピンを連番で表現する際、A0はD13の後の14番になる
if (e.target.number == 14) {
// 暗くなったらオシレータを再スタート
println("DARK");
osc.reset();
osc.start();
}
}
- 78. お知らせ
IAMAS Gangu Project - Work in Progress
• 場所:AXIS Gallery
• 日時:12月25日(木)∼27日(土)
11:00∼19:00(27日は17:00閉場)
• 内容:電子玩具のスケッチ∼プロトタイプの
展示+ワークショップ
• 詳細:http://www.iamas.ac.jp/project/ui/