More Related Content Similar to 組み込みやろうぜ!ソフト屋さん向けの組み込み電子工作講座 (情報科学若手の会2013 #wakate2013 ) (20) More from Junpei Tsuji (20) 組み込みやろうぜ!ソフト屋さん向けの組み込み電子工作講座 (情報科学若手の会2013 #wakate2013 )8. 電子工作に触る前の自分
• 難しそう
• 爆発しそう
• 習ったことがない
• 触ったことない
• 始め方がわからない
• 値段が高い
• 購入が面倒
• 何ができるのかわからない
• 自分には必要ない
• かっこ悪い
• オタクっぽい
• マニアックそう
情報科学若手の会2013
48. PC-マイコン間の
テキスト通信
ボーレート (baud rate)
コムポート (COM port)
シリアル通信
通信端末の識別子 (COM10 など)
通信速度 (9600 bps など)
シリアル通信のライブラリ
C++ (openFrameworks)
Java
Processing
Ruby
JavaScript (node.js)
ofSerial
RXTX library
processing.serial.*
ruby-serialport
node-serialport
情報科学若手の会2013
49. PC-マイコン間の
テキスト通信
ボーレート (baud rate)
コムポート (COM port)
シリアル通信
通信端末の識別子 (COM10 など)
通信速度 (9600 bps など)
Arduino側のシリアル通信
int incomingByte = 0;
int outgoingByte = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
if( Serial.available() > 0 ){
incomingByte = Serial.read();
outgoingByte = incomingByte+1;
Serial.println((char)outgoingByte);
}
}
シリアル通信で受信した文字のアスキーコードを ”+1” して返す Arduino スケッチ
情報科学若手の会2013
51. Processing と Arduino の連携
import processing.serial.*;
Serial arduino;
void setup() {
size(400, 400);
frameRate(10);
if( Serial.list().length > 0 ) {
arduino = new Serial(this, Serial.list()[0], 9600);
arduino.bufferUntil('¥n');
}
else {
arduino = null;
}
}
情報科学若手の会2013
52. Processing と Arduino の連携
void draw() {
if( arduino != null ){
int x = 100;
// arduino にデータを書き込む
arduino.write(value);
}
}
void serialEvent(Serial arduino){
// arduino からのデータを読み込む
int x = arduino.read();
}
情報科学若手の会2013
54. Twitter Streaming API との連携
Timelineの風
• Twitter4j の Twitter Streaming API を使って、
「Twitter」を含むツイートの数を取得。
• ツイート数とモーターの回転数を連動。
情報科学若手の会2013
57. ofSerial を使ったArduinoからのデータ取得
void testApp::update(){
// check for data
if ( serial.available() > 0 )
{
// 1 byte の文字を取得
char byte = serial.readByte();
printf("%c¥n", byte);
}
}
void testApp::setup(){
// シリアル通信の設定
serial.listDevices();
serial.setup("COM10", 9600);
}
※シリアル通信のReadLineの方法:
SURERS KUMAR / SENDING STRINGS FROM ARDUINO TO OPENFRAMEWORKS,
http://sureskumar.wordpress.com/2012/12/17/sending-strings-from-arduino-to-openframeworks/
情報科学若手の会2013
63. node-serialport モジュールを使ったシリアル通信
var serialport = require('serialport');
var portName = 'COM9'; // Windows 環境
var sp = new serialport.SerialPort(portName, {
baudRate: 115200,
dataBits: 8,
parity: 'none',
stopBits: 1,
flowControl: false,
parser: serialport.parsers.readline("¥n")
});
情報科学若手の会2013
64. node-serialport モジュールを使ったシリアル通信
// data from Serial port
sp.on('data', function(input) {
var buffer = new Buffer(input, 'utf8');
console.log(buffer);
});
sp.on('close', function(err) { });
sp.on('open', function(err) { });
情報科学若手の会2013
66. 念力スカートめくり機/Leap Motion + node.js + Arduinoでサーボモーター駆動
http://b.denkizakana.com/2013/08/leap-motion-nodejs-arduino.html
情報科学若手の会2013
67. LEAP MOTION と Arduino ロボットの連携
デモ
https://github.com/junpeitsuji/leap_arduinoGithub:
情報科学若手の会2013