
携帯電話等に使用される小型のカラー液晶を使用した、デジタル・フォト・フレームの製作です。
市販のデジタル・フォト・フレームは、画面も大きく機能も多彩ですが、電子工作ファンとして、あえて自分で作ってみようという工作です。
主な機能
・SDカードに、専用に加工した写真ファイルを用意し、選択した時間間隔で表示する。
・時計機能を搭載。
・温度表示機能を搭載。
・スケジュール ファイルのデータにより、誕生日や記念日のメッセージを表示する。
・人体の熱を感知する赤外線センサーを搭載し、人の動きにより表示をON/OFFする。
回路の解説 |
1.電源回路
・5VのACアダプターから電源を供給します。
・AVRマイコン、LCD、SDカードは、三端子レギュレータにより、3.3Vで動作します。
2.AVRとクロック
・AVRマイコンは、SDカードを制御するBASCOM-AVRのAVR-DOSが、最低1.6KbyteのSRAMを
必要とするため、ATmega328P-20PU(SRAM=2Kbyte)を選定しました。
・動作クロックは、時計機能と兼用するために「超高精度クリスタルモジュール12.8MHz」を
使用します。
・このモジュールは5V電源動作なので、3.3V動作のAVRに接続するために、ショットキーバリア
ダイオードで電圧範囲を制限しています。
(時計用32.768kHz水晶でバックアップ機能を搭載したかったのですが、ATmega328Pチップの
バージョンAとBには、この周波数の水晶が発振できないというハード的な欠陥がありますので、
バックアップをあきらめました)
3.カラーLCD回路
・ノキア製の携帯電話に使用されたLCDで、NOKIA6610と言う名称で呼ばれています。
・このLCDを搭載したOlimex社のモジュールで、「MOD-NOKIA6610」を使用します。
・制御信号は[CS] [DIO] [SCK] [RESET] の4本で、シリアル通信制御です。
・バックライトには7Vの電圧が必要ですが、ボード上にDC-DCコンバーターが搭載されているので、
3.3Vの単電源で動作します。
・バックライトのON/OFFも、ポートで制御できます。
4.SDカードスロット回路
・秋月電子で販売されている、ヒロセ製 SDカードコネクタ「DM1B-DSF-PEJ」を使用します。
・このコネクタは面実装タイプなので、ハンダ面に取り付けます。
・書き込みは行わないので、「WRITE PROTECT」端子は使用しません。
・AVRマイコンからは、SPI (Serial Peripheral Interface) の4本の信号と、カードの有無(CD)端子で
制御します。
5.温度測定回路
・温度の測定は、回路が簡単な専用の温度センサーIC (LM61BIZ) を使用しています。
・温度の測定には、A/Dコンバータの基準電圧を1.1Vで使用しているため、上限が+50℃までに
制限されます。
・A/Dコンバータ用の内蔵1.1V基準電圧は、AVRチップにより1.0V〜1.2Vの範囲の誤差があるので、
設定画面で電圧の誤差を校正し、温度表示の誤差を少なくすることができます。
6.焦電型赤外線センサモジュール回路
 |
・人体の熱を感知する、秋月電子PIRモーションセンサー・ユニット
「SE-10」を使用します。
・このセンサーは小型のタイプなので、2m程度の範囲を検出できます。 |
 |
