headAD

2021/08/07

Raspberry Pi OS(64bit) HDMIモニタが無いと起動しない

 


 Raspberry Pi OS (64bit beta test5/27版)をRaspi3Bに、インストール直後からHDMIモニタをつながずにSSH接続し運用しています。

最近(2021/8/5)のapt updateしたところ、HDMIモニタをつながないと起動してくれなくなりました。
HDMIをつないで起動した場合、ローカルモニタでは起動状態を確認出来てSSHでもつながりますが、HDMIをつながずに電源投入するとpingすら通りません。

 アップデートされたライブラリは次の通り

Upgrade:
libkrb5-3:arm64 (1.17-3+deb10u1, 1.17-3+deb10u2),
libraspberrypi-bin:arm64 (2+git20201022~151804+e432bc3-1, 2+git20210719~113532+97bc818-1),
libgssapi-krb5-2:arm64 (1.17-3+deb10u1, 1.17-3+deb10u2),
libraspberrypi-dev:arm64 (2+git20201022~151804+e432bc3-1, 2+git20210719~113532+97bc818-1),
libraspberrypi-doc:arm64 (2+git20200813~095940+f73fca0-1, 2+git20210719~113532+97bc818-1),
linux-libc-dev:arm64 (1:1.20210527-1, 1:1.20210805-1),
libsystemd0:arm64 (241-7~deb10u7, 241-7~deb10u8),
libk5crypto3:arm64 (1.17-3+deb10u1, 1.17-3+deb10u2),
udev:arm64 (241-7~deb10u7, 241-7~deb10u8),
libudev1:arm64 (241-7~deb10u7, 241-7~deb10u8),
raspberrypi-kernel:arm64 (1:1.20210527-1, 1:1.20210805-1),
raspberrypi-bootloader:arm64 (1:1.20210527-1, 1:1.20210805-1),
libkrb5support0:arm64 (1.17-3+deb10u1, 1.17-3+deb10u2),
systemd-sysv:arm64 (241-7~deb10u7, 241-7~deb10u8),
libpam-systemd:arm64 (241-7~deb10u7, 241-7~deb10u8),
systemd:arm64 (241-7~deb10u7, 241-7~deb10u8),
libraspberrypi0:arm64 (2+git20201022~151804+e432bc3-1, 2+git20210719~113532+97bc818-1)

 

 バックアップから直近に戻してみると、HDMIモニタなしでも起動するので、今回のupdateによるものと思われます。
ググってもズバリがないので、config.txtのHDMI関係を当たってみました。

SDメモリのconfig.txtを変更して、再起動します。
結果的に、hdmi_force_hotplugを生かすことで上手く行きました。

 
hdmi_force_hotplug=1   行頭の#コメントを外す

 

 このフラグは、HDMIモニタが接続されていない時の画面がコンポジットになりVNC経由での操作時などに設定変更することが多く記載されていますが、今回の事例のようにSSH接続時にもコメントを外す必要がありそうです。


 

 

2021/06/27

GPSパッチアンテナへ外部アンテナを取付ける

 GPSモジュールのパッチアンテナへ外部アンテナを取付けて受信感度を上げる実験です。
結果、受信レベルがアップし常時12~15個の衛星から受信出来るようになりました。






パッチアンテナタイプのGPSモジュールを屋内で使うと、当然衛星からの電波が遮られて上手く受信できません。
屋内では天頂の衛星どころか、窓が鉄線入りや防犯用の格子がある窓際では全くFIXせず現在地も表示しません。
これでは、GPSモジュールを使ったテストすら出来ません。


これは10年ほど前に作った当時出始めたMT3339チップを搭載したPA6Cモジュールを使ったロガーです。
これはこれで、PA6Cモジュール内にロガーメモリを搭載していたので、モジュールに電源さえ供給すればロガーになる優れもので感度もほどほどに良かったと記憶します。









さて、このままPCに接続し屋内の防犯用格子+鉄線入り窓の部屋ではGPS衛星のシグナルが全く入ってこず、暫くはUSBケーブルを延ばし窓の外にぶら下げたりしていましたが、さほど長く伸ばせません。

秋月電子の外部アンテナが使えないか実験してみました。
この外部アンテナは、アンテナなしのモジュール向けの外部アンテナで、LNA(帯域アンプ)内蔵のためDC2.5V-5Vを送り込む必要があります。



PA6Cモジュールにはパッチアンテナだけで他にアンテナ入力がないので、アンテナで受信した電波を再度パッチアンテナの所で電波を飛ばしてやれば受け取れるという考えです。
ケーブルの終端からDC5Vの供給と数cmのリードを付けてパッチアンテナに向けての結合アンテナにします。
GPSの周波数範囲は1100MHzから1500MHzの間ですので、各パーツをどの程度にすれば良いか探ってみることにします。




スケッチはこんな感じです。
コイルは50nHで、0.29mm径のポリウレタン線を爪楊枝に8ターンほど密に巻いて解けないように半周ほど耐熱テープ(ポリミドテープ)で固定しました。
ポリミドテープは特に意味はありませんが、コイルの解け防止と半田付けの際にセロハンテープだと融けるので。
最初は500nH程度のチップインダクタを付けても受信出来ましたが、コイルの方がレベル的に安定となりました。
直径2mm 8T 空芯コイル





実装は写真のようにしました。パッチアンテナとの結合アンテナ部分は割と適当です。
結合アンテナ部はJの字に曲げていますが適当です。

パッチアンテナの真上に密に結合する必要はありませんでしたけど、すぐ横に置くなど数cm程度なら少しラフなようです。




外部アンテナに内蔵のLNAで増幅されて、再度パッチアンテナに飛ばすため回り込みで発信する可能性が大いにあります。
また、インピーダンスマッチングなどお構いなしなので不要輻射とか考えると周囲にばらまきたくないので金属ケースで囲んでしまいました。
これは、FRISK タブレットのケースです。こんな時のために取っておいたものが役に立ちました。





.end


2021/06/11

ブラインド電動化に挑戦(4)

 前回、ブラインド電動化に挑戦(3) を掲載しました。

 これまでは Arduino nano を使っての実装でした。
ブラインドの開閉をスマホを使ってのWiFiコントールも計画していたので ESP32 wroom32を搭載した互換ボードを使ってみました。

..



 ソフトの開発はArduino IDEで出来ます。巷にESP32とArduinoの開発環境をググると沢山出てきますので参考にしてください。ここでは省略します。

 

このボードをWebサーバー化して、Web上のupボタン、downボタンでブラインドのラダーを昇降させます。
ステッピングモータのコントロールは Arduino の時にやった内容と同じです。

 

まずは、ボード単体の機能チェックをします。基本的には Arduino nano と同じです。
このボードでのビルトインLEDのport#2をチカチカさせてみます(外付けLEDが不要だから)。


 

次に、Webサーバー化してページ上のボタンをクリックすることで、LEDがon/offするかをテストします。

 こちらは Wak-teck(技術で,ワクワク)さんのを参考にしました。
ESP32を使ってスマホからLチカ(LED点滅)する【webserver】


 

 次は、Arduino nano に実装した、ブラインドコントロールのルーチンと合わせて、ボード側に実装したup/downスイッチと、web側のup/downボタンの相互が干渉しないようにルーチンを手直ししました。

なお、本体にもWeb側にもup/downのボタンのみで、再度押すと停止するようにしています。

 ステッピングモータのコントローラーは Arduino の時と違い FastAccelStepper を使いました。
これの方が、Arduino で使えるしステッピングモーターの回転始めと終わりのアクセルワークが素直なように感じました。


 

 WiFi化するにあたり、前回までケースはステッピングモータの固定強度を増すためにアルミケースにしていましたが、このまま組み込むと電波が遮断されてしまうのでプラケースを使うことになりますが、手ごろなものが見つかりません。

暫く、プラケースの物色となりそうです。


WiFi化の手法は「ま~ちゃんの趣味のIT」を参考にさせていただきました。
ESP32による近距離無線通信の実験④ Wi-Fi通信

 

2021/05/15

WiFiが自動接続しなくなったときの解決方法

 レガシーな lenovo G570 を使い続けていますが、ここ最近 Windows update が原因なのか度々電源ON起動時に WiFi 自動接続が出来なくて、接続しなおせば何も問題ないですが

 



いちいち再接続が面倒なんで改善策を探したところ、とても良い記事がありましたのでここへ貼り付けます。

ブログ「模索する俺たち」の記事をそのまま紹介させていただきます。


Windows10の「自動的に接続」してくれないWi-Fi問題の解決策


さらに追加の改善策

スリープ復帰時にWindows10がWi-Fiに自動的につながらない問題の解決策


私の場合はスリープは使っていないので最初のだけで大満足ですよ。




2021/04/24

ブラインド電動化に挑戦(3)

 いよいよ「ブラインド電動化に挑戦(3)」です。

これまでの記事、ブラインド電動化に挑戦(1)ブラインド電動化に挑戦(2) をご覧ください。

