Arduino Wiki トップページ
← Processing for Android日本語訳 のページは左上のリンクからどうぞ
ニュース
2011/11/30 Arduino-1.0リリース →arduino.cc
【開発環境(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: