. Arduino Nano - テクニカルノート
Arduino Nano - テクニカルノート
Arduino Nano - テクニカルノート

Arduino Nano

Arduino Nanoは、コンピュータ、他のArduino、または他のマイクロコントローラと通信するための多くの機能を備えています。ATmega328はUART TTL(5V)シリアル通信を提供しており、デジタルピン0(RX)と1(TX)で利用できます。ボード上のFTDI FT232RLは、このシリアル通信をUSB経由でチャネルし、FTDIドライバ(Arduinoソフトウェアに同梱)は、コンピュータ上のソフトウェアに仮想的なCOMポートを提供します。Arduinoソフトウェアにはシリアルモニターが搭載されており、簡単なテキストデータをArduinoボードとの間で送受信することができます。FTDIチップとコンピュータへのUSB接続を介してデータが送信されると、ボード上のRXとTXのLEDが点滅します(ただし、ピン0と1のシリアル通信はできません)。SoftwareSerialライブラリを使用すると、Nanoのデジタルピンのいずれかでシリアル通信を行うことができます。ATmega328は、I2C(TWI)とSPI通信もサポートしています。Arduinoソフトウェアには、I2Cバスの使用を簡単にするWireライブラリが含まれています。SPI通信を使用するには、ATmega328のデータシートを参照してください。

プログラミング

Arduino Nanoは、Arduinoソフトウェア(ダウンロード)でプログラミングできます。ツール」→「ボード」メニューから「Arduino Duemilanove or Nano w/ ATmega328」を選択してください(お使いのボードのマイコンに応じて)。Arduino Nanoに搭載されているATmega328には、ブートローダーがあらかじめ組み込まれており、外部のハードウェアプログラマーを使用せずに新しいコードをアップロードすることができます。通信には、オリジナルのSTK500プロトコルを使用しています。ブートローダーをバイパスして、Arduino ISPなどを使ってICSP(In-Circuit Serial Programming)ヘッダーからマイコンをプログラムすることもできます。

自動(ソフトウェア)リセット

Arduino Nanoは、アップロード前に物理的にリセットボタンを押すのではなく、接続されたコンピュータ上で動作するソフトウェアによってリセットできるように設計されています。FT232RLのハードウェアフロー制御ライン(DTR)の一つは、100ナノファラッドのコンデンサを介してATmega328のリセットラインに接続されています。このラインがアサートされると(ローになると)、リセットラインはチップをリセットするのに十分な長さだけ低下します。Arduinoソフトウェアはこの機能を利用して、Arduino環境でアップロードボタンを押すだけでコードをアップロードできるようになっています。つまり、DTRの低下とアップロードの開始をうまく調整できるので、ブートローダのタイムアウトを短くすることができるのです。この設定は他にも意味があります。Mac OS XまたはLinuxを搭載したコンピューターに接続した場合、ソフトウェア(USB)から接続するたびにリセットされます。その後の約半秒間は、Nano上でブートローダが動作しています。これは、不正なデータ(新しいコードのアップロード以外のもの)を無視するようにプログラムされていますが、次のように、ボードに送信された最初の数バイトのデータを傍受します。

📎📎📎📎📎📎📎📎📎📎