Dotsduino(ドッツデュイーノ)ケース

Dotsduinoケース

Maker Faireのレポート記事でも書きましたが、DotsduinoケースのモデルデータをThingiverseにアップしました。以前にDotsduinoのキットを買ったよ〜って方は3Dプリンターで出力してみてください。3Dプリンターを持ってない人は3Dプリンターを持っている友人・知人を探してプリントしてみてください。

このデータはABSでプリントすることを前提に内径を少し大きくしています。PLAでプリントした場合、マトリクスのはめ合いが少し緩いかもしれません。その場合はテープなどをマトリクスの周りに1〜2周貼ってはめ合いを調整してください。

Dotsduino Case by arms22 - Thingiverse
http://www.thingiverse.com/thing:177871

Arduinoで遊ぼう - OAuthを使って安全につぶやくライブラリ「Stewitter」

2013年7月7日 StewitterライブラリがStewgate Uに対応しました。StewGate SG-1は7月末でサービス終了します。Stewitterライブラリをお使いの方はライブラリを更新し、トークンを新しく取得し直してください。

2012年1月15日 StewitterライブラリがArduino 1.0に対応しました。それに合わせてサンプルスケッチを書きなおしました。

イントロダクション


ArduinoからTwitterにつぶやくライブラリ「Stewitter」を作りました。OAuth認証をArduinoで実装するのは大変なので、OAuth認証を肩代りしてくれるプロキシ「StewGate U」を使ってTwitterへメッセージをポストします。

stewgate-u-log.png

StewGate U: Throw your stuff into the stewittering pot.
http://stewgate-u.appspot.com/

StewGateはアクセンス・テクノロジーのギークが作ってくれたサービスです。

株式会社アクセンス・テクノロジー - StewGate
http://omake.accense.com/wiki/StewGate


トークンを取得する


StewGateを使ってつぶやくときはユーザ名とパスワードの替わりにトークンを使います。トークンは次の手順で取得します。
  1. StewGateのページからTwitterにログインします。
  2. "連携アプリを認証"ボタンを押します。
  3. StewGateのページに戻ったらダッシュボードに移動します。
  4. ダッシュボードに移動するとトークンが表示されます。

トークンをクリックすると簡単な使い方が表示されます。
http://stewgate-u.appspot.com/api/post/

POSTデータ:
_t = 76856766df853e490ee3db911610f10e

msg = "あなたの送信したいメッセージ"
* UTF-8、URLエンコード済みにしてください。
* メッセージに "%(name)s" を含めると、トークンの名前に置換されます。


応答:
OK (ポスト成功)
エラーメッセージ (ポスト失敗)
"_t="の後のアルファベットと数字の部分がトークンなのでメモしておきましょう。
76856766df853e490ee3db911610f10e



Stewitterライブラリのインストール


次のURLからStewitterライブラリをダウンロードしてください。Arduino IDEを起動しメニューからスケッチ→ライブラリを使用→Add Library…を選択してください。

https://dl.dropboxusercontent.com/u/14188987/arduino/libraries/Stewitter.zip

またArduino 1.0.4以前をお使いの場合はZIPファイルを解凍し、Arduinoのライブラリフォルダ(~/Documents/Arduino/libraries)に直接コピーしてください。ライブラリフォルダがない場合は作成してください。

このライブラリはNeoCatさんのTwitterライブラリをベースに作成しました。

ArduinoからTwitterにPOSTするライブラリ
http://d.hatena.ne.jp/NeoCat/20090505/1241466723


サンプルスケッチ1:メッセージを送信


#include <SPI.h>
#include <Ethernet.h>
#include <Stewitter.h>

