2023/04/19

Sony PS3用 BDリモートコントローラ (CECHZR1J)


 プレステ3用のBluetooth リモコン、赤外線無しの古いタイプ。後期型ほどじゃないが、普段使っている自前の無線リモコンよりも、デカくて厚い。小さなリモコンに慣れた今となっては、すごい違和感。一般的なボタンの裏側に導電ゴムが貼り付いているのではなく、別に導電用の独立したシートが使われている。後期型に比べると、基板サイズはそこそこ大きいが、単3電池2本仕様なのはすごく良い(後期型は単4)。

 Windows で、普通に認識できる。元々、プレステ用だから、PCに接続したときに余計なことをしない、ってのが最大の利点。ボタンの入力に対して、何らかの処理を割り当てるドライバなり、ソフトウェアが別途必要になる。

 Lazarus で作っているメディアセンタ用のリモコンソフトに、ざっくりと、このリモコンの処理を追加してみたが、まぁまぁ使えそう。プログラム的には、ただの HIDデバイス。

 今更、Bluetooth リモコンをやっているのは、タブレットやノートパソコンだと、USBの無線レシーバを使うのは邪魔で現実的ではないし、目の前に端末があるなら、そもそもリモコンで電源操作とか不要なわけで。



 Bluetooth だから使っていなくても電波が出ていそう?なので、物理的な電源スイッチを追加した。スライドスイッチを電池端子に割り込ませて、ホットボンドで止めた。電源オフにすればデバイスは切断され、再度オンにして、適当なボタンを何度か押すと再接続される。面倒だが確実。

2023/03/26

Sony DUALSHOCK 3(ワイヤレスコントローラ) をPCで使う


 プレステ3用の Bluetooth ゲームコントローラ。アナログスティックが必要な時は、Wii のコントローラを使ったりすればいいが、こちらのほうが単体で使えて便利。PS3のリモコンと同様、Windows で認識は出来るが、そのままでは使えない。いくつか、仮想ドライバ的なソフトがあって、それを経由すれば通常のコントローラと同じように使える。Windows 標準のペアリングは使わない。


参考リンク
 DsHidMini 仮想ドライバ、コントローラのマネージャ的なもの
 BthPS3 Bluetooth ドライバ


 このコントローラの何が良いかというと、ジャンクが安いこと。新品の互換品も安いので、わざわざジャンクを買う必要があるかと考える人もいるだろうが、互換コントローラと純正コントローラは別物で、そもそもの出来が違う。

 ジャンクが安いのは、経年劣化で、メンブレンシート的なフィルムを基板側に押し付けるスポンジが変形して正常動作しなくなるから。なので、高い中古品は意味が無い。いずれ不具合が起きるので、結局、買いなおすか、分解・整備が必要になる。

2023/03/20

Sony PS3用 BDリモートコントローラ (CECH-ZRC1J)


 プレステ3用のBluetooth リモコン。PS3なんて最先端w のゲーム機は、持っていないが、PC でも使えるということで、前から気になっていた。PS4や PS5で同じようなタイプの新リモコンが出るだろうと待っていたが、出る気配無し。あきらめてジャンクのボロボロの汚いのを買ってきた。

 早速、掃除も兼ねて、ばらしてみたが、リモコンというより、ゲームコントローラのリモコン型な感じ。当時、新品が3000円ほどだったらしいのだが、今はプレミア価格となっている。

 Windows10 でペアリング後、そのままでは、リモコンが何かに影響を与えることはない。プログラム的には、Bluetooth とか気にせず、HIDデバイスから、押されたボタンのデータが送られてくるので、それを読み取って処理すればいい。自作しなくても、すでに KODI 用含めて、色々とあるみたい。

 プレステ3のリモコンは、2種類あって、これは後期の、TVとアンプ用の赤外線も発信できるタイプ。赤外線受信デバイスは、自作もそれほど難しいわけでもないので、Bluetooth リモコンの弱点であるPCの電源の操作とかにも使えるかも。

 僕は、さんざん苦労して自前の 2.4Ghz のリモコンシステムを作っているが、ソニー様のリモコンをベースにすれば、少なくても送り側は完璧だろうから、開発は受信側だけでいい。

 少し試しただけだが、ボタンの反応も良いし、電池の持ちがどの程度か分からないが、単純な入力デバイスとしては、優秀だと思う。

2023/02/11

