title0a.gif

Memorandumの小部屋

本ページは金銭授受を伴う行為を含むAuctionや商用Web Pageからの無断リンク・無断参照を禁じます。
無断リンク・無断参照が判明した時点で然るべき処置をとらさせて頂きます。

お願い
 本ページに記載の内容は単なる紹介であり、動作を保証するものではありません。 また、本ページの紹介記事により何らかの不具合、損害を生じても当方は何ら責任を負いません。 皆様の自己責任のもとで下記紹介記事をご参考願います。

 本ページの携帯電話は既に使用できなくなっていますので、過去の製作・使用例として閲覧願います。 現状、現行世代への携帯電話用に改造する予定はありません。


電話で遊ぼ!!!

「いつでも電話かけるわ」の製作

( + DTMFデコータ)

1.背景

 キットの小部屋の「PICマイコンで携帯電話を操作するキット」で、簡単に携帯電話を操作できることを知りました。

 このキットでは「117への電話をかける。」、「アドレス帳に電話番号1件追加」の操作しかできませんので実用性のある用途への展開はできません。 しかし、このキットのおかげで、携帯電話の操作方法に関する情報の在処がわかりました。 「PICマイコンで携帯電話を操作するキット」はキットとしては部品の割りに高価ですが、情報源(その気にさせた)としては当方にとっては価格に見合うものでした。

 さて、そうなるとPICマイコンで携帯電話を操作してやろうという気持ちが湧いてきます。  


2.仕様の決定

 早速、目標仕様を決めます。 今回のゴールは以下のようにしました。


3.コネクタの入手

 まず始めに問題となるのは携帯電話に接続するコネクタの入手です。 そういえば、USB携帯電話充電器を持っていますが、これを確認しましたが、残念ながら充電に必要な+、ーの2ピンのコンタクトしか実装されていません。
 他にもないかとダイソーにいくと、下記のようなUSB充電器がありました。

【 使用可能なUSB充電器 】

 パッケージからコンタクト部分を覗くと全ピンとも実装されていそうです。 早速これをゲットです。

【 コネクタ内部コンタクト実装状態 】

 コネクタ部分を開けると下記写真のように全ピン実装されておりました。 105円、無駄になりませんでした。 今回の電子工作では、このコネクタだけを使用しますので1.5Ωの抵抗とUSBケーブル部分が不要となります。 なお、抵抗は1.5Ωが実装されていますが、新品なのに、何か焼けた後のような形跡がありました。

【 コネクタ部分内部 】

 なお、このコネクタの適合機種はパッケージ裏面に下記のように記載されていました。 下記リストには記載されていませんが、J−T05も使用できます。 (注意 : このコネクタが適合しても、本ページの基板が動作するとは限りません。)

出典 ダイソー パソコン用USB携帯電話充電器 D106

【 適合機種リスト 】

 今回使用しました「ダイソー パソコン用USB携帯電話充電器 D106」は、在庫分しかないようです。 mova自体も少なくなってきていますので、この製作記事の寿命も長くはないでのしょう。


4.「いつでも電話かけるわ」のハードウエアの製作

 コネクタも入手できましたので早速「いつでも電話かけるわ」の製作に入ります。 今回当方が製作した回路図を下記に掲載します。 この回路図は、本製作を行うに際して、(a)携帯電話がどのような通信を行うか解析、(b)PICマイコンのソフトデバッグ、等を行う環境も含めており、所定の動作をさせるためには不要な回路を含んでいます。 目的別に不要な回路を削除した場合については後述します。

 なお、今回製作した「いつでも電話かけるわ」は、「自動車携帯電話サービスを利用するための技術参考資料」で言う後位機器ということになります。

上図をクリックすると原寸の回路図をダウンロードできます。

【 「いつでも電話かけるわ」 回路図 】

 実際に製作した基板の外観を下図に示します。 コネクタが多いため部品実装密度が高くなっています。

【 「いつでも電話かけるわ」 基板外観 】

 

【 携帯電話J−T05接続状態 】

 

【 周辺回路配線状態 】

 下記写真は各コネクタに接続される周辺回路の配線状態です。

 右上段はCN2用RS−232Cコネクタです。 D−Subコネクタが2個あります。 オス、メスを変えることでCOM1とCOM2の差しか違えを防止しています。

 右中段はCN4でSW21とLED21です。 収縮チューブで抵抗を含めて絶縁処理しています。 この収縮チューブはダイソーで購入しております。 収縮チューブを安く入手できますので手軽に使用できるようになりました。

 右下段はCN3で送受信音声信号入出力信号です。 

 

【 注意 】

 「いつでも電話かけるわ」の電源投入時、または、携帯電話を「いつでも電話かけるわ」に接続した際に、意図しない発信を行うことがあります。 これらのタイミング時にはこのような発信のないことを確認して


5.「いつでも電話かけるわ」のソフトウエア

 今回作成したPIC16F648A−I/P用プログラムのHEXファイルを下記に掲載しています。 呼出の電話番号はデフォルトで「117」にしています。 下記プログラムを使用される場合は、下記のEEPROMのデータをご自分の用途に合わせて変更してご利用願います。

tel_con_r0.hex をダウンロードする。
 

 なお、大変申し訳ありませんが、動作確認が十分に終わっている訳ではありません。 当初はパソコンで携帯電話のエミュレーションをすることに気付かず、実際に携帯電話を使用してデバッグを行っていましたので電話代だけで数千円かかっていると思われます。(J−T05はプリペイド式で契約していますので、1通話当たりの電話代はとても高価なのです。)
 このような事情も有り、初期段階のデバッグが十分な検証までできていません。 パソコンエミュレーションは、プログラムが正常そうに見えるように動作し始めてから利用しだしましたので、物理層操作部分での検証段階では利用できておりません。 現在、意図しない時に携帯電話の発信を行う現象が一度発生し、その後再現していません。 上記プログラムをご利用される場合は自己責任でお願い致します。  (言い訳、大変です。)

 「DTMF受付発振音1回目+2回目+3回目+4回目+コマンド受付音サンプル」を聞く。
(最初のピッ音がボタンを押したときの音で、それに連続して続くピッ音が受付発信音です。)

 

EEPROMデータ一覧
EEPROM
アドレス
(HEX)
内  容 デフォルト値
(HEX)

00〜09

 連絡先の電話番号を設定します。 電話番号ボタンと設定データ(HEX)の関係を下表に掲載します。 

 HEXコードをアドレスの小さい(若い)順番に上位→下位の順番に設定して下さい。 デフォルト値は117番です。 

ボタン HEX ボタン HEX ボタン HEX
A

 連絡先の電話番後が「0123−45−6789」ならば、アドレスの小さい順番に「A1、23、45、67、89、00、00、00、00」となります。

 受信専用とする場合、電話番号データの先頭を「00」として下さい。 先頭のHEXコードが上記表以外であった場合は発信無しと判断しています。

 


ADRS:DATA
00 : 11
01 : 70
02 : 00
03 : 00
04 : 00
05 : 00
06 : 00
07 : 00
08 : 00
09 : 00


0A

RS−232C通信用クロック微調整用 (SPBRGレジスタ設定値数値)

 PIC16F648A−I/Pの15番ピンの発振周波数 fCLK を測定します。 その測定値を使って下記式からSPBRGレジスタ設定値数値を求めます。 この設定値をHEXコードに変換して設定して下さい。 (例 10進数で103の場合、HEXコードでは67となります。)

   SPBRGレジスタ設定値 = INT( fCLK×4/64/600−1+0.5)

      fCLKはHzの単位で計算して下さい。
      64:定数 600:ボーレート −1:定数 0.5:四捨五入用定数
 

 なお、00を設定するとfCLK=4.000MHz相当の10進数で103(HEXで67)をSPBRGレジスタに設定するようにプログラムされていますので、fCLKを測定できない場合は00を設定して頂いても構いません。 デフォルトでは67を設定しています。

 ご参考までですが、本紹介記事で使用したPIC16F648A−I/Pでは1.09MHzであったため、10進数で113を設定しています。

 


67

0B

 スイッチ入力RA0の論理設定をします。 「いつでも電話かけるわ」が発振する条件を論理的な表現で言えば、RA0が「倫理0を検出、その後に論理0→論理1に変化することを検出」となります。

 この際、論理0をLowレベルとするのか、Hghレベルとするのかの論理とレベルの相関関係を設定することができます。 下記設定は00もしくは01としていますが、正確にはビット0の値を論理判定に使用していますので、ビット0の値に着目して設定して下さい。
 

設定00

  「Lowレベル検出、その後にLowレベル→Highレベルへの変化を検出」
 

設定01

  「Lowレベル検出、その後にLowレベル→Highレベルへの変化を検出」

 


00

