FrontPage
Arduino1.0の更新情報
下記の更新情報↓はArduino IDEの1.0系列についてのみ更新しています(※現在は更新されていません)。バージョン1.5以上については、本家のリリースノートを参照してください。 リファレンスは全バージョン共通です(←左のリンクからどうぞ)。
2014/09/16 Arduino-1.0.6リリース →arduino.cc
[コア]
- avr: USB-CDCの書き込みスピードを改善 (Justin Rajewski)
- avr: USB-CDCの読み込みコードを改善 (Paul Brook)
- avr: USB-CDC送信の競合条件を修正 (Paul Brook)
- avr: cstdlibのatexit()関数のために代替スタブを追加 (Christopher Andrews)
- Streamクラスのnullポインタ処理を修正 (Amulya Kumar Sahoo)
- IDE 1.5.xからStringクラスを移植 (Matt Jenkins)
- IDE 1.5.xからPrintクラスを移植
- IDE 1.5.xからdigitalPinToInterruptマクロを移植
- サードパーティが派生型の初期化ができるようinitVariant()フックを追加
[IDE]
- IDE 1.5.xのライブラリレイアウトとの互換性
- アセンブラファイルをコンパイルできるようツールチェインのコマンドラインを修正 (Jimmy Hedman)
- 2つのライブラリが同じヘッダファイルを持っているときは同じフォルダ名を使用 (Paul Stoffregen)
[ライブラリ]
- Robot_Control: 重複していたSPIとWireを削除 (Xun Yang)
- Robot_Control: モーターが逆になる問題を修正 (Xun Yang)
- Robot_Control: チューニングアルゴリズムを更新 (Xun Yang)
- Esplora: Tinkerkitからの入力に対応
- Software Serial: 負論理で初期化するときの待機レベルを修正 (Jens-Christian Skibakk)
- 多くのサンプルを修正
[ファームウエア]
- Wifishield: 更新スクリプトのパスを修正
2014/01/08 Arduino-1.0.5-r2
- Windows8.1用署名入りドライバ(署名のタイムスタンプを有効にして無期限のものに修正)
2013/05/15 Arduino-1.0.5リリース
[コア]
- mallocのバグを修正(avr-libc 1.8.0をバックポート)
- 新しいavr-gccで問題となる割り込みハンドラを削除
- Stringクラスにc_str()メソッドを追加
- Streamの_timeoutフィールドとその関連メソッドをprotectに変更
[ライブラリ]
- WiFiライブラリを更新
- 多くのサンプルスケッチ(example)を修正
- Arduino Robotライブラリを追加
- TFTディスプレイライブラリを追加
[ファームウエア]
- WiFi関連ファームウエアを更新
[開発環境IDE]
- zipファイルまたはフォルダからライブラリをインストールする機能を1.5からバックポート
- Windows用ドライバを更新
- Windows用インストーラを追加
2013/03/11 Arduino-1.0.4リリース
[コア]
- mallocのバグを修正 (Paul Stoffregen)
[ライブラリ]
- Ethernet.begin()を複数回呼んだときのメモリーリークを修正
- SDのサンプルlistfiles.inoを修正
- Esploraのサンプルを修正
- GSMライブラリを追加
[開発環境]
- preferences.txtのエントリーを整理 (Shigeru Kanemoto)
- 翻訳の間違いを訂正
- パーミッションIOエラーによるNull Pointer Exceptionを修正
- Windows用ドライバを更新(オールインワン、Windows8に対応する署名)
[ブートローダ]
- Mega2560用ブートローダにあった多くのバグを修正 (Mark Sproul)
2012/12/10 Arduino-1.0.3リリース
【ハードウエア】
- Arduino Esploraをサポート
【開発環境(IDE)】
- MacOSX 10.8に対応するSignedアプリケーション
【コア/ライブラリ】
- Leonardoブートローダのpower-up-starts-bootloaderを修正
- Leonardo系のdigital_pin_to_timer_PGM配列を修正
- WiFiファームウエアを更新
- ATmega8用ブートローダのソースコードを更新
- SoftwareSerialが600 baudをサポート
2012/11/5 Arduino-1.0.2リリース
【ハードウエア】
- Arduino Microをサポート
- LilyPad? Arduino USBをサポート
- Arduino Megaへのアップロード時にavrdudeは"stk500v2"ではなく"wiring"を使用する
【開発環境(IDE)】
- テキストの選択、非選択に関わらずFind-In-Referenceが機能する
- すでに関数のプロトタイプが存在するときは生成しない
- エラーメッセージ中の行番号を改善
- sketchbook内のlibrariesフォルダを自動的に生成する
- ライブラリーのインストールに関するチュートリアル
- ノルウエー語の選択を可能に
- コンパイル時にエラーを引き起こす競合状態(race condition)の問題を解決
- auto-format時に長いC++の文を分割しない
【コア/ライブラリ】
- WiFiライブラリ、WiFi? shield用ファームウエア
- Serial.begin()にストップビット、パリティ、ビット長などのパラメータを追加
- Leonardoのシリアル受信時(CDC)におけるバッファのオーバーランを解決
- Leonardoに対してボーレートを指定せずにアップロードした後、シリアルポートをオープンしてもオートリセットをしない
- Leonardoにおけるtone()の問題を修正
- LeonardoにおけるSDライブラリの問題を修正
- Leonardoのwrite関数を拡張
- Leonardoに割り込み2と3を追加
- Serial.print()が、状況に応じてNaN、inf、ovf等を出力
- SPIデータ線の初期化の問題を修正
- Serial.flush()は最後のデータが送信されるのを待つ
- Serial.write(0)を実行できるようオーバーロードを追加
2012/5/22 Arduino-1.0.1リリース
【開発環境(IDE)】
- IDEが国際化され、複数の言語に翻訳された。国際化と日本語への翻訳をしたShigeru Kanemotoさんに感謝。その他の言語への翻訳を行ったたくさんの翻訳者にも感謝。より詳しい情報は http://arduino.cc/playground/Main/LanguagesIDE を参照のこと。
- Preferenceに言語を選択する項目を追加。デフォルトはOSのロケール。
- Arduino Leonardo (ATmega32U4?)に対応する新しいアップロード処理。
- エディタのフォントサイズの設定を、シリアルモニタとメッセージコンソールにも適用。
- 変更があったファイルのみを再コンパイルすることによりスピードアップを図った(従来は毎回全ファイルを再コンパイルしていた)。
- コンソールのログファイル(stdout.txtとstderr.txt)を、IDE終了時に消去。
- ウインドウの最小サイズをより小さく。
- Find / Replaceダイアログを改良。
- ダブルクリックによる単語の選択、トリプルクリックによる行の選択をサポート。
- シリアルモニタを開くショートカットキーを押したときに、改行コードが入らないよう修正。
- アップロード時の検証(verification)を無効にできる設定項目を追加(スピードの改善)。
- Linux版にgccツールチェインを追加(既存のツールチェインを使用する場合はArduino付属のものを削除すること)。
- stk500からarduinoへのArduino Miniアップロードプロトコルを更新(オートリセットは機能しない)
【コア/ライブラリ】
- Arduino Leonardo (ATmega32U4?)の公式サポート。ブートローダとコアに対するいくつかの修正を含む。
- Wire.write()にオーバーロードを追加(Wire.write(0)と記述可能に)。
- 20MHzクロック時のdelayMicroseconds()の動作を修正。
- ATmega1284Pの3つ目の外部割り込みをサポート。
- ATmega1284Pの基準電圧源に関する定数を更新。
- ATmega2560のために、リンカに --relaxフラグを追加。
- avr-gcc 4.5.1におけるEthernetライブラリのバグを修正。
- DHCPのホストネーム生成を修正。
- マイクロ秒からクロックサイクルへの変換を簡素化(pulseIn()の改善?)。
- いくつかの警告(warning)を修正。
- 先頭の文字が重複しているときのfindUntil()のバグを修正。
- pinMode()に INPUT_PULLUPオプションを追加。これにより、プルアップ抵抗を明示的に設定できる。
- 複数のUDPパケットを受信した時のバグを修正。
- Wireライブラリ(マスターモード)に、Repeated Startを発行する機能を追加。endTransmission()とrequestFrom()にブール型の引数を追加し、Stopを送る代わりにRepeated Startを送れるようにした。
- DHCPリースを更新するEthernet.maintain()を追加。
- Etehrnetを使用するスケッチがクラッシュする原因となるCLOSE_WAITバグを修正
- サーボのパルスタイミングの計算方法を修正。
- readString()関数、readStringUntil()関数を追加。
2011/11/30 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かをチェックする。
#if defined(ARDUINO) && ARDUINO >= 100 #include "Arduino.h" #else #include "WProgram.h" #endif
- 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対応版から変更)。
2011/11/09 Arduino-0023リリース →arduino.cc
- 新しいボード(R3)に対応
- optiboot4.4へアップデート
- ATmega16U2用の複合ファームウエア
2011/5/21 Arduino1.0βリリース →arduino.cc
【開発環境(IDE)】
- 新しい拡張子(.ino)
- 新しいツールバーのアイコン: チェックマーク(verify)、右矢印(upload)
- プログラマを使ったスケッチのアップロード: シフトキー+Uploadボタンを押すか、Fileメニューの"Upload Using Programmer"を選択
- Preferenceを設定することで、コンパイル時とアップロード時により詳しいメッセージが表示される
【言語(API)】
- シリアル通信の送信バッファのノンブロッキング化
- Serial.flush()は受信データを捨てるのではなく送信処理のほうを保留
- SoftwareSerialライブラリを再実装し、複数ポートをサポート(NewSoftSerial? by Mikal Hart)
- Matrix、Spriteの両ライブラリを廃止
- Serial.print(byte)は数値を文字として出力(そのままバイナリを出力したいときはwrite()を使用)
- Stringクラスの再実装
- Flashメモリを使用するF("string")記法の文字列処理を追加
- Ethernetライブラリの"client == NULL"や"client != NULL"といった書き方を廃止。代わりに"if (client)"や"if (!client)"を使用
- EthernetライブラリにDHCPとDNSのサポートを追加
- UDP APIを修正
- IPAddressクラスを追加
- Wireライブラリを修正し、Sreamを継承
- SD cardライブラリで複数のファイル/ディレクトリのopenに対応
- シリアル通信時にデータを受け取ると自動的に呼ばれるserialEvent()の導入
【内部処理】
- WProgram.hをArduino.hに改名
- ピン定義をcoreからpin/サブディレクトリへ移動(その位置はboards.txtのBOARD.build.pinsで指定)
2010/12/24 Arduino-0022リリース
- SD card libraryを追加 http://arduino.cc/en/Reference/SD
- 文字を操作するマクロを追加(Wiringより)
isAlphaNumeric(), isAlpha(), isAscii(), isWhitespace(), isControl(), isDigit(), isGraph(), isLowerCase(), isPrintable(), isPunct(), isSpace(), isUpperCase(), isHexadecimalDigit(), toAscii(), toLowerCase(), toLowerCase().
- String.toInt()関数を追加
- coreをリファクタリングして、CPU名による#ifdefではなく、registerベースの方法に変更
- ボーレートの計算方法を修正し、8U2ファームウエアの57600baudでのシリアル通信に対応
- tone()関数の問題を修正
- SPI.setClockDivider()の問題を修正
- Mega2560におけるEEPROM libraryの問題を修正
- ハードウエアシリアルの割り込み処理を最適化
- pulseIn()のタイムアウト処理をパルスが発生するまでの間だけでなく、パルス長の計測中にも有効に
- copy as htmlの問題を修正('<'と'>'の問題も解決)
- アップロード時に有効なシリアルポートが見つからなかったときは、ポート選択のためのダイアログを表示
- シリアルモニタのウインドウサイズと改行コードの設定を保存
- 正規表現処理をoro.jarからjava.regexに変更
- エラーの表示をはやくするため、coreやライブラリよりも先にユーザーのスケッチをビルドするよう変更
- Windows用にアプリケーションアイコンをセット
2010/10/02 Arduino-0021リリース
- 8U2ファームウエアのVID/PIDコンビネーションを変更
- ピン9と10におけるanalogWrite()のバグを修正(Arduino Uno)
- Linuxで/dev/ttyACM*をインクルードするようRXTXにパッチ
2010/09/27 Arduino-0020リリース
- Arduino UnoとArduino Mega 2560を新たにサポート
- UnoとMega 2560で使用されるATmega8U2のファームウエアを収録
- Unoで使用されるoptiboot bootloaderを収録
- Mega 2560で使用されるstk500v2 bootloaderを収録
- 新しいアプリケーションアイコン
2010/09/03 Arduino-0019リリース
- Ethernetライブラリを改訂(by Christian Maglie)。このライブラリは新しいSPIライブラリに依存し、今後は#include <SPI.h>がコードの先頭に必要となる。
- SPIライブラリを追加(by Christian Maglie)。
- アナログ入力ピンのエイリアスとしてA0、A1...を追加。
- Stringクラスを追加。
- shiftIn()関数を追加(Wiringより)。
- Firmataをバージョンアップし、Megaをサポート。
- BenFによる、より正確なdelay()。
- tone()の停止後にPWMを有効に戻す。
- Serial.peek()メソッドを追加。
- シリアルオブジェクトのためのStream基底クラスを追加(Printクラスからavailable(), read(), write(), print(), println()の各関数)。
- digitalWrite()とpinMode()がピン状態を変更している間、割り込みを停止。
- Arduino MegaのアナログリファレンスINTERNALをINTERNAL1V1とINTERNAL2V56に変更。
- boardsメニューにArduino Fioを追加。
- boardsメニューにArduino ProとPro Mini (5V / 16 MHz)を追加。
- コードベースをProcessing 1.1と同期。
- avr-gcc / avr-g++の出力とエラーメッセージの解析を修正。
- LinuxでFTDIケーブルを使ってアップロードする際、RTSをトグルしてオートリセットを有効に。
- シリアルモニタのスクロールをコントロールする機能を追加。
- シリアルモニタでの行末コードを選択するメニューを追加。
- 拡張子が違う同名のファイル(たとえばtest.cppとtest.h)を同時に開いたときの不具合を修正。
- サードパーティ製ハードウエアが独自のプログラマ(書き込みインタフェイス)を参照可能に。
- サンプルスケッチに番号をつけて整理。
2010/01/29 Arduino-0018リリース
- 指定した周波数を発するtone()関数とnoTone()関数を追加
- Serial.end()を追加
- floatとdoubleの出力時の精度を指定するパラメータを追加
- Firmataの最新バージョンに対応
- LiquidCrystalライブラリでRWピンが正常に動作しないバグを修正
- delayMicroseconds()内でも割り込みを有効に
- 割り込みでmicros()の戻り値が不正になるバグを修正
- Arduino Megaのアナログ入力8-15の不具合を修正
- Processing 1.0.9のコードベースと同期し、スケッチを閉じる際の保存の失敗といった問題を修正
- サードパーティ製ハードウエアをサポートするために、SKETCHBOOK/hardwareフォルダを追加し、従来のhardwareフォルダをミラーリング
- ショートカットCtrl-Shift-M / Command-Shift-Mでシリアルモニタを起動
- シフトキーを押しながらツールバーのVerify / Compile / Uploadボタンを押すと、詳細なメッセージを表示
- アップロード時のビルドをappletディレクトリではなく、テンポラリディレクトリへ移動(MacOSXのディスクイメージやLinuxのアプリケーションディレクトリからアップロードできない問題を解消)
- スケッチに同名の.cppと.hがあるとインクルードできない問題を修正
- MacOSXのディスクイメージ(.dmg)を改良し、Applicationsフォルダへのショートカットや、新しいFTDIドライバを追加
2009/08/12 Arduino-0017リリース
- Tom Igoeにより多くのサンプルスケッチが追加・修正された
- Limor FriedによるLiquid Crystalライブラリが更新された。詳細はリファレンスを参照
- Firmataライブラリがv2.1(rev.25)に更新された
- ServoライブラリがMichael Margolisのものにリプレースされ、Arduinoボードでは12、Arduino Megaでは48のサーボがサポートされるようになった。
- シリアル通信時のボーレートの計算がより正確になった(8MHz Arduinoでの倍速問題も解決)
- Processing 1.0.3のコードベースに移行し、多くの改善が行われた(主な変更点は下記のとおり)
- Thomas Glaserによる新しいアイコンとAboutイメージ
- 複数のスケッチ・ウインドウに対応
- シリアルモニタが独立したウインドウで実行される
- Comment/Uncommentメニューの追加
- Increase Indent/Decrease Indentメニューの追加
- ライブラリをスケッチのディレクトリにおけるようになった(librariesフォルダを自分で作ってそこにunzip)
- ライブラリはスケッチと一緒にコンパイルされるようになり、ボードを変更したときの待ち時間が生じなくなった。ライブラリのソースコードを変更した際、.oファイルを削除する必要がなくなった
- Macでは(dmg中の)appファイルとして提供されるようになった
- Arduino Nano w/ ATmega328がBoardメニューに追加された
2009/06/20 MacOSXでIDEが起動しなくなる問題とその対策
MacOSXのJavaを最新版にアップデートすると、Arduino IDEが起動しなくなるという問題が発生しました。対策は、FinderからArduino 16.appの「情報」を表示し、「32ビットモードで開く」(Open in 32 Bit Mode)をチェックするといいようです。
2009/05/30 Arduino-0016リリース
Sparkfunのボードのサポートが拡充され、いくつかの不具合が修正されたようです
- 3.3V/8MHz動作のATmega328を搭載したArduino ProとPro Miniに対応
- Atmega328搭載のLilyPad Arduinoに対応
- Print、Serial、そしてEthernetライブラリに、write(str)とwrite(buf, size)の2つのメソッドが追加された。これにより、Ethernetでより効率的な(パケット数の少ない)通信が可能に
- EthernetライブラリのClientクラスの接続/切断処理を改善
- millis()とmicros()が使用するtimer0のオーバーフロー割り込みハンドラを最適化
- bit()マクロが15ビットまでしか処理できなかったバグを修正
- バージョンを表す定数ARDUINOを追加
- Tools > Boardメニュー内の順番を整理
- Toolsメニューに Copy as HTML コマンドを追加
- 時々発生していた Couldn't determine program sizeエラーに対処
- 依存関係を自動的に生成しMakefileにする機能を追加(?)
2009/03/26 Arduino-0015リリース
- Arduino Megaに対応したようです。
2009/03/07 Arduino-0014リリース
- Ethernet classのデバグが主な修正点です。
2009/02/07 Arduino-0013リリース
- Printクラスに浮動小数点サポートを追加(Serial, Ethernet, LiquidCrystalなどで使用可能)。
- word(), bitRead(), bitWrite(), bitSet(), bitClear(), bit(), lowByte(), highByte()を追加
- ピン5,6のPWM出力が0まで行かなかった問題に対応
- キャスト・マクロを削除。これにより寄稿されたライブラリが0012で動作しなかった問題が解決
- pulseIn()を変更。立ち上がりエッジを計測するときはLになるのを待ってから計測開始、逆もまたしかり、ということかな
- random()の生成する値のレンジが狭いバグを修正
- delay()を修正。少なくとも指定したミリ秒分、停止するようになった(ちょっと短くなる場合があったってこと?)
- Ethernetライブラリがピン8,9に支障を及ぼすバグを修正
- EthernetライブラリのClientクラスで外向きのコネクションをそれぞれ異なるポートからに
- ATmega168のブートローダを修正。avrdudeに対応(シグネチャリクエストにレスポンス)し、EEPROMデータを正しくストア
- ATmega328をサポート。board.txtの修正とブートローダの再書き込みが必要になるが、アップロードスピード57600baud
- 不使用のファンクションをなくしてコンパイル後のサイズを縮小
- EEMEMディレクティブの使用を許すようコンパイルのプロセスを変更(EEPROMデータのアップロードはまだ不可)
※追記 0012でコンパイルすると2648バイトだったスケッチが、0013では2220バイトになりました(Binary sketch size)。その差、428バイト(-16%)。
Keyword(s):
References: