Poke Controllerの使い方 - KawaSwitch/Poke-Controller GitHub Wiki

Poke-Controllerを動かすまでの準備と各種機能について説明します
不明点があればお気軽にIssueまで

準備

1. Poke-Controllerをダウンロードする

以下のいずれかの方法で行えます

<直接ダウンロード>

  • 安定版
    リリースページからAssets内のPoke-Controller.zipを取得
    zipファイルを解凍しておいてください
    こちらを選択した場合はpythonの環境構築が不要なので本手順の4番へ
    Windows OSの場合, かつ最新版の取得が必要でない場合はこちらがお勧めです
    ※Windows OSでない場合はAssets内のSource code.zipを取得して本手順の2番へ

  • 最新版
    ホームから以下のように取得
    Home
    Download ZIP


<git使用>

gitのcloneコマンドを用いてクローンする
git clone https://github.com/KawaSwitch/Poke-Controller.git

自分で.hexファイルを作成する場合はこちら

clone時に--recursiveを付与することでmake用のLUFAが付いてきます
git clone --recursive https://github.com/KawaSwitch/Poke-Controller.git

もしくは自分でリポジトリから最新版なりを配置


更新の取得
git pull origin master

2. python3を実行できるようにする

python3を実行するための環境が必要になります
ここではWindows10とAnacondaを用いる方法を示します(別OSは調べるかIssueへ)
あくまで一例で他にも色々な環境の作り方がありますので気になる方は変えても大丈夫です

1: Anacondaをインストール
ここから3.7の方を選択してダウンロード→インストール

2: 下記画像のようにアプリを検索し"Anaconda Prompt"を開く
Anaconda Prompt

3: Anaconda上にpython3の仮想環境を作成する
conda create -n [name] python=3.6
バージョン3.6でしか動かないパッケージがあるので指定
[name]の部分は好きな仮想環境名に変更

conda activate [name]
作成した仮想環境へ移動する
実行後に一番左の(base)が([name])と変わっていれば成功です

3. 実行に必要なパッケージをインストールしていく

Anaconda Promptを開いたまま次のように実行しすべてインストールする
([Y/n]のように聞かれたらYを入力してエンターか, そのままエンターを押す)

pip install opencv-python (OpenCV)
pip install pynput (pynput)
conda install pyserial (pyserial)
conda install Pillow (PIL)

Windowsのみ
conda install -c pythonnet pythonnet (pythonnet)

4. マイコンをUSBデバイス化する

用意したマイコンをSwitchのコントローラとして認識させます
別途記事を用意していますのでこちらを参考に進めてください
マイコンをUSBデバイスとして設定する

5. Poke-Controllerを実行する

※手順1で安定版を取得した方はPoke-Controller/SerialController/Window.exeから実行できます

Window.pyというファイルを実行することでウィンドウが開きます

cd [Poke-Controllerまでのパス]\Poke-Controller\SerialController
Poke-Controller/SerialControllerまで移動

python Window.py
実行. これでウィンドウが開けば問題なしです

Windows 10 例
on_windows

Ubuntu 18.04 LTS 例
on_ubuntu


6. シリアル通信の設定を行う

PC側のCOMポート番号の確認をし, Poke-Controller側へ番号を設定する必要があります
こちらの記事で説明していますので参照して設定を行ってください
Switchをシリアル通信で動かす

コマンドの実行やキーボードでのコントローラ操作で動作確認をしてください
これらを含めた機能の概要は下記の「各種機能」にて説明しています

使用上で困ったら

いくつか代表的なQ&Aはこちら
解決済みIssueも参考にしてみてください
それでも分からなければIssueへ投稿してください

各種機能

備わっている各種機能について簡単に説明します
画像は適宜追加するかもしれません

  • キャプチャ機能

    • カメラ指定
      カメラが接続されている場合, "Camera"欄にキャプチャ映像が映し出されます
      実行後にカメラを変更する場合は隣の"Reload Cam"ボタンを押してください

      WindowsOSではカメラ名, それ以外のOSではカメラIDを直接指定します
      ただしWindowsでも一部環境でカメラ名を指定できないことがあります(Issue #7)

    • キャプチャ映像の表示/停止
      "Show Realtime"のチェックボックスのオン/オフで操作
      オフでも画像認識は使用できます

    • 画面の静止画キャプチャ機能
      現在表示しているフレームのキャプチャを撮影しPoke-Controllerディレクトリ化に保存します
      内部の画像認識で用いる解像度(1280×720)と同じ解像度で保存します

    • FPS変更
      表示されているキャプチャ映像の滑らかさを指定できます
      現在は15, 30, 45(fps)から選択可能です

    • スクリーン座標の表示
      キャプチャ映像上でマウスの左ボタンを押下すると押下位置の座標がログに表示されます
      showは表示解像度での座標, captureはキャプチャ画像/画像認識での解像度です

  • シリアル通信設定

    • COMポート設定
      通信に使用するCOMポート番号を設定する場所です
      変更後は隣の"Reload Port"ボタンを押してください
      COMポート番号の確認はこちら

    • シリアル通信の内容の表示の有無
      "Show Serial"のチェックボックスのオン/オフで操作
      オンにするとマイコンに送ったシリアル通信の内容をログに表示します
      具体的な中身はこちらで解説しています

  • 設定値の保存
    Poke-Controlelrの正常終了時に次の設定値が保存され, 次回起動時に自動で設定されます

    • Camera ID
    • FPS
    • COM Port番号(正常に接続できた場合)
    • Show Realtime / Show Serial / Use Keyboard のチェック状態

    現在は以上の設定値のみ

  • コントローラ機能

    • キーボードのコントローラ化
      "Use Keyboard"チェックボックスのオン/オフで切り替え
      オンの時にはReadme.mdの"コントローラ"欄に記述したキーバインドでのSwitchの操作が可能

    • コントローラGUIの表示
      "Controller"ボタン押下でコントローラ画面が開き, ボタン操作でSwitchの操作ができます
      現在はGUIでのスティック入力の長押しには対応していません

  • コマンド実行機能
    あらかじめ用意されたコマンドor自分で追加したコマンドを選択して実行できます

    • MCU実行
      MCU用に書かれたコマンドを実行
      "Start"ボタンを押した後はシリアル通信なしでも動きます
      ver1.0では一応追加はできますが非推奨で, 後のバージョンでこの辺りを整えていくつもりです

    • Python実行
      Pythonでシリアル通信用に書かれたコマンドを実行
      デフォルトのコマンドの概要はこちら
      コマンドの追加方法などはこちらに記載しています

    • Utility実行
      少し操作を楽にする程度のコマンドを置いています
      デフォルトではコントローラ画面用のコントローラ接続/解除が実行できます

    • コマンドのReload
      ReloadボタンでPoke-Controllerを終了することなくコードの変更を適用できます
      コマンド作成時の調整などに便利な機能です(PR #11)

  • ログ表示
    押下判定のあったボタン/コマンド内でprintされた内容を表示します


追加や変更があった場合はこちらも編集しますのでご了承ください
疑問点や記載の仕様と異なる点, また追加/変更要望などあればお気軽にIssueまでお願いします

⚠️ **GitHub.com Fallback** ⚠️