2024年6月30日日曜日

カーリルが書店在庫情報プロジェクトの実証実験を開始

  最近は、本を購入する前に、カーリルで図書館検索を行い、次に、ヤフオクを検索し、次にアマゾンの中古本や新規購入という順で探している。これに、近所の本屋さんも入ると非常にありがたい(実物を手に取って確認もできるので)。アマゾンの影響で、地元の本屋さんも大変だろうから、助かるのでないだろうか。 

 書籍に限らず、地元のお店屋さんの在庫をネット上で見られれば、客にとっても店にとっても、いいのでないかと、以前から考えていましたが。この件について、ChatGPTに実現性を質問してみました。AI技術も使って、登録を簡便化することが鍵になるとは思いますが。回答の抜粋は、以下の通りでした。

「地元商店街の在庫情報をネット上で検索できるシステムは技術的に可能で、地域活性化に貢献します。Deep Learningを使って商品情報を自動登録し、手動で修正できるインターフェースも提供します。リアルタイムで在庫を管理しやすいツールや、ユーザーが簡単に検索できるインターフェースを設計します。商品カテゴリや価格帯などで絞り込める詳細な検索フィルターを用意し、地元商店と連携してシステムを導入します。プロモーション活動やクラウドサービス、モバイルアプリの開発も重要です。コスト面では初期投資や運用コストを考慮し、収益モデルを多角化してカバーします。」

 このようなシステムを導入することで、地元の商店街がより多くの顧客にリーチできるようになり、地域経済の活性化につながる可能性があります。具体的な計画と実行が必要ですが、技術的には十分に実現可能なプロジェクトです。

***********

 ただ、クラウドサービス利用料が気になります。今、クラウドの利用料金が高くて、日本経済に影響与えてるぐらいなので。国営のクラウドサービスのようなものでもあれば、規模の大小にかかわらず気軽に利用できるようになるのでしょうが。

2024年6月29日土曜日

PIC12F675でタイマー製作

 電子ブザーとタッチセンサースイッチで、PICのタイマーを作ってみた。

スイッチを長押しする間に、ブザーの回数をカウント、1カウント当たり10分(誤差あり)

確認のため、すぐにブザーが同じ回数だけ鳴る。そして、指定した時間後にブザーがなるという仕組みにした。

GPIO4を入力にしたが、うまくいかず、GPIO3にした。ただし、MCLREの設定はOFFにする必要があった。TPP223から2SC1815をスイッチング動作(こちらを参照)させた。GPIO3入力ピンをアースにしてスイッチ動作させることにした。内部のプルアップ抵抗がうまく設定できなかったので、10KΩの抵抗を外部にプルアップ用につないだらうまくいった。(*2SC1815を使わず、直接TPP223をPICにつないで、GP3==1を検知するほうが回路が簡潔になるかもしれないと、あとで気づいたが、TRや抵抗も余っているので、この方法で試してみた。)


今回は、小型化するため、ボタン電池を自作の電池フォルダ(鈴メッキ線を2穴を通して電極としたアクリル板2枚ではさんだ)におさめてみた。




2024年6月28日金曜日

chatGPTも計算ミスする?

  数学の書籍の問題(ルベーグ積分)で、「s>0ならば∫(0,1) (1-x^2)^(s-1) λ(dx) <+∞ が成り立つことを、0<x<1なら、(1-x^2)^(s-1)≦max{1,2^(s-1)}(1-x)^(s-1)ということを使って証明できますか」という質問をchatGPTに聞いてみた。
 すぐに、完全な回答は得られず、少しやりとりが必要だった。というのも、0<s<1のときに 1x^21x  としてしまうミスがあったため。(0<x<1の条件なので)