// MACアドレス
byte mac[] = {
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

// "YourToken"をあなたのトークンで書き換えてください。
Stewitter twitter("YourToken");

// メッセージ(日本語もOK)
char msg[] = "こんにちは世界!私はアルデュイーノ!";

void setup()
{
  delay(1000);

  Ethernet.begin(mac);

  Serial.begin(9600);
  Serial.println("connecting ...");
  
  // twitterに接続して、メッセージを送信
  if (twitter.post(msg)) {
    // 完了を待つ
    int status = twitter.wait();
    // status が 200なら正常に完了
    if (status == 200) {
      // レスポンスを表示
      Serial.println(twitter.response());
    } 
    else {
      Serial.print("failed : code ");
      Serial.println(status);
    }
  } 
  else {
    Serial.println("connection failed.");
  }
}

void loop()
{
}


サンプルスケッチ2:最後のメンションを取得する


#include <SPI.h>
#include <Ethernet.h>
#include <Stewitter.h>

// MACアドレス
byte mac[] = {
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

// "YourToken"をあなたのトークンで書き換えてください。
Stewitter twitter("YourToken");

void setup()
{
  delay(1000);

  Ethernet.begin(mac);

  Serial.begin(9600);
  Serial.println("connecting ...");

  // twitterに接続して、 最後のメンション(@yourname の入ったメッセージ)を取得
  if (twitter.lastMention()) {
    // 完了を待つ
    int status = twitter.wait();
    // status が 200なら正常に完了
    if (status == 200) {
      // 最後のメンションを表示
      // ex) 20100111082341|874453678|whosaysni|@yourname whats up?
      Serial.println(twitter.response());
    } 
    else {
      Serial.print("failed : code ");
      Serial.println(status);
    }
  } 
  else {
    Serial.println("connection failed.");
  }
}

void loop()
{
}



Arduinoをはじめようキット
スイッチサイエンス
売り上げランキング: 709


Arduino イーサネットシールド
スイッチサイエンス
売り上げランキング: 14,505


Arduino電力計 - 一日の消費電力を表示させる

目次
  1. Arduino電力計 - プロトタイプ
  2. Arduino電力計 - 回路図とスケッチ
  3. Arduino電力計 - サージ対策
  4. Arduino電力計 - Pachubeにデータをアップロードする
  5. Arduino電力計 - ケースに組み込む
  6. Arduino電力計 - 2系統対応の回路図とスケッチ
  7. Arduino電力計 - 分電盤に接続
  8. Arduino電力計 - 一日の消費電力を表示させる



IMGP8552

Arduino電力計のスケッチを改良して、一日の消費電力を表示できるようにしたよ。表面のスイッチで表示を切り替えれるようにしてある。スイッチは両面テープで固定した。雑ですみません。。

IMGP8553

ついでに過去8日分の消費電力も表示させたよ。これで1週間の消費電力のパターンが分かるはず。できれば時間帯別の消費電力も表示させたいところ。というのも家の電気料金メニューは利用時間帯で電気代が大きく異なるからね。朝10時から17時までの間は電気代が特に高くなるので、この時間はなるべく消費電力を抑えたい。

一日の消費電力の表示に対応したスケッチはこちら。

Download: Watt meter /w Arduino
https://code.google.com/p/arms22/downloads/detail?name=watt_meter-1.1.zip

ArduinoでキャラクタLCDに文字を表示させる

IMGP7702

Arduino IDE標準のLiquidCrystalライブラリを使ってLCDを制御する方法を解説します。このライブラリは日立のHD44780ドライバと互換性のあるLCDを制御することができます。電子部品屋さんでよく見かけるほとんどのLCDはHD44780ドライバ互換なので、このライブラリが使えます。


Arduinoに接続する


今回、秋月電子の超小型LCDキャラクタモジュールを使いました。このLCDはピン配置が変則的で「14,13,12…3,2,1,16,15」と並んでいます。データシートをよく確認して間違えないよう接続してください。

可変抵抗はLCDのコントラストを調整する為に使います。可変抵抗の真ん中のピンをLCDのVOピンに接続します。LCDに何も文字が表示されない場合は抵抗の値を調整してください。

Arduino-LCD

LCD vs Arduino
RS - ピン2
RW - GND
E - ピン3
DB4 - ピン4
DB5 - ピン5
DB6 - ピン6
DB7 - ピン7

RWピンは読み込みモードと書き込みモードを切り替えます。LCDからデータやレジスタ値を読み出す場合に使用しますが滅多に使いません。GNDに接続しておくと書き込みモードになります。

LCDにはRS,E,RW,D4〜D7の7ピンを使う4ビットモードとRS,E,RW,D0〜D7の11ピンを使う8ビットモードの2つのモードがあります。8ビットモードは4ビットモードに比べてデータ転送速度が倍になります。しかし低速なマイコンでは転送速度を上げてもあまりメリットがありません。4ビットモードを使った方が使用するピン数が減らせてワイヤリングの手間も省けるので良いでしょう。


LCDシールドキットを使う


ワイヤリングが面倒になったらLCDシールドキットを使うことをおススメします。ちょっとした文字の表示やデバッグ作業に便利なシールドです。

IMGP7705

スイッチサイエンス - LCDシールドキット
http://www.switch-science.com/products/detail.php?product_id=724


ライブラリのインポート


Arduino IDE標準のLiquidCrystalライブラリを使います。ファイルメニューから"スケッチ→ライブラリを使用→LiquidCrystal"を選ぶと自動的にインポートされます。

Arduino - LiquidCrystal Library
http://arduino.cc/en/Reference/LiquidCrystal


サンプルスケッチ


文字と数値を表示するサンプルです。begin()でキャラクタLCDの文字数と行数を指定します。print()で文字・数値を表示します。改行は無視されるので、2行目に文字を表示したい場合はsetCursor()でカーソル位置を設定します。

#include <LiquidCrystal.h>

// 接続ピンをして指定してライブラリを初期化
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);

//LCDシールドキット
//LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  // 行と列を設定
  lcd.begin(16, 2);
  // メッセージを表示
  lcd.print("Hello, Arduino!");
  // 3秒待つ
  delay(3000);
}

