ポケコンのPIC開発環境

ポケコンのエミュレータをみつけたので、試してみることにした。
Linux/Windows/MacOSX用ソフトウェアから「g800win32.0.10.14.zip」(エミュレータ)と「copyrom.zip」(ROM吸出し)でPC上で動かすことに成功。

各ページのROMのアドレス0xC000-0xFFFF内容を0x1000-0x4FFFに転送して、それをHEXファイル(拡張子はTXT)として吸い出してエミュレータで動かすものだが、HEXファイルをバイナリにして中身をざっと覗いたところ、どうやら「rom14.txt」にPICのINIファイルが存在してるようなので、ちょっと調べてみた。

もう10年以上前のポケコンで、わざわざ制限付きのアセンブラ環境でPICのプログラムなんてする人なんてもういないだろうけど、ネットで調べてもあまり情報がなく、なんとなく気になったので調べてみる。

0x208DのところからINCファイルの一覧がある。

INCファイル定義部分

       00010203 04050607 08090A0B 0C0D0E0F  0123456789ABCDEF
02080                               075049               .PI
02090  432E494E 433ED10B 50313646 3632372E  C.INC>..P16F627.
020A0  494E43CB D10A5031 36463833 2E494E43  INC...P16F83.INC
020B0  F4D60A50 31364638 342E494E 43F4D60B  ...P16F84.INC...
020C0  50313646 3834412E 494E43F4 D60B5031  P16F84A.INC...P1
020D0  36463632 382E494E 43CBD10B 50313646  6F628.INC...P16F
020E0  3837302E 494E43CB D80B5031 36463837  870.INC...P16F87
020F0  312E494E 4394DE0B 50313646 3837322E  1.INC...P16F872.
02100  494E43DF E40B5031 36463837 332E494E  INC...P16F873.IN
02110  4334EB0B 50313646 3837342E 494E432D  C4..P16F874.INC-
02120  F30B5031 36463837 362E494E 4334EB0B  ..P16F876.INC4..
02130  50313646 3837372E 494E432D F3        P16F877.INC-.  

構成としては、
ファイル名長さ(1バイト)+ファイル名(可変長)+参照先ROMアドレス下上(2バイト)
となっているようなので、わかりやすく並べなおす。

長 P 1 6 F  x x x  . I N C  下上    ファイル名 参照先 転送後読み替え
+- +-+-+-+- +-+-+- +-+-+-+- +-+- ------------ ----    ----
07         504943 2E494E43 3ED1      PIC.INC D13E -> 213E
0B 50313646 363237 2E494E43 CBD1  P16F627.INC D1CB -> 21CB
0A 50313646 3833   2E494E43 F4D6   P16F83.INC D6F4 -> 26F4
0A 50313646 3834   2E494E43 F4D6   P16F84.INC D6F4 -> 26F4
0B 50313646 383441 2E494E43 F4D6  P16F84A.INC D6F4 -> 26F4
0B 50313646 363238 2E494E43 CBD1  P16F628.INC D1CB -> 21CB
0B 50313646 383730 2E494E43 CBD8  P16F870.INC D8CB -> 28CB
0B 50313646 383731 2E494E43 94DE  P16F871.INC DE94 -> 2E94
0B 50313646 383732 2E494E43 DFE4  P16F872.INC E4DF -> 34DF
0B 50313646 383733 2E494E43 34EB  P16F873.INC EB34 -> 3B34
0B 50313646 383734 2E494E43 2DF3  P16F874.INC F32D -> 432D
0B 50313646 383736 2E494E43 34EB  P16F876.INC EB34 -> 3B34
0B 50313646 383737 2E494E43 2DF3  P16F877.INC F32D -> 432D

マニュアルに書かれている以外にも対応しているPICがあるようだ。

ROMの内容が0xC000-0xFFFF内容を0x1000-0x4FFFに転送されているため、参照先のアドレスも読み替えてPIC.INCの参照先(0x213E )を見てみる。

PIC.INCファイル

       00010203 04050607 08090A0B 0C0D0E0F  0123456789ABCDEF
02130                                 0E57                .W
02140  00000000 00000000 00460000 00000000  .........F......
02150  00010049 4E444600 00000000 00544D52  ...INDF......TMR
02160  30000000 00010050 434C0000 00000002  0......PCL......
02170  00535441 54555300 00030046 53520000  .STATUS....FSR..
02180  00000004 00504F52 54410000 00050050  .....PORTA.....P
02190  4F525442 00000006 0050434C 41544800  ORTB.....PCLATH.
021A0  000A0049 4E54434F 4E00000B 004F5054  ...INTCON....OPT
021B0  494F4E5F 52810054 52495341 00000085  ION_R..TRISA....
021C0  00545249 53420000 008600             .TRISB.....     

