teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

7

IOデータ USB-RSAQ6 に修正。

2019/07/08 07:02

投稿

murakami-kurio
murakami-kurio

スコア15

title CHANGED
File without changes
body CHANGED
@@ -189,7 +189,7 @@
189
189
 
190
190
  次の2つのシリアル通信を試しました。
191
191
  ```
192
- 古くて情報がないもの。
192
+ IOデータ USB-RSAQ6
193
193
  usb-device vendor-id="1659" product-id="8963"
194
194
  秋月電子通商のFT234X 超小型USBシリアル変換モジュール
195
195
  usb-device vendor-id="1027" product-id="24597"

6

通信ができた旨、ご報告。

2019/07/08 07:02

投稿

murakami-kurio
murakami-kurio

スコア15

title CHANGED
File without changes
body CHANGED
@@ -227,7 +227,7 @@
227
227
  /dev/bus/001/026
228
228
  と出ました。
229
229
 
230
- ### 送信ができました。(ご報告)
230
+ ### 送信ができました。(ご報告)(2019年6月中旬)
231
231
  usb-serial-for-androidを使わない方法で、送信ができました。
232
232
  [AndroidのUSBホスト(OTG)機能を使って、接続されたArduinoとシリアル通信してみる話](https://relativelayout.hatenablog.com/entry/2016/08/12/085051)
233
233
  を参考にしました。(ぐぐったり、null pointerに悩まされながら)
@@ -236,4 +236,12 @@
236
236
  を参考にやろうと思います。
237
237
  両方できたら、「自己解決(いろいろお世話になっていますが...)」と
238
238
  しようと思います。
239
- よろしくお願いいたします。
239
+ よろしくお願いいたします。
240
+
241
+ ### 受信ができませんでした。(ご報告)(2019July04)
242
+ いろいろ、インターネットをさまよったのですが、
243
+ serialドライバーを使わない方法での受信ができませんでした。
244
+
245
+ ### FTDI社のFT232RL用ドライバーを使ったら、FT234Xは通信ができた。(2019July04)
246
+ [Fab蔵さんのページ:201. USB Host事前準備](https://sites.google.com/a/gclue.jp/fab-zang-docs/sumafo-lian-xie/2-android-arduino-rogu-chu-li) から続く内容を実行したら動きました。
247
+ これをもって、自己解決としたいと思います。

5

送信ができた旨、ご報告。

2019/07/04 02:39

投稿

murakami-kurio
murakami-kurio

スコア15

title CHANGED
File without changes
body CHANGED
@@ -225,4 +225,15 @@
225
225
  に従って、getDeviceListしてみました。
226
226
  シリアル機器をUSBに接続すると
227
227
  /dev/bus/001/026
228
- と出ました。
228
+ と出ました。
229
+
230
+ ### 送信ができました。(ご報告)
231
+ usb-serial-for-androidを使わない方法で、送信ができました。
232
+ [AndroidのUSBホスト(OTG)機能を使って、接続されたArduinoとシリアル通信してみる話](https://relativelayout.hatenablog.com/entry/2016/08/12/085051)
233
+ を参考にしました。(ぐぐったり、null pointerに悩まされながら)
234
+ 受信は、
235
+ [自作のUSBデバイスを、Androidで動かす](http://blog.kshoji.jp/2012/12/android-usb-host.html)
236
+ を参考にやろうと思います。
237
+ 両方できたら、「自己解決(いろいろお世話になっていますが...)」と
238
+ しようと思います。
239
+ よろしくお願いいたします。

4

試したことがソースの変更に伴い変わっていたので、変えた。

2019/06/14 08:25

投稿

murakami-kurio
murakami-kurio

スコア15

title CHANGED
File without changes
body CHANGED
@@ -165,9 +165,13 @@
165
165
  は、そのままです。
166
166
 
167
167
  ### 試したこと
168
- シリアルの端末がつながると、スイッチの反応がなくなるはずなのに、
169
- ボタンをタップすると数値がインクリメントされる。
170
168
 
169
+ シリアルの端末がつながると、counter_textに1が入るはずなのに、
170
+ counter_text2に1が入る。
171
+
172
+ (古いソースでは、スイッチの反応がなくなるはずなのに、
173
+ ボタンをタップすると数値がインクリメントされる。)
174
+
171
175
  ### 補足情報(FW/ツールのバージョンなど)
172
176
  シリアルの端末がつながると、ポップアップで許可を求めてきます。
173
177
  API19

3

コードが乱れたので直しました。

2019/05/30 00:34

投稿

murakami-kurio
murakami-kurio

スコア15

title CHANGED
File without changes
body CHANGED
@@ -16,7 +16,6 @@
16
16
  activity_main.xml
17
17
  (文字数が...と出たので削除)
18
18
 
19
- ```
20
19
  helloworld4/app/src/main/res/xml/device_filter.xml
