99. 9 MovingAverageFilter.as
class MovingAverageFilter {
private var _taps:Number; //
private var _values:Array; //
function MovingAverageFilter(taps:Number) {
_taps = taps;
_values = new Array(_taps);
}
function processSample(sample:Number):Number {
var acc:Number = 0;
var i:Number = 0;
//
_values[0] = sample;
100. 10
//
for (i = 0; i < _taps; i++) {
acc = acc + _values[i];
}
acc = acc / _taps;
// 1
// [A][B][C][D][E] ...
// [A][A][B][C][D] ...
for (i = _taps - 1; i > 0; i--) {
_values[i] = _values[i - 1];
}
return acc;
}
}
101. Gainer
11 MovingAverageFilter
var gio:Gainer = new Gainer(quot;localhostquot;, 2000, Gainer.MODE1, true);
//
var smoothFilter:MovingAverageFilter = new MovingAverageFilter(8);
function loop():Void {
var val:Number = smoothFilter.processSample(this.analogInput[0]);
...
105. 14 I/O LED
public function GainerLED() {
...
var circle:Sprite = new Sprite();
...
this.addChild(circle);
circle.addEventListener(MouseEvent.MOUSE_DOWN, mousePressed);
circle.addEventListener(MouseEvent.MOUSE_UP, mouseReleased);
}
private function mousePressed(e:MouseEvent):void {
gio.led.value = 1;
}
private function mouseReleased(e:MouseEvent):void {
gio.led.value = 0;
}
106. 15 I/O LED LED button.fla
public function GainerLED() {
gio = new Gainer();
gio.button.addEventListener(PinEvent.RISING_EDGE, buttonPressed);
gio.button.addEventListener(PinEvent.FALLING_EDGE, buttonReleased);
}
private function buttonPressed(e:PinEvent):void {
gio.led.value = 1;
}
private function buttonReleased(e:PinEvent):void {
gio.led.value = 0;
}
132. Arduino LED
19 Arduino LED
int ledPin = 13;
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
digitalWrite(ledPin, HIGH);
delay(1000);
digitalWrite(ledPin, LOW);
delay(1000);
}
133. C LED
20 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;
}
134. C LED
21 C LED
void delay_ms(uint16_t t) {
while (t--) _delay_ms(1);
}
int main(void) {
init();
for (; ;) {
PORTB = 0xff;
delay_ms(500);
PORTB = 0x00;
delay_ms(500);
}
return 0;
}
138. Firmata PC
• Pd (aka Pure Data)
• Processing
• Funnel
• Linux C++
• C++/openFrameworks
139. 10G
IEEE 802.11n
100M
IEEE 802.11a/g
10M IEEE 802.11b
Bluetooth
1M
ANT
100k
ZigBee/IEEE 802.15.4
10k
1k
0.1m 1m 10m 100m 1km
BAN PAN LAN MAN
140. Wi-Fi Bluetooth 802.15.4/ZigBee
IEEE 802.11a/b/g/n 802.15.1 802.15.4
2.4GHz/5GHz 2.4GHz 866MHz/915MHz/2.4GHz
100m 100m 100m 2.4GHz
300Mbps 3Mbps 250kbps 2.4GHz
32 7 65535
LAN
1
147. XBee
XBee
• hardware/fio/tool/XBeeConfigTool
•
• PAN ID
•
• MY ID
• Configure
148. FIO
• XBee Explorer USB PC
• Arduino 15
• Tools Board Arduino Pro/ Pro Mini (8MHz)
• Tools Serial Port
• Open Examples Digital Blink
• Upload to I/O Board