if not(exist(folder_name,'dir')) mkdir(folder_name) end
よくググるのでメモ。
if not(exist(folder_name,'dir')) mkdir(folder_name) end
よくググるのでメモ。
触覚/振動ドライバのDRV2605Lを使ってみる。
現状、日本語の情報が公式ドキュメント以外なく、まだあまり使われていないのかもしれない。
DRV2605Lのブレークアウト基板がAdafruitとSparkFunから出ているが、
私はAdafruitのものを用いている。
(左手前がDRV2605L。奥に見えるのがHaptuator Mark Ⅱ)
ArduinoとDRV2605Lをつないでいく。
アクチュエータとDRV2605Lもプラスマイナス間違えずにつなぐ。
アクチュエータはERMとLRAに対応している。
あとはgithubからArduino用のライブラリを落として、
exampleを動かすだけ。
Force ReactorやHaptuator MarkⅡは動くのを確認した。
先人たちのブログを見てもなかなかうまくいかなかったのでメモ。
Mathworksはpython用のmatlab APIを提供している。
これを使えば、pythonからmatlabの機能を呼び出せるようになる。
まずいきなり使用可能なpythonバージョンに制約がある。
MATLAB R2018だとpython2.7, 3.5, 3.6しか使えないので、
condaでいずれかのバージョンでpython環境を整えておく。
このバージョンの指定はMATLABのバージョンに依存しているので注意。
MATLABのコマンドウィンドウでmatlabroot
と打って、
MATLABのインストールフォルダを見つける。
私の場合は'C:\Program Files\MATLAB\R2018b'
だった。
インストールしているMATLABのバージョンによって異なるはず。
次に、コマンドプロンプト(Anaconda prompt)を管理者権限で起動する。
管理者権限でないとインストールの時にうまくいかないので注意。
MATLABインストールディレクトリの中の以下のフォルダに移動し、
そこにあるpython.exe
を削除し、
Anacondaのインストールフォルダを指定した上でsetup.py
を実行する。
cd "matlabroot\extern\engines\python" rm python.exe python setup.py install --prefix="<anacondaのインストールフォルダ>"
これでインストール完了。
使うときに<anacondaのインストールフォルダ>を環境変数に入れればOK.
import sys sys.path.append("<anacondaのインストールフォルダ>\\lib\\site-packages") import matlab.engine eng = matlab.engine.start_matlab() tf = eng.isprime(37) print(tf)
MATLAB/Simulink 2013aあたりからArduinoの入出力ピンを制御することができるらしい。
相変わらずの異常な拡張性を実現するMathworksすごい。
使い方としては、
というステップを経ていく。
上記の3.のステップで配置できるライブラリブロックとしては以下のものが標準部品として用意されている。
上記の4.のステップはSimulinkのシミュレーション中にArduinoも同期的に実行できるのかなと思ったが、そうではなくてSimulinkモデルからArduinoで実行できるコードを生成しそれを実行してくれるだけだった。
注意が必要なのは、MATLAB起動後にArduinoを再接続すると、 Simulink内でArduinoが認識なされなくなること。 そのときにはSimulinkの"モデルコンフィグレーションパラメータ"で"ハードウェア実行"タブのところでCOMポート等の再設定することで認識させられる。
一番単純なサンプルは以下のようなもので、 指定したデジタル出力ピンにパルスを出力することを確認した。