2025年4月30日水曜日

出入り検知器をPCB化する(その25) インテグレーション2


 アップグレードしたメインの基板はサーボコントローラより前に発注して昨年末に入手済みである。 前バージョンとの大きな違いは配線パターンの向きを表裏逆にした点である。ICのピン間(2.54mm)を通す配線を表側に配置した。昔、レジストを塗布していない基板ではこうしたものだが今はレジストがハンダのブリッジを防いでくれるのでうっかり逆にしていた。プロの仕事を見るとICのピン間には2本の配線を通せるようであるが、私は私はそこまで追い込むつもりは無い。

 

 さらに次のバージョンを発注し入手した。

最新バージョンの変更点はインターフェイスの都合上電源の5V系と3.3V系を分けた事である。 というのは電源を3.3V系で統一出来たら良かったんだけど超音波測距やサーボモータを使う上で(3.3V系では物足りなく)5Vを使いたく、一方ICによっては3.3Vでしか使えないものがあるからである。そのためI2Cレベルコンバータを追加した。

部品点数がだんだん増えてきて、組み立てに約半日を要した。特にSMDのハンダ付けにはいつも苦労する。 上手く繋がっていない場合もあるのでハンダ付け後は必ずテスターで導通具合をチェックする必要がある。あと、レベルコンバータのICには1番ピンを表す刻印が見付からず逆に付けて、取り外すときパターンを壊してしまった(仕方なく1号機は空中配線で凌いだ)。


こういう場合は、ICを文字が読める方向に置いて文字の下側の左端が1番ピンのようだ。

(続く)

 

2025年4月21日月曜日

葬送のフリーレン

 ふとしたきっかけで「葬送のフリーレン」というYouTube動画(ダイジェスト版)を見て、嵌った。漫画やアニメに嵌っていたのは半世紀も前の事で、最近は全く興味を失っていて、「鬼滅の刃」が話題になって少し興味が復活した位だ。

一方、近年ストリートピアノが流行っていて、ハラミちゃんなんかも登録者が千人程度の頃からYouTubeでよく見ていた。そこで弾かれる曲に多くのアニソンがあるようだ。歴史秘話ヒストリアの主題歌を歌ったKalafinaもアニメの主題歌を歌っていて、さらに若手アニソン歌手も活躍していて気に入った曲もあるがアニメ自体にはあまり興味は無かった。

なぜ「葬送」なんだと思いながら見ていると、魔法とかエルフとか出てきて、お決まりの魔法アニメだと思ったが、これが中々面白い。ロード・オブ・ザ・リングスを思い出させる点もあるが登場人物も多く時間も前後して展開の早いダイジェストでは頭がついていけない。しかし話が壮大な事は分かる。多くの登場人物の全てに夫々の個性や背景が割り当てられていてじっくり見ないと理解が出来ないようだ。

壮大と言えば若い頃には「百億の昼と千億の夜」に嵌ったた。漫画雑誌に連載され、その壮大な世界観に圧倒された。連載終了後には原作の文庫本も買って、今もクローゼットのどこかに眠っているはずだ。そう、手塚治虫の「火の鳥」みたいなもんだ。

  来年1月から新シリーズが放映されるらしいので、見る事にしよう。

 

 

2025年4月16日水曜日

出入り検知器をPCB化する(その24)・超音波測距4

 前回まで超音波測距センサーを3個使う3チャネルの測距モジュールを作り、使い勝手を良くするためにトレーニング機能を追加した。さらにトレーニングを起動するためにプッシュボタンを追加した。その成果を踏まえ今回新たに超音波測距センサーを5個まで使える5チャネルのモジュールを作った。というのは超音波センサーの半値幅が30度なので3個でカバーできる範囲は90度にしかならたいため、これをもっと広範囲まで拡張したかったからである。超音波測距センサーを5個使うことで150度までカバーできる。3チャネルモジュールのPICには14ピンの18326を使ったが5チャンネルでは信号線(足の数)が足りないため20ピンの18346を使った。

ソフトは3チャネル用の物を少し改造した。トレーニング時にセンサーの付いていないチャネルを検知してOFFにするようにした。

US Ranging346-2.036.48
Copyright(C) 2025 myname.
*** Start Training.
+++ Trained Max Range(raw) -  A:167 B:500 C:41 D:500 E:119
*** US Sensing parameters:
  Ch-A: ON : 010 - 162
  Ch-B: OFF
  Ch-C: ON : 010 - 036
  Ch-D: OFF
  Ch-E: ON : 010 - 114
  MODE = Range Data with Zero Suppress.
_00,--,34,--,00
_00,--,31,--,00
_00,--,30,--,00
_00,--,29,--,00
_00,--,30,--,00
_00,--,29,--,00
_00,--,29,--,00
_00,--,30,--,00
_00,--,30,--,00
_00,--,33,--,00
_00,--,00,--,00
 

ここで1文字目の'_'は表示モード、またOFFのチャネルの測定結果は'--'で、範囲外のデータは'00'で表示している。このモードでは対象物がある時だけ表示する(反射が無くなると反射ゼロを1回だけ表示)。

