「App:IDE:Arduino IDE」の版間の差分
(→高速書込) |
|||
(同じ利用者による、間の7版が非表示) | |||
197行目: | 197行目: | ||
dirで一覧を確認すると、~.pyがexe形式になっています。 | dirで一覧を確認すると、~.pyがexe形式になっています。 | ||
− | + | <syntaxhighlight lang="C++" style="border:1px dashed gray;"> | |
− | + | 2023/03/01 07:58 <DIR> . | |
− | 2023/03/01 07:58 <DIR> .. | + | 2023/03/01 07:58 <DIR> .. |
− | 2023/03/01 07:58 1,087 espefuse.py-script.py | + | 2023/03/01 07:58 1,087 espefuse.py-script.py |
− | 2023/03/01 07:58 74,752 espefuse.py.exe | + | 2023/03/01 07:58 74,752 espefuse.py.exe |
− | 2023/03/01 07:58 1,089 espsecure.py-script.py | + | 2023/03/01 07:58 1,089 espsecure.py-script.py |
− | 2023/03/01 07:58 74,752 espsecure.py.exe | + | 2023/03/01 07:58 74,752 espsecure.py.exe |
− | 2023/03/01 07:58 1,085 esptool.py-script.py | + | 2023/03/01 07:58 1,085 esptool.py-script.py |
− | 2023/03/01 07:58 74,752 esptool.py.exe | + | 2023/03/01 07:58 74,752 esptool.py.exe |
− | 2023/03/01 07:58 108,468 pyserial-miniterm.exe | + | 2023/03/01 07:58 108,468 pyserial-miniterm.exe |
− | 2023/03/01 07:58 108,470 pyserial-ports.exe< | + | 2023/03/01 07:58 108,470 pyserial-ports.exe |
− | + | </syntaxhighlight> | |
ここまでで下準備完了です。 | ここまでで下準備完了です。 | ||
+ | ===== Flash内のパーテーション消去 ===== | ||
+ | <blockquote>Arduino2.0以降では「ツール」「Erase all flash...」のメニューから指定できるため、Arduino2.0以降をオススメします。 | ||
Flashをパーティションも含めて全削除する場合、arduino1.18.19には機能がないため上記フォルダで次のコマンドを入力します。 | Flashをパーティションも含めて全削除する場合、arduino1.18.19には機能がないため上記フォルダで次のコマンドを入力します。 | ||
− | esptool.py --chip esp32 com3 --baud 921600 erase_flash | + | :{| class="wikitable" |
− | + | |esptool.py --chip esp32 com3 --baud 921600 erase_flash | |
+ | |} | ||
"com3"はcomポート名です。 | "com3"はcomポート名です。 | ||
</blockquote> | </blockquote> | ||
+ | |||
+ | ====== コンパイル済binの書き込み ====== | ||
+ | <blockquote>ArduinoIDEで「スケッチ」「コンパイル済バイナリをエクスポート」で~ino.binというファイルがProjectのフォルダに出力されます。 | ||
+ | |||
+ | 書き込む手段は ubuntuであれば下記の通り。 | ||
+ | |||
+ | |||
+ | ただし、ArduinoIDEから書き込む場合と下記esptoolによる方法では動作が若干異なる事があるようです。 | ||
+ | |||
+ | 経験則では、esptoolから書き込むとボード依存で正常だったり異常だったりバラバラでした。ArduinoIDEから書き込めば動作は安定して同じ状態になりました。あくまで経験則です。 | ||
+ | |||
+ | </blockquote></blockquote> | ||
==== ubuntu ==== | ==== ubuntu ==== |
2023年3月14日 (火) 21:45時点における最新版
インストール
・Arduino IDEをダウンロード&解凍
解凍先のフォルダにあるファイルを使う事になるため、実行したい場所に解凍して下さい。
・インストール開始
【Windows7〜10】
- Winowss Store版
- 直接インストールされます。
- ショートカットも自動で作られます。
- Zip版:https://www.arduino.cc/en/software
- ダウンロード後に手作業で解凍。
- 手作業で"C:\Program Files\"に保存
- arduino.exeを実行すると起動します。
- ショートカットは自分で作りましょう。
【linux】
- ver2.0.1 download版:arduino.cc (https://arduino.cc)
- インストールは面倒ですが、使うだけなら簡単です。
- arduino.cc からアプリケーション版をダウンロード。解凍作業はありません。
- 実行権限を付与 chmod 655 arduino-ide_2.0.1_Linux_64bit.AppImage
- そのフォルダ内で実行 ./chmod 655 arduino-ide_2.0.1_Linux_64bit.AppImage
- これだけです。
- desktop entry(ショートカット)を作る場合、
cd ~/snap/ mkdir arduino cd arduino cp -r ~/ダウンロード/arduino-ide_2.0.1_Linux_64bit.AppImage . cd ~/.local/share/applications gedit arduino.desktop [Desktop Entry] Type=Application Name=Arduino IDE Exec=/home/■/snap/arduino/arduino-ide_2.0.1_Linux_64bit.AppImage Path=/home/■/snap/arduino/ Icon=/home/■/snap/arduino/arduino.png Terminal=false Categories= Comment=Arduino IDE 2.0.1- こんな感じです。
- "/home/■/"の部分を"~"のように書く事がありますが、このファイルは受け付けないためフルパスで書くのが必須です。
- 他には、下記"Permissions"に相当する設定を全部手作業で行う必要がありますが、おそらくシリアルポートを有効化する程度だと思います。
インストールフォルダ(本体)
- ~/.arduino15
実行ファイル(アプリで指定した場所)
- ~/Arduino/Projects/
default folder(プログラムとライブラリを入れるフォルダ)
- Project : "~/snap/arduino/70/Arduino/Projects/"
- Library : "~/snap/arduino/70/Arduino/Projects/libraries"
- または"~/snap/arduino/current/Arduino/libraries"
- ※中身は同じファイル
- 基本的にはArduinoIDE上で指定した場所にProjectフォルダが作られて、その中にプログラム・ライブラリが入ります。
- ver1.8.19 download版:arduino.cc (https://arduino.cc)
- 〜.tarを解凍して動かしたいフォルダに移します。 "~/snap/"または"~/.local/が一般的なようです。
- install.shを実行すると、"~/.local/share/applications/" にショートカットが登録されます。
- bash arduino-linux-setup.sh $USER
- reboot
- 再起動後に
- sudo bash install.sh
- これでインストール完了です。ショートカットから起動できます。
- pip・pyserialをインストールします。
- terminalを起動して、コマンドを実行します。
sudo apt-get install pip
sudo pip3 install pyserial
- これでも書き込みができない場合もあります。(未調査)
- ただし、
- Linux用のダウンロード版は色々なエラー(Serial/pip/python...)が出る事があるため、あまりオススメしません。
・Arduino IDEの環境を設定
【Arduino Uno】
- 開発ボードの名前をを選択:"ツール”→"ボード"→"Arduino AVR Boards"→”Arduino Uno"
【Arduino Nano】
- "ツール”→"ボード"→"ボードマネージャ"で"Every"を検索して、"Arduino AVR Boards"をインストール
- 開発ボードの名前をを選択:"ツール”→"ボード"→"Arduino AVR Boards"→”Arduino Nano"
【Arduino Nano Every】
- "ツール”→"ボード"→"ボードマネージャ"で"Every"を検索して、"Arduino AVR Boards"をインストール
- 開発ボードの名前をを選択:"ツール”→"ボード"→"Arduino AVR Boards"→”Arduino Nano Every"で開発ボードの名前をを選択
【ESP8266】
- "ファイル"→"環境設定"→"追加のボードマネージャのURL"にURLを追加
- "ツール”→"ボード"→"ボードマネージャ"で"8266"を検索して、"esp8266 by ESP8266 Community"をインストール
- 開発ボードの名前をを選択:"ツール”→"ボード"→”ESP32 Arduino"→”Generic ESP8266 Module"
【ESP32】
- "ファイル"→"環境設定"→"追加のボードマネージャのURL"にURLを追加
- "ツール”→"ボード"→"ボードマネージャ"で"ESP32"を検索して、"ESP32 / by Espressif Systems" 2.0.5 をインストール
- 開発ボードの名前をを選択:"ツール”→"ボード"→”ESP32 Arduino"→ボード名(下記)
メーカー ボード名 img Arduino IDE 設定 ボード名 補足 Expressif ESP-DevBoardC-32D ESP32 Dev Module 困った時はコレにしておけば大抵動く HiLetgo NodeMCU-32S NodeMCU-32S
- "ツール”→”シリアルポート"でボードのつながっているCOMポートを選択
・スケッチを何か書き込んで動作確認。
※VSCodeを使う可能性場合、先頭に "#include <Arduino.h>"を入れる。ArduinoIDEでも書いてあっても問題ない。
"→"ボタンでコンパイル&書き込み。この時点で保存先を聞かれるので、環境設定で指定したフォルダ内にファイル名を設定して保存する。
※ArduinoIDEではファイル名を指定するとその名前のフォルダが作られて、自動的にその中にファイルが置かれる。
#include <Arduino.h> int i; void setup() { : Serial.begin(9600); : Serial.println("--Start--"); } void loop() { : Serial.println(i++); : delay(1000); }"ツール"→"シリアルポート"→それっぽいCOMポートを選択
- Windows ・・・例:"COM4"
- Linux ・・・例:"ttyUSB0"
"ツール"→"シリアルモニタ"→一番下で"9600bps"を選択
1秒毎に数字が表示されれば動作確認完了。
全消去
高速書込
Windows11
1. esptools のインストール
pytonをインストールして、ついでにpipもインストール。コマンドラインで次を入力すればインストール済かどうかわかります。
python -m pip -V pythonが過去にインスト―ル済で、でもpipが入ってない場合、次のコマンドでpipを追加インストールします。
python -m pip -V 次のコマンドでesptoolをインストールします。
python -m pip install esptool python Ver3.10の場合、途中で黄色い文字でこんなメッセージが出てきます。
インストールされた場所が確認できます。
upgradeもできるようです。
WARNING: The scripts pyserial-miniterm.exe and pyserial-ports.exe are installed in
'C:\Users\*\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\Scripts' which is not on PATH.
- C:\Users\*\AppData\Local\Microsoft\WindowsApps\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\python.exe -m pip install --upgrade pip
インストールされた場所に移動します。
cd C:\Users\*\AppData\Local\Programs\Python\Python311\Lib\site-packages\pip>cd C:\Users\*\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\Scripts
dirで一覧を確認すると、~.pyがexe形式になっています。
2023/03/01 07:58 <DIR> . 2023/03/01 07:58 <DIR> .. 2023/03/01 07:58 1,087 espefuse.py-script.py 2023/03/01 07:58 74,752 espefuse.py.exe 2023/03/01 07:58 1,089 espsecure.py-script.py 2023/03/01 07:58 74,752 espsecure.py.exe 2023/03/01 07:58 1,085 esptool.py-script.py 2023/03/01 07:58 74,752 esptool.py.exe 2023/03/01 07:58 108,468 pyserial-miniterm.exe 2023/03/01 07:58 108,470 pyserial-ports.exeここまでで下準備完了です。
Flash内のパーテーション消去
Arduino2.0以降では「ツール」「Erase all flash...」のメニューから指定できるため、Arduino2.0以降をオススメします。
Flashをパーティションも含めて全削除する場合、arduino1.18.19には機能がないため上記フォルダで次のコマンドを入力します。
esptool.py --chip esp32 com3 --baud 921600 erase_flash "com3"はcomポート名です。
コンパイル済binの書き込み
ArduinoIDEで「スケッチ」「コンパイル済バイナリをエクスポート」で~ino.binというファイルがProjectのフォルダに出力されます。
書き込む手段は ubuntuであれば下記の通り。
ただし、ArduinoIDEから書き込む場合と下記esptoolによる方法では動作が若干異なる事があるようです。経験則では、esptoolから書き込むとボード依存で正常だったり異常だったりバラバラでした。ArduinoIDEから書き込めば動作は安定して同じ状態になりました。あくまで経験則です。
ubuntu
1. esptools のインストール
sudo apt install esptool
2. esptool.py のフォルダ確認 cd ~/git/arduino-esp32/tools/
3. ArduinoIDE から「スケッチ」→「コンパイルしたバイナリを出力」とする。
〜.inoと同じフォルダに〜.binが作られる。4. 同じフォルダに スクリプト"upload.sh"をgeditで書く
--------- upload.sh ----------
#/bin/sh PORT=/dev/ttyUSB0 BIN=test.ino.esp32.bin python /usr/share/esptool/esptool.py --port ${PORT} --baud 921600 \ --chip esp32 --before default_reset --after hard_reset \ write_flash -z --flash_mode dio --flash_freq 80m --flash_size detect \ 0x10000 ./${BIN}------------------------------
5.実行 sh ./upload.sh
注意事項
VSCodeを使う場合の Arduino IDE の選び方
Windows Storeからインストールすると、Arduino IDEのインストール先フォルダがセキュアフォルダ内になります。
- C:\Program Files\WindowsApps\AndroidLLC
VSCodeを使う場合このフォルダにアクセスする事があります。
しかし、セキュリティーの問題によりこのフォルダ "WindowsApps” の内側のファイルに容易にアクセスできず、エラーになります。
解決する手段が面倒なため、VSCodeを使う場合には、Windows Store版 Arduino IDEのインストールはお勧めしません。
必ず Arduino.cc から Arduino IDE をダウンロードした最新のファイルをインストールして下さい。
Arduino IDEでコンパイルエラーが連発する時
次の空のプログラムをコンパイルさせてみて、それでもエラーが出るか確認して下さい。
空のプログラム #include <Arduino.h> void setup() {
}
void loop() {
}
上記の空のプログラムでもエラーが出る場合、 次の手順でArduino IDEとデータフォルダを全て消してから再インストールするのをお勧めします。
手順(上から順に実施) Arduino.ccからのダウンロード版 Windows Store版 スケッチブックの保存場所のフォルダを全て消してから 再インストールするため、その準備として、そこに入って
いる必要なファイルを全て別の場所にコピーして消えない
ように保存する。
スケッチブックの保存場所のフォルダはArduino IDEで確認すること。Arduino IDEで"ファイル"→"環境設定"(右を参照)
Default:"C:\Users\(ユーザー名)\Documents\Arduino" Default:"C:\Users\(ユーザー名)\Documents\ArduinoData" Arduino IDEをアンインストール 上記スケッチブックの保存場所のフォルダを消す。 Default:C:\Users\(ユーザー名)\Documents\Arduino Default:C:\Users\(ユーザー名)\Documents\ArduinoData データフォルダを消す。 C:\Users\(ユーザー名)\AppData\Local\Arduino15 C:\Users\(ユーザー名)\Documents\ArduinoData\packages
※Mac,Linuxの対処法は Arduino.cc に記載されています。
Arduino IDEから書き込み中に "スケッチの書き込み中にエラーが発生しました" と表示される時
IDEのエラー表示 Connecting........_____....._____....._____....._____....._____....._____.....____ スケッチの書き込み中にエラーが発生しました
A fatal error occurred: Failed to connect to ESP32:
Timed out waiting for packet header
原因 USBドライバのトラブル。 CLK/TXD0/RXD0に何かがつながっている。 EN,IO0,DTR,RTSの接続がおかしい 対策方法 1. USBシリアルを抜き差しして再書き込みしてみる。 2. USBを差し込むPCのポート(差込口)を別の所にしてみる。
CLK/TXD0/RXD0はDEVKIT端子はOPEN又はESP32仕様書の使い方にする。 ESP32仕様書/DevKit仕様書の使い方にする。
【ESP32】Arduino IDEから書き込みまで完了するのに起動しない、EN SWを押すと起動する場合
IDEのエラー表示 なし 原因 起動時にIO0がPullDown/Low入力になっている。 対策方法 起動時にIO0がPullUp又はOPENにする。(Defaultで起動中に内部pull-upがONになるため、OpenにするとHighが入力される)
【ESP32】Arduino IDEから書き込みまで完了するのに起動しない、EN SWを押すと起動する場合
IDEのエラー表示 なし 原因 起動時にIO0がPullDown/Low入力になっている。 対策方法 起動時にIO0がPullUp又はOPENにする。(Defaultで起動中に内部pull-upがONになるため、OpenにするとHighが入力される)
ファイル名を変えた直後に存在しない過去のファイルに対するエラーが出る場合
IDEのエラー表示 原因 IDE上でファイル名を変えてからコンパイルすると発生します。 IDEがファイル名の変化をトレースできてないのに過去のコンパイル済
ファイルを再利用するのが原因です。
対策方法 IDEを再起動
ライブラリのインストール方法
- 基本的には Arduino HP 記載 の通りです。
Header File Library インストール方法 download url WiFi.h ESP32Ping.h https://github.com/marian-craciunescu/ESP32Ping TFT_eSPI.h https://github.com/Bodmer/TFT_eSPI ESP32FS plugin https://github.com/lorol/arduino-esp32fs-plugin/releases