どうやら、
1個目:定義数(1バイト)+定数名(8バイト)+値(1バイト)
2個目以降:0x00 or 0x01(1バイト)+定数名(8バイト)+値(1バイト)
と10バイトの固定長になっているようだ。

一つ一つ手作業で変換するのも面倒なので、ポケコンでBASICでプログラムを組んでみる。
前提条件としては、copyromでAレジスタで0x14を指定した後、ROMの内容を0xC000-0xFFFFから0x1000-0x4FFFに転送済みになっていること。
PCとポケコンを通信ケーブルでつないでTeraTermなどでデータを受信できる状態であること。

定数定義吸出しプログラム

 
100OPEN "COM1:"
110INPUT "ADDRESS: ";AD$
120IF AD$="END" OR AD$="EXIT" THEN PRINT "==END==":CLOSE :END
130DC= PEEK ( VAL ("&H"+AD$))
140PRINT #1,""
150PRINT #1,"ADD:"+AD$
160PRINT #1,"CNT:"+ STR$ DC
170PRINT #1,"     LABEL    VAL"
180PRINT #1,"---- -------- ----"
190FOR LC=1 TO DC
200PP$=""
210PB$=""
220PP$= RIGHT$ ("    "+ STR$ ( PEEK ( VAL ("&H"+AD$)+(LC-1)*10)),4)+" "
230FOR C=1 TO 8
240 DT= PEEK ( VAL ("&H"+AD$)+(LC-1)*10+C)
250 IF DT>=&H30 AND DT <&H7F THEN PP$=PP$+ CHR$ DT ELSE PP$=PP$+ " "
260NEXT
270PB$= " &H"+ RIGHT$ ("0"+ HEX$ ( PEEK ( VAL ("&H"+AD$)+9+(LC-1)*10)),2)
280PRINT #1,PP$;PB$
290NEXT
300PRINT #1,"==== ======== ===="
310PRINT #1,""
320GOTO 110


実行した結果は以下の通り。
長いので、実行結果は次のページで。
続きを読む →

カテゴリー: PC-G850VS, PIC, ポケコン | コメントする

ポケコンにプリンタをつないでみた

ポケコンを買って今度はプリンタを買って印刷をしてみることをした。
今回Amazonで買ったプリンタはエプソンのTM-T88IVというものだ。
中古で2,980円+送料手数料740円で合計3,720円と手ごろな値段。
当初の考えていたArduinoのプリンタシールドよりもはるかに安い。
しかし、ちょっとでかいしちょっと重い。
ACアダプタの大きさも半端ない。
これに感熱紙ロールを追加で買って印刷を行う準備をする。

『ポケコン・エレクトロニクス』に掲載されているセントロニクス・インターフェイスの回路図をもとに基板を組む。

たしか高校生の頃にも作ったはずだが、もう残ってないはず。
あの頃よりも配線はきれいにできているはずだ。

次に、ポケコンとプリンタをつなぐ。
アンフェノールコネクタなんてかなり久々に見た気がする。
14ピン-36ピンのケーブルなんて見かけないので自作する。
製作費の半分以上がこのコネクタに掛かってんじゃないだろうか。

実際につないで印刷してみたところ。

左は文字コードを印刷するプログラムを実行したところで、右はLLISTでプログラムを印刷しているところ。
BASICなんて何年ぶりだろうか。
ちなみにLLISTで印刷するためには、まずOPEN ”LPRT:”コマンドでプリンタポートを開く必要がある。

ちなみにインターフェース基板にLEDを追加している。
一番上にポケコンの電源表示の赤LED
二番目以降はオレンジのLEDで、ポケコンのXOUT(クロック)
三番目にポケコン側のBUSY~プリンタ側の/STROBE
四番目にプリンタ側のBUSY~ポケコン側のACK
ところが、二番目のBUSYは基本点灯しっぱなし(実際は点滅しているはず)
三番目のBUSYは消灯(一瞬だけついているのだろうけど視認できない)
唯一わかりやすいのは4番目のプリンタ側のBUSYだけだった。

印刷中に一瞬点灯することがあるし、プリンタ側でエラーなどが発生すると点灯する。
上の写真は、ロール紙のカバーを開けてプリンタ側でエラー状態にしている状態で、インターフェース基板上のLEDが点灯しているところ。