0C

 動作時のタイマです。 詳細用途は非公開とさせて下さい。 数値の変更をしないで下さい。

 


03

0D

 動作時のタイマです。 詳細用途は非公開とさせて下さい。 数値の変更をしないで下さい。

 


14

0E

 通話継続時間設定用タイマーです。 単位は[s]です。 デフォルトでは58s設定としています。 ただし、ソフトタイマを使用していますので、DTMF受付時の発振音発生時間分、時間が延長されます。

 


3A

0F

 動作時のタイマです。 詳細用途は非公開とさせて下さい。 数値の変更をしないで下さい。

 


14

10

 通話終了した後に、再度RA0信号を確認するまでの待ち時間設定用タイマーです。 単位は[s]です。 デフォルトでは25s設定としています。

 


19

11

 スイッチ入力RA0のチャタリング誤検知防止タイマーを設定します。 論理0→論理1に変化した際に、論理1が本設定時間継続した場合、論理1に変化したと検知します。 このタイマー以内に論理0に戻った場合は、論理1は認識されません。

 単位は[0.1s]です。 デフォルトでは5としていますので、0.5sを意味します。 なお、正確に言えば、0,1s間隔で合計6回RA0の入力を確認するだけですので、0.1sより短いレベル変化を検知することができません。

 


05

12

 動作時のタイマです。 詳細用途は非公開とさせて下さい。 数値の変更をしないで下さい。

 


03

13

 着信を検出してからオフフックするまでの着信待ち時間設定用タイマーです。 単位は[s]です。 デフォルトでは5s設定としています。

 


05

14

 DTMFで通話時間延長コードを検知した時点から通話終了までの通話時間再設定タイマーです。 デフォルトでは58s設定としています。 ただし、ソフトタイマを使用していますので、DTMF受付時の発振音発生時間分、時間が延長されます。

 


3A

15〜16

通話時間延長コード設定

 「いつでも電話かけるわ」の接続先の電話で、電話番号ボタンを押すことでDTMF音を発生させて通話時間を延長します。
 直近に押された4回分のボタンとここの設定を比較して、ここの設定と一致した場合、上記のアドレス14で設定された通話時間延長時間分通話が延長されます。

 デフォルトの設定は”000#”としています。 設定とボタンの関係を下記に示します。  

ボタン HEX ボタン HEX ボタン HEX
A

 


ADRS:DATA
15 : AA
16 : AC

17〜18

RA7リセット操作コード設定 (R7=Lowレベル設定)

 直近に押された4回分のボタンとここの設定を比較して、ここの設定と一致した場合、RA7=Lowレベルに設定するコマンドです。 

 デフォルトの設定は”070#”としています。 設定とボタンの関係を下記に示します。  

ボタン HEX ボタン HEX ボタン HEX
A

 


ADRS:DATA
17 : A7
18 : AC

19〜1A

RA7セット操作コード設定 (RA7=Highレベル設定)

 直近に押された4回分のボタンとここの設定を比較して、ここの設定と一致した場合、RA7=ひghレベルに設定するコマンドです。 

 デフォルトの設定は”071#”としています。 設定とボタンの関係を下記に示します。  

ボタン HEX ボタン HEX ボタン HEX
A

 


ADRS:DATA
19 : A7
1A : 1C

1B〜1C

RA7反転操作コード設定
  (R7=Lowレベル→High設定、もしくは、Highレベル→Low設定)

 直近に押された4回分のボタンとここの設定を比較して、ここの設定と一致した場合、RA7の出力を反転するコマンドです。

  コマンド受付前にRA7=LowレベルであればRA7=Highに設定。

  コマンド受付前にRA7=HighレベルであればRA7=Lowに設定。

 デフォルトの設定は”072#”としています。 設定とボタンの関係を下記に示します。  

ボタン HEX ボタン HEX ボタン HEX
A

 


ADRS:DATA
1B : A7
1C : 2C

   


6.動作確認ソフトウエア

 6.1 PC側ソフト

 「いつでも電話かけるわ」の製作に際して使用した動作確認用ソフトを下記に公開します。  下記をクリックするとダウンロードできます。

tel_con_v11a.lzh をダウンロードする。

 このソフトにはVB6ランタイムと、RS232C用にMSCOMM32.OCXが必要です。 動作確認はXPでしか行っていません。 また、RS−232CのCOM1、COM2の2ポートを必要とします。 

 動作確認ソフトtel_con_v11a.exeの起動時画面を下記に掲載します。 

