Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ラーテル Wimm制御プログラム

六甲おろし制作ロボット「ラーテル」をWimmから操作するための実装です。

ハードウェア構成

PC → TPIP4ボード → I2C (0x55) → Arduino Nano → Serial (19200bps) → Arduino (TVRC_main2)
                                                                          ↓
                                                               BTS7960 モーター x2
                                                               PCA9685 サーボ (カメラ・ベッド)
                                                               MPU6050 IMU (ベッド自動水平)

ビルド・配置方法

1. ビルド

wimm-implementation/Wimm.Machines.Impl.Ratel.sln を Visual Studio で開いてビルドする。

2. 配置先フォルダを作成

以下のいずれかに Wimm.Machines.Impl.Ratel/ フォルダを作成する。

%AppData%\Wimm\Machines\Wimm.Machines.Impl.Ratel\
または
{Wimmの実行ファイルと同じ場所}\Machines\Wimm.Machines.Impl.Ratel\

3. ファイルをコピー

Wimm.Machines.Impl.Ratel/
├ Wimm.Machines.Impl.Ratel.dll          ← bin/Debug/net8.0-windows7.0/ からコピー
├ Wimm.Machines.TpipForRasberryPi.dll   ← 同上 (依存DLL)
└ script/
   ├ definition.neo.lua                 ← wimm-script/ からコピー
   ├ control_map.neo.lua
   ├ on_control.neo.lua
   └ initialize.neo.lua

4. Wimm を起動してマシン選択画面にラーテルが表示されれば完了

トラブルシューティング

ラーテルは TPIP4 ボードの ネイティブDLL (TPIP4 SDK) を P/Invoke で呼び出すため、起動時に以下のエラーが出ることがある。

1. DllNotFoundException: 'TPJTwr_42.dll'

TPIP4 SDK のネイティブDLLが読み込めないときに発生する。原因は2つあり、両方を満たす必要がある。

  • 配置場所TPJTwr_42.dll とその依存DLL(TPJTc_42.dll など TP*.dll 一式)を、Wimm.exe と同じフォルダに置く。 機体フォルダ(Machines/Wimm.Machines.Impl.Ratel/)に置いても効かない。Wimm は機体を Assembly.LoadFrom で読むだけで、ネイティブDLLの検索パスを機体フォルダへ通していないため、OSは Wimm.exe の場所・System32・PATH からしか探さない。
  • アーキテクチャ:TPIP4 SDK のネイティブDLLは x86 (32bit) 専用で、DllImport("TPJTwr_42.dll") もx86のファイル名で固定されている。AnyCPU でビルドすると64bitプロセスで起動し、32bit DLLをロードできずに失敗する。 Wimm を x86 構成でビルド・起動すること(Wimm 本体の <Platforms>AnyCPU;x86</Platforms> で x86 を選択)。 ※ x64版DLL(TPJTwr64_42.dll 等)も SDK には存在するが、ファイル名が 64 付きで DllImport 名と一致しないため使えない。

2. MissingMethodException: Tpip4Camera..ctor(HwndSource, String[])

dll/ の参照DLL(特に Wimm.Machines.TpipForRasberryPi.dll)が古く、Ratel.cs が呼び出すコンストラクタを持っていない場合に発生する。 Wimm 本体を更新したら、dll/ の3つ(Wimm.Common.dll / Wimm.Machines.dll / Wimm.Machines.TpipForRasberryPi.dll)を同じビルドの最新版にまとめて差し替えること。3つはバージョンを揃える(片方だけ古いと型・メソッドの不一致でクラッシュする)。

詳細

設計・通信仕様・ロードマップについては 仕様書.md を参照してください。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages