パンくずリスト
  • ホーム
  • ソフトウェア
タグ:ソフトウェア
電子回路の実験(リレー制御、温度計測)とコンピュータとソフトウェアについて

 ここでは、コンピュータを使って簡単な電子回路の実験とソフト作成をしてみたという話をします。


 ひとつはリレーを使った回路の切替制御、もうひとつは温度計測です。

 

 ところで、いまはコンピュータで手近にあるものといえばWindowsのパソコンです。時代はWindows10からWindows11への移り変わりのとき。

 

 2023年6月ころになりますが、M市のパソコン専門店で軽量のジャンク扱いの中古のノートパソコンが3500円で売られているのを発見し、一台入手しました。NECのVersa Pro VN-Sというものです。

 

 しかし、電源を入れてみたけれどBIOSは動作するもののWindowsは起動しません。うらぶたを開けて確認してみると、SSDが抜き取られていて、そのためジャンク品となっていたようです。

 

 それならばと、安価なSSD(4,000円くらい)をAmazonで購入し入れて、Windows10をインストールしてみました。その結果、問題なく、OSは動作するようになったのです。ディスプレイの状態も普通に使う分には問題なし。バッテリーがまったく機能しなかったので、これもAmazonで同等品(8,000円くらい)を購入し交換しました。で、このWindowsパソコンを開発用にしたわけです。

 

☆ ☆ ☆

 

 コンピュータ(Windowsパソコン)からリレーを使って回路の切替を行いたいということがあり、Amazonで販売されている4chリレーユニットを使って、この制御用ソフトウェアを作成してみました。

 

 

 4chリレーユニットQYF-UR04はAmazonから購入したのですが、しかし、取扱説明書がまったくなく、販売店にコンタクトしたら中国語の取説が送られてきました。この中のコマンドの記述と、ネット上に掲載されている情報を参考にして、なんとかVisual Basicで動作するソフトを作成することができ、そしてリレーの動作を確認することができました。

 

 リレーを使って回路の切替に関しては、詳しくは、「4チャンネルUSBリレーをVisualBasic.NETで動作させる方法」を参照下さい。

 

☆ ☆ ☆

 

 次に試したことが、熱電対を使って温度を計測しようということでした。

 

 


 これには、熱電対と、熱電対モジュールと、その出力を読み取るSPIモジュール、そのインターフェース用のソフトウェアが必要となります。まず、SPI(Serial Peripheral Interface)とは何かから始まります。

 

 そして秋葉原で入手したK熱電対(クロメルアルメル)を使い、Amazonで熱電対モジュールを、また別にUSB-SPIモジュールを購入して、組み立てます。

 

 

 

 

 それからSPIモジュールのソフトウェアを改良して温度計測のソフトを作成し、動作させるというものでした。これもひととおり、動作するようにできました。

 

 このポイントはふたつのモジュール間の配線接続と、温度計測に使っているICチップのメモリマップから数値をどのように読取り、データ転送させるかということでした。

 

 温度計測に関しては、詳しくは、「SPI制御のK熱電対モジュールを使用した温度測定方法」を参照下さい。

 