void loop() {
  // カーソル位置を2行目に設定
  lcd.setCursor(0, 1);
  // リセットしてからの秒数を表示
  lcd.print((float)millis() / 1000.0, 1);
  // 100ms待つ
  delay(100);
}



LCDシールドキット(青)
LCDシールドキット(青)
posted with amazlet at 13.02.22
スイッチサイエンス
売り上げランキング: 10,427


Arduinoでガジェットを作ろう!―たのしい電子工作
高橋 隆雄
秀和システム
売り上げランキング: 54,023


たのしい電子工作 Arduinoで電子工作をはじめよう!
高橋 隆雄
秀和システム
売り上げランキング: 12,603

ArduinoでSDメモリカードを読み書きする

IMGP7671

以前公開した「Arduinoで遊ぼう - SDメモリカードを読み書きする」の内容が古くなっていたので、新しく書き直しました。今回はArduino IDE標準のSDライブラリを使ってSDメモリカードを読み書きする方法を解説します。

最近のSDメモリカードは1GBを超える容量のものが非常に安価に発売されています。SDライブラリを使えばArduinoからも簡単に読み書きできるので、大規模なデータロギングに最適なストレージと言えます。


注意すべきこと


SDメモリカードの動作電圧は2.7~3.6Vです。SDカードにもよりますが書き込み時に電流は、100mAを超えて流れるものがあります。SDカードの電源は十分な容量を確保してください。

また5V動作のArduinoでSDメモリカードを使用する場合、Arduinoの出力電圧を5Vから3.3Vに変換する必要があります。今回、抵抗による分圧回路を使っていますが、信号がナマってしまってうまく通信できない場合があります。このような場合、電圧の変換には5Vトレラント機能が付いたバッファIC(74LVX245または74VHC125)や専用IC(2電源レベルシフタ)を使うことをお勧めします。

SDメモリカードには次の3種類の規格があります。
  • SD - 最大2GB。FAT12・FAT16ファイルシステムを使用。
  • SDHC - 2GB〜32GBまで。FAT32ファイルシステムを使用。
  • SDXC - 32GB〜2TBまで。exFATファイルシステムを使用。
SDライブラリはSDとSDHCのみ対応しており、SDXCの読み書きはできません。またファイルシステムはFAT16とFAT32に対応しています。FAT12やexFATでフォーマットされたカードの読み書きはできません。


ピン配列


次の図はSDメモリカードとmicroSDメモリカードのピン配列を表しています。

SD-pinout

SD端子microSD端子機能説明
91DAT2未使用
12DAT3/CSチップセレクト
23CMD/DIデータ入力
3VSSグランド
44VDD電源
55CLKシリアルクロック
66VSSグランド
77DAT0/D0データ出力
88DAT1未使用

SDカードにはSDモードとSPIモードとよばれる2つのモードがあります。SDモードはSDカードの速度を最大限にいかした転送を行うモードです。SPIモードはCS/DI/CLK/DOの4つの端子を使った転送モードです。低速なマイコンとの通信に使われます。SDライブラリはSPIモードでSDカードにアクセスします。


Arduinoに接続する


SDメモリカードとの接続にはサンハヤトのmicroSD変換基板を使いました。変換基板が手に入らない場合は、SDカードアダプタ(micorSD-SD)にヘッダピンやワイヤを直接半田付けすると良いでしょう。電圧変換には抵抗分圧回路を使いました。抵抗値は1.8KΩと3.3KΩ。
Arduino-SD-connection

Arduino vs SDメモリカード
ピン11 - DI (MOSI)
ピン12 - DO (MISO)
ピン13 - CLK (SCK)
ピン4 - CS


シールドを使ってArduinoに接続する


もっとお手軽・簡単に使いたい場合は、SDメモリカードスロットを搭載したシールドを使うと良いでしょう。例えば、イーサネットシールドワイヤレスSDシールドマイクロSDシールドなどです。これらのシールドには電圧変換用にバッファICなどが使われています。
シールドによってSDカードのCSに接続されているピンが異なるので注意すること。

IMGP7680
Arduino イーサネットシールド R3
CS -> 4


arduino-wireless-shield-sd
ワイヤレスSDシールド
CS -> 4


sparkfun-sd-shield
SparkFun マイクロSDシールド
CS -> 8



SDライブラリのインポート


Arduino IDE標準のSDライブラリを使います。ファイルメニューから"スケッチ→ライブラリを使用→SD"を選ぶと自動的にインポートされます。

Arduino - SD Library
http://arduino.cc/en/Reference/SD

