製作

2009年11月 2日 (月)

CQ誌の4LEDバッテリモニターの製作

Cq_battmonitorCQ誌、2009年10月号の特集、アマチュア無線家の製作実験アイデア集の中で、移動運用などのバッテリの電圧を監視するモニターをPICマイコンを使って製作しているものがあったので同じように作ってみました。

10V~14V程度の電圧を、3端子レギュレータで5Vに下げてPIC12F675を動作させます。PICは、AD変換器で、供給電源の4分の1を測定して、電圧を知ります。電圧が、バッテリとして適正であるかを判断して、LEDを点灯させます。

LEDは、赤、黄、緑、青の4色に分かれており、それぞれ単色で点灯と、その中間を示すために、隣接する2色が点灯する合計7種類があり、バッテリの電圧を示しています。

バッテリの電圧が、過充電(青)、適正(緑)、注意(黄)、警告(赤)というように、色が意味を示しています。

PIC12F675は、8ピンのPICで、10F200のような使いにくさはありません。16F84Aなどと同じようにプログラムできます。12F675を内臓発振4MHzで動作させ、内臓のAD変換器で電圧を測定します。ポートはLEDを直接駆動可能なのでそのまま接続されています。

Cq_battmonitor1ちょうど、ニッケル水素電池10本による12V電源があったので、その電圧を表示するために組み込んで見ました。LEDは3φの物を使っていますが、形が揃わないので見栄えがよくありません。

この電源は、もともとは小電流用なので、電源表示LEDはつけていませんでしたが、電圧が表示されるようになれば、電池の消耗が分かるので、電流を流す使い方が出来ると思います。

電源を入れると、赤、黄、緑、青の順に点灯した後、電圧を表示します。

Cq_battmonitor2内部は、基板一枚が取り付けられています。

オリジナルの回路には、9.6V(8本)に対応したモード2があるのですが、スイッチを長押しすることでモードが切り替わります。今回の電源は、12V(10本)用なので、このスイッチは省略しました。

4LEDバッテリモニターの消費電流が、使用する電流に較べて無視できないような場合には、スイッチで切り離せるようにしたほうがよいかもしれません。そのときには、電源スイッチを3ポジションスイッチとして切り替えるのがよいかもしれません。

2009年10月30日 (金)

秋月、カラーグラフィックLCDモジュールで、秋月版デモ

Cgrlcdakidemo秋月で販売されている「カラーグラフィックLCDモジュール」を、添付されている資料を基に製作してみました。

資料に載っている回路は、16F84Aを使った簡単なものなのですが、カラーグラフィックLCDモジュールの裏のシールドの半田をはずしてみたところ、その細かさに驚きました。

液晶モジュールのコネクタは、0.5mmの36ピンフレキケーブル用のものなのですが、このケーブルさえ手に入れば、回路をそのまま製作することはそれほど難しいことではないと思います。しかし、一般にはフレキケーブルは入手できないので、液晶モジュールの裏のパターンの何箇所かにリード線をはんだ付けしていく必要があります。

資料を見ると、ほとんどは大き目のチップ抵抗やチップコンデンサの片方につなげばよいようになっていましたが、DE端子(1ピン)をはんだ付けするチップ抵抗は小さすぎました。そこで、コネクタの1ピンにはんだ付けしました。また、不明な3本の端子は、チップ抵抗などがないためはんだ付けしませんでした。

初め動いたときには、スイッチを押し続けるとカラーバーが出るようになりましたが、これは、テストモードになっているようでした。資料の回路では、RGBに対応した3つのボタンを押すと、それぞれの色が画面いっぱいになるというものです。

はんだ付けなどを見直した結果、ようやくデモの意図した動作をするようになりました。ただし、押したボタンの補色になります。目的の色を出すには、その色のボタン以外の2つのボタンを同時に押すことで表示できます。

Cgrlcdakidemo_r 16F84Aのプログラムを変更して、押したボタンの色を表示するように直しました。

ボタンは同時に押すことが出来、合計7色表示できます。

表示には、バックライトが必要であり、冷陰極管点灯用のインバータで高電圧を印加する必要があります。

これだけきれいに表示できれば、ドット単位の表示で、きれいな画面が表示できるはずです。

Cgrlcdakidemo_g「なる研」のサイトに解析情報があると教えていただきました。今は各色の6ビットを同じにしていますが、6ビットそれぞれを変えることで濃度を変えることが必要になるようです。

そのためには、コネクタに接続するフレキケーブルとコネクタの入手が必要となりそうです。探してみたのですが、コネクタが入手できないようでした。

代わりに、サンハヤトのフレキシブルコネクタ基板を利用する方法もあるようですが、厚みが薄くて、接触がよくないようです。

Cgrlcdakidemo_b とりあえず、秋月版デモは、動作させることが出来ました。これから得られた経験は、基板にリード線をはんだ付けするのは難しいということでした。

先へ進めるには、コネクタの入手が決め手となりそうです。

なお、解析資料によると、この液晶モジュールは、画像を記録しておくフレームバッファ用のメモリを内蔵していないようで、表示している間、画像のデータを送り続けなければならないようです。つまり、本来は液晶表示コントローラが別に必要で、それを介してマイコンをつなぐようにしなければならないようです。

しかし、実験で画像を表示するだけなら、マイコンから画像のデータを繰り返し送り続ければよいようです。

電圧の具合にもよりますが、色はとてもきれいです。

2009年10月24日 (土)

「センサの素」の加速度型ラジコン送信機

16f785_accelradiocon 書籍「センサ活用の素(2)」にでている、ライントレーサ車をラジコン車として使うラジコン送信機として、加速度センサを使用するタイプのものを製作しました。

ラジコンとしては、ジョイスティックを使用したものと変わりはありませんが、前進後退や、旋回を指示する方法が、送信機を傾けることによって行なうようになっています。

前進は、送信機を起こすようにすることで行い、後退は、送信機の先を下ろすようにします。旋回は、左右に傾けた方向に旋回します。

感覚としては、送信機を向こうに押し出すと前進、手前に引き戻すと後退と思ってしまうので逆のような感じがしてしまいます。

加速度センサは、重力加速度のセンサのようで、回転させたときの速度の変化を検出するものではないようです。送信機を傾けたままにすると、後退のままを維持し、元に戻すと静止するというようになります。どんどん傾けなければならないことはないので、操作は容易でした。

高価なジョイスティックを使用しなくてよいので安価に製作できるのが利点ですが、やはり、ジョイスティックの操作性はよいようです。

2009年10月15日 (木)

「センサの素」のジョイスティック型ラジコン送信機

Radiocon_joystick 書籍「センサ活用の素(2)」の、ジョイスティック型ラジコン送信機を製作しました。

ストロベリーリナックスで販売されている、315MHzのAM送受信モジュールを使用して通信します。変調は、RS232Cの1200bpsのデータでAM変調します。通信は、近距離で、エラーの場合には無視するだけでよいので簡単な方式が取られています。

この製作の目玉であるジョイスティックは、「ツバメ」のTX-26PRを使用しています。スティックを傾けても、離すと中点に戻るようになっています。スティックを前に傾けると先進、後ろに傾けると後退ですが、左右に傾けたのでは左右に旋回しません。前進(または後退)しているときに、左右に傾けられていると旋回するので、斜め前、または斜め後ろに傾けると旋回します。

ラジコン車は、ライントレース車として使用すると、コースを作るための広い場所が必要になりますが、ラジコン車の場合、狭い場所でも、前進後退、旋回をできるので楽しめます。

ジョイスティックを初めて使用しましたが、ラジコン以外に何かに利用できそうな気がしました。

「センサの素」のラジコンカーを製作

Radiocontrolcar_rx 書籍「センサ活用の素(2)」の、ライントレーサ車のハードをそのまま利用した、315MHz受信のラジコン車を製作しました。

始めに、ライントレース用のフォトセンサも、無線受信モジュールも取り付けない車体のみを製作しました。DIPスイッチの1番をONにすると、テストモードとして、前進後退を繰り返します。

無線受信モジュールは、315MHzのAM用のもので、3Vで動作するタイプのものです。

プログラムは、書籍にアルゴリズムをわかりやすく説明するためのものなので、簡単なしくみとなっています。ラジコン送信機から315MHzのAMで変調された1200bpsのデータが送られますので、それを受け取って、前進後退、旋回などをします。

プログラムのソースを見て、簡単な仕掛けでこれだけのことが出来ると知ることが、書籍の目的としたことでしょう。プログラムを工夫すれば、もっといろいろなことができると思うのですが、何をすれば更によくなるのかが思いつきません。

書籍では、このラジコン車を使って、「ジョイスティック型ラジコン送信機」と、「加速度センサ型ラジコン送信機」で制御します。コマンドも簡単なので、それ以外のラジコン送信機を製作することも出来ると思います。

低電圧I2C液晶モジュール(3.3V)

I2clcdストロベリーリナックスで、2.7V~3.6Vで動作する、16文字x2行表示の液晶モジュールを購入しました。マイコンから液晶モジュールにデータを転送するためにI2Cを使用しますので、ピン数の少ないマイコンでも使うことが出来ます。

16文字x2行のキャラクタ表示のほかに、12セグメント分のシンボルを表示できます。

コマンドは、HD44780互換となっていますが、多少の違いがあります。その一つとして、コントラストの調整をコマンドで行ないます。サンプルソフトでは、3V用に調整されていましたので、3.3Vを印加すると濃すぎました。サンプルプログラムを修正して書き込むとちょうどよくなりました。

I2clcd1サンプルプログラムは、AVRのATMEGA168用が提供されます。サンプルでは、I2Cをハードウェアで行なっています。8ピンのマイコンなどでもI2Cは可能なので、小さくまとめ上げることができます。

2.7V~3.6Vという電圧は、乾電池駆動にちょうどよいようにも思えますが、電圧が変動したときには、液晶のコントラストが大きく変化してしまうので、調整する機構を設けておく必要があると思います。

3.3V系のマイコンであれば、電圧が安定しているので、コントラストは一度あわせておけばよいようです。

LCDコントローラの電圧範囲が、2.7V~5.5Vとなっており、5Vでも動作させることが可能と、説明書にでていますが、その場合、コントラストはかなり絞らなければならないようです。8ピンのPICなどでも使ってみたいと思います。

2009年9月24日 (木)

圧電振動ジャイロで、方向をLEDで表示

16f785_directionled 秋月の「圧電振動ジャイロキット」は、回転させた方向を、2軸で検出して電圧の変化で示してくれますが、直感的に変化がわかりにくい点があります。

キットの基板は、半分がユニバーサルエリアとなっていて、Vカットで切り離すことができるようになっています。

PIC16F785を使って、2軸の電圧の変化をAD変換機で読み取り、変化したときにその方向を示すようにLEDを点灯させるプログラムを作ってみました。PICは、AD変換器と、LEDが4個点灯できればこれに限ったものではありません。

基板を傾けると、傾けた方向のLEDが一瞬点灯します。加速度センサなので、変化したことを検出するものなので、傾けるとその方向のLEDが点灯し続けるわけではありません。

圧電振動ジャイロキットは、半分がユニバーサル基板となっていますが、直感的に動作が解るようにするなら、このような回路が組まれていれば解りやすくなると思いました。

なお、AD変換でセンサの出力を読み取るとき、AD変換のリファレンス電圧をVDDとしているので、電源電圧が変動すると、AD変換の読み取り値が変化してしまいます。プログラムでは、静止の電圧から変化したときにLEDを点灯するようにしているので、静止の電圧が変化してしまって変化を検出しづらくなることがありました。
電源を入れたときに、静止状態の電圧値を読み込んでキャリブレイトできるようにしたほうがよかったと思いました。

秋月、極細冷陰極管+小型インバータ

Aki_reiinkyokulamp秋月キットの極細冷陰極管(1.8mmφ 9cm)+小型インバータ点灯セットを組み立ててみました。

小型インバータに5Vを印加すると650Vrms程度を発生し、冷陰極管が放電発光するものです。明るさはまぶしいくらいに輝きます。

極細冷陰極管は、いろいろなサイズがありますが、キットに含まれていたのは外径1.8mm、長さ91mmのものです。

組み立てに際して、高電圧になるので感電しないように書かれていますが、冷陰極管は、両端にリードが出ている細いガラス管なので、折れないように注意する必要があります。キットの輸送のために、折れないために一本予備が同梱されています。

2本あると、並列にして点灯したくなりますが、点灯できるのは1本という注意書きがありました。1本を蛇の目基板に組み立てましたが、余った一本を何かに応用できないかと考えています。

用途として、液晶のバックライト光源、FAX・スキャナ用光源、複写機のイレーサー用光源、各種表示・装飾用光源、その他ディスプレイ用光源などが挙げられています。

カラーグラフィック液晶モジュールとセットになったキットがありますが、液晶モジュールのバックライトが冷陰極管によるものなので、小型インバータが利用できるということのようです。

2009年9月17日 (木)

「センサ活用の素」の正弦波発生器を製作

16f785_sinewave 書籍「センサ活用の素(2)」にでている正弦波発生器を製作しました。マイコンにオペアンプ2個を内蔵している16F785を使用し、オペアンプによりウィーンブリッジ回路で正弦波を発生させています。

発振器自体は、内臓のオペアンプだけで出来てしまいますが、残ったマイコンにより周波数カウンタを作り発振周波数を表示しています。

周波数は、200Hz~40kHz程度が発振できます。ウィーンブリッジによる発振器は、正弦波が発生できますが、オペアンプのゲインを適切な値に合わせていなければなりません。ゲインを適切に調節するために、出力信号を検波して、アナログフォトカップラを通してフィードバックすることで安定化を図っています。

小型(薄型)に製作するために、リチウムイオン電池(3.7V)を使用していますので、電圧を液晶モジュールで必要な5Vの昇圧する必要があります。マイクロチップ社のMCP1253-33x50を使用することで昇圧できるのですが、SOP-6パッケージは小型なので、はんだ付けが難しいので、頒布されているパターン図により、感光基板でプリント基板を作りました。

オペアンプ2個でウィーンブリッジ発振器を構成するだけなので、回路は簡単です。

組み立てるとうまく発振しましたが、初めて電源を投入すると発振せず、一度電源を切って再度入れるとうまく発振するようです。原因は不明ですが、放置してあった後は電圧が下がっていて発振しないが、再度投入すると電圧が上がっているので発振するというようなことなのでしょう。2回電源を入れればいいということで、深く追求しませんでした。

発振したので、パルス波でなく正弦波とするために、アナログフォトカップラによる帰還を調整しなければなりません。簡単な方法は、出力をオシロで観測して、波形が正弦波になるように調整することです。

オシロとして、パソコンをオシロに変えるソフトオシロ2を使いました。トラ技にdsPIC基板が付録についていたときにCDROMに収録されていたものです。見てみると、いくら調整してもパルス波のままで正弦波になりませんでした。理由は、発生している正弦波のレベルが3Vの振幅があるため、パソコンのサウンドカード入力では飽和してしまうためでした。サウンドカードでは、1.5Vp-p以下にしなければなりません。

正弦波発振器の出力にレベル調整を入れて再度測定しました。調整すると、見かけ上はきれいな正弦波となりました。ウィーンブリッジは、きれいな正弦波が発振できるので、これで問題ないと思います。

ソフトオシロ2を、FFTアナライザとして、発振器をスイープさせてみると、レベルが変化しないで周波数だけ変化していきました。

オーディオ帯域が発振できるので、歪率の測定は無理でも、周波数特性の測定には使えそうです。

秋月、圧電振動ジャイロキット

Aki_gyrosensor 秋月キットの「圧電振動ジャイロキット」を組み立ててみました。

角度の検出のセンサは多数ありますが、このキットで使われているのは、村田製作所の圧電振動ジャイロ(ENC-03R)で、振動体に回転角速度が加わると、コリオリ力が発生するという原理を応用した角速度センサです。

電源電圧2.7~5.25Vを供給すると、0.67mV/deg./sec.の感度で電圧を発生します。推奨回路では、この出力を、直流分をカットした後、NJM2115の非反転増幅器で10倍に増幅するようになっています。

このキットは、この推奨回路をそのまま2組分回路化したものとなっています。

このセンサを使えば、ロボットなどの姿勢制御、カメラの手振れ検出などに利用できます。

出力をテスタで測定しながら角度を変えてみると、静止時1.4Vから、0~5Vの範囲で変化するようです。この出力をマイコンのAD変換器で読み込めば、傾けた方向などを表示することができると思います。

このキットのほかに、圧電振動センサモジュールとして使えるものもあります。各部の動きを中央のCPUで把握したいようなときに利用するとよいと思います。

2009年9月15日 (火)

ID-80用GPSユニット製作

Gps_gt720 ID-80は、専用GPSマイクがあるのですが、マイクコネクタを接続すると電波のとびが悪くなるような気がしたので、データ端子に接続する外付けGPSユニットを製作しました。

使用しているGPSモジュールは、GT-720Fで、VX-8用にケースに入れてあったものなのですが、電池ボックスが別になっていたので持ち歩きに不便でした。

今回は、電池ボックスを一体とするために、電池ボックス付きのケース(タカチLM140C)に収めました。これにより、片手にID-80、片手にGPSボックスとすることができ、持ち運びやすくなりました。

GPSモジュールをケースの中に収めてしまうと、受信状態を示すLEDが見えなくなってしまい、衛星捕捉したかどうかがわからなくなってしまうので、ケースの横に穴を開けてLEDが見えるようにしました。

ID-80は、GPSからデータが送られてくると、液晶画面に「G」マークが点滅し、捕捉すると点灯したままになるので、GPSモジュールのLEDが見えなくても不都合はありません。

GT-720Fは、消費電力が大きめであるものの、感度はよく、専用のGPSマイクよりもよいぐらいです。実際に運用してみると、多少左右に位置がぶれていることがありますが、受信できなくなることはないようでした。

ID-80(ID-91)に利用してなかなか良好でしたので、VX-8用に作ったケースのほうも電池ボックス一体にしたほうが持ち運びがよくなると思います。

2009年9月 7日 (月)

秋月、白黒CCDカメラ(魚眼レンズ)

Aki_ccdcamera秋月キット、「モノクロカメラ CCD(魚眼レンズ)」を試してみました。(型番:IBC-25E-W)

35mmx40mmの基板2枚が、フレキシブルケーブルで接続されていて、電源ジャックと、ビデオ出力コネクタを接続するだけで使えます。

CCDでほとんどの処理が行なわれるので、外付け部品は多くはありません。

ビデオ出力を、テレビやパソコンのビデオ入力に接続し、12Vの電源を加えるだけで動作します。

CCDの前に設置されているのは魚眼レンズとなっていて広角の画像が得られますが、同じ基板でレンズをピンホールとしたものもあります。

Aki_ccdcamera2 画像はモノクロですので、カラーに較べて鮮明さがないように感じてしまいますが、画像ははっきり映っています。

写真では、モニタカメラを写したので、画面の中のモニタ画面の中に更にモニタガ映っています。

組み立ててケースに入れれば防犯カメラとして使えますが、アマチュアテレビのビデオ入力として使用すれば、白黒になりますがビデオ入力として使うことも出来ます。

値段は、2250円でした。

2009年9月 2日 (水)

センサ活用の素のGPSロガーを製作

Gps_sdloger書籍「センサ活用の素②」の、GPS-52を使用した、SDカードに保存するロガーを製作しました。

SDカードにFAT16で保存するために、マイクロチップ社のFATファイルシステムを使用しますが、そのためにCPUにPIC24FJ64GA002を使用します。このCPUが選ばれている理由は、FATファイルシステムを使用するためです。

GPSモジュールには、すこし古くなりましたが、ポジション社のGPS-52を使用します。GPS-52をサブ基板に取り付け、連結コネクタで本体基板と接続します。

書籍では、サブ基板は銅箔が表になるようになっていますが、感光基板で製作するとき裏焼きになってしまったので、銅箔が裏面となってしまいました。銅箔はGPS-52のアンテナの役割も果たしていますが、裏でも問題ないと思います。

Gps_sdloger2電池に、3.7Vのリチウムイオン電池を使用しているので、5Vへの昇圧のためにDCDCコンバータが必要になります。これは、MCP1253-33x50を使用します。

CPUやGPS-52は、3.3Vで動作するので、3端子レギュレータのNJM2845DL1-33で3.7Vから下げるようになっていました。NJM2845DL1は、電圧降下が0.18~0.28Vなのでそれが可能ですが、入手可能だった48M033では、電圧降下が大きくてそのままで使用できません。そこで、48M033は、DCDCコンバータで5Vに昇圧した後へ接続しました。

SDカードスロットは、何度も使用していますが、WPがLOWにしかならないものが多いようです。そこで、SDカードのLOCKの溝を検出するばねの接触先をすこし曲げて、LOCKのときにLOWとならないようにしました。こうすると、通常とLOCKが逆になってしまいますが、GPSロガーでは、正常に動作しました。ソフトが変更してあると思われます。

動作させてみると、GPSが受信され液晶に表示されます。また、SW1を押すとSDカードに書き込まれます。SW2は、GPSの電源制御のためとなっていますが、ダウンロードしたソフトでは、SW2は無効になっているようです。

SDカードを使用するには、PIC24FJ64GA002が定番となっているようです。何かに利用してみたいと思います。

秋月、FT-2232D USB-シリアル2CH変換モジュール

Aki_ft2232d 秋月の「FT-2232D USB-シリアル2Ch変換モジュール」を使ってヌルモデムを製作しました。

FT-2232Dは、FT232とFT245を2チャンネル内蔵した、USBに接続すると、COMポートが2チャンネルインストールされるモジュールです。

一つのICで、COMポートが2チャンネル使えるようになるので、その出力同士をクロスに接続すれば、COMポートに出力したデータが、もう一方のCOMポートから入力できるということで、パソコン内で、二つのアプリの間をつなぐことができるようになります。

初めデータのみを接続したところ、データがオーバーランしてしまったのですが、フロー制御すればうまくいくという情報をいただいたので、RTS-CTS、DTR-DSRを接続してハードウェア制御を指定したところうまくいきました。

FT2232は、以前にチップで購入して試してみたことがあったのですが、RTS-CTSまでしか試していなかったのでうまくいきませんでした。

確認には、それぞれのポートにハイパーターミナルをつないでいるのですが、画面のスクロールが遅くて、シリアルの転送がうまく制御されていても画面がフリーズしてしまうことがあるようです。TERA TERMでは、そのようなことは起こりません。

2つのポートは、うまく動作しているようです。この40ピンのモジュールに、ADM3202をつないでRS232Cレベルとすれば、USB-シリアルケーブルを2本つないだことになります。

秋月、1.5V電池・白色LED投光キット

Aki_whiteled 秋月キット「1.5V電池白色LED投光キット」を組み立てました。赤や緑のLEDは、Vfが1.4V程度なので、乾電池一本でも点灯することができますが、白色や青色LEDは、Vfが2.4V程度なので乾電池一本では点灯せず、昇圧器が必要になります。

このキットでは、昇圧器を単3電池のサイズに収めることで、単3電池2本の電池ボックスを改造して、白色LED投光器を製作します。

回路は、LMC555による発振器の出力を、乾電池につないだインダクタをオンオフすることで逆起電力を発生して昇圧します。通常では、この後にショットキーダイオードとコンデンサーがありますが、つなぐのが発光ダイオードであるため、省略しています。

取扱説明書は、回路の説明ではなく、リード線何センチを用意するなどと、電子工作キットのようです。

説明書のように組み立てると、白色LEDが明るく点灯しました。組み立ては、電池ボックスをうまく使ってポケットライトのように組みあがります。

2009年8月 6日 (木)

秋月、KIC-125スイッチング電源の製作

Aki_kic125a秋月キットの、スイッチング電源キット(KIC-125使用)を組み立てました。16V~24V入力すると標準で12Vの5Aが取れるKIC-125(DC/DCコンバータ)を使用した電源キットです。

電源キットは5A取れますが、5Aのトランスはとても大きいので、手元にあったケースに入る1Aのトランスを使用しました。

16V1Aのトランスならば小型なので、タカチMB-4に収めることが出来ました。

電流の取れる電源を作れるキットではありますが、この電源で一番気に入っているのは、ケースが小型のところです。一応、12V1Aでの使用を考えています。

Aki_kic125b KIC-125モジュールは、標準では、12V固定出力となっていますが、キットのように可変抵抗で電圧を調整できるようにしています。4V~21Vぐらいの範囲が出力できるようです。

電圧の調整ですが、テスタで電圧を測りながら調整するようにしています。本来ならば、電圧計をつけるところですが、ケースが小さくなったので取り付けることができませんでした。

ラジケータなどをつけて、ラジケータとの直列抵抗を調整しておき、希望電圧のときにメータの100%値になるようにしておけば使いやすくなると思います。

2009年7月31日 (金)

秋月、TA7252AP、5.9Wオーディオアンプ

Aki_ta7252_59wamp 秋月キットの、東芝TA7252APオーディオアンプキット(モノラル)5.9Wを製作しました。

電源電圧13.2Vにおいて、5.9W(負荷4Ω)、9.6W(負荷2Ω)の出力があり、電源電圧は9~18Vに対応します。

AV家電、ゲーム機、パソコンなどの用途に向き、熱遮断、対電源サージ(過電圧)、負荷短絡などの各種保護回路を備えています。

今まで持っていたスピーカが1W程度のものだったので、10W、8Ωのものを2つ購入してつないでみました。音は、スピーカの影響もあると思いますが、iPODshuffleの音が、コンポにつないで聞いているように聴こえました。

キットを組み立てるときに、専用基板を紛失してしまっていることに気づき、蛇の目基板で組み立てました。取扱説明書の部品配置のように組み立てるとICのピンに最短になり簡単に組み立てられました。

アンプのキットを2つそろえてステレオアンプを作るよりも、2つのスピーカを箱に入れ、アンプ内蔵にしてアクティブスピーカを作るのがよいように思えました。アンプとしては、オーソドックスで、素直な音がするようです。キットとして、値段も安く(500円)、パワーの必要なときに利用できそうです。

イージャキーノ用のプロトシールドの製作

Ej_protoshield1eJackino(イージャキーノ)は、Arduino(アーデュイーノ)の互換ボードですが、拡張基板(シールド)を接続するコネクタに若干違いを持っています。

Arduinoでは、シールドの誤挿入を防ぐために、8ピンコネクタと8ピンコネクタの間のピッチが狭くなっており、コネクタがずれるとさせないようになっています。一方、eJackinoでは、同じコネクタもあるのですが、一列ずれたところに等間隔のコネクタがあります。

電気的には、まったく同一ですが、シールドのほうをあわせなければなりません。エレキジャックNo.12の第1特集ではeJackinoの製作に続き、簡単に組み立て、分解のできるプロトシールド(試作拡張基板)を製作しています。

配線をするためのブレッドボードを備え、LEDなどの部品をその上に組むことができるようになっています。材料も、Cタイプガラスユニバーサル基板、ブレッドボード(EIC-15010)、連結フレーム(2列x20ピン)、タクトスイッチなどで、すべて秋月電子で入手できます。店頭で探したら見つけることが出来なかったので、通販で入手しました。

上の写真は、サンプルスケッチFadingを実行するためのLEDを組んだものです。

Ej_protoshield2 同じプロトシールドを使用して、8x8ドットのLEDを表示することができます。配線は、8本+8本の16本を結線するのみで、コネクターの順番にLEDの端子に接続すればよいようになっています。

8x8ドットLEDの端子は、セグメントの順序に並んでいませんが、順序をあわせるのはソフトで行ないます。

エレキジャックのホームページからダウンロードした表示用のスケッチをアップロードすると、しばらくして、「eJ」の文字がスクロールしながら表示します。

Arduino開発環境を実行するときに、ユーザ名に全角文字を含んでいるとうまく動作しません。サンプルスケッチをそのまま実行することはできるのですが、修正したり、新たなスケッチを作るとき(つまり、セーブが必要なとき)アップロードでエラーとなってしまいます。

Arduinoを使い始めたときには、LEDをつけたり、可変抵抗をつないだり変更が多いですが、そのようなときにはこのプロトシールドは便利だと思います。すでに作られたスケッチは、組み立てる手間だけですんでしまいますが、自分で題材を見つけて製作するときには、LEDのピン割り当てなど確認しなければならないことは多くあると思います。それを越えて思ったように動作したときの喜びは大きいと思います。

2009年7月22日 (水)

エレキジャック13号のGPSロガーの製作

Ej_gpslogger エレキジャックNo.13の付録基板を使って、SDカードに記録するGPSロガーを製作しました。

GPSが捉えたデータを、カシミール3Dの保存形式でSDカードに記録することで、移動先から帰宅後、SDカードをパソコンに読ませて、カシミール3Dの地図上に軌跡を表示することができます。

回路は、ほとんどの処理をPIC18F2550によって行ないます。PIC18F2550は、USB機能のついたマイコンですが、USB機能は使わず、PIC18Fの中で一番入手しやすいから使用していると思います。コンパイラには、著者が好みらしいMikroCコンパイラを使い、SDカードのアクセスは、ライブラリ関数を利用しています。プログラムは、ソースも含めてダウンロードできますが、ライブラリを使用しているため、簡単なものとなっています。

組み立ては、書籍に出ているように組み立てるのがよいようですが、電源を入れると、3つのLEDが同時に3回点滅します。その後、LED2が3回、LED3が3回点滅しますが、どれかの初期化がうまく出来ないときには、違うLEDが点滅したままになってしまいます。

初め、LED2が点滅せず、LED3が点滅したままになってしまいました。これは、SDカードの初期化が出来ないときとのことですが、SDカードを、8MBのものから2GBのものに変えたら動くようになりました。

その後、LED3が点滅しないのですが、これは、GPSからデータが来ていないようです。原因として、使用したGPS(GP-720F)が、他で使用していたものを流用したのですが、ボーレイトを4800bpsに変更していたことを思い出し、9600bpsの戻したら動作するようになりました。GPSが衛星捕捉すると、LED2が点灯したままになりますので、SW1を押すと記録を開始します。

移動が終わってSW2を押すと記録が終了します。このSDカードを取り出して、パソコンで読み出し、カシミール3Dで読み取ると軌跡が記録されました。

動作することは確認できましたが、実際に使うためにはもう一工夫が欲しいところです。ソースも公開されていますし、MikroCコンパイラも無料で入手できるようなので、自分なりに工夫してみるのがよいようです。

アーデュイーノ互換マイコンボードの製作

Ejackino フィジカルコンピューティングとして、Arduino(アーデュイーノ)が注目されています。この基板は、それの互換としたeJackino(イージャキーノ)で、書籍「アーデュイーノ互換マイコンボードを作る」の付属基板を使用して製作するものです。

フィジカルというと、ロジカルに対して直接マイコンに密着したものと思えてしまいますが、ここでは実体のマイコンはうまく組み上げられていて、コンピューターとしての基本動作を解りやすく使ってみるための形態として使うことが出来るようになったものということが出来ます。

もちろん、直接ポートにLEDをつけてオンオフすることなどの実態的なものでもあります。