21
20
  ```xml
22
21
  <?xml version="1.0" encoding="utf-8"?>

2

追加情報を記載しました。

2019/05/29 08:25

投稿

murakami-kurio
murakami-kurio

スコア15

title CHANGED
File without changes
body CHANGED
@@ -13,89 +13,99 @@
13
13
 
14
14
  ### 該当のソースコード
15
15
  MainActivity.java
16
+ activity_main.xml
17
+ (文字数が...と出たので削除)
18
+
19
+ ```
20
+ helloworld4/app/src/main/res/xml/device_filter.xml
21
+ ```xml
22
+ <?xml version="1.0" encoding="utf-8"?>
23
+ <resources>
24
+ <!-- 0x067B / 0x2303: USB serial232c ok -->
25
+ <usb-device vendor-id="1659" product-id="8963" />
26
+
27
+ <!-- 0x067B / 0x2303: USB serial232c -->
28
+ <usb-device vendor-id="1659" product-id="8963" />
29
+
30
+ <!-- 0x0403 / 0x6001: FTDI FT232R UART -->
31
+ <usb-device vendor-id="1027" product-id="24577" />
32
+
33
+ <!-- 0x0403 / 0x6015: FTDI FT231X ok -->
34
+ <usb-device vendor-id="1027" product-id="24597" />
35
+
36
+ <!-- 0x2341 / Arduino -->
37
+ <usb-device vendor-id="9025" />
38
+
39
+ <!-- 0x16C0 / 0x0483: Teensyduino -->
40
+ <usb-device vendor-id="5824" product-id="1155" />
41
+
42
+ <!-- 0x10C4 / 0xEA60: CP210x UART Bridge -->
43
+ <usb-device vendor-id="4292" product-id="60000" />
44
+
45
+ <!-- 0x067B / 0x2303: Prolific PL2303 -->
46
+ <usb-device vendor-id="1659" product-id="8963" />
47
+
48
+ <!-- 0x1a86 / 0x7523: Qinheng CH340 -->
49
+ <usb-device vendor-id="6790" product-id="29987" />
50
+ </resources>
51
+ ```
52
+
53
+ ### 該当のソースコード(2019/05/29 17:00修正版)
54
+ MainActivity.java
16
55
  ```java
17
- package xx.xx.xxxx.helloworld4;
56
+ package xx.xx.xxxx.helloworld5;
18
57
 
19
58
  import android.content.Context;
20
59
  import android.support.v7.app.AppCompatActivity;
21
60
  import android.os.Bundle;
22
61
  import java.io.*;
23
62
  import android.hardware.usb.*;
24
- import com.hoho.android.usbserial.driver.*;
25
63
  import android.util.Log;
26
- import android.view.View;
27
- import android.widget.Button;
28
64
  import android.widget.TextView;
65
+ import com.hoho.android.usbserial.driver.*;
29
66
 
30
67
  public class MainActivity extends AppCompatActivity {
31
68
  UsbSerialDriver usb;
32
- byte my_echo[];
33
- String result;
34
69
  int counter = 0;
70
+ int counter2 = 0;
35
71
 
36
72
  @Override
37
73
  protected void onCreate(Bundle savedInstanceState) {
38
74
  super.onCreate(savedInstanceState);
39
75
  setContentView(R.layout.activity_main);
40
76
 
41
- // http://shokai.org/blog/archives/6962
77
+ UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE);
78
+ usb = UsbSerialProber.acquire(manager);
42
79
  if (usb != null) {
43
- try {
80
+ try{
44
81
  usb.open();
45
82
  usb.setBaudRate(19200);
46
83
  start_read_thread(); // シリアル通信を読むスレッドを起動
84
+ }
47
- } catch (IOException e) {
85
+ catch(IOException e){
48
86
  e.printStackTrace();
49
87
  }
50
- }
88
+ counter++;
89
+ String str = String.valueOf(counter);
51
- Button button = findViewById(R.id.button);
90
+ TextView my_counter = findViewById(R.id.counter_text);
52
- button.setOnClickListener(new View.OnClickListener() {
53
- @Override
54
- public void onClick(View view) {
91
+ my_counter.setText(str);
55
- if (usb != null) {
56
92
 
93
+ while(true) {
57
- try {
94
+ try {
58
- usb.write("s".getBytes("UTF-8"), 1);
95
+ usb.write("o".getBytes("UTF-8"), 1);
59
- } catch (UnsupportedEncodingException e) {
96
+ } catch (UnsupportedEncodingException e) {
60
- // 発生し得ないが、書くしかない
97
+ // 発生し得ないが、書くしかない
61
- // https://qiita.com/niharu/items/662b130149ee180f7f34
98
+ // https://qiita.com/niharu/items/662b130149ee180f7f34
62
- } catch (IOException e) {
99
+ } catch (IOException e) {
63
- e.printStackTrace();
100
+ e.printStackTrace();
64
- }
65
-
66
- // https://codeday.me/jp/qa/20190316/423730.html
67
- try {
68
- Thread.sleep(100);
69
- } catch (InterruptedException e) {
70
- e.printStackTrace();
71
- }
72
-
73
- try {
74
- usb.read(my_echo, my_echo.length);
75
- } catch (IOException e) {
76
- e.printStackTrace();
77
- }
78
-
79
- try {
80
- result = new String(my_echo, "UTF-8");
81
- } catch (UnsupportedEncodingException e) {
82
- // 発生し得ないが、書くしかない
83
- // https://qiita.com/niharu/items/662b130149ee180f7f34
84
- }
85
- } else {
86
- TextView textView = findViewById(R.id.textView);
87
- textView.setText("tap!!");
88
-
89
- counter++;
90
- String str = String.valueOf(counter);
91
- TextView my_counter = findViewById(R.id.my_counter);
92
- my_counter.setText(str);
93
-
94
- UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE);
95
- usb = UsbSerialProber.acquire(manager);
96
101
  }
97
102
  }
103
+ } else {
104
+ counter2++;
105
+ String str2 = String.valueOf(counter2);
106
+ TextView my_counter2 = findViewById(R.id.counter_text2);
107
+ my_counter2.setText(str2);
98
- });
108
+ }
99
109
  }
100
110
  public void start_read_thread(){
101
111
  new Thread(new Runnable(){
@@ -104,7 +114,7 @@
104
114
  while(true){
105
115
  byte buf[] = new byte[256];
106
116
  int num = usb.read(buf, buf.length);
107
- if(num > 0) Log.v("arduino", new String(buf, 0, num)); // Arduinoから受信した値をlogcat出力
117
+ if(num > 0) Log.v("Arduino", new String(buf, 0, num)); // Arduinoから受信した値をlogcat出力
108
118
  Thread.sleep(10);
109
119
  }
110
120
  }
@@ -119,12 +129,14 @@
119
129
  }
120
130
  }
121
131
  ```