印刷した内容の前に、ポケコンの文字コードを表示させてみる。

次に、印刷したものを並べてみる。

なぜ2種類あるかというと、プリンタの文字コードセットがデフォルトではポケコンのコードとは異なっているのである。
プリンタの制御コードでESC/Pというものがあるが、このプリンタはESC/POSというもので制御している。
どうやらPOS用に特化した制御コードらしいが、基本的に使い方は似たようなもののようだ。
ただ、エプソンのサイトに登録しないとESC/POSの資料はもらえないようだが、ググってみたら資料はそれなりに見つかる。
ググった結果、シチズンの「モデル:CMP-20/30」用のコマンドリファレンスが見つかったので、それをもとに設定を変えてみる。

左がデフォルトの状態、右が国際文字セットとページ1を指定したもの。

&HF8(0xF8)以降の文字が異なっているが、まあ特に大きな問題ではなかろう。

デフォルト設定のまま

10:OPEN "LPRT:"
20:LPRINT "     0123456789ABCDEF"
30:LPRINT "---------------------"
40:FOR H=&H20 TO &HF0 STEP &H10
50: CC$=""
60: FOR L=0 TO 15
70:  CC$=CC$+ CHR$ (H+L)
80: NEXT
90: LPRINT HEX$ H;" : ";CC$
100:NEXT
110:FOR I=1 TO 10
120: LPRINT
130:NEXT
140:CLOSE
150:END

 

文字コードの初期化をして日本語の文字コードに設定。
20行目でESC tで文字コードテーブルの選択(ページ1カタカナ)
30行目でESC Rで国際文字セットの選択(日本)

10:OPEN "LPRT:"
20:LPRINT CHR$ &H1B;"t"; CHR$ 1
30:LPRINT CHR$ &H1B;"R"; CHR$ 8
40:LPRINT "     0123456789ABCDEF"
50:LPRINT "---------------------"
60:FOR H=&H20 TO &HF0 STEP &H10
70: CC$=""
80: FOR L=0 TO 15
90: CC$=CC$+ CHR$ (H+L)
100: NEXT
110: LPRINT HEX$ H;" : ";CC$
120:NEXT
130:FOR I=1 TO 10
140: LPRINT
150:NEXT
160:CLOSE
170:END

プリンタインターフェースのほかに、カセットインターフェースも作った。

こちらも高校時代に作ったが、実装密度は2倍近くになってサイズは約半分ぐらいになっているはず。
一応、ステレオプラグを使うかアナログプラグを使うかでジャンパーピンで選択できるようにしている。
時間がなかったので、手書きなのはご愛敬、


追記 2017/07/20
ESC/POSのコマンドリファレンスで、他にもいいものがあったので忘備もかねて記載しておく。
三栄電機プリンターコマンドリファレンス
ESC/POS – Epson
FAQ for ESC/POS

カテゴリー: PC-G850VS, ポケコン, 電子工作 | コメントする

思わずポチってしまった。後悔はしていない(ポケコンを買った)

Amazonで何気なくポケコンで検索してみたら、いくつか商品が出てきた。
新品だと2万円以上、中古だと数千円から。
本当なら新品が良かったけどちょっと高すぎなので、中古で状態のいいものということで14,000円のものを買った(それでも高いほうだが)
買ったのはSHARPのPC-G850VS。

工作するためにいろいろ計算することが多いのだが、電卓とメモ用紙に筆算では限界がある。
関数電卓でも良さそうだけど、昔使ったことがあったが何か使い慣れなかった。
ポケコンだと入力した式がそのまま見えるし、表示されていれば、数字を修正して式を使いまわせる。
Excelを使うまでもないけど、いろいろ数字を変えて何度も繰り返したいときはプログラムを組めばいい。
せっかくポケコンを買ったので周辺機器も作ってみた。
写真左下のは、高校生の頃に買った『ポケコン・エレクトロニクス』という本をもとに手持ちのパーツで作ったレベル変換器。
新規で買ったパーツは1μFの電解コンデンサ5つだけ。
右下のは「PC-G850用USB通信ケーブルを作ろう!」をもとに秋月のFT-232RQ USBシリアル変換キットを使って作ったUSB通信ケーブル。
元のページを見てもらえばわかるけど、USBシリアル変換キットのピン配置がポケコンのピン配置と酷似しているため多少の工夫だけですぐにつなぐことができる。
しかし、元ネタのままだと未使用ピンが不格好なので、ちょっと工夫して、ついでにLEDをつけてみた。
つけたのはポケコン側の電源LEDと、TxD,RxD,CTS,RTSのLED。
FT-232RQのCBUS0~4の端子が出ていないので、TxD,RxD,CTS,RTSに直接LEDをつけた。

次はプリンターをつないでみたいところだけど、プリンタは微妙なところだ。
シリアルポートは今のところサーバーやネットワーク装置のコンソールポートなどでかろうじて生き残っているが、パラレルポートのプリンタなんてそれこそ絶滅種である。
Arduinoのプリンタシールドで、ポケコンと直結してArduinoの内部で変換して印刷するスケッチでも組んでみるかと思ったが、AS-289R2プリンタシールドの値段を見て断念。
今回買った中古のポケコンより高いじゃねぇか。
Amazonで何とか3,000円弱の中古品のプリンタがあったのでそれをゲット。
あとはパラレル変換器を作るだけの状態。

ポケコンといえば、高校時代に配布されたのがPC-G803という機種。
そのころ『ポケコンジャーナル』(だったかな?)っていう雑誌があって毎回買っていた思い出がある。
そこでPC-G813という上位後継機種についての記事があったので、高校の先生に頼んでPC-G813をゲット。
しばらく2台持ちだったのだが、昔あった『ラジオの製作』(電波新聞社)の電子工作コンテストに出品した際にポケコンを紛失されてしまった。
以降はPC-G813が高校時代のメインマシンとなる。

社会人になってもポケコンは会社で大活躍。
ある数字の変換のためだけにパソコン1台占有していたのを、ポケコンで同じことができるものを作った。
他にも便利ツールを作ったら、自分のポケコンはいつの間にか職場の共有ポケコンになって便利に使われてしまった。
同じ高校の先輩後輩がいたので、そのポケコンにもプログラムをコピーしてやって複数のポケコンが職場の共有物となってしまった。
東京に転勤になる際に職場に置いてきてしまったわけだが、今頃どうなってしまったんだろうなぁ・・・

カテゴリー: PC-G850VS, ひとりごと, ポケコン, 電子工作 | コメントする

おもちゃのマイクを本物のマイクにしてみた

この前買ったおもちゃのマイクだが、別の構想中の物で実験のためにマイクが必要になったので、なんとなくマイクを作ってみることにした。

マイクのサイズに合わせて基板を加工して、スライドスイッチを基板に取り付けたところ。


スライドスイッチで基板を固定してみたところ。
スライドスイッチの取り付けがまずかったのか、ちょっと斜めっている。
底面の方は、ほぼマイクの中心部分に基板が来ている。


基板をさらに加工してジャックを取り付けたところ。
ほぼ底面の中心付近にジャックが来るようにした。
このままだと丈夫さに不安があるので、アルミのLアングルの残材を利用して固定用の金具を作る。
ハンドニブラとやすりを駆使して日曜の午前中はこれの加工に費やしてしまった。


コンデンサマイクを取り付けたところ。
ジャックはモノラルプラグでもステレオプラグでも使えるようのスイッチで切り替えられるようになっている。


最終的に取り付けたところ。
コンデンサマイクが、ほぼ中心に来るように取り付けている。
その近くに、モノラル・ステレオの切り替えスイッチがある。
回路を見ればわかるけど、プラグの対応のためでスイッチをステレオにしたところで左右に音が分かれるだけで、音声がステレオになるわけではない。


マイクの頭もつけてケーブルもつけたところ。
スライドスイッチにはDYNAMICと書いてあるけど、実際はコンデンサマイクなわけで。
とりあえず、マイクとして使えることは確認した。

この程度なら空中配線でもよかったのだろうけど、今後の参考のために基板のサイズや固定をどうするかの確認も兼ねていたので基板での工作にした。
これでマイクも確保したし、次は構想中の物に戻って実験かな。
おもちゃのマイクの方も何かほかにも作れないかな。

ちなみに件のコネクタだが、半田ごてを当ててみたが熱で溶けるようなことはなかったが、半田がのることもなかった。
ニッパで切断しようとしたが、結構硬かったので、おそらくアルミなのだろう。
よく見ると台座にはピン番号が刻印されていて、裏面にもピン番号が刻印されている。
ググってみたら実際に本物のコネクタが繋がるようなので、おもちゃにしては随分と凝った作りをしている。スライドスイッチは本物だったし一体なんなのだろうな。