本家Arduinoも値段は安いので、わざわざ基板の付属した本を購入して組み立てて見なくても、入手するのは容易ですが、プロトシールドなどを載せるコネクタの割付や、ATmega168などへのブートローダの書き込むなどの手順がしっかり用意されていることから、それを辿りながら楽しむことが出来ます。

書籍に付属のeJackino基板は、ATmega168と、秋月のAE-UM232Rが主な部品です。それ以外には、コネクタと電源ぐらいしかありません。

手順どおりに組み立てたところで、ブートローダの書き込みを行ないますが、これもAVRライタを使わずに済む方法が用意されています。ブートローダ書き込みケーブルをセットしてソフトを起動します。ブートローダが書き込まれれば、プログラムはブートローダが読み込むのでAVRライタは必要ないというわけです。

開発環境と接続して、「BLINK」を転送してみました。実際に使うのは、ポートにLEDなどを配線して動作を見ることになるので、プロトシールドを製作してからにしたいと思います。

2009年7月 6日 (月)

秋月、トライアック万能調光器キット

Aki_triak秋月キットの「トライアック万能調光器キット(20Aタイプ)」を組み立てました。

トライアックとして、STマイクロ社のBTA24-600CWを使用して、20Aまで制御できますが、放熱器の関係で、トライアックの発熱量[W]=トライアックのVTH(オン電圧ー1.5V)x負荷電流であり、10A(15W)で必要になる放熱器のサイズの6x6cm程度しかないので、10Aぐらいまでしか流せないでしょう。

回路は、トライアックと、トリガーダイオードで出来ているので、基板は簡単です。ただし、AC100Vが流れるので、感電しないように注意が必要です。

トライアックにトリガを与えるためのCR時定数回路を可変抵抗で変化させて明るさを調節しますが、ダイオードを使った2重ヒステリシス防止回路が追加されています。

Aki_triak2仮組みして動作させてみると、20Wの電球の明るさがスムーズに変化するようだったので、ケースに収めました。

ケースは、タカチYM-130です。

トライアックの放熱用に2mmのアルミ板が取り付けられていますので、サイズにゆとりはありません。基板以外は、蓋のほうに取り付けられています。

基板は、アルミケースにネジ止めしていますが、パターンと接続しないように注意しました。トライアックの放熱器は、絶縁されているとのことなので、シャーシと触れています。

Aki_triak3ケースの蓋を閉めると、調光用のボリュームだけなので、すっきりしています。

コンセントと、ACコードは、側面に取り付けられています。

20Wの電球の明るさを変えてみただけなのですが、トライアックはほとんど熱くなりませんでした。

ケースの上面が、ほとんど何もないので、文字やイラストを入れるとよいかもしれません。

コンパクトに出来たので、半田ごての温度調節に使うのもよいかもしれません。

2009年6月29日 (月)

秋月、LM338電源にメーターで電圧調整

Aki_lm338t_meter秋月キットの、安定化電源キットで、LM338Tを使用したものを以前製作しました。キットとしては、5Aまで対応しているのですが、トランスと整流用ブリッジが大きくなりすぎるので2Aとして製作しました。

電圧設定は、基板上の半固定抵抗で設定するようになっているので、9V固定となっていました。

今回、電圧設定を可変とするべく、出力電圧監視用の電圧計と、電圧設定用の可変抵抗をつけました。 基板の方には、電圧調整が容易になるように、設定値を4レンジに分け、1kΩの可変抵抗で設定するようになっています。

電圧値を、1.2V~20Vに設定するためには、可変抵抗と、レンジ設定用の抵抗を合わせて、0~3kΩの変化が出来ればよいようです。そこで、設定が容易になるように多回転ボリューム5kΩを使い、レンジの設定はなしとしました。

16V2Aのトランスを使用しているため、整流すると1.4倍の22Vほどになり、可変範囲は、1.2V~22Vです。プリント基板の半固定抵抗を取り外すのが面倒なので、レンジ設定で0Ω抵抗が挿入される設定のところに、スイッチの変わりに可変抵抗を接続しました。つまり、基板上の半固定抵抗(1kΩ)+0Ω+外部可変抵抗(5kΩ)となります。半固定抵抗を0Ωとすれば、最低電圧を1.2Vと出来ますが、3V最低となるように、半固定抵抗をあわせました。

Aki_lm338t_meter2電圧計は、4.5φの穴を開けなければなりませんでしたが、電圧計の箱で、メータを支えている厚紙が、4.5φの穴が開いていましたので、型紙代わりにして、マジックペンでケースに目安を描いて穴あけしました。

メータがすこし大きめなので、出力端子を低く取り付けてあったのにぎりぎりとなってしまいました。

キットには、LM338Tにつける放熱器が付属していなかったので、購入して取り付けました。

3V~20Vの2Aの電源は、利用する機会は多いと思いますが、このキットを製作したのは、電圧計のついた電源らしい電源を作ってみる興味であったと思います。

2009年6月18日 (木)

秋月、LTC1799モジュールで発振器製作

Aki_ltc1799osc 秋月の、1kHz~30MHzオシレータLTC1799モジュールを使用して、発振器を製作しました。

LTC1799は、組み立てやすいようにDIP8ピンとなるようなモジュールとして組み立てられています。周波数は3つのレンジに分割され、10kHz~300kHz、100kHz~3MHz、1MHz~30MHzとして切り替えられます。この範囲とするには、周波数調整用のボリュームには100kオームを使用します。

発振周波数調整用ボリュームを1MΩとすれば、1kHzからの周波数が発振できますが、周波数合わせが難しくなります。100kΩでも範囲が広いので、多回転ボリュームのヘリポットを使いました。一応、30kΩ以上のボリュームを使えばレンジの間は連続すると思います。

発振器は、IC1個だけで出来てしまうのですが、周波数を合わせるために、周波数カウンタも内蔵しました。この周波数範囲で、精度も3桁あればいいので自作も容易ですが、前に組み立てたことのある、書籍「PICを使った簡易測定器の実験」の簡易周波数カウンタをそのまま作って組み込みました。ただし、前置アンプはなく、直接デジタルで入力しています。

可変周波数発振器は、周波数を正確に合わせたいのですが、このように周波数カウンタを組み込んでおけば周波数の読み取りが簡単に出来ます。周波数カウンタは、高精度周波数発振器を基準に使っているので、5~6桁の精度があります。

余裕があれば、16F88を使った周波数カウンタを自分でプログラムして表示したいと思いますが、周波数を表示するだけなのでこのままでよいかと思います。

秋月、LA4902モノラルパワーアンプの製作

Akila4902monoamp 秋月キットの「LA4902 10Wモノラル・パワーアンプキット」を組み立てました。オーディオアンプキットでは、通常ステレオとなっているのに対して、このキットではモノラルアンプにヘッドフォンアンプが追加されています。

取扱説明書を見ると、TV用音声出力とあります。ICは、コンポなどに使う目的としたのではなく、TVなどをターゲットにしたものと解ります。回路は、BTL出力の電源供給用に使われるスイッチングレギュレータが組み込まれています。スイッチングレギュレータは、信号に追従して、増減するようになっており、電力の消費を押えることができるとあります。

BTL出力に関して、プラス側にドライブするトランジスタと、マイナス側にドライブするトランジスタから構成されていますが、プラス側はプラスのみ、マイナス側はマイナスのみとなるようなノンリニアアンプを通して駆動されます。そのため、電圧の中位点は1/2Vccより低く設定され、スイッチングレギュレータが片側のみでよいようになっているとのことです。

高忠実度が目的のオーディオアンプでは、このような工夫はリニアリティが悪くなるとしてなかなか採用できませんが、TV音声用と限定したことでこのような低消費電力の工夫が出来たのだと思います。

実際に聞いた感じでは、あまりよいスピーカを使わなかったのですが、音が悪い感じはしませんでした。このアンプを2台用意すれば、ステレオの10Wアンプと、ヘッドフォンアンプが出来ます。また、10Wあるので、拡声器のマイクアンプとするのもよいと思います。

大音量で聴くのでなければ、発熱も多くないので放熱器は必要ないとの事ですが、キットに放熱器が付属していたので、LA4902の裏側からネジ穴を通して3mmのネジで放熱器を止めました。放熱器の穴の位置がいい位置ではないので位置がずれてしまっていますが、放熱器にドリルで穴を開け、タップを切ればうまく合わせられると思います。

2009年6月15日 (月)

センサの素の、リモコン解析機の製作

16f785_rimocondecode書籍「基礎入門センサ活用の素②」では、様々なセンサを使用したマイコン機器を製作しながら、センサの使い方を学んでいくようにしているようですが、ここで使用しているセンサは、リモコンなどで使われる赤外線を受ける、赤外線受光モジュール(PL-IRM0101-03)で、リモコンで使われる家電製品協会フォーマットと、NECフォーマットを解析して受信します。

受信したリモコンコードは、16進で液晶に表示されますが、機器のコントロール(例えばLEDの点灯消灯など)の機能はありません。受信されたリモコンコードは、そのまま保存されているので、それを登録されたコードとの一致を判定することで、LEDのオンオフを制御するようにプログラムを修正することは容易です。

書籍での製作は、センサの活用ということで、受信できることが確認されることで終わっているようですが、それを実際のリモコンにするのは、読者の行なうこととなっているようです。

使われていない赤LEDをオンオフするだけでも、リモコンコードの学習が必要で、毎回の受信ごとに、学習されたコードとの一致を比較することが必要でしょう。

書籍は、入門書としての位置づけとなっているようで、確認できるというところまでの動作となっています。ハードウェアとしては、必要な機能は揃っているようなので、ソフトを書き直すことで、使いやすい、自分の好みに合ったものとできるでしょう。

書籍は、発売されたばかりで、改訂などが加えられていないため、回路として違うほうがよかったのではないかと思うことがあります。(例えば、電源の割り振り方など)。私は、今は感光基板の製作を進めることで、実績を重ねていくことに重点を置いているので、パターンの変更などはあまり考えていないのですが、必要なら、EAGLEなどで、自分で引き回してみる必要も出てくるかもしれません。

16f785_pickit2adapterPIC16F785の書き込みは、AKI-PICライタの最近のバージョンアップで可能になっていますが、8ピンから20ピンへの変換アダプタが必要です。今回は、PicKit2用の書き込みソケットが設けられているので、それを利用して書き込みました。Pickit2は、ICD2と同じに6ピンのコネクタですが、6ピンモジュラージャックのICD2と違って、6ピンのインラインヘッダです。もちろん、Pickit2ならばそのまま書き込み出来ますが、私の使っているのはICD2なので、変換のアダプタを作りました。

基礎入門の本であるのと、Pickit2が安価であるためこれを選んだのでしょう。6ピンモジュラージャックは、高価なのと、ピン間隔がプリント基板に合わないため、ピンヘッダを使用して製作することがよくあります。(2x3ピンのものはすでに変換アダプタが造ってありました)

今回、Pickit2のコネクタへの変換アダプタを作ったので、今後、Pickit2のピンヘッダを使うことが増えると思います。

センサの素の、超音波距離計の製作

16f785_usoniclength 書籍「基礎入門センサ活用の素①」では、各種センサをPICマイコンで制御する例を多く収録していますが、ここで使用するPICは、16F785という、OPアンプを2つ内蔵したものを主に使っています。

センサの微弱な信号や、アナログならではの回路を作ることで、マイコンの活用範囲を広げています。

この例は、超音波送受信器を使うことで、反射して返ってくる時間を計ることで距離を測る機器を製作できます。超音波は、40kHzを使用しますが、短いパルスを発生させて超音波スピーカを駆動します。これは、従来のデジタル回路でも出来ます。受信側は、超音波マイクで捉えた信号を、オペアンプ2段で450倍に増幅し、それを全波整流してマイコンに入力します。このオペアンプの回路は、従来のマイコンでは、外付けのオペアンプで行なっていましたが、16F785では、内臓のオペアンプを使用することが出来ます。

短い40kHzのパルスを、超音波スピーカで発振し、それが反射して戻ってきたパルスを超音波マイクで受けることで、それにかかる時間を計ることで距離を計測するようになっています。このような回路は、従来から何度も製作され、キットなどでも発売されていますが、オペアンプ内蔵マイコンを使ったところが新しいところです。

16F785の書き込みは、AKI-PICライタの最近のバージョンアップで可能になりました。書き込みをするためには、8ピンPICとしての書き込みの割り当てとなっているので、8ピンを20ピンのICの形状に変換するアダプタが必要です。といっても、20ピンのうち、先端の8ピンが一致しているので、テクスツールのソケットの先頭の8ピンに連結コネクタをはんだ付けするだけで製作することが出来ます。

使用している部品のうち、3.7Vのリチウムイオン電池を5Vに変換するDCDCコンバータ用のIC(MCP1253-33x50)の入手が困難ですが、マイクロファンの通販で扱っていました。8ピンのSOPなので、はんだ付けも面倒ですが、プリント基板を感光基板で製作すればパターンに合わせて製作するだけで済みます。

薄型のリチウムイオン電池(Li-355SP)は、千石電商で扱っていました。

入手しづらい部品を使っているだけあって、小型のプラケースに小さく収まりました。

2009年6月11日 (木)

秋月、LM338T使用5A安定化電源の製作

Aki_lm338t_5a秋月キットの、LM338Tを使用した、最大5Aの安定化電源のキットを組み立てました。キットは安いのですが、別に用意するトランスと全波整流ブリッジが高価でした。

LM317の電流増強版であるLM338Tを使用して、電圧範囲1.25V~20Vで、最大5Aまでの安定化電源を作ることができるのですが、トランスを選ぶときに、希望する出力電圧より3Vぐらい高い電圧を選ぶ必要があり、電位差が大きすぎると熱損失が大きくなって発熱が多くなってしまいます。

出力電圧として、9V~12Vを想定してトランスを選んだのですが、16Vぐらいのトランスで5A取れるものは、サイズが大きく、値段も高価になってしまいます。また、全波整流ブリッジも、5Aのものは、サイズが大きくプリント基板に合いませんでした。

結論として、電流を2Aと決めて、トランスと、全波整流ブリッジを購入しました。これなら、ブリッジはプリント基板に合い、リードの穴をすこし大きくするだけで済みました。トランスも、サイズがそれほど大きくならず、タカチのMB-5に収まるものとなりました。

Aki_lm338t_5a_2ケースの前面には、電源スイッチと、出力端子しかありませんが、将来、15V電圧計をつけたり、電圧設定用の可変抵抗をつけることを考慮して、低めの位置に取り付けました。

電圧調整は、基板上に半固定抵抗がありますが、この抵抗と、電圧レンジを調整するようにあるシリーズ抵抗で決まります。

基準電圧の1.25Vに対してつながれている抵抗の200Ωに対して、可変抵抗の比率で電圧が決まりますので、基板上の半固定抵抗を、パネルに引き出せば設定電圧を可変にすることができます。抵抗の範囲は、0Ω~3kΩでよいようですが、これでは、つまみでの調整が難しくなるとかかれてありました。現行の半固定抵抗は1kΩの物が使われています。

希望電圧が9V~12Vだったので、レンジを5.9V~12.0Vに選んで、半固定抵抗を廻してみましたが、実測では、6.01V~11.2Vとなり、12Vの設定は出来ないことがわかりました。仕方ないので、9Vになるようにあわせておきました。

LM338Tには、放熱器をまだ取り付けていません。すこし改造などを行なった後、なるべく大きな放熱器を取り付けたいと思います。

超低コストガジェットの、GPS-USBの製作

Gadjetgpsusb 書籍「超低コストインターネット・ガジェット設計」の第7.7章、GPS-USB設計では、USBプロトコルスタックのlibusbを使って、GPSから時刻を読み取り、表示するアプリを製作しています。

USBプロトコルスタックの中で、一番簡単な使い方を示すことで、動作することが出来たあと、自分でプロトコルを勉強するように導いています。

このGPS-USBでは、GPSから送られてくる、4800bpsのNMEAフォーマットの中から、RMCセンテンスを取り込むことで、その中の時刻の部分を切り出すようになっています。

オーム社のサイトからダウンロードしたプロジェクトにあるプログラムは、RMCセンテンスを抜き出すように作られているのですが、私の持っているGPSでは、先頭が’R’で始まるセンテンスがRMCだけではなく3つあるので正しく動作しませんでした。(RMC、RMB、RTEの3つがあるので、読み出すときには、RTEとなってしまっていました)

ソースプログラムは、実験用の例題を示すために、書籍を読んだときにわかりやすいことを重点に置かれているために、完璧性は低く、実用性の低いものとなっています。書籍に掲載するためには簡潔であることが最も重要なので仕方がありません。GPSから読み出している部分を、’R’,’M’,’C’の3文字を確認するように改めでコンパイルしました。対象のファイルは、「main.c」です。使われない「Gmain.c」というファイルがありますが、これは参照用のようです。

プロトコルスタックの関数の使い方を理解していけば、AVRを使用したUSB接続機器を製作することができるようです。

「超低コスト」の意味は、高価なものを使わないという意味でもありますが、開発にとってもっとも高価な「手間をかけること」を惜しむ、という意味で、「手間をかけていない例題」もしくは、「手抜きのサンプルプログラム」とも理解できます。サンプルの部分は、プロトコルスタックが使えることを示すことが目的なのであって、それを使うプログラムは読者自身が書くものとして扱っているようです。

この書籍は、知らないところにこんなに便利なものがあるということを伝えてくれる、貴重な情報源としての価値であると思います。

書籍に出ている回路を製作するにとどまらず、自分の機器を製作するために活かしてこそ、書籍の本当の価値があると思います。

超低コストガジェットのμIPサーバの製作

Gadjet_uip 書籍「超低コストインターネット・ガジェット設計」では、フリーで公開されているUSB、IP、SDなどのプロトコルスタックを使って機器を開発するために、その使い方を示す簡単な例を製作しています。

ここでは、μIPプロトコルスタックの使い方を示すために、非常に簡単な回路を組んでいます。動作は、Telnetによってパソコンからアクセスすると、g,n,f,bの一文字のコマンドを受け付けて動作するように作られています。コマンドは、それぞれ、get、on、off、byeの省略で、回路にあるLEDを点灯させたり、光入力として使われている高輝度LEDの状態を読み取るためのものです。

プログラムは、使い方を示すだけの簡単なものですが、回路のほうは、立派なイーサーネットアクセスができるものとなっています。構成要素は、ATmega168、ENC28J60、パルストランス内臓のLANコネクタが主なものです。

この回路でも、LANにアクセスするために必要なものは揃っていて、ATmega168のプログラム次第では、ネットワーク接続機器として使えるものになると思います。ただし、簡略化されているので、本格的に使用するものとするには、MACアドレスなどは、きちんと個別に与える必要があると思います。

それでも、LANケーブルでルータへ接続すると、ネットワーク機器として扱われます。

IPアドレスとして、192.168.0.55が使われているとのことだったのですが、私のLANでは、192.168.11.Xでなくてはならないので、ソースを変更してコンパイルしなおしました。書き込みは、すでに製作したUSBaspを使用しました。他のライタでも、main.hexを書き込み、フューズバイトを書き込めば動作するはずです。

Telnetコマンドは、cygwinから実行します。WindowsからでもTelnetは実行できますが、行送りなどの違いがあるのでうまくいきません。

μipプロトコルスタックと、この回路を使うと、簡単にネットワーク接続する機器ができると実感できますので、一度試してみることを勧めます。

2009年6月10日 (水)

超低コストガジェットのAVRライタ製作

Gadjetusbasp 書籍「超低コストインターネット・ガジェット設計」には、フリーのプロトコルスタックを使用して、極簡単な回路を組んで使い心地を試してみたものが紹介されています。

フリーのプロトコルとは、USB,TCP/IP、SDアクセスのためのもので、書籍に出ている回路をそのまま製作しても大して使い道はありませんが、それを応用して、自分の希望した動作させるものを製作するときに使用すれば、よりよいものとできるでしょう。

この書籍では、開発環境として、CYGWINをそのまま利用しています。追加ライブラリとしてLIBSを追加することで、準備は整います。

書籍に出ている例は、オーム社のホームページからファイルをダウンロードすることが出来ます。すこし不備のあるものもありますが、確認を行なうためには十分です。

コンパイルなどは、Makefileが用意されているので、MAKEコマンドで実行できますが、AVRへの書き込みも、AVRDUDEコマンドを利用してMAKEコマンドで行なえるようになっています。使えるライタが用意できれば、すべて一連の作業で行なえるようになります。

書籍で紹介しているAVRライタは、USBaspというもので、USB接続で書込みが行えるものですが、その制御にATmage8が必要になります。AVRライタを作るためにAVRを書込みが必要になるというものなのですが、私は、AVRの書込みにはAVRISP mk2を使用しているのでそれを使いました。

わざわざ、AVRライタを作ったのは、それ自身がUSBのプロトコルスタックを使ったものであったのと、MAKEコマンドによる一連の作業で行なえるようにしておきたかったからです。

AVRISP mk2で、ATmega8に書き込みを行なったときに、フューズバイトに書き込みを行なったらチップにアクセスできなくなりました。AVRは、ISPによって書き込むときに発振器は接続されていなければならないことを忘れていました。(内臓発振器の設定になっているときには、外付けの発振器は必要ありません)

出来上がったUSBaspをパソコンのUSBに接続すると、プロトコルスタックのLIBUSBに対応したドライバーが必要になります。組み込みが終われば、MAKEコマンドから呼び出されるAVRDUDEによって書込みが行われます。

書籍の回路は、ATtiny2313用になっていますが、ISPによる書込みで行われるので、ソケットさえ用意すれば、ATmega168や、ATtiny45なども書込みが行えます。

dsPICの、12ビット精度基準電圧計の製作

Dspic_standardvoltdsPICを使った応用として、書籍「電子制御・信号処理のためのdsPIC活用ガイドブック」に出ている12ビットA/D,D/Aコンバータを使った基準電圧計を製作しました。

dsPICとして、センサーシリーズのdsPIC30F3013を使用し、内蔵の12ビットAD変換器に合わせて、外付けのDA変換器のMCP4922を使用しています。MCP4922とは、SPIで接続します。

仕様として、12ビット(0~4.096V)の電圧を独立に2チャンネル出力でき、また、同様に、独立の2チャンネルを読み取って表示することができます。精度を出すために、AD,DAの基準電圧としてMCP1541を使用して、4.096Vを発生して、Vrefに供給しています。

Dspic_standardvolt2これまでの製作では、アクリルケースに組み込むことが多かったのでケースの加工が容易でしたが、この基準電圧計では、アルミケース(タカチYM-130)に組み込んだので加工が面倒でした。しかし、ノイズの影響などは少なくなるはずです。

ロータリーエンコーダには、指定のコパルのものが手に入らなかったので、秋月電子て入手できたものを使用しましたが、これだと、パルスの極性が逆になるので、コモン端子をVDDに接続し、2つのパルス端子をプルダウンしました。

dsPICには、dsPIC30F3013を使用していますが、入手が難しいので、dsPIC30F2012を使用してみました。ソースプログラムの変更はなく、ヘッダのデバイス名を2012に変更し、ライブラリと、リンカースクリプトを2012に置き換えてコンパイルしたらOKとなりました。3013と、2012は、ROMサイズ違いなので、メモリ使用量が足りていれば問題ないようです。

出力電圧を、デジタルテスタで確認してみたところ、有効桁3桁は正確でした。デジタルテスタは1%程度は誤差があるので、これ以上正確なところはわかりません。

出力電圧を、入力につないで測定してみると、若干低く表示しますが、これも誤差1%以下でした。

2009年6月 4日 (木)

SDカードのデータロガーを再度製作

Sdcardlogger書籍「C言語ではじめるPIC24F活用ガイドブック」の第11-12章のSDカードを使ったデータロガーを再度製作しました。

以前に作ったとき、3.7Vのリチュウムイオン電池を5Vに昇圧するDC-DCコンバータ用のIC(MCP1253-33X50)が入手できなかったので、9Vの006Pを3端子レギュレータで下げて製作しました。そのため、006Pがケースの中で場所をとるので、入力端子板が取り付け出来ませんでした。

今回、このICが、マイクロファンで入手できたので、プリント基板から製作してみました。

前回、蛇の目基板で製作したときの反省から、先に基板がケースに合うようにあわせ、SDカードスロットも、WP端子か正しく動作するものを選びました。SDカードスロットは、指定のものが秋月で入手できたのですが、WPが常にGNDにつながってしまうものが多いようです。前回は、この端子はオープンにして難を逃れましたが、今回は、ばねの具合を直してオンオフするようにして使用しました。(ただし、LOCKのときに書込みができるというように逆になってしまいました)

Sdcardlogger2基板は、ケースからスペーサーで15mm浮かせて取り付けました。そのため、液晶表示は出来る限り低く取り付けています。

指定の押しボタンスイッチを取り付けると、ケースの蓋に頭が出るようになります。

リチュウムイオン電池(LI-355SP)は、薄型なので、ケースのそこに両面テープで貼り付けてあります。

リチュウムイオン電池の充電は、専用の充電器があるようなのですが、5V500mAの定電圧定電流電源があればいいと書いてあったので、自作した電源で充電してみました。2~3時間と書かれていましたが、2時間ほど充電してやめました。

PIC24FJ64GA002の書き込みは、基板に書き込み用のモジュラージャックがないので、6ピンモジュラージャックを、基板の裏にビニール線ではんだ付けして、ICD2で書き込みました。完成されているプログラムを1度書き込むだけなのでこれで十分でした。

SDカードは、LOCKにして挿入します。通常はこの状態は書込み禁止ですが、SDカードスロットをいじってみたところ、どうしてもこのようにしかならないことがわかったので、仕方なくこのようにしています。組み立て前に、テスタでWP端子をチェックして、どうしてもGNDになったままの時には、1つ壊すつもりで、5個の爪をはずしてカバーをはずしてみることを勧めます。横方向のフックが、LOCKの溝に落ちたときに接点がつながらないようにすることはできると思います。

秋月、16x8LEDスクロールクロックキット バージョン2

Scrollclock8x16 秋月キット「スクロールクロックキットVer.2(16x8ドット)」を組み立てました。10x10ドットのものもありましたが、こちらのほうが大きな表示となっています。

PIC16F877Aで制御し、8x8ドットのLEDを横に2つ並べて、時計の時刻を横スクロールすることで全体を表示します。横16ドットということは、5x7ドットの文字としても、6ドットx3文字が入りきれません。

時計は、HH:MMとして表示しますが、最後の1ドットには、10秒単位の秒をドットで表示します。秒の表示に6ドット使い、残りの2ドットはアラームがオンのとき点灯します。

組み立ては、16F877Aがすべて行なっているので、それぞれポートに接続するだけです。10x10ドットのスクロールクロックと同じように、CPUの16F877Aは基板の裏に取り付けます。CPUの分、面積をとらないので基板のサイズは小さくなりますが、出来上がった後、時計の厚みがすこしあります。

時刻合わせにロータリーエンコーダを使用しているのですが、簡易的な方法で読み取っているようなので、チャタリングの影響で、入らないときや、2つ以上はいるとき、更には、回転方向を間違えるときなどがあります。速く回転させるとその影響は大きくなりますので、ゆっくり廻す必要があります。

製作するとき、実験用と、実用目的と分けることができると思います。実験用は、作り方の例を示し、読む側にとってわかりやすいことが重要です。そのため、原理的なプログラムとなっていることが多いようです。実用目的のプログラムは、基本的な動きよりも例外的な場合に配慮している場合が多いので、読むものとってわかりにくいものとなっている場合が多いのでソースが余り公開されません。

ソースが公開されない場合でも、動くことを示すことが目的である場合には、実用に欠ける場合も多いでしょう。実験用を、実用的に使うようなときには、やり方を理解して自分で書き直すようなことが必要でしょう。

このキットでは、実用を範疇に考えているでしょうから、このような具合は残念といわざるを得ません。

ロータリーエンコーダは、ゆっくり廻すか、端子にチャタリング防止のコンデンサを入れるなどして使うほかありません。

2009年6月 1日 (月)

秋月、AKI-USBオーディオモジュール

Akiusbaudio 秋月キットの「TA1101B+UAC3552 USBオーディオモジュール(10Wステレオアンプ内臓)」を購入し、配線変更をしたうえで、USBオーディオとしてパソコンに認識しました。

これは、USBオーディオ(UAC3552)と、ステレオアンプ(TA1101B)で構成された、パソコンに接続するとUSBオーディオとして認識されて、スピーカとして動作するモジュールです。

このモジュールを使用するためには、0Ωのチップ抵抗を取り外し、そこと2箇所の間をジャンパで接続するように改造する必要があります。さらに、USBコネクタを配線し、電源を用意する必要があります。電流容量が、無信号で500mA程度、最大で2A程度が必要になるために、電源をUSBから取ることはできません。

ヘッドフォーンジャックで確認したのですが、パソコンの音が流れてきました。4Ωのスピーカを用意すれば、パソコンの音を大きな音で再生することができるようになると思います。値段は700円ですが、立派に動作しました。

dsPICのファンクションジェネレータ

Dspic_funcgen dsPICの内蔵している機能を、余さず組み合わせて使うのはなかなか難しく、dsPICに慣れていくためには、内蔵されている機能をひとつずつ使っていくことが上達の早道のような気がします。

書籍「電子制御・信号処理のためのdsPIC活用ガイドブック」に出ている、第6-4章のファンクションジェネレータの製作では、汎用ユニットとして必要になるDA変換器を有効に使うために、色々な波形を出せる周波数発生器を製作しています。

回路は、ほぼdsPIC汎用ユニットと同じで、出力に追加したアナログデバイス社のAD5331を利用して、DDSのように波形を発生させています。

dsPIC汎用ユニットでもできることを、多少アレンジして、使いやすいように専用回路化しています。周波数範囲は、10Hz~20kHzで、ロータリーエンコーダで選択します。波形として、正弦波、三角波、方形波、のこぎり波は、押しボタンで選びます。

ロータリーエンコーダの読み込みには簡易的な方法が取られているため、速く廻したりすると、進まなかったり、場合によっては逆回転したりすることがあります。

2009年5月14日 (木)

秋月、グラフィックLCD組み込みキットの製作

Graphiclcdkumikomi秋月キットの、グラフィックLCD組み込みキットを組み立てました。以前に、グラフィックLCD「開発」キットというものを組み立てたことがありましたが、こちらのほうは、グラフィックデータを用意して、展示物などに取り付けて使うように、サイズが小さく設計されていて、部品などもチップ部品が多用されています。

ソフト的に見たときには、開発キットとまったく同じです。開発キットでは、基板の下部にユニバーサルエリアがありましたが、この部分に拡張した場合にも、端子だけは出ていますので、外部に基板を増設することで同様に扱うことが出来ます。

データ類は、開発キットのときに書き込んだデータを、そのまま同じに書き込みました。

Graphiclcdkumikomi2組み込みキットでは、基板サイズはグラフィックLCDとほぼ同サイズとなっていて、ほとんどがチップ部品となっています。CPUは、PIC16F877のDIPを使用していますが、それ以外はすべて実装済みでしたので、はんだ付けはすぐ終わりました。

