SVX日記
2005-01-31(Mon) アマチュアUSB工作に光明ッ!!
思わず「出たッ!!」と叫んでしまったではないか。なんと、秋月でFT232BMの取り扱い開始である。この石はRS-232Cプロトコルの信号をUSBに変換してくれるICで、つまり今までシリアルポートへの接続を想定していた機器をUSBに接続できるようになるというブツである。
実はこの石、先月のトラ技の特集でメインに据えて紹介されていた石である。先月の日記でオイラは「秋月が石を扱っていない」「石のピン間が0.5mm」「値段が高い」という3重苦について指摘し「秋月でDIPパッケージを300円で扱えば……」と個人的な希望を書いたが、今回は「秋月でQFT32ピンパッケージを600円で扱い始めた」というコトになったワケだ。確かにQFT32ピンパッケージは端子間0.8mm(上記0.5mmは間違い)とかなり厳しいし、値段も600円と安くはないが、十分に手を出せる状況になったことには違いない。いやー、ホント、秋月バンザイである。先月のトラ技も買っといてよかったぁ。
だからというワケではないが、今月号のトラ技も買ってしまった。特集はカメラなどののCMOS/CCDセンサの原理について。あまり実用的な特集ではないが、知っておいてソンはあるまい。中には自分でデジカメを作るという恐ろしいコトしている記事もある。確かにスゲェがさすがにそれは意味ウスいような……。ついでに英語リスニング入門の教本も購入するが、最近あまりちゃんと聴いていない……ちょっと程度が高すぎるんだよな。がんばって聴かなアカンのですけども。
それから例のosziFOX用のアプリ「apenscope」が一応の完成をみたのである。完成といっても手抜きな部分や未実装な部分がタンマリなのであるが、例のosziFOX本体のモードボタンを押した際のダミーデータラッシュ時に取りこぼしてフリーズする症状はクリアし、オイラの環境ではかなり安定して使えている。そうなるとオフィシャルアプリの不安定さは一体ドコからきているのか気になるが……? ま、なんにせよ例の232メモリを進捗したいので、コッチはしばらく放置。使い方は……急ぐ人はソース読むべし(←最悪や……)。そのうち必要に応じてチョコチョコと直すからさ。うぉりゃぁ。
2008-01-31(Thu) 500系をチョイス
オイラが語るまでもないが、500系はSVXと同じく、奇跡のデザインだと思う。悪く言えば「フザけてるのかッ!! マジメにやれッ!!」という感じ。よくぞここまでデザインで遊んだモノだと感心する。一説によれば、500系のノーズは機能的にはあそこまで長い必要はないそうだ。じゃ、なんでそんなに長いのか? そのまんま……
以前、列車を待つホームに500系がスベり込んできた時、周囲の人から「おぉ……」と抑えぎみながら、歓声が上がっていたのが忘れられない。今日は、写真撮るぜ。早めに弁当を買って、カメラをスタンバイ。あ、そういえば、メモリーカードの残容量が心細かったよう……
2015-01-31(Sat) ラジコン用バッテリ充放電器完成
と、今回、充電回路は作らなかったので、単に覚え書きとして記録しておくが、充電とは単に一定の電流を充電池に流し続けること、らしい。流す電流量は1C~0.1Cで制御するが、1Cとは、充電池の最大容量を1時間で使い切る/満充電にする電流量のこと。すなわち容量2000mAhの充電池における1Cは2000mAであり、0.1Cは200mAである。前者はいわゆる急速充電という部類になる。
0.1C充電なら理論的には10時間で満充電になるのだが、実際にはかなりのロスがあり、15~16時間かかってやっと満充電になる。今回、タミヤ純正の充電器の充電方法が、この「時間が経ったら取り外してね」という原始的なものだったことには仰天したが、実は充電完了の判定は意外と難しく、この方法が順当だったりするらしい。電圧で充電終了を判定しようとすると室温の影響が大きかったり、電池の温度を検知しなければならなかったり、ニッカドの場合は何故か電圧が下がるという特有の現象を捉えたり、なにかとややこしいのだ。
一方で、放電にもノウハウがある。ニッカドの場合、割と雑なことをやっても平気らしいが、それでも過放電はあまりよろしくはなく、1セルあたり1V、6セルなら6Vあたりで放電を止めないと電池にダメージがあるらしい。しかし、この放電完了電圧も放電電流によって多少上下させるのが適切で、割と急速に放電をする場合は0.9Vとか低めの電圧、ゆっくり放電する場合は1Vとか高めの電圧を目標に設定するのがよいらしい。実際これは、放電の停止直後、自然に電圧が戻るあたりの挙動から、感覚的にわからんでもないが。
で、今回の工作に戻ると、充電中の電圧をモニタする機能をつけたので電圧の変化をグラフ化してみたところ、規定の充電時間の最後くらいに電圧が下がる現象が見られた。なるほど、これが上述したニッカド特有の現象で、いわゆる-△V検出、とか、デルタピークカットとかいう機能を持つ充電器は、これを見てるわけなのだな。
おまけに、謎のブラウンアウトリセットが頻発し、ファームの作りを試行錯誤しまくってしまった。結局、レギュレータ下流側の電解コンデンサをケチったせいで、XBeeのスリープ復帰の突入電流に耐えられないのが原因だったのだが……なんか、これは以前にも悩んだことがあったような気がするが……。
とりあえず開発物件一式を置いておく。
2025-01-31(Fri) 業務チャットの中からツンデレAIに話を振ってみる
2020年の頭。新型コロナの流行が始まって約1年。テレワークが定着しはしたものの、マイクソソフトのTeamsでは、サシの会話しかできず、周囲からの助言を受けられない、とボヤく後輩に、そんなんメールでエエやん、と答えたところ、そんな面倒なのやってられませんよ、そうかぁ? そうですよ、いまやチャットですよ。うーん、じゃ、作る? そうだよなぁ……それしかないなぁ……という感じでほぼスクラッチから作り始めた。
その会話が2021年2月3日。リリースが8日。エラく早いが、夢中になって作ってたし、その時点で使い物になるレベルには持っていってたはず。そこから機能追加はしたが、ほぼ停止することなく、これまで運用し続けている。途中で人狼ゲーム機能とかも付けたりもしつつ。我ながら、ちょっとした偉業だと思う。
イマドキフツーすぎるやろ……と思うかもしれないが、なかなかどうして、チャット中から尋ねられるのは相当に便利である。それまでの会話の流れを入力する必要がないからだ。AIに話題を振るには、文末に「>リナ」と入力するだけ。
# ルーム更新時のフック、特定のキーワードの書き込みに対して、AI に問い合わせ、結果を書き込む
@configs[:post_ai_comment] = {}
@configs[:post_ai_comment][:ws_uri] = 'ws://127.0.0.1:33109/'
@configs[:post_ai_comment][:user] = 'リナ'
@configs[:post_ai_comment][:ucrt] = '0123abcd'
@configs[:post_ai_comment][:keyword_re] = '(.+)>リナ\s*$'
@configs[:post_ai_comment][:contexts_max] = 10
@configs[:post_ai_comment][:ex_users] = { 'Mezatalk' => true }
@configs[:post_ai_comment][:wrap] = 78
@configs[:post_ai_comment][:tones] = ['ツンデレ女子の口調で'] # + [''] * 10
#configs[:post_ai_comment][:prompts] = {}
#configs[:post_ai_comment][:prompts][:def] = 'あなたは「リナ」という名前で、Linux/OSSのエキスパートです。'
#configs[:post_ai_comment][:prompts][:say] = '「%s」さんが%sと発言しました。'
#configs[:post_ai_comment][:prompts][:ask] = '「%s」さんから%sと問いかけられました。'
#configs[:post_ai_comment][:prompts][:com] = 'それに対しての助言を%sお願いします。'
@configs[:post_paragraph_hook] = Proc.new {|room|
IO.popen(['./post_ai_comment', room], $stderr => open('/dev/null', 'w')) {|io|
io.read
}
}
■ ken [xportを使った電子工作とjavaで制御する、手本になる作品を探していますが、なかなかありませんね。]