【 tel_com_v11a.exe 起動画面 】

 このソフトを起動後、「端末通信開始」ボタンを押すことで操作できるボタンが受け付け可能状態となります。 実際に使用した場合の画面を下記に掲載します。

【 tel_com_v11a.exe 動作画面例 】

 受信レベルは定期的に携帯電話から「いつでも電話かけるわ」に送られてきます。 この送信間隔はキャリア(携帯電話会社)によって異なるようです。 NTTドコモは数秒間隔、ソフトバンクは0.5s間隔でした。 なお、受信レベルが変化したときにのみRS-232C送受信Windowに表示するようにしています。  しかし、受信レベルはアンテナ3本ではなく、細かくはアンテナ15本だったのですね。

 「端末通信終了」ボタンはRS−232CのCOM1,COM2を開放し、待機状態になります。 但し、RS-232C受信WindowとRS-232C送受信Windowのデータは保持します。

 

 6.2 携帯電話エミュレータ

 携帯電話を使せずにPCを携帯電話エミュレータとしてPIC16F648A−I/P用プログラムデバッグを行う場合、「いつでも電話かけるわ」にPCのCOM1ポートを接続し、「いつでも電話かけるわ」の回路図のSW1を下側に設定します。 また、PIC16F648A−I/Pの11番ピンと12番ピンをピンクリップで短絡します。 当然の如く、この際は携帯電話を接続してはいけません。

 この状態で上記PCソフトを起動して右下の各種操作ボタンを使ってデバッグします。 なお、オフフックしてから発信音のトーン検知までの待ち時間は0.5sと短くなっています。 「HEX Code」欄に事前に21(発信音トーン有り)のコードを入力しておき、オフフック後、即座に「HEXコード送信」ボタンを押す必要があります。


7.応用回路

 今までの紹介ではデバッグ回路を含めた回路図ですが、運用だけを考えた場合は不要な回路を含んでいます。 実際に製作しての動作確認をしていませんので回路図上だけでの紹介です。

7.1 パソコンとの接続が不要な場合
    (下図をクリックすると原寸大の回路図をダウンロードできます。)

【 パソコン接続不要な場合 】

 

7.2 DTMF回路は必要であるが音声入出力が不要な場合
    (下図をクリックすると原寸大の回路図をダウンロードできます。)

【 音声入出力不要な場合 】

 

7.3 発信、もしくは着信だけできればよい場合
    (下図をクリックすると原寸大の回路図をダウンロードできます。)

 この場合、音声入出力は携帯電話内蔵のマイクとスピーカを利用することになります。

【 発信、もしくは着信のみの場合 】

7.4 DTMFデコータ

 上記の製作例は携帯電話を対象としていますが、「いつでも電話かけるわ」の一部機能を切り出すと機能は低いもののDTMFデコーダとして使用できます。

 今回の「いつでも電話かけるわ」のIC3,IC4を使用すると、DTMFデコーダとして使用できます。 PICマイコンのプログラム次第でどのようにでもなります。 秋月電子通商の「PIC DTMF Decoder Kit」と同じ機能を製作するのも容易です。

 以下に「いつでも電話かけるわ」のプログラムをそのまま利用して、音声入力ラインからDTMF信号を入力してRA7の出力を制御する機能の回路図を記載します。

【 DTMFデコータ 】


8.最後に

 今回の製作例は携帯電話を対象としていますが、本来は持ち運ぶことを前提にした携帯電話を固定電話的な使い方としています。 ちょっと利用し甲斐がないかとは思いますが、プリペイド携帯を使用すれば月々1500円相当で済む電話でセキュリティ機器っぽい使い方もできるのかなと思います。

 携帯電話とPCを接続する例としてはアドレス帳の編集目的では比較的多くの事例が紹介されているようです。 しかし、携帯電話と「いつでも電話かけるわ」で今回紹介したような制御機器としての使用方法もできる事例として紹介させて頂きました。

 PCと携帯電話を接続すると、セキュリティ機器やデータ収集機器としてもっといろいろ活用できるようです。  また、今回紹介しています回路やプログラム容量にもまだ余裕が残っていますので、DTMF制御点数増加、連絡先の複数化、連絡先自動選択機能など、用途があれば機能拡張のアイデア は沢山あります。 是非、皆様に拡張して頂ければと思います。 


 Memorandumの小部屋 へ戻る      ホームページへ戻る


End of This Page.