開発キットでは、何か回路を追加してみたいと思いましたが、組み込みキットでは、何に使うかをまず考えました。

グラフィック液晶のSG12232Cをどう使うかの参考としてこのキットを考えたとき、ソースプログラムが同梱されているので、PICのプログラムを作るのに参考にするのもいいのですが、画像を何枚も用意して、順に送ることでメッセージを表示するように使うのがいいように感じてしまいます。
確かに、この編集システムはよく出来ていて、グラフィック液晶の1ドット1ドットを書き込むプログラムを作ることは考えないようになってしまいます。

dsPICの汎用ユニットの製作

Dspic_hanyou_lcd 書籍「電子制御・信号処理のためのdsPIC活用ガイドブック」では、dsPICを使って、DSPの活用をするべく、そのハードとソフトの設計の基本を身につけるための製作を紹介しています。

専用の回路を設計して製作するものもありますが、ソフトの例を示すための汎用のボードとして、dsPIC汎用ユニットを製作していますので、これを製作しました。

DSPの基本的使い方として、AD変換で入力し、DSPでデジタルフィルタなどの処理をして、DA変換(PWMで代用することもある)で出力するという構成をとるのではないかと思いますが、この汎用ユニットでは、内臓のAD変換を使用し、出力に、アナログデバイスのDA変換チップを追加しています。
その他に、他のチップとのコミュニケーションなどのための機能として、液晶表示と、RS232Cインターフェースを備えています。

液晶モジュールと、RS232Cレベル変換は、オプションとして追加するようになっていて、そのコネクターが設けられています。

Dspic_hanyou_uart汎用ユニットの動作を確認するために、書籍の例題を試しました。

1.タイマーを使ったLEDの点滅
6-3-5章の、リスト6-3-1のTimerTest1.cを書き込み試しました。

2.20x4文字液晶の表示
6-2-6章の、リスト6-2-7のLCDTest2.cを書き込み試しました。

3.UARTの確認
6-6-2章の、リスト6-6-1の、uart1.Cを試しました。
このプログラムは、dsPIC30F4012用のもので、オシロスコープ基板の確認用ですが、デバイスをdsPIC30F4011に変更(ソースのヘッダと、リンクされるLIBファイル、リンカスクリプトを変更して再コンパイルする)すると、そのまま使えました。
4011も4012も、モーター制御シリーズであり、C言語のプログラムでもあるので、これだけで済んだようです。

蛇足ですが、以前のC30では問題なくコンパイルできたのですが、最近の、C30がPIC24とPIC30に分かれたものでは、UART_ALTRX_ALTTXが未定義になるようです。原因は、uart.hのファイルが問題のようで、同じディレクトリにコピーしてきて、上記定義を追加することで通るようになります。

汎用ユニットが出来たので、デジタルフィルタなどを製作して特性の変化などを見ることができるようになりました。

2009年5月 2日 (土)

dsPICによるオシロスコープの製作

Dspic_oscillo書籍「電子制御・信号処理のためのdsPIC活用ガイドブック」の、第6-6章のオシロスコープを製作しました。

dsPIC30F4012の10ビットADコンバータを使用して読み込んだ信号を、RS232Cを通してパソコンに送ってオシロスコープのグラフを表示するものです。転送速度の関係か、連続してスムーズに表示するというまでは行きませんが、連続した波形はきれいに表示されます。

dsPICは、入手できる種類はそう多くないのですが、このdsPIC30F4012は、秋月で入手できました。このICは、モーター制御シリーズに属し、PWMの出力が6チャンネルあります。 この書籍では、モーター制御シリーズを主に取り上げているようです。

Dspic_oscillo1 パソコンと、製作した基板とをシリアルケーブルで接続し、コントロールソフトを起動すると、この画面が表示されます。

入力は2チャンネルあり、位置やゲインなどは基板のほうで合わせますが、適当な位置に設定できたら、大雑把なゲインなどはパソコン側で設定出来ます。

ADコンバータは、最大1Mspsで動作するので、2チャンネルでも、サンプリング間隔を5μ秒とすることが出来ます。

基板製作においての注意点は、RS232C用のDSUB9ピンコネクタの5ピン(GND)が接続されていないことです。パタンが抜けているのだと思いますので、ジャンパでつないでおきました。

