車バッテリーのトリクル充電を考える

最近の車はバッテリー上がりを防ぐためにバッテリー端子を外すと言うのは余程の時で、なぜならECUの学習結果やナビの設定諸々が全て消えてしまうので、覚悟がないと簡単にカットオフできないので頻繁にやることではありません

乗らない時に常時100V電源から充電制御とかもありますが、設置(接続)の手間などを考えると現実的じゃない、ならば自然エネルギーでソーラーバッテリー(以下ソーラーと略記)を使った、充電制御というのがメンテフリーの解になりますが、方法は大きく二種類に大別できて、

    1. 省電力(5Watts以下)のソーラーをバッテリーに直結する
    メリットは制御簡単(逆流防止のダイオード入れるぐらい、大概のソーラーでは対応済みですが)、ただし夏場の太陽光強い時には過充電リスクはある
    2. それ以上の出力のソーラーとパワコンを使う
    メリットは① 過充電の完全防止でき、場合によってはバッテリーの充電にも使える、② 発電量に余裕あるので、日照時間短くても機能を発揮できる、デメリットは① パワコンの暗電流が小さいものを使わないと夜間などはバッテリーからの電力を消費する、目安は2mA程度でしょう、元々の車の暗電流は電装品の使用状況によりますが10mA以上はあるらしいから、② パワコンの動作温度保証範囲は概ね上限60℃ぐらいだから設置場所は直射日光の当たらない場所限定
    で検討の結果、方法2で行くことにしました

 

