なんでも作っちゃう、かも。

Arduino/Make/フィジカルコンピューティング/電子工作あたりで活動しています。スタバの空きカップを使ったスタバカップアンプなど製作。最近はもっぱらArduinoと3Dプリンタの自作に興味があります。

Arduinoで遊ぼう - 秋月電子32x16LEDドットマトリクス(3)

Posted by arms22 on 2009年02月23日 20  1

以前、ここで公開した秋月のLEDドットマトリクス用のライブラリについて幾つか質問をいただいたので、FAQとして公開します。

Q1.任意の画像をLEDドットマトリクスに表示させるには一体どうしたらよいのでしょうか?

次の図はLEDドットマトリクスに表示するデータのフォーマットを表しています。
AkiMatrix表示データフォーマット
1バイトのデータが縦1ドット、横8ドットを表しています。1ビットがLEDドットマトリクスの1ドットに対応しています。上記データは縦8ドット、横8ドット分のデータで'A'という文字を表しています。表示データ作成用にエクセルシートを用意しました。ご利用ください。

マトリクスデータ生成用シート.xls
http://xfind.hp.infoseek.co.jp/electric/arduino/matrix_data_gene.zip


Q2.任意の座標に表示データを転送することは可能ですか?

現在のbitBlt関数は8の倍数以外のX座標への転送をサポートしていません。Y座標については任意の座標への転送は可能です。しかしクリッピング処理は行っていない為、画面外への転送が発生する場合、ユーザ側でクリッピング処理を行ってください。


Q3.LEDドットマトリクスを2枚カスケード接続して、64x16のディスプレイとして表示できますか?

AkiMatrix.hの次のマクロをカスケード接続するLEDドットマトリクスの数に応じて変更してください。例えば3枚カスケード接続する場合、次のようにマクロの値を変えます。

#define AKI_MATRIX_CASCADE	(3)


最後にAkiMatrixのバージョン005を公開しました。
https://github.com/arms22/arms22/tree/master/AkiMatrix
http://dl.dropbox.com/u/14188987/isweb/arduino/AkiMatrix005.zip
http://xfind.hp.infoseek.co.jp/electric/arduino/AkiMatrix005.zip

002からの主な変更点は次の通りです。
  • hsync関数の高速化
  • Arduino 013でコンパイルできない問題に対応
  • シフトクロック速度設定マクロ(AKI_MATRIX_tCLOCK)の追加




Arduinoで遊ぼう - LEDドットマトリクス(2)
http://arms22.blog91.fc2.com/blog-entry-210.html

Arduinoで遊ぼう - LEDドットマトリクス
http://arms22.blog91.fc2.com/blog-entry-206.html



Arduinoをはじめようキット
スイッチサイエンス
売り上げランキング: 2431
おすすめ度の平均: 4.5
4 USBはB端子です
5 ここから大ジャンプは無理だけど


Arduinoで遊ぼう - 秋月電子32x16LEDドットマトリクス(2)

Posted by arms22 on 2009年01月12日 0  0

前回の続き。今回は秋月電子のLEDドットマトリクス表示基板を3つカスケード接続して、Arduinoで制御しています。
Arduino Duemilanove with 96×16 LED Matrix Cascade
前回リリースしたLEDドットマトリクス表示基板制御用のライブラリを更新しました。カスケード接続する表示基板の数に合わせて、ヘッダファイルの次のマクロの値を変更します。

#define AKI_MATRIX_CASCADE	(1)


サンプルスケッチ
#include <AkiMatrix.h>

/*
  Hello Matrix
 by arms22 <http://arms22.blog91.fc2.com/>
 
 Demonstrates the use of the AkiMatrix library
 
 pin 0: sin1 (row)
 pin 1: sin2 (led1)
 pin 2: sin3 (led2)
 pin 3: clk
 pin 4: latch (inverted)
 pin 5: strob
 */
AkiMatrix myMatrix = AkiMatrix(0,1,2,3,4,5);

void setup()
{
  int x,y;
  for(y=0;y<AKI_MATRIX_NUMBER_OF_ROWS;y++){
    for(x=y&1;x<AKI_MATRIX_NUMBER_OF_COLS;x+=2){
      myMatrix.bitWrite(x,y,HIGH);
    }
  }
  myMatrix.setOutputEnable(true);
}

void loop()
{
  myMatrix.hsync();
  delay(1);
}