これまでの試作で、コントローラーはArduino nano 、モータードライバーはA4988互換モジュールそれにモータ用12V、コントローラー用5Vの電源回路などを、50x60x100(mm)の容積に詰め込んでいきますが、容積の約半分はモーターとベルトの駆動系が占めます。

回路は操作スイッチも含めて、40x50x20(mm)をケースの側面に取付けました。

 


 


 



モジュール間の配線は数本です。
試作の時の入出力端子は、モジュールを密着させたため最短になるよう配置変更しました。これらはArduino nanoの入出力の設定変更で対応できるので便利です。


 





操作スイッチはアップ、ダウンの2個を裏付けして基板を取付けた状態で押せるようにしました。



ソフト側のステッピングモータードライバーはAccelStepperライブラリーを使っています。
アップ・ダウンスイッチとリミットスイッチの検出は単純にループで回していますので、割り込みによるスリープモードを活用した省電力などは考慮していません。

各スイッチはチョイ押しでモーターを100ステップ駆動して半回転することでブラインドの羽を少し動かします。
長押しでは決めた数だけ回転して停止します。
最上部のリミットスイッチはリードスイッチで位置検出して停止させます。

 

 



 


 上の写真はブラインド側の操作プーリーとタイミングベルトの連係状態で、ベルトの端が少し摩耗し白くなっていますがスリップはありません。

 



今後もコントロールの方法でアイデアを思いついたらアップデートやっていきたいと思います。
例えば、室外・室内の照度により羽を少し開閉したり出来そうです。

 

ブラインド電動化に挑戦(4) でWiFiコントロールの話を書きました。

 

2021/04/23

ブラインド電動化に挑戦(2)

 最初の「ブラインド電動化に挑戦(1)」の記事から早2年経ってしまいました。
ブラインドを購入し電動化を思い立ったのが2019年春。その時の記事に添付していませんでしたがその時の動画です。

 




最近、その後どうなりましたか?の叱咤激励のコメントもあって、その後を記事にしてみます。



ブラインドはタチカワ機工のtapioでサイズ、色、材質、巻き上げの方式などオーダーメイドな選択が可能なブラインドです。

 


 


ブラインドのロープを手で引っ張り内部の操作プーリを回してラダーコードを巻き上げる構造となっています。
このロープの代わりにタイミングベルトで駆動し、モータはマイコンで操作しやすいステッピングモーターにしました。(パーツは前回記事を参照してください)



ロープが掛かっていた箇所にタイミングベルトをそのまま置き換えて、操作プーリーを適度なトルクで回せるか。
また、そのためにタイミングベルトとモーターとのテンションをどうするか、この2点がやってみなきゃ解らない点でした。

 


 

 

操作プーリのパーツはロープガイドのピンを抜き回転軸から外します。

 

 


 


操作プーリーからロープを外し、ロープの替わりにタイミングベルトをそのまま装着します。

操作プーリー側にはタイミングベルトが噛み合う歯はありませんが、V形の溝と1周12個の羽がありこれが適度にタイミングベルトに噛み合いスリップすることはありません。

 


上の画像は試作のモーターとタイミングベルトの状態です。このプラケースではベルトのテンションに対してケースが歪んで負けてしまっています。
適度にテンションを掛けベルトを張ってやれば問題ないことが解りました。



試作のままで700日超えて使い続け、懸念された駆動系の問題も無いようで一安心です。

ここまでが、ブラインド側の駆動系の様子です。
ロープの替わりにタイミングベルトを掛けるだけですので、特に改造や手直しをするところはありませんでした。


次回ブラインド電動化に挑戦(3)は、ケースの製作と電動化のための駆動系のモーター側とコントローラー系です。







2021/04/17

室内照明器具のLED素子を交換してみました

 室内照明器具のLED素子を交換してみました。

今回扱うシーリングライトの詳細は
(株)ドウシシャのLEDシーリングライトCS-R12D、56Wタイプです。
ドウシシャのシーリングライトは内部の光がフードで全体にむらなく拡散されるところが気に入っていて4年前に購入したものです。



シーリングライトが若干暗いなと感じてセードを外して見ると、光っていないLED素子がありました。




消えている素子のところに目印を貼っていったところ、なんとLEDが10個もお亡くなりになっていました。
この器具には56個の素子が使われていたので、10/56=18%の損失。光量も18%低下しているか分かりませんが、暗いと感じたはずです。




