|
【はじめにお読み下さい】 |
最終更新日2006年5月27日 |
|
|
私設研究所
Neo-Tech-Lab
へようこそ! はじめに 自主研究を行うために管理人が勝手に開設した私設研究所がネオ・テック・ラボです。 当私設研究所では、主として、磁気、音響、生体計測に関する センシング技術関連の研究を実施しています。 限られた予算で様々なシステムの試作を行うために趣味の電子工作を活用しています。 本ページはCQ出版から発行される書籍「小型液晶ディスプレイの選び方と使い方」の記事で紹介しました ハードウェアを動作させるためのソフトウェアのダウンロードをサポートするために設けました。基板を製作 される場合に是非ご活用下さい。 ハードウェア、ソフトウェアに改訂内容が生じた場合には、当私設研究所のホームページ (URL http://www.neo-tech-lab.com)かまたは本HPで公開いたします。是非一度お越し下さい。 上田 智章 (Tomoaki Ueda) |
||
|
|
||
|
【目次】 ファームウェアのダウンロード ファームウェアのダウンロード Max IIのロジック設計情報ダウンロード デモ・プログラムのダウンロード ◆デモを使う準備と起動方法について ◆デモで使用している画像データ ◆組み込まれたVBAソースを見るには ◆その他製作に関連した写真など
|
||
|
◆PICマイコンのファームウェア http://www.neo-tech-lab.com/~lcd/HBRmonitor には 、C言語のソースファイル[HeartBeat.c]、コンパイルして得られたHex形式ファイル[HeartBeat.HEX]、およびListファイル[HeartBeat.LST]が入っています。 【注意事項】 記事で使用しているPIC16F873のファームウェアは、Microchip社が無償提供しているPICマイコン開発ツールMPLAB-IDEに統合して使えるCCS社のC言語コンパイラ「PIC C」(PCM)で記述しています。CCS社のコンパイラは泣fータ・ダイナミクスから購入することができます。 PICマイコンのフラッシュメモリにプログラムを書き込むツールとしては、PIC Start_Plusか秋月電子通商のPICライタがあります。 |
||
|
|
||
|
CQ出版から2006年5月1日発売の書籍「小型液晶ディスプレイの選び方と使い方」 の第6章の記事で詳細を紹介 しています。 トランジスタ技術2006年4月号の付録基板(Altera社Max II)を使って簡単なCRTCを構成し、800×600画素RGB8色のグラフィック表示が行えるVRAMボードを作りました。写真の通り、主要な実装部品は高速SRAM、PIC16F873、ADM232、SN74LS04と少ないです。RGB8色しか表示する機能がないので、Excelのプログラム(VBA)でJPEG原画像に拡散処理を施してこのボードに転送・表示しています。VBAでBITMAPを描画することのできる専用ライブラリを作成しました。 ファームウェアはここからダウンロードすることができます。 Max IIのロジック設計情報はここからダウンロードすることができます。 Excelソフトウェアはここからダウンロードすることができます。 このボードは現在改良中(バージョン2.0)を設計・製作中です。主な改良点は、インターフェースをUSB化(FTDI社FT232BL)する、CRTCにバス・アービトレーション回路を付加する等です。PICマイコンに図形描画処理、文字表示機能も加えてみようと思います。 VRAMボードの写真 表示のようす Max II基板を取ったところ 接続のようす ![]() ![]() ![]() VRAMボードの全体構成図 回路図 a)マイコン周辺 b)ビデオ出力と電源 c)フレームメモリ |
||
|
◆PICマイコンのファームウェア http://www.neo-tech-lab.com/~lcd/VRAM/PIC_C にはC言語のソースファイル[VRAM.c]、コンパイルして得られたHex形式ファイル[VRAM.HEX]、およびListファイル[VRAM.LST]が入っています。 【注意事項】 記事で使用しているPIC16F873のファームウェアは、Microchip社が無償提供しているPICマイコン開発ツールMPLAB-IDEに統合して使えるCCS社のC言語コンパイラ「PIC C」(PCM)で記述しています。CCS社のコンパイラは泣fータ・ダイナミクスから購入することができます。 PICマイコンのフラッシュメモリにプログラムを書き込むツールとしては、PIC Start_Plusか秋月電子通商のPICライタがあります。 ◆Max IIのロジック・デザイン Altera社が無償提供しているQuartus II Web Editionの図形入力で論理設計を行いました。 http://www.neo-tech-lab.com/~lcd/VRAM/CPLD 内に ある4つのファイルを全て同一フォルダ内にコピーしてください。プロジェクトファイルvram.qpfで Quartus IIのプロジェクトが起動できます。vram.bdfが回路図のファイルです。 ◆Windowsパソコン デモ・ソフト パソコン側の開発ツールとして普及率が高いMicrosoft社のExcelを使いました。ExcelにはVisual Basic for Application (VBA)というインタープリタ型のBasic言語が標準で備わっています。筆者はVBAを使ってRGB1670万色のビットマップ(グラフィックス)を表示するライブラリを作成しました。デモプログラムはこのライブラリを使って400x300画素の画像ファイルからRGB8色の画像に変換する拡散処理を行います。また、WIN32APIを介してシリアル通信を行い、VRAMボードにデータを転送することもできます。 http://www.neo-tech-lab.com/~lcd/VRAM/Excel 内のLCD_BITMAP.xlsがデモプログラムです。但し、このプログラムを使うためにはExcelにマクロの使用を許可する必要があります。以下に準備の手順を示します。 |
||
|
【準備】 1.Excel起動直後にツール(T)→オプション(O)...を選択します。 ![]() 2.オプション・ダイアログ・ボックスが表示されますので、セキュリティー・タブを選び、マクロ セキュリティ(S)...ボタンをクリックします。 ![]() 3.セキュリティ・ダイアログ・ボックスが表示されますので、セキュリティ・レベルを[中]に設定し、[OK]ボタンをクリックします。 ![]() 4.オプション・ダイアログ・ボックスも[OK]ボタンをクリックします。 5.一旦、Excelを終了します。 これで準備は完了しました。 |
||
|
【起動】 1.LCD_BITMAP.xlsをダブルクリックして起動します。 2.以下のダイアログ・ボックスが表示されるので「マクロを有効にする(E)」を選択して立ち上げます。 ![]() 3.立ち上げ直後の画面は以下の通りです。 ![]() 4.使い方は簡単です。 @左上黒枠内に12種類の画像選択ボタンがありますので、好みの画像を選択します。例えば[2] 蝶を選択すると下のようになります。 AパソコンのシリアルポートがCOM1でない場合にはセルに例えばCOM2等と適宜入力します。 B[データ送信]ボタンをクリックするとVRAMボードへの表示データの転送が開始されます。 ![]() 【備考】このプログラムはシリアルポートが接続されていない場合、下のようなメッセージボックスが表示されますが[OK]ボタンをクリックして抜けてください。その場合でも、3原色分離画像の下に用意されたイメージボックス内に選択画像が拡大表示されます。 ![]() ![]() |
||
|
|
||
|
【おまけ】 【画像データ】 下の画像データはVRAMボードの記事のために400x300画素のデータに加工した原画像データです。クリックすると拡大表示します。 趣味、教育、研究の用途であればご自由にお使い下さい。商業的利用並びに無断転載に関してはお断り致します。 http://www.neo-tech-lab.com/~lcd/VRAM/Photo400x300.files 内にプログラムで使っているJPEG原画像データがあります。ご自由にお使い下さい。 LCD_BITMAP.xlsの画像データシートのImageコントロールにも同じものが格納されています。 ◆BITMAPライブラリ BITMAPライブラリシートでは、組み込んであるLib_2DGraphicモジュールとLib_ContourMapモジュールのデモが行えます。 ■LCD_BITMAP.xlsに組み込まれたLib_2DGraphicモジュールはカレントディレクトリ内にbmp形式ファイルを作成します。 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
||
|
【組み込まれたVBAを見るには】 1.LCD_BITMAP.xls起動中に、ツール(T)→マクロ(M)→Visual Basic Editor (V)と選択します。 ![]() 2.組み込んであるVisual Basicのコードが表示されます。 ![]() |
||
|
|
||
| その他 |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
|