Leap Motion v1 が自動でアップグレードされないようにする

Leap Motion Controller のソフトウェアは、v2 よりも v1 のほうがトラッキングの精度自体は高いため、
v1 を利用したいケースも依然としてあります。

Leap Motion v1 の実行環境をセットアップするには、
Leap Motion のセットアップで書いた通りインストーラーを実行したあと、
コントロール パネルを開いて [最新版を自動的にインストール] のチェックをオフに設定します。

Leap-v1-ControlPanel

この設定変更をしないと、しばらく経つと自動的に v2 のインストーラーをダウンロードしてアップグレードしてしまいます。

問題はここからです。
v2 にアップグレードしてしまったとしても「v2 アンインストール& v1 再インストール」でやり直せると思いきや、
なんと v1 を再インストールした直後に間髪入れずに v2 にアップグレードされてしまいます。

これはどうやら、最初に v2 にアップグレードしたときに使用したインストーラーが
    C:\Windows\Temp\leap
に残っていることが原因のようです。

Leap 2.3.1 Installer

このインストーラーを削除してから v1 のインストーラーを再実行すれば解決します。

// 他にも、ユーザー フォルダーの「AppData\Local\Temp\~nsu.tmp」フォルダーに .exe ファイルが残ってたりしますが、
// こちらは直接影響しないようです。

 

2018.02.03 追記:
Windows 10 Fall Creators Update が適用されてから、Leap Motion Controller を USB で接続しても認識されなくなりました。
既定のドライバーでは動作しないようです。
Leap Motion のインストール フォルダーにある次のドライバーを追加でインストールすることで解決しました (64 ビットの場合)。
    C:\Program Files (x86)\Leap Motion\Core Services\Drivers\dpinst64.exe

 

参照
Leap Motion のセットアップ
Leap Motion driver broken on Windows Fall Creators Update

カテゴリー: 周辺機器. タグ: , . 1 Comment »

デスクトップ アプリから WinRT API を呼び出す (Windows 10)

デスクトップ アプリから WinRT API を呼び出す方法について、
Windows 8.0 ではセンサーのデータを SignalR でホストする (1) という記事で、
Windows 8.1 ではデスクトップ アプリから WinRT API を呼び出す (Windows 8.1) という記事で書きましたが、
今回は Windows 10 の場合です。

コンソール アプリケーションや WPF アプリケーションなどのプロジェクトを作成したら、
.csproj ファイルを手動で編集して、<TargetPlatformVersion> を追加します。
今回は 10.0 を指定します。

<TargetPlatformVersion>10.0</TargetPlatformVersion>

次に、WinRT API への参照です。
Windows 8.0 および 8.1 向けの WinRT API は「Windows」のみでしたが、
Windows 10 向けの WinRT API は細分化されており、用途に応じて参照を追加します。
コアとなるのは Windows.Foundation で、
例えば照度や方位などのセンサーを利用するには Windows.Devices が必要です。

<Reference Include="Windows.Devices" />
<Reference Include="Windows.Foundation" />
<Reference Include="System.Runtime.WindowsRuntime">
  <HintPath>C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETCore\v4.5\System.Runtime.WindowsRuntime.dll</HintPath>
</Reference>

.csproj ファイルへの変更 (SourceTree):

image

 

作成したサンプル
WinrtSample (GitHub)

バージョン情報
Windows 10
Visual Studio 2015
.NET Framework 4.5

参照
センサーのデータを SignalR でホストする (1)
デスクトップ アプリから WinRT API を呼び出す (Windows 8.1)

カテゴリー: .NET Framework. タグ: , . 2 Comments »

Leap Motion v2 のセットアップ

Leap Motion SDK のバージョン 2 系を .NET 開発で利用するためのセットアップの方法について記述します。
(以前に Leap Motion のセットアップを書きましたが、その改訂版です。)

Leap Motion のサイトから、ドライバーおよび SDK をダウンロードできます。
開発環境ではこれらの両方が必要ですが、非開発環境ではドライバーのみをインストールします。

 

■ 非開発環境におけるセットアップ

Setup Your Leap Motion Controller でドライバーをダウンロードしてインストールします。

最新版以外のバージョンを指定してインストールするには、
V2 Desktop | Leap Motion Developers で Leap Motion SDK (ZIP) をダウンロードします。
ダウンロードするには、アカウントの登録が必要です。
この ZIP ファイルにはドライバーのインストーラーが含まれているので、それを実行します。

なお v2 では、Leap Motion コントロール パネルの [トラッキング] タブで
[道具の追跡] が既定でオフになっているようです。
指以外のツールを使えるようにするには、これをオンに設定します。

 

■ 開発環境におけるセットアップ

V2 Desktop | Leap Motion Developers で、
現在の最新版である [Leap Motion SDK v2.3.1.31549] (ZIP) をダウンロードします。
ダウンロードするには、アカウントの登録が必要です。
この ZIP ファイルを任意の場所に展開します。
中にドライバーのインストーラーが含まれているので、まずそれを実行します。

Leap Motion SDK を .NET Framework 4.0 以降のアプリケーションで利用するには、

  • LeapSDK\lib\LeapCSharp.NET4.0.dll (.NET アセンブリ)
  • LeapSDK\lib\x86\Leap.dll (ネイティブ アセンブリ)
  • LeapSDK\lib\x86\LeapCSharp.dll (ネイティブ アセンブリ)

が必要になります。