122
- activity_main.xml
132
+ AndroidManifest.xml
123
133
  ```xml
124
134
  <?xml version="1.0" encoding="utf-8"?>
125
135
  <manifest xmlns:android="http://schemas.android.com/apk/res/android"
126
- package="jp.co.kurio_t.helloworld4">
136
+ package="xx.xx.xxxx.helloworld5">
127
-
137
+ <uses-feature android:name="android.hardware.usb.host" />
138
+ <!-- https://blog.integrityworks.co.jp/2017/12/20/permission-is-only-granted-to-system-app/ -->
139
+ <uses-permission android:name="android.permission.MANAGE_USB" />
128
140
  <application
129
141
  android:allowBackup="true"
130
142
  android:icon="@mipmap/ic_launcher"
@@ -139,9 +151,8 @@
139
151
 
140
152
  <category android:name="android.intent.category.LAUNCHER" />
141
153
  </intent-filter>
142
-
143
154
  <intent-filter>
144
- <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
155
+ <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
145
156
  </intent-filter>
146
157
  <meta-data
147
158
  android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"
@@ -152,38 +163,8 @@
152
163
  </manifest>
153
164
  ```
154
165
  helloworld4/app/src/main/res/xml/device_filter.xml
155
- ```xml
166
+ は、そのままです。
156
- <?xml version="1.0" encoding="utf-8"?>
157
- <resources>
158
- <!-- 0x067B / 0x2303: USB serial232c ok -->
159
- <usb-device vendor-id="1659" product-id="8963" />
160
167
 
161
- <!-- 0x067B / 0x2303: USB serial232c -->
162
- <usb-device vendor-id="1659" product-id="8963" />
163
-
164
- <!-- 0x0403 / 0x6001: FTDI FT232R UART -->
165
- <usb-device vendor-id="1027" product-id="24577" />
166
-
167
- <!-- 0x0403 / 0x6015: FTDI FT231X ok -->
168
- <usb-device vendor-id="1027" product-id="24597" />
169
-
170
- <!-- 0x2341 / Arduino -->
171
- <usb-device vendor-id="9025" />
172
-
173
- <!-- 0x16C0 / 0x0483: Teensyduino -->
174
- <usb-device vendor-id="5824" product-id="1155" />
175
-
176
- <!-- 0x10C4 / 0xEA60: CP210x UART Bridge -->
177
- <usb-device vendor-id="4292" product-id="60000" />
178
-
179
- <!-- 0x067B / 0x2303: Prolific PL2303 -->
180
- <usb-device vendor-id="1659" product-id="8963" />
181
-
182
- <!-- 0x1a86 / 0x7523: Qinheng CH340 -->
183
- <usb-device vendor-id="6790" product-id="29987" />
184
- </resources>
185
- ```
186
-
187
168
  ### 試したこと