Arduino IDE 1.0.x以降では、複数ファイルの読み書きが同時に行えるようになりました。

SDライブラリにはいくつか制限があります。
  • ファイル名は8文字+3文字までです。例えば「filename.txt」はOKですが、「filename_2013.text」はNGです。
  • ファイルシステムはFAT16またはFAT32のみ対応しています。
  • SDとSDHCのみ対応しています。SDXCは非対応です。


サンプルスケッチ(書き込み)


1秒間隔でアナログ入力0の値を読み取り、SDカードに書き込むサンプルです。

SD.open() の引数に FILE_WRITE を指定するとファイルを読み書きモードでオープンします。ファイルが存在しない場合は新しいファイルが作成され、すでにファイルが存在する場合は追記モードでオープンします。

print() や println() で数値や文字が書き込めます。バイナリデータを書き込む場合は、write() を使います。書き込み速度は一度に沢山のデータを書き込んだ方が速くなります。seek(0) でファイルの先頭からデータを書き込めます。

#include <SD.h>

// この値は使用しているシールドや基板に合わせて変更すること。たとえば、
// イーサーネットシールドは 4
// Adafruit のSDシールドは 10
// Sparkfun のSDシールドは 8
const int chipSelect = 4;

void setup()
{
  // シリアルポート初期化
  Serial.begin(9600);
  while (!Serial) {
    ; // USBケーブルが接続されるのを待つ。この待ちループは Leonardo のみ必要。
  }

  Serial.print(F("Initializing SD card..."));

  // SSピン(Unoは10番、Megaは53番)は使わない場合でも出力にする必要があります。
  // そうしないと、SPIがスレーブモードに移行し、SDライブラリが動作しなくなります。
  pinMode(SS, OUTPUT);

  // SDライブラリを初期化
  if (!SD.begin(chipSelect)) {
    Serial.println(F("Card failed, or not present"));
    // 失敗、何もしない
    while(1);
  }
  Serial.println(F("ok."));

  // 日付と時刻を返す関数を登録
  SdFile::dateTimeCallback( &dateTime );
}

void loop()
{
  // ファイルを開く
  File dataFile = SD.open("datalog.txt", FILE_WRITE);

  // もしファイルが開けたら値を書き込む
  if (dataFile) {
    int value = analogRead(0);
    dataFile.println(value);
    dataFile.close();
    // シリアルポートにも出力
    Serial.println(value);
  }
  // ファイルが開けなかったらエラーを出力
  else {
    Serial.println(F("error opening datalog.txt"));
  } 

  // 一秒待つ
  delay(1000);
}

void dateTime(uint16_t* date, uint16_t* time)
{
  uint16_t year = 2013;
  uint8_t month = 2, day = 3, hour = 9, minute = 0, second = 0;

  // GPSやRTCから日付と時間を取得
  // FAT_DATEマクロでフィールドを埋めて日付を返す
  *date = FAT_DATE(year, month, day);

  // FAT_TIMEマクロでフィールドを埋めて時間を返す
  *time = FAT_TIME(hour, minute, second);
}

次のように日時を返す関数を登録することで、ファイルの作成日時や変更日時が記録できます。

  // 日付と時刻を返す関数を登録
  SdFile::dateTimeCallback( &dateTime );


サンプルスケッチ(読み込み)


ファイルに書き込まれている値をシリアルモニタに出力するサンプルスケッチです。

SD.open() の引数を省略すると読み込み専用モードでオープンします。引数を省略した場合は FILE_READ を指定したことと同じになります。

available() は現在の位置から何バイト読み込めるか返します。available() の戻り値は int 型で読み込めるバイト数が32767を超える場合、戻り値は常に32767になります。ファイルのサイズは size() で取得できます。

read() は1byte読み出します。read(buffer, length) とした場合、lengthバイト分のデータをbufferに読み込みます。

position() は現在の読み込み位置を返します。seek() で読み込み位置を移動できます。

#include <SD.h>

// この値は使用しているシールドや基板に合わせて変更すること。たとえば、
// イーサーネットシールドは 4
// Adafruit のSDシールドは 10
// Sparkfun のSDシールドは 8
const int chipSelect = 4;

