回答編集履歴

10

追記

2018/09/15 06:48

投稿

umyu
umyu

スコア5846

test CHANGED
@@ -106,6 +106,6 @@
106
106
 
107
107
  実環境がないので、私から手伝える事はこれ以上ないです。
108
108
 
109
- 友達に聞いてみるか、質問文を編集エラーなどが発生しているならその旨を追記して
109
+ 友達に聞いてみるか、質問文を最新のコードに編集後、エラーなどが発生しているならその旨を追記して
110
110
 
111
111
  他の人の回答を待ってみてくださいな。あと他の方へのお礼の言葉は忘れないでくださいね。

9

追記

2018/09/15 06:48

投稿

umyu
umyu

スコア5846

test CHANGED
@@ -96,6 +96,10 @@
96
96
 
97
97
 
98
98
 
99
+ ---
100
+
101
+
102
+
99
103
  > サーボモータを40番ピン、gnd、電源に接続してwebiopiにアクセス
100
104
 
101
105
 

8

追記

2018/09/15 06:42

投稿

umyu
umyu

スコア5846

test CHANGED
@@ -93,3 +93,15 @@
93
93
  now['x'] = (xAngle - past['x'])%360
94
94
 
95
95
  ```
96
+
97
+
98
+
99
+ > サーボモータを40番ピン、gnd、電源に接続してwebiopiにアクセス
100
+
101
+
102
+
103
+ 実環境がないので、私から手伝える事はこれ以上ないです。
104
+
105
+ 友達に聞いてみるか、質問文を編集しエラーなどが発生しているならその旨を追記して。
106
+
107
+ 他の人の回答を待ってみてくださいな。あと他の方へのお礼の言葉は忘れないでくださいね。

7

補足

2018/09/15 06:42

投稿

umyu
umyu

スコア5846

test CHANGED
@@ -58,17 +58,19 @@
58
58
 
59
59
  TypeError: - : 'str'と 'int'のサポートされないオペランドタイプ
60
60
 
61
- 文字変数(str)と数(int)と型が違うもの対して、-演算(サポートされていない演算(オペランド))を行っているのが原因です。
61
+ テキストシーケンス型(str)と数値型(int)と変数の型が違うもの対して、-演算(サポートされていない演算(オペランド))を行っているのが原因です。
62
+
63
+ 参考:[組み込み型](https://docs.python.jp/3/library/stdtypes.html)
62
64
 
63
65
 
64
66
 
65
- xAngle - past['x'] #質問文のpython側のコードのこの箇所で変数:xAngleが文字変数として扱われています。
67
+ 関数:`moveServo`のxAngle - past['x'] #この箇所で変数:xAngleがstr型変数として扱われています。
66
68
 
67
69
 
68
70
 
69
- どうして文字として扱われたかの究明は**質問者さんにして頂きたいのですが**。
71
+ 変数:`xAngle`がどうしてテキストシーケンス型(str)として扱われたかの原因究明は**質問者さんにして頂きたいのですが**。
70
72
 
71
- `JavaScript`側のfunction getAngle(xAngle, yAngle)の部分cosole.logでxAngleとyAngleを出力するようデバック確認してくださいな。
73
+ `JavaScript`側の`function getAngle(xAngle, yAngle)`メソッド内`xAngle``yAngle`ラベルなどに値を出力するよう変更しデバック確認してくださいな。
72
74
 
73
75
  参考:[DeviceOrientation Event Viewer](http://misohena.github.io/js_deviceorientation/)
74
76
 

6

追記

2018/09/15 04:43

投稿

umyu
umyu

スコア5846

test CHANGED
@@ -70,9 +70,11 @@
70
70
 
71
71
  `JavaScript`側のfunction getAngle(xAngle, yAngle)の部分にcosole.logでxAngleとyAngleを出力するようにしてデバック確認してくださいな。
72
72
 
73
+ 参考:[DeviceOrientation Event Viewer](http://misohena.github.io/js_deviceorientation/)
73
74
 
74
75
 
76
+
75
- **正常に値が渡っていて**strからintへの型変換を行うだけでしたら以下コードで
77
+ **もしも値が正常に渡っていて**strからintへの型変換を行うだけでしたら以下コードで
76
78
 
77
79
 
78
80
 

5

追記

2018/09/15 04:20

投稿

umyu
umyu

スコア5846

test CHANGED
@@ -58,7 +58,7 @@
58
58
 
59
59
  TypeError: - : 'str'と 'int'のサポートされないオペランドタイプ
60
60
 
61
- 文字変数(str)と数字(int)対して-演算を行っているのが原因です。
61
+ 文字変数(str)と数字(int)と型が違うもの対して-演算(サポートされていない演算(オペランド))を行っているのが原因です。
62
62
 
63
63
 
64
64
 
@@ -66,13 +66,13 @@
66
66
 
67
67
 
68
68
 
69
- どうして文字として扱われたかの究明は**質問者さんにしていただきたいのですが**。
69
+ どうして文字として扱われたかの究明は**質問者さんにしてきたいのですが**。
70
70
 
71
- 多分JavaScript側のfunction getAngle(xAngle, yAngle)の部分にcosole.logでxAngleとyAngleを出力するようにしてデバック確認してくださいな。
71
+ `JavaScript`側のfunction getAngle(xAngle, yAngle)の部分にcosole.logでxAngleとyAngleを出力するようにしてデバック確認してくださいな。
72
72
 
73
73
 
74
74
 
75
- **正常に値が渡っていて**型変換をするだけら以下のようなコード
75
+ **正常に値が渡っていて**strからintへの型変換を行うだけでしたら以下コード
76
76
 
77
77
 
78
78
 

4

追記

2018/09/15 04:17

投稿

umyu
umyu

スコア5846

test CHANGED
@@ -45,3 +45,47 @@
45
45
 
46
46
 
47
47
  あと質問文に実行エラーメッセージ(traceback)を編集記載して頂くと回答が付きやすいのではないかと。
48
+
49
+
50
+
51
+ ---
52
+
53
+ > TypeError: unsupported operand type(s) for -: 'str' and 'int'
54
+
55
+
56
+
57
+ ■グーグル翻訳
58
+
59
+ TypeError: - : 'str'と 'int'のサポートされないオペランドタイプ
60
+
61
+ 文字変数(str)と数字(int)に対して-演算を行っているのが原因です。
62
+
63
+
64
+
65
+ xAngle - past['x'] #質問文のpython側のコードのこの箇所で変数:xAngleが文字変数として扱われています。
66
+
67
+
68
+
69
+ どうして文字として扱われたかの究明は**質問者さんにしていただきたいのですが**。
70
+
71
+ 多分JavaScript側のfunction getAngle(xAngle, yAngle)の部分にcosole.logでxAngleとyAngleを出力するようにしてデバック確認してくださいな。
72
+
73
+
74
+
75
+ **正常に値が渡っていて**型変換をするだけなら以下のようなコードを
76
+
77
+
78
+
79
+ ```Python
80
+
81
+ webiopi.debug("moveServoAngle : %s, %s" % (xAngle, yAngle))
82
+
83
+ # 以下2行を追加
84
+
85
+ xAngle = int(xAngle)
86
+
87
+ yAngle = int(yAngle)
88
+
89
+ now['x'] = (xAngle - past['x'])%360
90
+
91
+ ```

3

最小限のコードでテストしてみたら原因が違うので、訂正。

2018/09/15 04:14

投稿

umyu
umyu

スコア5846

test CHANGED
@@ -12,11 +12,11 @@
12
12
 
13
13
  動作環境がないので、コードを見ただけですが。
14
14
 
15
- 変数:`xAngle`と変数:`past`が`-`記号の間スペースが無いことにより変数:`xAngle-past`に解釈されているか
15
+ 変数:pastに再代入をしているのが、原因ではないでしょうか。
16
16
 
17
17
 
18
18
 
19
- 以下のような変更でどうでしょう
19
+ 以下のような変更でどうでしょう。
20
20
 
21
21
  ```Python
