2012-10-01 15 views
6

Arduino Unoハードウェア用のプログラムを作成するにはSimulinkを使用します。しかし、私はLCDディスプレイへの出力を処理するために、liquidcrystalのような既存のライブラリを使用したいと思います。液晶クラスファイルを組み込んだs関数を作成するにはどうすればよいですか?液体結晶のようなArduinoライブラリのSimulinkブロックを作成します

私は、既存のSimulink Arduinoライブラリブロックが実際にはマスクされているs-functionであるため、s-functionを実行する方法だと思います。私はモデルのCコードをコンパイルしてArduino IDEのプロジェクトに組み込むことはできないと思うので、Simulinkの学生版を使用しています。

+1

私はあなたがすでに[ここ](http://www.mathworks.com/academia/arduino-software/arduino-simulink.html)見てきたと仮定しています。 MathWorksのArduinoブロックは、追加のツールボックスを必要としません。学生版のMATLAB/Simulinkは、必ずしも標準バージョンよりも少ない機能を備えているわけではありませんが、あなたがインストールしたツールボックスによって制限されることがあります。あなたが利用可能なツールボックスのリストを取得するには、 'ver'コマンドを使います。それはあなたがこの問題にどのようにアプローチするかに大きく影響するかもしれません。 – grungetta

+0

また、liquidcrystalクラスファイルの詳細を教えてください。これはあなたが参照しているArduinoライブラリですか?あなたが使用したいと思っている正確なファイルに関するより多くの情報を提供するリンクがあれば、それはあなたが目指しているものを正確に理解するのに非常に役立ちます。 – grungetta

+0

どのバージョンのMATLABを使用していますか?コマンドプロンプトでverを使用してください - Real-time Workshop、Simulink Coder、Embedded Coderはありますか?これらのコード生成ツールがない場合は、Simulinkからプログラムを作成するのに苦労します。シミュレーションとしてのみ実行できます。 – RichColours

答えて

1

私はあなたのコード生成ツールをインストールする必要がありますのSimulinkからプログラムを作成するので、わかりました...その答えに:)

を、私のコメントを有効にします。 verは、Simulink Coder、およびオプションでEmbedded Coderがあるかどうかを教えてくれます。旧バージョンのMATLABを使用している場合は、Real-time Workshopと呼ばれます。それらのいずれかがなければ、何もコードを生成しません。 S-関数の作成を支援する様々なツールがあるが... http://www.mathworks.co.uk/help/simulink/s-function-basics.html

:だからあなたは、コード生成できると仮定し

S-機能が行くには、彼らは方法です。要するに

、プロセスは次のとおりです。

  • はsfunc_basic.c(またはそのような何か)S-機能Cファイルテンプレートのコピーを取り、それに応じて取り込みます。これは決して簡単なことではありません。コンパイルするにはかなり時間がかかりますが(下記参照)、モデルでインスタンス化されるとMATLABがクラッシュすることはありません。
  • mexコマンドでコンパイルします(マニュアルを参照)。
  • ブロックをモデルで使用します。非常に単純なことを行うテストハーネスモデルを自分で作成してください。実際のソリューションを作成するために必要な最小モデルブロックを使用してください。
  • モデルCプログラムでコンパイルと実行時にブロックデータを使用する方法を定義するTLCファイルを作成します。ここでは、あなたは液晶ライブラリに電話をかけます。
  • コードそれらのステップのすべてがたくさん上に展開することができTLCおよびまたはS-機能/完全:)

まで、生成されたコード/リピートでのエラーを修正してエラーを修正/生成します。このプロセスは初めてのことですが、S-function、model.RTWファイル、TLC、および上記すべてのデバッグについて多くのことを学びます。

ああ、S-functionのデバッグはボールアッシャーにすることができます。ビジュアルスタジオのようなものを使用して、MATLABプロセスにデバッグすることができます。

リッチ

+0

Cコードを生成するために言及したツールボックスが必要なのは間違いありませんが、Arduinoをターゲットとする実行ファイルを生成するだけでは必要ありません。基本のSimulinkで[Run-On-Target Hardware](http://www.mathworks.com/help/simulink/ug/about-run-target-hardware-feature.html)を使用してSimulinkモデルを展開することができますArduinoに。それは、明らかにあなたが言及したツールボックスに比べて非常に限られているので、OPが外部ライブラリを組み込みたいので、ここでは最良のアプローチではないかもしれません。 – grungetta

関連する問題