エレ玩 Konyaの開発記録

アクセスカウンタ

zoom RSS EGP01キット プログラミング講座(お好きなキャラを表示する編)

<<   作成日時 : 2011/01/08 00:42   >>

ナイス ブログ気持玉 6 / トラックバック 2 / コメント 0

EGP01キット用のプログラミング講座です。
今回は「お好きなキャラを表示する」をテーマとします。

グラフィックエディタでお好きなキャラを描画、そのデータをdsPICプログラムに組込み、液晶に表示します。
プログラミング講座と題していますが、雛形プログラムの関数に液晶制御を任せるため、複雑なコード記述は不要です。今回は環境の準備、グラフィックエディタの使い方がメインとなります。

画像

画像


以下の流れで環境準備、キャラデータ製作、プログラミングを行います。

1.準備(プログラミングツールのインストール)
 (1)MPLAB IDE
 (2)MPLAB C30
 (3)PICkit2 Programmer


2.キャラデータの製作
 (1)グラフィックエディタのダウンロード
 (2)VB6ランタイムライブラリのインストール
 (3)グラフィックエディタの起動
 (4)キャラの描画
 (5)セーブ、ロード方法
 (6)キャラデータ出力


3.dsPICプログラミング
 (1)雛形プロジェクトファイルのダウンロード
 (2)雛形プロジェクトファイルのコピー、リネーム
 (3)キャラデータファイルのコピー
 (4)液晶表示プログラム


4.プログラムのEGP01キット書込み


===========================================
1.準備(プログラミングツールのインストール)

 (1)MPLAB IDE

  PICのプログラムにはMPLAB IDEのインストールが必要です。
 ダウンロードはこちらから、解説は超有名サイト、後閑様の電子工作の実験室こちらを参照ください。

 (2)MPLAB C30

  雛形プログラムはC言語+アセンブラで記述しています。 
 C言語のプログラムには、Cコンパイラのインストールが必要です。
 ダウンロードはこちらから、解説はやっぱり後閑様のこちらを参照ください。
 この記事を執筆している時点では、解説にある「MPLAB C30 v3.02 Student Edition」等のStudentEditionは
 存在せず、「MPLAB C Compiler for PIC24 and dsPIC v3.25 in LITE mode 」等のLITE modeが無償使用
 可能なコンパイラのようです。

 (3)PICkit2 Programmer

  MPLABで製作のプログラムデータをEGP01キットのdsPICに書き込むためには、
 PICkit2 Programmerのインストールが必要です。
 ダウンロードはこちらから、解説は毎回すみません後閑様のこちらを参照ください。


---------------------------------------------------------------------------------
2.キャラデータの製作

  グラフィックエディタでキャラを描画し、雛形プログラム用のデータファイルを出力します。
 私自身が使うために、とりあえず作ったツールなので使い勝手が悪く、バグも多々あります。
 無いよりはマシと言った気持ちで御使用ください。
 また、WindowsXPでしか動作確認していません。Vista,7での動作は未確認です。

 (1)グラフィックエディタのダウンロード

  こちらからグラフィックエディタ(EGP01_GEDIT.lzh)をダウンロード、解凍してください。
  以下のフォルダを作成、解凍後のフォルダ"EGP01_GEDIT"を格納します。
 
  C:\EGP\EGP01\EGP01_GEDIT

  *)プログラムのエラー抑止、解説し易さから、フォルダ構成を私の環境と合せています。
   格納ドライブは"C:"である必要はなく、例えば"D:""E:"等でも問題ありません。
   

 (2)VB6ランタイムライブラリのインストール

  グラフィックエディタはVisualBasic6でプログラムのため、動作にはVB6用のランタイムライブラリが必要です。
  こちらからダウンロード、インストールしてください。

 (3)グラフィックエディタの起動

  C:\EGP\EGP01\EGP01_GEDIT\EGP01_GEDIT.exeを起動します。

  
画像


 (4)キャラの描画

   @描画
   以下の手順でキャラを描画します。操作は全てマウスで行います。

   ・[描画]ボタンをクリックし描画モードを選択
   ・描画色を選択
    パレットを左クリックで左ボタンの対応色を選択、右クリックで右ボタンの対応色を選択

    *)液晶表示関数ではパレットNo.0(パレット左上の黒色)を透明色として扱います。
     パレットNo.0のドットは背景や他のキャラを透過して表示されます。

   ・マウス左、右ボタンで対応色のドットを配置


画像


   Aパレットの変更

   雛形プログラムの液晶表示関数は16色パレットで表示する仕様です。
   初期のパレットに必要な色が無い場合は以下の手順でパレットを変更します。

   ・変更するパレットの色をダブルクリック

画像


   ・256色から任意の色をクリックしパレットを変更

画像

 
  Bコピー
  以下の手順で描画済みのキャラをコピーできます。

  ・[範囲]ボタンをクリックし範囲モードを選択
  ・左ドラッグでコピー範囲を選択
  ・[コピー]ボタンをクリック
  ・コピーしたい位置にコピー画面を移動し配置


画像


  C移動
  以下の手順で描画済みのキャラを移動できます。

  ・[範囲]ボタンをクリックし範囲モードを選択
  ・左ドラッグで移動元の範囲を選択
  ・[移動]ボタンをクリック
  ・移動したい位置をクリックし配置


  D範囲削除
  以下の手順で描画済みのキャラを範囲削除できます。

  ・[範囲]ボタンをクリックし範囲モードを選択
  ・左ドラッグで削除したい範囲を選択
  ・[消す]ボタンをクリック


 (5)セーブ、ロード方法
  へなちょこツールのため、突然エラーで落ちることがあります。マメなセーブをお奨めします。
  以下の手順で描画データのセーブ、またはロードできます。

  @セーブ方法

  ・[保存]ボタンをクリックし、保存画面を表示
  ・ファイル名を入力、またはリストから選択
  ・[保存]ボタンをクリック


画像


  Aロード方法

  ・[開く]ボタンをクリックし、開く画面を表示
  ・ファイルを選択し[開くボタン]をクリック


 (6)キャラデータ出力
  以下の手順で液晶表示関数用のキャラデータファイルを出力します。

  ・キャラデータの情報を設定

   ネーム   :Mario   (dsPICプログラム時のラベル名)
   サイズX  :16     (キャラクタのX方向ドットサイズ、8,16,32,64から選択)
   サイズY  :16     (キャラクタのY方向ドットサイズ、8,16,24,32,40,48,64から選択)
   パターン数 :3      (出力するパターン数、左上を基準に出力パターン数を設定)
   データ出力 :チェック (選択ページのキャラデータ出力有無。出力不要の場合はチェックを外す)

  ・[PICデータ出力]ボタンをクリックし、PIC用画像データ出力画面を表示

画像


  ・ファイル名に"ChrData.inc"と入力、またはリストから"ChrData.inc"を選択
  ・[出力]ボタンをクリック


  *)雛形プログラムで"ChrData.inc"を読込む記述となっているため、ファイル名を変更しないでください。

画像


  以上で下記フォルダにキャラデータファイルを出力します。

  C:\EGP\EGP01\EGP01_GEDIT\inc\ChrData.inc

---------------------------------------------------------------------------------
3.dsPICプログラミング

 (1)雛形プロジェクトファイルのダウンロード

    こちらから雛形プロジェクトファイル(EGP01_Template01.lzh)をダウンロード、解凍してください。
  グラフィックエディタ ダウンロード時に作成のフォルダ"EGP01"に解凍後のフォルダ"EGP01_Template01"
  を格納します。
 
  C:\EGP\EGP01\EGP01_Template01


  プロジェクトファイルは下記ファイルで構成しています。

   @プログラムソース
    ・EGP01.c      :メインルーチン(PIC、LCD初期化ルーチンの呼出し、ユーザプログラムの追記)
    ・EGP01_Asm.s   :アセンブラ記述のサブルーチン集

   Aプログラムヘッダ
    ・EGP01_Asm.h   :アセンブラ記述の外部変数、関数の定義、JoyStickの定義

   Bデータソース
    ・ChrDataCmn.inc :共通キャラクタ データ(文字フォント等)
    ・ChrData.inc    :個別キャラクタデータ
    ・SndData.inc    :個別サウンドデータ


 (2)雛形プロジェクトファイルのコピー、リネーム
   (1)でダウンロード、解凍のファイルをフォルダーごとコピーし、フォルダー名を下記に変更します。

    C:\EGP\EGP01\EGP01_Lesson01

 (3)キャラデータファイルのコピー

  グラフィックエディタ出力の"ChrData.inc"をEGP01_Lesson01フォルダーにコピー(上書き)します。

 (4)液晶表示プログラム

  プロジェクトファイル"EGP01.mcp"をダブルクリックしMPLABを起動します。
  "EGP01.c"を開き、下記赤字のコードを追記します。(青字は既存のコード)

