最終更新:2012-04-02 (月) 02:06:29 (1998d)  

Arduino 1.0 はてなブックマークを見る
Top / Arduino 1.0

日本語化

変更点

  • 開発環境(IDE)
  • スケッチの拡張子を.pdeから.inoへ変更。Processingとの衝突を避けるため(inoはArduinoの末尾の3文字)。
  • 新しいツールバーのアイコン。チェックマーク(verify)、右矢印(upload)を追加し、シリアルモニタのボタンを右端へ移動。シフトキーを押しながらUploadボタンを押すとToolsメニューで指定したライタ(programmer)を使ってアップロード。
  • Preferenceを設定することで、コンパイル時とアップロード時により詳しいメッセージが表示される。
  • 新しいカラーとAbout画像。
  • 選択中のボードとシリアルポートの名前がエディタ下部に表示される(Wiringより)。
  • コンパイル中とアップロード中にプログレスバーが表示される(Wiringより)。
  • Core/ライブラリ
  • シリアル通信を非同期に。Serial.print()等を実行するとデータはバックグラウンドで送信される。Serial.flush()の仕様は変更され、受信データを捨てるのではなく送信処理を留保。
  • byte型データに対するSerial.print()の挙動が変更され、他のデータ型と同様に'1'、'2'、'3'のようなASCII文字が送信される。BYTEキーワードは廃止。1バイトのデータをそのまま送信する際はSerial.write()を使用する。
  • Serialクラスに受信データをパースする機能を追加(Streamクラスを継承するEthernetClient?SoftwareSerial、Wireなども同様)。Michael MargolisのTextFinder?ライブラリをベースにしており、データの検索を行うfind()やfindUntil()、文字を数値に変換するparseInt()やparseFloat()、バッファに複数バイトを読み込むreadBytes()やreadBytesUntil?()が使用可能に。これらの機能のタイムアウト処理はsetTimeout()で設定する。
  • SoftwareSerialライブラリを再実装(Mikal HartのNewSoftSerialがオリジナル)。複数のインスタンスを生成可能。ただし、同時に受信できるのはひとつのインスタンスのみ。
  • 文字列を格納する領域として、RAMの代わりにFlashメモリ(プログラムメモリ)を使用可能に。Serial.print(F("hello world"))のように、F("…")で文字列を指定。
  • Stringクラスが再実装され、メモリ効率と堅牢性が向上した(by Paul Stoffregen)。trim()やtoUpperCase?()といったいくつかの関数は、新しいインスタンスを返す代わりに、元の値を変更する。
  • EthernetライブラリがDHCPとDNSをサポート(Adrian McEwen?により統合された)。他のライブラリとの名前の衝突を避けるため、おもなクラスの名前が変更され、"Ethernet"が付けられた("Client"は"EthernetClient?"、"Server"は"EthernetServer?"、"UDP"は"EthernetUDP")。新たに加わったIPAddressクラスにより、アドレスの扱いが容易に。
  • UDP APIは他のライブラリと近い仕様に変更され、送信パケットは標準的なwrite()、print()、println()といった関数で組み立てられることになった。これらの関数はbeginPacket()とendPacket()で囲まれる。受信パケットはparsePacket()でパースされ、available()、read()、peek()などを使って読み取られる。パケットの発信元はremoteIP()とremotePort()によって知ることができる(Adrian McEwen?による実装)。
  • Wireライブラリもまた標準的なread()、write()を使用するよう変更された(従来はsend()とreceive())。送信時は、print()とprintln()も使用可能。
  • SDライブラリで複数のファイルの同時openに対応。isDirectory()、openNextFile?()、rewindDirectory()といった関数を使って、ディレクトリ内の全ファイルを順に処理できる(Limor Friedに感謝)。
  • ボード/ファームウエア
  • Arduino Mini w/ ATmega328を追加。
  • Windows用ドライバ(.inf files)と16U2ファームウエア(.hex files)を、rev.3ボード(Uno、Mega、Mega ADK)のために追加。
  • 実装
  • Arduino APIの宣言を提供するWProgram.hの名称をArduino.hに変更。Arduino 0022とArduino 1.0の両方で動作するライブラリを作成する際は、#ifdefを使って、ARDUINO定数が22か100かをチェックする。
  • Streamに含まれるwrite()、print()、println()の返り値は、(voidではなく)出力されたバイト数を表すsize_t型となった。これによりStreamを継承する各クラスは適宜修正する必要がある。なお、write(str)関数は、print.h内でwrite(buf, len)を呼ぶ実装となっている。
  • Client、Server、UDPという新たな抽象基底クラスが存在し、ネットワーク処理用のライブラリにポータビリティを提供している。
  • Arduinoボードのピン定義(ピン名とポートレジスタ/ビットペアの対応)は新たに設けられたhardware/variants/フォルダに格納されている。各ボードが使用する定義はboards.txtでBOARD.build.variantという形式で指定される。
  • 新しいvariant仕様のpins_arduino.hはSPIピンの位置やdigital/analogピンの数といった、ボードの特徴を表すマクロを提供する。
  • Windows版とMac版のArduino Softwareに含まれるavrdudeは5.11にアップグレードされた(5.4のArduino対応版から変更)。

参考