ソーラーは車の屋根にあるルーフキャリアに設置して車内に引き込み

    部品は手配したので、簡易に組み立てて思惑通り動作するかどうかを検証後に設置の手順
      admin

      qwen2.5から3.0,ついでにollamaからLMStudioに変更

      qwen3.0の方がモデルサイズが小さくとも性能は2.5の大きいモデルと同等との情報あったので3.0系を使ってみようと思ったけど、ollamaでそのまま使える3.0系のモデルがなかったから、LMStudioをインストしてみた

      デフォルトではOpenAIの大きめのモデルをロードするようになっているけど、それはSSD領域もったいないので削除

      メニュー右上のダウンロードボタンから、画像に示すメニューが開けるから、Open Downloads Directoryをクリックして不要なモデルを削除すれば良い

      今ダウンロードしたのは4Bと8Bモデル、

      4Bでもそこそこの対応力があって速度も速いから、こちらを標準で使ってみようと思う、uvはC言語で書かれてると言ってくるけどもね、それでも初期のLLMモデルに比べればかなり優秀ではある

      Roo codeからollmaは設定できるけど、LMStudioは見えない、起動はしているはずなのだけど起動してない状態だね

      ollamaを使うと、ClineもそうだけどLLMとして想定しているのはClaudeなので回答の出方はイマイチ、今の所の利用範囲でクラウドの利用料払うつもりは無いね

      P.S. 2025/8/20

      Qwen3-8Bだとuvについて正しく回答する、その後4Bに切り替えても同様だから、一見結果を共有しているように見える、ただし8Bだとメモリ管理(メモリ32GBでもコンテナも立ち上げてるから多分厳しい)でyellowマークが出てしまうけども

       

       

      admin

       

      A.Iアシストでコーディング

      最近はコード自体はほぼ生成A.Iで作成されることが多いと思うけど、ローカルでLLM動かして使えるかどうかやってみた

      ・参考サイト

      https://zenn.dev/mkj/articles/cf8536923d9cd7#discuss

      ・環境:M4 MacBook Pro 32GBメモリ、ollama、VScode + Cline

      ・モデルの選択(Alibabaのモデルが限定されらリソースではコーディング目的には一番向いているらしいから)

      % ollama pull qwen2.5-coder:7b-instruct

      コンソールから動かしてみた感じではなかなかいけてる感じ、Rustは知らないと言われるけどC言語、Python、Golangは扱える

      ・設定:ollamaを選択、

      ・動かしてみたとこ、

      ソースファイルが見つからないと言われるから設定が必要かもしれない

      ・リソース消費状況

      メモリもかなりキツいし、途中でファンも回り出すから、高負荷ではあるからAirでは32GBでもきついかもしれない

      ローカルLLMでどこまで使い物になるかやってみる

      P.S.

      結構タイムアウトするケースが多くて、いまいちollamaとの相性がよくなさそうに思える、コンソールからollama経由でモデル使う方が遥かに安定している

       

      admin

      uvめちゃ高速

      Pythonのパッケージ管理ツールですが、Rustで書かれているとのことで驚嘆するぐらい高速(10倍から100倍と言われてます)に動作、もはやpipやvenvは不要と言っても良いと思うよ

      導入については、

      https://note.com/daisukeminagawa/n/nd1e39a10873a

      にわかりやすく書かれているので、それに沿ってMacBook M4 Proでやってみた

      インストール
      % curl -LsSf https://astral.sh/uv/install.sh | sh
      
      パスを通す
      source $HOME/.local/bin/env
      
      確認(日付見ると、かなりアクティブぽい)
      % uv --version
      uv 0.8.9 (68c0bf8a2 2025-08-11)
      
      uv環境のプロジェクトディレクトリ作成して移動
      % mkdir uv_python
      
      .venvという名前の仮想環境を作成
       % uv venv
      Using CPython 3.13.3 interpreter at: /opt/homebrew/opt/python@3.13/bin/python3.13
      Creating virtual environment at: .venv
      Activate with:  % uv venv
      Using CPython 3.13.3 interpreter at: /opt/homebrew/opt/python@3.13/bin/python3.13
      Creating virtual environment at: .venv
      Activate with: source .venv/bin/activate
      
      環境のアクティベート
      % source .venv/bin/activate
      
      uv pipでパッケージインストール
      % uv pip install requests
      Resolved 5 packages in 892ms
      Prepared 5 packages in 38ms
      Installed 5 packages in 4ms
       + certifi==2025.8.3
       + charset-normalizer==3.4.3
       + idna==3.10
       + requests==2.32.4
       + urllib3==2.5.0
      
      ~~~全てのコマンドめちゃ早いよ、~~~
      
      Python実行(サンプルのGoogle.comにアクセスするだけのコード)
      % python test.py
      Hello from uv-powered project!
      Successfully fetched Google. Status code: 200
      
      仮想環境から抜ける
      % deactivate
      
      Activateしなくとも直接実行できるrunコマンドがある
      % uv run python test.py
      Hello from uv-powered project!
      Successfully fetched Google. Status code: 200

      condaPython以外のライブラリが必要なケースで使って、高速開発環境構築にはuvかな、ともかく高速でストレスなく実行できます

      コマンドの詳細は、

      https://zenn.dev/tabayashi/articles/52389e0d6c353a

      に詳しい

       

      admin

      玄関のスマートロックをタンデム運用にした

      玄関ドアが物理的に経たってきたので、リフォーム実施、交換するドアもスマートロック対応

      しかし生体認証が実質ないので、セサミをそのまま流用して並行運用することにした

      YKKとsesameでの結合度合いはサムターンキーンの状態だけなので、お互いのスマートロックシステムから見ると、手操作とほぼ変わらないので独立して動作可能できるということになります

       

      admin

       

       

      デジポテをi2cインターフェースからSPIに変更

      i2cのMCP4018はレスポンスはまともに帰ってきても機能しなかった(レスポンスは返るから実装の問題ではないと思う)から、DIP品のMCP4131に変えてみた

      MCP4131はデータ線が入出力共通なので、ドライバー側には抵抗入れてMCP4131が出力モードの時にレベルを確保できるようにしないといけない、その割には戻り値は使ってないですが

      三端子ともオープンなので、使い方の自由度はMCP4018に比べると高い、これだとちゃんと書き込み値に応じて抵抗値も変化(当たり前、それが普通)

      SPI版のデジポテ制御に変えたソースコードは、

      https://github.com/chateight/dsp/blob/main/dsp.c

      になります

       

      admin

      セサミの不具合(その1)

      セサミは快適に使っていましたが、その分もう物理キー使うことなくなってしまった、スマホのPASMOタッチが急に使えなくなりました

      まあ先進的な機能取り込んでるメーカーではありがちなことですが

      ① 指紋認証は使えているからBLEが通じなくなっているわけではない

      ② スマホの再起動ではダメ、アプリからPASMO削除しても登録ができない

      ③ ネットで類似の事例見つけて、セサミタッチのファームの再インスト(再インスト前も最新版表示になってはいた)を行ったら、PASMOが登録できて認識もするようになった

      スマートキーというのは物理キー含めて代替え手段を複数用意しておかないとなかなか安心して使うのは難しいもの

       

      admin

      BuhoCleanerを使ってみた

      SSDサイズというのは時間経過とともに段々圧迫されていきますが、SSDの領域(ゴミ)クリーナーとしてBuhoCleanerの評価が良さそうなので使ってみました

      無償版は削除できるのが3GBまでなので途中で削除止まったので、有償版購入して実行してみた、永久ライセンスで2,980円也、永久といってもどこかで使用不能にはなるのですが、Macのデスク容量512GBが現在購入価格で3万円相当だから、およそ50GB削除できれば見合う計算か、まあそれ以外に動作が軽くなる可能性もあるわけだし

      スキャンでジャンク22GBと出たので、そのまま削除実行

      実行結果で、

      20GBぐらいは増加してるようだ、まあ定期的なゴミ取りツールとして見れば妥当なところか、

      メニューには他の機能もあるけど、Mac OSの基本機能との差は何なのかな?

      追記:常駐しててこんな画面がワンクリックで現れるから、アクティビティモニターより使いやすいかも

       

      admin

      HUB75 LEDにプレゼンターの名前表示

      Apache + PHP配下で動いているプレゼン管理アプリにHUB75 LEDアレイつないでプレゼンターの名前を表示するようにした

      全体の構成は以下の図の通りで、発表管理アプリは他人が作ったものなのでソースコードの公開は無し、発表者リストのトップの名前をHUB75 LEDに表示するようにしてみた

      <発表管理画面>

      このトップにあるゲスト20を@以下はjsで削除(最大全角4文字、半角8文字までの表示制限)してgolangサーバーにfetch、golangサーバーにはjs用の口を作って、CORS対応にしています

      jsで発表者の並べ替え対応しているので、並べ替えが発生するとeventListenerを起動してgolangサーバーにfetchするようになってます

      https://github.com/chateight/golang/tree/master/image

      golangサーバー側のソースはこんな感じ、

       

      jsで追加部分のコードを抜き出すとこんな処理、ブラウザのjsキャッシュが残っていて結構ハマりました

      // notify top presenter name
      //
      function notifyTopPresenter() {
        const firstItem = document.querySelector("#presentersList .list-item");
        if (firstItem) {
          const name = firstItem.querySelector(".presenter-name")?.textContent || "";
          const event = new CustomEvent("topPresenterChanged", {
            detail: { name: name.trim() },
          });
          document.dispatchEvent(event);
        }
      }
      
      // listener for topPresenterChanged event
      //
      document.addEventListener("topPresenterChanged", function (e) {
        let name = e.detail.name || "";
        name = name.trim().replace(/^["“”'‘’]+|["“”'‘’]+$/g, "");
        name = name.split("@")[0];
      
        const formData = new FormData();
        formData.append("text", name);
        console.log("先頭の発表者:", name);
        fetch("http://rasp-b.local:8000/uploadText_js", {
          method: "POST",
          //headers: { "Content-Type": "application/json" },
          body: formData
        })
        .then(res => res.text())
        .then(msg => console.log("サーバー応答:", msg))
        .catch(err => console.error("通信エラー:", err));
      });

      しばらく運用して改良点は反映の予定

       

      admin

      geminiのAPI経由の使用可能モデル変更されてるね

      https://isehara-3lv.sakura.ne.jp/blog/2025/04/28/ラズパイ5のchatbot機能を統合/

      4月にラズパイ5で作ったchatbot久々に動かそうとしたら動かない、より正確にはDifyからのレスポンスが返らない(回答が空か短すぎると言われる)、さらに調べるとgeminiへのqueryがエラーになっている

      5月あたりにgoogleの対応が変わっていて、古いモデル名は使えなくなっているらしい、以下のFlash 001用のようなモデルは終了で末尾がlatestのモデルを選択したら動いた

      変更後、

      確認はcurlで、

      curl -X POST 'http://localhost/v1/chat-messages' \
      --header 'Authorization: Bearer app-***** your api key' \
      --header 'Content-Type: application/json' \
      --data-raw '{
          "inputs": {},
          "query": "What are the specs of the iPhone 13 Pro Max?",
          "response_mode": "streaming",
          "conversation_id": "",
          "user": "abc-123",
          "files": [
            {
              "type": "image",
              "transfer_method": "remote_url",
              "url": "https://cloud.dify.ai/logo/logo-site.png"
            }
          ]
      }'

      但し、最近無償版は混雑しているようで、割と頻繁にbusyで帰ってくるから、使いたいなら有償にしなさいよと言ってるようだ、それならばローカルLLMの選択もありだよね

       

      admin