カテゴリー: 電子工作 | コメントする

おもちゃのマイクのスライドスイッチが本物だった件

ダイソーでおもちゃのマイクを買った。

これで何か作れないかなと思い、サンプルで買ってみた。
スイッチやコネクタはどうせイミテーションだろうと思って、スライドスイッチのところはどう加工して本物のスライドスイッチにしようか、ちょうどいいサイズの物ってあるのかなと思って、ばらしてみたところ・・・

本物のスライドスイッチだった(笑)
さすがにコネクタはイミテーションだと思うけど、一応確認してみたら導通はあるんだよね。
プラスチックにアルミの塗装をしてるっぽいけど。

これ使ってワイヤレスマイクを作ってみるもよし、どうしようかな。

カテゴリー: ひとりごと, 電子工作 | コメントする

最近作った物 その2

2~3月にかけて作った物

エレキジャック No.2に載っていた『PICデュアル・ライタ』を作った。
2007年発行で10年前の物だが、必要なファームやソフトが手に入るか、使えるのかと心配だったが、割と問題なく製作できた。

基板と雑誌に載っている回路図のパーツナンバーが入れ替わっているところが何か所かあっるけど、番号が入れ替わっているけど抵抗は同値なので、組み立てる分には問題なし。

基板に印字されているパーツナンバーに合わせて、誤記も修正された回路図と最新ファーム(とはいっても当時の)はでんし研の『PICデュアルライター』から入手可能。

また、『PICデュアルの応用』に書かれてあるVpp切り替えにも対応。

USB-シリアル変換にはcoregaの変換ケーブル(CG-USBRS232R)(販売終了)を使用。

ただ、これを使ってシリアルポートを利用したファームウエアの書き込みを行おうとしたが、うまくいかず、結局PICへのファーム書き込みは秋月のPICライターを使用した。
PICライターを作るためにPICライターが必要になる矛盾。
シリアルポートの仕様としては送信側は±5~15Vとなっているので、範囲内で低めの電圧しか出力されていないために、PICに書き込めるだけの電圧が供給できなかったのであろう。

このライターの電源は5Vあれば動いてくれるので、USB機器をつなぎながら同時に5Vも確保できるアダプタを作成。

もとは100円ショップで売っていたiPhone充電用の変換アダプタをばらしたもの。
iPhone側で充電器と認識させるためのチップ抵抗を取り外し、信号線を配線して電源用のケーブルを取り付けたもの。

さて、USB-シリアル変換ケーブルとの接続なのだが、どちらも固定用のネジ止めが邪魔をしてこのままでは直接つなげられない。

これは秋月のPICライターでも同じことで、別途ストレートケーブルを使って接続していたのだが、いちいちストレートケーブル準備するのも面倒になってきたので、この機会に直結できるアダプタを作成。

どちらか片方のネジ止めを外せば済むことなのだが、今後の別の機器でも使うことを考えて、このアダプタを作った。

電源用のアダプタとコネクタ接続アダプタを使って接続したところ。

これだと別途電源を用意する必要がなくなるので準備が多少楽になる。
今後は、18ピンまでの対応PICはこの小型のPICデュアル・ライタを使って、それ以上の多ピンの物やPICデュアル・ライタに非対応の物はこれまで同様に秋月の比較的大きめで別電源(15V)が必要なPICライターを使うというように使い分けすることになるだろう。

ちなみに制御ソフトはオレンジ電子の『Writer509』を使用。
こちらもだいぶ前から更新が止まっているけど、すでに数年以上も前の物なので仕方がないだろう。

続いて、こちらもエレキジャック No.2に載っていた『DTMFと無線機で遠隔操作をしてみよう』の記事を見て作った物。
デコーダーの方は基板がついていたが、ジェネレーターの方は別途自作する必要がある。
ジェネレーターに使った基板は共立エレショップの『PIC16C84テストボード(基板のみ)』を使用。

今時PIC16C84ではなくIC16F84が主流だし、DTMFジェネレータではPIC16F628A-IPが使われているが、ピンアサインは同じなのでそのまま流用した。
この基板は3端子レギュレータ用のパターンがあるし、ある程度配線が引き回されているので、製作はかなり楽に行うことができた。多少アレンジはしているが。
無線で使うわけではないので、DTMFジェネレーターは元記事の回路をそのまま使って、電源リセットのところだけエレキジャックの記事に合わせてある。
DTMFデコーダーICは記事の中にあるCM8870PIではなく、同等品のLC7385を使用。
デコーダーの信号をモニタするため、ピンヘッダを無理やり装着している。
ちなみにどちらのPICも上記PICデュアル・ライタの動作確認も兼ねてデュアル・ライタで書き込みをしているが、うまく書き込めたので一安心。