サーキュレーターの効果



 効果あると思っていても、実際のところどうなのよ、ってのも実測してみるとハッキリする。赤線は、部屋の天井近くのセンサ。青線は、床置きしているセンサ。2mくらいしか離れてなくても結構違う。グラフの青線が、突然上昇するのは、床から天井へ向けてサーキュレータを動かしたから。

 高気密、高断熱住宅に住んでるなら気にしなくてもいいかもしれないが、天井と床との温度差が大きな場合は、空気をかき混ぜる効果はすごく高い。


 高いものでもないし、夏でも、エアコンと併用すると涼しいし、洗濯ものの部屋干しにも使えて便利。

2022/12/27

ワイヤレス温度計 #4


 デスクトップガジェットに、ワイヤレス温度計の受信機能を取り込んだ。2つのBLEデバイスからのデータを受信する度に、MYSQL データベースを更新し、温度とバッテリ残を表示する。

 データベースに記録しているので、適当なグラフ表示のソフトで、温度変化も読み取れる。BLEのデータ取得は、仕組み的にキッチリとした時間では取れない。数秒毎のランダムなタイミングとなる。勝手に発信し、勝手に受信しているのでそうなる。



 ESP32 の受信デバイスも、2個分の温度表示出来るようにした。こちらは、PCは関係無く、電源があれば動く。スマホとかの充電ケーブルでよい。

 本格的に温度の記録をとりたいなら、ESP32 からデータベースに接続するのが普通かもしれない(そういうIoT向けのサービスが既にある)。でも、やる気はしないな。既にファイルサーバを動かしてるとか、省電力PCをローカルに用意できるなら、PC上で完結したほうがトラブルは少ないよね、たぶん。

2022/12/21

Lazarus 2.2.0 + MySQL Community Server 8.0.31 でエラー

 たまには、まともなデータベースでも使ってみるかと、MySQL をインストールして、Lazarus からアクセスしようとしたら、実行時に、libmysql.dll が無いといわれて動かない。ちゃんとコピーしてるのに…。

 TMySQL80Connection コンポーネントがダメなのかと、MySQL Ver 5.7 に入れ替えて、TMySQL57Connection を使ったら、あっさり動いた。もぅ。


参考リンク
 MySQL Community Server  データベース
 HeidiSQL データベース管理ソフト

ワイヤレス温度計 #3

 Delphi の BLEが不安定すぎだし、RSSI 取得できないし。何気に検索したら、SimpleBLE Library というのを、パスカル向けに変換してくれてる人がいた。まぁ、これはこれで、生のアドバタイズ データにアクセス出来ない?のがイマイチだが、一応動作はする。

 アドバタイズ に、ADタイプ 0xFF の Manufacturer Specific Data に自分で使うデータを入れとけば、SimpleBlePeripheralManufacturerDataGet() で読み込める。


参考リンク
 Pascal Bindings For SimpleBLE Library Lazarus でも使える

2022/12/12

ワイヤレス温度計 #2

 温度センサDS18B20の話。

 温度測定の際の分解能を、9~12ビットで設定できる。数字が大きいほど、細かな単位で取得できるが(9bit で、0.5℃刻み、10bit で、0.25、11bitで、0.125、12bitで、0.0625)、そもそもの精度が、±0.5℃なので、12bit とか指定しても意味がないように思う。それに、12bit を指定すると、1回の測定に、750 ms もかかる。ま、意味はなくても、小数点以下1ケタを完全に表示したいなら、12bit が必要。

 手持ちのケーブル付きのセンサは、下記リンクのプログラムを動かしてみたら、本物?らしい。複数接続も、2線式も試していないが、少なくとも単体で使う分には問題なさそう。まぁ、クローンとか同じ動きをするのなら、たとえ中身が違っていても実質的に問題はないが、同じように動かないのでは問題外だよね。
参考リンク
 DS18B20 Datasheet 温度センサ資料
 How to tell original from fake DS18B20 temperature sensors.  偽物があるらしい

2022/12/06

