Arduino IDEについて。 インストール、初期設定など。 ここではUbuntu 20.04でArduino IDE Linux 64 bits版を使用する場合についてを、バージョン1.8.12時点の動作に基づいて記載しています。
Arduino IDEのインストールと環境設定
Arduino IDEのインストール
まずはArduino - Softwareよりソースパッケージをダウンロードする。
続いてインストール。 ここでは/home/user/arduino-ide/arduino-1.8.12
をインストール先とする。
/home/user/Arduino
はArduinoスケッチとライブラリを格納するフォルダとして使われるのでここにはインストールできない。
インストールスクリプト(install.sh
)を実行し、インストールが完了するとデスクトップ上にArduino IDEのアイコンが作成される。
デスクトップに作成される起動ファイル(.desktopファイル)がダブルクリックで起動できない状態になっている場合は、右クリックして[起動を許可する]を選択する必要がある。
起動を許可すれば、以下のようにアイコンが表示され、起動できるようになる。
Arduino IDEの起動
アイコンから起動するか、インストールしたディレクトリにあるスクリプトarduino
を実行すれば、Arduino IDEが起動する。
デフォルトでは実行環境の言語に合わせた言語とフォントで起動するが、TrueTypeフォントがインストールされていない環境などでは、文字が豆腐(□)に文字化けしている場合がある。
このような場合は、[CTRL]+[,]を押すことで環境設定ウィンドウが開くので、言語をEnglish (English)
あるいはSystem Default
など、文字が正しく表示されている言語を選び、一旦再起動すればとりあえず(言語はともかく)読める状態にはなる。
文字化けの解消方法については後述の§.文字化けとフォントに関してを参照。
USBデバイスのパーミッション変更
Arduino等のデバイスを接続したときに作成されるUSBデバイスファイル/dev/ttyUSBn
へのアクセスパーミッションを変更する。 sudo chmod og+rw
で各ユーザーにrw権限を与えるか、ユーザーをdialout
グループに追加することでアクセスを許可する。
ここではユーザーをdialout
グループに追加する。 まずはusermod
コマンドで現在のユーザー($USER
)をdialout
グループに追加する。
続いて、追加したグループ情報を更新する。
グループ情報が更新されない場合は、一旦ログアウトすることで更新される?(未確認)
更新されたら、Arduino IDEを再起動して、[ツール]→[ボード]の設定と、[ツール]→[シリアルポート]の設定を行う。
文字化けとフォントに関して
日本語が文字化けする場合
日本語に対応したTrueTypeフォントがArduino IDEをインストールした環境にない場合、文字化けする。 そのため、何かしらのTrueTypeフォント(OpenTypeではない)をインストールしてから再起動すると、文字化けしなくなる。
TrueTypeフォントのインストールは、~/.fonts
ディレクトリを作成して*.ttf
ファイルを配置するか、apt list ttf-*
で検索して一覧に表示されるTrueTypeフォントのパッケージをインストールすることで行える。
例として~/.fonts
ディレクトリにVLゴシックのVL-Gothic-Regular.ttf
とVL-PGothic-Regular.ttf
を配置してから起動すると次のように正しく表示される。
後述する方法でウィンドウやメニューのフォントを変えた場合は、ウィンドウ下部の標準出力やステータス表示にはフォント指定が反映されず、文字化けしたままになる。
ウィンドウやメニューのフォントを変える場合
まず、Arduinoのインストールディレクトリにgtkrcファイルを作成し、以下のようにフォント名を指定した内容を記述する。 ファイル名やスタイル名(下記の例の"arduino"
)は任意。
style "arduino" {
font_name = "Noto+Sans+CJK+JP 10"
}
class "GtkWidget" style "arduino"
font_name
はフォント名[空白]フォントサイズ
のように指定する。 指定するフォント名に空白が含まれる場合は、空白を+
に置き換えて指定する。 例えばNoto Sans CJK JP
の場合は、上記の例のようにNoto+Sans+CJK+JP
とする。 フォント名とフォントサイズの間の空白は区切りとして扱われるので、+
に置き換えないように注意。
次に、起動スクリプトであるarduino
を編集し、先に用意したgtkrcファイルへのパスを環境変数GTK2_RC_FILES
に追加する。
--- a/arduino.original
+++ b/arduino
@@ -2,6 +2,8 @@
APPDIR="$(dirname -- "$(readlink -f -- "${0}")" )"
+export GTK2_RC_FILES=$GTK2_RC_FILES:"$APPDIR"/arduino.gtkrc
+
for LIB in \
"$APPDIR"/java/lib/rt.jar \
"$APPDIR"/java/lib/tools.jar \
以降、Arduino IDEを起動すると指定したフォントがウィンドウやメニューに反映された状態で起動する。
gtkrcファイルで指定したフォントサイズは、エディタにも反映されてしまう点に注意。
エディタのフォントを変える場合
一旦Arduino IDEを終了し、設定ファイル~/.arduino15/preferences.txt
を編集する。 エントリeditor.font
を探し、エディタに使用したいフォント名とフォントスタイル、フォントサイズを指定する。
editor.font=editor.font=Noto Mono,plain,12
再度Arduino IDEを起動すると、指定したフォントがエディタに設定された状態で起動する。
Arduino IDEを起動した状態でpreferences.txt
で編集しても、起動しているArduino IDEには反映されず、また終了時にはその時点での設定でpreferences.txt
が上書きされてしまうようなので注意。
空白のあるフォント名は正しく検索されず類似した名前の別のフォントが選択されてしまう場合がある?(検証不十分)
Arduino core for the ESP32のインストール
ESP32を使用する場合は、"Arduino core for the ESP32"をインストールする。 Installation instructions for Debian / Ubuntu OS (espressif/arduino-esp32)に記載されている手順のとおり進めればよい。
まずは適当な場所に作業ディレクトリを作り、記載のとおりにコマンドを実行する。
mkdir temp
cd temp
wget https://bootstrap.pypa.io/get-pip.py && \
sudo python get-pip.py && \
sudo pip install pyserial && \
mkdir -p ~/Arduino/hardware/espressif && \
cd ~/Arduino/hardware/espressif && \
git clone https://github.com/espressif/arduino-esp32.git esp32 && \
cd esp32 && \
git submodule update --init --recursive && \
cd tools && \
python3 get.py
作業ディレクトリにget-pip.py
が残るので、インストールが完了して不要になったら作業ディレクトリごと削除する。
pipが既にインストールされている環境の場合は、以下のように省略できる。
mkdir -p ~/Arduino/hardware/espressif && \
cd ~/Arduino/hardware/espressif && \
git clone https://github.com/espressif/arduino-esp32.git esp32 && \
cd esp32 && \
git submodule update --init --recursive && \
cd tools && \
python3 get.py
Arduino IDEを再起動すると、[ツール]の[ボード]の一覧にESP32関連の項目が追加される。 "ESP32 Dev Module"など適当なボードを選択する。
初期状態での各種設定項目は次のようになっている。
Upload Speed | 921600 |
---|---|
CPU Frequency | 240MHz (WiFi/BT) |
Flash Frequency | 80MHz |
Flash Mode | QIO |
Flash Size | 4MB (32MB) |
Partition Scheme | Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS) |
Core Debug Level | (None) |
SPRAM | Disabled |
シリアルモニタを開き、baud rateを115200bpsに変更する。 その後、ボード上のRESETボタンを押すなどしてリセットすると、次のような内容が出力される。
ets Jun 8 2016 00:22:57 rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) ets Jun 8 2016 00:22:57 rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0x00 clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:2 load:0x3ffc0000,len:0 load:0x3ffc0000,len:2304 load:0x40078000,len:3788 ho 0 tail 12 room 4 load:0x40098000,len:532 entry 0x4009813c ************************************** * hello espressif ESP32! * * 2nd boot is running! * * version (V0.1) * ************************************** compile time 18:16:58 SPI Speed : 40MHz SPI Mode : DIO SPI Flash Size : 4MB Partition Table: ## Label Usage Type ST Offset Length 0 factory factory app 00 00 00010000 00100000 1 rfdata RF data 01 01 00110000 00040000 2 wifidata WiFi data 01 02 00150000 00040000 End of partition table Loading app partition at offset 00010000 section 0: paddr=0x00000020 vaddr=0x00000000 size=0x0ffe8 ( 65512) section 1: paddr=0x00010010 vaddr=0x3f400010 size=0x05b64 ( 23396) map section 2: paddr=0x00015b7c vaddr=0x3ffba720 size=0x01378 ( 4984) load section 3: paddr=0x00016efc vaddr=0x40080000 size=0x00400 ( 1024) load section 4: paddr=0x00017304 vaddr=0x40080400 size=0x126ac ( 75436) load section 5: paddr=0x000299b8 vaddr=0x00000000 size=0x06658 ( 26200) section 6: paddr=0x00030018 vaddr=0x400d0018 size=0x325b4 (206260) map start: 0x400807ac Initializing heap allocator: Region 19: 3FFBBA98 len 00024568 tag 0 Region 25: 3FFE8000 len 00018000 tag 1 Pro cpu up. Pro cpu start user code nvs_flash_init frc2_timer_task_hdl:3ffbc564, prio:22, stack:2048 tcpip_task_hdlxxx : 3ffbeca8, prio:20,stack:2048 phy_version: 80, Aug 26 2016, 13:04:06, 0 pp_task_hdl : 3ffc34f0, prio:23, stack:8192 :>enter uart init uart init wait fifo succeed exit uart init IDF version : master(db93bceb) WIFI LIB version : master(934d079b) ssc version : master(r283 4d376412) !!!ready!!! mode : softAP(XX:XX:XX:XX:XX:XX) dhcp server start:(ip: 192.168.XXX.XXX, mask: 255.255.255.0, gw: 192.168.XXX.XXX) +WIFI:AP_START
ESP32でのプログラムの書き込み
まずはブートモードを書き込みモードにして起動する。 アップロードに際して自動で切り替える機能のあるボードの場合は特に何もする必要はない。 ボード上にブートモード切り替え用のボタンがある場合はBOOT(またはFLASH)ボタンを押しながらRESETボタンを押す。 シリアルモニタ上では次のように表示され、アップロード待機状態になる。
ets Jun 8 2016 00:22:57 rst:0x1 (POWERON_RESET),boot:0x3 (DOWNLOAD_BOOT(UART0/UART1/SDIO_REI_REO_V2)) waiting for download
この状態で「マイコンボードに書き込む」を行う。 このとき、Arduino IDE下部の出力ペインには次のような内容が表示される。
最大1310720バイトのフラッシュメモリのうち、スケッチが207721バイト(15%)を使っています。 最大327680バイトのRAMのうち、グローバル変数が15228バイト(4%)を使っていて、ローカル変数で312452バイト使うことができます。 esptool.py v2.6 Serial port /dev/ttyUSB0 Connecting...... Chip is ESP32D0WDQ6 (revision 0) Features: WiFi, BT, Dual Core, Coding Scheme None MAC: XX:XX:XX:XX:XX:XX Uploading stub... Running stub... Stub running... Changing baud rate to 921600 Changed. Configuring flash size... Auto-detected Flash size: 4MB Compressed 8192 bytes to 47... Writing at 0x0000e000... (100 %) Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.0 seconds (effective 4102.1 kbit/s)... Hash of data verified. Compressed 17392 bytes to 11186... Writing at 0x00001000... (100 %) Wrote 17392 bytes (11186 compressed) at 0x00001000 in 0.1 seconds (effective 1087.6 kbit/s)... Hash of data verified. Compressed 207840 bytes to 105407... Writing at 0x00010000... (14 %) Writing at 0x00014000... (28 %) Writing at 0x00018000... (42 %) Writing at 0x0001c000... (57 %) Writing at 0x00020000... (71 %) Writing at 0x00024000... (85 %) Writing at 0x00028000... (100 %) Wrote 207840 bytes (105407 compressed) at 0x00010000 in 1.7 seconds (effective 999.9 kbit/s)... Hash of data verified. Compressed 3072 bytes to 128... Writing at 0x00008000... (100 %) Wrote 3072 bytes (128 compressed) at 0x00008000 in 0.0 seconds (effective 1531.0 kbit/s)... Hash of data verified. Leaving... Hard resetting via RTS pin...
自動的にリセットする機能のあるボードの場合は、このあとリセットされ、通常のモードで起動する。 ボード上にブートモード切り替え用のボタンがある場合はBOOT(またはFLASH)ボタンを押さずにRESETボタンだけを押す。
リセット後、シリアルモニタには次のように出力される。
ets Jun 8 2016 00:22:57 rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) ets Jun 8 2016 00:22:57 rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0xee clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:1 load:0x3fff0018,len:4 load:0x3fff001c,len:1216 ho 0 tail 12 room 4 load:0x40078000,len:9720 ho 0 tail 12 room 4 load:0x40080400,len:6352 entry 0x400806b8
この後、書き込んだプログラムが実行される。
Seeeduino SAMD Boardsのインストール
Seeeduino XIAOなどを使用する場合は、"Seeeduino SAMD Boards"をインストールする。 Seeeduino XIAO - Seeed Wiki ¶Softwareに記載されている手順のとおり進めればよい。
まず、[ファイル]メニューの[環境設定]を開き、[追加のボードマネージャのURL]の欄右端にあるボタンから入力ウィンドウを開く。 このウィンドウに、URLhttps://files.seeedstudio.com/arduino/package_seeeduino_boards_index.json
を追記する。
次に、[ツール]メニュー → [ボード: ...] → 一覧最上位にある[ボードマネージャ...]を開く。
Seeeduino XIAO
などで検索し、表示されるSeeed SAMD Boards by Seeed Studioをインストールする。
インストールが終わったら、[ツール]メニュー → [ボード: ...] → Seeed SAMD (32-bits ARM Cortex-M3+ and Cortex-M4) Boards
のカテゴリにあるボードから、目的のボードを選択する。
初期状態での各種設定項目は次のようになっている。
USB Stack | Arduino |
---|---|
Debug | Off |
スケッチ例から01.Basics/Blinkを書き込み、ビルトインLEDが明滅すれば動作OK。 「マイコンボードに書き込む」を行う際、Arduino IDE下部の出力ペインには次のような内容が表示される。
最大262144バイトのフラッシュメモリのうち、スケッチが34100バイト(13%)を使っています。 Atmel SMART device 0x10010005 found Device : ATSAMD21G18A Chip ID : 10010005 Version : v1.1 [Arduino:XYZ] Nov 27 2019 16:35:59 Address : 8192 Pages : 3968 Page Size : 64 bytes Total Size : 248KB Planes : 1 Lock Regions : 16 Locked : none Security : false Boot Flash : true BOD : true BOR : true Arduino : FAST_CHIP_ERASE Arduino : FAST_MULTI_PAGE_WRITE Arduino : CAN_CHECKSUM_MEMORY_BUFFER Erase flash done in 0.817 seconds Write 34716 bytes to flash (543 pages) [=== ] 11% (64/543 pages) [======= ] 23% (128/543 pages) [========== ] 35% (192/543 pages) [============== ] 47% (256/543 pages) [================= ] 58% (320/543 pages) [===================== ] 70% (384/543 pages) [======================== ] 82% (448/543 pages) [============================ ] 94% (512/543 pages) [==============================] 100% (543/543 pages) done in 0.213 seconds Verify 34716 bytes of flash with checksum. Verify successful done in 0.045 seconds CPU reset.