Arduino 1.0 リリース

arduino-1_0-screenshot.png

11月30日にArduino 1.0がリリースされました。1つの節目としてさまざまな変更が加えられおり、標準ライブラリや内部構造が大きく変更されています。既存のスケッチやライブラリは少なからず手を入れないと動作しない場合が多いようです。。僕が公開しているスケッチやライブラリも修正しないと動かないもがほとんどです。。順次対応していきます。

Arduino Software
http://arduino.cc/en/Main/Software

Arduino Software Release Notes
http://arduino.cc/en/Main/ReleaseNotes


開発環境

  • 新しい拡張子
    従来の .pde から .ino に変わりました。"Arduino"の最後の3文字、"ino"の部分だそうです。
  • 新しいツールバーアイコンに新しいカラースキーム
  • 選択されているボードとシリアルポートの表示
  • プログレスバーの追加
    コンパイルとアップロードの進捗が画面右下に表示されます。また環境設定で compilation と upload にチェックを入れておくとコンパイルとアップロードの詳細情報がコンソールに表示されます。


コア/標準ライブラリ

  • Serial送信の非同期化
    Serial.print()などデータの送信はバックグラウンドで行われるようになりました。Serial.flush()は受信データを破棄する処理から、送信データがすべて送信されるまで待つ処理に変更されました。
  • Serial.print(byteVal)は数値を文字として送信
    byte型を数値のまま送信したい場合は Serial.write(byteVal) を使います。あわせてBYTEキーワードも廃止されました。
    From:
    Serial.print(val, BYTE);
    or
    Serial.print(byteVal);
    To:
    Serial.write(byteVal);

  • Streamクラスに文字列パース関数を追加
    データを検索する find() と findUntil()、文字を数値に変換する parseInt() と parseFloat()、タイムアウト付きの読み込み関数 readBytes()とreadBytesUntil()が追加されました。setTimeout()を使ってタイムアウト時間を設定します。
      find(target);
    findUntil(target,term);
    readBytes(buffer,length);
    readBytesUntil(term,buffer,length);
    parseInt();
    parseFloat();
    setTimeout(timeout);

  • SoftwareSerialクラスの再実装
    NewSoftSerial が標準ライブラリとして取り込まれました。NewSoftSerialは複数のシリアルポートを制御することができます。受信できるのは1度に1つのポートだけです。
  • プログラムメモリに格納された文字列のプリントに対応
    次のように F() マクロで文字列をかこってやるとプログラムメモリから文字列が読み出されます。
    Serial.print(F("hello world")).

  • Stringクラスの再実装
    より安定したメモリ効率の良いバージョンになりました。
  • EthernetライブラリにDHCPとDNSのサポート追加
    begin(macAddress)とするとDHCPでIPアドレスを割り当てられます。localIP()でDHCPで割り当てられたIPアドレスが取得できます。Clientの接続はホスト名を指定して接続することができます。またいくつかのクラスにEthernetプリフィクスが追加されました。ClientはEthernetClient、ServerはEthernetServer、UDPはEthernetUDPに変更さました。IPアドレスを表す IPAddress クラスが追加されました。
    DHCPによるIPアドレスの割り当て
    Ethernet.begin(macAddress);
    クライアントの接続 From:
    Client client(server, 80);
    if(client.connect())
    To:
    EthernetClient client;
    if(client.connect("www.google.com",80))

  • UDP API変更
    他のストリーム系ライブラリと同様 write()、print()、println() に統一されました。データの送信はbeginPacket()とendPacket()で囲む必要があります。受信パケットのチェックはparsePacket()。送信元情報を取得する remoteIP() と remotePort() が追加されました。
    EthernetUDP udp;
    udp.beginPacket(ip,port);
    udp.write(data);
    udp.endPacket();

  • Wire API変更
    send()→write()、receive()→read()。Streamクラスを継承しているので print() や println() なども使えます。
    From:
    Wire.send(0x10);
    Wire.receive();
    To:
    Wire.write((byte)0x10);
    Wire.read();

  • SDライブラリの複数ファイルオープン対応
    ディレクトリを操作するための関数 isDirectory()、openNextFile()、rewindDirectory() が追加されました。


