こんなん作った – テレビの自動チャンネルリモコン #その2

前回の投稿で見てもいないテレビの前で一日中座っている実家の様子を紹介しました。今でも相変わらずで 先日はやったことのない囲碁の対局をずっと流していた。

今まで: 国会中継? / 戦隊XXレンジャー? / 囲碁の対局戦??

そこで今回はテレビの自動チャンネルリモコンとタブレットを連動させ、設定した時間に独自のコンテンツをテレビに自動放映させてみた。午前10時からは家族写真のスライドショー、午後3時からは100歳体操という内容で自動的にチャンネルを切り換え放映させてみた。家族写真は食い入るように見てあのとき撮った写真であそこはどうのこうのと談議が始まり、体操の時間では少しではあるけど一緒に体を動かす様子が伺われ、まずまずの成果だったのではと思われた。

今回: 午前10時 家族写真のスライドショー、午後3時 100歳体操

システム構成と設定: ラズパイpicoによるチャンネル切り換えリモコンは現在時刻を同期させるためタブレットからThonnyにて起動し開始時間にテレビチャンネルの入力切替赤外線データを終了時間には地デジ信号データを送信するようにした。テレビとWindowsタブレットはHDMIで接続し、タブレットのタスクスケジューラで家族写真のスライドショーと、YouTubeから拾った100歳体操の開始時間・終了時間を設定した。家族写真のスライドショーはClipchampにて写真をつなげ、100歳体操はYouTubeから拾ってきた。

こんなん作った – ラズパイPico 電池での連続稼働

小型のラズパイPicoをIoTデバイスなどとして使う用途は多々ありますが、その際電池を用いていかに長時間の連続稼働ができるかが利便性への課題となっています。

テスト1:ニッケル水素電池を電源として、何時間連続稼働できるかテストしてみた。 結果は340時間、約2週間となりました。 使用したのはニッケル水素単3電池 Panasonic Ni-MH 2000mAh x3で、ラズパイPicoは10秒間の通常処理deepsleepにて1時間休止を繰り返すこととした。

テスト2:上記テスト1の条件では実用性が乏しいため、ソーラーパネルを追加して継続時間を延ばし、さらには何かの信号が入ったときdeepsleep状態から強制復帰させ信号を処理できるようにした。ソーラーパネルにはBigBlue社SolarPawa10 5V 10Wを用い、充電制御モジュールTP4056を介することでニッケル水素電池を適正に充電できるようにした。結果はソーラーパネルの充電容量は冬の短い日照時間でも充分あり、ほぼ無制限で継続稼働させることができた。

信号の変化をトリガーとしてPicoを休止状態から強制復帰させるため簡易的なワンショットを作った。今回は信号として人感センサSR501および雨滴センサを使用し、いずれかの信号を検知したときPicoのrun端子にリセット信号を送り強制復帰させた。ワンショットはTr1のベースをCRフィルタを通した時間遅れのTr2でたたき、復帰後はGPIO出力でTr2をコントロールし次回のsleepまで人感センサでリセットしないようにした。注)ラズパイPico W(2W)にて省電力化を計る場合はWiFiモジュールもdisableにする。

人感センサ検出時の波形は下図オシロのようになり、上段人感センサの信号(A)がHiになってからCRフィルタでの遅れ0.7sec後にrun端子へのリセット信号(B)がLoからHiとなりPicoを強制復帰させた。

GPIO21とGPIO22でリセット信号をコントロールするための必要部分を抜き出したスケッチは次の通りです。

今回のテストでの接続図は下図の通り。

こんなん作った – テレビチャンネルの自動切り換えリモコン

実家の高齢な母はテレビを外まで聞こえるような大音量で一日中つけっぱなし。国会中継や戦隊ものなど見ているとは思えず、何かが流れていればそれでいいのかなって感じでテレビの前に座って固まっています。

そこで、テレビ体操の番組に自動的に切り換え、その間少しだけでも体を動かしてくれれば健康のためにも気分転換にもいいかなと、テレビのチャンネルを自動で切り換えるリモコンを作ってみました。テレビのチャンネル信号の送信にはTKJ製作所さん(www.switch-science.com/search?q=tkj) の学習リモコンを使わせて頂き、それに現在時刻情報を組み込んで、指定の時間に特定のチャンネルに切り換わるようにしました。このリモコンであれば複雑な操作もシーケンシャルに覚えさせることができるかと、スマホの写真アルバムなどをテレビのHDMI経由でテレビに簡単に写すことなどもやってみようと思います。また、部屋の室内温度を検知し、クーラーのON/OFFするなど幅広い用途にも使えそうです。