ワイヤレス温度計 #1

 夏に、無線な水温計を作ろうと思っていたら、もう年末だ。ようやく取り掛かったが、キーボードや、リモコンでの実績のある2.4GHzの通信ではなく、今までチョロチョロと実験してきた BLE(Bluetooth Low Energy)でやってみることにした。

 温度センサ は、DS18B20 にケーブルがついたのを調達。ステンレスパイプの中にセンサが入れられて、熱収縮のチューブで防水処理されている。本物は、センサだけで、数百円するそうだから、パチもんだろうけど。0度(氷)、100度(沸騰水)を試したぶんには、正確だった。

 送信側は、nRF51822 の BLE ビーコンもどき。ひたすら、測定温度をアドバタイズパケットに乗せて垂れ流すだけ、接続もさせない。

 受信側は、なんでも出来るESP32。とりあえず、7セグメントの LED に温度表示できるようにした。最初、Windows PC + Delphi でのソフトウェアで処理させようとしたが、まともに動かなかった。

 温度とバッテリ量を表示するだけなら、スマホやタブレットなんかの nordic の Androidアプリ用に、パケットを送信すれば、それで目的は達成される。Android アプリは、自前では作れないから(早々に挫折した)、測定データを何か利用するなら、ESP32 から、WiFi で飛ばせばいいかと。

 で、やりたいことは、実現できそうではあるが、実用化出来るかは、別の話。BLE は、色々と難しい。というか、電波飛ばなすぎだよな。
※ 技適マーク無しの無線デバイスの実験は、日本国外で行いましょう。

2022/11/29

中古ガラホ(KYF37) + povo2.0


 スマホを、デュアルSIM で使っていたが、どうも切り替えが煩わしい。というか、やはりスマホは、デカくて邪魔なんだよね。ちょっと、スーパーに買い物にいくのに、首から吊しても、ベルトポーチに入れても、中々鬱陶しい。

 そんなわけで、ポケットに入るガラホ。形は、ガラケーなんだけど、中身はスマホ。ソフトでガラケーっぽい操作感になってる。ガラケーが使えなくなるー、とか言ってたのは、3Gケータイで、ガラホは、4Gなので問題にならない。

 ボロくても気にしないので、2千円弱で買えた。バッテリは消耗してるので、別途、購入しないとだが、au 機なので、povo SIM が問題なく使えるようだ。eSIM だったので、物理SIM に交換してもらった。待ち受け専用なら、半年に一度課金するだけの低コスト運用可能。


追記 2022-12-05
 プリインストール済みのアプリをADBで無理やり消しまくった。追加アプリ無し、WiFi不要、Bluetooth不要、新しい電池は確保したが、待ち受けだけなら今のままの電池でも、数日持ちそう。電話だけなら、やっぱケータイの形が最強だな。最近お気に入りの、磁石付きのUSB電源ケーブルのアダプタも、最下部のところにきて邪魔にならない(関係ないが、スマホもタブレットもガラホも、USB端子なら同じケーブルで充電できる、すごく便利)。

 povo2.0 の運用には、スマホアプリとネットが必要なので、年寄が使うには敷居が高い、2台持ちのマニア向けだな。

2022/10/16

nRF52 Arduino

 今までやってきた無線デバイスは、nRF51822 + sandeepmistry ライブラリだったが、nRF52840 は、Adafruit のライブラリを使う。nRF52832 は、どちらも使える。nRF52832 は、nRF51822 の上位版で、nRF52840 は、さらに、USBに対応している。無線だけじゃなく、有線の HIDデバイスを作りたいなら、こちらを選択。
参考リンク
 Arduino Core for Adafruit Bluefruit nRF52 Boards nRF52832 / nRF52840 ライブラリ
 Adafruit nRF52 Bootloader EBYTEのもいつのまにか追加されてる
 ドングルの使い勝手がいいのだが、技適有りだとRAYTAC MDBT50Q-RX ぐらいしか見ない気がする。でも、あれは、ハード的な追加は出来ないと思う。2000円ほどの、Seeed Studio XIAO nRF52840が、現実的かな。

 技適無しなら、AliExpress で買えるが、電子部品全般に高騰していて割安感はあまり無い。安いうちに、EBYTE のドングルを沢山買っておくんだった。


 自作無線デバイスのレシーバ側、ATMega32u4 + nRF24 を、nRF52840 に置き換えるのに使いたい。作業PCには、時計機能、HTPCには、赤外線機能、それぞれ、32u4 のでいいが、他のPCは、無線通信だけ出来ればいいから、ドングル一つで済む nRF52840 が最適。ブザーだけは、追加した。

 RAW-HID は、Adafruit のライブラリだと、hid_generic_inout という名前。未だよくわかっていないが、Delphi 側アプリと、通信できるのは確認した。
uint8_t const desc_hid_report[] =
{
TUD_HID_REPORT_DESC_GENERIC_INOUT(64)
};

Adafruit_USBD_HID usb_hid(desc_hid_report, sizeof(desc_hid_report), HID_ITF_PROTOCOL_NONE, 2, true);

 BLE は、今のところ予定なし。Bluetooth は、僕の信頼度低し。