動作確認用に使った386アンプ。
実は何年か前に作ったMP3プレーヤーを作るときに作った、386アンプ検証用の試作基板。

低音ブースターの効果やMP3モジュールとの相性確認のために作ったが、その後もほかの試験に使うことも考えて入出力や電源にジャックとヘッダピンを併用した作るになっている。

DTMFジェネレータ、デコーダー、386アンプをつないでの動作確認試験。

DTMFジェネレータの出力をアンプにつないで、アンプの出力側をデコーダーのIN端子に接続。デコーダーのMIC出力端子をアンプのもう一方のチャンネルに接続。
ジェネレーターの出力に合わせてDTMFトーンが出ていること、それに合わせてデコーダーが動作し、応答トーンが出ていることを確認。

こちらもだいぶ昔に作ったI/O確認ボードを使ってDTMFデコーダーICの出力とPTTの出力を確認しているところ。

左の写真はDTMFデコーダーICは「#」を押された直後で0xC(0b1100)が出力されている状態。音に反応した時点でDTMFデコーダーから対応するコードとStD、デコーダーとエンコーダのPTT端子の出力をモニタしているところ。
PTT端子の出力は、それぞれオープンコネクタだったりオープンドレインだったりするので、I/O確認ボード上でプルアップ抵抗をつけている。

カテゴリー: 電子工作 | コメントする

最近作った物

昨年末は時計ばかり作っていたが、今年に入ってなんかいろいろ作ってみたくなった。
ちなみに時計はまだ調整中。
1台除いてそろそろ誤差も実用の範囲に入ってきたのでケースをどうしようか思案中。

で、いろいろ作った物の一部。

aitendoで買ったAVRトランジスタテスターキット [K-TTER01]

もともとのキットでは電源は普通サイズのUSBコネクタで、電源スイッチも周辺のパーツが邪魔で扱いにくい。
マイクロUSBのほうが使い勝手がいいので、マイクロUSBにしてスイッチも使いやすいように変えてある。

で、こっちはamazonで買った完成品のほう。
amazonで検索すると同じようなものがわんさか出てくる。

電源のところだけちょっとだけ細工して、アクリル板の残材を使って取り付け。

エレキジャックNo.5の電子サイコロ
もう何年も前の雑誌だけど、せっかく基板がついてきたのにほったらかしなのももったいないので作ってみた。
ほぼ手持ちの部品だけで組み上げた。

オルゴール2種

一つは秋月のブレッドボードで組み立てるキットをブレッドボード基板で組んだもの。
このキットはもう販売終了した模様。
もう一方は、だいぶ前に秋月の八潮店でガチャガチャを回して出てきたもの。
ICはSM6201-2LというメロディーIC(オルゴールIC)。

PICを使った簡易測定器の実験』の簡易周波数カウンタ

クロックはEXO3 20MHzの代わりにSG8002DC-20MHzを使用。
EXO3が20.000MHzであるのに対し、SG8002DCの方は20.0000MHzと10倍の精度の物を使用。
FETは2SK241を使うことになっているのだが、廃品種のようでほぼ入手不可。
代替品についてググってみたが、代替品も入手が困難な状態。
何とか2SK439を手に入れて製作した。
LCDのバックライト用に、定電流ダイオードを直接LCDに半田付け。
このままだと使いにくいので電源と測定端子を取り出すための拡張基板を作って、アクリル板には気休め程度にアルミテープを貼ってある。

マルチ周波数オシレータキット

とりあえず簡単に使える発信回路がほしかったので作ってみた。
10KHzに設定して上記の周波数カウンタで測ってみたところ。
555を使った基本的な回路なのでそれほど正確ではないけど、とりあえず発信回路があればよかったのでこれで良しとする。
電源は006Pを5Vのレギュレータを通して使っているけど、このキットの電源の動作範囲は結構広いので、スイッチで切り替えてレギュレータを通さず直接電源をつなぐこともできるようにいている。
その場合の出力される信号の電圧は電源の電圧になる。

エレキジャックNo.2の付録基板で『LEDを交互に点滅させてみよう』という記事。

よくあるマルチバイブレータ。
電源も小型化するためCR1220を使っている。

他にも作った物はあるけど、今回はこれまで。

カテゴリー: 電子工作 | コメントする

