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

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


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

 

 ところで、いまはコンピュータで手近にあるものといえば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)

 

Fedoraで公衆無線LAN (Cartina UM)(その2)

最近、BBモバイルポイントの設置してあるはずのマクドナルドで、インターネットに接続するためにネットブックCartina UMを開くことが何回かあった。そして、そのうちの7割くらいは、なかなか接続できないことも経験した。せっかく、Yカメラで@wig-cardを入手したのに、残念というほかない。たしか、半年前くらいは、ちゃんと接続できたのにな、とおもいながら、そんなときは、PHSの携帯電話をさっさとUSBケーブルでCartina UMとつなぎ、ダイヤルアップ接続をして、メールを拾う、というようなことでなんとかしのいできた。

 

つながらない原因は、いったいなんだったのだろうか、といろいろ考えているうちに、周囲を見渡しておもいあたった。マクドナルドでは、ゲームをしている人たち、特に若者が異様に多い。手には、PSPやDSらしきものが見える。これらも無線LANのAPであるBBモバイルポイントを使用しているのではないか、と。

 

いままで、LinuxのFedora-11をOSにして使っていたCartina UMであるが、Network ManagerがAPを認識する、しないは、これらのPSPやDSの使用数・状態にかかっていたのだと気づいた。

 

以前に書いた記事で、Network Managerがなかなかリンクの確立ができなかったのは、APの電波の強度が弱いこともあるが、これらのPSPやDSも原因だったのでは、と思ったのである。

 

確かに、半年前は確実にネットブックCartina UM/Fedora-11でインターネット接続できたマクドナルドのお店が、いまは減少しつつあるのだ、と強く実感した次第であった。

 

同じ店内にもかかわらず、Fedora-11のNetwork設定の確認画面では、
BBモバイルポイント(●)の他にも別のAPがいくつか確認できる。

 

(2010-3-21)

 

Fedoraでダイヤルアップ接続 (Cartina UM)

久しぶりに、ダイヤルアップ接続に挑戦した。いや、Linux OSとしては初めてかなとおもう。まだ、ブロードバンドが普及しない時代に、PCのシリアルポートにモデムを接続し、電話回線を使ってインターネット接続したことはあるが、それ以来である。

 

今回は、ネットブックのPrime PC Cartina UMを使って、Fedora 11にて、また、モデムとしてはPHS携帯電話であるToshiba製の WX320Tを使用してインターネット接続した。

こうすることで、公衆無線LANが使用できない環境でも、無線電波を使ってインターネット接続できると考えたからであった。(WX320Tは、つなぎ放題で契約中のものを使用した。)

 

ここでは、おおよその手順と、途中でつまづいた問題点(最終的には解決したが)を紹介しようとおもう。

 

以下の手順を行う前に、無線LANのスイッチはOFFにしておく。([Fn]+[F2]で左下手前の4番めの青色のランプが消灯するはずである。)

 

Cartina UMには、USBポートが複数あるが、そのうちのひとつのポートとWX320TのUSB端子とを接続する。そして、lsusb、およびdmesgコマンドを実施してみる。

 

$ lsusb

---(省略)---

Bus 001 Device 004: ID 0bda:0156 Realtek Semiconductor Corp. Mass Stroage Device

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 002 Device 004: ID 0930:0d35 Toshiba Corp.

---(省略)---

 

のように、Toshiba製のデバイスが認識され、

 

$ dmesg

---(省略)---

usb 2-2: USB disconnect, address 2

usb 2-2: new full speed USB device using uhci_hcd and address 3

usb 2-2: New USB device found, idVendor=0930, idProduct=0d35

usb 2-2: New USB device strings: Mfr=0, Product=0, SerialNumber=0

usb 2-2: configuration #1 chosen from 1 choice

cdc_acm 2-2:1.0: ttyACM0: USB ACM device

---(省略)---

 

のように、このデバイスが「ttyACM0」という名称で識別されていることが確認できるはずである。

 

この確認ができたら、次に、[システム]-[管理]-[ネットワーク]のメニューで、「ネットワーク設定」のタブを選択する。[ハードウェア]-[新規]-[Modem]で、「モデム設定」の別ウィンドウが現れるので、[デバイス]は、「/dev/ttyACM0」を入力し、その他はデフォルトのままとする。

 

さらに、[デバイス]-[新規]を選び、プロバイダーの登録情報を入力する。そして、このときのプロバイダー名が例えば「abcde」だとする。

 

ここまで完了すると、「/etc/ppp/peers」のディレクトリに「abcde」というファイルが自動的にできているはずである。また、「/etc/sysconfig/network-scripts」のディレクトリに、「ifcfg-abcde」というファイルが、もうひとつ、「/etc/sysconfig/networking/devices」のディレクトリにも、「ifcfg-abcde」というファイル(同じもの)ができているとおもう。

 

ここまで設定できたら、本来は、[システム]-[管理]-[ネットワークデバイスの制御]のメニューを開いて、「デバイス ppp0」を選択して「起動」をクリックすれば、ダイヤルアップで接続できるはずであった。

 

ここでひとつ、問題が生じたのであった。上述の手順で行うのだが、モデムが動作しない。どうも、ATコマンドの一部をWX320Tが認識しないようであった。いろいろ調査してみて、次のファイルを少し修正しなければならないことが判明した。

 

それは、「wvdial.conf」というファイルで、上記の設定を行うと自動的に作成されるファイルなのだが、その中にある「Init3=」から始まる一行を削除する必要があったのである。

 

# cat /etc/wvdial.conf ( ← rootでの処理が必要になる)

[Modem0]

Modem = /dev/ttyACM0

Baud = 460800

SetVolume = 0

Dial Command = ATDT

Init1 = ATZ

Init3 = ATM0 ( ←---- この行を削除する )

FlowControl = NOFLOW

[Dialer abcde]

Username = xxxxx@xxxxx.net

Password = xxxxxxxxxx

Phone = 0570570xxx##61

Stupid Mode = 1

Init1 = ATZ

Inherits = Modem0

 

このうちの、「Init3 = ATM0」をviエディタなどで削除する。そして、[システム]-[管理]-[ネットワークデバイスの制御]のメニューを開いて、「デバイス ppp0」を選択して「起動」をクリックする。こうして、ようやく、ダイヤルアップで接続できたのであった。

 

久しぶりに、モデムの「ATコマンド」なるものを使用してみた。Windowsでは、デバイスドライバーをWX320Tに付属しているCD-ROMからインストールしたので、特にこのようなつまづきはなかった。他のLinuxディストリビューションではどうか不明だが、この記述がなんらかの参考になれば、と願っている。

 

最後にひとこと、やはり、ダイヤルアップのPHSモデム接続では、速度は遅いと感じる。

 

(2009-11-15)

 

 

上記の記事を書いた後で、Fedora 11を再インストールしました。ほぼ、同じ方法で、ダイヤルアップ接続できたのですが、一点、パッケージwvdialのインストールが必要でした。もし、途中でメッセージがでた場合は、

 

# yum install wvdial

 

で、できるとおもいます。

 

(2009-12-30)