内部

  • Arduino APIを定義したヘッダの名称変更
    WProgram.h→Arduino.h に変更されました。以下のようにARDUINOマクロをチェックするコードを入れることでArduino 0022以前のバージョンと互換性を持たせることができます。
    #if defined(ARDUINO) && ARDUINO >= 100
    #include "Arduino.h"
    #else
    #include "WProgram.h"
    #endif

  • Printクラスのwrite()、print()、println()の戻り値をvoid型からsize_t型に変更
    write() は書き込まれたサイズを返します。Printクラスを継承するクラスは次のようにwrite()の戻り値を書き換え必要があります。
    From:
    void write(uint8_t);
    To:
    size_t write(uint8_t);

  • ネットワークアクセス用の抽象クラスClient、Server、UDPを追加
    EthernetClient、EthernetServer、EthernetUDPはこれからのクラスを継承しています。
  • Arduinoボードのピン定義ファイルを追加
    harware/variantsディレクトリ以下にArduinoボード毎のピン割り当てを定義したファイルを配置しています。
  • pins_arduino.h にArduinoボードの仕様に関する情報を追加(デジタル・アナログピンの数やSPIやI2Cの位置など)
    #define NUM_DIGITAL_PINS
    #define NUM_ANALOG_INPUTS

    const static uint8_t SS;
    const static uint8_t MOSI;
    const static uint8_t MISO;
    const static uint8_t SCK;

    const static uint8_t SDA;
    const static uint8_t SCL;
    const static uint8_t LED_BUILTIN;



関連情報


Arduino 1.0 now available.
http://arduino.cc/blog/2011/11/30/arduino-1-0-now-available/

Arduino IDEが新しくなりました(その2)
http://www.eleki-jack.com/FC/2011/12/arduino-ide2.html

Arduino IDEが新しくなりました(その1)
http://www.eleki-jack.com/FC/2011/12/arduino-ide1.html

オープンソースの自作マイコンシステムArduino、ソフトウェアバージョン1.0がリリースされる
http://sourceforge.jp/magazine/11/12/02/0444216

Arduino 1.0 is Out: Here’s What You Need To Know
http://blog.makezine.com/archive/2011/12/arduino-1-0-is-out-heres-what-you-need-to-know.html

Initial Review ? Arduino v1.0 IDE
http://tronixstuff.wordpress.com/2011/12/10/initial-review-arduino-v1-0-ide/


Ads by Google

コメント

Secret

Ads by Google
最近の記事
カテゴリ
Arduino (114)
電子工作 (112)
スタバッテルミン (5)
スタバカップアンプ (17)
電光掲示板 (7)
イベント (58)
太陽電池 (12)
ニキシー管 (19)
ARM (8)
PIC (20)
USBデバイス (7)
V850 (17)
Xfind (6)
プログラミング (5)
Android (3)
未分類 (25)
カメラ (6)
本 (18)
mbed (2)
SoftModem (0)
3Dプリンタ (30)
Amazon.co.jp
最近のコメント
arms22:Arduinoで遊ぼう - iPhoneのオーディオ端子を使って通信をする (04/17)
radical bird:Arduinoで遊ぼう - iPhoneのオーディオ端子を使って通信をする (04/15)
arms22:ABSプリント時の反り対策 (04/08)
質問です!:ABSプリント時の反り対策 (04/08)
arms22:Arduinoで遊ぼう - iPhoneのオーディオ端子を使って通信をする (04/08)
radical bird:Arduinoで遊ぼう - iPhoneのオーディオ端子を使って通信をする (04/08)
ぼおん:ABSプリント時の反り対策 (04/01)
arms22:Arduinoで遊ぼう - iPhoneのオーディオ端子を使って通信をする (03/26)
radical bird:Arduinoで遊ぼう - iPhoneのオーディオ端子を使って通信をする (03/26)
arms22:Arduinoで遊ぼう - iPhoneのオーディオ端子を使って通信をする (03/25)
リンク
Ads by Google
以前の記事
プライバシーポリシー
当サイトでは、第三者配信による広告サービスを利用しています。このような広告配信事業者は、ユーザーの興味に応じた商品やサービスの広告を表示するため、当サイトや他サイトへのアクセスに関する情報 (氏名、住所、メール アドレス、電話番号は含まれません) を使用することがあります。このプロセスの詳細やこのような情報が広告配信事業者に使用されないようにする方法については、ここをクリックしてください。