目次
- USB取り込まなきゃなんだけどSDKが入らない問題
- Zilinx のFPGAのボードを眺めていたら・・
- Visual Studio + Direct X SDK2010のインストールTips
- Microsoft Visual C++ 2010 Redistributable をアンインストールする
- Direct X SDKをダウンロード
- Microsoft再頒布可能パッケージを再インストールする
- Joystickのサンプルを動かそう!!
- 動かすまでにハマったポイント
- その1 .NET Framework Ver 3.5 でないと動かない
- その2 明示的に参照でDirectXのDLLを読み込まねばならない
- その3 Win32アプリらしいので、CPUタイプをX86としないとビルドできない
- まぁ、それでも、デバックモードで実行すると・・・
- その4 TimerのプロパティをEnableにしないと(笑)
- それで、やっと動きました(笑)
- いいね:
- 関連
USB取り込まなきゃなんだけどSDKが入らない問題
【Windowsプログラミング】VRCのコントロールを取り込まなきゃ。。WindowsのUSBデバイスを読むには【自作UAV】
で、ちょいと不明のままだったんですが・・
Zilinx のFPGAのボードを眺めていたら・・
Zilinxの機械学習のページからたどると・・面白そうなのがあって、USBとZynqというFPGAボードをつなぐプログラミングが掲載されていて、Visual Studio Direct Xのインストールの仕方がきれいにまとまっていました。
https://reference.digilentinc.com/learn/programmable-logic/tutorials/zybo-zybot-guide/start
僕もこいつを知らなかったので、DirectXのSDKが入らないって悩んでいました。今更感満載ですけど、翻訳してきれいにTipsとして、おいて置きます(笑)
【Windowsプログラミング】VRCのコントロールを取り込まなきゃ。。WindowsのUSBデバイスを読むには【自作UAV】
Visual Studio + Direct X SDK2010のインストールTips
Xboxコントローラーを使用するプロジェクトではVisual Studioを使用しています。Microsoftでは、無料でダウンロードできるVisual Studioのバージョンを提供しています。
僕はVisual Studio 2017 Community版をダウンロードしてインストールしました。
Visual Studio Team Servicesだと、Gitとかの連携とかweb上でできるんですね。面白いけどいまはあまり使わなさそうなので、ひとまずおいておきます(笑)
Microsoft Visual C++ 2010 Redistributable をアンインストールする
残念ながら、コントローラをコンパイルするために必要な次の作業と2010年版のMicrosoft Redistributableの間には矛盾があります。
コントロールパネル→[プログラムと機能]に移動します。
Microsoft Visual C ++ 2010 Redistributableのすべてのバージョンをアンインストールします。
Direct X SDKをダウンロード
X-boxコントローラをプログラムするには、Direct X Software Development Kitという特別なツールが必要です。マイクロソフトではDirect Xの無料ダウンロードも行っています。
Direct X SDKをダウンロードしてインストールします。
Microsoft再頒布可能パッケージを再インストールする
だって・・・ 確かに・・こうすると、インストールできました!
Joystickのサンプルを動かそう!!
もうWindowsはMicrosoftのサイトではどこにあるのか?どの情報が正しいのかわけわかめですので・・とりあえず。。GithubでDirectInputをつかっているやつを探しまして、
https://github.com/gdmalet/JoyMon
から、Clone or Downlaodして、やってみるが、なぜかうまくいかない。。・・・ NG(笑)
次に、Direct X SDKの中に、サンプルがありまして、
C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Samples\C++\XInput
のサンプルを入れてみるが、こいつも、どう動かすのやら??(笑) NG
いずれもエラーがいっぱい出すぎて、やる気失せました(笑)
で・・・
次に、もう一度、このページに戻り、コードを読み直すと。。
CooperativeLevelFlags.Background
ウィンドウがアクティブでなくても(=裏に隠れていても)、ジョイスティックの状態を取得可能にします。CooperativeLevelFlags.NonExclusive
ジョイスティックに対して、排他的ではないアクセスを行います。
これを指定すると、同一のデバイスにアクセスしているほかのアプリの動作を妨げません。
ということで、今回やりたい VRCを動かしながら、USBコントローラの値を読み込みたいということが出来そうだったので・・・
なんとか動かそうとがんばってみました(笑)
ちなみに、ソースは、TxtLogとなってる変数をTextBox1とか、Bottom1とかに変えたり、Formの名前を適切にかえたりする必要があります。。それらは、まぁビルドやってみると変数がないとかで教えてくれるので、少しでもVisual Studio系のIDEを使ったことがある人ならできるかと思います。
動かすまでにハマったポイント
その1 .NET Framework Ver 3.5 でないと動かない
プロジェクトを作る際に、デフォルトだとVer4になっていますが、Ver 3.5 でないと実行時エラーがでるそうです。
その2 明示的に参照でDirectXのDLLを読み込まねばならない
ソリューションエクスプローラーの参照で、Microsoft.DirectXとMicrosoft.DirectX.DirectInputを参照しておく。
そいでもって、参照するだけだと、これらのファイルが見えないので(笑)
C:\Windows\Microsoft.NET\DirectX for Managed Code\1.0.2902.0\Microsoft.DirectX.dll C:\Windows\Microsoft.NET\DirectX for Managed Code\1.0.2902.0\Microsoft.DirectX.DirectInput.dll
直接リンクの位置を参照してあげないといけません(笑)
その3 Win32アプリらしいので、CPUタイプをX86としないとビルドできない
なんかAnyCPUとかあるんですが、このDLLはAnyCPUだと動かないらしいんですよね。
まぁ、それでも、デバックモードで実行すると・・・
例外がスローされますが、続行します(笑)
一番最初と、USBのステータスを取ってくるところ。。
どなたか、この例外がスローされない方法を教えてください。
その4 TimerのプロパティをEnableにしないと(笑)
いやぁ~これ、はまりました。デバックしても、Timerに飛ばない(笑)なんでかなぁ~??って思って、VRCを動かして遊んだりしているうちに・・・そういや、昔、Timerにはプロパティってあったよなぁ~ って思い出しまして、それで、Enableにしたら、動きました(笑)
それで、やっと動きました(笑)
とりあえず、コントローラーの動きと、映像を同時にとるということの目途はつきました。映像と数値のファイルを作るプログラムを作ってみようかな? なんかうまく同期させる方法ないかな??
秘密結社のみなさん・・・ちょっとだけ進んだよ(笑)
さて・・ NVIDIAの自動運転車のためのエンドツーエンド学習という論文一回みてみると・・なんと9層もあるんですね。同じようなことをやろうとすると、やっぱGPUがないとあかんかもなぁ~
どれがいい?(笑)
PINEBOOKくらいで動かないとなぁ~ あれにもMali400というGPUが乗ってるんだけど、CUDAとかは対応してないだろうしなぁ~(笑)
【Pinebook】Raspberry Pi 対抗のPine64でできたUbuntsuノートブックが来た。Scratchとかするなら、これで良いかも【$89~$99】
他にも参考にさせてもらったサイトはこちらです
http://garicchi.com/?p=16711
コメントを残していただけるとありがたいです