トラ技付録のπduinoを動かしてみた

基板の裏面がむき出しなのと、引き出したGPIOコネクタの丈夫さが不安だったので、アクリル板の残材を使ってアクリル板に取り付けてみた。
というか、アクリル板の残材がどんだけ残っているんだろうか。
GPIO基板の強度に不安があったので、キットについてきた15mmのスペーサを使って基板を固定して補強してある。
でも、よくよく見てみると、基板の厚みとか考えると若干寸法が合わないはずなのにちょうどぴったりのサイズになっている。
どういうことだろうか?

ともかく単体での動作は確認済みなので、今度は組み合わせて動くことを確認するため「作って遊べるArduino互換機」って書籍に載っていた標準入出力ボードを使って確かめてみた。
標準入出力ボードは別件でArduino互換機を作って、それで動かすために作った物。
ちなみに件の書籍に載っていたUncompatinoも作ってみたが、シールドの方は汎用性を持たせるため、秋月で売っていたArduino用ユニバーサル基板を使って作っている。

基板のサイズとArduino用ユニバーサル基板ピンの位置が書籍に載っているものと若干違っているので、少しアレンジして作っている。

後は、トラ技に載っている手順でRaspberryPiのセットアップを行い、「作って遊べるArduino互換機」に載っていたサンプルのスケッチをRaspberryPiから書き込んでちゃんと動くことを確認した。
とりあえず、他にもシールドを作って遊んでみたいところ。
それにしても、久々にRaspberryPiのB+を使ってみたけどこんなに動作重かったっけ。

カテゴリー: Arduino, RaspberryPi, 電子工作 | コメントする

トラ技付録のπduinoを組み立ててみた

トラ技の17年2月号をみてどうしようかなと思って、結局買ってしまった。
なんか最近のトラ技って、Raspberry Pi用の基板が付録されていることが多いな。
けど、今のところApplePiと今回のπduinoしか買ってないけど。


作ってみたけど、またATMEGA328を載せてなくて単体での動作確認もまだ。
ところでこれの接続はリボンケーブルで相互に接続するのだが、なんか見た目が良くない。

πduino側しかつないでないけど、なんか恰好悪い。
なんか、リボンケーブルを使わなくても接続できるものが準備されるらしいが、それもちょっと不満が残る。


散りあえず2枚重ねたところだけど、このうち写真右側の1~14ピンはπduinoとの接続で利用できなくなる。
RaspberryPi側のI2C端子はπduino側では使用していないが、ケーブルで接続するとRaspberryPi側のI2C端子は使用不可になる。
また残りのGPIOピンの上にπduinoが覆いかぶさるので、RaspberryPiのGPIOが若干使いづらくなる。

そこで思いついたのがaitendoで扱っているRaspberry Pi Zero用の基板を使うことだった。
ただ、最初はそのまま使いたかったのだけど、RaspberryPi側の穴位置とπduino側のコネクタの位置が微妙にずれているため、別々の基板にコネクタをつけることにした。

RaspberryPi用の基板は、固定のため穴あけをしたり、余分な部分を切ったりしている。
πduino側のコネクタはロープロファイルの物を使っている。


πduino側は部品セットに付いてきた両端に長いピンヘッダを使って、裏面側にロープロファイルのピンヘッダを接続できるようにしている。


作ったコネクタをπduinoに接続したところ。


接続したところを正面から見たところ。
πduinoと同時にRaspberryPiの40ピンコネクタも同時に使える。
ただ、別件でも書いたけど、aitendoの基板が1mm厚しかなくて若干丈夫さに不安が残る。
ただ、11mmのスペーサーと3mmのスペーサーを使うことで部品セットに付いている15mmスペーサを無駄にしなくてすみのはありがたいかも。
通常の1.6mm厚の基板だと高さの調整をどうしようか悩むところだ。


実際に重ねてみたところ。
これでRaspberryPiのGPIOとπduinoが同時に使うことができるようになった。
あとはπduinoの単体の確認、RaspberryPiのOSの準備、環境構築して実際遊んでみたいところだ。

カテゴリー: Arduino, RaspberryPi, 電子工作 | コメントする

時計いろいろ

昨年12月は、合間合間の時間を使って、いろいろ時計を作った。

買うだけ買ってほったらかしにしてたものや、ジャンクから掘り出したものを作って、今は校正作業中。
朝と仕事から帰ってきたら時刻のずれを確認してトリマコンデンサを少しずつ回して調整しているところ。

