SlideShare a Scribd company logo
1 of 12
Download to read offline
進捗報告
160713
B4 浜辺泰斗
◯進捗
RaspberryPiとArduinoのI2C接続による匂いセンサの制御
● 測定した値が保存されるようにPythonのプログラムを書き換え
●
においセンサを4個に増やした場合の回路、プログラムを作成
参考にしたサイト
電子工作と3DCAD
http://robocad.blog.jp/archives/745780.html
◯RasberryPi ・Python2
import smbus
from time import sleep
bus = smbus.SMBus(1)
SLAVE_ADDRESS = 0x21
f = open("i2c.txt","a")
i = 0
def writeCommand(cmd):
bus.write_byte(SLAVE_ADDRESS, cmd)
print("send: ",cmd)
def readValue():
val = bus.read_byte(SLAVE_ADDRESS)
return val
while i<40:
writeCommand(0);
i+=1
val = readValue()
print(i,"received",val)
s = str(val)
f.write(s)
f.write('n')
sleep(0.5)
print("exit")
f.write("exitn")
f.close()
● テキストファイル”i2c.txt”に測定結果が
書き込まれる
●
測定が40回繰り返されると自動的に
終了
◯RasberryPi ・Python2
◯センサを4個に
前回用いた回路図
◯センサを4個に
◯RaspberryPiとArduinoのI2C接続による
 匂いセンサの制御
Arduino
(ADコンバータとして使用)
cmd
RaspbrryPi
val
I2C接続
Sensor1
Sensor3
Sensor2
Sensor4
◯RasberryPi ・Python2
import smbus
from time import sleep
bus = smbus.SMBus(1)
i=0
SLAVE_ADDRESS = 0x21
def writeCommand(cmd):
bus.write_byte(SLAVE_ADDRESS, cmd)
print("send: ",cmd)
def readValue():
val = bus.read_byte(SLAVE_ADDRESS)
return val
while i<40:
i+=1
writeCommand(0)
val0 = readValue()
writeCommand(1)
val1 = readValue()
writeCommand(2)
val2 = readValue()
writeCommand(3)
val3 = readValue()
print("A0:"val0,"A1:"val1,"A2:"val2,"A3:"val3)
sleep(0.5)
print("exit")
◯Aruduino IDE
#define out1 3
#define out2 4
int SLAVE_ADDRESS = 0x21;
int cmd = 1;
int val = 0;
void setup() {
pinMode(out1,OUTPUT);
pinMode(out2,OUTPUT);
Wire.begin(SLAVE_ADDRESS);
Wire.onReceive(receiveAnalogReading);
Wire.onRequest(sendData);
Serial.begin(9600);
Serial.println("Ready!!");
}
void preheat() {
for (int i = 0; i <= 3; i++){
delay(242);
digitalWrite(out2,HIGH);
delay(8);
digitalWrite(out2,LOW);
}
#include <Wire.h>
delay(237);
digitalWrite(out1,HIGH);
}
void afterheat(){
val = analogRead(0);
delay(2);
digitalWrite(out1,LOW);
digitalWrite(out2,HIGH);
delay(8);
digitalWrite(out2,LOW);
}
void loop(){
delay(1000);
}
void receiveAnalogReading(int byteCount){
while(Wire.available()){
cmd = Wire.read();
if(cmd == 0){
preheat();
val = analogRead(A0);
afterheat();
}
}
}
void sendData(){
val = 1023 - val;
val = val * 5;
Serial.print("send data: ");
Serial.println(val);
Wire.write(val);
}
◯Aruduino IDE
#define out1 3
#define out2 4
int SLAVE_ADDRESS = 0x21;
int cmd = 1;
int val = 0;
void setup() {
pinMode(out1,OUTPUT);
pinMode(out2,OUTPUT);
Wire.begin(SLAVE_ADDRESS);
Wire.onReceive(receiveAnalogReading);
Wire.onRequest(sendData);
Serial.begin(9600);
Serial.println("Ready!!");
}
void preheat() {
for (int i = 0; i <= 3; i++){
delay(242);
digitalWrite(out2,HIGH);
delay(8);
digitalWrite(out2,LOW);
}
#include <Wire.h>
delay(237);
digitalWrite(out1,HIGH);
}
void receiveAnalogReading(int byteCount){
while(Wire.available()){
cmd = Wire.read();
Serial.print("data received: ");
Serial.println(cmd);
switch(cmd){
case 0:
preheat();
val = analogRead(A0);
afterheat();
break;
case 1:
preheat();
val = analogRead(A1);
afterheat();
break;
case 2:
preheat();
val = analogRead(A2);
afterheat();
break;
case 3:
preheat();
val = analogRead(A3);
afterheat();
break;
default:
Serial.print("errorn");
break;
}
}
}
◯測定結果(失敗)
◯来週の予定
●
ポスター作成
●
センサを4個用いた場合のプログラム作成

