2023年3月23日木曜日

2023年春 基板作成、小ネタ ラグ板風プリント基板

今年の冬は色々検討して6枚作製した。

検討はしているが、前に作成した基板の修正もあるが、
今回の基板も思い違いで作ってしまった部分もあり
一度でキッチリできないのが悩みだ。

今回からなるべく基板の角を丸くする事にした。ケガとか
でなく、余剰基板を破棄する時にビニールに穴が開かない
様にする対策だ。

とりあえず小ネタ。

プリント基板作成時に形状を自由に切り出しできるので、
ふとラグ板って高いと思ったらラグ板状のプリント基板を
作れると思って作ってみた。

最初は市販のラグ板と同一サイズにしようと思ったのだが、
8ピンのICを取り付け可能にしたら面白いと思い、2.45mm
ピッチで設計しなおした。

8ピンのIC1個用、2個用、無しの3種類作った。

裏はこんな感じ。

8ピンIC版は電源用のパターンを用意した。ラグ板の場合、
対向するラグを銅線で接続する事があるので電源パターンと
干渉しない様にした。端は半固定抵抗を取り付けれる様に
した。一方、IC無しは長い時に基板を切断する事を想定し、
切断時に取付穴に困らない様に取付穴を並べてみた。

作る前から判っていた事だが、基板をラグ板状にカットする
事には意味が無い。四角い基板に白線のシルクでラグ板状の
線を引いておけば良いだけだからだ。(基板をカットする時
のみ、切断が楽になる程度だ。)ついでに書くと、ラグ板状に
する為に使わなかった部分にパターンを追加すると使いやすく
だろう。つまり、この基板はあまり意味のない品物だろう。

興味本位で作ったが、そもそも私は品物に合わせて基板を作る
ので、この様なユニバーサル基板は使わない。

作る前からヤフオク行きが決まっていたので、出品中。

2023年2月3日金曜日

DOSソフトをなんとかWindows対応にしたいと考えていた頃の話

昔、MS-DOSのプログラムを作っていたが、Windowsの
プログラミングを始める時に簡単に作れないものかと
思って調べた話。

簡単にと言うのはコマンドプロンプト実行でなく、窓が
開いてその中で表示やスクロールすればOKと言う程度の
もの。

過去に自分で調べたが、何年か後に友達にも聞かれたので
知りたい人がいるかもしれないので記録しておく。

某所で紹介されているQuickWin、これはどうもMS-C7から
Visual C++ 1.5に入っていたらしい。私は持っているが、
普通は手に入らないだろう。調べた時には既に古かったし、
流石に一般的に手に入らない品物は試さなかった。まあ、
コンパイルしても16bitアプリになるから今では使えないし。

次に某所の下の方に書いてある日本技術ソフト開発のPWP。
今ではarchive.orgにしか情報が残って無い。手に入らない
だろうが、どんな品物か知りたい人もが居るかもしれない
からarchive.orgで検索するURLを書いておく。

http://www.kt.rim.or.jp/~pwp/apidoc/begin.html
http://www.oode.jp/dispsubpg.cgi?sub=pwp

友達はこの2つは調べたけど、最後の1つが見つけれなかった。

最後はWin95h。これはVectorで今でもダウンロード可能な
シェアウエア。友達に聞かれた何年か前に使えるかどうか
調べる為にダウンロードしてサンプルプログラムを起動した。
今のコンパイラはデフォルトがUnicodeだからマルチバイトに
変更し、古い関数の警告が大量に出たが調整すれば今でも
動くでしょう。(help見るのにwinhlp32.exe必要とメモして
ました。)

実際のところ、私は調べた結果MFCでプログラムする事に
なったし、友達もサンプルプログラムの実行結果を見て
イメージと違っていたので使わなかったのですがね。

どんな感じか気になって検索しても見つからない人の参考に
なれば良いのですが・・・。

2023年1月19日木曜日

昔、同人ソフトでPC-9801でMS-DOS不要のソフトを作った話

昔、同人ソフトをPC-9801用の作ってた頃、ソフトと言えば
MS-DOSが必要だった。買う人はたぶんMS-DOSを持って
いただろうし困ってる程の話では無かったのだが、やっぱり
MS-DOSが不要が望ましかった。

この頃に有料だが、GR-DOSと言う同人向けのOSが発売された。
有料は仕方が無いとしても、ライセンス形態がいまひとつ良く
判らず結局買わずに自力でMS-DOS無しのソフトを作った。

昔の話だし、今更PC-9801のソフトを作る人は居ないと思うが、
MS-Cを使ってROM化を検討している人の参考になるかもしれない
ので記録として書いておこうと思う。

昔、本で読んだのだが、MS-Cを使ってROM化をしようと思ったら
うまくできないのでMASMでやり直したら同じところでつまづいた
と言う話があった。つまりMASMでC関数を呼び出す事が出来たら
ROM化と言うのはMS-Cで出来ると言う事だと考えた。

当時MS-Cを購入して、最初は判らず配列の為にhugeでコンパイル
して、理解が進んでcompact→small→tinyとなっていった。com
までくればIPL起動の可能性に気づきコンパイラの出すアセンブル
リストを検討した。

どうすれば良いかと書くと、C関数を呼び出す短いアセンブラを
書けば良い話だ。当時のアセンブルプログラムのコメント等を外した
り固有名称を変更したものを記載する。

extrn    _c_main:near
DGROUP   GROUP _DATA,_TEXT
_DATA    SEGMENT WORD PUBLIC 'DATA'
_DATA    ENDS
_TEXT    segment WORD PUBLIC 'CODE'
  org    0h
start:
  mov    ax,cs
  mov    ds,ax
  cli
  mov    ss,ax
  mov    sp,0ffffh
  sti
  call   _c_main
end_a:
  jmp    end_a
_TEXT ends
end    start

このアセンブラプログラムからC言語を呼び出す。

void _cdecl c_main()
{}

C側はこんな感じだ。これをLINKでまとめてからIPLで読み込ませて
起動していた(IPLはオールアセンブラで書いた)。当時はIPLで起動
させたが、ROM化の場合、そのまま動くかもしれないか若しくは
少しの改良で済むのではないだろうか。

当然の話だが、MS-DOSが無いのでシステムコールを利用したり
自作の画面表示関数が必要になる。動作環境で数値演算プロセッサの
有無があったりするので、ライブラリはエミュレータのCLIBCEを
使っていた。

これまた昔の話だがWindows用のPC-9801エミュレータを知った頃、
前述のMS-DOS不要プログラムをフロッピーディスクイメージにして
起動したところ、非MS-DOSでもちゃんと動作したのには感動した。

2022年12月27日火曜日

ダブルボイス(DVC)スピーカー完成

作りかけのスピーカーを完成させた。

MDFの接着は、サーチエンジンで作り方を見たページを参考に
ゼリータイプの瞬間接着剤を使った。合計で8gくらいだった。

VP管を付けようと思ったら、先日のブログの通りCNCの切削を
間違えた為に穴が大きかった。やむなく合成ゴム系接着材で
隙間を埋めてとめた。

吸音材を接着するのに木工用ボンドを使った。木工用ボンドを
買う必要があったのだから、本体も木工用ボンドで良かったかも
しれない。吸音材を付ける時に、ついでに箱の内側から角に
木工用ボンドを塗っておいた。VP管の位置を考えてなかったので、
底面は吸音材を貼れなかった。

VP管は長さのみでバスレフの周波数が決まると思っていたので、
思ったより長くなってしまった。適当に作ってしまったが、もっと
径を細くすれば良かっただろう。長さは適当に10cmで妥協した。

冬季で乾くのが遅そうだから、数日放置してから全面を取り付けた。

前面のMDFを取り付け、スピーカーを取り付けた。ケーブルは面倒
なのでバスレフポートから出した。

アンプは前に作った品物で試験した。

回路図の要点はこんな感じだ。片CHを2つのアンプで電流と電圧で
スピーカーを駆動する。

動作試験をしたところ、想定した効果が出ている事を確認した。
音質については少しエージングをしないとダメそうだ。

2022年12月8日木曜日

CNC3018でスピーカーの穴の切削

試験結果を参考に穴は円でなく八角形をベースに上下左右を
小さめにしてRを付ける事にした。これはぎりぎりに切削した
時にカッターで斜めに削る部分を少なくなる様にこの形状に
した。初めは歯車形にしようと思ったが、ネジ止めのつばの
部分で隠れるので、隠れる部分は直線で問題無さそうと判断
した。

直線部分がある為か、Candleで全切削ライン表示できた。

切削結果。1枚約18分。

スピーカーを嵌めてみた。DVCスピーカーだ。