表示モードにはこのほか、生データ表示モード、

#00b2:0000:0063:0000:001f
#00b2:0000:0063:0000:0021
#00b2:0000:0063:0000:0022
#00b2:0000:0064:0000:001f

連続データ(1秒に2回程度)表示モード、

>00,--,00,--,00
>00,--,00,--,00
>00,--,31,--,00
>00,--,31,--,00
>00,--,28,--,00

最も近い反射物のデータを表示するモード、

=C13
=C15
=E16
=E13
=E12

等が可能で、目的別に使い分けできる。

このほか記号'!'を送ると(改行不要)直ぐにIDを返すようにしている。

$$$346.2036+-+-+

これはホストからの生存確認を簡単にするためであり、最初の3文字で'!'に対するレスポンス'$$$'を、その後バージョン、超音波センサーの稼働状態を表している。

 今後、対象物の大まかな移動ベクトルを算出する事も考えている。

(続く)

 

 

2025年2月27日木曜日

出入り検知器をPCB化する(その23)・超音波測距3

 インテグレーションを目指して実際に超音波測距センサーを使ってみると、特に室内では反射物が多く場所を少し変えるごとに状況が変わり閾値の設定がものすごく面倒で、容易に置き場所や周囲の状況を変更できない。そこで新たにトレーニング・モードを設けた。立ち上げ時に周囲を何回かスキャンし、各方向のセンサー毎にエコーの最近値からマージン(とりあえず5cm)を引いて閾値(最大探知距離)として自動的に設定する。

*** Start Training.
*** Trained Max Range R:178 F:98 L:50
  US Sensing parameters:
        Mode = Range Data with Zero Suppress.
        Ch-R: ON : 010 - 173
        Ch-F: ON : 010 - 093
        Ch-L: ON : 010 - 045

この効果は絶大で、何処でも簡単に設置でき、トレーニングが終われば人などが前を通過したときちゃんと反応する。 

_10,0,0
_10,20,0
_0,20,0
_0,20,0
_0,23,0
_0,0,21
_0,0,23
_0,0,0
 

エコーが無くなった事を表すため最後には 0,0,0 を出力させている。

さらに状況が変化した時はいつでも再度トレーニングを実行できるようボタンを追加した。

これでいつでも再トレーニングできるようになり、室内でも使い勝手が随分良くなった。

超音波センサーモジュール込みの消費電流を測ってみたが、電源電圧5Vで約7mA、3.3Vで5mAであった。

 (続く)

 

2025年2月25日火曜日

モニタースピーカ(MS101 II)の修理

 小型の外部スピーカが必要になったのでアンプ内蔵のスピーカをヤフオクやメルカリで検索するとヤマハのMS101シリーズの出品が多く、人気商品のようだ。新品の市場価格は\20K前後するようであるが、\2K以下で欲しい。そこで格安の物を探すとジャンク扱いの故障品が時々出品される。目標を定め値下げ交渉+初回限定クーポンを利用して MS101 II を\1Kで入手した。

受け取ってテストすると、電源ランプは点灯するが音は全く出ない。耳を近づけても何にも音がしない。何が死んでるんだ?電源?スピーカ?とYouTubeの修理動画を参考に分解し、スピーカーの抵抗を測ると導通は無く、ボイスコイルが切れているようだ。代わりに手持ちのスピーカを接続すると音はちゃんと出る。回路の方は動いているようだ。

YouTubeで見つけた修理動画もボイスコイルが切れていた。このタイプの持病なんだろうか。アンプの出力にスピーカーが負けているのだろう。音楽のモニターだと目一杯ボリュームを上げて鳴らし続ける事もありそうだしスピーカの負荷は高そうだ。

とりあえずスピーカーの交換が必要だ。 外形的には秋月で売ってる10cmのスピーカがぴったりだった。コーンの形もそっくりだ。だた、オリジナルのスピーカ(JA1061)のインピーダンスが4Ωなのに対し秋月のは8Ωだ。これが音にどういう影響を与えるかは分からない。(加わる電圧が同じなら電流が半分なると)単純に考えて音量が半分(-3dB)になるのか。音のヤマハ製だから4Ωに最適化した設計になっていると思うので8Ωだと特性が変わるかもしれない。秋月で600円のスピーカを入手し交換して修理は終わった。元の MS101 II の音を知らないのでどの程度音が変化したかは分からないが私の目的には全く影響はない。

改めてオークションを覗くと、電源が入る事は確認したが動作は未確認という商品説明の安目の出品が多い。きっとこのタイプの故障をしているのだろうと推測する。

調子に乗って捨て値で出品されていたヤマハのKS10というモニタースピーカ(キーボードスピーカト言うらしい)にも手を出した。

こちらは動作品ということで、音を出してみると確かに音は出るが、少しこもった感じの音で、あまり好きになれない。構造はMS101がバスレフ型なのに対しKS10は密閉型であり、KS10は低音が弱いはずだが逆に高音が伸びてないのが気になる。発売から40年ほど経過しているのでへたりが出ているのかもしれない。中を開けてみると電解コンデンサが10個ほど使われているので交換してみよう。

 


 