void setup()
{
  // シリアルポート初期化
  Serial.begin(9600);
  while (!Serial) {
    ; // USBケーブルが接続されるのを待つ。この待ちループは Leonardo のみ必要。
  }

  Serial.print(F("Initializing SD card..."));

  // SSピン(Unoは10番、Megaは53番)は使わない場合でも出力にする必要があります。
  // そうしないとSPIがスレーブモードに移行し、SDライブラリが動作しなくなります。
  pinMode(SS, OUTPUT);

  // SDライブラリを初期化
  if (!SD.begin(chipSelect)) {
    Serial.println(F("Card failed, or not present"));
    // 失敗、何もしない
    while(1);
  }
  Serial.println(F("ok."));

  // ファイルを開く
  File dataFile = SD.open("datalog.txt");

  // もしファイルが開けたら値をシリアルポートに出力する
  if (dataFile) {
    // 64byte単位で読み出す
    byte buffer[64];
    while (dataFile.available()) {
      int length = dataFile.available();
      if(length > 64){
        length = 64;
      }
      dataFile.read(buffer, length);
      Serial.write(buffer, length);
    }
    // 1byte単位で読み出す
    // while (dataFile.available()) {
    // Serial.write(dataFile.read());
    // }
    dataFile.close();
  }
  // ファイルが開けなかったらエラーを出力する
  else {
    Serial.println(F("error opening datalog.txt"));
  }
}

void loop()
{
}


参考リンク


SDメモリカード - Wikipedia
http://ja.wikipedia.org/wiki/SDSDメモリカード

ArduinoでマイクロSDカードを使う - ラジオペンチ
http://radiopench.blog96.fc2.com/blog-entry-332.html




Arduino ワイヤレスSDシールド
スイッチサイエンス
売り上げランキング: 71,943



Dotsduino(ドッツデュイーノ)ハンダづけ

2013/2/18
Dotsduinoバージョン2.0に合わせてはんだづけ手順を更新しました。


目次
イントロダクション



Dotsduinoのはんだづけの手順を解説します。Dotsduinoにはいくつかのバージョン(1.2と2.0)がありますが、はんだづけの手順はほとんど同じです。

バージョン1.2では内蔵発振器を使っていたため、スケッチのアップロードに時々失敗することがありました。バージョン2.0からはセラミック発振子を採用し、スケッチのアップロードに失敗しないようになりました。

バージョン2.0ではセラミック発振子をはんだづけを忘れないでください。セラミック発振子のはんづけを忘れると、マイコンが動作せず、スケッチのアップロードに失敗してしまいます。


部品リスト


まずは足りない部品がないか確認しましょう。

IC1ATmega328P1個
R1カーボン抵抗 10KΩ1個
R2~R9カーボン抵抗 100Ω8個
C1~C3積層セラミックコンデンサ 0.1uF3個
ピンヘッダ 6ピン1個
8x8ドットLEDマトリクス1個
Dotsduino基板1枚
U1セラミック発振子 8MHz※11個

※1...セラミック発振子はバージョン2.0のみ付属します。バージョン1.2では内蔵発信器を使用しているのでセラミック発振子は付属しません。


ハンダづけ(バージョン1.2)


まずは背の低い部品=カーボン抵抗からハンダづけします。R1は10KΩ、R2~R9は100Ωです。R1のみ10KΩですので間違えずハンダづけしましょう。
Dotsduino v1.2

次にICとコンデンサ、ピンヘッダをハンダづけします。ICの向きに注意しましょう。写真右側にICの凹みがくるようにしてはんだづけします。スケッチを書き換えるつもりの人はこの段階で、スケッチを書き込めるか確認しましょう。
バージョン2.0をご購入の方はセラミック発振子のはんだづけを行ってからスケッチの書き換えを行ってください。
Dotsduino v1.2

ドットマトリクスのハンダづけの前に、ドットマトリクスの4辺のうち、凹んだ2辺の内側の凸をカッターナイフで切り取ります。こうすることでDotsduino基板がドットマトリクスの内側にすっぽり収まるようになります。
Dotsduino v1.2

最後にドットマトリクスをハンダづけします。ドットマトリクスはDotsduino基板の裏側に描かれたシルクと向きを合わせてハンダづけしましょう。
Dotsduino v1.2

Dotsduino v1.2


ハンダづけ(バージョン2.0)


はんだづけの手順はバージョン1.2とほとんど同じです。

IMGP7711

セラミック発振子のはんだづけを忘れずに!
IMGP7713

IMGP7718


以上で完成です!
IMGP7719

Dotsduino(ドッツデュイーノ)のスケッチと回路図

2013/6/19
Dotsライブラリに点灯パターンが反転する不具合が見つかりました。6/18以前のライブラリをお使いの方は新しいバージョンをダウンロードしてお使いください。


2013/2/18
過去のバージョンの組立説明書と回路図を追加しました。


目次
イントロダクション


Dotsduino

Dotsduino(ドッツデュイーノ)の組立説明書と回路図、ライブラリとサンプルスケッチを公開します。

Dotsduino組み立てキット説明書-1.2c.pdf
Dotsduino組み立てキット説明書-1.2d.pdf
Dotsduino組み立てキット説明書-1.2e.pdf
Dotsduino組み立てキット説明書-2.0a.pdf


回路図