More Related Content

What's hot

HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜ
HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜHUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜ
HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜbasicinc_dev
 
core.async+transducers Shibuya.lisp #21
core.async+transducers Shibuya.lisp #21core.async+transducers Shibuya.lisp #21
core.async+transducers Shibuya.lisp #21Kei Tsuji
 
高速ネットワーク最新動向と具体例 (ENOG58 Meeting)
高速ネットワーク最新動向と具体例 (ENOG58 Meeting)高速ネットワーク最新動向と具体例 (ENOG58 Meeting)
高速ネットワーク最新動向と具体例 (ENOG58 Meeting)Naoto MATSUMOTO
 
PyOpenCLによるGPGPU入門
PyOpenCLによるGPGPU入門PyOpenCLによるGPGPU入門
PyOpenCLによるGPGPU入門Yosuke Onoue
 
オセロの終盤ソルバーを100倍以上高速化した話
オセロの終盤ソルバーを100倍以上高速化した話オセロの終盤ソルバーを100倍以上高速化した話
オセロの終盤ソルバーを100倍以上高速化した話京大 マイコンクラブ
 
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgenIntel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgenMITSUNARI Shigeo
 
入門core.async
入門core.async入門core.async
入門core.asyncsohta
 
配管流路の多目的最適化OpenFOAM+OpenMDAO(第28回オープンCAE勉強会@関西)
配管流路の多目的最適化OpenFOAM+OpenMDAO(第28回オープンCAE勉強会@関西)配管流路の多目的最適化OpenFOAM+OpenMDAO(第28回オープンCAE勉強会@関西)
配管流路の多目的最適化OpenFOAM+OpenMDAO(第28回オープンCAE勉強会@関西)TatsuyaKatayama
 
Node.js - sleep sort algorithm
Node.js - sleep sort algorithmNode.js - sleep sort algorithm
Node.js - sleep sort algorithmtakesako
 

What's hot (14)

HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜ
HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜHUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜ
HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜ
 
core.async+transducers Shibuya.lisp #21
core.async+transducers Shibuya.lisp #21core.async+transducers Shibuya.lisp #21
core.async+transducers Shibuya.lisp #21
 
高速ネットワーク最新動向と具体例 (ENOG58 Meeting)
高速ネットワーク最新動向と具体例 (ENOG58 Meeting)高速ネットワーク最新動向と具体例 (ENOG58 Meeting)
高速ネットワーク最新動向と具体例 (ENOG58 Meeting)
 
Unix
UnixUnix
Unix
 
PyOpenCLによるGPGPU入門
PyOpenCLによるGPGPU入門PyOpenCLによるGPGPU入門
PyOpenCLによるGPGPU入門
 
Boost Tour 1.48.0 diff
Boost Tour 1.48.0 diffBoost Tour 1.48.0 diff
Boost Tour 1.48.0 diff
 