188
169
  シリアルの端末がつながると、スイッチの反応がなくなるはずなのに、
189
170
  ボタンをタップすると数値がインクリメントされる。
@@ -213,4 +194,32 @@
213
194
 
214
195
  Q88のadbがなくて、ちまちまリリース用のakpをファイル転送してテストしています。
215
196
 
216
- よろしくお願いいたします。
197
+ よろしくお願いいたします。
198
+
199
+
200
+ ### 追加情報
201
+ ソースコードをリンク先に近い形にしました。
202
+
203
+ >通信相手をつないで『アプリの画面の R.id.button ボタンを
204
+ >押しても』usbがNULLのまま, という解釈であっていますでしょうか.
205
+ はい。
206
+
207
+ >なんのスイッチでしょう.
208
+ 『アプリの画面の R.id.button ボタン』です。
209
+
210
+ >どのような「許可」を求められるのでしょうか
211
+ Open アプリ名 when this USB device is connected?
212
+ □Use by default for this USB device
213
+ 「Cancel」「 OK」
214
+ で、チェックマークを入れずにOKをタップした後、
215
+ ボタンの反応しますので、usbがnullと判断しています。
216
+
217
+ マニフェストに
218
+ <uses-permission android:name="android.permission.MANAGE_USB" />
219
+ を追記してみましたが、変わりませんでした。
220
+
221
+ [AndroidのUSBホスト機能を緩く使ってみる](https://relativelayout.hatenablog.com/entry/2016/08/04/221216)
222
+ に従って、getDeviceListしてみました。
223
+ シリアル機器をUSBに接続すると
224
+ /dev/bus/001/026
225
+ と出ました。

1

githubの「ライブラリーの」ソースを読んでません。と追加。

2019/05/29 08:24

投稿

murakami-kurio
murakami-kurio

スコア15

title CHANGED
File without changes
body CHANGED
@@ -200,7 +200,7 @@
200
200
  を取り込んでいます。
201
201
  usb-serial-for-androidのグーグルコードが消えてしまって、情報が半分くらい
202
202
  消え去っている。(githubに飛ばされた)
203
- githubに公開されている、ソースは読んでいない...です。すいません。
203
+ githubに公開されている、ライブラリのソースは読んでいない...です。すいません。
204
204
  [usb-serial-for-androidのgithub](https://github.com/mik3y/usb-serial-for-android)
205
205
 
206
206
  次の2つのシリアル通信を試しました。