13,005
回編集
細 (文字列「presire22-22」を「presire220a-22」に置換) |
|||
188行目: | 188行目: | ||
sudo usermod -a -G dialout $USER | sudo usermod -a -G dialout $USER | ||
sudo chmod a+rw /dev/ttyUSB0 | sudo chmod a+rw /dev/ttyUSB0 | ||
<br><br> | |||
== エラー関連 == | |||
==== 書き込みできない場合 ==== | |||
プログラムの書き込み時において、以下に示すようなエラーが出力される場合がある。<br> | |||
Cannot perform port reset: 1200-bps touch: setting DTR to OFF: broken pipe | |||
<br> | |||
このエラーは、Arduinoのブートローダーとの通信に問題が発生している典型的なケースである。<br> | |||
* 解決方法 1 : デバイスファイルのパーミッション変更する | |||
*: (デバイスファイル名が異なる場合は適宜変更すること) | |||
*: <code>sudo chmod a+rw /dev/ttyACM0</code> | |||
*: <br> | |||
* 解決方法 2 : 実行するユーザをdialoutグループに追加する | |||
*: <code>sudo usermod -a -G dialout $USER</code> | |||
*: この後、再ログインする必要がある。 | |||
*: <br> | |||
* 解決方法 2 : Arduinoを再起動する | |||
** ArduinoのUSBケーブルを抜き差しする、または、別のUSBポートに接続する。 | |||
** Arduinoのリセットボタンを押下した後に書き込みを実行する。 | |||
*: <br> | |||
* 解決方法 4 : Arduinoが認識されているかどうかを確認する | |||
*: デバイスの認識を確認する。 | |||
*: <code>ls -l /dev/ttyACM*</code> または <code>sudo dmesg | grep tty</code> | |||
*: <br> | |||
* 解決方法 5 : udevルールの確認と追加 | |||
*: udevルールを追加する。 | |||
*: <code>sudo nano /etc/udev/rules.d/99-arduino.rules</code> | |||
*: 以下に示す内容を追記する。 | |||
*: <syntaxhighlight lang="sh">SUBSYSTEM=="tty", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0043", MODE="0666" | |||
SUBSYSTEM=="tty", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0001", MODE="0666" | |||
</syntaxhighlight> | |||
*: udevを再起動する。 | |||
*: <code>sudo udevadm control --reload-rules</code> | |||
<br> | |||
特に、解決方法1〜2の方法で解決することが多い。<br> | |||
<br><br> | <br><br> | ||