2025年2月21日金曜日

AsIO.sysを退治

 最近Win11の更新後に出始めた「ドライバーを読み込めません」という警告。

これをネットで検索し、対応を試みるも要領を得ない。どうもASUSのマザーボードに添付のユーティリティ(Al Suite 3)の一部のファイル(ドライバー)が問題になっているようだ。しかしこのユーティリティをアンインストールしても立ち上げ時の警告は無くならず駄目。しかし害も無さそうなので暫く放っておいた。最近、Win11の月例更新毎にセキュリティが厳しくなっていくような気がする。10年以上前のメールがある日掘り起こされて引っかかった事もある。

こういう警告が出るのはWindows立ち上げ時にAsIO.sysを読み込むような指示がリソースの何処か、あるいはその先に書かれているからである。本日思い立ってリソースエディタでAsIO.sysを検索した。その結果・・・。

つまり、Wn11から嫌われているのは、

C:\Windows\SysWOW64\Drivers\AsIO.sys

というファイルだ。最初はこのファイルが無いのでエラーになったかと思った。その場合はリソースからこの指示を削除する事になる。しかし実際にはこのファイルは存在し、それがブラックリストに載っているためエラーとなったようだ。そこでこのファイルを削除し、その結果警告は出なくなった(ついでに隣にあったAsUpIO.sysも削除した)。

本当は手動でリソースも削除すべきだと思うが下手に弄ってシステムにダメージを与えたくないので、それは別の機会に考えることとした。

ソフトをアンインストールすると対応するリソースも削除されると思っていたが、実際にはリソースは残っているようだ。或いはアンインストールの途中で何らかのエラーが起き、削除されなかったのかもしれない。

このPCのC:ドライブは何世代にも渡ってクローニング&Windowsをアップグレードしているのでリソースにはゴミがたくさん溜まっているはずだ。そのうちWindowsをクリーンインストールしてスッキリさせたい。リソースを綺麗にするサードパーティのツールもあるようだがリソースはシステムの要。これを勝手に弄られたらシステムに致命的な問題を生じさせかねないうえに、セキュリティを弱めたり裏口を開けるなど悪意に満ちたた操作も可能なので、信用してはいけない。

余談だが、以前はリソースエディタはDOS窓(コマンドプロンプト)を立ち上げてコマンドを打ち込むか自分でショートカットを作らないと起動できなかったが、いつの間にかアイコンがスタートメニューのWindowsツールの中に組み入れられれている。 ユーザに開放したのだろうか?

 

2025年2月12日水曜日

出入り検知器をPCB化する(その22) インテグレーション1

 インテグレーションの最初のステップとして、新しいサーボ・コントローラ基板を発注した。これはトルクの大きいサーボに電流を流せるよう部品を見直したのと、基板ごとに違っていた電源電圧を1つの電源から供給できるように統一する為である。おまけで、前に作った2チャンネルのコントローラを3チャネルに増やし、操作方法を少し変更している。

3チャネル化に当たってPIC内のペリフェラルの使い方を少し変更した。

これまでの2チャンネルでは周期20msのパルスを10msずらして発生させていたが、これを5msずらし3チャネル目を挟み込みたい。そのためには100Hzの方形波が必要だがTMR0が方形波を出力できないため、最終段で2分周して方形波を出力出来るNCO1に変更した。但しNCO1からCLCへは直接のルートが無く信号を渡せないため、間にDSMを挟んで渡してる。この方式では4チャネルまで対応できるが残念な事にPIC内には4チャネル迄拡張するためのTMR1&CCPリソースが無い。

基板を発注した時期がたまたま春節の休暇に被ったため予想以上に時間がかかって、通常だと1週間程度で届くはずが2週間ほどかかった。基板が届いて早速組み立てた。

基板上にはACアダプタ用電源コネクタ、分岐用2P電源コネクタ、サーボモータ用コネクタ×3、ホスト接続用コネクタ、電源SW、ロータリーSW、プッシュSW、レバーSW、赤色LED、緑色LED×3等を搭載している。3つの緑色LEDはそのチャネルのサーボが動作中に点灯する。

幾つかのバグ取りを経て5msずれたパルスを出力することが出来た。なおこのパルスを与えるとサーボの消費電流が増えるので、サーボが目標点に到達した約1秒後にパルスを止めるようにしている。

このコントローラはリモート制御で使う事が前提であるが、ローカルテストのため基板上のスイッチでも操作できる。基板上のChSelスイッチを押す毎にCh1、Ch2、Ch3、ChAll、ChOffと移行する。このとき選択されたチャネルのLEDが点灯しロータリースイッチで回転速度を、レバースイッチで動きを制御できる。サーボが動作中にはLEDは点滅する。ChOff、或いは無操作で数秒経過するとリモート状態に戻る。ローカルテストで設定した回転速度はリモート制御には反映されない。別の言い方をすれば、リモート制御の回転速度はローカルテスト後も維持される。

(続く)