≤ (1-x)^(s-1)となるので、一見、見逃してしまいそうだけれど。

 正しくは、1𝑥^21x から、s-1<0なので、(1-x^2)^(s-1)≤ (1-x)^(s-1) となるということを、ChatGPTに確認したところ、間違いを認めてくれた。
 あらためてChatGPTというのは、どうやって数式能力を獲得しているんだろうと考えてしまった。LLMというのは、こういった間違いを起こしやすいんだろうかと。
 wolfRamという数式処理サイトでも試してみたが、こちらは日本語をちゃんと理解してくれなかった。各種AIツールは、数学に関しては、まだ発展途上かもしれない。

 間違ってくれたほうが、人間の思考力を訓練してくれるという点ではいいのかもしれないけれど。(^^)


歴史から見える今の日本経済って?

 歴史は繰り返すとはよく言われるが、今の日本経済がなぜこうなってきたか考える際に、近代の歴史を見ると、参考になることも多いようだ。

 最近は、Youtubeでわかりやすく解説してくれる動画も多くなって、学生時代には知らなかった事実が分かってきて、興味深い。 (世界はどうなっている Youtube 林千勝・水島総 第28回から抜粋させていただいた。)

・リンカーン: 南北戦争時、ウオール街からの借金をリンカーンが断り 政府紙幣発行 政府は、金利付きお金を借りるべきでない。  それが原因かどうか不明だが。 暗殺

※関連して:フランスの植民地が多いアフリカも、自国通貨発行の制限を受け、貧しい暮らし=PBバランスにより、自国建て国債発行(通貨発行)が制限されてきた日本の状況になんか似ている?

・マネーの民主主義の戦い : 政府紙幣は かなりの発行量だった。回収しようとした。ロスチャイルド傘下の大統領が金本位制にしようとした。 国を分断する激闘 ウイリアムブライアン(現代のトランプ?)は反ロスチャイルド  10倍の選挙資金で、マッキンリー大統領 →金本位制

・グラント将軍: リンカーンの右腕 大統領  日本にも来ている。 列強のアジアへの野心に忠告。 明治天皇に忠言  凡そ一国に於いて避けるべきものは、外債に過ぐるもの無し。 戦争させて、金を貸し、内政干渉。→ 明治政府は外債を忌避 明治30年頃まで

・トーマス・ラモント: 井上準之助は、関東大震災、日本の恐慌で助けを求めた
 ラモントは 高橋是清蔵相 の 積極的経済回復策を 不健全と位置づけ
   緊縮財政・通貨収縮(デフレ)・保護関税撤廃・国内産業への政府支援の縮小
   を求めた。 金本位制への復帰前提とした。

・井上:国際協調のため、金本位制に復帰と述べている。イギリスがすでに、金本位制復帰で デフレなっているにもかかわらず。
 濱口と井上は「金解禁は経済正常化への端緒であり、その後長い苦節を耐えた後に、日本の経済構造が改革される」として断行。 → 現代の状況によく似ている。(そういえば、ん十年前、痛みに耐えて構造改革 のようなフレーズってどっかで聞いたことがあるような) 金流出につなる。 大不況と社会不安を生み出す。

・高橋是清:国際金融資本勢力に対抗する必要を考えていた。日本が将来に亘って 英米に伍する経済力を維持するには、中国との経済提携による東亜経済力の創出のほかに道はない。 高梁是清は正反対の政策をとり デフレ収束(世界にさきがけ不況脱出)

※ こうしてみると、緊縮財政(新自由主義)か積極財政(通貨発行)かという2択のせめぎあいが、昔からあったということがよくわかる。

2024年6月22日土曜日

raspi Mp3プレーヤに機能追加

 Mp3プレーヤにネットラジオの機能等を追加してみた。

使い方
①Sw1(GPIO2)Sw2(GPIO3)Sw3(GPIO4)に以下の機能を持たせた。
Sw1:次のファイルへ Sw2:前のファイルへ Sw3:ポーズ、再開
Sw3+Sw1:次のフォルダへ  Sw3+Sw2:前のフォルダへ
②指定フォルダ内に任意にフォルダを追加して、中にはmp3ファイル以外に拡張子.urlのファイルを入れられるようにした。urlファイルにはネットラジオのURLと曲名(音声合成で読み上げるためのもの)を入れておくと、ネットラジオにもアクセスできるようにしてみた。
(例としてNHK第二の場合.
https://radio-stream.nhk.jp/hls/live/2023501/nhkradiruakr2/master48k.m3u8
nhkだいにほうそう
)
なお、mp3は、フォルダ内での番号を音声合成するようにした。
③最後にアクセスしたファイルとフォルダから、次回、電源入れたときに再開できるようにした。
Mp3Player.py

