質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Raspbian

Raspbianは、DebianベースのRaspberry Pi用ディストリビューション。ハードウェア浮動小数点演算を有効にすることが可能で、Webブラウズなどの速度を向上できます。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Q&A

解決済

3回答

1072閲覧

ラズパイとPS4コントローラ(Dual Shock 4)の動作について

yokoyan77

総合スコア1

Raspbian

Raspbianは、DebianベースのRaspberry Pi用ディストリビューション。ハードウェア浮動小数点演算を有効にすることが可能で、Webブラウズなどの速度を向上できます。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

0グッド

0クリップ

投稿2023/05/06 07:54

実現したいこと

PS4コントローラのxボタンのON/OFFに応じて、出力を変更するif文を作りたい

前提

ラズパイ4BとPS4コントローラはBluetoothで接続しています。
下記Githubで接続と動作確認はできました。
https://github.com/ArturSpirin/pyPS4Controller

ここに質問の内容を詳しく書いてください。
ThonyでPS4コントローラの入力値に応じて、値を出力するpythonを組みたいと考えています。

■■な機能を実装中に以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

エラーメッセージ if on_x_press: NameError: name 'on_x_press' is not defined

該当のソースコード

python3

1ソースコード 2from pyPS4Controller.controller import Controller 3 4class MyController(Controller): 5 6 def __init__(self, **kwargs): 7 Controller.__init__(self, **kwargs) 8 9if on_x_press: 10 print("success") 11else: 12 print("miss") 13 14controller = MyController(interface="/dev/input/js0", connecting_using_ds4drv=False) 15controller.listen()

試したこと

ここに問題に対して試したことを記載してください。
if文を入れなければ、ps4コントローラのxボタンを押すとon_x_pressと表示され、xボタンを話すとon_x_releaseと表示されています。
if文を入れるとうまく動かず困っております。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

当方python初心者のためこのような簡単な質問をしてしまい申し訳ありません。
お手数おかけしますが宜しくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

自己解決

あれから試行錯誤しつつ、こちらのサイトに情報載っており解決できました。お手数おかけしました。

https://note.com/yokoyan_pws/n/nd689ab1f199f

投稿2023/05/16 10:03

yokoyan77

総合スコア1

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

公式ページ ArturSpirin/pyPS4Controller: Light module (less than 30KB) without any dependencies designed to provide hooks for PS4 Controller events の Usage にサンプルプログラムが記載されています。これをコピペして変更すればよいかと思います。

python

1from pyPS4Controller.controller import Controller 2 3class MyController(Controller): 4 5 def __init__(self, **kwargs): 6 Controller.__init__(self, **kwargs) 7 8 def on_x_press(self): 9 print("Hello world") 10 11 def on_x_release(self): 12 print("Goodbye world") 13 14controller = MyController(interface="/dev/input/js0", connecting_using_ds4drv=False) 15# you can start listening before controller is paired, as long as you pair it within the timeout window 16controller.listen(timeout=60)

投稿2023/05/06 11:36

melian

総合スコア19791

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

NameError: name 'on_x_press' is not defined

on_x_press という名前の変数が存在しない、とおっしゃってますが、それはどこで定義されてるんでしょうか

投稿2023/05/06 10:31

y_waiwai

総合スコア87774

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問