22
22
 
@@ -28,9 +28,9 @@
28
28
 
29
29
  webiopi.debug("moveServoAngle : %s, %s" % (xAngle, yAngle))
30
30
 
31
- now['x'] = (xAngle - past['x'])%360 # 変数の間にスペースを追加
31
+ now['x'] = (xAngle - past['x'])%360 #
32
32
 
33
- now['y'] = (yAngle - past['y'])%180 # 変数の間にスペースを追加、xAngle→yAngleに
33
+ now['y'] = (yAngle - past['y'])%180 # xAngle→yAngleに
34
34
 
35
35
  past = {'x': xAngle, 'y': yAngle}
36
36
 

2

補足

2018/09/15 03:45

投稿

umyu
umyu

スコア5846

test CHANGED
@@ -30,7 +30,7 @@
30
30
 
31
31
  now['x'] = (xAngle - past['x'])%360 # 変数の間にスペースを追加
32
32
 
33
- now['y'] = (xAngle - past['y'])%180 # 変数の間にスペースを追加
33
+ now['y'] = (yAngle - past['y'])%180 # 変数の間にスペースを追加、xAngle→yAngleに
34
34
 
35
35
  past = {'x': xAngle, 'y': yAngle}
36
36
 

1

追記

2018/09/15 03:13

投稿

umyu
umyu

スコア5846

test CHANGED
@@ -12,11 +12,11 @@
12
12
 
13
13
  動作環境がないので、コードを見ただけですが。
14
14
 
15
- 変数:`xAngle`と変数:`past`が`-`記号の間にスペースが無いことにより
15
+ 変数:`xAngle`と変数:`past`が`-`記号の間にスペースが無いことにより変数:`xAngle-past`に解釈されているかと。
16
-
17
- 変数:`xAngle-past`に解釈されているかと。
18
16
 
19
17
 
18
+
19
+ 以下のような変更でどうでしょうか。
20
20
 
21
21
  ```Python
22
22
 
@@ -40,6 +40,8 @@
40
40
 
41
41
  ```
42
42
 
43
+ 参考:[Python のローカルとグローバル変数のルールは何ですか?](https://docs.python.jp/3/faq/programming.html#what-are-the-rules-for-local-and-global-variables-in-python)
43
44
 
44
45
 
46
+
45
- あと実行エラーメッセージは質問文に記載して頂くと回答が付きやすいのではないかと。
47
+ あと質問文に実行エラーメッセージ(traceback)を編集記載して頂くと回答が付きやすいのではないかと。