オセロの終盤ソルバーを100倍以上高速化した話
オセロの終盤ソルバーを100倍以上高速化した話オセロの終盤ソルバーを100倍以上高速化した話
オセロの終盤ソルバーを100倍以上高速化した話
 
HPC Phys-20201203
HPC Phys-20201203HPC Phys-20201203
HPC Phys-20201203
 
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgenIntel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
 
入門core.async
入門core.async入門core.async
入門core.async
 
Boost Tour 1_58_0 merge
Boost Tour 1_58_0 mergeBoost Tour 1_58_0 merge
Boost Tour 1_58_0 merge
 
Boost tour 1.60.0 merge
Boost tour 1.60.0 mergeBoost tour 1.60.0 merge
Boost tour 1.60.0 merge
 
配管流路の多目的最適化OpenFOAM+OpenMDAO(第28回オープンCAE勉強会@関西)
配管流路の多目的最適化OpenFOAM+OpenMDAO(第28回オープンCAE勉強会@関西)配管流路の多目的最適化OpenFOAM+OpenMDAO(第28回オープンCAE勉強会@関西)
配管流路の多目的最適化OpenFOAM+OpenMDAO(第28回オープンCAE勉強会@関西)
 
Node.js - sleep sort algorithm
Node.js - sleep sort algorithmNode.js - sleep sort algorithm
Node.js - sleep sort algorithm
 

Similar to 160713

Polyphony の行く末(2018/3/3)
Polyphony の行く末(2018/3/3)Polyphony の行く末(2018/3/3)
Polyphony の行く末(2018/3/3)ryos36
 
Hol012 windowsコンテナー始動
Hol012 windowsコンテナー始動Hol012 windowsコンテナー始動
Hol012 windowsコンテナー始動Tech Summit 2016
 
Introduction to cython
Introduction to cythonIntroduction to cython
Introduction to cythonAtsuo Ishimoto
 
Zynq VIPを利用したテストベンチ
Zynq VIPを利用したテストベンチZynq VIPを利用したテストベンチ
Zynq VIPを利用したテストベンチMr. Vengineer
 
FD.io VPP事始め
FD.io VPP事始めFD.io VPP事始め
FD.io VPP事始めtetsusat
 
SDN Lab環境でのRobotFramework実践活用
SDN Lab環境でのRobotFramework実践活用SDN Lab環境でのRobotFramework実践活用
SDN Lab環境でのRobotFramework実践活用Toshiki Tsuboi
 
I2CでRaspberry Piから 複数の周辺機器を制御する
I2CでRaspberry Piから複数の周辺機器を制御するI2CでRaspberry Piから複数の周辺機器を制御する
I2CでRaspberry Piから 複数の周辺機器を制御するHirokazu Nishio
 
SECDマシン 実装と動きとその他もろもろについて
SECDマシン 実装と動きとその他もろもろについてSECDマシン 実装と動きとその他もろもろについて
SECDマシン 実装と動きとその他もろもろについてt-sin
 
VPP事始め
VPP事始めVPP事始め
VPP事始めnpsg
 
“Symbolic bounds analysis of pointers, array indices, and accessed memory reg...
“Symbolic bounds analysis of pointers, array indices, and accessed memory reg...“Symbolic bounds analysis of pointers, array indices, and accessed memory reg...
“Symbolic bounds analysis of pointers, array indices, and accessed memory reg...Masahiro Sakai
 
microPCFを使ってみよう
microPCFを使ってみようmicroPCFを使ってみよう
microPCFを使ってみようHiroaki_UKAJI
 
OpenShift v3 Technical Overview
OpenShift v3 Technical OverviewOpenShift v3 Technical Overview
OpenShift v3 Technical OverviewNakayama Kenjiro
 
