2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

matlabでArduinoからデータを持ってくるII ① ESP32(Arduino)のアドオンをインストール

Last updated at Posted at 2022-11-12

 matlabのバージョンが上がるとともに、利用できるマイコン・ボードは増えています。matlab R2020aからArduinoマイコン・ボードにESP32 DevKitが追加されました。
m101.png
 ESP32はリビジョンEが最新で最終版です。今回利用したのは初期のバージョンです。ESP32シリーズは、改良したESP32-S3などに移行中です。
  ESP32-DevKitC ESP-WROOM-32開発ボード
IMGP1410.png

環境

  • matlab home License R2022b update1
  • MATLAB Support Package for Arduino バージョン21.1.0
  • Windows 10 Pro 22H2 メモリ40Gバイト

ピン配置

esp32_devkitc_pinout_01.png

Arduinoのアドオンをインストール

 メニューのホームをクリックし、右端のほうにあるアドオンをクリックします。
m101.png

 検索欄にarduinoを入れた結果です。MATLAB Support Package for Arduino Hardwareをクリックします。
 インストールをクリックします。
m103a.png

 クリックしていくと、ダウンロードとインストールが始まります。
m104.png

 今すぐセットアップを選びます。Arduinoマイコン・ボードは、PCとUSBケーブルでつないでおきます。

m105.png

 途中で、USBドライバのインストールをしてよいかと聞かれるので、次へをクリックします。
m106.png

 実際につないで続けるかと聞かれるのでYesのまま次へをクリックします。
m107.png

 接続方法を聞いてくるので、USBを選択し、次へをクリックします。
m108.png

 ボードを選択します。
m109.png
 COMポートを選択します。
 アップロードするライブラリを聞いてきます。I2CとSPIにチェックをしました。Programをクリックします。
m110.png

 途中で、timeoutをしたので、BOOTボタンを押すようにと出るのでそうします。押したままです。
m111.png

 次のパネルが出ると、BOOTボタンから手を放し、OKをクリックします。
m112.png

 インストールが成功しました(画面とり忘れた)。
 接続テストをします。
m113.png

 timeoutのパネルが出ます。BOOTボタンを押し、次のパネルが出たらリリースしますが、失敗します。
m114.png

 気にせずに次へを押し、終了します。

I2Cでプログラミング

 ここでも、書き込み時にtimeoutが出ます。対応方法は同じですが、こちらの方の記事ESP32のプログラム書込みを安定させるを参考にし、EN-3.3V間に0.1uFを入れたら、timeoutは起こらなくなりました。

m201.png
 I2Cバスには温度センサTMP117をつなぎました。

clear
a = arduino('COM3', 'ESP32-WROOM-DevKitC', 'Libraries', 'I2C')
addrs = scanI2CBus(a)
tmp117 = device(a, 'I2CAddress', '0x48');

TemperatureRegister   = 0x00;
ConfigurationRegister = 0x01;

Ctrl_OUT = [0x00, 0x60]; % Continuous conversion,Conversion cycle=000,averaging=11 is 64...1sec
writeRegister(tmp117, ConfigurationRegister, Ctrl_OUT, 'uint8');

for i=1:10
    RegisterData = readRegister(tmp117, TemperatureRegister, 2);
    temperature =  double(bitshift(uint16(RegisterData(1)), 8)) + double(RegisterData(2));
    temperature = bin2dec(append('0b',dec2bin(temperature),'s16'))* 0.0078125;  % 2's complement R2020a
    fprintf(' temperature is %.5f \n', temperature);
    pause(2);
end

トラブルシューティング

 matlabのバージョンを上げると、既にインストールしているアドオンのバージョンも最新になります。
 しかし、今回、設定アイコンが消えていました。なので、一度アンインストールして、再度インストールをしました。
m301.png

timeout

 ESP32ボードは、数十種類が市販されています。なので、挙動はみな同じではないと思います。また、BOOTボタンのないボードもあります。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?