☆ ☆ ☆

 

 以上のように、リレー制御、温度計測といった簡単な電子回路の実験とソフト作成をしてみました。

 

 ソフトウェア作成の環境としては、Microsoftが提供しているVisual Studioと、Visual Basic .NET Framework4になります。また、パソコンが32bitか64bitかで使えるDLLが異なるのも知りました。昔の(1980年代の後半から1990年代の初頭にかけての)MS-DOS上のBASIC(beginner's all-purpose symbolic instruction code)と異なり、コーディングにも慣れるまで時間が必要でした。

 

 また、現在では、計測器のインターフェースは旧来のGP-IBの他に、最近ではUSBを使ったシリアル制御が目立つようになったと感じます。これらについても対応できるように積み重ねていきたいと考えています。

 

(2024-4-20)

 

  • 体験
コンピュータとの関わり - PETからWindows7まで

いまや、コンピュータは身近な道具として普及しており、これなしでは仕事ができないといった状況になっているところも多い。私は、これまで、職場や自宅でコンピュータを使ってきているが、今回は、このコンピュータとの関わりについて、書いてみようとおもう。

 

いまは、Windows XP や Vista (ビスタ)、7 (セブン) が全盛であるが、たしか、私が「コンピュータ」と呼べるものに初めて直に触ったのは、1977年のことだった。

 

当時は、T社のセラミック材料の開発を行っている部門に移ったばかりのときであった。そこで、酸化亜鉛のセンサの開発をしているグループがHP社のマイクロコンピュータを導入した。空き時間に少しばかり触らせていただいたのだが、キーボートは、英文タイプライターとほぼ同じ配列で、それ以外に、ファンクションキーがいくつかついているという、いまとそれほど変わらない入力方法であるが、表示は、発光ダイオードで一行のラインを文字表示させるディスプレイのみであった。特殊なBASICみたいな言語を走らせる。記録はこれも特殊なカセットテープに書き込み読み込みするものだった。ソフトの内容は、パラメータを与えて測定データを取得し、記録するという単純なものではあるが、それを自動的に実行するという点に惹かれた。ここで、データファイルのつくりかたやコンピュータへの入力のしかたなど、見よう見まねで覚えたものであった。

 

次に、その二年後くらいだろうか。米国コモドール社製の8ビットの「PET」といわれるものが導入された。これは、表示が40文字×25行くらいの白黒のブラウン管ディスプレイで、BASICという言語でプログラムを自作し、XYプロッタなどの機器の制御やデータ収集に使用していた。記録装置として使っていた5インチのフロッピーディスクドライブはよく読み込みエラーを起こし、プログラム自体もたまに暴走するという信頼性に欠けるものであった。

 

その後、日本のN社がPC8001というマイコン(バソコンとも呼んでいたが)を市場に売り出しした。これは、当時、国産品としてかなり普及したらしい。信頼性は格段に向上したが、価格は一式で80万円くらいした。もちろん、まだまだとても個人で買えるものではなかった。この頃は、酸化亜鉛を用いた半導体の開発に携わっていた時期になる。ようやく、表示が80文字×25行で、カラーのブラウン管がディスプレイとして使えた。このときは、長時間の測定データを収集するために使用していた。

 

1980年代前半はまだ8ビットマイコンが残っていたが、16ビットが主流の時代になった。5インチや3.5インチのフロッピーディスクが使えるようになった。しかし、現在のように市販されているパッケージソフトウェアはまだなくて、職場では、まだ、BASIC言語でプログラミングをしていた。だが、メーカー各社の仕様が統一されていなくて困ったものである。

 

仕様統一のきっかけとなったのが、MSXの登場であった。MSXは1983年ごろ登場し、価格が安く4万円から6万円くらいで本体が買えて、家庭のテレビに簡単に接続でき、BASIC言語でプログラムを自作できるほかに、ソフトメーカーからもMSX仕様のソフトウェアが売り出された。ここにきて、ようやく個人でコンピュータが持てる時代になったのであった。

 

当時、私は、職場では16ビットのコンピュータで、家では8ビットのMSXで、同じフロッピーディスクを持ち運びして仕事を処理していたことを覚えている。たしか、開発品のレポートや報告書などを書いていたようにおもう。自宅でMSXを使い、趣味でいわゆるパソコン通信なるものをはじめたのも、この頃のことであった。

 

その後、1995年を境に32ビットの時代になり、OS(オペレーティングシステム)もWindows (ウィンドウズ) 3.1、95、98、2000と変化していった。記録装置もハードディスクというものが使えるようになり、データの量も増えていった。扱うソフトウェアも、測定、データ処理、CAD、プレゼンテーションと、多岐にわたっている。また、電子メールも使いやすくなり、いまでは、コンピュータは私にとって道具となっている。

 

いままで、個人で購入し、自宅で使用したコンピュータを数えてみると、MSX(8ビット)、MSX2(8ビット)、Dynabook(16ビット)、Libretto(32ビット)、ThinkPad(32ビット)と、また使った言語も、初期のBASICから、FORTRAN、C、VisualBasicなど、様々であり、それぞれに歴史と想い出がある。

 

いま、私の職場では、64ビットのコンピュータが使用されはじめている。Windows 7 (ウィンドウズセブン) というもので、使い慣れた32ビットのものと少し使い勝手が異なるのだが、これもそのうち慣れていくに違いないとおもっている。

 

(2012-04-01)

 

 

正確にいうと、MS-DOS、DOS/V、MSX-DOS、MSX-DOS2 といった異なるOperation System が、共通のメディア(フロッピーデイスク)上で、同じファイルフォーマット(形式)で取り扱えるようになったことが、普及のひとつの側面としてあげられるのではないだろうか。それにしてもMSXは懐かしい。

 

(2012-06-30追記)

 

  • 体験
ソフトウェアツールの値段

この話は、30年ほど前のことである。当時、プロッタで作図をしようと、プロッタ本体とコンピュータ本体につなぐインターフェースを作った経験があったな、などと、考えていたら、ソフトウェアの値段について想い出したことがあったので、書いてみようとおもう。

 

なぜかというと、当時、8ビットのコモドール社のPETというコンピュータが、ある測定を行うために職場に導入された。

 

もちろん、表示は白黒のディスプレイで、文字も一行40字で25行程度の表示能力しかなかった。グラフなどは、手描きか、プロッタを用意して、描かせるのが一般的だった。

プロッタでグラフを描くと、見栄えがいいので、簡単なプログラムをコーディングしては、動作確認し、使っていた。

 

コーディングは、例えば、次のような手順で行う。

 

1. OPEN 2,5 --- プロッタのインターフェースの初期化

2. PRINT#2,"I" --- プロッタ本体の初期化

3. PRINT#2,"M0,0" --- プロッタ原点の指定

4. PRINT#2,"I100,100" --- プロッタのペンを原点から相対位置座標の(100,100)に移動

5. PRINT#2,"P1" --- プロッタのペンを下ろす

6. PRINT#2,"I200,200" --- プロッタを(300,300)まで移動させる(線を引く)

7. PRINT#2,"P0" --- プロッタのペンを上げる

8. PRINT#2,"M0,0" --- プロッタのペンを原点に戻す

9. CLOSE 2 --- プロッタのインターフェースを閉じる

 

上記のように、当時、たいていのプロッタの作図ツールはこんな感じで、簡単なプログラムは、ほとんどすべて自作していた。したがって、たいして時間もかかっていない。もし、仮に作成費用を計算したところで、せいぜい1〜2万円程度だろうとおもわれた。

 

ところが、あるとき、これらのコーディングを行うのは、時間と手間がかかるので、外注に出したらどうか、という話が上司から出た。

 

さっそく、仕様をある程度、外注さんと打ち合わせた後に、見積りをいただいて驚いた。その当時のパッケージソフトと呼ばれたものは、1〜2万円、高くても数万円だった。だから、どんなに高くても十万円を超えないだろうと考えていた。

 

だが、その見積りには、なんと、百万円を超える金額が並んでいたのだ。

 

唖然とした。単純なツールなのに、なぜそんなに高いのか、わけがわからなかったのだ。しかし、とにかく、発注することとなった。

 

1か月ほど待った後に、そのツールは完成した。しかし、コンピュータへのインストールと動作確認に3日もかかり、コーディング自体が分量が多い、サイズが大きいために、当時のひ弱なコンピュータのメモリには、耐えがたいものだった。

 

結局、外注したものはあまり使われず(?)に、(少なくとも自分自身は、ほとんど使わずに、) 自作のツールを使っていたという記憶がある。

 

自分たちは、グラフ作図の意味とプロッタの動作がわかっているので、必要最小限のコーディングでソフトウェアツールを完成させた。

 

これに対して、外注さんは、ある程度、最初に仕様は決めているものの、基本に忠実に、コーディングしようとした、つまり、ある程度、自由度を持たせて、どんな変更要求にも耐えうるようにしたのだと、推察された。(そのため、コードが肥大化した。)

 

また、1か月の人件費と作業費も加算されて、莫大な金額になったのだとおもわれた。

 

ソフトの値段は、おそらくほとんど人件費なのであろう。

 

昔は、コンピュータスペシャリストという職種が、一部の企業にあったときいている。簡単な実験データや測定データを作図するのに、プロッタできちんと描画したほうが、きれいだし、見栄えも良いなど、説明資料としても、メリットはある。だが、さすがに、百万円を超えるソフトでも、自作のソフトでもたいして描画は変わらない、という状況では、困ってしまう。

 

この話は、まだ、ディスプレイのスクリーンコピーができない時代の話なので、今どきの事情はまた、異なるのかもしれない。

 

現代は、32-64ビットのコンピュータの時代であり、さすがに、自作ツールを扱う人は少ないとおもわれるが、外注化はやはり同じような構図だとおもわれる。

 

ソフトウェアの外注化がいかに高価だったかという、自分自身が経験した昔のエピソードのひとつである。

 

(2012-4-30)

 

プログラミングの楽しさと厳しさ

以前、バリスタ(電子セラミック部品のひとつで電圧非直線抵抗素子のこと)の開発に携わったことを書いた。材料開発もそうだが、サンプルの特性をきちんと正確に評価できる測定技術もまた必要になってくるのである。

 

当時、まだパソコン(PC)は8ビットであって、マイコンとも呼ばれてもいた時代のことである。バリスタの特性評価のひとつに、一定の電流を流したときの電圧降下を測定するという操作がある。この測定制御をコンピュータ(PC)を用いて行おうというものであった。

 

定電流電源をソフトウェアで操作し、電圧計で電圧を測定するのであるが、その値は数千ボルトにも達する場合がある。安全装置をつけて、しかも十分な接地を行なって、万が一にも感電事故などが起こらないようにしなくてはならない。

 

この測定制御プログラムを作成したときのことを少し書いてみようとおもう。

 

バリスタのサンプルは、例えて言えば、セラミックの円板の上下に電極を取り付けた形状であって、これらを銅板の上に整列させて並べておき、電源の接地側に接続しておく。

 

電源の高圧端子側を絶縁体でうまく絶縁して、ハンドリングできるようにし、プロッタのペンのかわりに取り付けて、ソフトウェアで、指定したX座標、Y座標の位置に動かし、サンプルの上部に取り付けた電極に接触させる。そして、定電流電源を駆動させて、一定の電流を流し、電圧計に表示された値を読み込む。そして、電流値を変えるか、X、Y座標を指定し直して再度測定するか、という操作を繰り返す、というシーケンスである。

 

このような内容のコーディングを行なったのである。

 

問題点は多くあったが、いちばんの問題は、コンピュータの誤動作であった。

 

8ビットマイコンは、一応、BASICという言語でソフトのコーディングができた。いろんな処理をサブルーチンに書き上げて、メインのプログラムから呼び出し処理をするのであるが、ときどき、誤動作でフリーズすることがあった。

 

原因は、ノイズだとおもわれた。端子が接触し数千ボルトのON/OFFをするときに、ノイズが発生するのか、それとも外来のノイズだったのか、とにかく途中で止まってしまう。

 

どこで止まるのかを観察していると、測定制御プログラムのメインルーチンからサブルーチンに制御が移り、実行処理の後、メインルーチンに戻れなくなっている。ノイズで、コンピュータのメモリのスタック領域が壊れているのだと気づいた。

 

そこで、重要な処理はすべてメインルーチンに書くようにした。簡単な計算などはサブルーチンに書いてもよいが、安全に行うべき高電圧のON/OFFやデータの読み込みなどは、メインルーチンに書くようにしたのである。

 

ようやく、誤動作せずに測定系が正常動作したときは、正直ほっとしたのであった。

 

もちろん、現代は、コンピュータも32ビットや64ビットが主であり、コーディングソフトウェアも進化しているはずなので、こんなことは滅多にないとおもわれる。

 

プログラミングは楽しい面もあるが厳しい面もある。こんな経験をさせてもらったことも、いまでは懐かしい想い出のひとつになっている。

 

(2010-1-21)

 

時の流れを感じるとき

十年一昔(じゅうねんひとむかし)というが、時の流れを感ずる。

 

というのも、これまで、仕事や趣味で携わってきたコンピュータの移り変わりを思い出してみると、よくわかる。

 

いまは、ウィンドウズXPやビスタが全盛であるが、私がコンピュータに直に触れたのは、1978年頃、当時の米国コモドール社製の8ビットのもので、BASICという言語でプログラムを自作し、機器の制御やデータ収集に使用していた。

 

5インチのフロッピーディスクはよく読み込みエラーを起こし、プログラム自体もたまに暴走するという信頼性に欠けるものであった。

 

その後、日本のN社がPC8001というマイコン(バソコンとも呼んでいたが)を市場に売り出しした。信頼性は格段に向上したが、価格は一式80万円くらいした。もちろん、まだまだとても個人で買えるものではなかった。

 

1980年代前半はまだ8ビットマイコンが残っていたが、16ビットが主流の時代になった。しかし、まだ、BASIC言語でプログラミングしていたが、メーカー各社の仕様が統一されていなくて困ったものである。

 

仕様統一のきっかけとなったのが、MSXの登場であったとおもっている。MSXは1983年ごろ登場し、価格が安く4-6万円くらいで本体が買えて、家庭のテレビに簡単に接続でき、BASIC言語でプログラムを自作できるほかに、ソフトメーカーからもMSX仕様のソフトウェアが売り出されていた。

 

ここにきて、ようやく個人でコンピュータが持てる時代になったのであった。その後、32ビットの時代になり、OSもウィンドウズ3.1、95、98、2000と変化していった。

 

いままで、自宅で個人で購入し、使用したコンピュータを数えてみると、MSX、MSX2、Dynabook、Libretto、ThinkPadとそれぞれに想い出がある。

 

 

ことしの一月にパソコンのOSを入れ替えた。それまでウィンドウズ98を使用していたのだが、ウィンドウズ98用のウイルス対策ソフトがもうサポートされないことになってしまったため、やむなくXPを入れることにした。それでも、もういまはビスタの時代になってしまった。

 

時の流れははやいものである。

 

(2008-9-20)

 

 

(追記)

 

正確にいうと、MS-DOSというオペレーションシステムが先にできていた。これは16ビットのコンピュータ用のものであった。MSXは8ビットのコンピュータであるが、MSX-BASIC というものが先に共通仕様化されてできていた。16ビット用のMS-DOSと同じように8ビット用として作られたのが MSX-DOS であった。フロッピーディスクの形式は2DDが主流であったが、MS-DOS上でもデータの読み書きができる優れたものであった。

 

 

当時、私は、職場では16ビットのコンピュータで、家では8ビットのMSXで、同じフロッピーディスクを持ち運びして仕事を処理していたことを覚えている。

 

(2008-10-18 追記)