DE0でラジコンカー作ってみた 関西de0 fpga勉強会20120519
DE0でラジコンカー作ってみた 関西de0 fpga勉強会20120519DE0でラジコンカー作ってみた 関西de0 fpga勉強会20120519
DE0でラジコンカー作ってみた 関西de0 fpga勉強会20120519Yasuhiro Ishii
 
Python physicalcomputing
Python physicalcomputingPython physicalcomputing
Python physicalcomputingNoboru Irieda
 
20200528_AWSでサーバーレスなLINEBotLIFFアプリ環境をIaCな感じで構築するよ!.pdf
20200528_AWSでサーバーレスなLINEBotLIFFアプリ環境をIaCな感じで構築するよ!.pdf20200528_AWSでサーバーレスなLINEBotLIFFアプリ環境をIaCな感じで構築するよ!.pdf
20200528_AWSでサーバーレスなLINEBotLIFFアプリ環境をIaCな感じで構築するよ!.pdfSumihiro Kagawa
 
サーバーを作ろう (毎週のハンズオン勉強会の資料)
サーバーを作ろう (毎週のハンズオン勉強会の資料)サーバーを作ろう (毎週のハンズオン勉強会の資料)
サーバーを作ろう (毎週のハンズオン勉強会の資料)ひとし あまの
 
サーバー実装いろいろ
サーバー実装いろいろサーバー実装いろいろ
サーバー実装いろいろkjwtnb
 
FPGAでゲーム機を作ろう! 第6回
FPGAでゲーム機を作ろう! 第6回FPGAでゲーム機を作ろう! 第6回
FPGAでゲーム機を作ろう! 第6回yoshimitsusudoh
 

Similar to 160713 (20)

Polyphony の行く末(2018/3/3)
Polyphony の行く末(2018/3/3)Polyphony の行く末(2018/3/3)
Polyphony の行く末(2018/3/3)
 
Hol012 windowsコンテナー始動
Hol012 windowsコンテナー始動Hol012 windowsコンテナー始動
Hol012 windowsコンテナー始動
 
Introduction to cython
Introduction to cythonIntroduction to cython
Introduction to cython
 
Zynq VIPを利用したテストベンチ
Zynq VIPを利用したテストベンチZynq VIPを利用したテストベンチ
Zynq VIPを利用したテストベンチ
 
FD.io VPP事始め
FD.io VPP事始めFD.io VPP事始め
FD.io VPP事始め
 
SDN Lab環境でのRobotFramework実践活用
SDN Lab環境でのRobotFramework実践活用SDN Lab環境でのRobotFramework実践活用
SDN Lab環境でのRobotFramework実践活用
 
I2CでRaspberry Piから 複数の周辺機器を制御する
I2CでRaspberry Piから複数の周辺機器を制御するI2CでRaspberry Piから複数の周辺機器を制御する
I2CでRaspberry Piから 複数の周辺機器を制御する
 
SECDマシン 実装と動きとその他もろもろについて
SECDマシン 実装と動きとその他もろもろについてSECDマシン 実装と動きとその他もろもろについて
SECDマシン 実装と動きとその他もろもろについて
 
VPP事始め
VPP事始めVPP事始め
VPP事始め
 
“Symbolic bounds analysis of pointers, array indices, and accessed memory reg...
“Symbolic bounds analysis of pointers, array indices, and accessed memory reg...“Symbolic bounds analysis of pointers, array indices, and accessed memory reg...
“Symbolic bounds analysis of pointers, array indices, and accessed memory reg...
 
Hbstudy41 auto scaling
Hbstudy41 auto scalingHbstudy41 auto scaling
Hbstudy41 auto scaling
 
Rの高速化
Rの高速化Rの高速化
Rの高速化
 
microPCFを使ってみよう
microPCFを使ってみようmicroPCFを使ってみよう
microPCFを使ってみよう
 
OpenShift v3 Technical Overview
OpenShift v3 Technical OverviewOpenShift v3 Technical Overview
OpenShift v3 Technical Overview
 
