質問編集履歴

6

IDEの再インストールについて加筆

2022/12/16 10:29

投稿

NNFF_ASDADHD
NNFF_ASDADHD

スコア2

test CHANGED
File without changes
test CHANGED
@@ -95,8 +95,8 @@
95
95
  NKROのサンプル→書込み、動作確認済み
96
96
  Mouseのサンプル→書込み、動作確認済み
97
97
  SoftWireLCDのサンプル→書込み、動作確認済み
98
-
98
+ Arduino IDEを最新のもので再インストールを行った
99
-
99
+ ボードの標準ライブラリ再インストールを行った
100
100
 
101
101
  ```cpp
102
102
  #include <HID-Project.h>

5

使用しているものを加筆

2022/12/13 14:34

投稿

NNFF_ASDADHD
NNFF_ASDADHD

スコア2

test CHANGED
File without changes
test CHANGED
@@ -22,6 +22,8 @@
22
22
 
23
23
  [Rotary](https://github.com/brianlow/Rotary)
24
24
  Polling
25
+ [LiquidCrystal-I2C-library](https://github.com/jim3692/Arduino-LiquidCrystal-SoftI2C-library)
26
+ LiquidCrystal_SoftI2C
25
27
 
26
28
  ### 該当のソースコード
27
29
 

4

わかったことを追記

2022/12/12 13:23

投稿

NNFF_ASDADHD
NNFF_ASDADHD

スコア2

test CHANGED
File without changes
test CHANGED
@@ -96,5 +96,89 @@
96
96
 
97
97
 
98
98
 
99
+ ```cpp
100
+ #include <HID-Project.h>
101
+ #include <HID-Settings.h>
102
+ #include <Rotary.h>
103
+ #include <LiquidCrystal_SoftI2C.h>
104
+ // Set SDA to pin A0 and SCL to pin A1
105
+ SoftwareWire *wire = new SoftwareWire(A0, A1);
106
+ // Set the LCD address to 0x27 for a 16 chars and 2 line display
107
+ LiquidCrystal_I2C lcd(0x27, 16, 2, wire);
108
+
109
+ Rotary r = Rotary(8, 9);
110
+
111
+ void setup() {
112
+
113
+ Serial.begin(9600);
114
+ r.begin(true);
115
+ // NKROKeyboard.begin();
116
+ Mouse.begin();
117
+ Gamepad.begin();
118
+
119
+ lcd.begin();
120
+ lcd.backlight();
121
+ lcd.setCursor(0, 0);
122
+ for (int i = 0; i <= 13; i++) { // 13pinすべてアップ
123
+ pinMode(i, INPUT_PULLUP);
124
+ }
125
+ }
126
+
127
+ void loop() {
128
+
129
+ unsigned char result = r.process();
130
+ if (result) {
131
+
132
+ if (result == DIR_CW) {
133
+ Serial.println("CW_Right");
134
+ lcd.print("CW_Right");
135
+ // NKROKeyboard.press('a');
136
+ // NKROKeyboard.releaseAll();
137
+ Mouse.move(5, 5);
99
138
 
100
139
 
140
+
141
+
142
+ } else if (result != DIR_CW) {
143
+ Serial.println("CCW_Left");
144
+ lcd.print("CCW_Left");
145
+ // NKROKeyboard.press(KEY_BACKSPACE);
146
+ // NKROKeyboard.releaseAll();
147
+ Mouse.move(-5, -5);
148
+
149
+ }
150
+ Gamepad.xAxis(random(0xFFFF));
151
+ Gamepad.yAxis(random(0xFFFF));
152
+ Gamepad.write();
153
+ }
154
+ }
155
+ ```
156
+ としてみた。
157
+ すると書き込みは通った。
158
+
159
+ そしてNKROKeyboard.begin();を非コメント化すると書き込みはできなくなった。
160
+ よってNKROKeyboardが邪魔していることがわかる。
161
+ ```cpp
162
+
163
+ void setup() {
164
+
165
+ Serial.begin(9600);
166
+ r.begin(true);
167
+ NKROKeyboard.begin();
168
+ //この部分を非コメントアウト
169
+ Mouse.begin();
170
+ Gamepad.begin();
171
+
172
+ lcd.begin();
173
+ lcd.backlight();
174
+ lcd.setCursor(0, 0);
175
+ for (int i = 0; i <= 13; i++) { // 13pinすべてアップ
176
+ pinMode(i, INPUT_PULLUP);
177
+ }
178
+ }
179
+
180
+
181
+ ```
182
+
183
+ この問題を回避する方法がわからないため、困っている。
184
+

3

追記

2022/12/12 02:37

投稿

NNFF_ASDADHD
NNFF_ASDADHD

スコア2

test CHANGED
File without changes
test CHANGED
@@ -3,7 +3,7 @@
3
3
  Arduino Leonardoでキーボード、マウス、ゲームパッドが複合したデバイスを作成しています
4
4
 
5
5
  ### 実現したいこと
6
- ロータリーエンコーダーを用いてキー入力、マウス入力を行えるようにしたいです。
6
+ ロータリーエンコーダーを用いてキー入力、マウス入力、パッド入力(特にアナログパッド)を行えるようにしたいです。
7
7
 
8
8
 
9
9
  ### 発生している問題・エラーメッセージ

2

タイトルを実際の問題に変更。

2022/12/12 02:36

投稿

NNFF_ASDADHD
NNFF_ASDADHD

スコア2

test CHANGED
@@ -1 +1 @@
1
- Arduino LeonardoでロータリーエンコーダーとHID Projectを同時に使えない。どうすれば解決するかわからない(ProMicrp含む)
1
+ Arduino Leonardoで書き込みができない
test CHANGED
File without changes

1

問題点等を追加しました。

2022/12/12 02:31

投稿

NNFF_ASDADHD
NNFF_ASDADHD

スコア2

test CHANGED
@@ -1 +1 @@
1
- Arduino LeonardoでロータリーエンコーダーとHID Projectが拮抗するようである。どうすればいいかわからない
1
+ Arduino LeonardoでロータリーエンコーダーとHID Projectを同時に使えない。どうすれば解決するかわからない(ProMicrp含む)
test CHANGED
@@ -9,20 +9,92 @@
9
9
  ### 発生している問題・エラーメッセージ
10
10
 
11
11
  ```
