概要
ラズパイでプログラムを組んでいて、ラジコンを作りました。
キーボードではラジコンを動かせたので、ゲームのコントローラーでできないか、
今回やってみました。まずは、プログラムが動くかも確認したかったため、有線でやってみました。
接続確認
ターミナルを開いて、
ls /dev/input/
と打ってください。
そうしたら、
「by-id by-path event0 event1 js0 mice」
とでると思います。
「js0」が認識した最初のジョイスティックを指しています。
evedvとpygameのライブラリをインストールする
次に各ライブラリをインストールします。
ターミナルに
pip3 install evdev
と
pip3 install pygame
と打って、インストールしてください。
コード
以下がコードの例です。コントローラーの動作確認のプログラムでラジコンを動かすコードは載せてませんので、ご注意ください。
import pygame
from time import sleep
# pygameの初期化
pygame.init()
# コントローラーの初期化
joystick_count = pygame.joystick.get_count()
if joystick_count == 0:
# ジョイスティックが見つからない場合は終了
print("No joystick detected")
pygame.quit()
exit()
joystick = pygame.joystick.Joystick(0)
joystick.init()
def process_input():
running = True
pan_angle = 0
tilt_angle = 0
while running:
for event in pygame.event.get():
if event.type == pygame.JOYBUTTONDOWN:
print(f"JOYBUTTONDOWN: Button {event.button}")
# 以降、ボタン押下時の動作を実装
elif event.type == pygame.JOYBUTTONUP:
print(f"JOYBUTTONUP: Button {event.button} released")
# ボタン解放時の動作を実装
elif event.type == pygame.JOYHATMOTION:
print(f"JOYHATMOTION: Hat {event.hat}, Value {event.value}")
# 十字キー操作時の動作を実装
elif event.type == pygame.QUIT:
running = False
sleep(0.1)
if __name__ == "__main__":
try:
process_input()
finally:
pygame.quit()
失敗談
ラジコンのバッテリーが途中で切れたので、ラジコンのバッテリーを充電している間、
モバイルバッテリーでラズパイに直接、モバイルバッテリーを繋げて、動作確認をしていました。
その時、プログラムがうまく動かなったので、動作確認をする際は気を付けてください。
まとめ
という感じです。
何かの参考になれば幸いです。
スクールの紹介
【アイデミー】AIを学んで一発逆転のキャリアチェンジ!
ここまで読んでいただき、ありがとうございました。
最後に宣伝をさせてください。
夢見るAIエンジニアへ、今こそ一歩を踏み出せ!
最近、AI技術やデータサイエンスに興味を持ち始めたあなた。将来、AIエンジニアやデータサイエンティストとして活躍したいと考えているかもしれません。また、AIを使って業務課題や研究課題を解決したい、あるいは教養としてAIの知識を深めたいと思っている方もいるでしょう。
しかし、学び始めるとなると「どこから手をつけて良いのか分からない」「専門的すぎて理解できない」といった悩みが生じることも。そんなあなたのために、この3ヶ月間集中してAIプログラミングを習得するオンラインコーチングサービスがオススメです!
なぜこのサービスが選ばれるのか?その理由はこちら
- 初心者から上級者まで
完全なプログラミング初心者から研究者まで、幅広い方々に優良なコンテンツが提供されます。 - 徹底的な進捗管理
受講者の進捗をしっかりとチェックし、つまずきやすいポイントでのフォローが万全です。 - 専属メンターによる徹底サポート
AIの学び方から、実際の適用まで、専属のメンターが手厚くサポートします。 - 場所を選ばず学べるオンライン完結
東京以外の地域からも、気軽に学び始めることができます。
信頼の実績多数!
・日本最大級のプログラミングスクール実績
・受講者総数700名以上
・SaaS型学習サービス会員65,000名以上
・企業導入実績120社以上
・グッドデザイン賞受賞
・著名な賞受賞歴や経団連加盟も実現
夢を叶えるための第一歩を、一緒に踏み出しませんか?今なら、あなたもその一員として学び始めることができます!