SSブログ

aitendoのドットマトリック表示器(32x16)を使ってみた [電子工作]

少し前に購入した aitendo のドットマトリック表示器(32x16)を使ってみたので、リハビリを兼ねてブログへ記してみたいと思います。

今回使用したドットマトリック表示器(32x16)はこれになります。
http://www.aitendo.com/product/14111
aiten_matled_00.jpg

・正面
aiten_matled_01.jpg

・裏面
aiten_matled_02.jpg

LEDが搭載されている基板と制御用基板の2枚が重ね合わせてあります。
aiten_matled_04.jpg

搭載されているLEDは各列で上方の15個と下端の1個でパターンが違うようで、2種類のLEDが使われています。
aiten_matled_05.jpg

電源や制御機器を接続するため、裏面にコネクタがあります。
写真のCN2は2枚目以降のマトリクスLEDを接続するための出力コネクタですが、形状、並びは入力用と同じです。
aiten_matled_03.jpg
上方が制御用の2mmピッチの12ピンのコネクタです。
下方が電源用の2.54mmピッチの6ピンのコネクタです。

これらの端子の意味やLEDの制御の仕方はaitendoのホームページにデータシートがリンクされているので、これをダウンロードして参照します。
ファイルは HD-0158-RG0019A.rar で RAR形式のアーカイブとなっているので、この形式を展開できるツールが別途必要になると思います。
ファイルを展開するとimg001.jpg~img016.jpgの画像が出てきます。
img008.jpgがなく、また7/12頁が重複しているので、実質14枚分の資料です。
この資料に基づいて結線や制御を行います。

ただし、電源用のピンの説明としてimg006.jpgには写真のようになっていますが、CN3は、テスターで確認したところ2、3、6がGNDにつながっていました。
念のためと思い、テスターで確認していてよかったです。
aiten_matled_11.jpg

ちなみにimg010.jpgの構成図?(回路図ではないだろう・・)ではCN3は写真のように記されているので、こちらが正解です。
aiten_matled_12.jpg

次に実際の加工に移ります。
電源側は2.54mmなので、工作時に愛用しているこれを6ピンにカットして使いました。
aiten_matled_15.jpg

制御側の2mm、12ピンのコネクタですが、別途ピンソケットを購入して、それを12ピン分にカットして使いました。
各ピンの意味は先の資料を参照してください。
aiten_matled_16.jpg
aiten_matled_13.jpg

次に制御ですが、資料のタイミングチャートに描かれているタイミングでデータをセットしてアドレスをセットしての繰り返しになります。
aiten_matled_14.jpg

と言われても、「どういう意味だか分かりませ~ん」ということになりかねないので、簡単に説明すると以下のようになります。
1)今回はA/BBとSEピンは常に0で使用します。(通常はこれで問題ないと思います)
2)始めはCLK、ALE、WEに0を設定します。
3)1ドット分のDR(赤)、DG(緑)のピンへON(1)かOFF(0)の信号を決めます。
4)CLKを0→1→0と変化させます。
 CLK1回の変化(0→1→0)である行の1列分のLEDの点灯か消灯かを決めることになります。
 「ある行」は後ほど説明します。
5)マトリクスLED1枚で32列のLEDが並んでいるので、3と4の操作を32回繰り返すと、「ある行」の1列分のLEDの点灯と消灯が設定されたことになります。
 ちなみに最初に設定したDR、DGのON/OFFがマトリクスLEDの左端のLEDへの設定となります。
 逆に最後に設定したON/OFFが右端のLEDへの設定となります。
6)次にALEを1に設定します。
7)A0、A1、A2、A3で「ある行」をどの行とするか決めます。
 A0~A3が0000で一番上の行、1111が一番下の行になります。
 3から5の作業でどの行のLEDの設定を行ったかでA0、A1、A2、A3の0/1を決めます。