DE0でラジコンカー作ってみた 関西de0 fpga勉強会20120519
DE0でラジコンカー作ってみた 関西de0 fpga勉強会20120519DE0でラジコンカー作ってみた 関西de0 fpga勉強会20120519
DE0でラジコンカー作ってみた 関西de0 fpga勉強会20120519
 
Python physicalcomputing
Python physicalcomputingPython physicalcomputing
Python physicalcomputing
 
20200528_AWSでサーバーレスなLINEBotLIFFアプリ環境をIaCな感じで構築するよ!.pdf
20200528_AWSでサーバーレスなLINEBotLIFFアプリ環境をIaCな感じで構築するよ!.pdf20200528_AWSでサーバーレスなLINEBotLIFFアプリ環境をIaCな感じで構築するよ!.pdf
20200528_AWSでサーバーレスなLINEBotLIFFアプリ環境をIaCな感じで構築するよ!.pdf
 
サーバーを作ろう (毎週のハンズオン勉強会の資料)
サーバーを作ろう (毎週のハンズオン勉強会の資料)サーバーを作ろう (毎週のハンズオン勉強会の資料)
サーバーを作ろう (毎週のハンズオン勉強会の資料)
 
サーバー実装いろいろ
サーバー実装いろいろサーバー実装いろいろ
サーバー実装いろいろ
 
FPGAでゲーム機を作ろう! 第6回
FPGAでゲーム機を作ろう! 第6回FPGAでゲーム機を作ろう! 第6回
FPGAでゲーム機を作ろう! 第6回
 

More from robo_lab

170111 大ゼミ2
170111 大ゼミ2170111 大ゼミ2
170111 大ゼミ2robo_lab
 
170118 報告用
170118 報告用170118 報告用
170118 報告用robo_lab
 
170111 大ゼミ2
170111 大ゼミ2170111 大ゼミ2
170111 大ゼミ2robo_lab
 
160427 大ゼミ1
160427 大ゼミ1160427 大ゼミ1
160427 大ゼミ1robo_lab
 
2016Ocプレゼンテーション
2016Ocプレゼンテーション2016Ocプレゼンテーション
2016Ocプレゼンテーションrobo_lab
 
160717 oc発表
160717 oc発表160717 oc発表
160717 oc発表robo_lab
 
オープンキャンパススライド2017
オープンキャンパススライド2017オープンキャンパススライド2017
オープンキャンパススライド2017robo_lab
 
160717 ocポスター
160717 ocポスター160717 ocポスター
160717 ocポスターrobo_lab
 

More from robo_lab (20)

170111 大ゼミ2
170111 大ゼミ2170111 大ゼミ2
170111 大ゼミ2
 
170126
170126170126
170126
 
170112
170112170112
170112
 
170118 報告用
170118 報告用170118 報告用
170118 報告用
 
170111 大ゼミ2
170111 大ゼミ2170111 大ゼミ2
170111 大ゼミ2
 
161215
161215161215
161215
 
161208
161208161208
161208
 
161201
161201161201
161201
 
161124
161124161124
161124
 
161117
161117161117
161117
 
161110
161110161110
161110
 
161027
161027161027
161027
 
161020
161020161020
161020
 
160824
160824160824
160824
 
160427 大ゼミ1
160427 大ゼミ1160427 大ゼミ1
160427 大ゼミ1
 
2016Ocプレゼンテーション
2016Ocプレゼンテーション2016Ocプレゼンテーション
2016Ocプレゼンテーション
 
160717 oc発表
160717 oc発表160717 oc発表
160717 oc発表
 
オープンキャンパススライド2017
オープンキャンパススライド2017オープンキャンパススライド2017
オープンキャンパススライド2017
 
Oc浜辺
Oc浜辺Oc浜辺
Oc浜辺
 
160717 ocポスター
160717 ocポスター160717 ocポスター
160717 ocポスター
 

160713