目次 このページのソースコードを表示

ArduinoでArduinoにスケッチ書き込み

公開日:
更新日:

Arduinoにプログラムを書き込むにはパソコンが必要です. パソコンでプログラムを書きArduinoをパソコンに接続し、スケッチをマイコンボードに書き込みます. 別のプログラムを実行したいとき、またパソコンに接続してスケッチを書き込みます。これは大変労力かかると同時にパソコンなしではプログラムの変更は不可能です.

このページでは、それを解決する一つの方法を提案します。それは, Arduinoが別のArduinoへスケッチを書き込むということです. 詳しく言うと, スケッチをコンパイルした後に作成されるHexFileをSDカードに保存し, そのHexFileをある一つのArduinoが読み込み別のArduinoへスケッチを書き込むということです.

このページで紹介する方法で以下のことができます。

  • ArduinoでArduinoにスケッチ書き込み
  • 他機能の組み合わせで応用可能

"他機能の組み合わせで応用可能"の例ですが, ある端末を作ったとします。その端末にはグラフィック液晶ディスプレイ、コントローラーが付いています。使用者にグラフィック液晶でスケッチの選択をさせることで、一つの端末で複数のプログラムを実行することができます; パソコンでいちいちスケッチを書き込む必要はありません。

対応環境

ただし、以下の環境が必要です。

スケッチを書き込まれるArduinoにはブートローダー"optiboot"がかきこまれていること

optibootがかきこまれているArduinoは"Arduino UNO"です。このサイトでもこれを使用しています。

スケッチを書き込むArduinoは16MHzで動作していること

optibootとの通信には115200bpsのシリアル通信が用いられています。8MHzなどの低周波数で動作するArduinoではこの通信がうまくいきません。

  • Optibootに関して簡単に説明します. 説明項目は以下のとおりです.

    • optibootとは
    • optibootの起動方法
    • optibootにコマンドを送る
    • optibootにスケッチを送る
  • SketchWriterとは、optiboot―これが書き込まれているArduinoはArduinoUnoです―と通信することができるものです。このSketchWriterはoptibootに対してメモリのセット、データの送信、アプリの実行、を命令することができます。それらの命令を使ってパソコンを用いずにArduinoにスケッチ―Arduinoではプログラムのことをスケッチと呼んでいます―を書き込むことができます。SketchWriterができることは以下のことです。

    • optibootに対しての基本命令の送信
    • スケッチが書かれたHexFile(Hexファイル)の読み込み
    • Arduinoにスケッチを送信
    • 今後応用可能な関数セット

    optibootに対しての基本命令とはメモリのセット、 データの送信、 アプリの実行、 optibootと同期などをさします。このヘッダを用いるとArduinoからArduinoへスケッチ―プログラム―を書き込むことができます。

    ただし、以下の環境が必要です。

    スケッチを書き込まれるArduinoにはブートローダー"optiboot"がかきこまれていること

    optibootがかきこまれているArduinoは"Arduino UNO"です。このサイトでもこれを使用しています。

    スケッチを書き込むArduinoは16MHzで動作していること

    optibootとの通信には115200bpsのシリアル通信が用いられています。8MHzなどの低周波数で動作するArduinoではこの通信がうまくいきません。

    SketchWriterを改良、強化、何でもしてください(;´∀`)

「https://contentsviewer.work/Master/Arduino/SketchWriteWithoutComputer」から取得