・ChatGPTも使いながら、半日ほどで完成。ChatGPTを使わなかったら、おそらくもっと時間がかかったかもしれない。一気に、コードを作ると、どこにバグがあるかチェックが大変になるので、もとになるコードに少しずつ機能を追加する方法をとった。
・ChatGPTも、けっこう間違ったコードを出してくるし、音声再生やGPIO等のハード面の癖で理屈通り動かないこともあるので、その都度、修正したり、試行錯誤する必要があった。とはいえ、知識が豊富なので、いろいろな解決方法を提示してくれて非常に助かる。ChatGPTが出てきたことにより、プログラマーの仕事は、コーディング作業というより、アイデアづくりとBugFixがメインになりそうだ。
・SDカードをいちいち入れ替えたりせず、sambaを使って、ファイルを追加したり、機能の変更ができるので、便利に使えそうだ。WIFIドングルが使えるとさらに便利だろうけど、残念ながら古いraspi用のドライバが入手できなくなっていて(サイトが閉鎖?)諦めた。ドライバのソースコードがあればコンパイルという手もありそうだが、ハードルが高い?

※その後、動作しないことがあったので、確認してみると、player_state.jsonファイルが、うまく保存されていないことが原因のようだった。まだ、コードに若干バグがあるかもしれない。このファイルを削除すると、起動できた。

※radikoも再生できるように修正してみた。
sudo apt install jq が必要です。
http://mycc.s33.xrea.com/data/rpi/lis_radiko.tar.gzからスクリプト入手しました。
tar zxvf で解凍し、chmod +xで実行権限与えます。
http://radiko.jp/index/ のURL内のアドレス参照して./lis_radiko.sh YBCなどのようにして再生するようにしてみた。
radikoの再生は、.rdkというファイルをradikoというフォルダの中に用意して、局名を指定するようにしてみた。
※さらに、radikoの場合、曲名を音声合成で話すようにしてみた。(LCD表示も考えたが、節約のため、音声合成としてみた。)
 https://raspida.com/speech-synthesis/を参考に、セットアップ
※jsonファイルが壊れることがあったので、初期化コマンドを追加した。3つのスイッチを同時押しで、呼び出すようにした。
※radikoの再生が、フォルダ変更の際に止まらないので、dummyの局を再生しようとすることで、止めるようにした。力技的だが。
※SW1+SW2で連続再生(MP3のみ)できるようにした。連続再生をやめたいときは、SW1かSW2をOn。


2024年6月21日金曜日

raspi(初代)でMp3再生 備忘録

  raspiでタッチセンサーにより、Mp3を再生することを試してみた。ディスプレイはつないでいない。OS起動時には、Pythonスクリプトが立ち上がっている必要があるが、これがなかなか一筋縄ではいかなかった。OS起動後に、pythonスクリプトを手動で実行はとくに問題なくできて、Mp3の再生もできたが、自動起動は配慮が必要だった。raspiでのMp3再生は自由度は高いと思うが、Dfplayerに比べると、どうしてもCPUに対する負荷が高くsambaやSSHの反応も遅くなりがち。手軽さはDfplayerに軍配があがると思う。

・事前準備として osのupdate upgradeはすましておく。また、pipが使えず、代わりに apt-get install python3-*** の***の部分に必要なモジュール名をしてやるといいようだった。他に、mpg123のインストール、raspi-configによるaudioの設定をはじめとしていろいろ設定が必要だった。