次図は今回作成した自動切り換えリモコンの写真です。WiFi経由で現在時間を取得するため、ラズパイPicoW (Pico2W)を使いました。数週間に一度WiFiにつながる環境であればそれほど時間はずれなそうです。電源は電池ではなくPicoのUISBから供給するためリモコン基板のGPIO26につながるパターンは切断しました。タクトスイッチは構造上部品面ではなく半田面に取り付け、100均にて購入したBoxに納めました。サイズは10 x 6 x 3.5cmです。

今のところ切り換え時間の指定やチャンネルの選択はPythonで直接プログラミングに書き込んであげないといけないのですが追々もっと使い易くなるように改良していくつもりです。

こんなん作った – 誰かきた 不審者アラーム

知らない人が家の周りをウロウロいやですね。何かの犯罪につながるかもしれません。防犯対策としてもう一歩踏み込んだものがあってもいいかと思い作ってみました。

裏庭などに設置した“誰かきた”にて “人物を検出後、一定の時間内に顔の認証が通らない、あるいは電子キーの認証ができない場合アラームを発する”というものです。

必要なもの: 5V5A Type C電源、各種アラーム機器

サイズ 縦60mm 横125mm 高さ30mm

DSC_0250

準備すること: 認証する人(複数人可)の顔画像は事前登録が必要です。 電子キーは手持ちのブルートゥース機器(複数可)を用います。ただしスマホはペアリング過程が検出しやすいのですが使い勝手は良くなく、スマホカメラ用のリモートシャッターが便利です

こんなん作った – アシスト マーク

最近“ヘルプマーク”をぶら下げて歩く人を見かけるようになりました。これは“外見からわからない援助や配慮を必要としている方々が、周囲の方に配慮を必要としていることを知らせることで、援助を得やすくなるよう” 東京都から始まった活動です。

それではと私は“アシストマーク”なるものを作ってみました。“周囲の方へ、困った方々へ手を差し伸べる準備ができていることを知らせ、援助をしやすくする”ことを目的としています。私も、重そうな荷物を抱えて階段の手前で佇んでいる方に、手を貸そうと声を掛けましたが不審者と疑うるような顔つきで見られ断れたことなどもありました。“アシストマーク”を付けていれば信頼してくれたのではないかとも思われます。

あと念のため裏面に、介護の免許保有者であることを証明する認可番号“大阪第22-14-196-XXXXXX号”も記載するようにしました。医療や介護従事者あるいは消防士の方々など、ある程度基準を設けると受け入られやすいかもしれません。

これらで援助を必要とする方々と援助を提供可能な方々の輪が広がり、より住みやすい街づくりがすすんでいくことを望みます。もちろん、こういう意思表示がなくてももっとお互いに助け合える社会になればそれに越したことはないのですが。

こんなん作った – コンロの見守りくん

こっ焦げくさ~、またコンロに火を付けたまま寝落ちされた。もういくつフライパンを真っ黒にしたことだろう。お湯をわかすだけなら電気ポットが安心と買ってあげても、次に実家へいったときには綺麗に片付けられている。昔から使っているコンロが使いやすくて新しいものは受け付けないようだ。

(イラストby ChatGPT)

それでも火事とかにはならないようできるだけのことはしたいので、コンロを見守りするものを作ってみた。コンロの火が10分間付いたままだとテレビがある別室などに設置したブザーが“ビービー”鳴るようにした。

コンロと炎検出センサ

別室のブザー発信機: コンロ着火で黄LEDが点灯 / 10分継続で赤LEDとブザーが鳴る

DSC_0236

部品構成

こんなん作った、認知症にもやさしい日めくりカレンダー

実家に帰ると高齢の母は日にちの感覚が薄く、今日は何日なのかと一日10回は聞かれる。あるいは日にちを勘違いして朝からデイサービスの準備を始ることもしばしば。ネットを見てみると同様の悩みを抱えた人が多くいるようでもう使わなくなったスマホを活用して日めくりカレンダーができないか作ってみた。

スマホの操作不要で特別なアプリのインストールをしなくても常時今日の日付けを表示、ネットに接続していなくても日付けを更新するようにした。
定期的な曜日の予定を表示可能(デイサービス・可燃ゴミ出しなど)。
使わなくなった古いスマホを有効活用する。