もうひとつ、書籍に付属のCDROMには、基板製作に必要なパターン図と、dsPICに書き込むソフトは入っているのですが、パソコン側で実行するVBのソフトが入っていませんでした。筆者のホームページ(http://www.picfun.com) には、本書と同じ製作の紹介がありますが、ここでパソコン側のソフトがダウンロードできるようになっていました。

2009年4月30日 (木)

67J60によるインターネットラジオの製作

Ethernetboard_webradio 書籍「PICで楽しむネットワーク接続機器の自作」の中で一番作りたかったのが、このインターネットラジオでした。しかし、SPI接続のSRAMが入手できずにあきらめていました。

AMIセミコンダクタ社は、オンセミコンダクタ社と合併したので、代理店などを通じても入手が難しかったのですが、最近、サトー電気で取り扱うようになり入手可能になりました。

このインターネットラジオを組み立てる前に、汎用ボードなどを組み立てていましたので、LANへの接続についてはある程度わかりかけてきていましたし、MP3再生に使用するVS1011eも、MP3プレーヤを製作したときに使用していました。難しいのは、0.5mmピッチのリードをはんだ付けしなくてはならないのですが、ピッチ変換基板のように、きれいにピン間が離れている基板はいいのですが、今回は感光基板で製作した基板を使用するところにあります。

まとめると、
ICのピッチが0.5mmであって、はんだ付けが難しい。
感光基板で製作するVS1011eサブ基板の線幅が細い
128x64グラフィック液晶を使っている
などです。

これまで、それぞれについては少しずつはやっていますが、VS1011eサブ基板については、うまくいかない場合には、コネクタなどに合わせて蛇の目基板で組み、市販のピッチ変換基板を使用することも考えました。

サブ基板は、感光基板としては、今までで一番細かく、0.4mm程度が多用されています。書籍のCDROMの付属のパターン図をプリンタで透明シートに印刷し、それを感光基板でエッチングしました。
出来上がった基板は、きれいに出来上がったようでしたが、テスタで隣接ピンをチェックすると導通しているものがあります。カッターでカットして基板を仕上げました。
VS1011eのはんだ付けの前に、基板のほうにはんだを流しました。その上にVS1011eを載せ、ピッチに合うように合わせてセロテープで押さえます。
一辺をまずはんだ付けしますが、0.5mmピッチでは、ピンリードを半田ごてで抑えて0.3mmのはんだを押し付けて溶かすということが出来ません。
はんだ付けすると、隣接ピンとブリッジしてしまいますが、そのまま一辺のはんだ付けをしてしまいます。
後で、半田吸い取り網を使って余分のはんだを吸い取ります。
ピン1本にのみ半田が載ったところで、半田ごてで、残っているはんだをリードピンのほうへ集めます。
4辺をはんだ付けして、目視できれいにはんだ付けされていることを確認した後、テスタで隣接ピンのショートを確認します。ついでに、基板の銅箔とピンが接続されているかも確認します。

大変な作業でしたが、組み立てが終わった後、動作試験したときに、やはりうまく接続できていないところがあり、再び半田を確認しました。
出来上がって、動作するようになると、サブ基板を上から見ると、ピンがきれいに、隣のピンと分かれてはんだ付けが出来ていました。

メイン基板のほうは、何度か組み立てているのでうまく出来ましたが、サブ基板はとても面倒でした。どうしてもだめなら、ユニバーサル基板と、市販のピッチ変換基板を使って組み立てなおすつもりでしたが、何とかうごいたのでやらずに済みました。

インターネットラジオとしては、秋月電子から発売されているWEBラジオキットのほうが操作性もよくできているのですが、内部もわかっている基板から聞こえるインターネットラジオは、不思議な感じがします。

20局分の放送局が登録されているのですが、インターネットラジオはすぐにIPアドレスなどが変わってしまうので、受信できなくなっていました。組み立てても聴こえないときには、放送局を次々に変えてみると、聴こえる放送があると思います。

dsPICによるイルミネーションボード

Dspic_ilumination書籍「電子制御・信号処理ののためのdsPIC活用ガイドブック」では、dsPICを使用して製作する機器を取り上げていますが、DSP機能を活かした使い方をするならば、デジタルフィルタでしょう。デジタルフィルタで、3つの帯域に分割してそれぞれに色を割り当てて3色のLEDを光らせるのが、この音楽イルミネーションです。

書籍では、dsPICを動作させるために必要な個々のハードウェアの説明に多くを費やしていますが、その集大成ともいえるのが、DSPを活かしたデジラルフィルタによる音程分離により音の高低で色が変わるイルミネーションです。

周波数をデジタルフィルタにより3つの帯域にわけ、低音を「青」、中音を「緑」、高音を[赤」に対応させて、音楽の音域を色で見ようとするものです。

Dspic_ilumination1 LEDに高出力の3色のものを使用し、それぞれをPWMで明るさを変えています。

デジタルフィルタは、設計ツールを使って容易に設計できるようになっています。

dsPICとして、dsPIC30F2010を使用していたのですが、入手できず、同じ「モーター制御シリーズ」のdsPIC30F4012が秋月で入手できたので、ソースプログラムのインクルードファイルを変更してコンパイルしなおしました。ほぼROMサイズぐらいしか違いがないのでそのまま使用できました。

回路はとても簡単ですが、デジタルフィルタも加えて、この書籍のまとめともいえるものとなっています。デジタルフィルタの利用法の参考になるものと思います。

秋月、ARMマイコンボードの製作

Arm_cpueva 秋月キットのARMマイコンボードを組み立てました。ARM社のアーキテクチャのARM7TDMIを実装したAT91R40807をCPUとして使用しています。このCPUでは、プログラムを書き込むROMは外付けで、AT29LV1024を使用します。いずれもアトメル社のものです。

ROMライタは、このARMマイコンボードと一緒になっていたものを組み立て、書込みができるようになっていますが、初めはRAM上でプログラムを実行するための「ramdebug.bin」を書き込んでおきます。

サンプルプログラムとして、「sio.c」、「poi.c」、「timer.c」などが含まれていましたが、開発環境によってコンパイルしておく必要があります。

コンパイルには、RAM上で実行する場合と、ROMに書き込んで実行する場合とがありますが、それは、「設定」-「環境設定」で読み込む設定ファイルの違いによります。

RAM上で実行する場合には、設定ファイルとして「RAM_R40807.xml」をロードします。また、ROMに書き込んで実行するには、設定ファイルとして「AT91R40807.xml」をロードします。設定ファイルをロードした後、「クリア」、「コンパイル」とすれば、それぞれの環境に合わせてコンパイルされます。

ARMマイコンボードの組み立ては、PLCC44のコネクタなどをはんだ付けする程度ですが、シリアル通信用にCOM0に、DSUB9メスコネクタを配線する必要があります。このコネクタは付属していません。プログラムをROMに書き込み、「pio.c」などのポートを変化させるだけならなくても困りませんが、RAM上で実行する場合や、「sio.c」を実行する場合には必要です。

その他に、「pio.c」や、「timer.c」を実行するためには、p0~p3にLEDが必要です。また、p4にタクトスイッチが必要です。拡張コネクタをはんだ付けして、ユニバーサル基板にLEDなどを配線しました。

RAM上で実行するためには、AT29LV1024に「ramdebug.bin」を書き込んでおき、COM0でパソコンと接続します。パソコンでは、転送ソフトとして「ARMライタ」を実行します。書き込みを行なうのと同じように、ファイルを選ぶと、ARMマイコンに転送されて実行されます。「sio.c」では、実行した後、COM0に対して、ハイパーターミナルなどを9600bpsにして接続すると、入力した文字を送り返してきます。

「pio.c」では、ARMライタによる転送が終わると、LEDが点灯し、タクトスイッチを押すと消灯します。「timer.c」では、LEDがカウントアップしていきます。

動作が確認できたので、「timer.c」プログラムをROMに書き込んでおくことにしました。開発環境の設定ファイルをROM用にしてコンパイルして、ROMライタで書き込みました。

ARMマイコンボードは3.3Vで動作し、ROMライタは5Vで動作するので、交互に使っていると、間違えないようにしなくてはなりません。

2009年4月27日 (月)

感光基板でエッチング

Kankoukiban1久しぶりに感光基板でプリント基板を製作しました。基データは、書籍に付属しているCDROMに入っているパターン図を、サンハヤトの透明シートにプリントしたもので、感光と、エッチングのみを行ないました。

感光基板の扱いになれずに、3枚作ると2枚失敗という状況が続いたのですが、やり方を見直して、成功率を高めることが出来ました。

原因は、一言で言えば、現像液の温度が高すぎたということです。温度が高いので反応が速く、すぐに解けてしまうので、露光時間を短くしていたのが原因でした。

現像液をお湯で溶かすのをやめて、水道水のままで溶かして使いました。それに伴って、露光時間も、3分だったものを、7~8分にしてちょうどよくなりました。この時間は、確実性は高くほとんど失敗しません。

今回、6枚製作したうちの、失敗は1枚で、それも、期限切れの基板を使ったためでした。

Kankoukiban2感光基板は、1年以内のものを使うようにとなっているようです。買ってすぐのものは反応も速くきれいに出来ますが、1年過ぎたものは、感光して色は変わるのですが、銅箔のすぐ近くに薄い膜が出来てしまって、エッチングが出来ないようでした。

感光基板は、うまくいくかは勘所次第といわれますが、この条件を守れば必ずうまくいくという感触をつかみました。今まで、失敗が気にかかって、感光基板を使うことは気が進みませんでしたが、これからは積極的に利用して行きたいと思います。

特に、書籍の製作例を作るときには、同梱のパターン図を使って基板を作ると製作がとても楽になります。

ただ、同じ基板を何十枚も作るのは、プリント基板メーカに出したほうが良さそうです。

2009年4月23日 (木)

秋月、ARMマイコンのROMライタの製作

Arm_romwriter ARMマイコン用の、ARM7マイコン開発用ロムライタボードを製作しました。

ARM7マイコンは、フラッシュROMがCPUにオンチップではなく外付けのAT29LV1024を使用します。書き込みは、簡単なのですが、専用のライタが必要になります。

ARM7マイコンのセットを購入すると、ROMライタと、それを制御するH8/3069マイコンが入っています。それぞれを、取説どおりに組み立て、H8/3069マイコンに、ARMマイコンに同梱のCDROMのROMライタ用の制御プログラムを書き込みます。準備はこれだけです。

ROMソケットの基板は、単にH8/3069からアクセスできる外部ROMとして配線されています。パソコン側のARMライタソフトから送られてきたデータは、H8/3069によって、ROMに書き込みを行なうということを繰り返します。

このROMライタは、AT29LV1024に対する書き込みを行なうライタなので汎用に使うことが出来ます。

秋月、H8/3069LANボードの製作

Arm_3069lan ARMマイコンボードにもセットになっている、ROMライタの制御に使うH8/3069LANボードを製作しました。

ARMマイコンのROMライタの制御に使うときには、単にデータをROMに書き込むという動作だけでよいので、LAN機能はまったく必要ありません。

組み立てるならば、まずLAN機能を試したいと思い、H8/3069LANボードとして組み立てをしました。ROMライタとして使うには、フラッシュROMの書き換えのみで済みます。

CPUに、H8/3069を使用し、20MHzのクロックで動作します。ネットワークコントローラにRTL8019ASを使用し、パルストランスとLANコネクタが接続されます。MACアドレス用の93C46も実装されているので本格的利用も可能です。

プロトコルスタックは、H8/OSという形で提供されています。必要な設定を、複数の関数を呼び出すという形式で行いますが、パラメータにあまり長いデータは送れないので、小さなプログラムしか作れないことに成ってしまいます。簡単に試してみるという目的にはかなっていますが、本格的な利用には適さないような気がします。

開発環境をインストールして、プログラムをコンパイルすることになりますが、h8300-hms-gccと、h8300-hms-objcopyを長いパラメータをつけて実行しなければならないので、バッチファイルとしたほうがよいようです。取扱説明書には、HTTP.Cを試してみるといいとかかれていたので、コンパイルして書き込んでみました。

http://192.168.0.145 をアクセスするとページが表示され、Pingにも応答するとのことですが、私の使用しているLANのアドレスが、http://192.168.11.x なので、http.cを修正してからコンパイルしました。コンパイルはすぐ終わりますが、H8/OSのカーネルと合体する必要があり、テキストでの編集が必要です。

書き込みにH8writeを使用すると、COMポートのないパソコンで、USBシリアル変換ケーブルを使うと、途中で止まってしまうので、COMポートのあるパソコンを使うか、ARMマイコンキットに同梱されているCDROMのSendtoolを使うとうまくいくようです。

H8/OSは、使用するにはすこし不満がありますが、ハードウェアは、基本的で、簡素なつくりになっているので利用価値がありそうです。他のプロトコルスタックがないかを探しているところです。

2009年4月16日 (木)

AW電子のUSBホストボード

Aw_usbhost USBホストコントローラを使いたいと思い、エーダブル電子の、UB-H8-69-811Hを購入して試してみました。合わせてサンプルソフトのUS-H8-811も購入したのですが、ケーブルPW-1HAまたは、WR-69-1を購入するのを忘れたため、10ピンのコネクタからDSUB9と、5V電源を配線した基板を製作しました。

この基板で、シリアル通信ができるようになったのですが、書き込みは回路を組んでいないので出来ません。サンプルプログラムに入っているプログラムでは、RAM上に転送して実行するようにできているので、書き込みを使うことはありません。しかし、ROM上で実行するようにしたときには、フラッシュROMに書き込んで実行することになるので書き込みが必要になります。

サンプルプログラムに含まれているモニタープログラムは、Visual Basic4.0で書かれているようで、ランタイムが必要になります。また、DLL以外に、OCXも必要になるようです。VB4のランタイムをインストールしてみたのですが、VB4は、Win95のころに使われていたものなので、WinXPでは、動作しないようでした。仕方ないので、Win98SEの古いノートパソコンにインストールして実行してみました。

USBは、ロースピードと、フルスピードがあるので、それらにあうデバイスを使用しないと動作しないようです。パソコンの(ホスト側の)USBは、使用するUSB機器ごとにデバイスドライバーをインストールして使用していますので、このUSBホストコントローラでも、USB機器ごとにドライバを用意する必要があります。サンプルプログラムにあうUSB機器を用意しなければうごかないのは当然でしょう。

サンプルプログラムにあったものでは、マウスのプログラムが動作させることが出来ました。

USBホストのプログラムは、811Hコントローラの使い方を含め、わからないことが多いので、自在にプログラムを作るというところには達しませんが、この基板を使って、特定のUSB機器に対応したドライバを製作すれば、ホスト側のUSBインターフェース基板とすることができるでしょう。

今のところ、アセンブルがうまく出来なかったり、プログラムの構成が把握できなかったりで課題山積です。

秋月、スクロールクロックキットの製作

Aki_scrollclock 秋月キットの、PIC16C65B制御の10x10ドットLED使用のスクロールクロックキットを製作しました。

10x10ドットの小型ドットマトリクスLEDの上を、右から左へ時刻がスクロールします。設定用にロータリーエンコーダがついていて、設定中に廻すとスクロール速度などを変えることができます。

このキットは、小型に組み立てるためか、PICを半田面に実装します。組み立てで最初にするのは、PICのソケットを半田面に浮かせて半田付けすることです。

10x10ドットのLEDは、駆動用のICなどは使わずに、直接PICで駆動します。Y軸側に、電流制限用の150Ωが入っているだけです。

時計として一番重要な時刻の精度ですが、PICのクロックとして、4.19434MHzの水晶によっています。水晶の一端に入れたトリマによって調整しなければなりませんが、このほかに、プログラムによって進み遅れを調整することができるので、時間の進み具合を見て、設定で調整できます。ただし、設定などは電源を切ると消えてしまうので、バックアップ用の電池をつないでおくことが必要です。バックアップ用電池はニッカド電池なども利用できるように外付け部品が付属しています。

値段は安いですが(1700円)、スクロールしながら表示する時計はなかなか見栄えもよく、よく出来ています。PIC16C65Bのプログラムは、残念ながら公開されていませんが使うだけで楽しめるキットです。

2009年4月10日 (金)

16F819の定電圧定電流電源の製作

819powersuppry 書籍「電子工作のためのPIC16F活用ガイドブック」の、8-4章の「PIC制御の定電圧定電流電源」を製作しました。

PIC16F819の機能として、AD変換器と、PWM出力を使用しています。出力電圧と、出力電流をAD変換器で読み込み、PWM出力のパルス幅を変化させることで、入力より出力電圧が低くなる降圧型電源を構成しています。

回路基板はずいぶん前に出来ていたのですが、それに合うケースと、スイッチング電源の組み立てが出来ないままになっていました。ケースは、書籍の写真により大体のサイズを調べて探してみたところ、タカチのSY-150Aが見つかりました。サイズは、149x54x170mmでした。

電源は、15V1.5A以上の電源ということで、デンセイ・ラムダのVS30C-15(15V 2.0A 30W)が見つかりました。サイズもケースにうまく収まりました。

電圧は、0~10Vに設定できます。また、電流の上限を0~1Aに設定できるので、定電流源として使用できます。出力の電流値が設定の上限を超えそうになると、電圧が上がらないように制御して電流を抑えます。

ケースに収まった定電圧定電流電源を見ると、ケースの見栄えのよさが引き立ちます。ケース本体はプラスチックですが、前面と、背面のパネルはアルミで出来ていてケースのスロットに差し込まれています。穴あけや配線などの加工は取り外してできるようになっています。サイズは、よく利用するタカチのYM-150よりひと回り大きいぐらいなので、今後利用することも多くなると思います。

2009年4月 9日 (木)

ATtiny2313のアセンブラプログラミング練習

Avr_2313lcd AVRの、ATtiny2313は、20ピンのICですが、命令セットが整然としていて、32個のレジスタも使えるということで、アセンブラでのプログラミングに非常に魅力を感じます。

アセンブラでは、割り込みベクタや、スタックの設定なども行なわなくてはならないので、ハードウェアの理解もより深まるのではないかと考えました。

ポートのビット数や、内臓RAMの容量からみて、それほど大きなプログラムは作れないと思いましたが、演算結果の表示や、デバッグのために、まず表示が必要であろうということで、16x2文字の液晶モジュールをつなげて見ました。

この基板の目的は、基本的な処理を作って、その結果を表示するということで、主に練習用です。マイコン基板の最小は、LEDとスイッチでしょうが、その次の段階は、液晶表示ではないかと思います。

AVRの命令セットを使って、基本的サブルーチンを作ってみるためのプラットホームという感じです。命令セットは、とてもよく整ったように見えますが、プログラムして最初に戸惑ったのはADDI命令がないことでした。

レジスタは、R0からR31まであるので、レジスタ間演算で済ますことができるようにプログラムすることが流儀のようです。この基板で、流儀に沿ったサブルーチンを作っていけるようにしたいと思います。

2009年3月31日 (火)

秋月、D級パワーアンプモジュールの動作

Aki_dclassamp 秋月電子の、D級パワーアンプモジュール(AE-CD8755)を動作させて見ました。

以前に組み立てた「デジタルオーディオアンプ」とは、使用しているICが異なります。パワーアンプICには、新日本無線製のNJU8755を使用していて、1つでステレオとすることができます。

出力がBTL駆動となっているので、出力コンデンサーが必要ありません。(プラスとマイナスを別のアンプで増幅し、両方の電位は、直流的に等しいので、その間にスピーカをつなげることが出来るものです)

以前の「デジタルパワーアンプ」では、出力にLCを入れる必要がなかったのですが、このICでは、通常通りに入れる必要があります。

モジュールは組み立て済みで、完成しているので、スピーカなどを配線するだけで動作させることが出来ます。電源には、3端子レギュレータが入っているので、6V~9Vで動作させます。(「デジタルパワーアンプ」では、3V~5Vだったので、乾電池で動作させることが出来ました)

ゲイン調整はなく、必要ならば、入力抵抗を追加することでゲインを下げることが出来ます。(そのままでは、ゲインは14倍となります)

そのまま使うにはいいのですが、ケースに入れるようなときには、スイッチや入出力端子が取り付け済みなので、少し面倒です。

パワーは1.1W+1.1Wということで、ラジカセのようなものには最適です。

秋月、サーボモータ学習キットの製作

Aki_servomotorlearnkit 秋月電子の、サーボモータ学習キットを製作しました。

田宮の「ハイパワーギヤボックスHE」(ITEM 27003)に、位置検出のための可変抵抗をギヤで連結して、サーボモータのように、目的位置にあわせることができるようにするものです。

完成したものを実用に使うためのものではなく、制御のパラメータを変更して、迅速さや安定性を学ぶためのものです。

回転方向をトランジスタで決めるのではなく、リレーによって切り替えています。速度の制御には、PWMで制御します。

パラメータの変更や、位置の指定などは、パソコンのコントロールソフトで設定できるように、RS232Cで接続します。

組み立てはそれほど難しくありませんでしたが、ハイパワーギヤボックスに位置を読み取る可変抵抗を取り付けるためのネジ止めがしっかり押さえられず、仕方ないのでスーパーセメダインで固定しました。

電源を入れると、モータが勢いよく回って安定しません。モーターの極性が反対なのかと思いましたがそうではありませんでした。JP3の1番が赤、2番が青でよいようです。

一度動作させると、モーターが動かなくなってしまいました。トランジスタの2SK3140が壊れたのかと思いましたが、コントロールプログラムで、パラメータを、Kp=10,Ti=2.3,Td=0.001として書き込んだら再び動作するようになりました。モーターのノイズで、PIC18F1320が暴走して、パラメータが消えたようでした。以後、うごかなくなるたびにパラメータを書き込んでみています。

基板上の可変抵抗を廻すと、それに合わせてモーターが回転するようですが、廻しすぎると暴走してしまいます。安定性に問題があるようです。

一応、モーターに0.01μFをつけ、PICの電源にパスコンをつけて様子を見たいと思います。

2009年3月25日 (水)

秋月、グラフィックLCD開発キットの製作

Graphiclcdkaihatu 秋月キットの、グラフィックLCD開発キットを製作しました。122x32ドットのSG12232Cを使用して、文字やグラフィックを編集し書き込みを行なうことで、単独動作で表示することができるようにするものです。

制御用マイコンにPIC16F877Aを使用しています。表示データの保存に、24C256を内蔵しています。

SG12232Cは、表示用に2~4kHzのクロックが必要になりますが、LMC555によって発振して加えています。

LCD画面は、パソコンのソフトで編集し、55画面が書き込み保存できます。設定により、使用する画面と、表示する時間間隔を設定できるので、デモ端子をショートしたままで電源を入れることで、画面が自動的に表示されていきます。

このキットは、開発キットということで、基板の下部に、ユニバーサルエリアがあり、使用されていないRD0~7と、RE0~2を使用して、拡張を行なうことができます。

2009年3月23日 (月)

ネットワーク汎用ユニットを蛇の目基板で製作

Ethernetboard_jyanome 書籍「PICで楽しむネットワーク接続機器の自作」では、例題を示すために汎用ユニットを製作しますが、容易に出来るように感光基板により基板を製作します。しかし、感光基板での製作が、難しい理由にもなっています。

感光基板で何枚か製作しましたが、重要であるのは、PIC18F67J60を取り付けるために、ピッチ変換基板で0.5mmピッチのICをコネクタへ変換するところにあるようです。

ブロックとしていくつかから成り立っているのですが、それらはそれほど難しいものではありません。強いて言えば、LANコネクタの配線が、コネクタのピン配置がわかりにくいために不安に思えるぐらいです。

そこで、今回の製作において、蛇の目基板で製作してみました。PIC18F67J60をピッチ変換基板でコネクタに変換するところは同じですが、それ以外は、蛇の目基板で配線を行っています。電源とGND(多数ある)を配線すると、他は、個々の配線をするだけになります。

Ethernetboard_jyanomeura 基板の配線は、ネットワークに接続できるところまで作りましたので、アナログ入力と、デジタル出力の部分は配線してありません。

ブロックに分けると次のように分かれます。

■書き込みのできるのに必要な配線
■液晶表示が出来る配線
■LEDが点灯する配線
■タクトスイッチが入力できる配線
■LANコネクタに接続する配線
■アナログ入力の配線
■デジタル出力の配線

蛇の目基板で配線すると、プリント基板で配線されていることのありがたさがわかりますが、そのためには、感光基板でのエッチングの作業が必要になり、さらに、パターンを製作する手間もあります。
感光基板を製作するのも大変なのに、回路が違うときには、パターンを製作するのも手間のかかることでしょう。それを考えて、蛇の目で配線してみました。

ネット接続の、リモートカメラの製作

Ethernetboard_remotecamera 書籍「PICで楽しむネットワーク接続機器の自作」の、第8章「リモートカメラ制御システムの製作」では、PIC18F67J60を使った汎用ユニットを使った応用例として、ウェブカメラの方向を上下左右するために、RCサーボを遠隔でコントロールするシステムを製作しています。

ネットワーク経由で、TCPプロトコルで制御する例は、すでに何度かありましたが、ここでは、ラジコンなどに使用されるRCサーボを使用して制御するところが目新しいと思います。

RCサーボには、GWS社の、S03T-2BBMG-Futabaを使用しています。汎用ユニットには、このRCサーボのコネクタに合うデジタル出力が4組あり、そのうちの2組を利用して上下左右に制御します。

RCサーボは、パルス幅により角度を制御しますが、パルス幅が1.5mSのときに、0度、パルス幅が0.9mSのときに+60度、パルス幅が2.1mSのときにー60度になります。この間の120度を設定することができるので、パルス幅を変更することで遠隔操作することができます。

製作は、汎用ユニットを製作することで完了していますので、RCサーボを入手して接続し、プログラムを書き込むことで完成します。

実際動作させるには、ウェブカメラを遠隔で監視するために、フリーウェアの「LiveCapture!」を使用していますが、カメラの方向制御にしか興味がなかったので試しませんでした。

長波136kHzテスト用発振器の製作

135khzosc 別冊CQ ham radio No.7の、P.119の「長波136kHzテスト用発振器を作ってみる」には、新しく割り当てられる見通しの、長波136kHzバンドを経験してみようと、微弱電波の136kHz発振器を製作してみています。

回路は、無線機というよりは、136kHzの周波数を発振するマイコン回路であって、マイコン基板から洩れる微弱なクロック信号を、無線機で受信するということになります。

19.6608MHzの水晶発振器の周波数を、PIC12F675で、ソフトウェア的にカウントすることで144分周して、136.533kHzを得ています。この周波数を、PICのポートをオンオフすることで出力していますが、これは電磁波ではなく、電圧の変化なので、無線機をよほど近づけなければ受かりません。

電磁波とするには、電界または、磁界を発生する素子を駆動する必要があると思います。そこで、マイコンのポートに出力された136kHzの周波数を、トランジスタ1段を経て、LC回路を駆動する回路を加えました。

136kHzの周波数に共振するLCは、300μHのコイルと、0.0047μFのコンデンサで構成しました。PIC12F675の、GP0(7ピン)から、10kΩを通して、2SC1213のベースに加え、コレクタには、先のLC共振回路をつなぎました。LCのもう一端に5Vを加えています。

この程度のアンプでは、10mWも出ないので、微弱ですが、無線機の近くに置くと受信することが出来ました。

書籍のサポートページからダウンロードしたプログラムファイルは、VVVを連続して発生するようになっていますが、記事のほうに紹介されていたように、自局のコールサインを続けるように修正を加えました。

136kHzでは、1/4λのアンテナを張っても何百メートルになってしまうでしょうから、そのような使い方はしないのでしょう。電波時計(40kHz/60kHz)のように、バーアンテナで受信するようであるなら、使い道はそれに似たようなものになるのでしょうか。

クロックの周波数と、電波の周波数の違いを知るよい機会になりました。

2009年3月12日 (木)

秋月、DDSコントローラのメモリーモード追加

Ddsmem_mode 秋月電子のDDSキットを、自作のコントローラでコントロールして使用しているのですが、秋月製のコントローラと同じ仕様となるように製作したものでした。

DDSボードの出力に入っているLPFのカットオフ周波数を、8MHzから20MHzになるようにLCを変更したので、コントローラのほうも合わせて拡張しました。

DDS用のLSIは、最大周波数が17.5MHzとなっていますが、コントローラでは16.7MHzとなっていました。理由は、上限の判定をするときに、24ビットの範囲に入るかどうかでチェックしているからです。これを、17.5MHzとなるように変更しました。

もうひとつ、ロータリーエンコーダを廻すと、周波数が増減するようになっていたのですが、新たなモードを設け、登録した10個のメモリチャンネルを順番に選択できるモードを作りました。モードの移行は、周波数の桁UPボタンを1秒以上長押しします。

メモリーモードでは、ロータリーエンコーダを廻すと、メモリチャンネルが増減します。個々のメモリチャンネルの内容を変更するには、周波数の桁DOWNボタンを1秒以上長押しします。メモリー設定モードでは、通常のように、ロータリーエンコーダで周波数の増減が出来ます。また、周波数の桁もUPDOWNできます。周波数の桁DOWNボタンを1秒以上長押しすると、現在の周波数を、表示のメモリチャンネルに書き込みます。

これで、初めに予定していた機能はすべて組み込みましたので、しばらく使ってみて、使い心地や、バグなどを確かめたいと思います。

2009年3月11日 (水)

秋月、H8/3069F-USBホストボードキットの製作

Aki_usbhost 秋月電子のキット「Cypress SL811-HST使用H8/3069F-USBホストボードキット」を組み立てました。

USBの機器側を製作することは増えてきましたが、USB機器を接続するホスト側を製作することは余りありません。

USB機器でも、HID、CDCなど、種類が多数あり、機器によってもアクセス法が違うので、どれでも対応できるわけではありませんが、その共通しているディスクリプタを読んで表示するだけの機能としてプログラムされていて、色々試せるようになっています。

このキットを組み立てても、データを受け渡したり、ボタンの状態を読み取るわけではありません。もちろん、ホストコントローラ自体は、USBとのやり取りができるようになっているので、自分でプログラムを組むことで、このボードを使ってUSBホストを製作することは可能です。

実際、パソコンなどでも、USB機器ごとにデバイスドライバーが必要になるように、個別に対応することが必要です。このキットは、USBホストのハードウェアボードを提供することが目的のようです。自分でデバイスドライバのようなプログラムを書くにはもう少し情報が欲しかったという感じです。

SL811-HSTコントローラの使い方と、特定のUSB機器のディスクリプタを自分で作れるだけの理解が必要になると思います。

とりあえず、開発環境のインストールと、サンプルプログラムの書込みが終わりましたので、USBの理解を深めて行きたいと思います。このボードで、例えばマウスに対応するようにつくり、マウスのインターフェースとして使えればいいなと思います。
希望は、シリアルを受け取れるようになることです。

2009年3月 2日 (月)

秋月、LED電光掲示板キットの製作

Aki_denkou 秋月キットの、LED電光掲示板ボードを組み立てました。表示モジュールが必要だったので購入したのですが、ついでに制御用の基板も組み立ててみました。

表示モジュールにほとんどの機能があるので、電光掲示板ボードには、H8/3664マイコンと、AT24C256があるだけです。

基板には、拡張用に電光掲示板に必要になりそうな機能がたくさん配線されていますが、部品は付属せず、組み立てたとしてもソフトが対応していません。

表示データは、パソコンから送り込みますが、パターンデータを、AT24C256に書き込むことで、ボード単体で表示するようにすることができます。写真では、基板の裏に、LEDモジュールを裏向きに取り付けているので、表示するときには裏向きで設置します。
表示モジュールへのコネクタは、表向きにもあるので、複数の表示モジュールを従続接続するような場合は、ケーブルで接続します。

実装されていませんが、電光掲示板ボードにある配線は、赤外線送受信、リアルタイムクロック、1ワイヤメモリ、A/D入力、ボーレイト発振器などです。
これらは、H8/3664に書き込まれるソフトがバージョンアップしたときにサポートされるようです。

PIC24の電光掲示板に表示の取り付け

Denkoukeijiban2 書籍「C言語ではじめるPIC24F活用ガイドブック」の、唯一、PIC24FJ64GA004を使用した製作の、電光掲示板とダイナミック点灯制御の基板に表示用のLEDを接続して、動作を確認しました。

PIC24FJ64GA004を使用した制御基板はすでに組み立てていて、RTCC(リアルタイムクロックカレンダー)のプログラムを書き込んでテストしてありました。

表示は、秋月電子のキット、「32x16ドットLEDマトリクス表示装置」を使用します。この表示には、4つの10ピンの端子がありますが、CN1AとCN1Bは、同じ接続であり、CN2AとCN2Bも同じ接続であって、どちらに接続してよいようになっています。CN2は、このモジュールを従続接続するときに、次のモジュールに接続するときに使用します。

したがって、今回の基板では、CN1A(または、CN1B)に接続します。
10ピンは、ほぼ制御基板の10ピンコネクタに対応しますが、電流の多いVCCは、制御基板の4ピンのコネクタに接続します。

プログラムを実行すると、16x32ドットの、上下に分けた8ドットで文字を表示します。そのため、上のラインと、下のラインの2行同時に表示します。

表示は、16x32LED表示モジュールで行なわれるので、制御基板は、表示パターンをシリアルで転送しているだけで、簡単なプログラムとなっています。
PIC24を使用した制御基板には、色々な周辺機器が組まれているので、もっといろいろなことが出来ます。

テストに使ったRTCCのプログラムのほうが、液晶表示、32.768kHz発振器などが使われるので、この基板を有効利用していると思います。
他にも、RS232Cシリアル、2つのアナログ入力、もあるので、電光掲示板に活用すれば、もっと面白いプログラムとなるでしょう。

2009年2月25日 (水)

PIC24で、電光掲示板を製作

Denkoukeijiban 書籍「C言語ではじめるPIC24F活用ガイドブック」の応用として、11-4章の電光掲示板とダイナミック点灯制御をみて、PIC24FJ64GA004による制御基板を製作しました。

書籍の中では、唯一これだけ、PIC24FJ64GA004(44ピンフラットパッケージ)を使用しています。PIC24FJ64GA002は、スリム28ピンなので製作が容易ですが、ピン数が余分に必要な場合にはGA004を使用します。

この製作では、CPUを取り付けるサブ基板を別に作り、コネクタで接続しています。基板の上には、電光掲示板の制御用の端子のほかに、RS232C入出力、液晶表示、デジタルスイッチ、2個のアナログ入力、32.768kHz発振器などがありますが、電光掲示板では、ほとんどが使われていません。次の11-5章のリアルタイムクロックカレンダ(RTCC)の方が、利用している部分が多いので、動作確認には、こちらを書き込んで確かめました。

PIC24FJ64GA002を使った汎用基板を製作する例が6-1章にあるのですが、今回製作したほうは、PIC24FJ64GA004を使用した汎用基板と思ったほうが良さそうです。

表示部は、秋月電子の32x16ドットLED表示機を使用しますが、それの接続はまだ試していません。入手はしているので、接続して確認してみたいと思います。

「ネットワーク機器の自作」のリモートスピーカを製作

Ethernetboard_remotespeaker 書籍「PICで楽しむネットワーク接続機器の自作」の第7章の、ネットワーク接続のリモートスピーカを製作しました。

PIC18F67J60を使用した汎用ボードは、感光基板も微細で(線幅が0.4mm程度になっている)、CPUのはんだ付けも、0.5mmピッチなのでピッチ変換基板へのはんだ付けが大変でした。しかし、出来てしまうと何とかなるものだと思えるようになりました。

リモートスピーカ基板は、汎用基板とほとんどが同じで、一部がマイク入力の増幅と、スピーカを鳴らすデジタルアンプに代わった程度です。基板のエッチングは、汎用基板と一緒に作っておいたものを使用しました。

難しいと思えることも、困難である点を一つ一つ解決することで、何とか達成できるものなのだと思いました。

リモートスピーカは、マイク(ライン)入力をデジタル化し、また、デジタル出力をデジタルアンプで増幅する機能があるだけで、ほとんどは、LANに接続してデータを送り受けするものです。この基板をイーサネットに接続しておき、パソコン側では、コントロールプログラムを実行します。基板から送られてきた音声データをパソコンに記録したり、記録されているデータを基板で再生したり出来ますが、正弦波を出力したり、基板に入力された音声をそのままスピーカへ再生する折り返し再生をすることもできます。

ほとんどが、汎用ボードを使用して動作を確認する例が多い中、このリモートスピーカでは、専用の基板を起こします。(マイク入力と、スピーカ再生があるだけですが)

この基板でも、汎用基板と同様に、書込みができても動作しないという状況になりました。書き込みのときに、「validiating configuration fields」と出る場合はうごきますが、出ない場合に動作しません。
対応としては、第6-1章のSample.Hexを書き込んだ後、目的のプログラムを書き込むと動作します。

こんな簡単なボードでも、LANを通して音声が行き来していると思うと感激です。

2009年2月20日 (金)

「ネットワーク機器の自作」の汎用ボード製作(4)

Ethernetboard_kansei 書籍「PICで楽しむネットワーク接続機器の自作」の、第5章の汎用ユニットを製作していますが、難関を越えてようやく完成しました。

書き込みに関して、第6-1章のSampleを書き込んだ後でないと、それ以降のプログラムが書き込んでも動かない理由は判らないのですが、「validiate configuration fields」と出た場合にはうまくいっていて、これが出ていない書き込みは動作しないようです。MPLAB-IDEの問題のような気がするので、後日バージョンアップしてみたいと思います。

LED0が点滅しなかった原因は、ピッチ変換基板にあり、LED0の端子が隣とブリッジしていました。現在は、うまく点滅しています。

残してあった、アナログ入力と、デジタル出力も配線を済ませました。

書籍の第6-3章のLANICMPでは、ARPとICMPのみに対応しており、パソコンからPingコマンドでアクセスすると応答します。LANコネクタ周りは正常に動作しているようです。
ひとつ注意することは、汎用ユニットのIPアドレスは、192.168.1.105となっているので、パソコンのIPアドレスも、3番目の数字が1でなければならないことです。
私の使用しているLANでは、192.168.11.1となっているので、接続しても応答はありません。別のルータを使って確認しました。

これで、書籍の第6章の各プロトコルを試してみることができるようになりました。
また、第7章以降の実用例でも、この汎用ユニットを使用しているものもあります。

プロトコルの学習や、自分でコンパイルしてみる前に、他の基板の製作を進めてみたいと思っています。いまは、第7章のリモートスピーカシステムの基板を製作してみています。

これで、ネットワーク接続機器を製作する足がかりが出来ました。

2009年2月19日 (木)

「ネットワーク機器の自作」の汎用ボード製作(3)

Ethernetboard_kakikomi 書籍「PICで楽しむネットワーク接続機器の自作」の5章の汎用ネットワークボードを製作しているのですが、プリント基板ができたらずいぶん気が楽になり、部品のはんだ付けをはじめました。

気になるのは、18F67J60の0.5mmピッチのはんだ付けが大丈夫かが心配なので、書込みが出来る最低限を先に作りました。

写真では、アナログ入力、デジタル出力がまだ作られていません。

電源、モジュラージャック、CPUのバイパスコンデンサが出来ていれば書き込みはできるはずです。動作を確認するために、液晶、LED、LANコネクタも取り付けています。

モジュラージャックに、ICD2を接続し、電源を供給して書き込みを行ないました。6-3章のLANICMP.HEXの書き込みは出来たようなのですが、動作はしません。

6-1章のSAMPLE.HEXも動作しませんが、その後、LANICMP.HEXをもう一度書き込んだら、液晶に表示が出ました。しかし、LED0は点滅していません。

LANICMPは、ARPとICMPに対応するので、Pingに応答するはずです。そこで、192.168.1.1のルータに接続して、パソコンからPingを送ってみましたところ応答がありました。常用のLANは、192.168.11.1なので、ネットマスクが合わないので、別のルータを使いました。

これでうごかないのは、LED0の点滅だけです。

書き込みの際に、いきなりLANICMPを書くと動作しません。LANDHCP(6-4章)も同様でした。
まず、6-1章のSAMPLE.HEXを書き込んだ後、それぞれを書き込まなければならないようです。そうすると、書き込む長さが長くなるようです。

課題は残しましたが、とりあえずうごきました。あとは、アナログ入力と、デジタル出力を追加することです。
6章にあるプログラムを順に書き込んで動作を確認していきたいと思います。

書き込みに関しては、MPLAB-IDEのほうに問題が有るような気がしています。

秋月、JJYシミュレータの製作

Jjysim 秋月キットの、「電波時計用時刻送信ボード JJY日本標準時シミュレーター・キット」を製作しました。

このキットは、実用にするのではなく、実験学習用です。電波時計で送られてくるタイムコードを理解するために、付属ソフトでグラフィックでの表示などで理解を助けます。

タイムコードは、3種類の長さがあります。200m秒±5m秒がマーカー、800m秒±5m秒が「0」、500m秒±5m秒が「1」となっています。これをビットとして、1秒に1ビットが送られてきています。情報は、1分の間に送られてきています。1分の間をほぼ10秒区切りで情報が送られてきますが、まず、その1分の開始位置を知る必要があります。
毎X9秒にマーカーが送られてきますが、1分の最初にもマーカーが送られてきます。つまり、マーカーが、59秒と0秒で2度続いたのが秒の始まりということになります。

受信解読は、毎秒のタイムコードが送られて来るビットを解読することでいいので比較的単純です。
JJYシミュレータの回路も単純で、PIC18F452から発生した40kHz(または60kHz)のパルスを、LPF2段を通すことで正弦波に近づけます。この正弦波を、オペアンプ(LMC662)で増幅しますが、そのゲインは、アナログスイッチ(4066)で切り替えることで、10:1に変化させます。つまり、振幅変調です。
オペアンプの出力は、ループアンテナへと導かれます。

オペアンプは、通常のオペアンプなので電力も小さく、20cmぐらいしか離すことができません。

このキットは、実験学習用ですが、実用性を高めるならば、PIC18F452の同等のソフトを作るとして、高精度水晶発振器で精度を上げ、他の電波時計か、インターネット時計などから正確に時刻を設定して、それによって、電波時計をひとつずつ校正していくということになるでしょうか。
電波時計は、1日に2~3度しか校正していないので、いつも近くにおいておく必要はありません。

正確な時刻を保てるようになれば、時差を加えるなどして海外の時刻を設定すれば、海外時間を示す電波時計とできることでしょう。

電波時計の電波は、構成は単純でも、その精度が重要なのでしょう。

2009年2月18日 (水)

「ネットワーク機器の自作」の汎用ボード製作(2)

Ethernetboard_kibann 書籍「PICで楽しむネットワーク機器の自作」の5章の汎用ボードを作り始めたのですが、感光基板が成功し、うまくエッチングできたので、穴あけと、不要部分の切り取りを行ないました。

パターンを見ると、穴は0.8mmで開けたほうがよいようなので、常用のドリルに代えて、12Vのモータにつながったドリルで開けました。ほとんどは0.8mmですが、タクトスイッチの穴は1mm、LANコネクタのケースを止める穴は2mmとしました。
また、ゴム足や、液晶固定用の穴は3mmとなっています。

一部、細長の穴を開けなければならないところもありますが、位置が合うかを確かめるためにコネクタなどを取り付けてみました。

寸法的にきついのは、CPUのピッチ変換基板との間のヘッダです。先に取り付けてみて、合うことがわかった後ではんだ付けしました。

Ethernetboard_cpu PIC18F67J60は、64ピンのフラットパッケージで、ピッチが0.5mmとなっています。そのため直接基板にはんだ付けせずに、ピッチ変換基板にはんだ付けしたものを取り付けるようになっています。

それでも、変換基板にはんだ付けするのは大変で、ブリッジしにくい0.3mmのはんだを使用したのですが、それぞれがうまくつながるようにするのは大変でした。

半田ごてを長く当てすぎて、一本、ピッチ変換基板のパターンがはがれてしまったので、ビニール線の芯線の1本を切って、はんだ付けでつなぎました。うまくつながってよかったと思いますが、だめならIC1個無駄にするところでした。

まずは、モジュラージャックを経由してICD2で書込みができるようなところまで作って、使えることを確認したいと思います。アナログ入力や、デジタル出力などは後にして、うごくことが確かめられるところから製作したいと思います。

CPU電源(バイパスコンデンサ含む)、電源3.3V、書き込みモジュラージャックが出来たら、書き込みをしてみようと思います。

2009年2月17日 (火)

「ネットワーク機器の自作」の汎用ボード製作(1)

Ethernetboard 書籍「PICで楽しむネットワーク接続機器の自作」は、イーサネットコントローラ内臓のPIC18F67J60を使って、ネットワーク機器を製作するものの例が出ているのですが、ネットワーク接続になじみがなかったのと、プリント基板を感光基板で製作するのが微細で、難易度が高かったのですが、ネットワークに接続する製作も進めつつ慣れてきました。

基板も、失敗する確率が高いのは、トレーシングペーパに印刷しているためではないかと、サンハヤトから出ている透明シートを用意したりしてトライしてみました。

確かに透明シートに印刷するときれいに印刷できました。

露光時間は、「ちびライト」で、以前には3分ぐらいだったのですが、今回は露出不足で、6~7分できれいに仕上がりました。違いがあったのは、現像液を溶かすときに、お湯で溶かしていたのをやめて、常温で溶かしたことです。現像の温度が高すぎたようです。

書籍では、汎用ボードを作るのに、5章をまるごと割いています。説明にあるように、基板を製作することからはじめました。
基板を作るならばということで、7章のリモートスピーカシステム用の基板も製作しました。これもうまく出来ました。

今後、基板を仕上げ、主要部品の取り付け、CPU用のピッチ変換基板の製作と進める予定です。

WEBラジオを壊してしまいました

Webradio_case 秋月電子のWEBラジオですが、久しぶりに電源を入れたところ、液晶のバックライトが明るく輝き、表示もすぐ消えてしまって急いで電源を切ったのですが、壊れてしまいました。

原因は、外部につなぐ12VのACアダプタを、5Vに下げるための3端子レギュレータ(7805)のGNDのはんだ付けが悪く接触不良だったようです。GNDは、べたのパターンであるために面積が広く半田ごての熱を分散してしまいます。十字に切って分散しないようになってはいますが、半田ごての熱容量が不足のようでした。3端子レギュレータのGNDが接続されないままだったので、入力電圧がそのまま出力に伝わったようです。

調べてみたところ、CPUとイーサネットコントローラが壊れたようです。修理不可能です。

ということで、再度購入して組み立ててみました。ほとんどチップ抵抗などで組み立て済みのため簡単に出来ました。

使っていた間に、放送局などの情報を設定していたのが飛んでしまっていますが、壊れたWEBラジオのEEPROM(24C256)は、壊れていなかったのでそのまま差し替えることでデータが復活しました。

イーサネットコントローラ用のMACアドレスを記憶しているEEPROM(93C46)も無事なようでした。何かに使えるでしょうか?

再びWEBラジオが聞けるようになりましたが、GNDの半田付けは注意しようと思いました。

2009年2月 9日 (月)

秋月、DDSキット用のコントローラを製作

Ddscase 秋月キットのDDSを製作し、同じキットのコントローラも製作したのですが、表示が2桁ずつ2枚の基板に分かれているためにケースにはまとめづらく、またチャタリングで、ロータリーエンコーダの動作が変なので、PIC16F88と、16x2液晶モジュールを使ってコントローラを作りました。
DDS基板と、製作したコントローラをまとめてケース(タカチYM-150)に入れました。

DDS基板に関しては、出力に入っているLPFのカットオフ周波数が8MHzであるために、最大17.5MHz(コントローラは16.7MHzまで)の出力が出来ません。今後、LCを入手して交換したいと思っていますが、現状では、10MHzを越えた周波数は、カウンタで測っていても計測できません。

コントローラは、PIC16F88を使用し、ロータリーエンコーダと2個のスイッチを読み込み、16x2液晶に表示します。周波数を変更すると、DDS基板のほうに、シリアルデータを転送します。周波数の範囲は、簡単のために24ビットの範囲としています。実際は、25ビット使って、DDS-LSIの最大周波数である17.5MHzまで可能であるはずです。

コントローラのソフトは、簡単に1つの周波数のみを扱っていますが、メモリーチャンネルモードを作って、ロータリーエンコーダを廻すと、予め登録してある10個(またはそれ以上)のメモリーを順に送っていく方式も考えています。(将来の課題)

Ddscaseinside 中身は、DDS基板と、コントローラ基板が入っていますが、単体での使用のために、ニッケル水素電池4本(1.2Vx4=4.8V)内蔵しています。また、DCジャックによって、外部の5VのACアダプタを使用することも出来ます。

基板はゆったりとはいるかと思って、取り付けのねじ穴を開けたのですが、電池ボックスが入らなくなって、穴を開けなおしました。

動作は安定しているようですが、スイッチのチャタリング回避の時間が若干短かったようです。

DDSでは、デジタルで周波数を合わせるので、周波数は正確ですが、基準の水晶発振モジュールは、50~100ppm程度なので、カウンタで測ると、300Hzぐらいずれがあるようです。

多機能周波数カウンタの製作

24fj32fcounter2 書籍「C言語ではじめるPIC24F活用ガイドブック」の、11-8章に出ている多機能周波数カウンタを製作しました。

PIC24FJ32GA002を使用していて、10Hz~50MHzを計測できます。精度は、基準となる水晶発振器に、3ppmの高精度発振器KTX0 12.8MHzを使用しているので正確です。3ppmというと、10MHzに対して30Hz誤差があるということで、確実に読み取ることが出来ます。

また、パルス出力として、0.1Hz~3MHz程度を出力できるので、基準発振器として利用できます。周波数は連続して選べるのではなく、0.01Hz,0.1Hz,1Hz,10Hz,100Hz,1kHz,10kHz,100kHz,200kHz,400kHz,800kHz,1.6MHz,3.2MHzから選ぶようになっています。

組み立ての都合で、ICSP用のモジュラージャックをつけていないので、PICの書き込みは別の基板で行いました。
ほとんど書籍の回路図のままで製作しましたが、リチュームイオン電池の3.7Vから、5Vに昇圧するMCP1253-33X50-I/MSが入手できませんでしたので、9Vの006Pから、78L05で下げるように変更しました。

周波数の測定は、1Hzの誤差があるということですが、パルス出力の1.6MHzを測定すると、1599999Hzのような表示となってしまいますがそのまま使用しています。

簡単な製作の割には、実用性の高いものを作ることが出来ました。これで、50MHzまでの測定にはこれひとつで対応することが出来ます。きれいなプラケースに収めました。

2009年2月 5日 (木)

MAX038精密発振器をケースに入れました

Max038caseinside 秋月キット、MAX038精密周波数発振器は、±5Vが必要ということで、6V100mAの2巻線のトランスと買ってきて、全波整流の後、7805,7905によって安定化した電源を作ったところ良好な動作をしたので、ケースに収めることにしました。

周波数調整(IIN)、周波数微調整(Fadj)、デューティ調整(Dadj)、波形選択などは、基板の端子から引き出して、ボリュームなどをケースに取り付けました。

出力のBNCコネクタは、ケースに入れる予定だったので、はんだ付けをしないままにしておき、ケースのほうにBNCコネクタを別に購入して取り付けました。

周波数調整(INN)は、抵抗が小さくなると周波数が高くなりますが、周波数微調整(Fadj)などは、抵抗が大きいほうが周波数が高くなるので、端子を逆にしました。

周波数微調整(Fadj)は、7割方まで来ると、それ以上は周波数は逆に下がり始めます。

タカチYM-150は、サイズがちょうどよいのでよく使いますが、つまみの間隔が少し狭くなってしまいました。ツマミを小さいものに変えれば少しはよくなると思います。

D級ステレオアンプをケースに入れました

Dclassampcase2 D級ステレオアンプキットを、ケースに入れてみました。1W+1Wですが、ウェブラジオを鳴らすような場合にはちょうど手ごろだったので、ケースに入れて、おいておくことが出来るようにしました。

スピーカーが、秋月電子て購入した横長のものだったので、これがうまく収まるケースとして、タカチPR-200Bを選びました。ほんのちょっとスピーカが支えるのですが、ネジを締めればうまく収まります。

このケースは、上蓋のほうが大きく、基板や部品などは上蓋の方に取り付け、逆さに設置されます。

電源は、2.7V~5.5Vということなので、通常は5VのACアダプタで使用し、持ち運ぶときには、単1電池の3Vで動作させます。

Dclassampcase 前面は、スピーカーでいっぱいになってしまったので、オーディオ入力、電源入力、電源スイッチは、背面に取り付けました。

サイズも、スピーカボックスとしては適当で、上にウェブラジオなどを置くことが出来ます。

スピーカは、ステレオですが、左右分離のための配慮は特にしていないので、離れて聴くとステレオであることがわからなくなってしまいます。

消費電力はそう大きくないので、電池交換には、ケースを止めているネジをはずさなければなりません。

このアンプを、ウェブラジオを聴くのに利用しています。

2009年2月 4日 (水)

PIC16F84Aを使った精密時計

16f84tokei 書籍「改訂版 電子工作のためのPIC16F活用ガイドブック」の応用例として出ている、8-2章の「高精度時計ユニット」を製作しました。

PIC16Fとしては定番の、PIC16F84Aを使用していますが、精度のいい時計を作るには、基準発振器に、高精度水晶発振モジュールKTX012.8MHzを使うことが最も重要なようです。

以前、8748を使ったデジタル時計の製作で、40kHzの水晶発振子を使い、トリマで調整することで精度をあわせるというものでしたが、どうしても精度よくできず、高精度モジュールを分周して入力することで、3が月たっても1秒も狂わない時計が出来たという記憶がありました。

今回の高精度時計ユニットも、PICは簡単なものですが、精度が出るというものが出来ます。
機能として、タイマー機能を持っています。2チャンネルある出力を、それぞれ、時間が来たらONまたはOFFに出来ます。
タイマの設定は、9プログラムまで可能です。

ちょっとPICで製作してみるという目的に十分ですが、精度はよく、機能も十分だと思います。

VoIPインターフォンの実験

Voipinterphone1 トラ技2008年7月号の、「IP電話のしくみを使ったLAN専用VoIPインターフォン」を製作してみました。

dsPIC30F2012を使い、イーサネットコントローラENC28J60をLANアクセスに使ったインターフォンで、マイクから入力された音を、圧縮した後、UDPパケットとしてもう一台のVoIPインターフォンへ送ります。相手方から送られてきたUDPパケットは、伸張した後、DA変換器でスピーカをならします。

大きく分けて2つに分かれると思います。1つは、音声をデジタルに変換し、デジタルを音声に変換する部分、もうひとつは、デジタルを、UDPパケットとして、LANへ送り出し、受け取る部分です。

音声の部分は、トラ技2007年9月号を参考にしたと書いてあります。
UDPパケットを扱う部分は、マイクロチップの「TCP/IPプロトコルスタック」を使用して、ENC28J60がすべてを行なっています。「TCP/IPプロトコルスタック」は、これから利用しようとしていたものなので、その基礎となるような気がしていました。

初めdsPICには、筆者のホームページからダウンロードしたファイルの、HEXファイルを書き込んでいましたが、どうしてもうまく動作することが出来ず、仕方なしに、途中までうごいたところでLEDを点灯させるなどしてデバッグしようと、コンパイルしなおして書き込んだところ動作するようになりました。
なにも変更することなく、コンパイルしなおすだけでいいようです。
コンパイル後のHEXファイルを書き込んだものを動作させると、LEDが点滅を始めました。
2台用意して、その間を、クロスLANケーブルで接続すると、LANコネクタの緑色のLEDが点灯し、リンクされたことがわかります。また、オレンジ色のLEDが点滅して、データを送受信しているようです。

実は、初めに組み立てたときに、動作せず、LANコネクタの配線の違いなのかどうか確信が持てずに迷っていました。
他の回路(SNTPサーバ)を組み立ててみたところ、LANコネクタの配線は間違いがなく動作するはずだということがわかりましたので、上記のデバッグを始めたというわけです。

Voipinterphone iPODをつないで音を送ったままで、受信側を聴いていると、確かに音楽が聞こえます。
しかし、マイクアンプで発生していると思うノイズがかなり大きく聞こえています。

送り側のVoIPインターフォンを止めるとノイズは止まります。また、送り側のAD変換入力の配線をはずすとノイズはやみます。やはり、マイクアンプが原因であると推定されますが、どうしても押えることができませんでした。

VoIPインターフォンを、ハブにそれぞれ接続して、パソコンでWireSharkなどで見ると、UDPパケットが送られていることが確認できます。

イーサネットに接続した2つの機器間のLANデータの交換は問題ないようです。
目的は、LANへの接続できる機器の製作なので、一応目的は達したということにしたいと思います。

2009年1月27日 (火)

電波時計を使ったSNTPサーバの製作

Sntpserver2 トラ技、2009年1月号の、「AVRマイコンと電波時計を使ったSNTPサーバの製作」を見て、SNTPサーバを製作しました。

インターネットのタイムサーバにアクセスして、パソコンの時計を構成するソフトがありますが、正確に合わせてくれるので、時々時刻を合わせています。
このSNTPサーバは、それと同じ役割を果たすもので、LAN上にこのサーバを稼動しておくと、このサーバに問い合わせればよくなります。

時刻を合わせるのですから、サーバ自体の時刻も正確でなければなりません。そのために、秋月キットの電波時計を利用し、同期のタイミングで、RS232Cで電波時計に時刻を問い合わせています。

この製作で、私はENC28J60を使用して、LANへアクセスするものを、初めて作りました。キットなどで組み立てたものの中には、LANへのアクセスするものはありましたが、部品で組み立てたのは初めてになります。
AVRのATmega168は、以前に使用したことがありましたが、LANアクセス以外の、液晶表示と、キー入力で動作させる部分で先に動作を確かめました。

CQ出版のトラ技のホームページからダウンロードしたプログラムのファイルには、基板のデータなども含まれているようですが、少し大きめの蛇の目基板で組み立てました。

回路図では、ENC28J60のバージョンは、REV5以降となっていましたが、液晶画面の情報の表示では、REV4と表示されました。しかし、問題なく動作するようです。

製作して、初めは動作しませんでした。電源を入れたまま、テスタで各部をあたっていると表示が出ているということから、リセット動作が不安のようでした。そこで、リセットスイッチを設けました。
写真左上のケーブルは、電波時計からの同期用のパルスですが、この基板では必要ありませんでした。内部で、自動的に、校正されていない状態では3分間隔で、校正されているときには10分間隔で、RS232C経由で電波時計に問い合わせていました。これにより、いつも正確な時刻を保つようになっています。

LANに接続するときに、IPアドレスは、192.168.0.101となっていますが、これは、MACアドレスの書き込まれたEEPROMの後ろのほうに書き込むと変更できます。
私のLANシステムでは、192.168.11.Xとなっていますので、変更して書き込みました。

物の初めは、何が悪いのかがわからず、どこをチェックしてよいのかわからないまま、当てなくチェックを続けることになりますが、SNTPサーバは、不案内なLANコネクタの配線にもめげず、確実に動いてくれました。

2009年1月23日 (金)

EZ-USBによるバーコードリーダを製作

Ezusb_barcode 書籍「USB機器の製作(電波新聞社)」の第5章ー4、バーコードリーダを製作しました。

Cypress社のUSBコントローラ内蔵マイコンのCY7C68013Aを採用した、ストロベリーリナックス製のEZ-USB-FX2マイコンボードを使用して、簡単にUSB機器を製作しています。

EZ-USBは、Cypress社の開発環境を使用し、サンプルプログラムの「bulkloop」を手本として、修正を加えた上で使用しています。書籍のプログラムは、すべてこのプログラムを基にしています。

EZ-USBは、ポートA、ポートB、ポートDを持ち、それらを利用したプログラムを作ることで、USBと、ポートとの間を取り持つことが出来ますが、開発したプログラムは、ボード上のEEPROM(24C64)に書き込んでおく必要があります。
EZ-USBは、フラッシュROMなどは持たず、RAM上のプログラムを実行しますので、使用する前に毎回転送しなければなりません。しかし、上記のEEPROMにプログラムがあると、電源投入のときにRAM上に読み込んで実行するので、すぐに使用できます。

Ezusb_barcode1 バーコードのプログラムは、EZ-USBには、フォトリフレクタ(GP2S40を使用しました)から読み込んだバーコードをUSBのバルク転送でパソコンに送ります。パソコン側は、HSP3(ホットスーププロセッサ3)によるバーコード解読プログラムで、バーコードを解読して表示します。

写真では、ほとんど読めるようになったところですが、若干のエラーがあります。チェックをしていないため間違いとはなっていません。
バーコードの読み取りには、フォトリフレクタの前に置く0.5mmのスリットのスリット幅がなかなか微妙です。また、フォトリフレクタの負荷に入っている感度調整も微妙です。

上の写真では、数字が2つ違っている程度です。

EZ-USBは、コンパクトな基板に納まっているので、USBで接続して、3つのポートを利用するという使い方が出来て便利です。
書籍を読んだだけでは、USBアクセスの仕方は、なかなか理解しづらいですが、理解できるようになってUSBを有効に利用できるようになればと思います。

2009年1月21日 (水)

秋月、DDS+コントローラキット

Akidds 秋月電子の、DDSキットと、DDSコントロールキットと組み立てました。

DDSは、ウェルパイン社のDDS用LSIを使用していて、周波数の設定には、パラレルモードとシリアルモードとがあり、DDSキット単体でも、パラレルモードで、付属のDIPSW(8ビットx3)で設定することが出来ます。設定する周波数が決まっていて、DIPSWであわせればいいという場合には、単体で使用するほうがよいでしょう。

周波数を、上げたり下げたりして、自由に設定したい場合には、DDSコントロールキットを合わせて使用し、シリアルモードで使用するほうがよいでしょう。

DDSは、外部から67.108864MHz(2の26乗Hz)を入力して、1Hzステップで、16,777,216Hz(2の24乗)までを出力することが出来ます。
DDSは、内部のROMから正弦波のデータを出力し、外付けのDA変換器でアナログに変換するものです。これは、クロック周波数がサンプリング周波数として載っているので、LPFでこれを落としておく必要があります。キットでは、8MHzのLPFが、出力に入っているので、出力は正弦波となります。
ただし、部品の都合なのか、カットオフ周波数が8MHzとなっているので、最大の16MHzまでを出力することは出来ません。フィルタの前を測定すると、最高周波数まで出ていましたが、セットとして使えるのは8MHzまでとなってしまいます。
カットオフ周波数を、16MHzにしようと、0.5μHと、200pF,400pFを探したのですが、ちょうどよいものは見つかりませんでした。性能をフルに発揮させるためには、周波数を16MHzにしておいたほうがよいと思います。

コントローラキットのほうは、ロータリーエンコーダキットを手直ししたものになっていて、表示を4桁にするために基板が2枚入っています。コントロール用のPICは、DDS+用にプログラムされたものになっています。

ロータリーエンコーダキットは、以前に組み立ててみたことがあったのですが、ロータリーエンコーダの読み込み方が簡易的なので、チャタリングにより、右へ廻しても左になることもありました。また、廻しても入らないでいらいらすることがあります。
デコードの仕方として、RE1が入ったときに、RE2が入っているかどうかで、右か左の判定をするのは、チャタリングに弱いことが懸念されます。本格的にやるには結構手間のかかるものになります。

DDSは、発振器として、周波数の正確さも安定性もいいので、コントローラを操作性のよいものにして、利用できたらと思います。
出来れば、16F88などでロータリーエンコーダをつくり、表示を16x2液晶にしたコントローラを作ってみたいと思います。

2009年1月15日 (木)

秋月、1Wx2ステレオ・デジタル・オーディオアンプキット

Dclassamp 秋月電子の、1Wx2ステレオ・オーディオアンプ・キットを製作しました。D級フィルタレスオーディオアンプIC,TPA2001D1を2つ使ったものです。

D級アンプは、入力波形をパルス波に変換して、増幅したもののPWM波形をフィルタを通して音に戻すものですが、このICでは、出力にLCフィルタは必要としません。

出力は、1Wということで、大きな音は出せませんが、スピーカがなる最小限必要なパワーというところでしょう。
ICは、16ピンのフラットパッケージで、外付け部品もほとんどありません。
キットでは、ICは実装済みで、コンデンサをはんだ付けしておしまいです。

電源は、5V単一で、3Vでの動作も可能です。(2.7V~5.5V)
ケースに収めて、乾電池での駆動するのでも良さそうです。
取扱説明書では、ヘッドホンで使用するために、差動増幅の片方のみ使用して、100μFのコンデンサでカットするものを例示しています。ヘッドホンでは、共通アースをGNDにしなければならないので、コンデンサが必要なのですが、やはり、2つのスピーカで再生したほうがよいでしょう。

WEBラジオの出力に接続して使用していますが、ゲインが4段階しかないので、WEBラジオのほうのボリュームで調整しています。

秋月、MAX038広帯域精密波形オシレータキット

Max038 秋月電子の、MAX038を使った、広帯域精密波形オシレータキットを製作しました。

スペックでは、0.1Hz~20MHzまで可能となっていますが、レンジは15:1で、希望する周波数範囲となるようにコンデンサーを選ぶようになっています。一応、オーディオ範囲とするために、0.1μFを選んで、500Hz~7500Hzとしてみました。これは、周波数調整(IIN)による調整範囲であり、周波数微調(FADJ)も併せれば、さらに範囲が広くなります。
測定したところ、183Hz~9.82kHzとなりました。

回路のほとんどは、IC(MAX038)で行なうので、回路はとても簡単です。しかし、±5Vの電源が必要です。ACアダプタというわけには行かないので、トランスを買ってきて、ACから取ることにしました。6V100mAが2巻線あるものを、それぞれブリッジで整流して、3端子レギュレータ7805,7905で下げました。

測定してみた周波数範囲は上記のとおりですが、周波数調整(IIN)を500Hzとなるようにしておいて、周波数微調整(FADJ)を変化させると、183Hz~885Hzと変化しました。また、周波数調整(IIN)を上限の7.69kHzに併せておいて、周波数微調整(FADJ)を変化させると、6.34kHz~9.82kHzと変化しました。

回路として、MAX038の出力には、超高速オペアンプHF1100などが入っているので、オーディオ周波数でなく、高周波での使用も可能になっています。周波数を変更するならば、コンデンサを22pFに変更して、2.5MHz~20MHzとしたほうがいいかもしれません。出力は、先のオペアンプがあるので、50Ωでドライブすることが出来ます。
コネクタは、BNCとなっていますので、こちらを想定したものなのかもしてません。

とりあえず、オーディオ周波数での動作を確かめてみて、良好であれば、無線周波数に変更するとよいかもしれません。ただし、スルーホールの基板なので、はんだをはずすのが大変かもしれません。

2009年1月11日 (日)

PIC16F活用ガイドのライントレーサの製作

Linetracer 書籍「改訂版 電子工作のためのPIC16F活用ガイドブック」の中の例題から、8-6章のライントレースロボットを製作してみました。

PIC16F876を使用していますが、機能は余裕を持って使っているような感じで、3個のフォトリフレクタが、黒い線を捉えていて、左右にそれているのを感知すると、モータの左右の速度を変えて、正しい道へ戻すようになっています。

回路は非常に簡単で、左右のセンサーが、黒い線を感知すると、感知したほうのモータを減速するということしかやっていません。

この製作は、主に田宮模型の、ユニバーサルプレートや、ツインモータボックスなどを使ってプラモデルを作る楽しみということでしょう。
ギヤボックスは、プラモデルとして、自分で組み立てます。

組み立てた車が走行すると、見ていて楽しいものですが、センサーは3つあり(両側の2つしか使用していない)、設定用のタクトスイッチが4つあります(使用していない)ので、これらを有効に使って、もっと効果的な方法で、ラインをトレースしていけるように考えるのが楽しみともいえます。
残念ながら、CCS-Cがないので、出来て終わってしまいましたが、実際に、白い紙の上に、黒い線を引いて走らせて見ると、緩やかな道筋は何とか追従するが、カーブが急だったり、交差しているようなものには、まったく対応できません。

ちょっと考えるとわかるように、左右のセンサが、黒を検出するとラインに入ってしまったということは、常にセンサーの真ん中に黒い線があるのが前提です。
今使われていない真ん中のセンサが、常に黒い線を捉えていて、外れたときに左右のどちらであるかを両端のセンサで知るようにしたほうがよいように思います。
いまのままのプログラムでは、左右が両方とも黒い線の上になると停止してしまいます。

机上での試行錯誤が続くか、やってみての少しずつの改良に専念するかのどちらになるかは、やってみていないのでわかりません。
16F876は、機能もメモリも余裕があるので、色々試してみるよい題材かもしれません。

秋月、JJYもどきキットの製作

Jjylike 秋月キットの、短波JJYもどき音響器・キットを購入しました。電波時計Ver2に接続して、昔あった短波のJJYの音で時刻を再生します。

オプションにより、NTT方式の音も出せます。
このキットは、電波時計Ver2キットと合わせて購入すると、1200円割安になりますが、別々に購入してしまいました。

電波時計の出力する、秒パルスと、分パルスを入力とし、毎秒の音をPIC16F84Aで再生します。
このキットの主な仕事は、JJYに似通った音を出すことにあります。

常時、時刻を気にしているような場合に、59秒目のポーという音で、分の始まりを知ることが出来ます。

音を聴いてみると、少し濁っているような感じがします。PICが発生したパルス波を2段のCRローパスフィルタで、正弦波にしていますが、音が悪いのは、終段アンプのLM386のような感じです。気休めに、スピーカー出力の5ピンに、10Ωと0.01μFを直列にしたものを入れてみました。音が丸くなって、聴きやすくなりましたが、音色が少し変わってしまったような気もします。

一緒に使うことが考慮されていなくて、秒や分のパルスは、電波時計にはんだ付けする必要があります。

2009年1月 3日 (土)

秋月、電波時計キットの製作

Jjyradioclock 秋月キットの電波時計Ver2を購入し、組み立てました。前にも購入していたのですが、受信ICが壊れているようだったので再度購入しました。

JJYの40kHz(60kHzはオプション)を受信して、1秒ごとに送られているコードを解析して時刻を知ることができるものです。
タイムコードは、1分の間に順番に送られているので、開始時点を知る必要がありますが、1分受信している間にそれを発見することが出来ます。
この電波時計では、最低2分の間、このマーカをサーチします。その後、時刻情報を読み取るために、最低3分受信します。
実際には、2分受信すれば、表示に必要な情報は揃うのですが、誤受信の可能性を考えてのことだと思います。

受信ICからのTCOを得られれば、時刻情報を取り出すことは、慎重なプログラミングにより可能です。(以前に、16F88で受信してみたことがありました)

電波時計からは、正確な時刻情報が得られるので、JJYの受信しやすいところに固定しておくのがよいと思います。ニッケル水素電池10本を接続して、バックアップ電源を使うことが出来るようになっています。
タイマーとして4チャンネル分用意されていますが、表示されるのは2本分です。
また、毎秒、毎分、毎時、毎日、毎月の正時にパルスを出力することができるので、外部の機器を同期して、正確な時刻とすることができます。

受信部と、時計部は基板を切り離して、LANケーブルで接続できるので、受信部のみを電波の受かりやすい離れた場所に設置することが出来ます。
電波時計として製作が難しいのは、電波を受信する部分なので、この部分だけ使い、時計部を自作することも可能でしょう。タイムコードの解読は、一度プログラムが出来てしまえばそれほど難しいものではありません。

JJYの電波がどのように出ているかを知るにはよい教材だと思います。

2008年12月31日 (水)

SDカードを使ったデータロガー

24fj32sdlogger 書籍「C言語ではじめるPIC24F活用ガイドブック」の11-12章に出ている、SDカードを使ったデータロガーを製作しました。

PIC24FJ32GA002を使った製作が色々出ているのですが、その中で、SDカードを保存メディアにしたデータロガーが出ていました。

保存データが少ないうちは、メモリなどに保存するのでもいいのですが、データ量が多い場合や、また、逐一シリアルでパソコンに送る場合でも、サンプリング速度が速いと追いつかなくなってしまいます。

PIC24FJ32GA002は、SPIインターフェースを持っているので、SDカードと接続することが出来ます。マイクロチップ社では、FATなどを扱う「ファイルシステム」を提供しています。これを使用すると、PICで、SDカードの読み書きを容易に行うことができます。

このデータロガーでは、4チャンネル(内2チャンネルは、オペアンプのバッファー入り)の入力を、SDカードに記録していくことが出来ます。サンプリングは、10msec,100msec,500msec,1secから選ぶことが出来、いつでも保存開始、終了とすることができます。

書籍には、プリント基板用のパターン図なども収録されていますが、蛇の目基板で製作しました。基板の縦横1穴分カットすることで、透明ケースに収めることが出来ました。
書籍では、3.7Vリチュウム電池を、DCDCコンバータで5Vに昇圧するようになっていますが、コンバータ用のIC(MCP1253)が手に入らなかったので、9Vを3端子レギュレータで5Vに下げるようにしました。006Pは、透明ケースにうまく収まりました。

組みあがって、動作させてみたところ、SDカードの書き込みで、「FILE OPEN ERROR」となってしまいました。原因は、SDカードスロットのWP信号がLOWになっているのが原因でした。
WP信号は、ライトプロテクトの出力で、SDカードのLOCKによってHIGHとなります。
SDカードを挿入すると、一旦LOWになり、刺さりきったときにLOCKになっているときにHIGHとなるものです。この検出がうまくいかないSDカードスロットが多いのですが、使用したスロットもうまくいかないもので、HIGHとはならないものでした。この端子は、LOCKのときにHIGHとなるので、LOWのままなら、書込み禁止できないだけと考えていました。
しかし、プログラムでは、この端子は、通常HIGHを期待しているようです。
LOWにすると、書込み禁止となっていると判断しているようです。そこで、疑問はありますが、この配線をはずし、HIGHとなるようにしました。

SDカードに書き込みを行なって、パソコンで読み出してみると、ファイルが作られていました。ファイルは、LOGGER0.TXT~LOGGER7.TXTの8つのファイルとなります。
これは、一旦ファイルへの書き込みを止めて、ふたたび書き込みを始めると次のファイルとなるようです。

プログラムは、C言語で書かれていることと、ファイルシステムが提供されているため、比較的短いプログラムです。このプログラムで、「ファイルシステム」の使い方がわかりました。

2008年12月29日 (月)

秋月、ウェブラジオをケースに入れる

Webradio_case 秋月キット、ウェブラジオ用のポリ・カーボネート・ケース(P-01750)を購入しました。1200円は安くありませんが、ウェブラジオがとてもよくできていて、普段も聞くためには、基板むき出しのままでは都合が悪く、安心して使えるようにしたいと思ったからです。

ケースは透明ケースで、中身が見えるものですが、ショートしたり、ほこりがたまることは防げます。

ケースには、正確な位置に穴が開けられています。液晶や、ロータリーエンコーダ、後部の端子などにぴったり合うようになっています。
面白いのは、MENU/SETとMUTE/CANSELのタクトスイッチは、表面まで頭が出ないので、継ぎ足しのための12mmのアクリル棒がついています。
この棒を、タクトスイッチの上に置き、ヒシチューブやビニールテープで止めることでずれないようにしておき、ケースの穴を通します。耐久性はともかく、アクリルだけで済ませてしまうところが面白いです。

基板は、スペーサーによって蓋のほうに取り付けます。液晶なども穴から出て、上蓋のみですべてを取り付けてしまいます。底蓋には、ただ乗せているだけです。

これで、安心してインターネットラジオを聴くことができるようになりました。
パソコンのほうからアクセスして、新規で選局先を登録しました。SHOUT-CASTのホームページで探して、TUNE-INで再生してみることが出来ます。(REAL-PLAYERで再生されます)
再生中に、プロパティで、URLを確認して、それを新規登録に貼り付けるだけです。

何を聴いていいかわからない場合、プレステ・ポータブルのインターネットラジオで探して、その放送局名を、SHOUT-CASTのホームページで検索して見つけるのが簡単です。

PICを使った「電圧&電流計」の実験

Easyvoltintencity 書籍「PICを使った簡易測定器の実験」のうち、簡易電圧&電流計の付録基板を製作しました。

他の基板でもそうでしたが、16F88の豊富な内臓周辺機器を活かした、外付け部品の少ない回路となっています。

基板には、PICを動作させるために5Vが供給されていますが、それとは別の電源から、20V2Aまでの供給して負荷を動作させる電圧と電流を測定するようになっています。

外付け部品はほとんど無いといっても、電圧や電流をPICに都合のよい電圧とするためにオペアンプを使用しています。
使い方は、非反転の増幅度を変えるためだけをさせていますが、使い方に若干疑問を持ちました。
動作させてみて気がつくことは、電流が流れていないにもかかわらず、6mAを表示することです。書籍の写真を見ると、ちゃんと0mAになっているのですが、いくら見直してみても、6mA流れていることになってしまいます。分解能が10mAとなっているので、それ以下なのですが、ゼロでないのが気にかかります。

ゼロにならないのは、オペアンプの使い方によるようです。電流検出のオペアンプは、一見ボルテージフォロアのようにも見えますが、本来はプラスもマイナスも電流加算でなければならないはずです。つまりプラス側の入力抵抗10kΩが無いということになります。

オペアンプのプラス入力とマイナス入力は、正しく帰還などが行なわれていれば、両電位は一致しているはずですが、プラス入力を強引にひっぱっている場合、若干の誤差が出ます。
6mAということは、0.1Ωの両端には600μVが発生していることになりますが、このぐらいの誤差はあるのではないでしょうか。

簡易測定器の意味で、EASYを当てていますが、これは大雑把な、いい加減なという意味になります。本来なら、SIMPLE(こらない、ごてごてしない)を使うところでしょう。
しかし、誤訳したわけではなく、本当に気楽に製作したと感じられる気がします。
16F88ですぐにできること、そして、使いやすいCコンパイラを紹介することに意味があるような気がします。

EASYがそのように感じられるのは、プリントパターンの製作にもあります。液晶を正しい方向に向けると、基板を覆ってしまってスイッチなどが操作しづらく、基板のシルク文字も逆さになっています。
他の基板でしたが、書籍の回路図とプリント基板の配線が一致しないなどもあって、少し残念に思いました。

2008年12月24日 (水)

AVR、降圧型DC-DCコンバータ

Avr_dcdcdown トラ技2008年1月号の特集3-3の降圧型DC-DCコンバータを製作しました。

AVRのATtiny45で制御した、5Vから、3.3/2.5/1.8V を出力するものです。
回路図は、12Vから10Vを出力する応用回路となっていますが、上記の回路を作るときには、入力を5Vとし、出力をフィードバックするために分圧している抵抗を、両方とも10kΩにすることで出来ます。

掲載されている10V出力の応用例では、設定を5Vになるように設定(PB0=0,PB2=0)して、分圧比を2倍となるようにして10Vを発生します。
回路図を見ると、設定がPB0=1,PB2=1となるようになっていますが間違いです。
ついでに、PWM出力と、ADコンバータ入力のピンが逆になっています。

測定データによると、3.3Vのときに、100mA取れるとのことですが、電圧が設定値に近くなることだけ確認しました。

このようなフィードバック制御系では、応答の速さのほかに、制御の安定性が重要です。このDC-DCコンバータでは、安定に出力が出たときはいいのですが、変な値となっているときに、目標値へ向かわないことがあるようでした。実用には少し不安です。

秋月、ウェブラジオの製作

Webradio 秋月キット、Webラジオ・キット(BB-SHOUT)を組み立てました。インターネットで多く放送されているラジオを受信するためのもので、Shout-Cast方式、Ice-Cast方式のストリーミング放送を再生することが出来ます。

基板上には、H8/3069Fが実装され、LANコントローラにRTL-8019AS、MP3デコーダとしてVS-1011E、RAMとして、TC5117805などを備えています。

LANのLSIも、MP3のLSIもすでになじみのものとなっていますが、それぞれ1個のLSIでその役割を果たすものとなっています。
OSには、μITRONで、TOPPERS/JSP Kernelを稼動しているようです。

基板上に、SMTパッケージのLSIは、はんだ付け済みなので、はんだ付けしなければならない部品はそう多くありません。
LANへのアクセスも、H8/3069にRTL-8019ASを組み合わせることで、UDPを扱うことはそう難しいことではなくなっているのだと思いました。

組み立てが終わり、電源を入れてみたところ、DHCPによるIPアドレスが割り当てるのを待っているところに来ました。ルーターに接続すると、IPアドレスが割り当てられ、動作を開始したと思ったのですが、なぜかエラーとなりました。
理由は、組み立てミスではなく、ネット接続の間違いでもなく、登録されているラジオのチャンネルがすでに放送していないのが原因でした。
チャンネルを変更したところ、接続中の黄色のLEDが点灯し、やがて音が出ました。

液晶に、放送局情報と、曲名情報が流れ、音楽が流れています。
放送局によって、ビットレイトが異なるので音質が異なります。また、ステレオで放送されている局も、モノラルの局もあります。
しかし、接続は安定していて途切れることはありませんでした。PSPのインターネットラジオでは、時々接続が途切れることがありましたがそのようなことはありません。
たまたま、LANケーブルが外れたときに、放送が1分近くも流れ続けましたが、ボード上のRAMに保存されながら再生されるので、かなり長い時間保持しているのが途切れない理由でしょう。

かなり長い時間溜め込んでいることから、放送の時刻からだいぶ遅れて再生されていると思いますが、時報などはないので気にはなりません。

放送局は、サンプルとして10曲登録されているだけで、自分の気に入った放送局を登録することが出来ます。
http://www.shoutcast.com/ から、放送局名を調べて登録すれば自分の気に入った放送をいつでも聞けるようになります。

2008年12月23日 (火)

PICを使った「周波数カウンタ」の実験

Easyfcounter 書籍「PICを使った簡易測定器の実験」を購入しました。周波数カウンタ、電圧&電流計、コンデンサー容量計の基板が付録としてついていますが、その中の、周波数カウンタを製作しました。

周波数カウンタは、基準になるゲートタイムを作る精度のよい水晶が必要になりますが、8ピンのEXO3の20MHzを使用しています。この発振器は、100ppmほどの誤差があるのであまり精度がいいとはいえませんが、0.01%程度の誤差になるので大雑把な数値でよい場合には十分です。

DIPSWでモードを設定できますが、1Hz単位で測定するときは、最大4MHz、1kHz単位で測定するときには、最大32MHzまで測定できます。
ゲートタイムとして、1秒、0.1秒の切り替えが出来ます。
ラジオの受信周波数を表示するために、455kHz少ない周波数を表示する機能があります。

組み立ては、パーツも少ないので簡単に組み立てられます。液晶は基板に被さるように取り付けられますので、DIPSWなどが隠れてしまって操作しづらくなってしまいます。
また、液晶の向きにあわせるならば、基板は上下さかさまに使用することになってしまいます。
基板設計は、すこし失敗したのではないかと想像しています。

液晶モジュールは、今まで使用してきた端子が横にあるものでなく、下部に1列になったもので少し小型になっています。
値段は、小型のほうが高くなってしまいます。

部品などにより、精度はある程度得られるようにはしていますが、突き詰めてはいないので、実用にすることは考えず、簡易測定、または、基本回路を組んだときにどの程度の精度になるかの確認用と思ったほうが良さそうです。

PICを使った「容量計」の実験

Easycapameter 書籍「PICを使った簡易測定器の実験」を購入しました。周波数カウンタ、電圧&電流計、コンデンサー容量計が製作できる基板が付録としてついています。

「簡易測定器」「~の実験」のいずれの言葉も、実用性から遠い感じがしてしまいますが、基本的な方法がどの程度使えるものであるかを、予め実験しておくためのものと理解しました。

この測定方法でうまくいくのか、そして、どのような問題があるかをしっかりつかんで行きたいと思います。それを踏まえて、実際に使うものを作るときに、改良した方法で作っていくのがよいのでしょう。

PIC16F88は、ピン数は多くありませんが、内蔵機能は豊富なので色々な対応ができるようです。このコンデンサー容量計では、上限と下限を設定したコンパレータとして使用しています。
測定方法は、放電された被測定コンデンサに充電することで、その時間を測定することで容量を計算します。
充電は、放電させるトランジスタがオフになったときに、トランジスタの接合容量にも充電するので、出だしは誤差が多くなってしまいます。また、充電カーブは、指数関数的に変化するので、直線で近似できるのは最初のうちだけになります。
そこで、充電の途中のところを測定するようになっています。

容量値は、指数関数から計算するのではなく、容量値と充電時間は比例(τ=CR)することから、1000pF(1%)を測定しておき、それとの比率で測定値を計算するようになっています。そのため、1000pFでキャリブレートしておく必要はありますが、計算は簡単になります。

また、なにも接続せずに測定しておくことで、浮遊容量をキャンセルすることができるので、測定が容易になっています。

キャリブレイトをしっかりすれば、ある程度使えるものになるようですが、測定範囲が、1pF~10000pF(0.01μF)までしかないのが残念です。
レンジ切り替えなどを追加して、実用のものを作ったら良さそうです。

2008年12月20日 (土)

トラ技2008年1月のMMC/SDカードリーダの製作

Mmcsdh8_3052 トラ技2008年1月号の特集4-2のMMC/SDカード・コントローラを製作しました。H8/3052ボードによって、MMC/SDカードの読み書きをするものです。

機能としては、FATなどはサポートせず、セクターの読み書きをするところまでです。SDカードの情報は読み出すことは出来ます。

構成は、5Vで動作するH8/3052マイコンボードに対して、3.3Vで動作するSDカードスロットを繫げるための74HC125を使用したインターフェースがあります。プログラムはC言語で書かれているので、メモリーが若干必要になるので、HM628128のRAMを増設しています。そのため、モード6の拡張16Mとして、外部のRAMをアクセスします。

プログラムは、フラッシュROMに入れるのではなく、H8モニターをフラッシュROMに書き込んでおいて、モニターのLコマンドによって、RAM(200000~)にロードして実行します。製作記事では、デモプログラムは小さいので、RAMを拡張しなくても実行できるとあったので、コンパイルのアドレスの割り当てを変更して、フラッシュROMと、内臓RAMで実行してみたのですがなかなかうまくいきませんでした。

Mmcsdinterface MMC/SDカードスロットを取り付けるためには、表面実装のように半田面に取り付けなければならなかったので、基板を裏返しにして取り付け、部品を裏面に取り付けてはんだ付けをしています。20ピン(10x2)のコネクタでマザーボードと結合しますので取り外しが出来、他のボードでの流用が可能になっています。
48M033による電源も基板上にあるので、マザーボードからは、5Vで利用しているように扱うことが出来ます。

配線はしていませんが、CD入力やWP入力も取り出すことが出来ます。

実行の上での注意事項として、H8/3052ボードをモード6にして使用するとき、内臓フラッシュROMが有効であり、内部で動作するので、アドレスバスや、CS1などが入力になっていることです。これは、電源起動後にプログラムで出力に設定しなければなりません。
電源を入れると、内臓フラッシュROMに書き込まれたモニタが動作しますので、コマンドでポートを出力に設定します。それまではRAMは利用することは出来ません。

設定しなければならないのは、
P1DDR(FFFFC0)にFF
P2DDR(FFFFC1)にFF
P5DDR(FFFFC8)にFF
P8DDR(FFFFCD)にE8
をそれぞれ書き込んだあと、L(ロード)コマンドで、MMC/SDカードデモプログラムを読み込んで実行します。

SDカードには、セクタ読み書きにより書き込みを行なうため、FATを壊してしまうので、他に利用するときには再フォーマットが必要になります。

このプログラムは、TECH I Vol35に掲載されたH8でのSDカードアクセスのプログラムを利用しているということで、基本動作がどうなっているかを学ぶために適していると思います。実用に使うには、この上にFATアクセス処理を追加指定かなければならないでしょう。もちろんセクタアクセスで利用することも出来ます。

秋月、SH7144ベースボード

Sh7144 秋月電子のキットの、SH7144Fマイコンボード開発セットを組み立てました。といっても完成品なので、買い忘れた3.3VのACアダプタの代わりとなる3端子レギュレータによる電源回路を作ったのみです。

CPUは、低電圧化が進み、このSH7144では、電源電圧は3.3Vとなっています。マザーボードに3端子レギュレータがあれば5V以上とすることは可能なのですが、特に無く、CPUボードの3.3Vを印加するようになっています。

キットとしては完成していて、購入後にやらなければならないのは、コンパイラ(HEW4)と、ライタ(FDT)のインストールと、サンプルソフトをCPUに書き込むことだけです。
サンプルソフトは、ソースも同梱されているので、自分でコンパイルすることが出来、コンパイルの仕方を練習することが出来ます。

サンプルソフトは、電源を入れると、2個のLEDが交互に1秒周期で点滅するものですが、クロックモードの設定(MD2,MD3)を変更することで、クロック速度を変更したときの違いを見ることが出来ます。

単品で売られているSH7144マイコンボードの入門と、書き込み用に使うものなのでしょう。

アセンブラでプログラムを作る場合には、リセットベクタや、割り込みベクタなどから自分で必要な設定をするところなのでハードウェアの理解も必要になり、LED点滅プログラムが動くようになれば大方わかったといえるかもしれませんが、C言語で書かれている場合には、ポートを出力に設定する位なので、なにも判ったことにはなりません。

C言語でのサンプルプログラムであるならば、ちょっと手の込んだアルゴリズムのプログラムがこんなに簡単にできるというようなことを示さないと単なるCPU動作の確認になってしまいます。

付属のCDROMには、資料なども入っているようなので理解を深めて何かのプログラムを作ってみたいと思います。
参考書などが無いかと探してみているところです。

2008年12月15日 (月)

イーサネット内蔵マイコンKBC-P18LAN

Kbcp18lan 共立エレショップの、イーサネットコントローラ内臓チップPIC18F67J60を使用したKBC-P18LANを購入しました。

書籍「PICで楽しむネットワーク接続機器の自作」を購入するときに、アマゾンのサイトで、評価の欄に、標準ボードを製作するのは大変なので、完成ボードを探したらあったと出ていたので、同じものを購入しました。

KBC-P18LANは、PIC18F67J60を使用していて、ソフトにマイクロチップのTCP/IPスタックを使用しています。
ボードを内部LANに接続すると、ルーターのDHCPによってIPアドレスが与えられます。私の場合には、192.168.11.25が割り当てられました。
ブラウザで、このアドレスを開くと、WEBページが表示されます。

WEBページは、TCP/IPスタックのサンプルに若干の修正を加えたものとなっています。
画面上のボタンを押すと、ボード上の2個のリレーをコントロールしたり、LEDをオンオフできます。

マイクロチップ社は、イーサネットコントローラ内臓のPICに合わせて、TCP/IPスタックを提供しています。プログラムは、C30のC言語で書かれていて、自分のボードに合うようにカスタマイズしてコンパイルすることで、容易にイーサネットを利用できるようになっています。

書籍でも、このTCP/IPスタックを利用していますので、書籍のボードを自作する前に、このボードでの練習をするのがよいでしょう。

2008年12月 8日 (月)

CQ誌の、デジタルSWR計の製作

Digitalswr CQ誌2008年9月号の「PIC-BASICを使ったデジタルSWR計の試作」を製作してみました。

無線機の高周波を、トロイダルコイルによって進行波と反射波を検出して、PICマイコンのAD変換機によって入力したものをBASICのプログラムで計算し表示するものです。

マイコンとしては何度も使用したPIC-BASICですが、高周波と合わせて使用することはなく、また、高周波のスキルも不足する中で非常に苦労しました。
無線機からの電波によって、センサー基板に高周波が流れると、マイコン基板の電源や、液晶表示の輝度調整用の電圧に干渉があり、マイコンプログラムが停止したり、液晶の輝度が濃くなったりしました。
逆に、ノイズ発生源のマイコン基板からは、電波が出ていて、アンテナを接続していると、センサー基板を通してノイズが混入して受信感度が低下してしまいました。

確かに、無線機をパソコンでコントロールしたり、受信した信号をマイコンで処理したりすることはあるのですが、間は離れていました。
今回の製作では、マイコン基板は、センサー基板のすぐ近くの、同じケース内にあります。製作が雑で、干渉がうまく排除できないということもありますが、このように合わせて使うとさらに便利になるという場合に、影響を考慮しなければならないということがわかりました。

原理はとても簡単で、進行波VFと、反射波VRは、センサー基板から取り出されますが、この出力を、マイコンのAD変換により取り込んで、SWR=(VF+VR)/(VF-VR)を計算するだけです。

考えられる解決策としては、センサー基板のケースと、マイコン基板のケースを分けて、間をケーブルでつなぐようなことでしょう。

たしかに、アンテナインピーダンス測定器では、無線機からの電波は印加されませんし、パソコンコントロールの無線機も、間はケーブルで接続されます。
以前に、パソコンを立ち上げるときや、LANケーブルが這い回っているところでは、無線機のノイズレベルは上昇していました。
合わせて使うと便利そうな組み合わせですが、両方の弱点が干渉しあってしまうことになり、うまくあわせられない典型なのかもしれません。

一応、調整として、高い周波数では、マイコン電源への回り込みがひどく、低い周波数では、センサー基板の感度が十分でないということで、50MHzで、何とか使うことが出来ました。無線機から電波を出すと、VF,VRの値が適当な値を示します。

この「試作」で、貴重な経験が得られました。まだ、高周波における私のスキルが十分でないので、干渉が少なく両方が使えるような組み立て方が身につくまで、大事に保管しておきたいと思います。
昔、作ってみたがうまくいかないと壊してしまったが、後で考えれば、あそこをこうすればよかったと思い直すことがあるので、将来は、この回路でうまく使えるようになることを期待します。

2008年12月 4日 (木)

「MP3プレーヤ」製作顛末記を作ってみました

Mp3player トラ技2008年12月号の、P.253~の「MP3プレーヤ」製作顛末記に紹介されているMP3プレーヤを製作してみました。

この記事には、MP3デコーダVS1011eの使い方と、SDカード読み出しの2つの大きな要素が含まれています。
それぞれ単独に使いたいと思っていたものなのですが、ソースプログラムを見るとそれぞれの使い方がよく解ります。

CPUにPIC24FJ64GA002を使うのであればそのまま使うことが出来るでしょう。
また、SDカードの読み出しには、マイクロチップ社のFAT16のファイルシステムを使用しているので、色々な応用が出来そうです。

トラ技のホームページから、プログラムをダウンロードすると、顛末記というように、調整過程のプログラムがそれぞれ入っていました。

それぞれの機能を動かしていくために、次のような順序で作業を進めました。
■PIC24FJ64GA002を書込みができるように、ICSP周りを配線して、プログラムを書き込む。
■VS1011eの配線を終え、動作確認のために、MP3test1を書き込み動作確認、
■SDカードスロットの配線を終え、MP3test2で、「alde_01.mp3」読み出しの確認
■SDカードに、音楽ファイル「alde_01.MP3」をいれ、MP3test3で再生テスト。
■本番プログラムmp3pocketで、SDカードにある音楽ファイルを順次再生。

なお、この製作記事では、通常ある回路図がありませんでした。あるのは、ブロック図とでもいうような、どのピンが、SDカードにつながっているというような感じです。
参考にしたのは、CPU関連は、トラ技2008年1月号の、PIC24FJ32GA002を使ったオシロの記事、MP3デコーダは、秋月電子で購入したときに付属していたデータシートを、SDカードスロットは、他の製作記事を参考にしました。

注意点として、SDカードスロットの端子の、SDIと、SDOは、SDカードに対しての入力、出力なのですが、記事のSDI、SDOは、PICにとっての入力、出力となっているので、逆に接続する必要があるということです。

また、試作中の回路では、LEDは、RB3(低音ブーストスイッチ)に接続されていて、完成品では、RA1に接続されます。いずれも、「1」で点灯になります。

MP3デコーダ(VS1011e)も、SDカードの読み出しもこれから習得して行こうと思っていたものなので、同時に動いてしまって大感激しています。

2008年11月29日 (土)

秋月、H8/3052LAN開発キットの製作

Akih8lankit 秋月電子のキット、AKI-H8/3052LAN開発キットと組み立てました。
H8/3052のCPUボードに、EthernetコントローラRTL8019ASや、16x2液晶モジュール、RAM、スイッチ、LED類を追加するマザーボードがつきます。

付属の回路図が、一枚図面で無いのでわかりにくいですが、マザーボードには、Ethernetコントローラがあるのみと思ってもいいすぎではありません。

しかし、どんな回路か解らない基板で動いているというよりも、これだけの回路を作ればLANへアクセスできるのだとわかることは理解しやすいことだと思います。
また、ソフトも、すべてがC言語で書かれたソースが付属し、自分でコンパイルして使用しますので、自分の使いたいように直すことで、応用が効くようになっています。

まずは、付属しているサンプルプログラムが動作することを目標にします。

組み立ては、基板のパターンが細かすぎて、どのように配線しているかを追いながら組み立てるのは無理のようなので、パーツリストの、部品番号を1つずつ、基板の部品番号に合わせてはんだ付けしていくことになります。
ブロックごとに、回路が組み上げていくことができないので、組み立て中は不安感がありますが、はんだ付けするのは主に、抵抗とコンデンサなので、間違いが無ければ動作します。

取扱説明書に従い、CDROMのファイルをパソコンにコピーし、LANAPP.MOTをコンパイルしました。
これを、H8WriteTurboで、H8/3052CPUへ書き込みます。マザーボード上の2箇所にジャンパーを設定しておく必要がありますが、CPUボードのMD2にはジャンパーは必要ありません。
書込みが正常に書き込まれれば、少なくともH8/3052CPUには書き込まれています。

液晶の輝度を調整して、電源(6V)を入れてみたものの、LEDは点滅するようですが動作しません。よくよく取扱説明書を見たら、モード6で動作するとかかれています。
CPUボードのMD0にジャンパーを忘れていました。付属品にこのジャンパーはありませんので、別に用意しました。

再度電源を入れると、液晶にメッセージが出ました。まだ、LANケーブルを接続していないので、LINK,TX,RXのLEDは点灯しません。
パソコンと直接接続するために、クロスのLANケーブルを用意しました。
パソコン側も、LANポートの設定をします。
基本的には、XPであれば、IPアドレスを設定しなくても、LAN開発ボードのDHCPによって、IPアドレスが自動的に割り当てられます。
立ち上げの関係で、うまく割り当てられないときには、何度かリセットするうちに割り当てられました。
LINK(緑)LEDが点灯したままになっていれば、うまく接続できたのではないかと思います。

パソコンから、ping 192.168.1.100 と送ってみて応答があるようなら接続されていますので、同じIPアドレスをブラウザで開いてみると、LEDとスイッチのアクセスページが開きます。

動作することが確認できれば、C言語のソースプログラムを読み直してみて、所望の動作を書いていくだけでしょう。これからがんばってみたいと思います。

短波受信機の製作

Shortwaveradio2 書籍「エアバンド受信機の実験」には、エアバンド受信機の基板だけでなく、同じAM検波ということで、短波放送の受信機の基板も付録としてついています。

簡潔な回路構成でどこまで受信できるのかを試してみる実験なのだなと思いつつも、パーツを集めて製作に入りました。
パーツは、主に秋葉原で入手できましたが、一部の半導体は、サトー電気の通販で購入しました。

基板には、部品の記号や数値まで記入されているので、組み立ては容易です。念のため、回路図で部品を確かめて、実体図で場所を確認して、基板にはんだ付けしました。

同調回路は、バリキャップによるチューニングなので、アンテナ同調回路と、局発回路の場所は離れています。二連バリコンによる回路と一味違った回路となっていて、見習いたいところです。

中波AM放送は、バーアンテナによって受信するので、特にアンテナを必要としませんが、バーアンテナの方向によって感度が変わります。
バリキャップと直列に入るコンデンサの容量のため受信範囲が少し狭いですが、気にしないことにしておきます。直列に入るコンデンサの容量を変更すれば受信範囲が広がるとかかれています。

短波放送のほうは、放送が常時行われているので、エアバンドのように調整に苦労することはないようです。
回路が、高周波増幅なし、周波数変換1石、局発1石、中間周波増幅を兼ねた検波に1ICを使用し、オーディオアンプにLM386を使用しているという簡略回路なので、受信感度はそれほどよくありません。強い放送が受信できるものと考えたほうが良さそうです。

作ってみて、短波を受信するには、最低限この程度の回路は必要になるということがわかりました。今回は、ケースに入れず、実験の成果として保存したいと思います。

2008年11月27日 (木)

秋月キット、SH7125ベースボードキット

Sh7125 秋月電子の、SH-7125ベースボードキットを購入しました。
キットといっても、完成品です。開発環境をインストールして、サンプルプログラムを書き込めば動作します。

ルネサスのSH-2のTiny版ということですが、フラッシュROM128kバイト、RAM8kバイトを内蔵し、12.5MHzのXTALにより50MHzの内部動作クロックで動作します。

付属ソフトは、開発環境HEW4のSH-2と、書き込みソフトFDT4ですが、HEW4は、すでにインストールされていたHEW4に対して追加インストールされました。
FDT4のほうは、H8で使用していたのはFDT3だったので、新たにインストールされました。

付属のサンプルソフトの、tera3.cは、コンパイル済みのファイルが付属しますので、すぐに書き込んで確認が出来ます。
もうひとつのsw1.cは、コンパイル済みのファイルは付属していないにで、HEW4でコンパイルする必要があります。
新規プロジェクトとして、「SW1」を指定して作成すると、いくつかのソースファイルとともに、SW1.Cが仮に作られますので、付属のファイルで置き換えるとコンパイルできます。

すべて完成品なのですが、SW1のスライドスイッチが壊れていたので、代わりのスイッチに交換するために半田ごてを使いました。

プログラミングと、ハードウェアの解説は、PDFファイルが付属していますので、必要な情報は揃っています。

モジュールの大きさも手ごろで、価格も程々なので、何かに利用できそうです。
アセンブラのプログラムでなくて、Cのプログラムでも、クロックは50MHzなのでいろいろな応用が考えられます。

2008年11月14日 (金)

秋月キット、AKI-80ゴールドキット組み立て

Aki80_kumitate 秋月電子の古くからあるキットで、Z-80の12MHzを使用した、AKI-80 12MHzゴールドキットを組み立てました。

キットには、12MHz用の水晶と、10MHz用の水晶が入っていますが、初めから12MHzにすると、70nSのEEPROMも必要だし、付属のモニタROMも10MHz用になっているので、10MHz用の水晶を取り付けました。

AKI-80のキットを買うと、おまけに色々ついてきました。
モニタROMは、PA0をGNDにして電源を入れると、1秒間隔で全ポートを反転しますが、本来は、Z-vision remote用の対応ROMです。PA0をハイレベルにして電源を入れると、BASICのプロンプトが現れます。時々、@のみを表示して止まることがあるので、そのときは、ENTERキーを押します。
ボーレイトは、9600bpsです。

開発環境は、アセンブラと、C言語を使用できますので、プログラミングが楽になるでしょう。

写真の基板(マザー側)は、なにもついていません。単に、パソコンとつなぐシリアルインターフェースのコネクタがあるだけです。
CPUボードには、動作に必要な機能が揃っているので、マザー側は、周辺機器を増設するところでしょう。
今回は、2チャンネルのシリアルで、シリアル入力、シリアル出力を考えたのでこうなってしまいました。

PICなどでは、ワンチップで必要な処理が行なえますが、RAMサイズが大きく取ることができません。
AKI-80では、ボード上に32kバイトのRAMがあるので、大きなデータを扱うことができるでしょう。
H8/3664でも、RAMは少し大きく取ることができるので、H8を使っていたような使い方が合うのでしょう。

2008年11月10日 (月)

エアバンド受信機をケースに入れて完成

Airbandcasein 書籍「エアバンド受信機の実験」のエアバンド受信機を製作し、調整したところ、外部アンテナを使用し、頻繁に交信周波数を選んであわせておくことで、普段聞いていて使えるものになったと思いました。

ケースは、他の受信機を組み込んでみたところ、見栄えがとてもよかった、タカチYM150です。

正面パネルにツマミ2つだけと、内部も基板が小さいので、この大きさは必要ありませんが、他の受信機とサイズをあわせるためにこのケースを使用しました。
やはりケースに入れると少し違って、基板のままで受信していたときには、弱弱しく受信していたものが、机の隅で、確実に受信してくれています。
もちろん、外部アンテナはしっかりとしたものを使い、頻繁に受信できる周波数を予め調べておいて、その周波数にピッタリと合わせています。

Airbandcasein1 中身は、ほとんどなにも入っていないので、調整用の信号発生器も組み込んだほうがいいかもしれません。

CQ誌に出ていた超再生エアバンド受信機(2008年10月号)も作ってみていますが、この受信機のほうが安定しているようです。

006Pの乾電池での動作のほかに、ACアダプタによる9Vを外部から供給できるようにしたので、常時受信していることも出来ます。

2008年11月 6日 (木)

秋月、H8/3052F開発セットの製作

Aki_3052board 秋月キットのH8/3052F開発セットを組み立てました。

H8/3052FのCPUボードと、H8シリーズ共通のマザーボードのセットになっています。
マザーボードは、H8/3048用に作られたようで、書き込みに12Vが不要になり5V単一書込みが可能になったH8/3052Fでは、改造(ジャンパを飛ばす)が必要になります。

書き込み時に、書き込みスイッチをオンにするだけでなく、MD2にジャンパを接続する手間が増えます。

H8/3052Fは、FLASHメモリ512kバイト、RAM8kバイトとなっており、内臓周辺機器は、H8/3048とほとんど同じです。H8/3048のソフトはそのまま実行できますが、クロックが、16MHzから25MHzに変わるので、シリアルのボーレイトや、タイマーの設定値などを変更する必要があります。

マザーボードには、動作確認するための、16x2液晶モジュール、タクトスイッチx4、8連DIPスイッチ、LEDx2などがあります。
CPUボードには、シリアルが2回線ありますが、書き込みやデバッグに使用するRXD1,TXD1が、DSUB25に配線されています。
今では、さすがにDSUB25は使用しなくなっていますが、DSUB9コネクタも取り付けられていますので、配線をすることで使用することが出来ます。
回線は2回線あるので、それぞれを別々のコネクタの割り振ることも出来ます。
その場合、書き込みに使用するRXD1,TXD1は、DSUB25のほうになります。

付属CDROMのMBディレクトリに、マザーボードを試すソフトなどが納められています。

H8/3052Fを使用する機会が無かったので、使ってみるよい機会になりました。
FLASHメモリも512kバイトあるので、Cコンパイラでのプログラムでも十分使いこなせるでしょう。

マザーボード上の、蛇の目領域を使って何か作ってみたいと思います。

16F876A,I2Cマスターモード

I2cmastermode トラ技2008年10月号の、16F819をI2Cスレブとして使ったRTCの記事を製作したのですが、16F88で、ソフトウェアによるマスターモードではアクセスすることが出来ませんでした。

たぶん、I2Cスピードが、100kHzでなく400kHzとして作られているのが原因だと思うのですが、ソフトを直して100kHzに対応するのは大変です。

そこで、I2Cマスターモードを、ハードウェアでサポートする、16F876Aを使ってプログラムし、アクセスしてみました。

結果は、16F819のI2Cスレブモードに対してアクセスすることが出来、RTCの読み出しや設定などが出来ました。

RTCと、EEPROMでは、アクセス順序などに違いがあり、それぞれ対応したモジュールを作る必要がありますが、基本となるスタートコンディション、ストップコンディション、バイト読み出し、バイト書き込みなどは共通で、これを使って、コマンド、アドレス、データなどを送るプログラムを作れば済みます。

今回は、RTC-8564NBに対応するように作りましたが、シリアルEEPROM(24C512)などにも対応していきたいと思います。

回路や、プログラムは、下記ホームページからダウンロードできます。
対応のCPUは、16F876Aで、クロックは8MHzとなっています。
「趣味のホームページ」
http://homepage2.nifty.com/sfukuda/page042.html

2008年11月 2日 (日)

PIC-BASICに、I2CEEPROMを追加

Picbasic_i2c 秋月キットの、PIC-BASICを製作して動作を確かめたところですが、今回、I2CのEEPROM(AT24C256)を追加して、プログラムを実行してみました。

EEPROMは、アトメルとマイクロチップとがありますが、プログラムリストに書かれていたアトメルを使用しました。
I2Cでは、SDAとSCLの2本を配線するだけなのですが、回路図どおりに組み立てると配線ミスで動作しません。
回路図に間違いがあり、SDAとSCLが逆です。

配線を直してサンプルプログラムを実行すると、読み書きしながらカウントアップしていきますが、サンプルプログラムは、24C1024用となっています。
24C256のメモリ範囲を超えるとエラーとなるかと思いましたが、最後までエラー無く終了しました。
しかし、逆におかしいような気がします。アドレスの上位ビットを無視しているということなのでしょうか。

BASICの命令(i2cread,i2cwrite)はとても簡単ですが、メモリ以外ではうまくいかないようで残念です。RTCを試してみましたが、だめでした。

2008年11月 1日 (土)

エレキジャック8号の16F886温度計測

16f876a_ondo エレキジャック8号のPICによるLM73温度計測は、10月28日にサポートページに、プロジェクトファイルが公開され、動作することが確認されましたが、それまでの、リストの継ぎはぎで作ったプログラムも、動かなかった理由が判り、動作するようになりました。

書籍の記事と、ダウンロードできていたリストのファイルのみで作ろうとしていたものは、16F886の上で動作するように作っていました。
CPUの違いはたいしたことはありませんが、動かなかった理由は以下のとおりです。

■不足していたマクロを自前で用意したのですが、記述の間違いがありました。
#define SetBit(a,b) (a |= (1<<b))
#define ClrBit(a,b) (a &= ~(1<<b))
#define TstBit(a,b) (a & (1<<b))
これらの展開式の全体を括弧で括っておくのを忘れていました。
■これは、記事の誤植ですが、InitSensorの関数の中で、設定するレジスタが、4でなく、8になっていた。
■温度を文字列に変換するバッファの配列は、大体あっていた。

エレキジャックの記事だけで、プログラムを完成するのはもう一歩だったが、少し難しかったと思います。

記事を見ながら、何回もWIZ-Cのコンパイルを繰り返したので、すっかり身につきました。
ヒントだけ与えて、自分でプログラムをさせるというのであれば、かなり成功ですが、同じ結果を得たいという向きには、解らないことが多すぎました。
今後の記事は、改善されるでしょうか?

2008年10月29日 (水)

エレキジャック8号の16F876A温度計測

16f876a_ondo エレキジャック8号の、PIC16F873Aを使い、LM73とI2Cで通信を行なう温度計測を試してみました。

8号の発売時点では、サポートページを見ても、掲載されたリストをファイルとしてダウンロードできるだけで、まとまったプロジェクトファイルでは入手できませんでした。
WIZ-Cのデモ版をインストールして、記事にしたがってアプリケーションデザイナで生成を行なった後、ユーザファイルに、ダウンロードしたファイルを継ぎ足してみたのですが、I2Cのアクセスがうまく出来ませんでした。

ダウンロードしたファイルだけでは足りない部分が多く、それを補ったのですがどこかに間違いがあったのかもしれません。

エレキジャック9号が発売され、サポートページも強化されて、プロジェクトファイル自体でも入手することができるようになりました。(10月28日から)
そこで、それを使って、再度確認をしてみました。
ただし、対象デバイスが、16F873Aとなっていたので、用意した16F876Aに対応させるためにコンパイルしなおしました。
プロジェクトファイルには、ファイルがすべて揃っているので、そのまま使うために、ディレクトリをコンパイル時点にあわせるために、C:\EJ8-WIZCの中に、TmpReadフォルダをコピーしました。
WIZ-Cのアプリケーションデザイナのデバイスチェンジによって、16F876Aに変更しましたが、その他に、Config Settingも改めて設定する必要があります。また、オプティマイズの「Use PIC callStack」のチェックを外す必要もあります。

もうひとつ、I2C_ADRS_LM73_1が、0x48となっていましたが、これは、0x4Cの間違いです。訂正してコンパイルしなおします。

結果のHEXを書き込むと、温度を読み取り表示しました。

リストファイルを継ぎ足してコンパイルを試みていたころよりは大進歩ですが、動作がまだおかしいような気がします。温度が、読み取るごとに変動していて一定値にならないのは、I2Cの読み取りに何かの間違いがあるのではないかと思います。

エレキジャックは、内容に意気込みは感じられますが、誤植や、原稿が掲載されずに次回回しになるなど不手際なども見受けられます。
ダウンロードしたまま、すぐに動くとは考えずに、それを題材にして、自分でプログラムを組むつもりで取り組む必要があると思いました。

秋月、多機能デジタル時計Ver3

Aki_multifuncclock 秋月電子の、多機能デジタル時計Ver3を組み立ててみました。
改良されてLED表示が縦になって見やすくなりました。
多機能なのは変わらず、
時計モード、アラーム(目覚まし)モード、タイマーモード、ストップウォッチモード、アップダウンカウンタ(残日計)モードなどを備えています。

製作も、抵抗などはほとんど同じ値が多いので間違いも少ないと思います。
組み立ても、数時間で出来ました。

すべて一式がキットとして揃っていますが、電源のみ(DC9~12V)用意する必要があります。キットを購入したときに、おまけで電源をつけてもらったので、組み立てれば動作させることが出来ます。

このキットは、16F57にプログラムが書き込まれた状態で提供され、時計をプログラムする楽しみはありません。しかし、プリント基板はよく出来ているので、ピン互換で、16F57のプログラムを作れば、カスタマイズした時計を作ることは可能です。
ただし、一から作るのはかなり大変です。

調整箇所として、水晶発振器の周波数をトリマで調整する必要があります。
時計の調整は、1日での進み具合を見て調整し、さらに1週間での進み具合であわせ、そして、1ヶ月での調整をするという風に進めていかなければならずとても手間がかかります。
周波数カウンタで測定すればいいというわけにはいかないので、面倒です。
このようなときに、±1PPMの高精度水晶発振器などをベースにしてつくると、無調整で、3ヶ月ぐらいは誤差のない時計を作ることができるので、そのように作る場合もあります。
このキットが最初に作られたときには、まだ高精度水晶発振器は出ていなかったと思うので、調整に手間をかけなければなりません。

このキットは、16F57を使って何が出来るか、ということから始まっていると思うのですが、今作るならば、校正の方法についても検討の余地はあります。

2008年10月20日 (月)

秋月、PIC-BASIC製作しました

Picbasic 秋月電子の、PIC-BASICがしまいこんであったので組み立ててみました。
電源、書き込みスイッチのほかは、液晶表示のみで、LEDや、EEPROMはつけていません。

サンプルソフトを色々試してみました。
PIC-BASICは、以前購入したときにインストールしたものがパソコンに残っていましたのでそれを使いました。

通常の使い方では便利に使えるのですが、シリアルを使用するときには、リングバッファなどによるバッファが無いため、速いデータには対応できません。キーボードから入力して、それに対して応答があるような使い方しか出来ないような気がします。

前に買ったときに、シリアルでどんどん送られてくるデータを処理していかなければならないような使い方が出来なかったことを思い出しました。
このような使い方をする場合には、PIC-BASICの入っていない、PIC877モジュールを使ったほうがよいと思います。
PIC877モジュールは、電源回路も、シリアルレベル変換も内蔵しているので、組み立てがずいぶん楽に出来ると思いました。

78Kマイコンで、温度計測(LM73)

Elejack_78k_ondo エレキジャック8号の、78K0S+/KB2の基板は、コネクタを接続することで必要な機能を追加することが出来ます。書き込みでも、シリアルのレベル変換が必要になりますが、本誌に出ているようなUSB-シリアル変換基板を使うまでもありません。COMポートがパソコンにある場合には、単なるレベル変換用のADM3202と、D-SUB9メスだけで済みます。

温度計測するには、付録のLM73基板をコネクタに取り付ける必要があります。LM73とは、I2Cで通信が行なわれ、読み出された温度は、文字形式に変換されて、シリアル(9600bps)で、パソコンに表示されます。

78K0S+/KB2の温度計測の解説は、本誌では省略されています。(次号で掲載されるかもしれませんが)
プログラムは、エレキジャックのサポートページからダウンロードできます。

ダウンロードしたプログラムを書き込んで動作させてみただけなので、LM73が正しく接続されたかどうかの確認というところです。

dsPICライターのソケット基板を、付録互換に

Dspicwriter_furokugokan dsPIC/PIC24対応ライタの、dsPIC30F2011用のソケット基板は、書き込みだけではなく、評価用に動作させる回路も組まれています。

トラ技2007年8月号に付録のCPU基板には評価用の回路が組まれていますが、同じ回路を組んでみました。
さらに、追加として、RB0にLEDも追加して、ブートローダでロードしたプログラムの評価も出来るようにしました。

写真右上のピンヘッダは、シリアル入力用で、プログラムを書き込むために使用します。
dsPIC/PIC24対応ライタで、ブートローダを書き込んでおき、以降は、ブートローダにより書き込みを行ないます。サンプルプログラムのLED2.Cをダウンロードすると、RB0に追加したLEDが点滅します。

dsPIC30F2011は、ずっと以前に入手していたのですが、前に使っていたライタが書込みが正しく行なわれていなかったらしく、動作していませんでした。
dsPIC/PIC24対応ライトが使えるようになって、初めて使えるようになりました。

dsPICライターでdsPICトレーニングボード書き込み

Dspicwriter_tranning dsPICトレーニングボードは、CPUにdsPIC30F5011を使用しているので、書き込みのできるライタが、ICD2しかありませんでした。
dsPIC/PIC24対応ライタでは、dsPICに広く対応しているので、もしかしたら書込みができるのではないかと調べてみると、対応していました。

dsPICライタは、6ピンのコネクタでどのICでも対応できるようになっていますが、その都度、ケーブルを作らなければなりません。
6ピンピンヘッダは、将来、他のdsPIC30でも使うかもしれないので、ケーブルを作っておくことにしました。
dsPIC30に書き込むためには、dsPICライタは、5V、Vpp=12Vで書き込みを行ないます。

ケーブルが出来たので、接続しました。
dsPICトレーニングボードは、SDカードのスロットが3.3Vであるために、3.3Vで動作しています。dsPICライタも、3.3Vとしました。

ライタソフトdsPICer.exeを起動すると、まず、コネクトします。
ライタが問題なければ、コネクトされます。
次に、デバイス選択のために、「Detect」を押しましたが、「未知のDevice」と出てしまいました。しかし、選択リストからdsPIC30F5011を選ぶことは出来ました。
「Erase」ボタンを押してみると、消去できないようです。
たぶん、dsPIC30は、5V,Vpp=12Vとして書き込みを行なうようになっているので、電圧が不足するのでしょう。ライタの電圧を、5Vに変更して、再び接続しました。

Vdd=5Vでは、トレーニングボードでは、適正ではありませんが、SDカードを入れないようにすれば問題ないでしょう。
「Erase」は、正常に行なわれました。「Check(ブランクチェック)」をするとOKと出ました。
念のために、トレーニングボードを動かしてみましたが、消去されているようです。

「Write」により、タイマーにより液晶とLEDに表示するTimer.cを書き込んでみました。
トレーニングボードを外して動作させてみると、正常に動作しました。

dsPIC/PIC24対応ライタは、以前調べたように、プロテクトされたプログラムを書き込むと消去できなくなってしまうようなので、トラ技の連載のプログラムがプロテクトされていないかに注意する必要があります。

もし、プロテクトされたプログラムを書き込んでしまったら、ICD2で消去すればいいだけのことです。
dsPIC/PIC24対応ライタも、対象のPICがひとつ増えました。

2008年10月17日 (金)

dsPICトレーニングボードの製作

Dspictranningboard トラ技2008年4月号から連載が始まった、「Cによるマイコン操作術」では、dsPICのプログラミングを習得していくために、基準となるハードウェアが必要になります。市販のボードを使ってもいいのですが、この連載では、dsPIC30F5011を使用したトレーニングボードを製作しています。

トラ技2008年4月号の初回では、ボードの製作が紹介されています。
秋月電子で、トレーニングボードをキットで購入して製作しました。

CPUには、dsPIC30F5011-30I/PTを使用していますが、SMTのパッケージなので、ピッチ変換の基板にはんだ付けしたものが提供されます。
周辺機器として、トレーニングボードとしては普通の、8点LED、4点スイッチ、16x2液晶モジュール、シリアル通信、ADC入力、SDカードスロット、拡張コネクタなどを備えています。
書き込みは、基板上で書き込みを行なうために、ICD2用の6ピンのコネクタを備えていますが、通常用いられる6ピンモジュラージャックではありません。
AVRなどで書き込みに用いられるのと同じ、6ピンピンヘッダとなっています。
モジュラージャックを、基板の一枚一枚につけていくのは、加工が大変なので、今後はピンヘッダを利用して行きたいと思います。ICD2からのケーブルは、モジュラージャックなので、変換ソケットを製作しました。

製作は、3.3V電源、CPUの電源クロック類、書き込み端子だけ製作すれば、書込みが行えるかどうかの確認は出来るのですが、8点LEDや、16x2液晶モジュールは、配線も少ないので、そこまで組み立てて動作試験をしてみました。

トラ技ダウンロードページから、2008年9月の、タイマーを使ってLEDと液晶に表示するTimer.cを書き込んでテストしてみました。
ICD2での書き込みで、ターゲットが3.3Vの時には、ICD2に9Vの電源を供給せず、ターゲットに電源を供給して書き込みを行なう必要があるようです。

動作が確認できたので、シリアル通信と、SDカードスロットも配線しました。
動作確認には、2008年11月号のUartctrl.cで行ないました。ターミナルソフトで、コマンドを送ると、それによる動作をするものですが、コマンドの最後は、CRのみでなく、CR+LFとしないと応答しませんでした。
SDカードスロットは、連載で紹介されてから確認します。

まだ、拡張コネクタの配線を残していますが、連載がそれを使用するころには配線しておきたいと思います。

これからは、連載が楽しみです。

2008年10月15日 (水)

エレキジャック8号の16F886マイコン

Elejack_16f886 エレキジャック8号の1-1章PICマイコンを使おうに沿って、PIC16F886を付録のブレッドボードの上に組み立ててみました。

本書では、16F873Aを使って組み立てる例を示していますが、同一機能の16F886についても触れています。
16F886は、新しいシリーズなので、ADCや、内部発振器などに違いがあり、これから使ってみたいものだったので購入して使ってみることにしました。
本誌では、書き込みにPICkit2を使用しているようですが、手元にあったICD2で書き込みを行ないました。

エレキジャックのサポートページを見てみると、書き込むためのHEXファイルはありませんでした。ダウンロードできるのは、本誌のリストをテキスト化したもので、コンパイルするソースへ貼りこむ必要があります。
使用するコンパイラとして、CCS-Cまたは、WIZ-Cを使用するということですが新たに購入する必要があります。
本書を見ると、WIZ-Cは、デモバージョンがあるようなので、検索で探してみました。ほとんど日本語が見つかる中で、英国のサイトが見つかりその中にデモバージョンがありました。
WIZ-Cは、アプリケーションデザイナ(APD)で開発を行い、端子の接続などを指定します。普通のCコンパイラを想像すると面食らってしまいます。
本誌に図解入りで入力の仕方が出ているので、よく読んだほうがよいでしょう。

何度かの失敗のあと、LEDが点滅するようになりました。16F886の変更も一緒に行なわなければならないので少し面倒でした。

ブレッドボードで組み立てたので、動作が確認できたあとは、分解してしまうことになりますが、苦労した過程を覚えておくには、蛇の目基板で組み立てたほうがよかったかもしれません。
16F886は、なかなか使えるICであることがわかりました。16F876で組むよりも部品点数も減ってよいかもしれません。

エレキジャック8号の78Kマイコン

Elejack_78k エレキジャック8号の1-4章78Kマイコンを使おうに沿って、付録基板を組み立てました。

78K0/KB2(μPD78F0503DA)の載ったCPU基板と、書き込みと評価を行なう基板とがあります。
CPU基板を、書き込み基板に載せると、WriteEZ3で書込みが行えます。
開発ツールや、書き込みソフトは、本誌にあるようにNECエレクトロニクスのホームページから無料でダウンロードできます(登録が必要)

私は、WriteEZ3は、すでにトラ技2008年8月号の付録基板で入手していたので、CPUの種類の異なるパラメータファイルのみをダウンロードしました。
そのときに、開発環境用のデバイスファイルもダウンロードして置きました。
他に、アプリレットというソフトもダウンロードしておいたほうが良さそうです。

動作確認用のHEXファイルは、エレキジャックのサポートページからダウンロードできます。単に、LEDが点滅するだけですが、書込みが正しく行なわれたのかの確認が出来ます。

ソフト開発の手順を示すサンプルプログラムを試すために、蛇の目基板でテスト回路を組みました。
書き込み基板で書き込み後、CPU基板を蛇の目基板のソケットへ移し変えます。
書込みが正しく出来れば動作は問題ないようです。

2008年10月13日 (月)

16F690によるデジタル時計の製作

16f690tokei トラ技2008年7月号の「ワンチップ・マイコン探訪」で紹介している16F690の利用の応用例として、「グラフィックLCD表示のディジタル時計の製作」が出ています。

従来から使用してきました16F88に較べて、16F688や16F690などは、パッケージの違いがあり14ピンや20ピンで使用することが出来ますが、それよりも、内部発振8MHzを使用したときの精度のよさに感心します。
シリアル通信などを使用するときにも内部発振を使用できるのは、セラロックの節約にもつながります。

話はそれましたが、このデジタル時計は、私にとっては、以下の関心がありました。
1.グラフィック液晶に、Nokia3310-LCDを使用している
2.温度測定に、石塚電子の、103ATを使用して簡単に測定している
3.16F690の書き込みに、前に紹介した、ICD2のソケットアダプタを使用した。

回路は非常に簡単で、主だったものは16F690とNokia3310-LCDしかありません。
ケースが、単4電池ホルダのついたものだったので、プリント基板は少し手狭です。

16f690tokei2

Nokia3310-LCDは、以前に使ったものとは違って、ソリトンウェーブから購入したものを使っていますが、液晶のガラスに、端子が貼り付けてあるだけのもので、あるサイトによると、端子が取れやすいと書いてあったので、端子の両端をスーパーセメダインで固定してから使いました。

LCDのケースへの固定は、ケースの穴あけ後、両面テープで裏から貼り付けました。

16F690は、ICソケットを使いたかったのですが、ケースの都合で厚さが取れないので、基板に直にはんだ付けしました。

液晶がうまく動くかが心配でしたが、電池を入れると、液晶の画面がゆっくり消去されて、時計の画面が出ました。
温度計も大体あっているようです。

この製作で、一番うれしかったのは、調整箇所がないことです。時計の進み遅れをトリマで調整するのは手間のかかることです。
時刻は、若干進み気味ですが精度はよいほうです。温度計も割合正確です。

16F690は、3ポート使えるので、ピン数の必要なときに使って行きたいと思います。

2008年10月 9日 (木)

dsPICライターの動作確認

Dspicwriter_kakikomi トラ技2008年3月号の、dsPIC/PIC24ライタの製作で、基板の組み立てをしたところ、パソコンとの通信速度が230400bpsが必要であり、内蔵COMポートでは、そこまで出ないことが解り、急遽USBシリアルケーブルを購入しました。

購入したUSBシリアルケーブルは、コレガの、CG-USBRS232Rというもので、通販の宣伝に、230kbps対応と出ていたからです。

早速、パソコンにインストールしました。
XPでは、デバイスマネージャで見ると、設定ボーレイトは、128kbpsまでしか表示されませんでしたが、dsPICwriterソフトを実行すると、230kbpsで動作しました。

COMポートとして、COM9までしかサポートされないので、インストールしたままのCOM15では使用できませんでした。
デバイスマネージャで、内臓のCOM2をCOM16に変更し、COM15をCOM2に変更しました。

dsPICer.exeを起動して、ライタを接続しておき、CONNECTボタンを押すと接続されました。そのあと、DETECTボタンを押すことで、ライタに挿入されているPICが読み取られます。これをやらないと、他のボタンを押すと異状終了になります。

初め、何度やっても書込みができませんでした。読み出しは正常のようです。消去も出来ません。ライタの電源電圧VDDにノイズが載っているのかとも思いましたが、原因は他にありました。

用意したPICは、dsPIC30F2012-30I/SPという28ピンDIPのものですが、評価ボードを兼ねた書き込みソケットのテストのため、トラ技2007年8月の付属基板に入っているブートローダーが書き込まれていました。
ブートローダー(cqhex.hex)は、プロテクトがかかっています。他のライタで、プロテクトがかかっていて、べりファイが出来ないで悩んだことがありました。
今回は、ライタの、イレーズボタンを押しても、それが解除できないのが原因でした。
しかも、イレーズ正常と出てしまいます。

結局、マルツパーツの、MPIC-06で、消去を行なっておくことにしました。
しかし、一度プロテクトのあるデータを書き込むと消去できなくなってしまいます。

ライトプロテクトがあると消去が出来ない欠点はあるものの、MPIC-06では、書き込んでも動かなかった先のプログラム(cqhex.hex)が、このライターで書き込むと正常に動作しました。
ソケット基板には、トラ技付録基板と同じ回路が組んであります。それが、正常に動作しました。

結局、
dsPICライタでは、プロテクトの解除が出来ない。
MPICー06では、dsPIC30F2012は、書き込めても動作しない。
ということが解りました。

他のPICは試していませんが、ソフトのバージョンが1.5にアップしていて、対応するPICも増えているようです。

2008年10月 8日 (水)

dsPICライターの製作

Dspicwriter トラ技2008年3月号のdsPIC/PIC24ライタを製作しました。
パーツは、秋月電子でセットとなっていたものを購入しました。

このdsPICライタは、対象が、dsPIC30やPIC24などが対象ですが、対応していないライタが多いのでひとつ作りたいと思っていました。

パソコンのライタソフトから送られてくる指令は、ライタ上のdsPIC30F2012(トラ技2007年8月号付録)で処理されます。dsPIC30F2012に書き込まれるソフトは、ブートローダによって書き込まれるので、他のライタは必要としません。

dsPIC30F2012の書き込みは、パソコンのライタソフトの「UPDATE」によって書き込めましたが、動作させるには、シリアルのボーレイトが230400bpsが必要なので、パソコン組み込みのシリアルでは動作できませんでした。
USBシリアル変換ケーブルの中には、230400bpsに対応したものがあるので、入手手配中です。

現在のところ、dsPIC30F2012の書き込み(9600bpsで書き込まれるので)と、12V発生回路の確認のみ行ないました。

写真の右側は、dsPIC30F2012(28ピンDIP)書き込み用の、ソケットアダプタです。
簡単な動作試験も行えるようにしてあります。

2008年10月 7日 (火)

HC08、ミニマイコン扇風機 型紙加工

Hc08sempooki_papercraft 書籍「試しながら学ぶHC08マイコン」の付録のプリント基板で、モーターの速度制御の可能な扇風機を作りましたが、せっかく作ったので、型紙を加工して扇風機の筐体を作ってみました。

プリント基板の製作は、HC08マイコンの書き込みや動作などが確かめられて楽しめました。
型紙による扇風機の筐体は、付録の型紙を切り抜いて、両面テープで張り付けていく簡単なものです。
対象年齢は、小学校高学年から中学生ぐらいなのは、この製作が楽しめるからだと思います。
プリント基板のはんだ付けも、書き込み済みのマイコンが渡されるのならば出来そうな気がします。

HC08マイコンは、小ピンパッケージでありながら、書き込みや、プログラミングはかなり訓練を要するような気がしますが、すぐに使えるようにしておきたいマイコンでもあります。

2008年10月 6日 (月)

12F683の、減衰音のメロディーIC

Merody683 トラ技2008年8月号の「マイコンで作るワンチップIC」のシリーズとして、12F683を使用した、減衰音によるメロディーICの製作が出ています。

メロディーICで、音を断続するだけのものは、音が機械的な音になってしまいますが、包絡線を減衰波形にすると、叩いているような自然な音になります。

音階の周波数でオンオフするトランジスタの電源電圧を、コンデンサの充放電電圧にすると、減衰波の包絡線となった音とすることができます。

このICでは、外付けにコンデンサの充放電回路を設けることで実現しています。
この回路の基となった回路では、強弱はDAコンバータによって変化させるようになっていました。回路は、とても簡単になります。

写真の、左は、2種類のメロディーを選ぶことが出来るものです。
電源を入れたときのショートピンの状態で選曲をしますが、変更するときには、電源を入れなおさなければなりません。
ショートピンを変更して、ボタンを押すだけでは、曲は変わりません。
ボタンを押すと、再生が始まりますが、短いメロディーしか入りません。

写真の、真ん中は、音域と持続時間を改善するために、水晶発振器を使用したものです。回路図どおりでは、動作しませんでしたが、水晶の両端に、10pFをそれぞれGNDに落としてやることで無事動きました。

12F683に対応したPICライタがなかったので、写真右のソケットアダプタを使って、ICD2で書き込みました。

PSoCで、ラジオ時報時計に電源回路追加

Radioclock2 ラジオの時報で時刻を校正する時計の、AMラジオ用の電源、バックアップ乾電池(006P)、PSoC書き込み用のコネクタ(MINI PROG用)を追加しました。

AMラジオのNHK第一放送を受信して、時報が感知されると時計の時刻を校正する時計を製作して動かしています。
トラ技2008年7月の記事によるものですが、基本部分だけで、上記の部分がありませんでした。
ラジオの電源は、単4乾電池によって動作させていましたが、消耗が速いので、やはり外部電源が必要になるという気がしていました。

記事の回路どおりに作ると、ラジオからすごい回り込みの音が聞こえます。内部で、12.8MHzを発振させているのが混入するようです。
電源の回路を見ると、3端子レギュレータの出力は、0.1μFが入っているのみでしたので、100μFの電解コンデンサを追加してみました。
すると、見違えるように静かになりました。

また、9VのACアダプタで電源を供給していますが、切れた場合に供給するための、9V乾電池を追加しました。ショットキーの1S4が手に入ったので、ついでに追加したのですが、時刻や日付の初期値は、パソコンで設定しなければならないので、ACアダプタを外すこともあるので便利になりました。

ついでに、すでにPSoCにはプログラムは書き込まれているので使うことはないのですが、MINI PROGを接続するための、5ピンの端子を配線しました。

これで、記事に書かれていた回路はすべて実装することが出来ました。ラジオの電池が減る心配もしなくていいので、常時、時計として動作させています。

ラジオの音量は適切のようで、時報を取りこぼすことはないようですが、NHK第一放送では、相撲中継や、国会中継などでは、時報に音声がかぶることがあるので、そのときは、その1時間は、校正が行なわれません。(29分30秒で、右上にJが表示されない)

2008年10月 2日 (木)

ICD2で、12F683,16F688/690書き込みアダプタ

Icd2_12f683 最近の新しいPICにも対応するために、純正のICD2を使用しているのですが、ICD2では、ターゲットボードに6ピンモジュラージャックをつけて、ICSPの配線をした上で書き込みを行なうので、一度書き込めばすむような場合でも、各ターゲットボードに配線が必要になってしまいます。

ソケットボードも別売りされているのですが、良く使うPICのピン配置がほとんど同じであることに気がつきました。

PIC12F683と、16F688や16F690は、ピン数は異なりますが、ICSPで必要になるのは、トップの8ピン部分で、どれも同じです。そこで、これらに対応する部分を8ピンのソケットで作りました。

16F688や16F690では、先頭の8ピンのみが挿入されます。

ICD2から来ている線は、6ピンの連結ソケットにはんだ付けしています。インラインの6ピンのコネクタは、このようなPICでは、配線がとても簡単になります。
結線は、
ICD2-1ピン(MCLR) - 12F683-4ピン
ICD2-2ピン(VDD)  - 12F683-1ピン
ICD2-3ピン(GND)  - 12F683-8ピン
ICD2-4ピン(DAT)  - 12F683-7ピン
ICD2-5ピン(CLK)  - 12F683-6ピン
ICD2-6ピン(NC)   - 接続なし
と接続します。

このアダプタのおかげで、ターゲットボード一つ一つに、ICSPコネクタを配線する必要がなくなりました。

2008年9月29日 (月)

HC08、ミニマイコン扇風機

Hc08sempooki 書籍「試しながら学ぶHC08マイコン入門」では、MC908QY4Aを使用した、ミニマイコン扇風機の製作を詳細に解説しています。

フリースケールのHC08は、小ピンパッケージで、色々な制御に使えそうなのですが、参考書がなかなかありませんでした。

書籍では、MC908QY4Aにユーザーモードモニタが書き込まれているものを使用して、簡単なデバッグツールだけでプログラム書込みができるようにしています。以前に作ったシリアルポート接続のSER-HC08デバッグツールを使って扇風機のプログラムを書き込みました。

なお、MC908QY4Aは、新品のものに、書籍の筆者のホームページにある手順で書き込んで使用しました。(スタータキットが必要)
ユーザーモードモニタに対応したソフトの場合、書き込みは簡単に出来るので便利でした。

組み立てたのは、付録のプリント基板に部品をはんだ付けし、プログラムを書き込んだだけで、スイッチを押すとモータが回って動作していることが確かめられましたが、書籍では、厚紙を切り抜いた羽根やケースを作り、扇風機らしく仕上げるところまで行ないます。
ターゲットとするのは、小学校高学年から中学校ということですが、HC08のプログラミングやデバッグツールの使い方などでは、十分に楽しめます。

ICD2のケーブルを6ピンモジュラからピンヘッダに変換

Icd2_convcable PICのプログラムに、ICD2を使っているのですが、ICD2は、他のPICライタと違って、ICをソケットに挿して書き込みを行なうのではなく、ターゲット基板に、6ピンのモジュラージャックを取り付けておいて、実機の上で、書き込み(とデバッグ)を行ないます。

6ピンのモジュラージャックは、造りもしっかりしているのですが、ターゲット基板に一つ一つつけていくのは大げさです。
基板に取り付けるにも、端子のピッチが基板のピッチと微妙に合わず、しかも2列がずれているので、基板に穴あけが必要です。

AVRマイコンなどでは、ICSPのコネクタは、ピンヘッダの6ピン(3ピン2列)となっていて手軽です。

最近、トラ技2008年4月号のdsPICトレーニングボードを製作しようとしたら、これもピンヘッダとなっていました。そこで、ICD2のコネクタを、ピンヘッダに変換するアダプタを作りました。

もう一種類、連結ソケットを使って、ICソケット(6ピン1列)へ接続するタイプも作りました。基板の配線はこちらのほうが楽です。(主に小ピンチップで使用します)

2008年9月26日 (金)

エアバンド用簡易信号発生器の製作

Airbandtestosc 書籍「エアバンド受信機の実験」のエアバンド受信機を製作中ですが、航空無線は、弱い信号で短時間の交信で行なわれているので、実際の電波を受信しながら調整するのはかなり困難です。

そこで、付録の基板のうちの1つである、簡易信号発生器の製作をしました。
無調整水晶発振器により、10MHzと18MHzを発振し、高調波の、120MHz、130MHzおよび、126MHzを発生して調整します。
信号は、700HzによりAM変調されるので区別がつき易くなります。

パーツセットとしてまとめて売られていなかったので、1つ1つパーツを集めましたが、入手できるものばかりでした。

発振した周波数を、ハンディ無線機の広域受信機能で受信しましたが、電波が出ているのが確認されました。しかし、水晶といえどもずれは若干あり、126.025MHzが最も強く受かりました。
120MHz、130MHzは、大体あっていましたが、無線機をアンテナの先に近づけないと良く受かりませんでした。

とりあえず、基準の信号が発生できるようになったので、エアバンド受信機の調整に移ることにしたいと思います。

2008年9月25日 (木)

秋月、FMステレオトランスミッタの製作

Aki_fmtransmitter 秋月電子の、FMステレオトランスミッタキットを組み立ててみました。
だいぶ前にも組み立ててみたことがあったのですが、確実な動作をするように回路が見直され、立派な基板となっていました。

以前に作ってみたものは、蛇の目基板をプリント基板化したもので、発振コイルは空芯コイルでした。また、38kHz発振が、自励発振から水晶に変わったばかりでした。
解説書には書かれていましたが、安定のために出力のバッファが加わりました。

入力は、コンデンサーマイク2個の入力と、ラインからの入力が切り替えになりました。
動作確認には、コンデンサーマイクは都合がよいのですが、普通に使おうとしてもステレオ感は得られません。

このキットは古くからあるのですが、コンポジット信号を作るIC(NJM2035)は相変わらず作られているようです。
乾電池1本(1.5V)で動作し、セパレーションも悪くありません。
ただ、これを使って、CD音声をFMで飛ばして、コンポで受けるような使い方をするには、すこしジュルジュルノイズが出てあまりよくないようです。

また、片チャンネルの、入力切替ピンが外れていて、片チャンネルのみに信号が入るようなときに、ステレオ信号がうまく作れないようです。

昔のキットよりも確実に動くように構成されるようになっていますが、動作の技術的な説明はなくなってしまったようです。
記憶によれば、FM変調する、バリキャップに相当するトランジスタの説明が、トランジスタが小電流のときに、積分回路として働き、容量性に働くとあったように記憶していますが、今もなかなか理解しづらい解説であったと思っています。

秋月キットのひとつの楽しみは、基本原理を解説しているのを読むことにあったのが、最近は、確実に動作することに重点が置かれるようになったのが流れなのだと思います。

2008年9月23日 (火)

PSoCで、ラジオ時報で校正するデジタル時計を製作

Radioclock トラ技2008年7月号のP.243の、「ラジオ時報で時刻を校正する高精度ディジタル時計の製作」を製作してみました。

私も、以前にラジオの時報に同期を取れば誤差の出ない時計ができると思って、ストレートラジオでAMのNHKを受信し、その音から、トーンデコーダを2つ使って、440Hzと880Hzを取り出しておいて、PICの時計で、解読しながら時刻を表示する時計を作ったことがありました。
残念ながら、トーンデコーダの経年誤差で周波数がずれるので、調整が必要になるので完成とは行かなかったのですが、その後も、良いフィルタはないかと検討していました。

この記事では、アナログ・デジタル混在の、PSoCのCY8C29466-24PXIを使い、フィルタも内部で構成して実現しています。
回路の大半はCPUが行なうので、外付け部品は、高精度水晶発振器、16x2液晶表示、設定などのためのRS232C通信ドライバ、ラジオインターフェース、電源などです。

ラジオは、100円ショップで売っているものを使っていますが、内部は、スーパーヘテロダインではなく、ストレートラジオとなっています。NHKならば強いので問題ないと思います。

時報は、正時の3秒前から、440Hzが3回、正時に880Hzがなります。これをデコードしてやることで、時刻をしることができるわけですが、その状況は、シリアル(38400bps)で接続したパソコンから知ることが出来ます。また、パソコンからは、日付や時刻なども設定することが出来ます。
電波時計と違って、時報による誤差訂正は、最大±30分までしかあわせることが出来ません。その初期値をあわせておく必要があるというわけです。

回路は簡単なので、組み立てるとすぐに動作しました。基準発振器に、1ppmの高精度水晶発振器を使用しているので、時刻を合わせれば、数ヶ月誤差なく表示するほどですが、ラジオの時報により、1時間ごとに訂正されていきます。

時刻の訂正は、時報とともに補正されるのではなく、処理が少ない29分30秒に行なわれ、液晶の右上にJが表示されます。

プログラムは、トラ技のダウンロードサービスのものですが、7月のものでなく、改訂されたその後のものです。

ラジオ用の電源の回路は作りませんでしたので、ラジオは電池で動いています。(写真の左下のスペース)

2008年9月22日 (月)

秋月、デジタル温度計キットの製作

Aki_tempmeter 秋月電子の、デジタル温度計キットを組み立てました。
インターシル(現ハリス)のICL7136CPLによる3・1/2桁の電圧計と、温度センサーS8100Bを組み合わせたものとなっています。

前に、LCDパネルを使って、PICで直接駆動するLCD時計を作ったときに、LCDパネルに興味を持っていたのですが、本家のデジタル電圧計を作ってみることが出来ました。

デジタル表示ということで、組みあがったあと調整が必要ですが、35ピンと36ピンの間が800mVであるようにVR1を調整し、35ピンと31ピンの間が、1848mVになるように調整すればいいことになっています。
実際は、氷で冷やして0℃に調整し、熱湯に入れて100℃に調整ということを繰り返してあわせこむようですが、センサーを基板にはんだ付けしたので出来ません。

気温を測ってみると、温度計の数値よりも高く表示するので、VR2を調整して気温にあわせました。温度がグンと変わるとずれてくるかもしれません。

これからはLCDパネルをマイコンで直接駆動することが増えてくるかもしれませんが、LCDパネルがなんとなく解ったような気がしました。

16F688によるNokia3310表示

16f688nokia3310 トラ技2008年1月号の特集1-6に、PIC16F688で、Nokia3310(84x48グラフィック液晶)に表示するプログラムがでています。

目的は、シリアル(19200bps)で送られてきた文字を、液晶に、14文字x6行で表示するものです。
PIC16F688は、14ピンのPICで、後期開発なので、機能的には十分なものがあります。また、自励発振で8MHzを発振したときでも、1%ほどの安定度なので、シリアル19200bpsでも使用することが出来ます。16F688にも、興味は大いにあるのですが、この記事では、表示に使っている、Nokia3310液晶(正しくは、携帯電話Nokia3310に使用した液晶のリサイクル品)に面白みがあります。
液晶は、SPI制御によるため5本の信号線で制御できます。

液晶Nokia3310-LCDは、秋葉原の、CoCoNet液晶工房で、1280円で入手できました。ここで手に入るLCDは、携帯に組み込む手前の状態で、押しボタンをつけるプラスチックが一体になっています。
トラ技の記事の写真を見て、液晶パネルを取り出して使えるものと思い、前面についている金属の押さえを外してみましたが、液晶の端子は、ガラスに透明電極が蒸着されているところに、導電ゴムが押さえつけられていることが解ったので、分解をあきらめ元に戻しました。
仕方なしに、下部のキーパッドの部分を折って使うことにしました。

液晶モジュールは、携帯電話の本体に取り付けたときに、金属のばねで押さえつけられて導通するのですが、ここにリード線をはんだ付けしました。
このモジュールを使うには、端子の接続に工夫をする必要があるようです。

PIC16F688は、新しいチップなので、書き込むライターが見当たりませんが、純正のICD2では対応しているので、5本を引き出して書き込みました。

動作は、パソコンから、19200bpsで文字を送ると、14x6の文字液晶として表示していきます。フォントなどは、16F688にソフトとして内蔵されています。
画面消去と、座標指定のエスケープシーケンスがサポートされています。

Nokia3310-LCDが、もう少し部品として使える形で入手できれば、16F688を合わせて表示素子として使えるものになりそうです。

後で知ったのですが、Nokia3310-LCDは、ソリトンウェーブからも入手できるようです。こちらのほうは、トラ技の記事の写真のように液晶パネルに端子がついた形で売られているようです。
後日、検証してみたいと思います。

2008年9月15日 (月)

エアーバンド受信機の実験

Airbandradio CQ出版の、書籍「エアバンド受信機の実験」を購入し、第4章のエアバンド受信機を製作してみました。

ハムフェアのCQ出版のブースで、パーツセットを売っていたので、それを購入しました。
マルツパーツ館でも購入可能です。

回路構成は、FMチューナのフロントエンド用のICを使い、ヘテロダイン変換したあと、中波AMラジオ用の3端子ICで、AM検波します。

周波数の同調には、2~3連バリコンを使わずに、各同調回路にはバリキャップを使って電圧制御でチューニングしています。
中波AMラジオ用のICを使っているので、スイッチの切り替えによって、中波AM放送を受信することも出来ます。
中波AM放送は、ストレート方式なので、スーパーヘテロダイン方式に劣りますが、VRを廻すと、バンドをうまくカバーしているようです。

エアバンドの受信には、簡易信号発生器も製作したほうが良さそうですが、パーツが入手できていません。
オーディオアンプのLM386は、音がひずむようです。調整というよりも、若干回路を変更してみたほうが良さそうです。

書籍は、組み立てを写真入で一つ一つ丁寧に説明されていますが、内容的には、自分で回路を仕上げるというところまで必要な、ちょっと上級向けです。

アナログーUSBコンバータ

Adtousb トラ技2008年7月号P.260の、マイコンで作るワンチップICのシリーズの、アナログーUSBコンバータを作りました。
PIC18F2550を使って、4チャンネルのAD入力を、USB(CDCクラス)で、パソコンに送るもので、パソコン側は、ターミナルソフトで受信し、グラフなどにするときは、ターミナルソフトのログ機能を使い、ファイルをエクセルなどへ渡します。

マイクロチップ社のUSBフレームワークを使ってプログラムを作るために、デモプログラム(HID,CDCクラス)を組み立ててみたりしていますが、これで、何かのデータを取り込んで、USBで送るのはどんなものがいいか考えていたところ、この記事を見つけ製作してみました。

18F2550をUSBで使用するための必要最小限しか使われていませんので、USB利用の基礎になると思います。

組みあがったところで、パソコンのUSBに挿入したところ、新しいUSBを検出したと出たので、プログラムと一緒にダウンロードしたInfファイルを指定して組み込みました。
CDCクラスでは、COMポートとして認識されるので、デバイスマネージャでポート番号を調べておきます。

ターミナルソフトで、そのコム番号を指定すると、USB経由でアクセスできます。
”1”を押すと、取り込んだデータを連続して送ってきます。
”0”を押すと、データを停止します。
”2”を押すと、1回のみデータを送ってきます。

2008年9月12日 (金)

秋月、GPSレシーバモジュールキット

Aki_gpskit 秋月電子の、GPSレシーバモジュールキットを組み立てました。
説明書を見たところでは、ポジション社製GPS-52を使用していて、3.3V電源の、TOKYO97、9600bpsがデフォルトのGPSレシーバのようです。
何よりも、値段が安いのが特長です。キットで4800円です。

動作させるために、写真のように若干の外付け部品を要します。
基板は付属しませんが、GPSモジュールの出力ピンのピッチが1.27mmなので、ハーフピッチの基板を使いました。

GPSモジュールのコネクタのピン割り当てがよく解らないのですが、回路図にある1~8ピンは、付属CDROMの仕様書のPDFファイルの一番最後の図面に番号が記載されていました。

パソコンでハイパーターミナルを起動しておき、GPSの電源を入れると、オープニングメッセージが何行か出て、その後、GPSセンテンスが出始めます。
初めは、衛星が捕捉されていないので、時刻も、衛星状況もでていませんが、時間が経つにつれ、時刻が合うようになり、しばらく経つと衛星も捕捉され出しました。

家の中では、座標が出るようになるまではなかなか行かないので、必ず受かる近所の駐車場へ行きました。
家に戻って、部屋の中でしばらく受信していましたが、そのうち座標が出るようになりました。必ず受かるわけではないようですが、時々受信が出来るようです。
ガーミンGPSでも、家の中ではほとんど受かりませんので、感度はむしろ良いようです。

今のところ、キットのとおりに組み立てた状況ですが、ボーレイトや、WGS84を起動時に設定するようにマイコンを追加してみたいと思います。

2008年9月10日 (水)

秋月、新居浜高専PICマイコンキット

Aki_niihama 秋月キットの、新居浜高専PICマイコンキットを組み立てました。

だいぶ前に購入したのですが、回路図を見て、それで終わってしまっていました。
多くの周辺機器をつなぐために、ポートを入力と出力を切り替えて使っていることが馴染めませんでした。

入力と出力を兼用するためには、同時には使われないことが条件ですが、うまく組んだとしても、LEDとSWを兼用とした場合、LED点灯中に、SWを押すと、明るさが変わってしまったり、ちらついてしまったりということが回避できません。

しかし、PIC16F84Aを使って、多くの機能をデモするものだと割り切れば、SWは、無駄に押さないなどで、評価することが出来ました。

18ピンのPICの少ないポートで、8点LED、サイコロ配置LED、2桁7セグLED、スイッチ3つ、減衰回路付き圧電スピーカー、CdS入力、タッチセンサー入力などが取り扱えています。
教材用に、多くの機能を試してみるということでいいのではないでしょうか。
実際の実用回路としては、共用しすぎて問題があると思います。

PICには、始めから8種類のプログラムが書き込まれています。電源を入れるときに、3つのスイッチをどのように押しているかで、8種類を区別します。

また、付属のCDROMには、個々の機能を確認するためのプログラムが収録されていて、PICへ書き込んで確認することとなっています。

このキットには、PIC用のCコンパイラが付属しています。説明書では、それを使用した例は記載されていませんが、プログラムの練習が出来るでしょう。
Wingccというコンパイラのようです。

2000円としては、盛りだくさんですが、演習で使うわけでもないものが含まれているということで、寄せ集めという感じがしないでもありません。

AVR、昇圧型DC-DCコンバータ

Avr_dcdc トラ技2008年1月号の特集3-4の、5V入力で4種類の出力できる昇圧型DC-DCコンバータを製作してみました。

AVRのATtiny45を使って、6V,9V、12V、13.5Vの出力電圧を設定できます。
しかしながら、現在のところ動作していません。

6ピンのISPコネクタを設けて、AVRSPライタを使って書き込みは正常に出来たようです。
ソースファイルを見ると、PLLにより16MHzクロックとするために、CKSEL=0001とし、立ち上がりを安定させるために、SUT=11とするようにと書いてあります。
つまり、フューズバイトは、00110001とすればいいと思います。
書き込みは、エラーなく終了しています。

動作は、5Vよりも昇圧させるために、100μHをFETでスイッチングして逆起電力を発生させると思いますが、AVRのPWM出力が変化していません。
一定の電圧値がでたまま止まってしまっています。

AVRが動作しないのかどうかを、別のテスト用プログラムを書き込んで確認してみたいと思います。
100μHのインダクタも交換しようと思いますが、まずAVRが動いてからです。

2008年9月 8日 (月)

PICでLCD直接駆動の時計を製作

Lcdclock トラ技2008年1月号のP.201に「PICでLCDパネルを直接駆動」というタイトルで、液晶表示の時計の製作が出ています。

この製作の特長は、LCDパネルをPICで直接駆動したことと、PICを低周波数クロックで動作させ、低消費電力を達成したことでしょう。

外付け部品は、ほとんどなくLCDパネルと、32.768kHzの発振子、それにスイッチです。
記事には、アラームとしてのフォトMOSリレーがありますが、単3乾電池2本で、4年以上持つようです。

液晶の駆動は、セグメント端子と、バックプレート(BP)端子の電位差があるときに点灯し、電位差がないときに消灯しますが、一定電圧をかけてしまうと、直流電圧がかかることになり、液晶が劣化してしまいます。そのため、セグメントとバックプレートの電圧関係を32~128Hzで反転してやります。
難しそうの思えますが、出来てしまったものを見ればとても簡単です。

製作は、PICと、LCDのセグメントを丹念に配線したら動きました。しかし、電源電圧の変動もあるし、発振子のトリマの調整も丹念にやらなければならないので、実用になるのは少し大変そうです。

2008年9月 5日 (金)

USBマイコンのマルチテスタ

Usb_toragimultitester トランジスタ技術2008年8月号に付録としてついていた78K0USBマイコンの応用として、マルチテスタを製作できるプリント基板が、9月号につきました。

USBマイコンというよりも、78k0マイコンの応用基板という感じです。この基板においては、トラ技BIOSで書き込みを行なうこと意外にUSBを使用することはありません。

パーツは、高精度抵抗や、なじみのないICなどを使用していたので、マルツパーツ館で、セットを購入しました。
この構成では使うことはないのですが、ROMライタのパーツも購入しました。

ほとんどの機能は、8チャンネルのADC(MAX148A)で実現されています。また、出力用に、2チャンネルDAC(MAX548A)も設けられています。

測定は、電圧、電流のほかに、抵抗値や、容量値も測定できます。
抵抗値は、5Vから10kΩで引っ張ってあって、端子とGNDの間に抵抗をつなぐと、電圧降下するのでその電圧を測定します。
容量値は、測定端子に対して、10kΩを通してパルスを加えるころで、測定端子に接続された容量の充電時間を測定することで、知ることが出来ます。

マルチテスタとしては、創意工夫された面白いものとなっていると思いますが、78k0USBマイコンの応用としては、(特にUSBの応用としては)若干不満足と思います。

私は、測定端子を接続しやすいように工夫して、容量計として利用して行こうと思います。
他の容量計に較べて若干大きめに出ますが、10%以下の誤差なのでかまわないと思います。

2008年9月 4日 (木)

秋月、PIC18F8720ボード製作しました

Aki_18f8720board_2 秋月キットを組み立ててみました。
今回は、PIC18F8720マイコン開発セットです。

PIC18F8720モジュール基板に、マザーボードがついています。18F8720は、ポートが多く、COMポートも2つあります。

18F8720モジュール基板は、ポートも多いので、何かの制御などに使うのに良さそうですが、それらの動作をマザーボードの上で確かめておこうというわけです。

PIC18F8720は、80ピンのクワッドパッケージなのでそのままでAKI-PICライタで書き込むことが出来ません。
このキットでは、3通りの対応を用意しています。
コネクタ基板ーAと、コネクタ基板ーBがあり、18F8720モジュール基板にでている5ピンの書き込み端子にそれらを接続して、ICD2の6ピンモジュラージャックや、AKI-PICライタのDIPコネクタへ、ヘッダーピンを接続して書き込むようになっています。
また、マザーボードには、ICD2用の6ピンモジュラージャックがあるので装着したままICD2で書き込むことが出来ます。

最近は、PICの新しい品種が次々に出てくるので、純正以外のPICライタでは対応しきれなくなっていますが、純正のICD2では、すべて対応するのでICD2用の6ピンモジュラージャックを基板のほうに(マザーボードに組み込んだまま書き込める)つけていることが多くなりました。

CPUボードすべてに6ピンモジュラージャックを付けるのも大変なのですが、このキットに付属の、コネクター基板ーAは、5ピンのヘッダピンに取り付けると、6ピンのモジュラージャックに変換してくれるので、他でも利用すると便利かもしれません。

付属のCDROMに入っているサンプルプログラムを書き込むと、マザーボードに用意されている機能が利用できます。
ポートはふんだんにあるので、余裕を持って利用されています。
主な機能は、
16x2液晶に表示
タクトスイッチ4つの読み込み
CdSにより、照度をADCで読み込んで、10点ラインLEDに表示
2つのCOMポートからの読み込んだ文字を、1文字ずつ表示
などです。

このキットは、書き込みに3通りを提供するというところに重点が置かれているように感じました。

2008年8月28日 (木)

秋月、デジタル容量計キット

Aki_cmeter 秋月電子のデジタル容量計キットを組み立ててみました。
発売は相当古く(1985年)、マイコンなどを使用しない、半導体ICの原理を活かした基本的な使い方をする、教材として相応しいキットです。

キットには、スイッチ類や校正用コンデンサーなどが追加され、精度向上のために発振用ICがCMOSのLMC555となっています。

容量の測定法は、タイマーIC555の容量を被測定用容量とすることにより、容量に比例してパルス幅が広くなり、一定周波数をカウントするカウンタのカウント値が大きくなるというものです。
カウンターとして、LED3桁をダイナミック表示できる4553を使用しているので、簡素な作りとなっています。代わりに、精度向上のため、抵抗は精度1%のものを多用しています。

製作に当って、部品(主に抵抗)を、確認して分けておいてから製作しましたが、4~5時間で出来ました。
校正も、校正用コンデンサ0.1μFを接続して、指定のレンジで100となるようにVRを調整するのみです。

コンデンサをなにもつながずに浮遊容量を測定してみましたが、24pF程度でした。
基板をケースに入れるのは、回路的にどうなのだろうと思いますが、実用にはなる範囲のようです。

2008年8月17日 (日)

疑似GPS位置情報発生器

Pgps GPSといえば、移動しながら現在位置を送り出すものですが、無線機での位置を送り出すときには、固定位置で使用する場合もあります。
そのとき、GPS位置が確実に受信できるわけではありません。
いつも同じデータが送り出されればいいのに、GPS衛星の受信がうまくいかないで苦労する場合もあります。

アマチュア無線において、固定位置(自宅など)で、GPS情報を出し続ける場合に使用する、疑似GPS位置情報発生器を作りました。

回路構成は、非常に簡単です。PICのEEPROMに自宅位置を登録しておき、2秒間隔で、GPSセンテンスを、4800bpsで送信するもので、位置情報は、予め地図などから得た座標を入力しておきます。

2008年8月12日 (火)

16F688液晶表示制御

16f688lcd 面白いICを見つけました。といってもPICですが、14ピンのパッケージとなっています。
通常は、18ピンなので、ずいぶん小型です。でも、性能的にはそんなに落ちていません。

このICを見かけたのは、トランジスタ技術2008年1月号特集1-5で、16x2液晶をコントロールするICとして使用するもので、シリアル(19200bps)で送られてきた文字を、液晶に表示し、簡単なエスケープシーケンスも対応します。

ICは、秋月電子で購入できました。
書込みには、サポートするライタは少なく、純正のICD2を使いました。
ICSPDATは、RA0、ICSPCLKは、RA1に加えます。

トラ技2008年1月号付録のCDROMにはいっているHEXファイルを書き込めばいいのですが、ソースをコンパイルしようとすると、ソースブーストC6.0が必要になります。
ソースブーストCは、値段も安いのでインストールしてあったので、コンパイルを試みました。

結果、エラーです。標準ヘッダファイル(CTYPE.H)をインクルードしているのが原因です。
ヘッダをコメントアウトし、使用している関数(ISALPHA)を、記述して代用することで、コンパイルが通りました。
しかし、リンクエラーです。
クロック8MHzを指定していると、delay_usが、生成できないということです。
クロックが20MHzならば通るようです。
これは、ソースブーストCのバージョンアップで、8MHzでも通るようになるようですので、オンラインバージョンアップしました。
日本語化されていないものですが、バージョン6.88となり、正常終了するようになりました。

あれこれやった結果、コンパイル可能になりましたが、コンパイル済みのHEXファイルをそのまま使ったほうが早かったかもしれません。

電源を入れると、液晶が初期化され、カーソルが左上に点滅します。

PIC16F688は、パッケージは、14ピンですが、機能的にはそれほど劣るものではありません。I/Oがそれほど必要ないようなときに利用したいと思います。

2008年8月 9日 (土)

USBマイコンのライタ冶具

Usb_toragiwriter トラ技2008年8月号の、USBマイコンには、トラ技BIOSというモニタープログラムが書き込まれており、作成したプログラムをRAM上に(LOADコマンド)または、ROM上に(FLASHコマンド)読み込んで実行することが出来ます。当然、トラ技BIOS下で実行できるようにプログラムを作成することが必要です。

このマイコンボードは、パソコンのUSBへ挿入するだけで(ドライバは組み込みます)、端末ソフトからプログラムを学習することが出来ます。前回、第4章に従ってプログラムを実行してみたので、次の段階として、第5章の、開発環境のインストールを行ないました。
ここには、ついでのようにフラッシュメモリ書き込みツールWriteEZ3のインストールも書かれています。

このマイコンボードを使う上では、著者がお膳立てしてくれたように、トラ技BIOSを利用するのが良いようですが、NECエレクトロニクスのμPD78k0730を基礎から学ぶためには、トラ技BIOSを頼らないプログラミングが必要です。
フラッシュメモリ書き込みツールは、このような場合に必要となるものです。

まず、トラ技P.168の図20(a)の回路を製作しました。
回路は、パソコンからシリアルを通じて、コマンドを送り、また、リセット信号をコントロールするだけのものです。

WriteEZ3に、パラメータファイルのセットアップを行い、イレーズチェックと、シグネーチャーリードを試してみましたが、タイムアウトして実行されませんでした。
タイムアウトするということは、デバイスが反応してこないということです。
回路に間違いがないかを入念にチェックしてみましたが、回路図どおりでした。
しかし、回路図自体のほうを見直してみると、パソコンのTXDは、マイコンのTXDにつながれています。
疑問に思ったので、試しにデバイスのRXDとTXDを逆にしてみました。その結果、イレーズチェックで、書き込み済みとでるようになりました。

トラ技のWriteEZ3用の冶具は、回路が違っていたようです。

付録のCDROMには、トラ技BIOSのHEXファイルが用意されているので、消去と書き込みを試してみました。イレーズすると、イレーズチェックで消去済みとでます。
このままではつかえなってしまうので、先のファイルを書き込みました。パソコンのUSBに挿入すると今までどおりに動作しました。

これで、プログラムが出来上がると、書き込みを行なう準備が出来ました。
USBマイコンには、USBをCOMポートとして扱うためのプログラムなども含まれていますが、これに対応できるまでは、トラ技BIOSのお世話になったほうが良さそうです。

トラ技BIOS下のプログラムを試しながら、理解を深めつつ、WriteEZ3で書き込むためのプログラムを作成する準備を進めて行きたいと思います。

2008年8月 7日 (木)

18F2320_アナログ(温度計)テスト

18f2320_adc 書籍「改訂版 電子工作のためのPIC18F本格活用ガイド」の付録のプリント基板の組み立ての仕上げとして、ADCに入力するオペアンプと温度計(LM35DZ)を組み立てました。
(注)プリント基板が付録でついているのは、初版のみです。改訂版では、P-BAN.COMから、400円(80円切手5枚)で入手できます。

これにより、外部入力を得ることができるようになりました。測定した温度データを、7セグLEDまたは、液晶16x2に表示することができます。
プログラムは、付録CDROMの8-7のadconv01.asmを使用しました。
7セグLEDに表示するときには、8-7のadconv1.cを使用しますが、高いほうの温度がうまく表示できませんでした。

出来上がった基板は、前回も書いたように、アナログ2CHのロガーがよかろうとおもいます。
もちろん、RS232Cで送られてきたデータを適切に処理し、状態を7セグLEDに表示、パラメータなどを、シリアルEEPROMに保存などとしてもつかえると思います。
PICの周辺機器をもれなく使えるようにした基板なので、何かに決めると一部は余ってしまいます。

トレーニングボードによって、周辺機器へのアクセスの仕方がわかったので、書籍に出ているそのほかの基板にも興味がわいてきました。

PIC18F2320は、最小構成では、それほど部品を必要としないので、CPU単体として使うことも出てくるでしょう。
CPUのほかに、セラロック(10MHz)、リセット回路があれば動作します。

PIC16Fから、PIC18Fへは、18F2550を使ってもなかなか進展しなかったのですが、PIC18F2320なら、気軽に使えるようになるでしょう。PIC16Fで不自由に感じていたことは、PIC18Fでは、ことごとく改良されているので、プログラムも楽になるでしょう。

I/Oピンがそれほど必要ないときには、18F1320という選択肢もあります。

2008年8月 6日 (水)

18F2320_I2Cとシリアルテスト

18f2320_eeprom 書籍「改訂版 電子工作のためのPIC18F本格活用ガイド」に付録のプリント基板を製作しながら、プログラムの動作確認しているのですが、新たに、RS232Cシリアル回路と、I2CによるシリアルEEPROM(24LC64)の回路を組み立てました。

これらの機能を確認するために、書籍付録CDROMの、8-9のusart02.asmと、8-12のi2cmaster1.asmを書き込んでみました。書込みには、ICD2を使用したので、ICSPコネクタに接続でき、18F2320をソケットから外さずに済みました。

usart02.asmは、RS232C経由で、パソコンと、119200bpsで通信できるかを確認するのみです。

I2Cで、シリアルEEPROMをアクセスするときには、マスターの時にはほとんどソフトで行なうことになりますが、18F2320では、I2Cに関しての若干のハードウェアを利用しています。

動作は、パソコンからシリアル経由でコマンドを送ると、コマンドによって、書き込みや読み出しを行なうものです。

この基板を、トレーニングに使った後、何か実用につかえないかと思ったのですが、温度計、またはアナログ入力を読み込んでおき、シリアルEEPROMに蓄え、シリアルでデータを読み出すような、データロガーにつかえるのではないかと思いました。
表示も、7セグLED2桁、または、LCD16x2に表示できます。
消費電力が少なければ、ケースに入れてまとめ上げることもできるでしょう。

2008年8月 5日 (火)

18F2320_LCDテスト

18f2320_lcd 書籍「改訂版電子工作のためのPIC18F本格活用ガイド」に付録(初版には付録としてついていますが、改訂版ではP-BAN.COMから購入)の、プリント基板で、PIC18Fのアセンブラでのプログラミングを学ぼうと、プリント基板の回路を製作中ですが、前回の、CPU周りと、7セグLED表示に追加して、液晶表示を追加しました。

PIC18F2550を使用して、USBを使った機器を作ってみることはあったのですが、USBを使用するために、USBフレームワークス(MCHPFSUSB)を使用すると、C言語でプログラムすることになるので、PIC18Fの拡張された命令の使い方を知ることが出来ません。

PIC18F2320を使い始めたのは、PIC18Fをアセンブラで使うためのものでした。
周辺機器を順に使っていくには、このプリント基板はうってつけでした。
動作を確認するには、まず表示が必要になるということで、今回は、LCD表示を追加しました。(といっても、コネクタを追加しただけです)

プログラムは、付録CDROMの8-1の中の、lcdcont1.asmを使用しました。このプログラムは、ライブラリとして、lcdlib18.asmを使用します。

プログラムは、そう長いものではないので、読み通すことが出来、自分のプログラムを作ることも出来ます。

付録CDROMに入っているプログラムは、第8章は、このプリント基板用のプログラムと思っていましたが、一部つかえないものもありました。(ポートBにスイッチが必要になるものがある)

2008年8月 3日 (日)

18F2320_7segLEDテスト

18f2320_7segled 書籍「改訂版 電子工作のためのPIC18F本格活用ガイド」の付録汎用ユニット基板(改訂版には付録としてついていませんが、初版が入手できれば付録としてついています)を使って、プログラムの練習を始めました。

書籍の第8章は、周辺機器を学ぶために、この基板で動くプログラム例が出ています。プログラムは簡単な小さなものなので、汎用ユニット基板のすべての機能を使うものではありません。そこで、試したい周辺機器のうち必要な部分を組み立てていくことにしました。

初めに、8-3章のタイマー1を使用するプログラムを試してみることにしました。

汎用ユニット基板で必要なのは、CPU周り(リセット回路、セラロック10MHz)と、電源、7セグLED表示です。
プログラミング用のICSPコネクタは、6ピンのモジュラージャックのみですが、書き込みは、秋月電子のPICライタで行ないました。

これだけで、CPUが正常に動作することを確かめられました。
プログラムは、付録CDROMの、8-3の中の、timer11.cをそのまま使っていますが、簡単なものなので、改定前の書籍の同様のものでもかまわないでしょう。

今後、RS232Cインターフェース、EEPROM(24LC64)、ADC入力オペアンプ、温度計、PWM出力、液晶接続コネクタ、などを順次追加して行きたいと思います。
それぞれの機能を使うために、必要なプログラムを書き込んでいくことになります。

18F2320の命令を自在に使いこなしていけるようになるのは、周辺機器をマスターしてからになると思います。

2008年7月28日 (月)

18F2320付録ボードの製作

Pic18f2320board 書籍「電子工作のためのPIC18本格活用ガイド」(技術評論社)の改定前の本には、PIC18演習用のプリント基板が付録でついています。
改定後は、プリント基板は付録としてつかなくなりましたが、P-BAN.COMから、有料(80円切手5枚:400円)で入手できます。

書籍の中の、例題はこの基板で動作するように作られているので、動作を確認するには、この基板が必要です。ただし、応用例はこの基板ではありません。

改定は、主に7章のCコンパイラの使い方において、CCS社のコンパイラを使用していたものを、純正のC18を使用するように変わったぐらいなので、気にしないならば、改定前の本を入手すれば、プリント基板も入手できます。

私は、PIC18Fを使用するときは、USB付きのPIC18F2550などを主に使っていますが、USBを使用しないときには、18F2320は使いやすいようです。
18F1320,18F2320は、秋月電子のPICライタでサポートしています。

部品がすべて揃わないのですが、周辺機器の動作を確認するためには、すべての回路を使用しないので、必要な部分だけでも組み立てておこうと思っています。あとで、確認が必要になったときに、追加して組み立てて行こうと思います。

USBを使用するような場合、USBフレームワークスがCで書かれていたので、アセンブラの命令になじんできていませんでしたので、18F命令になれて行きたいと思います。

まずは、CPU周り(クロック、リセット、書き込み回路)から始めて、電源、LED、アナログ入力、モータードライバ、LCDなどへと進めたいと思います。

2008年7月25日 (金)

18F1320テストボードの製作

Pic18f1320testboard 書籍「電子工作のためのPIC18本格活用ガイド」の第1章のPICの最小構成(P.16)には、PIC18F1320を使った、最も簡単な回路図が出ています。
この本は、全体を通じて(付録の基板も含めて)PIC18F2320シリーズについて書かれていますが、唯一ここだけが、18F1320を使っています。

付録としてついているプリント基板は、18F2320の色々な動作をさせて見るための回路が組み込まれていますが、それに先立って、動作をさせてみるということだけを目的に製作してみました。

回路は、SW2つ、LED4個、セラロック20MHzからなっています。

18F1320は、PLLを内蔵していて、最大40MHzで動作させることが出来ますが、そのときに使用するセラロックは、10MHzを使用します。
20MHzセラロックを使用しているということは、HSPLLモードではなく、HSモードであることがわかります。

ソフトは、書籍に付録のCDROMの18F2320用のものを直して使用しました。
LED2つが、1秒周期で点滅していて、SWを押すと、下のLED2つが点滅に変わるというものです。

16F88などを使用してきたのに較べて、18F1320は、パッケージは似ていますが、18Fシリーズの強力な命令セットを利用できるので、プログラムは容易に成ると思います。

18F1320,18F2320は、秋月のPICライタでもサポートされているので、(USBの必要ないときなどでは)もっと利用していきたいと思います。
とにかく、18Fの命令体系は強力です。

2008年7月16日 (水)

トラ技2008年8月のUSBマイコン

Usb_toragimicom 2008年8月号のトラ技に、また付録基板がつきました。
今回は、NECエレクトロニクスの、78K0シリーズの、μPD78F0730が基板に載っています。
今回の注目点は、基板をそのままパソコンのUSBポートに挿入すると、ドライバがインストールされて、仮想COMポートとしてアクセスできるようになることです。

プログラムは、予めBIOSと呼ぶものが書き込まれていて、プログラムをダウンロードして実行してみることができるようになっています。試してみるならば、これで十分に確認が出来ますが、この付録基板の本当の利用価値は、開発環境と、フラッシュメモリ書き込みツール(WriteEZ3)をインストールしてからではないかと思います。

フラッシュ書込みには、簡単な回路が必要です。
回路は、RS232Cの変換が必要な程度ですが、これで、USBも含めて、自分の使いたいように使うことが出来るようになるというわけです。

USBは、基板をUSBコネクタに差し込むことでも可能ですが、BタイプのUSBコネクタを取り付けることで、基板を連結コネクタを通して、基板に取り付けた場合でも不自由ないように考えられています。

まだ、基板をパソコンのUSBに入れて、簡単なプログラムを実行してみたところですが、USBの入出力までを含めてプログラムを作れば、小型のUSBスティックになると思います。

2008年7月12日 (土)

CQ誌のGDMのコイル製作

Cq_gdm_coil CQ誌のGDMを作って気分転換といった感じですが、きれいに作るにはなかなか手間がかかります。
一番重要なコイルは、再現性と製作の容易さからRFCを使っていますが、高い周波数はコイルを巻く必要がます。

14MHz以上の、29Tコイルと、30MHz以上の、8Tコイルを作りました。
ボビンには、ボールペンに軸を使うとのことですが、最近のボールペンは6角形なので、丸いボールペンを探しました。

色のきれいなボールサインというものが見つかりました。

軸を30mmと15mmに切って、0.8mmホルマル線を巻きました。指定の巻き数で、ちょうど良い周波数が出ました。

50MHz以上は周波数カウンタが測れないので、50MHz以上ということを確認しました。

2008年7月 7日 (月)

CQ誌のGDMの動作

Cq_gdm_kansei_naibu_2Cq_gdm_kanseiCQ誌2008年7月号のGDMが組みあがりました。
まだ、コイル2本製作していません。
ダイアルに目盛りを書き込む作業が残されていますが、出来た3本のコイルの周波数範囲を調べてみると、

コイル1(150μH)1.8~3.8MHz
コイル2(30μH)4.0~8.3MHz
コイル3(10μH)7.1~14.7MHz
となっています。コイル2は、33μHの指定だったのですが、少ない分周波数が高くなっています。

ラジケータは、ドレインの信号を検波したものを表示しますが、バリコンの周波数の小さいほうより大きいほうが良く振れます。

周波数は、周波数観測用の端子に周波数カウンタをつないで測定しました。ダイアルに目盛りを書いていくよりも、カウンターつきで使用したほうが良いような気もします。

コイルは、出来た分についてはRFCを使用していますが、どの程度ディップするかは試していません。

2008年7月 5日 (土)

CQ誌のGDM製作の開始

Cq_gdmCq_gdm_naibu CQ誌の2008年7月号に出ているグリッドディップメータの製作を始めました。
弱い発振している発振器を、共振回路に近づけると、周波数が一致していると、エネルギーが吸い取られて、発振器のグリッド電流が減少することで、周波数を知るというものですが、FETを使用し簡単に出来そうなので製作を始めました。

まだ、ケースの加工が終わったところですが、寸法図もあるので製作は容易です。
GDMで重要なのは、発振回路が全バンドにわたって安定に発振するかどうかなので、要点はまだこれからですが、外形は出来上がりました。

もうひとつ重要なのは、ダイアルのメモリ付けですが、周波数カウンターへの出力があるので、カウンターを見ながら記入すればいいでしょう。
実際使用するときに、周波数カウンタを併用するようにすれば精度も問題ないのではないでしょうか。

CQ誌の製作記事は、初心者向けの連載記事ですが、簡単に出来るように(再現性のあるように)設計したところに、筆者の工夫があるのだと思います。

2008年7月 3日 (木)

ソフトラジオをケースに入れました

Softradio_casein 書籍「ソフトウェア・ラジオの実験」によって、50.185MHz中心のソフトウェアラジオを作りましたが、受信も良好なので、きっちり使うためにケースに入れました。

ソフトウェアラジオは、50MHzBPF、前置アンプ、コンバータ、7060kHzソフトラジオとなっているので、感度も悪くありません。
ケースは、タカチのYM-130を使用しましたが、余裕を見たはずでしたが、ぎりぎりでした。

006P 9V乾電池を内蔵していますが、外部のACアダプタを使用することも出来ます。

アンテナは、BNC型としました。

組み立てて、パソコンで受信してみましたが、良好に受信できました。
50MHzのSSBの受信用につかえそうです。

2008年6月30日 (月)

ソフトラジオを製作

Softradio_kiban CQ出版より発売されている、「ソフトウェア・ラジオの実験」に付録の基板を製作しました。
パーツは、ハムスクウェアより、基本機能+コンバータ(50MHz)(2500円)を購入しました。

BPFやマッチングトランスは、トロイダルコアに巻かなければならないのですが、初めてなので、UEW線をどのぐらい延ばしておいてから巻き始めればいいのか見当がつきませんでしたが、適当に延ばしておいたら、若干長すぎたという程度で済みました。
UEW線は、余分に入っていたので足りなくならずに済みました。

以前、CQ誌2006年12月号の付録も組み立てていたので、順調に仕上がりました。

ソフトは、Rocky3.32をダウンロードして使います。

今回は、50.185MHzを受信するものなので、ハンディトランシーバで送信したら、パソコンにスペクトラムが出ました。

CW,LSB,USB、PSK31などがあるので、SSB受信用によいのではないかと思います。隣接周波数も表示されるので、混雑状況も分かります。

筆者の、三浦一則氏の、ソフトウェアラジオに対する労力に対し、敬服します。

2008年6月23日 (月)

GPSlogger(6) スイッチ読み込み

Gpslogger5 GPSlogger本体でデバッグするために、入出力である、LED表示とスイッチの読み込みを先に用意しました。スイッチを押せば、内部動作して、結果をLEDに表示する。そして、必要ならRS232Cへ出力するという目論見なのですが、どうも、スイッチの読み込みがよくありません。

スイッチの状態を、LEDに反映させてみると、確かに動作しているのですが、OFF->ONで、LEDを変化させようとすると、入ったりはいらなかったりするようなのです。
スイッチのオン抵抗が高いのかとも思ったのですが、原因はつかめていません。

スイッチの入力ですべての動作が決まるので、3重の動作をするようになります。
クリックで記録の再生と停止、長押しで記録の保存開始、5秒押し続けるとリセット動作となる予定です。
ケース内にもうひとつのスイッチがあり、これを押すと、メモリをクリアします。

スイッチがつかえないのでは仕方がないので、デバッグボードへ戻るか、スイッチを交換するかで検討中です。

2008年6月20日 (金)

GPSlogger(5) GPS動作テスト

Gpslogger4 手ごろなケースがあったというところから始まったGPSloggerなのですが、トップダウン