・sudo nano /etc/systemd/system/mp3player.serviceでサービスを作成
[Unit]
Description=Python Script for MP3Player
After=multi-user.target sound.target
[Service]
Type=simple
User=pi
Group=pi
WorkingDirectory=/home/pi/
ExecStartPre=/bin/sleep 20
#20秒後にスタートするようにした。が、Afterで、sound.targetを指定したので、あまり意味ないかもしれない。
ExecStart=/usr/bin/python3 /home/pi/Mp3Player5.py
StandardOutput=inherit
StandardError=inherit
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
作成後は、反映させるために
sudo systemctl daemon-reload
sudo systemctl enable mp3player.service
sudo systemctl start(2回目からrestart) mp3player.service
sudo systemctl status mp3player.serviceで確認

sudo journalctl -u mp3player.service でも確認する

Mp3Player.pyのコードは、次回のブログ投稿で公開。

・pulseが、ログイン前に動作するようにいろいろ設定が必要

/etc/pulse/client.conf
autospawn = yes
daemon-binary = /usr/bin/pulseaudio
extra-arguments = --start

sudo nano /etc/pulse/system.pa
load-module module-native-protocol-unix
load-module module-dbus-protocol

sudo nano /etc/pulse/daemon.conf
daemonize = yes

sudo nano /etc/default/pulseaudio
PULSEAUDIO_SYSTEM_START=1

sudo systemctl enable pulseaudio
sudo systemctl start pulseaudio

sudo nano /etc/asound.conf
pcm.!default {
    type hw
    card 0
}
ctl.!default {
    type hw
    card 0
}

pulseaudio.serviceも作成します
[Unit]
Description=PulseAudio System Server
After=sound.target
[Service]
Type=simple
ExecStart=/usr/bin/pulseaudio --system --disallow-exit --disable-shm --exit-idle-time=-1
Restart=always
[Install]
WantedBy=multi-user.target

sudo systemctl daemon-reload
sudo systemctl enable pulseaudio.service
sudo systemctl start pulseaudio.service

2024年6月19日水曜日

風呂の天井の塗装

  風呂の天井が、カビがとりずらくなり、かなり塗装もとれてきたので、業者に頼んでみたが、断られてしまった。かといって、ユニットバス丸ごと交換も予算的にきつい。アルミ複合合板や専用のパネルも考えたが、コストも手間もかかりそうだし、パネルだとカビを隠すだけで施工が悪いと、見えないところでカビが増えそうで、却下。

 安価な方法として、塗装に挑戦してみた。色を合わせるのに不安があったが、アトムハウスペイント 水性かべ・浴室用塗料(無臭かべ) 200ml をアマゾンに注文して、使ってみたら思ったより、きれいに仕上げることができた。(間違って2個注文してしまった。我が家の風呂は狭いので、1個でも十分余裕だった。)スプレーだと、コスパ・飛び散りの問題もあるかと思い、刷毛塗りにしたがそれほど塗り斑も目立たず問題なかった。ただ、どのぐらい維持できるかは、何とも言えない。カビ防止剤も入っているようなので、しばらくは大丈夫かと思う。様子を見たいと思う。

使用電力取得

  電気料金も値上がりしているので、節約のため使用電力を常に表示できるといいのでないかと思う。電力計もスマートメータに置き換わったため、申請すれば、リアルタイムの使用電力を取得する仕組みも個人で作れるようだ。すでにそういう部品 BP35A1があるが、まだ7000円以上はする。

 あるいは、自分でクランプ(電流センサ)をPICやESP32等につないで自作もできそうだ。センサ等で作るほうが、現段階では安価。BP35A1がもう少し安価になるかどうかしばらく様子見かと思う。

2024年6月18日火曜日

