MATLABによるa​rduino操作時に​発生するエラー

以下のようなエラーメッセージが生じ、その後の操作(LEDランプ点滅)ができません。一昨日はできたのですが・・・
arduinoはuno, PCのOSはwindows10です。
ーーーーーーーーーーーーーーー
>> a=arduino('COM4')
a =
arduino のプロパティ:
Port: 'COM4'
Board: 'Uno'
AvailablePins: {'D2-D13', 'A0-A5'}
Libraries: {'I2C', 'Servo', 'SPI'}
>> a.pinMode(13,'output')
クラス 'arduino' に対する適切なメソッド、プロパティ、またはフィールド 'pinMode' がありません。

 Respuesta aceptada

Soya AOKI
Soya AOKI el 17 de Mzo. de 2019
Editada: Soya AOKI el 17 de Mzo. de 2019

1 voto

こんにちは。
pinModeが無いようですね…
類似の問題が過去に発生していたようです。
別の書き方が存在するようです。こちらはすでに試されていますでしょうか?
a.configureDigitalPin(13, 'output')
configurePin を使用する方法もあるようです。
configurePin(a, 13, 'DigitalOutput')
一昨日は動作されたことや使用されているMATLABバージョンが不明なため動作しないかもしれませんが、
まだ試されていなかったらお試しください。

6 comentarios

Eiichi Nishida
Eiichi Nishida el 17 de Mzo. de 2019
ご指示のコマンド試してみましたが、以下のようにうまくいきませんでした。また、別のところで見つけたヒント「arduinoの線を外し、matlabを再立ち上げする」でもうまくいきませんでした。言い忘れましたが、MATLABバージョンは2018aです。
ーーーーーーーーーーーーーーーーーーーーーーーーーーー
>> a.configureDigitalPin(13, 'output')
クラス 'arduino' に対する適切なメソッド、プロパティ、またはフィールド 'configureDigitalPin' がありません。
>> configurePin(a,13,'DigitalOutput')
Invalid pin format. Pin number must be a character vector or string that starts with D or A
Soya AOKI
Soya AOKI el 17 de Mzo. de 2019
Editada: Soya AOKI el 17 de Mzo. de 2019
バージョン情報ありがとうございます。
以下ではどうでしょうか?
configurePin(a,'D13','DigitalOutput')
「'configurePin'がありません。」のエラーが出ていないので、configurePinを使用して設定ができそうな気がします。
追記
以下のコマンドでプロパティが確認できるようです。可能であれば結果を見せていただけますか?
properties(a)
Eiichi Nishida
Eiichi Nishida el 17 de Mzo. de 2019
結果を以下に示します。問題がひとつクリアできたような気がします。a.digitalWriteについてはどうでしょうか? またpropertiesについてはいかがでしょうか?
ーーーーーーーーーーーーーーーーー
>> configurePin(a,'D13','DigitalOutput')
>> a.digitalWrite(13,1)
クラス 'arduino' に対する適切なメソッド、プロパティ、またはフィールド 'digitalWrite' がありません。
>> properties(a)
クラス arduino に対するプロパティ:
Board
AvailablePins
Libraries
Port
Soya AOKI
Soya AOKI el 17 de Mzo. de 2019
Editada: Soya AOKI el 17 de Mzo. de 2019
ありがとうございます。
本質的な解決にはなっていなさそうですが一歩前進できたようで嬉しいです。
またdigitalWriteですが、writeDigitalPin で代用できないでしょうか?
writeDigitalPin(a,'D13',1);
参考までに…
pinModedigitalWrite のページをみると 、EngduinoMatlabを使用して以下のように使えるみたいです。
% Check if the Engduino object already exists. Otherwise initialize it.
if (~exist('e', 'var'))
e = engduino();
end
e.pinMode(13, e.PIN_TYPE_OUTPUT);
もしかして、pinMode等が使用できないのは、EngduinoMatlabをインストールはしたもののそこにパスが通っていないことが原因かなと思ったのですが、いかがですか?
(一昨日は一時的にパスを通していたのでは?)
Eiichi Nishida
Eiichi Nishida el 18 de Mzo. de 2019
おはようございます。
ご指摘のソフトEngduinoMatlabはインストールした覚えはありません。インストールしたmathworksの製品は、matlab support package for arduino hardwareとsimulink support package for arduino hardwareの2つだけです。この範囲でできるのが理想なのですが・・・
ちなみに私は平田光男氏テキスト「arduinoとmatlabで制御系設計を始めよう」に従っており、この内容がmatlab2014以前のバージョンなので、これが根本的な問題なのですね。
Soya AOKI
Soya AOKI el 18 de Mzo. de 2019
ありがとうございます。
おっしゃる通り、バージョン違いが根本的な問題である可能性が高いです。
使用されているテキストはR2016bまでのみ実行可能なようです。(ソースはこちら
上記、writeDigitalPinは動作しましたでしょうか?

Iniciar sesión para comentar.

Más respuestas (1)

Eiichi Nishida
Eiichi Nishida el 21 de Mzo. de 2019

0 votos

writeDigitalPin、動作しました。おかげさまで、これで今回の問題は解決しました。ありがとうございました。

Categorías

Más información sobre Embedded Coder でサポートされているハードウェア en Centro de ayuda y File Exchange.

Preguntada:

el 17 de Mzo. de 2019

Respondida:

el 21 de Mzo. de 2019

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!