日付け表示 (手もとにあったアンドロイド端末を用いた場合)
アプリをインストールするのではなく、“日めくり.html”を既存のChromeなどのブラウザで表示できるようにする。
日付けはスマホ内部のデータをScriptで読み込むことでネットに接続しなくても動作するようにする。
スマホの内のローカルファイル、“日めくり.html”のショートカットをホーム画面に置きたかったけど簡単でなさそうなので、代わりにカレンダーフォルダを作成してそこからアクセスするようにした。
スクリーンサイズ980×1860に合うようにフォントサイズを調整したけど、スマホにより再調整は必要。

常時日付けを表示するには、スクリーンセーバをOFFにし、画面表示を消灯しない設定にする必要がある。開発者オプションはシステムのビルド番号を数回クリックすることで選択できるようになる。

特定曜日の予定表示
“日めくり.html”をテキストエディタで編集、Weekdaysの配列に予定を下記のように追加する。追加文字数は6文字以下とすればスクロールしなくてもいい。
予定なし const weekdays = [“日”, “月”, “火”, “水”, “木”, “金”, “土”];
予定あり const weekdays = [“日”, “月”, “火”, “水”, “木 デイサービス”, “金”, “土”];

スマホの充電
スマホの充電は適度にON/OFFしてあげることが望ましいけど、それが難しい場合 お勧めはできないけど過充電に気を付けてながら常に充電ケーブルをつなげておくこととなる。ただしフル充電時の充電量を80~90%にし、充電器は過充電保護機能を備えたものを使う。



日めくり.html

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>日付表示</title>
    <style>
        .container {
            text-align: center;
            font-family: Arial, sans-serif;
        }
        .monh {
            text-align: left;
            font-size: 60px;
            font-weight: bold;
        }
        .date {
            font-size: 260px;
            font-weight: bold;
        }
        .day {
            text-align: left;
            font-size: 80px;
            font-weight: bold;
        }
    </style>
</head>
<body>
    <div class="container">
        <div id="monh" class="monh"></div>
        <div id="date" class="date"></div>
        <div id="day" class="day"></div>
    </div>

    <script>
        function updateDate() {
            const now = new Date();
            const year = now.getFullYear();
            const month = now.getMonth() + 1; 
            const day = now.getDate();
            const weekdays = ["日", "月", "火", "水", "木", "金", "土"];
            const weekday = weekdays[now.getDay()];
            const hour = now.getHours();
            <!-- const minu = now.getMinutes(); -->
            const minu = String(now.getMinutes()).padStart(2,"0");

            document.getElementById("monh").textContent = `${month}月/ ${hour}:${minu}`;
	    <!-- document.getElementById("monh").textContent = ` ${minu}分`; -->
            document.getElementById("date").textContent = `${day}`;
            document.getElementById("day").textContent = weekday;
        }

        updateDate();
        <!-- Interval 720000=12min, 7200000=120min -->
        setInterval(updateDate, 180000);
    </script>
</body>
</html>

コロナ禍の飲食店 感染対策は閉めるだけ?

コロナのニュース、新規感染者の数だけの報道はもう要らない。それよりどうやって感染したのか?飲食店の感染対策は店を閉めるだけなのか?一技術者として素朴な発想、飛沫パーティクルは拡散する前に吸い取ってしまえばいいのに。Super Computer「富岳」は使わせて貰えないので自作してみた、なんかいけそう(赤印が吸引ポート)。

オリンピックは開催して欲しいけど

200ヵ国の異なる言語と文化・生活様式を持った人々が医療現場に押しかけるとどう対処するのだろう。スペイン語で呼吸が苦しいとか、イスラム文化圏の人に適する病院食がないとか。さらに最近改正される予定の感染症法は外国人にどう対応するか法整備がされているとも思えない、、、オリンピック開催するつもりならそれらの準備は検討しているのだろうか。

中国から帰国して#2

コロナの対応なんか日本と全然違うなあ。コロナのための隔離はまるで牢獄。隔離期間の2週間は一歩たりともホテルの部屋から出れない。中国における海外からの渡航者の隔離には、疑わしきを決して市中に解き放つなという意向が伺われる。

中国で2週間の隔離から解放された後、最初に出た言葉は“しゃばの空気はうめえー”でした。注:最近(1月中旬以降)は、中国各地で隔離期間が厳格化され3週間以上に引き伸ばされているようです。