AkiMatrix002.zip
http://xfind.hp.infoseek.co.jp/electric/arduino/AkiMatrix002.zip

Arduinoで遊ぼう - LEDドットマトリクス
http://arms22.blog91.fc2.com/blog-entry-206.html



Arduinoをはじめよう (Make:PROJECTS)
Massimo Banzi
オライリージャパン
売り上げランキング: 3176



Arduinoで遊ぼう - 秋月電子32x16LEDドットマトリクス

Posted by arms22 on 2009年01月03日 9  0

Arduino Duemilanove with 32×16 LED Matrix

秋月電子の32x16LEDドットマトリクス表示基板をArduino Duemilanoveで制御してみました。制御プログラムはArduino IDEで使えるようライブラリにしています。AkiMatrix001.zipを下記URLからダウンロードし、ご自由にお使いください。

Akiduki 32×16 LED Matrix sch
LEDドットマトリクス表示基板の回路図です。表示基板上にはシフトレジスタ(74VHC595)2つ、トランジスタアレイ(TD62783)2つ、16bit定電流LEDドライバ(TB62706)2つが実装されています。表示基板はSIN1、SIN2、SIN3、CLOCK、LATCH、STROBEの6つの信号を使って制御します。

ライブラリの使い方
1.AkiMatrix001.zipを展開し、arduino-0012/hardware/librariesにコピーしてください。
2.Arduino IEDを起動し、メニューからSketch > Import Library > AkiMatrixを選択してください。

サンプルスケッチ

#include <AkiMatrix.h>

const uint8_t hello_tbl[][8] = {
  {9,9,201,47,233,41,201,0},
  {0,20,148,85,84,84,148,0},
  {0,0,1,2,2,2,1,0},
  {0,0,0,0,0,0,0,0},
};

const uint8_t the2009_tbl[][8] = {
  {0,0,0,0,0,0,0,0},
  {0,192,32,0,192,32,224,0},
  {0,24,165,165,164,164,25,0},
  {0,99,148,148,228,132,99,0},
};

/* 
  pin 0: sin1 (row)
  pin 1: sin2 (led1)
  pin 2: sin3 (led2)
  pin 3: clk
  pin 4: latch (inverted)
  pin 5: strob
*/
AkiMatrix myMatrix = AkiMatrix(0,1,2,3,4,5);

void setup()
{
  myMatrix.bitBlt( 0,0,hello_tbl[0],8,8);
  myMatrix.bitBlt( 8,0,hello_tbl[1],8,8);
  myMatrix.bitBlt(16,0,hello_tbl[2],8,8);
  myMatrix.bitBlt(24,0,hello_tbl[3],8,8);
  
  myMatrix.bitBlt( 0,8,the2009_tbl[0],8,8);
  myMatrix.bitBlt( 8,8,the2009_tbl[1],8,8);
  myMatrix.bitBlt(16,8,the2009_tbl[2],8,8);
  myMatrix.bitBlt(24,8,the2009_tbl[3],8,8);
  
  myMatrix.setOutputEnable(true);
}

void loop()
{
  myMatrix.hsync();
  delay(1);
}
コンストラクタには表示基板制御用の端子を6つ(SIN1、SIN2、SIN3、CLOCK、LATCH、STROBE)指定します。

setup関数で表示するパターンを書き込みます。ver001ではbitBlt関数、bitWrite関数をサポートしています。bitBlt関数はまとまったデータの書き込みに、bitWrite関数はドット1つ1つ指定してデータを書き込みます。マトリクスの座標系は左上原点です。
bitmapのフォーマットは次の通り。
dotmatrix_bitmapf.png

setOutputEnable関数でマトリックスの表示を有効にします。
loop関数ではhsync関数を繰り返し呼び出す必要があります。hsync関数を1回呼び出す毎に1行分のデータをシフトレジスタに転送します。


AkiMatrix001
http://xfind.hp.infoseek.co.jp/electric/arduino/AkiMatrix001.zip

サンプルスケッチ: Hello 2009
http://xfind.hp.infoseek.co.jp/electric/arduino/sketch_081230a.zip

Arduinoで遊ぼう - フルカラーLED
http://arms22.blog91.fc2.com/blog-entry-196.html

Arduino - LibraryTutorial
http://arduino.cc/en/Hacking/LibraryTutorial


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


該当の記事は見つかりませんでした。