raspi Bでタッチセンサーを使ったプレーヤー

 古いraspi(初代)にタッチセンサーをつないで、プレーヤー製作に挑戦してみた。タッチセンサーは以前格安で購入したものがたくさん余っていたので、今回は3個にしてみた。スピーカーも、2個使いステレオにしてみる。アクリル板にタッチセンサとスピーカを接着剤でつけたものを、スペーサーで基板と合体させています。アンプの部分のみ垂直にアクリル板をつけています。それ以外の側面には、放熱や接続を考え、アクリル板はつけていません。



 アンプはアマゾンで169円で購入したものです。届くまで1か月近くかかったものの、音量は十分です。粗大ごみとして出すとお金がかかるので、分解した炊飯ジャーから取り出したエナメル線(両端の被覆はカッターをたてて削りました)を使って配線しました。(小型部品ばかりなので、細い線のほうがいいようです。)電源はモバイルバッテリーをつなぎ、設定やプログラミングはLAN経由のSSHで行う予定です。FMワイヤレスなどをつなげば、車載用のプレーヤーとしても使えそうです。

PICを使ったエレキー

 PIC12F675を使って、エレキーを作ってみた。

アクト電子(有)さんが、回路図とPIC用のHEXファイルを公開していたので、そのまま使わせていただいた。メモリのほうはなぜか機能しなかったが、エレキーのほうは問題なく動作させることができた。



2024年6月6日木曜日

Googleで、DRY原則を早まらないこと という呼びかけがあったとのこと

  2重のコードを避けるというDRY原則が、これまでコーディングの世界ではいいとされてきましたが、あまり早くこれを適用すると、後々メンテが大変になるので、気を付けるように呼びかけがあったとのこと。(Gigazineの記事より)

 DRY原則はよさそうに見えて、やりすぎるとわかりにくくなるというのは以前から感じてたので、とても納得できます。適度に、重複を残しておくと、それぞれ2か所のコードのいずれかを少し変えたいときなど、とても重宝します。また、間違って修正したときも、片方にバックアップが残っているようなものなので、復旧が楽です。何事も、中庸が大事ということでしょうか。

2024年6月5日水曜日

室内アンテナの改良実験

 実験なので、ありあわせの材料で室内アンテナを3種類ほど作ってみた。固定方法は、レースカーテンの網目に引っ掛ける方式をとった。(窓を開けるには、アンテナを撤去する必要がある。)これまでの室内アンテナは専ら受信専用だったが、なんとか微弱電波でも送信できないかと工夫してみた。

①Eスポのシーズンなので50MHzのダイポール製作:アルミ線の余りがあったので、半波長のベントダイポールにしてみた。バランをつけている。

②144MHzと430MHzのモービルホイップにアルミ線ラジアル追加:あまり出番はないが、短縮型のホイップとM型凹コネクタ2個をねじで組み合わせてモービル用を室内用に変えた。

③7、14、21MHz用のMLA:フェライトコアに銅線を巻き、その中をメインループとなるビニル線2m程度を通しハンガーに沿わせてみた。エアバリコンの容量は、7,14と21MHzで、ギボシで切り替えるようにした。

いずれも、SWRは1.5~2程度に収まっている。室内用なので、FT8等のQRPで使用となるけれど、コンディション見ながらしばらく使ってみる予定(見た目あまりよくないので、継続して使うには美観をどうするかが検討課題)。7MHzのFT8だとPSKモニターによれば、数Wでも国内は届いているよう。まだ、交信はできてないが。

PIC12F675を動かしてみた 備忘録

 PICを使うのはしばらくぶりで、コンパイラやライターの使い方でだいぶ手間取ってしまったが、なんとかLEDの点滅ぐらいはできた。

・IDEはMPLAB X IDE pic12だとコンパイラはXC8 Ver1.45 (最新版だとうまくいかなかった)

・Kit3.5というライターを使った。ディフォルトでは、電圧が供給されないらしく、設定できちんと5V供給する設定が必要だった。

設定は、ほとんど、プロジェクト名を右クリック>プロパティから行うことができた。

Conf[default]のところで、デバイス選択(PIC12F675)、ハードウエア選択(kit3.5)、コンパイラ選択(ver1.45)を行う必要がある。コンパイラは途中から選択できず、プロジェクトの新規作成の段階で選択しないとだめだった。