Arduino ブートローダーのインストール方法

Arduino ブートローダーのインストール方法

ブートローダーのインストールは、Arduino プロジェクトを実現するための最初のステップです。これは、特別なプログラミング機器を必要とせずに、Arduino スケッチをボードに簡単に頻繁にアップロードするのに役立つソフトウェアです。

これはロケット科学のように聞こえるかもしれませんが、実際には、初心者でも思っているよりも簡単です。いくつかの簡単な手順で、Arduino ボードにブートローダーを簡単にインストール (または再インストール) する方法を紹介します。

しかし、最初に、Arduino ボードのブートローダーとは正確には何ですか?

ブートローダーとは?

Arduino ブートローダは、ボードの不揮発性メモリに格納されている小さなプログラムで、ボードの電源がオンになったり、新しいコードがアップロードされたり、リセットされたりするたびに実行されます。ブートローダ プログラムが実行されるたびに、ボードのハードウェアが初期化され、ボードのフラッシュ メモリに保存されているメイン スケッチまたはプログラムがロードされます。

すべての Arduino ボードには、メーカーのブートローダーがプリインストールされていることに注意してください。箱から出してすぐに、ブートローダーに問題のあるボードが見つかる場合があります。ただし、これはめったに起こりません。

ブートローダーを使用する理由

Arduino ブートローダーの使用が役立つ状況がいくつかあります。たとえば、Arduino プラットフォームの初心者の場合、ブートローダーを使用すると、新しいプログラムをボードに簡単かつ迅速にアップロードできます。これは、コードをアップロードするために、プログラマーや USB-to-シリアル コンバーターなどの外部プログラミング デバイスを使用する必要がないためです。

コードを頻繁に更新する必要があるプロジェクトに取り組んでいる場合は、非常に便利です。この場合、ブートローダーを使用すると、外部プログラミング デバイスを使用せずに新しいコードをボードにアップロードするだけで済むため、時間と労力を節約できます。

さらに、特定のプログラムを実行するなど、電源を入れたときに Arduino を特定の状態にする必要があるプロジェクトに取り組んでいる場合は、ブートローダーを使用すると便利です。ブートローダーを使用すると、ボードの初期状態を設定して、電源を入れたときに目的のプログラムを自動的に実行することができます。

最後に、メイン スケッチが破損したり、実行に失敗した場合に Arduino を回復する方法を提供します。

ブートローダーが見つからないのはなぜですか?

緑の 1 と 0 のエラー画像。

ボードに新しいブートローダーが必要になる理由として、次の 4 つが考えられます。

  1. ブートローダがプリインストールされていない: ATMEGA328P スタンドアロン プロジェクトで、チップを PCB にはんだ付けし、たまたまチップを揚げてしまうことはよくあることです。したがって、事前にブートローダーをインストールせずに、ボードをチップに置き換えた可能性があります。
  2. ブートローダーの置き換え: ブートローダーを、破損している可能性のある変更されたサードパーティのブートローダーに置き換えた可能性があります。
  3. 破損したブートローダー: これは最も可能性の低いシナリオです。ただし、場合によっては、Arduino フラッシュ メモリが破損することがあります。
  4. 拡張メモリ: 残りの 2K のプログラム メモリを利用するためにブートローダ全体をアプリケーションに置き換えた (フラッシュした) 場合、ブートローダは確実に不足しています。

これがあなたがする必要があることです。

Arduino ブートローダーのインストール/再インストール

マイクロコントローラは通常、PCB にはんだ付けする前にプログラムされます。これは通常、インサーキット シリアル プログラミング (ICSP) などのインシステム プログラミング (ISP) を使用して行われます。これにより、外部プログラマを使用してマイクロコントローラをプログラムできます。Atmel や Microchip などの多くのマイクロコントローラー メーカーは、この目的のためにボード上に ISP ヘッダーを提供しています。

別の Arduino ボードを使用する