・購入時には、DC5V〜12V(内部動作3.3V)と言う広告でしたが、5Vで
動作させると誤動作します。
・回路を調べて見ると、基板に搭載されているレギュレータが5Vの物
なので、入力が5Vでは正常動作せず、秋月電子に問い合わせた結果、
広告とマニュアルの間違いであることがわかりました。
・しかし、5Vで設計してしまったため、ユニットの三端子レギュレータを
3.3Vの「XC6202P332TB」と交換することにしました。
・面実装のパターンにリード部品をのせるので、少々技術が必要です。
|
7.操作スイッチ回路
・汎用のタクトスイッチを、メイン基板上と、高さを調整するサブ基板に取り付けることができます。
|
注意! この図面を使用した、いかなる損害にも責任を負いません。
|
AVRマイコン ATmega328Pの、ヒューズ ビット書き換え |
AVR ATmega328Pのシステム クロックは、工場出荷時に、内蔵RC発振器の8MHzで、1/8前置分周器がONに設定されており、外部のクリスタル
オシレータを使用するには、AVRのヒューズ ビットを書き換える必要があります。
下記ページの書き換え方法 「6.」を、以下の様に変更して、ヒューズ
ビットの書き換えを行います。
ヒューズ
ビット書き換え
6.[ FusebitC ] の右欄 [
0:Divide Clock by 8 Enabled ]
をクリックすると、右側にプルダウン メニューが現れますから、 [ 1:Divide Clock by 8 Disabled
] を選択します。
[
FusebitKLA987 ] の右欄 [ 100010: --- [CKSEL=0010
SUT=10];default value ] を クリックすると、右側にプルダウンメニューが現れますから、 [
100000: --- [CKSEL=0000 SUT=10] ] を選択します。
|
プログラムの準備 |
注意! 著作権は放棄しておりませんので、販売目的での使用は絶対にしないで下さい。 (記事の無断転載を除き、個人での使用は可能です。 改変、自作品の掲載、リンクもご自由に。)
・任意のフォルダに、上記のソースファイルと、下記の設定ファイルを保存して下さい。
Config_MMC_JP_MPF328P.bas
CONFIG_AVR-DOS_JP_Mega328P.bas
・下記フォントファイルも、上記のソースファイルと同じフォルダにコピーして下さい。
マイ ドキュメント内、MCS Electronics\BASCOM-AVR\samples\lcdgraph\color8x8.font
・BASCOM-AVR(製品版)で、ソースファイルをコンパイルして下さい。
|
操作方法 |
1.写真データの準備 (SDカード)
・写真データは、JPEG等のデータを、そのまま使用することはできません。
・下記の様に、多少複雑な操作が必要です。
・表示させる写真を、130×130ピクセルのBMP(ビットマップ)ファイルに縮小して下さい。
(横長や縦長の写真を問わず、必ず130×130ピクセルに縮小し、余白を設けて下さい)
(余白は、左右を対称、上部は無しにすると、画面にうまく収まります)
(実際の画面では、時計表示があるため、縦が110ピクセルとなります)
・縮小の作業は、Photoshop等の画像編集ソフトを使うか、下記の「ImageJ」というフリーの
画像処理ソフトが便利です。
「ImageJ」の操作方法 |
1. 「ImageJ」のサイト http://rsb.info.nih.gov/ij/ Downloadから、各OSにあったバージョンを
任意のフォルダにダウンロードし、インストールして下さい。
Windows版 32-bit Java
2.次に、「すん」さん提供の、マクロファイル Nokia6100Resize.txt を、
C:\Program Files\ImageJ\macros\toolsetsにダウンロードして下さい。
3. ImageJを実行し、[>>]ボタンをクリックすると、「Nokia6100Resize」が表示されるので
選択して下さい。
4.赤い[sr]ボタンと、[fr]ボタンが追加されます。
[sr]:個別ファイルのリサイズ用。
[fr]:フォルダ内全てのファイルをリサイズ用。(フォルダ内は1階層のみ)
5a. [sr]ボタンをクリックすると、「Select a File」ウィンドウが表示されます。
画像ファイルを選択し、[開く]ボタンをクリックすると、自動的にリサイズしてC:\Temp
フォルダに保存されます。
5b. [fr]ボタンをクリックすると、「Select Input Folder」ウィンドウが表示されます。
画像フォルダを選択し、[Select]ボタンをクリックすると、フォルダ内のすべての画像
ファイルが自動的にリサイズされて、C:\Tempフォルダに保存されます。
○ リサイズの大きさや、余白の位置、余白の色、画像出力先フォルダは、Nokia6100Resize.txt
内に記載されていますので、参照して下さい。
|
・次に、縮小された画像データを、LCD専用のビット並びに変換します。 ([.raw] ファイル)
(必ず130x130ピクセルでないと、コンバーターが受け付けてくれません)
 |