左から、数年前に共立電子の通販で買ったT3605のセットを使ったもの(現在販売終了)
次が、ジャンクICの中にMSM5509があったので、それを使ったもの。
多分なんかのキットを作ったけど、処分するときにICだけ取っておいたものだと思う。
その次が秋月電子の1インチ大文字マイコンデジタル時計キット Ver.2
一番左が同じく秋月電子の電光掲示時計キット(スクロールクロックキット) Ver.1(10×10ドット)

まず最初にT3605と蛍光表示管を使ったセットを組んでみる。

セットに付いていた回路をそのまま組んでもよかったが、特にAM/PMの区別なんて特につける必要ないなと思ったので、時計の部分だけ組みことにした。
IC駆動用の5V電源の確保は、ネットでT3605の作例を調べて-5V出力の7905を使うことにした。

まずは、メインの基板を組んだところ。
蛍光表示管用にはピンソケットを用いている。
ICを装着するのに両側のピンヘッダが邪魔で手間取ってしまったが、ICのソケットは平ピンのソケットを使ったほうが装着しやすかったかもしれない。

電源とスイッチ用のコネクタ部分。

両端に長いヘッダを使って表面は通常サイズのピンソケットを、裏面からはロープロファイル用のピンソケットで接続できるようにしている。
この程度の回路規模だと、たいていアドリブ工作になるので、どのようにも組む場合にも対応できるようにしている。


ICと蛍光表示管を取り付けたところ。


通電して、動作確認しているところ。
横から見ると、ICに覆いかぶさるように蛍光表示管がついている。


一通り組み上げたところ。
背面はロープロファイルのピンソケットを使って電源と接続。
前面は普通サイズのピンソケットで配線している。
スライドスイッチのうち中央にあるのは、誤操作防止用のスイッチで、誤って時間設定スイッチを押して時刻がずれないようにしているもの。

次にMSM5509を使った時計。
こっちもネットで作例を調べて回路を組んだ。

一通り組み上げたところ。
メイン基板の表面で、ポリウレタン線を使ったり、ソケット内にも部品を配置したりしている。
電源部分は3端子レギュレータにアルミ板の残材を適当に加工した放熱板をなんとなくつけてみる。
ちなみにこっちもアドリブ工作。

基板の裏面側。
7セグメントLEDの配線にポリウレタン線をふんだんに利用している。
裏面側はロープロファイル用のピンヘッダとピンソケットを使っているように見えるが、実はピンヘッダの方は、両単に長いものを片方をロープロファイルのサイズにずらして、基板の表面から試験用のに通常サイズのピンソケットが接続できるようにしてある。

メイン基板にICを載せたところ。

2枚の基板を組み合わせたところ。

組み合わせたところで、表示・操作部の基板がおいてあるようにしか見えないけど。
こっちにも誤操作防止スイッチがつけてある。
また、ICの仕様で時間調整は1分ボタンと10分ボタンがあって、同時押しで時間を調整できるようになっているのだが、同時押しはめんどくさいので、ダイオードを使って一つのボタンで時間の調整ができるように作ってある。
AM/PM表示や「:」は7セグLEDに合わせて斜めに配置してみたが、よく見ないと斜めってるのがよくわからない状態に。

2枚の基板の接合部分。
接合部分に隙間があるけど、ロープロファイル用のコネクタのサイズがそのようになっているので、それに合わせて調整したピンヘッダもこのようになっている。

先ほども書いたけど、ピンヘッダの反対側にもピンが伸びていて、通常サイズのピンソケットが取り付けられるようになっている。
こちらも動作確認用に準備していたのだけど、結局こっち側のピンは使わずに終わってしまった。

そして実際に動作させたところ。

残り2つの時計は、キットをそのまま組み上げただけなので省略。
ただ、スクロール時計のキットの方は、裏面のPIC取り付け用のソケットは取説では最初につけることになっているけど、もしかしたら最後に取り付けたほうがほかの部品の取り付けには楽かもれない。
ただし、そうすると今度はピンソケットの高さの調整がめんどくさいことになりそうな気もする。
あと、スクロール時計についてきたPICが全然別の物だったので、別途PIC16C65Bを入手して、公開されているファームウエアを焼いてようやく動作させることができた。
あと、使用電波時計キットVer.2も作ったけど、電波がまったく入ってこない部屋(市販品の電波時計や、大人の科学の付録の時計でも電波をつかまなかった)で動作確認がまったくできないので記載すらなし。

カテゴリー: 電子工作 | コメントする