ATmega328 マイクロコントローラーでブートローダーをフラッシュするには、他のボードを ISP プログラマーとして使用してブートローダーをインストールする前に、ボードで ICSP ヘッダーを使用する必要があります。

Arduino IDE を起動し、以下に示すようにArduinoISPに移動し、プログラマーとして使用する予定のボードにサンプル コードをアップロードします。(ハードウェアの接続については、ビデオ チュートリアルに従ってください)。

File>>Examples>>ArduinoISP>>ArduinoISP をナビゲートする Arduino IDE のスクリーンショット

正しい方向に進んでいることがわかるように、コードは次のようになります。

ISP 向けの Arduino-IDE サンプル コード

ToolsタブからProgrammer移動し、以下に示すように ISP として Arduino をクリックします。

Arduino-IDE ナビゲーション ツール>>プログラマ>>ISP としての Arduino のスクリーンショット

最後に、 [ツール] タブから、図のように [ブートローダーの書き込み] をクリックします。

Tools>>Burn Bootloader を介してナビゲートする Arduino-IDE のスクリーンショット

プロセスが完了すると、ターゲット ボードをプログラムする準備が整います。

専用プログラマーの使用

この種のインストールに使用できる多くの AVR プログラミング デバイスがあります。試すことができる 1 つの良いオプションは、Dick Streefland のUSBtinyと Limor Fried のUSBtinyISPに基づく AVR Pocket Programmer (Windows のみ) です。Arduino ボードに見られるような、AVR マイクロコントローラーをプログラムするためのより簡単な方法を提供します。USB 接続で電源が供給されるという事実を除けば、さまざまなプログラミング言語やソフトウェアと互換性があり、あらゆる Arduino ユーザーにとって用途の広いツールになるため、最良の選択肢です。

特に Windows を使用していない場合は、ARM マイクロコントローラー用の公式 Atmel-ICE プログラマーなどの他のオプションを試すこともできます。

Arduino ボードをプログラマーに接続し、ブートローダーをフラッシュします。以下のビデオチュートリアルを参照してください。

このプロセスは単純で、20 秒以上かからないようにする必要があります。

注:この方法を実行する前に、ターゲット ボードの電源を適切にオンにする必要があります。そうしないと、 .hexファイルをターゲットにフラッシュできません。

パワー ユーザー向けに、コマンド ラインを使用してブートローダーをインストールするより複雑な方法があります。この段階に到達する必要はありませんが、コードを変更または再コンパイルして、よりカスタマイズされたエクスペリエンスを得ることができます。

プロセスの最初のステップは、AVR チップの一部であるヒューズ ビットを構成し、外部クリスタルの使用などの設定を制御することです。次のコマンドを使用して、ヒューズ ビットを設定します。

avrdude -b 19200 -c usbtiny -p m328p -v -e -U efuse:w:0x05:m -U hfuse:w:0xD6:m -U lfuse:w:0xFF:m

ヒューズ ビットが設定されたら、次のステップはコンパイル済みファイルを転送することです。hex ファイルをターゲット ボードにダウンロードし、ロック ビットを設定します。これにより、ボード上でプログラムを実行できます。次のコマンドを入力する前に、 optiboot_atmega328.hexファイルと同じディレクトリにいることを確認してください。

avrdude -b 19200 -c usbtiny -p m328p -v -e -U flash:w:hexfilename.hex -U lock:w:0x0F:m

注:これらのコマンドは Arduino Uno 用です。board.txtファイルにあるボードのヒューズ ビットをリファクタリングし、 AVRDUDE の部品番号パラメーターを調整して、それらが機能するようにする必要があります。

次はArduinoで何をしますか?

Arduino ブートローダは、初心者でも簡単にプログラムできるようにするものです。うまくいけば、独自のカスタム スケッチを Arduino にアップロードし、将来の Arduino DIY プロジェクトのためにブートローダーを復元できます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です