dotsduino-v2.0b
Dotsduinoはその名通り、Arduino互換機として作られています。ArduinoシリーズだとArduino Pro 8MHz 3.3Vが一番近い回路構成になっています。Dotsduinoは電池駆動を想定しているので電圧レギュレータは搭載していません。凡そ2.7V~5Vの範囲で動作します。スケッチの書き込みには別途USBシリアルアダプタが必要です。

dotsduino-v1.2c.pdf
dotsduino-v1.2d.pdf
dotsduino-v1.2e.pdf
dotsduino-v2.0a.pdf
dotsduino-v2.0b.pdf


Arduino Software


Dotsduinoのソフトウェア(スケッチ)はArduino Softwareを使用して作成します。DotsduinoはArduino互換機として動作するので、Arduinoのスケッチがそのまま動作します。Arduinoソフトウェアはバージョン1.0以降をお使いください。Arduinoソフトウェアは以下のURLからダウンロードできます。

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


Dotsライブラリ


Dotsduinoに搭載されている8x8LEDドットマトリクスをダイナミック点灯する為のライブラリ「Dots」を用意しました。ライブラリにはサンプルスケッチ(ハートとかインベーダなど)が含まれています。これらサンプルを少し修正することで好きなパターンを表示させることができます。

Dotsライブラリ
https://dl.dropbox.com/u/14188987/Products/Dots/Dots.zip

ライブラリはArduinoのスケッチブックディレクトリ(Macは"ユーザ名/Documents/Arduino/"、Windowsは"ユーザ名¥My Documents¥Arduino¥")のlibrariesディレクトリにコピーしてください。


サンプルスケッチ


Dotsライブラリには次のサンプルスケッチが含まれています。
  • Dotsduinoデモ(dotsduino_demo)
  • フリップ(flip_animation)
  • ♥ビート(heartbeat)
  • Hello Matrix(hello_matrix)
  • インベーダー(inverder)
  • インベーダーUFO(inverder_ufo)
  • インベーダーカニ(inverder_kani)
  • スクロール(scroll_animation)
  • 波(wave_animation)
"ファイル→スケッチの例→Dots"からサンプルスケッチを開けます。パターンを変更したい場合はベースとなるサンプルを開いて、全文コピーし、新しいスケッチに貼付けてください。

Dotsduinoデモを書き込む場合は、Bounceライブラリをあらかじめインストールしておいてください。

Arduino Playground - Bounce
http://playground.arduino.cc/code/bounce


アップロード


スケッチを作成したらアップロードします。USBシリアルアダプタをDotsduinoに接続します。コネクタの向きに注意してください。DotsduinoとUSBシリアルアダプタのコネクタ部分に書かれている文字が一致するよう差し込んでください。
"ツール→マイコンボード"から"Arduino Pro or Pro Mini (3.3V 8MHz) /w ATmega328"を選択してください。次に"ツール→シリアルポート"からUSBシリアルアダプタのポートを選択します。最後に"マイコンボードに書き込む"ボタンを押して、アップロードします。


おまけ


dotsduino実態配線図

ユニバーサル基板で作ってみたい人は↑の実態配線図を参考にしてください。キットと違って電流制限用の抵抗は省略しています。


参考リンク


Arduino 日本語リファレンス
http://www.musashinodenpa.com/arduino/ref/

Arduinoチュートリアル 基礎編
http://www.musashinodenpa.com/arduino/ref/index.php?f=2



超薄型 両面 ユニバーサル基板(黒)  t=0.4mm  230x320mm 金フラッシュ
プリント基板センターPB
売り上げランキング: 62497


Arduinoをはじめよう
Arduinoをはじめよう
posted with amazlet at 10.11.22
Massimo Banzi
オライリージャパン
売り上げランキング: 4059


Arduino Uno
Arduino Uno
posted with amazlet at 10.11.22
スイッチサイエンス
売り上げランキング: 10189

とても見やすく分かりやすいArduinoボードのピン配列図

2013/2/13 追記
Arduino Leonardo、Esploraのピン配列図も公開されました!


とても見やすく分かりやすいArduinoボードのピン配列図がArduino Forumで公開されているよ。

Arduino_uno_Pinout


この図を描いたのはイタリアのpighixxxさん。オーストラリアのGraynomadさんのArduino Dueのピン配列図に触発されて描いたみたい。

pighixxxさんはArduino Uno・MEGA・Nano・Miniの図や、ATTiny・ATmega328・mATmega640・ATmega1280などIC・パッケージ別の図も描いている。現在はArduino Leonardoの図を制作中。Arduino Leonardo・Esploraの図も公開している。

atmega328_qtfp

ATmega328のQFPパッケージのピン配列図。MacBookのパームレレストに貼っておきたくなります。


ボードのピン配列図(PDFファイル)は次のURLからダウンロードできます。

