UbuntuでBluetooth接続のコントローラを使う
- 2021.09.26
- Python

Raspberry Pi(Ubuntu)で初めてBluetooth接続のコントローラを使ってみたので、その備忘録。
|
ペアリング
まずペアリングを行おうとしたのですが、なぜかBluetoothが使えませんでした。色々と調べてみて下記サイトに書いてあるコマンドを実行するとBluetoothが有効になり、ペアリングが出来るようになりました。
動作確認
ペアリングが終わったらちゃんと動くかどうかを確認します。そのためのツールがあるので下記の通りインストールします。
1 |
sudo apt install jstest-gtk |
起動すると軸数やボタン数が確認できます。
上記のオレンジの部分をダブルクリックすると、ジョイスティックやボタンの状態を確認できるようになります。ここで軸やボタンが反応しない場合、何かしらの不具合が起こっていることが分かります。
プログラム
プログラム上で各値を取得するためにpygameを使います。この時、sudo apt install python3-pipでインストールしようとすると、エラーでできませんでした。いくつか試してみて下記のコマンドでうまくいきました。
1 |
sudo apt-get install python3-pygame |
このpygameを使ったプログラムを作ってみました。スティックを傾けたりボタンを押したりすると値が取得できます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
import pygame from pygame.locals import * import time def main(): pygame.init() joystick=pygame.joystick.Joystick(0) joystick.init() time.sleep(0.5) try: while True: for e in pygame.event.get(): if e.type==pygame.locals.JOYAXISMOTION: a=[] for i in range(4): a.append(joystick.get_axis(i)) print("JOYSTICK:" + str(a)) if e.type==pygame.locals.JOYBUTTONDOWN: print ("BUTTON:" + str(e.button)) time.sleep(0.1) except(KeyboardInterrupt): print("Close") if __name__=="__main__": main() |
とりあえず必要最小限のプログラムとなっています。ちなみに私が買ったコントローラはボタン2つにジャイロも搭載して合計6軸ですが、ジャイロの値の取得方法が分からなかったので、とりあえずスティック2つの合計4軸だけにしています。
-
前の記事
Raspberry PiのカメラモジュールをUbuntuで使う 2021.06.13
-
次の記事
AliExpressで買ったサーボモータ(LX-16A)を動かす 2022.04.29