Arduino Wiki トップページ  Index  Search  Changes  RSS  Login

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リリース

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)をチェックするといいようです。

pt-1995.jpg

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%)。

Last modified:2011/12/28 02:59:29
Keyword(s):[新着情報]
References: