2009年12月
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

最近のトラックバック

無料ブログはココログ

役に立ったAVRマイコンの本

2009年12月30日 (水)

漢字フォントを使いたい♪ SG12864A・・・その1

後閑哲也氏がGLCD SG12864A用漢字フォントと表示プログラム公開してますよね♪

PIC18Fではメモリが厳しくそのままでは無理ですが(泣)・・・

何に使うかっていうと外付けナンバーディスプレイ装置を作って名前を漢字表示させたいから・・・

これが、仕事で使用しているナンバーディスプレイアダプタ NDA-P1 I-O DATA製

nda01.JPG

RS232Cシリアル通信で母艦(パソコン)にデータ転送し、名探偵 発信写録ver10.0 で電話帳データと自前の顧客データベースから検索表示させています。しかし、LANで使用出来ないので2階のパソコンでは表示出来ません。

nda02.jpg

Acknowrich でNDA-P1から受信してみた。これなら自作表示器や自作ソフトでもっと詳細情報表示とか出来そうじゃん♪

通信速度は4800bps

nda03.jpg

出来るかどうかは別として(笑)、今後のアクションプランとしては、

1.RS232Cシリアル分岐アダプタを作成する。

1-1.HSP3で自作ナンバー表示ソフトを作成してみる。

1-2.無線式シリアルアダプタを試してみたい。

1-3.シリアル→LAN変換ボードも試してみたい。

2.マイコンで外部表示器を作成してみる。

2-1.とりあえず、PIC18F4550+SG12864Aで、電話番号と半角カタカナの名前表示をさせてみる。

2-2.どうせならSG12864Aに漢字で名前を表示させたい。以前、PIC18F4550で半角文字フォントをI2C EEPROMに格納してみたが、漢字フォントも格納し表示させたい。

 

まず、順不同で2-2から検討してみた(笑)

以前、I2C EEPROM AT24C1024Bに別プログラムで格納した半角文字フォント

192×5×8=7680ビット、EEPROM書き込みプログラムなら配列を十分読み込めるし、EEPROMの1ページに十分収まるサイズだった・・・

fonttrans00.jpg

今回、読み込ませる漢字フォント・・・うーんデカイ(汗)

7901×24×8=1516992ビット・・・1MビットのEEPROM 2個分じゃん(笑)

こんな大きな配列じゃ、EEPOM書き込みプログラムに読み込んでこれないだろう・・・

後閑哲也氏のKanjifont12.h

fonttrans01.jpg

じゃあ、パソコンからシリアルで1バイトづつ送信してマイコンで受信してEEPROMに書き込むってのはどう?

まず、このhファイルをテキストファイルにできるかだな!テスト用に一部分切り貼りしてCSVファイルで保存・・・

左の括弧{ が余計だからNotePad++の置換機能で、置換文字列欄を何も選択しないで一括に削除♪

fonttrans02.jpg

右の括弧とデリミタ },も一括削除できた♪CSVテキストファイルにできるじゃん♪

fonttrans04.jpg

16進表記の 0x は削除してもしなくてもHSP3側で数値加工できるらしいが、試しに削除しちゃった(笑)

fonttrans05.jpg

HSP3のプログラムは切り貼り即席ですが、CSVファイルを読み込んで、16進文字列0xFFとかFFを数値に変換してRS232Cで1バイト(0~255の数値)づつ送信するもの

csv_data.hsp 

fonttrans07.jpg

確認のため VCPsetup 仮想COMポート でCOM8とCOM9接続

fonttrans06.jpg

送信はCOM8使用、送信した1バイト数値を確認のため画面に表示している

fonttrans08.jpg

Acknowrich COM9で受信しバイナリ表示・・・ちゃんと送れてる♪

fonttrans09.jpg

とりあえずここまでだがなんとなく実現できそーな予感(笑)

 

2009年12月17日 (木)

前回のHSP3で作成した簡易シリアルラインモニタのメモ

width の高さscy は文字高さmyの倍数でなければならないので、定数の表現が悪いですね・・・

端数計算するか、scy=n*my で n=35 など表示行数を設定した方が良いかもです・・・

あと0x0d CR(キャリッジリターン)は画面上実際に改行されてしまうから”_”に置き換えるとしても

0x0a LF(ラインフィード)は置き換えずにそのまま表示した方が良いかもです・・・

単なるメモです(笑)

GPSViewerにUPDATE to SRAM+FLASH あるじゃん(汗)

ドロップダウンリストにありました(汗)

毎回、設定変える必要ないですね♪

設定するとGT-720Fは一旦停止し、再度電源投入で設定が変わっています。(←情報頂いた通りです♪ありがとうございます)

シリアルのクロス接続環境は外してしまったので未確認ですが、バイナリの制御コード0x09が「UPDATE to SRAM」で0x08が「UPDATE to SRAM+FLASH」なのでしょう・・・

あと、各NMEAセンテンスの数値は出力インターバルで0~255(0x00~0xFF)まで変更可能ですね!0は出力無し、例えば、2ならば2回に1回出力になるようです。

右横の0から255のバーと数値が連動してました・・・

GV_UP01.jpg

落ち着いてチェックできる時間が欲しい(笑)

2009年12月16日 (水)

HSP3で簡易シリアルラインモニタを作ってGT720Fから受信してみた♪・・・だからなんだ?(笑)

来週から内職はできません!(笑)

だからなんなんだ?って言われそーですが(笑)

テキストとバイナリ同時に表示させてみたかったので・・・これで制御コードなんかも判別できるかも・・・3行目は文字数です。

テキスト中0x0d CR キャリッジリターンと0x0a NL or LF  ニューライン(ラインフィード)は"_" に置き換えています。

スクロールバーがまだ扱えないので、バイナリを1行に表示すると横方向は画面からはみ出しています(笑)

縦方向は画面内でスクロールする様にしました。

※スクロールバースクリプトは探索済み(笑)

左画面

a16_17.jpg

右画面

a16_18.jpg

コントロールパネルです。

a16_14.jpg

おまけで、制作途中にGT720Fのテキストそのまま表示させたものです。

a16_12.jpg

 

書籍の元ネタを改良して作成したものです。以下、恥ずかしいソースです。

やくたたず(笑)

;---serial03.hsp--------09.12.16--------------------------------
;   簡易シリアルラインモニタ
;   1行目テキスト表示
;   2行目バイナリ表示
;   3行目1行の文字数
;   テキスト中0x0d CR -> "-" と0x0a NL or LF -> "_" は置き換えた
;---------------------------------------------------------------

#include "hspext.as"    ;シリアルポート使用に必要
    screen 0,400,100,,,,,
    width 400,100
    sysfont 0   ;HSP標準システムフオント
    title "RS232C 簡易シリアルラインモニタ コントロールパネル"
;   sdim buf,600    ;テキスト用バッファ
;   sdim abuf,2000  ;バイナリ用バッファ
    onexit *combye  ;×ボタンの処理

    cp = 2      ;COMポート番号
    comstr="baud=9600 parity=N data=8 stop=1"   ;通信パラメータ
    sdstr=""
    input sdstr,340
    objsize 100,20
    button "送信",*comgo
    button "終了",*combye
    button "通信一時遮断",*comcls
    button "通信再接続",*comcon
    e=ginfo (10)    ;ウインドウX横幅
    f=ginfo (11)    ;ウインドウY縦幅
    g=ginfo (22)    ;カレントポジションX
    h=ginfo (23)    ;カレントポジションY
    mes e:mes f:mes g:mes h
    ;
*comcon
    comopen cp,comstr;シリアルポートの初期化
    if stat : dialog "シリアルポートは使えません" : end

    li=0
;HSP標準フォントの場合はmx=8、my=18
    mx=8    ;半角文字横幅
    my=18   ;半角文字高さ
    scx=1816        ;screen横幅(widthに同じ)
    scy=630     ;width高さ
    screen 1,scx,scy+2*my,,,,,  ;screen高さは+myで2行プラス(改行分を追加)
    width scx,scy
    title "簡易シリアルラインモニタ"
   
    a=0
*commain0
    sdim buf,600    ;テキスト用バッファ 再定義でバッファクリア
    sdim abuf,2000  ;バイナリ用バッファ 再定義でバッファクリア
*commain1
    wait 30
    comgetc a
    if stat=0 : goto *commain1
    b=0:d=0
*chk1
    if a=10 : goto *chk2    ;0x0a NL(LF) の時*chk2へ
;   if a>=32 {
    if a=13 : poke buf,b,"_":else:poke buf,b,a  ;0x0d CR の時バッファに"_"を入れる
                                                ;それ以外はそのままaを入れる
    b+  ;bに+1
    c = strf ("%02x", a) + " "  ;16進桁数指定(2ケタ)付き+" "を
    poke abuf,d,c               ;バッファに入れる
    d = d+3     ;2ケタ+" "で3ケタなので+3する
;   }
    comgetc a
    if stat>0 : goto *chk1
*chk2
    poke buf,b,"_"  ;0x0a NL(LF) の時バッファに"_"を入れる
    b+  ;bに+1
    c = strf ("%02x", a) + " "  ;16進桁数指定(2ケタ)付き+" "を
    poke abuf,d,c               ;バッファに入れる
    d = d+3     ;2ケタ+" "で3ケタなので+3する
    gosub *scrol    ;スクロール制御ルーチンへ
    mes buf         ;テキスト用バッファを出力
    gosub *scrol    ;スクロール制御ルーチンへ
    mes abuf        ;バイナリ用バッファを出力
    gosub *scrol    ;スクロール制御ルーチンへ
    mes strlen(buf) ;バッファ文字列の長さを出力
;   poke buf,0,0
;   poke abuf,0,0
    goto *commain0

*comgo      ;送信
    comput sdstr+"\r"
    sdstr="":objprm 0,sdstr
    goto *commain0

*comcls
    comclose
    stop   

*combye
    comclose
    end

*scrol      ;画面スクロールサブルーチン
    gy= ginfo (23)  ;現在のY座標
    if gy>=scy {        ;Y座標がwidth_Yに一致したら
        if gy=scy {
        gy=scy-my       ;Y座標を1行分戻す
        pos 0,0         ;画面コピーのため一旦座標を原点にする。
        gcopy 1,0,my,scx,scy    ;2行目から最下段までを原点にコピー
        }
        gy=scy-2*my         ;Y座標を2行分戻す
        pos 0,0         ;画面コピーのため一旦座標を原点にする。
        gcopy 1,0,my,scx,scy+my ;2行目から最下段+1までを原点にコピー
    }
    pos 0,gy        ;表示位置を再設定
    return

2009年12月11日 (金)

あ~疲れた(笑)

年明けまで電子工作はお預けかも・・・(笑)

仕事用に、MS-ACCESSで作った管理ソフトも急遽方針変更でACCESS BASIC のレベルで手を加えること多数、

自分で作ったのにしばらく見てないと忘れちまう、トホホ・・・

ここんとこ、マイコンでC言語ばっかりいじってたからなぁ~(笑)

msa01.jpg

週末は映画へ連れて行く約束があるし・・・

2009年12月 9日 (水)

天体観測のカテゴリー作った・・・いつまで続くか?(笑)

今月はハードなので先月末に2回目の天体観測を行った♪

astro.JPG

明かりの少ない暗い場所ということで、海辺まで・・・

しかし、夜中の海岸って・・・他人の事言えないがインプがダートでドリフト練習してたり、怪しい密会があったり(笑)

天候に恵まれて、月面や火星、シリウスや星団なんかも見てみた・・・

ブログ用に写真撮りたいが天体写真はそー簡単にはいかないようだ・・・

しかしもの凄く冷え込んでダウン着ててもわしゃ限界(笑)

天体望遠鏡貸してくれてありがとう、やさしい娘だなぁ~賢いし

でも、夜中引っ張り回していいんだろうか?

娘「基本、箱入りですから(笑)」

・・・だよねぇ~怒られちゃうよなぁ~って言いながら次回は惑星狙いで高原で(笑)

すでに箱から落っこちゃってるよーなんじゃどーでもいいんだけどね(笑)

月刊「Piano」2009年12月号が買いたい・・・がっ!期末試験が終わってから(笑)

YouTube から wav や mp3形式 で落として・・・

mp3tag 使ってみた。

mp3tag01.jpg

国内 Amazon.co.jp からデータ持ってくるのも設定したし・・・

該当する曲タイトルまで移動しないといけないが・・・

mp3tag02.jpg

毎日、ローラー台での自転車トレーニングで安物と拾いものの携帯音楽プレーヤーが壊れた、汗とか環境悪いしなぁ・・・

最近は、0円で買った携帯電話がトレーニング用音楽プレーヤーと化している。

タグ無しだと「NoImage」で素っ気ないしね(笑)

piano02.JPG

月刊「Piano」2009年12月号にこの曲の譜面が載っているらしい・・・図書館ではバックナンバーしか借りられない・・・

私「譜面買うから弾いてみて・・・」

息子「今、期末試験で忙しいんだよ(怒)」

piano01.JPG

問題あるんでビデオはチョットだけ・・・

 

2009年12月 6日 (日)

GPSViewer から GT-720F の設定バイナリデータを読んでみた♪

こんな事してる場合じゃないんだが、一旦、気になると眠れなくなっちゃうんで(笑)

随分前に購入したマルツパーツ館の

RS232Cレベル変換ボードMFT232BASEとUSBシリアル変換モジュールMFT232RL

rs232m14.JPG

合体すると

rs232m13.JPG

GT-720Fと接続して、ちゃんと動作するかチェック

rs232m15.JPG

USB Serial Port (COM13)

rs232m01.jpg

通信ソフトAcknowrich で確認・・・

前回、4800bps $GPVTGを出力するに変更したが、「UPDATE to SRAM」だからしばらく放置してバックアップ電池が空になると元に戻って$GPVTG出力無し、通信速度も9600bpsって事か・・・

マイコンと接続して$GPVTGを使うなら、電源投入後にマイコンから毎回GT-720Fの設定を変えてやる必要があるわけだよね・・・

rs232m02.jpg

もともと、こんな事していいのか判らなかったが・・・

RS232Cレベルでパラレルに接続してみた

※注;画像は後のクロス接続になっている

rs232m17.JPG

rs232m16.JPG

USB Serial Port (COM13)とCOM3 両方で受信できる

rs232m06.jpg

GPSViewerとAcknowrich 同時に受信

rs232m07.jpg

Acknowrich はバイナリ表示に変更できる

rs232m08.jpg

USB Serial Port (COM13)をクロス接続に変更してソフトからGT-720Fへのバイナリデータを読んでみた♪

下記は$GPVTGを出力するに変更するバイナリデータ

rs232m09.jpg

色々試すとこんな感じ、最終行の内容は自信無し(笑)

マイコンと液晶とでテキストとバイナリコードの表示切換出来る様にすれば、こんな感じで双方向のシリアルラインモニタも作れるかも♪

rs232m12.jpg

1から3行目の6から12番目の0x01と0x00はNMEA-0183のGGA,GSA,GSV,GLL,RMC,VTG,ZDAの出力有り無しに対応しているみたいですね♪

コメント頂いた情報だと赤丸のコードが0x09でなく0x08になっていますが何か違うのでしょうか?

2009年12月 5日 (土)

マイリストを整理♪・・・日々是勉強なり(笑)

12月は多忙でこっちは超スローペースです・・・

参考にしている手持ちの書籍を整理してみました。サイドバーのマイリストです。随分本買ったなぁ~中古が多いけどね♪

2009年12月 2日 (水)

GT-720F の設定を GPSViewer で変更してみた♪

12月は超多忙でサイクリングログなんか取ってる暇無いし・・・

無惨にもGT-720Fが分離された「ジムニー親爺専用GPS」(笑)

gt720f_gv_01.JPG

GT-720Fはアルミ板に固定して、ハーネスの中継と電源供給用の基板を急遽作成

gt720f_gv_02.JPG

ハーネスの中継と電源供給用の基板です。

万能基板に空中配線(笑)

gt720f_gv_03.JPG

パソコンに接続してGPSViewerで見てみた♪

COM2で9600bps

GV01.jpg

通信速度はこれで変更できる。4800bpsに・・・

GV03.jpg

NMEA-0183の出力はこれで変更できる。$GPVTGの欄を0から1に変更・・・

1以外の数字は何だ??? 横の0~255も何だ???

工場出荷状態に戻せるので色々試してみるか・・・

GV04.jpg

最初の画面と異なり、$GPVTGが出力されています♪

GV05.jpg

通信速度を4800bpsに変更したので、スーパーマップルデジタルVer6のGPSモードでもリアルタイムに表示できます。

前回の、ログデータ緯度経度のみを$GPGGA形式にして認識させた時と異なり、きちんと天空図に捕捉衛星情報が表示されています。

GV02.jpg

GPSViewer.exeってファイル名でソフト名は

SkyTraq

ですよね?

私の環境だけかもしれんが、何か動作不安定で通信に失敗するとWINDOWSが落ちて再起動するし(泣)

最初、秋月のHPからダウンロードしてきたのですが、メーカーのHPにも同梱ファイルがいくつかあって

GV07.jpg

赤丸解凍すると、Verが最新みたいで・・・こっちで試してみるか・・・

GV06.jpg

今度はソフトからGT-720Fのシリアルデータを読んでみたい・・・

※捕捉、電子工作には直接関係ないですがアルミのネジタップ立てについてメモ

アルミは柔らかいのでタップ立てて抜く前に、刃溝の切りくずを除去してやらないとネジ山が潰れてしまうので注意が必要!

gt720f_etc_01.JPG

gt720f_etc_04.JPG

しかしわし、組んだり分解したり、分解したり組んだり・・・

いつでもどこでも、何か作ってますよね♪って言われたことあるし・・・

CMのインテル坊やそのまんま(笑)

インテル入ってる?・・・入ってないって!(笑)

 

«PWM出力をダイナミック点灯させたらどーなる?・・・実験4(笑)

フォト

役に立ったPIC書籍リスト