8)A0、A1、A2、A3の設定が終わったらWEを0→1→0と変化させます。
9)ALEを0に設定します。
上記の操作を表示内容を変更する場合に行います。
今回使用したマトリクスLEDはRAMを内蔵しているので、一度設定したLEDの点灯、消灯の状態が記憶されています。
使用するマトリクスLEDによっては、前の表示状態の変更の有無に関わらず、上記の表示動作を繰り返し続けなければいけない場合があるので、他のマトリクスLEDを使用する場合には、データシートを確認し、必要な対応を行う必要がります。

以下に実際の表示例を示します。
・赤色のみ
aiten_matled_21.jpg

・緑色のみ
aiten_matled_22.jpg

・赤色、緑色同時
aiten_matled_23.jpg

今回は以上です。
また、また。

Arduino UNOもどきボードの作成(おまけ) [電子工作]

Arduino UNOもどき第2弾の記事で書き忘れたので、おまけです。

ビルドで生成したバイナリをボードへ焼きこむのに必要なため、Arduino IDEってビルドしたファイルはどこに作成されるのか探すことになりました。
普通の感覚だと、特に指定しなければソースのある場所を期待したのですが、ありません。
Arduino IDEをインストールしたディレクトリか・・・そこにもありません。
まあ、細々したファイルを C:\Program Files配下に置かれても困りますが。

どこだぁ~ と探しまくりました。
こんなところにありました。

「C:\Users\ユーザ名\AppData\Local\Temp\build3283378625947428689.tmp\」

Windowsのルールに忠実というべきか。
挙句の果てに、「build3283378625947428689.tmp」部分は自動生成され、起動ごとかビルドごとに変わるので、一意の場所からファイルを取り出すことはできません。

生成されたcppやELFファイル、MAPファイルもあり、いろいろと使い道があると思うのですが、Arduinoが初心者向けということで、遮蔽してるのでしょうか。
ただ、Arduino IDEはビルド時にはディレクトリを知っていて、”{build.path}\{build.project_name}”でアクセスすることが可能なことから、設定ファイルにコピーコマンドを埋め込むことで一意のディレクトリへ取り出すことが可能です。

これで、変換後のcppファイルを見直したり、バイナリファイルの保存が容易になります。

Arduino UNOもどきボードの作成(2) [電子工作]

Arduino UNOもどきボードの作成の続き、第2弾です。
前回は基板へコネクタをはんだ付けしたところまででしたが、その後、使用するピンを決め、配線まで行いました。

次はプログラムですが、今回はせっかくArduino UNOのピン配置でハードをおこしたので、↓ここからダウンロードできるAruduino IDEを使って開発することにします。

 http://arduino.cc/en/main/software

ArduinoのベースはAVRマイコンですが、ArduinoのシリーズにはCortex-M3のAT91SAM3X8Eを使ったArduinoDUEがあります。
Arduino IDEにはArduinoDUEにも対応してることから、今回はこれを改造してFM3用のプログラムに使用します。

Arduino IDEの設定ファイルへの項目追加、リンカスクリプトの追加、デバイスアクセス用のライブラリ作成、pinMode系関数の修正などなどを行います。
それと、グラフィックLCDとキャラクタLCDを使うので、それに対応したシールドの(?)ライブラリも追加します。
作り変えるとこんなことになります。
メニューに「Interface FM3」項目を追加しました。
arduinoFM3_21.jpg

Arduino IDEの変更は、意識がもうろうとするほどの説明が必要なので、またの機会ということで、今回は省きます。
Arduino IDEの最新版は1.5.7かと思いますが、以前に解析、修正に使っていた1.5.2にしています。
スケッチもお試し用にそこそこプログラムを組んでみました。
arduinoFM3_22.jpg

arduinoFM3_23.jpg

ビルド後はMPU内のFlashへの書き込みですが、MPUのチップメーカもチップ種別もArduino DUEとは違うため、Arduino IDEの書き込みツールは使えません。
このため、SPANSIONさんが提供している「FLASH USB DIRECT Programmer」を使います。
arduinoFM3_25.jpg

