質問編集履歴
5
誤りの訂正
title
CHANGED
File without changes
|
body
CHANGED
@@ -112,15 +112,13 @@
|
|
112
112
|
|
113
113
|
|
114
114
|
|
115
|
-
/////////////////////////
|
115
|
+
/////////////////////////////////////////////
|
116
|
-
///Androidに値を送るための宣言(省略)
|
116
|
+
///Androidに値を送るための宣言(省略)////
|
117
|
-
/////////////////////////
|
117
|
+
/////////////////////////////////////////////
|
118
118
|
|
119
119
|
|
120
120
|
|
121
121
|
|
122
|
-
|
123
|
-
|
124
122
|
void setup()
|
125
123
|
{
|
126
124
|
// シリアルモニターの設定
|
@@ -153,10 +151,7 @@
|
|
153
151
|
|
154
152
|
|
155
153
|
|
156
|
-
////////////////////////////////
|
157
|
-
//センサへデータを書き込む関数
|
154
|
+
//センサへデータを書き込む関数
|
158
|
-
////////////////////////////////
|
159
|
-
|
160
155
|
void LPS331AP_write(int CS, byte reg, byte val)
|
161
156
|
{
|
162
157
|
digitalWrite(CS, LOW); //LOWにすることで通信開始
|
@@ -166,10 +161,8 @@
|
|
166
161
|
}
|
167
162
|
|
168
163
|
|
169
|
-
//////////////////////////////
|
170
|
-
//センサから値を受信する関数// (CSで受信先のセンサを区別。regで取得するデータ(温度or気圧)を指定)
|
171
|
-
//////////////////////////////
|
172
164
|
|
165
|
+
//センサから値を受信する関数/
|
173
166
|
byte LPS331AP_read(int CS, byte reg)
|
174
167
|
{
|
175
168
|
byte ret = 0;
|
@@ -187,8 +180,8 @@
|
|
187
180
|
|
188
181
|
void loop()
|
189
182
|
{
|
183
|
+
/////////////////////////////////////////////////
|
190
|
-
///////
|
184
|
+
///センサから値を取得する処理 (省略)////
|
191
|
-
///センサから値を取得する処理
|
192
|
-
//Androidに値を送る処理
|
193
|
-
//////
|
185
|
+
//Androidに値を送る処理 ////
|
186
|
+
////////////////////////////////////////////////
|
194
187
|
}
|
4
情報の追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -10,6 +10,8 @@
|
|
10
10
|
** 目的は、複数のセンサ値をArduinoで取得し、値をAndroidに渡して処理をすることです。**
|
11
11
|
|
12
12
|
|
13
|
+
(※センサはI2C通信とSPI通信に対応していますが、I2C通信だと2つまでしか同時に使用できないようです。合計8つまでの値を読み取ってAndroidに値を引き渡すのが目的のため、SPI通信を使用しております。)
|
14
|
+
|
13
15
|

|
14
16
|
|
15
17
|
|
@@ -31,10 +33,14 @@
|
|
31
33
|
■原因を突き止めました。
|
32
34
|
Arduinoのオンボードで付いているUSBホストポートはSPI通信で接続しているようでした。
|
33
35
|
そのため、**複数センサの値をSPI通信にて取得する処理と干渉**してしまっているようでした。
|
36
|
+
|
34
37
|
[参考サイト](https://www.arduino.cc/en/Main/ArduinoBoardMegaADK)
|
35
38
|
|
39
|
+
(I2C通信であれば、値を読み取ってAndroidに値を引き渡せましたが、2つのセンサしか接続できないため断念。)
|
36
40
|
|
37
41
|
|
42
|
+
|
43
|
+
|
38
44
|
■参考サイトの引用
|
39
45
|
>>USB Host: MAX3421E. The MAX3421E comunicate with Arduino with the SPI bus. So it uses the following pins:
|
40
46
|
|
3
誤りの訂正
title
CHANGED
File without changes
|
body
CHANGED
@@ -20,7 +20,7 @@
|
|
20
20
|
■現状
|
21
21
|
○ USBポートからAndroidに値を引き渡すことは達成済み
|
22
22
|
○ 複数のセンサからArduinoで値を取得することも達成済み
|
23
|
-
※しかし、「Arduinoで複数センサの値を取得 → Androidに引き渡す」 と処理を連結させると、Android端末への接続が切れてしまいます。
|
23
|
+
※しかし、「Arduinoで複数センサの値を取得 → Androidに引き渡す」 と処理を連結させると、**Android端末への接続が切れて**しまいます。
|
24
24
|
|
25
25
|
|
26
26
|
|
@@ -29,7 +29,8 @@
|
|
29
29
|
|
30
30
|
|
31
31
|
■原因を突き止めました。
|
32
|
-
|
32
|
+
Arduinoのオンボードで付いているUSBホストポートはSPI通信で接続しているようでした。
|
33
|
+
そのため、**複数センサの値をSPI通信にて取得する処理と干渉**してしまっているようでした。
|
33
34
|
[参考サイト](https://www.arduino.cc/en/Main/ArduinoBoardMegaADK)
|
34
35
|
|
35
36
|
|
@@ -80,7 +81,7 @@
|
|
80
81
|
■症状を改めて整理
|
81
82
|
Arduino上の配線を全て取り払い、AndroidにのみUSBホストから接続 → USBホスト使用可能
|
82
83
|
Arduinoにセンサを配線し、SS(CS)ポートを接続しない → USBホスト使用可能
|
83
|
-
Arduinoにセンサを配線し、SS(CS)ポートを接続する → USBホスト使用できない!
|
84
|
+
Arduinoにセンサを配線し、SS(CS)ポートを接続する → USBホスト使用できない!(おそらくSPI通信が干渉)
|
84
85
|
|
85
86
|
|
86
87
|
|
2
写真の追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -10,19 +10,24 @@
|
|
10
10
|
** 目的は、複数のセンサ値をArduinoで取得し、値をAndroidに渡して処理をすることです。**
|
11
11
|
|
12
12
|
|
13
|
+

|
13
14
|
|
14
15
|
|
15
16
|
|
16
17
|
|
17
18
|
|
18
19
|
|
19
|
-
|
20
20
|
■現状
|
21
21
|
○ USBポートからAndroidに値を引き渡すことは達成済み
|
22
22
|
○ 複数のセンサからArduinoで値を取得することも達成済み
|
23
23
|
※しかし、「Arduinoで複数センサの値を取得 → Androidに引き渡す」 と処理を連結させると、Android端末への接続が切れてしまいます。
|
24
24
|
|
25
25
|
|
26
|
+
|
27
|
+

|
28
|
+
|
29
|
+
|
30
|
+
|
26
31
|
■原因を突き止めました。
|
27
32
|
それは、**Arduinoのオンボードで付いているUSBホストポートはSPI通信で接続しており、複数センサの値をSPI通信にて取得する処理と干渉してしまっている**ようでした。
|
28
33
|
[参考サイト](https://www.arduino.cc/en/Main/ArduinoBoardMegaADK)
|
1
写真の追加。協調
title
CHANGED
File without changes
|
body
CHANGED
@@ -7,9 +7,16 @@
|
|
7
7
|
「Arduino MEGA ADK」では基板上にUSBホストポートが付いております。←Android端末に接続するために使用。
|
8
8
|
また、複数のセンサをSPI通信にてArduinoに接続しております。←使用。
|
9
9
|
|
10
|
-
目的
|
10
|
+
** 目的は、複数のセンサ値をArduinoで取得し、値をAndroidに渡して処理をすることです。**
|
11
11
|
|
12
12
|
|
13
|
+
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
|
13
20
|
■現状
|
14
21
|
○ USBポートからAndroidに値を引き渡すことは達成済み
|
15
22
|
○ 複数のセンサからArduinoで値を取得することも達成済み
|
@@ -17,9 +24,11 @@
|
|
17
24
|
|
18
25
|
|
19
26
|
■原因を突き止めました。
|
20
|
-
それは、Arduinoのオンボードで付いているUSBホストポートはSPI通信で接続しており、複数センサの値をSPI通信にて取得する処理と干渉してしまっているようでした。
|
27
|
+
それは、**Arduinoのオンボードで付いているUSBホストポートはSPI通信で接続しており、複数センサの値をSPI通信にて取得する処理と干渉してしまっている**ようでした。
|
21
|
-
参考サイト
|
28
|
+
[参考サイト](https://www.arduino.cc/en/Main/ArduinoBoardMegaADK)
|
22
29
|
|
30
|
+
|
31
|
+
|
23
32
|
■参考サイトの引用
|
24
33
|
>>USB Host: MAX3421E. The MAX3421E comunicate with Arduino with the SPI bus. So it uses the following pins:
|
25
34
|
|
@@ -27,6 +36,8 @@
|
|
27
36
|
>> NB:Please do not use Digital pin 7 as input or output because is used in the comunication with MAX3421E
|
28
37
|
>> Non broken out on headers: PJ3 (GP_MAX), PJ6 (INT_MAX), PH7 (SS).
|
29
38
|
|
39
|
+
|
40
|
+
|
30
41
|
■思考錯誤
|
31
42
|
SS(CS)はデフォルトのDigital10や、その他のポートで試してみました。
|
32
43
|
しかし、SPI通信でセンサから値を取得すると、Androidとの接続が切れてしまいます。
|
@@ -37,11 +48,17 @@
|
|
37
48
|
SPI.setBitOrder(MSBFIRST) ; // ビットオーダー
|
38
49
|
SPI.setClockDivider(SPI_CLOCK_DIV8); // クロック(CLK)
|
39
50
|
|
51
|
+
|
52
|
+
|
53
|
+
|
40
54
|
残念ながら初心者の私にはお手上げ状態です。
|
41
55
|
お力添え頂けますと幸いです。
|
42
56
|
よろしくお願いします。
|
43
57
|
|
44
58
|
|
59
|
+
|
60
|
+
|
61
|
+
|
45
62
|
■センサ(気圧センサ LPS331AP)の配線
|
46
63
|
3.3V:Arduinoの3.3V
|
47
64
|
GND:ArduinoのGND
|
@@ -50,7 +67,11 @@
|
|
50
67
|
SCK:Digital52にあたる場所
|
51
68
|
SS(CS) → D10やD3やD40など様々試してみたが変化なし
|
52
69
|
|
70
|
+

|
53
71
|
|
72
|
+
|
73
|
+
|
74
|
+
|
54
75
|
■症状を改めて整理
|
55
76
|
Arduino上の配線を全て取り払い、AndroidにのみUSBホストから接続 → USBホスト使用可能
|
56
77
|
Arduinoにセンサを配線し、SS(CS)ポートを接続しない → USBホスト使用可能
|
@@ -60,6 +81,13 @@
|
|
60
81
|
|
61
82
|
|
62
83
|
|
84
|
+
|
85
|
+
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
|
90
|
+
|
63
91
|
■ソースコード(一部省略しております。)
|
64
92
|
|
65
93
|
#include <SPI.h>
|