Unofficial Arduino Micro Pinout Diagram
Unofficial Esplora Pinout Diagram
Unofficial Leonardo Pinout Diagram
Arduino UNO Pinout Diagram - Arduino Forum
Arduino MEGA Pinout Diagram - Arduino Forum
Arduino NANO Pinout Diagram - Arduino Forum
Arduino MINI Pinout Diagram - Arduino Forum
Due pinout diagram - Arduino Forum

Arduinoボードの違いまとめ(Uno, MEGA 2560, Leonardo, Due)

IMGP7638

2013/2/4
デジタル入出力として使えるピンについて追記しました。またソフトウェアシリアルの制限についても追記しました。

2013/2/10
Arduinoボードのピン配列図を見ながら確認すると分かりやすいよ。


Arduino公式ページによると、現在Arduinoボードは15種類ほど存在します。搭載されているマイコンや動作電圧、動作クロック、形状の違いはあるものの、マイコン別にみると次の4つに分類できます。
  • ATmega328系
    Arduino Uno, Duemilanove, Mini, LilyPad, Nano, Pro, Pro Mini, Fio
  • ATmega2560
    Arduino MEGA 2560, Mega ADK
  • ATmega32u4
    Arduino Leonardo, Micro, LilyPad USB
  • AT91SAM3X8E
    Arduino Due
これだけボードの数が増えるとボード毎の細かな違いを把握するのが難しくなります。そこで搭載されているマイコン別にArduinoボードを分類し、その違いを表にまとめてみました。


基本スペック


それぞれのマイコンを代表してUno, Leonardo, MEGA 2560, Dueの違いについてまとめました。まずはおさらいもかねて基本スペックの比較から。

UnoLeonardoMEGA 2560Due
マイクロコントローラATmega328ATmega32u4ATmega2560AT91SAM3X8E
動作電圧5V5V5V3.3V
デジタル入出力
()内はPWM出力
20本(6本)24本(7本)70本(15本)70本(12本)
アナログ出力(DAC)---2本(12bit)
アナログ入力6本(10bit)12本(10bit)16本(10bit)12本
フラッシュメモリ32KB32KB256KB512KB
SRAM2KB2.5KB8KB96KB
EEPROM1KB1KB4KB-
クロック16MHz16MHz16MHz84MHz
参考価格※12,520円2,100円※24,910円4,980円
※1...2013/1/25現在、スイッチサイエンスでの価格
※2...ピンソケットあり版の価格


デジタル入出力の本数がオフィシャルサイトと異なっていますが、これはアナログ入力をデジタル入出力として使った場合を考えて、この様に記載しています。
Dueの動作電圧は3.3V。既存のシールドを使う場合は動作電圧に注意する必要があります。


入出力ピン


次の表は各機能に対応するピンを表しています。

UnoLeonardoMEGA 2560Due
デジタル入出力0〜13
14〜19(A0〜A5)
0〜13
14(MISO)
15(SCK)
16(MOSI)
17(SS)
18〜23(A0〜A5)
0〜53
54〜69(A0〜A15)
0〜53
54〜65(A0〜A11)
66(DAC1)
67(DAC2)
68(CANRX)
69(CANTX)
PWM出力3, 5, 6, 9, 10, 113, 5, 6, 9, 10, 11, 132〜13
44〜46
2〜13
アナログ入力A0〜A5A0〜A5
A6〜A11(4, 6, 8, 9, 10, 12)
A0〜A15A0〜A11
DAC出力---DAC1
DAC2
LED13131313

いくつかのアナログ入力ピンはデジタルピンとして使えます。例えばUnoのアナログ入力ピンA0〜A5はデジタルピンの14〜19として使えます。
Leonardoのアナログ入力ピンは12本あり、いくつかのデジタルピンはアナログ入力ピンとして使えます。括弧内はアナログ入力ピンとして使えるデジタルピンを表しています。
DueにはDAC出力が2本あり、音声出力用のライブラリが提供されています。


外部割り込み


次の表は割り込み番号に対応するピンを表しています。

ボードINT0INT1INT2INT3INT4INT5
Uno23----
Leonardo3201--
MEGA 25602321201918
Due※1下記を参照

INT0とINT1に対応するピンがUnoとLeonardoでは入れ替わっているので注意しましょう。
Dueの外部割り込みはすべてのデジタルピンで使えます。attachInterrupt()にピン番号を直接指定して使います。


ハードウェアシリアル


次の表はハードウェアシリアルの送信(TX)と受信(RX)のピンを表しています。

インスタンスUnoLeonardoMEGA 2560Due
Serial0 (RX), 1 (TX)下記参照0 (RX), 1 (TX)0 (RX), 1 (TX)
Serial1-0 (RX), 1 (TX)19 (RX), 18 (TX)19 (RX), 18 (TX)
Serial2--17 (RX), 16 (TX)17 (RX), 16 (TX)
Serial3--15 (RX), 14 (TX)15 (RX), 14 (TX)