※ 技適マーク無しの無線デバイスの実験は、日本国外で行いましょう。

2022/10/09

INA219 モジュールで電流測定、その3



 ESP32 を、wifi 接続にしてみた。18650電池にして、充電は、USB経由で可能。

 んー、USBケーブルが無くなっただけでは、意味がないな。ソケット通信じゃアプリがないと使えない。ESP32 のWebサーバ上で、動かすことが出来れば、ブラウザあればいいだけだもんな。JavaScript かなんかで、グラフが描けるライブラリあったような。


追記 2022-10-21
 使い勝手がよくない。おとなしく有線でいい。まぁ、失敗もあるさ。

2022/09/29

Arduino IDE 2.0.0 リリース

 ようやく、正式版のようだが、何とポータブル・モードが無いらしい。論外だな。実装されるまでは、使うのは無理。

 ニッチな機能は後回しって、新VERだし、余計重要だろう。
参考リンク
 Arduino IDE 2.0.0 Downloads

2022/09/10

スーパーファミコン コントローラ・改(2.4Ghz 無線化)#3


 SELECTボタンの下に、新規に2つボタンを追加した。全てのボタンは、ゲームコントローラのボタン入力となる。

 Windows 7 では、問題なかったのに、Windows 10 でダメだったりするのは、Pro Micro もどきのレシーバと、Windows側の制御ソフトが上手く通信できていないのが原因みたい。だが、デバイス・ドライバをいじってたら、なぜか動くようになってしまった。要観察だ。

 ハード的にも、Arduino デバイスの USB-HID の仕様が完全じゃないのかも。ゲームコントローラのテスト画面が表示されないし、スリープ(使っていないが)復帰後にデバイスの認識が変になったりもする。複合デバイスは、色々と複雑なのだろう。
※ 技適マーク無しの無線デバイスの実験は、日本国外で行いましょう。


追記 2022-09-12

 SERIAL+KEYBOARD+GAMEPAD+RawHID の4つを抱えた複合デバイスだが、正しく動くようになったかもしれない。SERIALは不要なのだが、勝手に出てくる。無効に出来れば、さらに、GAMEPADを増やせるのかも? これは、ライブラリではなく、Arduino Core 側の問題らしい。
参考リンク
 NicoHood / HID API Documentation 複合デバイスを作るときは要注意

2022/09/04

スーパーファミコン コントローラ・改(2.4Ghz 無線化)#2


 前回の続き、基板を割ってしまったので、新しくジャンクなコントローラを調達した。近所だと、汚いので330円。ちょっとましなのが、550円だった。昔は、110円で 買えてたのに。妙に腹立たしくなったので、オークションでセットのを落札した。黄色く日焼けした奴は、割と安く買える。が、状態が悪く使えないのもあった。

 IC チップを外したパッドが、各ボタンにつながっているので、そこから、マイコンのピンに直結。処理はレシーバ側がするので、送信側(子機)は、キーボードだろうと、リモコンだろうと基本的にはボタン情報を送るだけ。

 ジャンクなコントローラは、導電ゴムが劣化してそうなので、ゴム面の小さなSELECT/START以外のボタンに、銅箔テープを貼ってみた。剥がれそうな気もするがどうか。


 組み立て後のテストでは、ジョイスティック版と同じプログラムでも快調に動いてる気がする。しばらくテストだね。
※ 技適マーク無しの無線デバイスの実験は、日本国外で行いましょう。

2022/09/01

Arduino IDE ポータブル版

 今まで、Arduino IDE を結構使っていたわけだが、ポータブル版ってのは、ZIP版をダウンロードしてきて、自分の好きなところに展開すればOKなのだと、勘違いしていた。展開するだけでは、追加したボードデータなどは、問答無用で、ユーザディレクトリに書き込まれてしまい、別々の Arduino IDE があっても、共通利用してしまい、全然ポータブルじゃない。ほんと、使えねぇなぁ、と別PCに環境をわざわざ作っていたわけです。

 今回、改めて調べてみたら、何のことはない。ポータブル版にするには、「portable」ディレクトリを自分で作る必要があることが判明。このフォルダがあると、追加されるデータは、そこへ書き込まれるので、なるほど、独立した環境なわけだ。

 一々、説明なんて読まない間抜けな僕みたいな人向けに、空の「portable」ディレクトリを ZIP版に入れとけばいいのに…。
参考リンク
 Arduino IDE 1 Portable Installation How to create and use a portable version