12
- エラーメッセージ
12
+ エラーメッセージは表示されていない。
13
+ コンパイルも正常に通るようである。
14
+
15
+ しかし、書き込みが書き込み中...で止まってしまう。
13
16
  ```
17
+ ### 利用しているもの
18
+ [HID-Project](https://github.com/NicoHood/HID)
19
+ NKROKeyboard
20
+ Gamepad
21
+ Mouse
22
+
23
+ [Rotary](https://github.com/brianlow/Rotary)
24
+ Polling
14
25
 
15
26
  ### 該当のソースコード
16
27
 
17
- ```ここに言語名を入力
28
+ ```cpp
29
+ #include <HID-Project.h>
30
+ #include <HID-Settings.h>
31
+ #include <Rotary.h>
32
+ #include <LiquidCrystal_SoftI2C.h>
33
+ // Set SDA to pin A0 and SCL to pin A1
34
+ SoftwareWire *wire = new SoftwareWire(A0, A1);
35
+ // Set the LCD address to 0x27 for a 16 chars and 2 line display
36
+ LiquidCrystal_I2C lcd(0x27, 16, 2, wire);
37
+
38
+ Rotary r = Rotary(8, 9);
39
+
40
+ void setup() {
41
+
42
+ Serial.begin(9600);
43
+ r.begin(true);
44
+ NKROKeyboard.begin();
45
+ Mouse.begin();
46
+ Gamepad.begin();
47
+
18
- ソースコード
48
+ lcd.begin();
49
+ lcd.backlight();
50
+ lcd.setCursor(0, 0);
51
+ for (int i = 0; i <= 13; i++) { // 13pinすべてアップ
52
+ pinMode(i, INPUT_PULLUP);
53
+ }
54
+ }
55
+
56
+ void loop() {
57
+
58
+ unsigned char result = r.process();
59
+ if (result) {
60
+
61
+ if (result == DIR_CW) {
62
+ Serial.println("CW_Right");
63
+ lcd.print("CW_Right");
64
+ NKROKeyboard.press('a');
65
+ NKROKeyboard.releaseAll();
66
+ Mouse.move(5, 5);
67
+
68
+
69
+
70
+
71
+ } else if (result != DIR_CW) {
72
+ Serial.println("CCW_Left");
73
+ lcd.print("CCW_Left");
74
+ NKROKeyboard.press(KEY_BACKSPACE);
75
+ NKROKeyboard.releaseAll();
76
+ Mouse.move(-5, -5);
77
+
78
+ }
79
+ Gamepad.xAxis(random(0xFFFF));
80
+ Gamepad.yAxis(random(0xFFFF));
81
+ Gamepad.write();
82
+ }
83
+ }
19
84
  ```
85
+ ### 試したこと
86
+ Gamepad.xAxis(random(0xFFFF));
87
+ Gamepad.yAxis(random(0xFFFF));
88
+ Gamepad.write();
89
+ これら3つをコメントアウトすると正常に書き込みができます
90
+ 現状なぜ、Gamepadが使用できないのかがわからず、検索にも困っています。
20
91
 
92
+ GamePadのサンプルを単体で動かしてみる→書込み、動作確認済み
21
- ### 試したこと
93
+ NKROのサンプル→書込み、動作確認済み
94
+ Mouseのサンプル→書込み、動作確認済み
95
+ SoftWireLCDのサンプル→書込み、動作確認済み
22
96
 
23
- ここに問題に対して試したことを記載してください。
24
97
 
25
- ### 補足情報(FW/ツールのバージョンなど)
26
98
 
27
- ここにより詳細な情報を記載してください。
28
99
 
100
+