//==========================================================================
//メイン
//==========================================================================
//********* 以下にユーザープログラムを追記 *********



    unsigned char    Mario_tp;    //キャラデータ Marioの格納tblpageの格納用
    int                   Mario_to;    //キャラデータ Marioの格納tbloffsetアドレスの格納用

//ChrData 格納アドレス(TBLPAG,OffSet)取得
    asm("MOV #tblpage(_Mario),w0");
    Mario_tp = (unsigned char)WREG0;
    asm("MOV #tbloffset(_Mario),w0");
    Mario_to = WREG0;

//メインループ
    while(1)
    {


    //PIC内VRAMにキャラ描画
        TBLPAG = Mario_tp; //Marioデータ格納TBLPAGを設定

    //描画座標X, Y, DataAdr ,PtnNo (描画座標Xは偶数指定、奇数の場合X-1となる)
        VR_ChrSclDraw(30, 30, Mario_to, 0);    //座標(30,30)にMario Ptn0を描画
        VR_ChrSclDraw(60, 30, Mario_to, 1);    //座標(60,30)にMario Ptn1を描画
        VR_ChrSclDraw(90, 30, Mario_to, 2);    //座標(90,30)にMario Ptn2を描画
        VR_ChrSclDraw(30, 60, Mario_to, 1);    //座標(30,60)にMario Ptn1を描画
        VR_ChrSclDraw(60, 60, Mario_to, 2);    //座標(60,60)にMario Ptn2を描画
        VR_ChrSclDraw(90, 60, Mario_to, 0);    //座標(90,60)にMario Ptn0を描画
        VR_ChrSclDraw(30, 90, Mario_to, 2);    //座標(30,90)にMario Ptn2を描画
        VR_ChrSclDraw(60, 90, Mario_to, 0);    //座標(60,90)にMario Ptn0を描画
        VR_ChrSclDraw(90, 90, Mario_to, 1);    //座標(90,90)にMario Ptn1を描画

    //PIC内VRAMをLCDモジュールに一括転送
        VR_LCDDraw();

    }
    return 0;
}

  
  コード追記後、[build all]を実行しHexファイルを生成します。

---------------------------------------------------------------------------------
4.プログラムのEGP01キット書込み

  EGP01スタートアップガイドの「4.2 プログラム書込み(ICSP)の確認」に従いPICkit2を接続しHexファイル(C:\EGP\EGP01\EGP01_Lesson01\EGP01.hex)を書き込みます。

画像


===========================================

以上でキャラが表示ができました。
後は自分好みのキャラを作成し、表示してみてください。
私はレトロキャラが表示されるだけで幸せな気分になれます。

そー言えば、プログラミング講座なのにプログラムの解説皆無でした...
まぁプログラムらしいプログラムはしてないから良いですよね...

次回はキャラを動かしてみましょう!!


以上です

テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ
気持玉数 : 6
ナイス ナイス ナイス ナイス
面白い 面白い

トラックバック(2件)

タイトル (本文) ブログ名/日時
キャラクタ表示
キャラクタを表示してみました。 ...続きを見る
kunizoの電子工作memo
2012/03/01 12:24
http://venussome.com/weight-loss/venus-factor-revi...
EGP01Lbg v_O_~_Ou(_D__L_\__) G_ Konya_J_L^/EFu_u_O ...続きを見る
http://venussome.com...
2017/01/07 05:27

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
EGP01キット プログラミング講座(お好きなキャラを表示する編) エレ玩 Konyaの開発記録/BIGLOBEウェブリブログ
文字サイズ:       閉じる