1. NOKIA
6100 BMP Converter を任意のフォルダにダウンロード
し、BMP_Converter_v2.0.0.zip を展開します。
2. BMP_Converter.exe を起動し、左のように設定します。
3. [Select any size 24bit .bmp(s)] ボタンを押して、縮小した
BMPファイルを選択します。
(複数のファイルを同時に変換する場合は、[Ctrl] キーを
押しながら選択して下さい)
4. [.raw] ファイルの保存先を指定して、変換完了です。
(直接SDカードを指定して、書き込むこともできます)
|
・写真ファイルは、SDカードに書き込んだ順に表示されます。
|
2.スケジュール・ファイルの準備 (SDカード)
・誕生日や記念日のメッセージを表示するための、テキスト形式ファイルを準備します。
・Windows付属の「メモ帳」などのテキストエディタで、Schedule.txt ファイルを作成し、
SDカードに書き込みます。
・Schedule.txt ファイルは、下記の様なフォーマットで準備して下さい。
MM/DD,CC,Message1,Message2,Message3 |
MM/DD : 月/日 (1桁の場合は、必ずスペースを入れて、5文字の構成にして下さい)
CC : 表示色 re=赤 , bl=青 , bk=黒 , cy=水色 , ye=黄 , ma=桃色 , gr=緑 , wh=白
Message1 : メッセージ1行目 (16文字までの英数字)
Message2 : メッセージ2行目 (16文字までの英数字)
Message3 : メッセージ3行目 (16文字までの英数字) |
 |
・各項目は、カンマ[,] で区切って下さい。 ・日付ごとに改行をして下さい。
・メッセージの2行目と3行目は、省略することもできます。
(例)
1/21,re,Hanako's, birthday
12/30,bl,Taro's, birthday,test
|
|
3.電源投入
・電源が投入されると、下記の状態から動作を始めます。
○SDカードをチェックして、ファイルの状態を調べる。 (各エラー表示)
○日付は、2010年1月1日 0時00分00秒 からカウントを開始する。
○表示モードはセンサー制御、表示変更間隔は10秒。
|
4.表示モードの切り換え操作
・[Display Mode] スイッチを押すと、下記のように表示モードが切り替わります。
センサー制御 → 強制オフ → 常時オン
・表示の状態は、スイッチを押すたびに、時計表示の左上に表示されます。
AT : センサー制御 ON : 常時オン
・この表示は、写真の更新時に消されます。
|
5.表示変更間隔の選択
・[Interval Time] [+] [-] スイッチを押すと、写真を更新する時間間隔を選択できます。
3秒 , 5秒 , 10秒 , 30秒 , 1分 , 5分 , 30分 , 60分
・変更間隔は、スイッチを押すたびに、時計表示の右上に表示されます。
・この表示は、写真の更新時に消されます。
|
6.設定モード
・[Interval Time] [+] [-] スイッチを同時に押すと、設定モードに入ります。

|
・[Display Mode] スイッチを押すと、設定項目が切り替わり、
赤色反転表示されます。
・[Interval Time] [+] [-] スイッチで、設定値を上下できます。
|
・年月日時分 (秒は設定終了時に00秒となります)
・12/24h : 時間表示の、12時間制/24時間制を選択。
・SenTim : センサーが感知してから自動消灯するまでの
時間。 (1分、5分、10分)
・RefAdj : 温度測定用A/Dコンバータの、基準電圧校正。
(AVRの21ピンと GND間の電圧を測り、設定します)
・SetEnd : 設定終了。
(時計項目が変更されなければ、時刻データも更新され
ませんので、時刻以外の設定のみの変更も可能です)
|
・画面右下には、センサーの状態がテスト表示されます。 (ONとOFF)
|
7.エラー表示
 |
・通電中にSDカードを抜くと、左画面が表示されます。
・中央には、現在のプログラムバージョンが表示されます。
・SDカードを差し込むと、通常の表示に戻ります。
(写真やスケジュールデータの変更が可能です)
・AVR-DOS Error! AVR-DOSの使用方法を参照して下さい。
・Drive Error! "Config_MMC_JP_MPF328P.bas"ファイルを
参照して下さい。
|
|
○パーツの参考資料
・プリント基板 「サンハヤト」 感光基板 40K ガラスコンポジット 片面 1.0tx75x100mm
・スタンド 100円均一の透明写真立てを加工。 (後カバーは、1mmアクリル板をコの字型に加工)
|
|
|