Arduino IDE一本というわけにはいけませんが、設定ファイルを修正することで、「マイコンボードに書き込む」ボタンを押したときに任意のプログラムを実行することができるので、別ツールとなることはさほど気になりませんでした。
ただ、FM3の MB9BF618Tは FLASH USB DIRECT Programmerでの書き込みが遅いので、そういう意味で使い勝手がイマイチです。
FM3 USB STICKの MB9AF312Kはそこそこ早いので、これくらいだと使いやすいのですが・・

プログラムを実行するとこんな感じです。
arduinoFM3_24.jpg

ボードとしてはとりあえず完成です。
プログラムはさらなる大改修を加えていて、悪戦苦闘中です。
現状のプログラムも突貫でグチャグチャで公開は厳しそうです。

次は、これから工作予定のマトリックスLCDの製作記事を考えてます。

Arduino UNOもどきボードの作成(1)

以前に思いついた工作テーマを実行に移すべく、Arduino以外のボードでArduino UNO用のシールドを使えるようなボードの製作を始めました。

Arduinoのピン配置では、2.54mmピッチのユニバーサル基板へはそのままでは載らないため、手元にストックしてある以下の基板を間にかまそうと思ったのですが・・・

 http://akizukidenshi.com/catalog/g/gP-06877/

部品代がかなりかかることに気がつき、足長ソケットの足を曲げて対処することにしました。
これで、ピン配置変換用の基板と基板同士を接続するピンヘッダを使わずに済みます。
また、基板を二重にしてしまうと後から部品を配置することができなくなりますが、これでシールド直下のスペースの利用が可能となります。
Arduino_Copy_01.jpg

制御用のCPUボードのコネクタと併せ、こんな感じのベースボードになります。
(一気に2枚分を製作予定です)
Arduino_Copy_02.jpg

制御用のCPUボードには未だに使い続けているお得意のInterface誌2012年6月号付録のFM3ボードを使います。
Arduino_Copy_03.jpg

シールドは2.6インチのグラフィックLCDと自作キャラクタLCDボードを使用します。
Arduino_Copy_04.jpg

とりあえずコネクタの配置だけは決めましたが、配線、プログラミングはこれからです。
その前に、FM3ボードのどのピンをArduino UNOのピンへ割り当てるか悩まねば。

ソフトの環境構築を含め、あと2週間と少しで形にしたいけど、厳しいか・・・
とりあえず今回はここまで。
次回は配線を終えてLCDの動作確認を始めた頃にアップしたいと思います。

いにしえのデジタル時計

大昔に作ったデジタル時計へ久しぶりに火を入れてみました。
火を吹かずに無事に点灯しました。
tokei01.jpg

上方は2色LED60個を円形に配置して分と秒、その外側に7セグLEDを固定表示にして時、中心部分で曜日を表示。
下方に7セグLEDで時分秒。

中身は100Vを整流しての5V生成から工作した、フルロジックのデジタル時計です。
メイン基板でIC40個強、サブ基板も含めると全体で80個弱のICで構成されています。
これだけの数の74xxxxなICを久しぶりに見ました。
tokei02.jpg
tokei03.jpg
ケースや基板ご黒ずんでいるのは、電源回路の熱でホコリが付着したようです。
(擦ると取れるので、焦げているわけではないです)

上方の2色LEDや7セグLEDは基板へ配置できなかったため、硬質スポンジで固定し、怒涛の空中配線で実現しています。
tokei04.jpg
200本をチマチマと配線した記憶がかすかに残っていますが、今となっては手を出せる状態ではないです。

配線数の多さを強調するため、スケルトンなケースへ作り変えてみようとも思ったのですが、固定してあるネジを外すと元に戻せなくなりそうなので、このままで、また棚の奥へ押し込んでおきます。

最近の工作物

最近、グラフィックLCDが意外と簡単に使えることを知って、スパンションのマイコンFM3、FM4を使ったこんな物を作っています。
FM3はInterface誌2012年6月号の付録、FM4はスパンションから出ているFM4評価ボードです。

FM3
FM3_board1.jpg

FM4
FM4_board1.jpg

6月13日(金)に開催されたARM Cortex-Mマイコン・ワークショップ2014のスパンションのブースでデモ機として使ってもらいました。
workshop20140613_2.jpg

タグ:電子工作

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。