試験時に1mm程度穴が小さかったので、なんとなく測定した
数値の下書きに切削線を引けばちょうど良いと思い込んで切削
してしまった。エンドミルが1.6mmなので予定より0.6mmも
大きく穴が開いてしまった。少し小さめでカッターで修正する
つもりが、そのまま入ってしまった。穴がスピーカーのふち
より小さかったので良かったが失敗するところだった。

1枚削って問題無さそうなので翌日に2枚目を削った。

タッピングとVP管を買って来よう。

2022年12月1日木曜日

CNC3018でMDF切削検討

CandleでCNC3018の動作確認を行ったらドリルの移動距離が
少なかった。$100=800 $101=800 $102=800を追加した。

切削する時に使うノートパソコンにCandleを入れCAMデータを
読み込ませたら、最新バージョンではやはりビジュアル表示が
出なかった。1.1.7だけ出るのでコンパイル条件の違いが原因
なのであろう。もっとも、ノートパソコンはWindows 10の
署名付きディスプレイドライバーが無いのでマイクロソフト基本
ディスプレイアダプターになっているのがそもそもの原因だろう。

jw-cadでデータを作ってncvcでCADCAM変換してCandleで読み
込みCheck modeで作成したデータを確認した。ヘッダの先頭の
%がエラーを出した。また、NCVCの円弧補完はI/J/K指定では
なくR指定にしないとエラーが出た。

ドリルの電源ケーブルを外してエンドミル無しで動作確認した。
想定通り動いている様だが、少し擦れた音がする気がしたので
グリスを塗った。

本番前に試しに10㎝角のMDFに8㎝用穴を開けるCAMデータを
作った。Candleで表示させると画面が正常に出ない事があった。
良く調べると円弧表示で正常に出ない場合がある様だ。データ
自体は問題無さそうなので、画面表示は無視して切削してみる
事にした。

エンドミル1.8mm、深さ1mm、切削速度は200mmを6回つまり
6mm切削してみた。

約15分で切削できた。切削速度が速いのか、バリが出ている。

厚さ6mmだが、切削が少し足りなかった。

裏から押して真ん中を取り除いた。

測定するとCADデータより若干穴が小さかった。おそらく
切削方向、回転方向、遊びが原因だろう。少し小さめに穴を
開けてカッターナイフで調整するから、微調整は不要だろう。

2022年11月29日火曜日

久しぶりにCNC3018出してきた

スピーカーのボックスを作ろうと思い、100均でMDFを買って
カッターで切断したのだが、ユニットの穴は100均で糸鋸でも
買って開けようと思っていたら昔は売っていたが今は売って
無いみたいだった。

仕方が無いのでCNC3018で丸穴を開ける事にしようと思った。
どうも1年半ぶりくらいの出番の様だ。

前々から気になっていたのだが、CNC3018をコントローする
パソコンgrblControlだとビジュアル表示の画面が出なく、動作
しないCandleだと画面が出る(普段使いのデスクトップパソコン
は両方出る)。以前からgrblのバージョンが古いみたいだとは
思っていたが、今回は折角だからバージョンアップする事にした。

簡単に更新できないか色々なページを見ていた。Arduino IDE
までインストールしたが、結局はもっと簡単な方法が見つかった。

grbl_v1.1h.20190825.hexをダウンロード、XLoaderで更新。

CNC3018の付属CDにnano_328p_grbl_0.9.hexとXLoaderが
含まれていたので、これで書き込んで出荷していると言う意味
だったのだろう。

更新前に$$で設定を調べておけば良かったのだが、考えていな
かったのでちょっと困ったが、以前問題点をブログに書いていた
のでそれを見て今回は$3=1だけすれば動きそうだと判った。

ついでにCandleも最新ベータ版のCandle_1.2.15b_x64.zipを
ダウンロードした。

grblの更新で私の持っているコントローラを少し調べてみた。
Cronos Makerと書かれていている。シリアル通信はCH340Gが
付いているが、どうもこのチップは通信エラーが出る事がある
らしい。CH340GのそばにBluetoothとオフラインコントローラ
用のコネクタがある。これがCH340Gとパラレル接続されている
みたいなので、このコネクタに別のシリアル通信チップを接続
すれば回避できるかもしれない。あと、あまり調べてなかった
のだが、レーザーユニットのコネクタも付いていた。スピーカー
の穴ならレーザーユニットの方が良いかもしれない。