したがって、Visual Studio における手順は以下のようになります。

  1. プロジェクトの参照に LeapCSharp.NET4.0.dll を追加する。
  2. プロジェクトのプロパティを開いて、
    [ビルド イベント] – [ビルド後イベントのコマンド ライン] に次のようなコマンドを設定する。
    (DLL のパスを指定します。環境によって変わるので注意してください。)

copy "$(ProjectDir)..\..\LeapSDK\lib\x86\Leap.dll" "$(TargetDir)"
copy "$(ProjectDir)..\..\LeapSDK\lib\x86\LeapCSharp.dll" "$(TargetDir)"

ビルド イベント

ビルドしたときに、この 3 つの DLL が bin にコピーされていれば OK です。

出力ディレクトリ

 

(追記) また、上記のような設定を自動で実施するための NuGet パッケージを作成しました。

 

バージョン情報
Leap Motion SDK 2.3.1
Visual Studio 2015

参照
Setup Your Leap Motion Controller
V2 Desktop | Leap Motion Developers

カテゴリー: 周辺機器. タグ: , . 1 Comment »

Leap Motion のセットアップ

Leap Motion Controller のバージョン 1 系を .NET で利用するためのセットアップの方法について記述します。
(なお、v1 系の最終版は v1.2 になると思われます。
v2 系については、改訂版として Leap Motion v2 のセットアップを書きました。)

Leap Motion のサイトから、Software および Developer SDK をダウンロードできます。
開発環境ではこれらの両方が必要ですが、非開発環境では Software (ドライバー) のみをインストールします。

■ Software (ドライバー)

公式には Leap Motion Software と呼ぶようですが、要するにドライバーです。
Developer SDK + Documentation にアクセスして、[v.1.2.2 for Windows] をクリックします。
ダウンロードするには、アカウントの登録が必要です。
このインストーラーを実行して、Software をインストールします。

なお、Setup Your Leap Motion Controller でダウンロードできる Software は、現在ではバージョン 2 系になっています。

■ Developer SDK

Developer SDK + Documentation にアクセスして、[v.1.2.0.10970 for Windows] をクリックします。
ダウンロードするには、アカウントの登録が必要です。
ファイル名は LeapDeveloperKit_release_win_1.2.0+10970.zip で、これを任意の場所に展開するだけです。

Developer SDK を .NET Framework 4.0 以降のアプリケーションで利用するには、

  • LeapDeveloperKit\LeapSDK\lib\LeapCSharp.NET4.0.dll (.NET アセンブリ)
  • LeapDeveloperKit\LeapSDK\lib\x86\Leap.dll (ネイティブ アセンブリ)
  • LeapDeveloperKit\LeapSDK\lib\x86\LeapCSharp.dll (ネイティブ アセンブリ)

が必要になります。

したがって、Visual Studio における手順は以下のようになります。

  1. LeapCSharp.NET4.0.dll をプロジェクトの参照に追加する。
  2. プロジェクトを右クリックして [追加] – [既存の項目] を選択し、
    Leap.dll および LeapCSharp.dll をリンクとして追加する。
  3. Leap.dll および LeapCSharp.dll のプロパティで、
    [出力ディレクトリにコピー] を [新しい場合はコピーする] に設定する。

既存項目の追加

出力ディレクトリにコピー

ビルドしたときに、この 3 つの DLL がコピーされていれば OK です。

出力ディレクトリ

 

(追記) 上記のような設定を自動で実施するための NuGet パッケージを作成しました。

(追記) Leap Motion v1 が自動でアップグレードされないようにするというのを書きました。
v1 を使い続けるにはこの設定が必要です。

 

バージョン情報
Leap Motion Software 1.2.2
Leap Motion Developer SDK 1.2.0
Visual Studio 2013

参照
Setup Your Leap Motion Controller
Leap Motion Developers
V1 Developer SDK + Documentation

カテゴリー: 周辺機器. タグ: , . 2 Comments »

デスクトップ アプリから WinRT API を呼び出す (Windows 8.1)

以前に、センサーのデータを SignalR でホストする (1) という記事で、
Windows 8.0 の環境でデスクトップ アプリから WinRT API を呼び出す方法について書きましたが、
Windows 8.1 の環境でも同様に設定します。
(追記: Windows 10 向けにデスクトップ アプリから WinRT API を呼び出す (Windows 10) を書きました。)

まず、.csproj ファイルを手動で編集して、<TargetPlatformVersion> を追加します。

<TargetPlatformVersion>8.1</TargetPlatformVersion>

次に、WinRT API への参照です。

<Reference Include="Windows" />
<Reference Include="System.Runtime.WindowsRuntime">
  <HintPath>C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETCore\v4.5\System.Runtime.WindowsRuntime.dll</HintPath>
</Reference>

 

.csproj ファイルへの変更:

.csproj ファイルへの変更

 

なお TargetPlatformVersion は、
Surface Pro (初代) では 8.0, 8.1 のどちらを指定してもビルドは成功するのですが、
Surface Pro 3 では 8.0 に指定するとビルド エラーになってしまいます。
(%ProgramFiles(x86)%\Windows Kits\8.0 に .winmd ファイルが存在しないせい?)

 

バージョン情報
Windows 8.1
Visual Studio 2013
.NET Framework 4.5

参照
センサーのデータを SignalR でホストする (1)
デスクトップ アプリから WinRT API を呼び出す (Windows 10)

カテゴリー: .NET Framework. タグ: , . 2 Comments »