発光部分の拡散レンズを外すとチップタイプのLED素子がありますが小さすぎで素子の定格が判りません。
器具の消費電力が56WでLED数が56個なので1素子1Wと推定してパーツ探しをします。
Amazonで探すとそれらしいものは見つかりますが日数がかかるようでしたので、翌日到着の次のものを使うようにしました。
50個入りで879円(単価18.6円)数日後に倍に値上がりしていました。





交換した様子。パターンを少し剥がして半田付けの位置を変えています。






すべて交換し、点灯させた様子。
拡散レンズはサイズとレンズの焦点距離が合わないので取付けていません。





フードを取付けて完成です。

 


 


元々、ドウシシャのシーリングランプはフード全体に光が拡散されるようになっているので、どうなるかなと心配しましたが上手く出来ました。
今回はLEDの交換は実費で176円でした。



2021/01/11

Raspberry Pi をnut-Clientとして追加する

 増設したRsapberry Pi に UPSのnut-client として追加します。

停電時のバックアップ電源としてUPSを使い、Raspberry piでUPSの稼働状況をモニタリングしながらバッテリー残量が残り少なくなると、自動的にシャットダウンコマンドを発して安全に電源を落とすようにしています。
こちらの Raspberry Pi にNUTをセットアップする に記載しています。

 



今回、Pi を増設するにあたり、以前の設定内容変更と nut-Client を追加します。

[サーバー側の変更]

/etc/nut/upsd.conf の中に NUTサーバー自身のIPアドレスを LISTEN に追加記載します。(下のIPアドレスは一例)

LISTEN 127.0.0.1 3493
LISTEN 192.168.1.201 3493


/etc/nut/upsd.users のアカウントへ upsmon_remote を追加します。

[admin]
        password = admin123
        actions = SET
        instcmds = ALL
[upsmon_local]
        password  = local123
        upsmon master
[upsmon_remote]
password = local123 upsmon slave


/etc/nut/nut.conf のサーバーの動作 MODE を standalone から netserver へ変更します。

MODE = netserver



[増設したPi側]

次に増設したPi側にnut-Clientをインストールします。
nut-client 本体と付随するlibがインストールされます。インストール途中でエラーが出ますが設定ファイルが未設定のためです。そのまま次へ進みます。

sudo apt update
sudo apt install nut-client



/etc/nut/nut.conf の MODE を netclient にします。

MODE = netclient


/etc/nut/upsmon.conf の MONITOR を 下のように記述します。
IPアドレスはNUTサーバーのアドレス。local123はアカウントに記述したパスワード。

MONITOR cyberpower1@192.168.1.201 1 upsmon_remote local123 slave


Raspberry Pi を再起動して nut-client のステータスを確認し active ならokです。

service nut-client status
nut-monitor.service - Network UPS Tools -
  Active: active (running)


upscコマンドでサーバーとの通信テストにてUPSデータが確認できればokです。

upsc cyberpower1@192.168.1.201

Init SSL without certificate database
battery.charge: 100
battery.charge.low: 10
battery.charge.warning: 20
battery.mfr.date: CPS
battery.runtime: 8400
battery.runtime.low: 300
battery.type: PbAcid
battery.voltage: 13.7
battery.voltage.nominal: 12
device.mfr: CPS
device.model: CPJ500
=以下省略=

2021/01/04

オムロン体温計のアラーム音量を大きくする

オムロン体温計 MC-681 を昨年購入しました。



大きい画面で見やすく約20秒の予測検温ができます。

しかしながら、脇の下などに挿んでおよそ20秒過ぎてもアラームが聞こえてきません。
アラーム音が小さすぎて聞こえないのです。

機種によっては音量調節ができますが、このMC-681は調整が出来ません。
SNSでも「音量が小さい」「聞こえない」「音量調節方法は?」など散見されます。

 

そこで、内部の電子音を外に出るように穴を作る方法で解決しました。


電池ホルダーの少し下のラベルシールをゆっくり剥がします。



見えてきた、ビス2本を外します。





電池ホルダーのビスを外しフタを外します。
※電池は外さなくてもいいです。

さらに、2本のビスを外します。小さいので無くさないように注意しながらやってください。




電池フォルダー側と表示面側とを少し(5mm程度)ずらします。
※細い線でつながっているので5mm以上はずらさないこと





写真の位置に約1.5mmのドリルで穴をあけます。

開けるのは左側の小穴、右側は内部スピーカーの穴です。
※1mm~2.5mm位で手持ちのもので結構です。大きい穴ほど音漏れが良くて音量が大きくなりやすいです。
ただし、水が入りやすくなるので注意してください。



組み立ては、分解の逆順に組み立てればokです。