LeonardoのSerialはPCとのUSBシリアル通信に使われます。またDueにはUSBシリアル通信専用のSerialUSBがあります。


ソフトウェアシリアル


次の表はソフトウェアシリアルに使えるピンの一覧です。Leonardo・MEGA 2560では受信に使えるピンに制限があります。

受信(RX)送信(TX)
Uno0〜190〜19
Leonardo8, 9, 10, 11
14(MISO), 15(SCK), 16(MOSI)
0〜23
MEGA 256010, 11, 12, 13, 50, 51, 52, 53
62, 63, 64, 65, 66, 67, 68, 69
0〜69
Due0〜690〜69



SPI


次の表はSPIのMOSI・MISO・SCK・SSのピンを表しています。

ボードMOSIMISOSCKSS
(slave)
SS
(master)
Uno11 or
ICSP-4
12 or
ICSP-1
13 or
ICSP-3
10-
LeonardoICSP-4ICSP-1ICSP-3--
MEGA 256051 or
ICSP-4
50 or
ICSP-1
52 or
ICSP-3
53-
DueICSP-4ICSP-1ICSP-3-4, 10, 52

LeonardoとDueのMOSI・MISO・SCKピンはICSPヘッダにあります。

Isp_headers.svg
Wikipedia - Atmel AVRより抜粋


TWI(I2C)


次の表はTWI(I2C)のデータ(SDA)とクロック(SCL)のピンを表しています。

インスタンスUnoLeonardoMEGA 2560Due
WireA4 (SDA)
A5 (SCL)
2 (SDA)
3 (SCL)
20 (SDA)
21 (SCL)
20 (SDA)
21 (SCL)
Wire1---SDA1
SCL1

ArduinoボードのR3(リビジョン3)からAREFピンの隣にSDAピン、SCLピンが追加されました。DueにはTWI (I2C) インターフェースが2つ、AREFピンの隣にSDA1ピンとSCL1ピンがあります。


参考リンク


Arduino Board Uno
Arduino Board Leonardo
Arduino Board Mega 2560
Arduino Board Due


Arduino Leonardo(+Headers)
Arduino Leonardo(+Headers)
posted with amazlet at 13.02.01
GHEO SA
売り上げランキング: 15,846


Arduino Mega 2560 Rev3
Arduino Mega 2560 Rev3
posted with amazlet at 13.02.01
GHEO SA
売り上げランキング: 4,708


Arduinoエントリーキット
TechShare
売り上げランキング: 1,875

目次:Arduino

当ブログのArduinoに関する記事が増えてきましたので目次を作りました。ここではArduino関連の記事で特におすすめの記事を掲載していきます(すべての記事を読みたい方はサイドメニューのカテゴリ「Arduino」をクリックしてください)。
また、これだけは押さえておきたいArduino関連のサイト、ショップ、ブログのリンクも掲載していきます。


続きを読む

Ads by Google
最近の記事
カテゴリ
Arduino (114)
電子工作 (115)
スタバッテルミン (5)
スタバカップアンプ (18)
電光掲示板 (7)
イベント (60)
太陽電池 (12)
ニキシー管 (19)
ARM (8)
PIC (20)
USBデバイス (7)
V850 (17)
Xfind (6)
プログラミング (5)
Android (3)
未分類 (25)
カメラ (6)
本 (18)
mbed (2)
SoftModem (0)
3Dプリンタ (36)
Amazon.co.jp
最近のコメント
arms22:ArduinoでSDメモリカードを読み書きする (09/30)
arms22:ArduinoでSDメモリカードを読み書きする (09/22)
:ArduinoでSDメモリカードを読み書きする (09/22)
arms22:オープンソースのPCBCAD「KiCad」。 (09/21)
arms22:ArduinoでSDメモリカードを読み書きする (09/21)
マクオ:ArduinoでSDメモリカードを読み書きする (09/21)
arms22:Arduinoで遊ぼう - SDメモリカードを読み書きする(廃止) (09/09)
nisi:Arduinoで遊ぼう - SDメモリカードを読み書きする(廃止) (09/04)
三ツ星トラフィック:MPPT太陽電池充電(7) (08/29)
nameless911:Ogaki Mini Maker Faire 2014に行ってきたよ。 (08/28)
リンク
Ads by Google
以前の記事
プライバシーポリシー
当サイトでは、第三者配信による広告サービスを利用しています。このような広告配信事業者は、ユーザーの興味に応じた商品やサービスの広告を表示するため、当サイトや他サイトへのアクセスに関する情報 (氏名、住所、メール アドレス、電話番号は含まれません) を使用することがあります。このプロセスの詳細やこのような情報が広告配信事業者に使用されないようにする方法については、ここをクリックしてください。