hmx-17の日記

技術ネタとかプライベート

トイレ見積もった

トイレを見積もりました。
今回は

  1. ネオレストAH2W
  2. ハイドロセラ・フロアJ

で行こうと思い、いくつかの工務店にお見積もりの依頼を出しました。
現地調査の結果、現在の床がコンクリ張りでできているので、ハイドロセラ・フロアJを付けるには
既存の床を剥がして、上に下地(木で作る)を作ってから持ち上げる手法しかないようで、
その手法だと床の高さが+10cm、施工費もかなり膨らむとのことで断念。

もう一つはハイドロセラ・フロアのパブリック向けをコンクリ床上に施工する方式。
こちらは色合いが余り良くなく、断念。

結局、同じような床材を使うことにはなりましたが、工務店さんに床材サンプルを山ほど頂いた結果
ハイドロセラ・フロアJに似た色合いの床材を見つけることが出来たのでそれにしました。

壁紙も大量にサンプルを貰いましたが、イマイチ決めきれず……
こちらもショールーム巡りをしようと思います。

トイレ壊れそう

SPS30を弄っていた記事をほったらかしていたら、トイレのウオッシュレット ノズルが中途半端にしか出てこなくなりました。
おしりをずらせばとりあえずは使えるのですが、去年くらいに便座を暖める機能も死んでしまってもはや満身創痍なので買い換えを決断。
基本的にトイレと風呂場に金を使って家を作りたい人なので、トイレはもちろんフルスペックのタンクレスを前提に
とりあえずPanasonicLIXILTOTOショールームを見てきました。
Panasonicアラウーノ
○な所
・便座の蓋が変えられるのはアクセントになってよい。
×な所
・便器が陶器ではないので掃除に気を遣うことになる
・ターントラップ式なので停電時は自分で水を入れないといけない
・ウオッシュレットの感じがイマイチ

LIXIL(サティスG)
○な所
・特色の黒便器、すごい!
・便座の座り心地が良い
×な所
・特色は7万円(仕方ない……)
TOTOと比べると輪ジミがつきそう……

TOTO(ネオレスト)
○な所
・除菌水で輪ジミを抑制できる
・流石ウオッシュレットの心地は良い
×な所
・カラバリが少ない

という感じでして、欲しい機能的にTOTOのネオレストにしました。
TOTOさんでは「ハイドロセラ」という壁材も一緒に提案され、サンプルを見たら良かったのでこれもやりたいなー……
ということで定価ベースの見積もりを貰ったら60万!おお……やはり………………
次は工務店を見つけるところですかね。

SensirionのSPS30(PM2.5センサ)を触る (3)

I2Cで触ってみます。
Raspberry PiのI2Cバスにまず細工をします。
/boot/config.txtで
dtparam=i2c_arm=on
を有効にしている場合にはコメントアウトして、
dtoverlay=i2c-gpio,bus=1,i2c_gpio_sda=2,i2c_gpio_scl=3,i2c_gpio_delay_us=20
をおもむろに差し込みます。
Raspberry Pi の SoC にあるI2C通信機能は、Clock Stretchingに対応していないので
i2c-gpioというモジュールを使ってソフトウエアI2Cデバイスを作成します。

I2CデバイスRaspberry Piの接続については割愛します。
SPS30は5VをVDDとして取りますが、I2Cバスは3.3Vで問題無いので、
レベルシフタなしでOKです。

接続できたら、PiGpioをまず入れます。
$ sudo apt install pigpio

次に.NET 5でConsole Programのプロジェクトを作ります。
NugetでPiGpio.NETをインストールした状態で以下のようなプログラムを書きます。

using Unosquare.PiGpio.NativeMethods;
をusingに入れるのをお忘れ無いように。

static void Main(string args)
{
Setup.GpioCfgSetInternals(ConfigFlags.NoSignalHandler);
Setup.GpioInitialise();
devicePtr = I2c.I2cOpen(1, 0x69);
if (devicePtr.ToUInt64() < 0)
{
throw new Exception("I2C Open Error");
}
I2c.I2cWriteDevice(devicePtr, new byte
{0xD0, 0x02});
var serial = I2c.I2cReadDevice(devicePtr, 12);
Console.WriteLine(BitConverter.ToString(ParseSensrionPacketBytes(serial)));
I2c.I2cClose(devicePtr);
}
public static byte ParseSensrionPacketBytes(byte packet)
{
var data = new List();
if ((packet.Length % 3) != 0) return null;
for (var i = 0; i < packet.Length; i += 3)
{
data.Add(packet[i]);
data.Add(packet[i+1]);
}
return data.ToArray();
}

Setup.GpioCfgSetInternals(ConfigFlags.NoSignalHandler);
Setup.GpioInitialise();

で初期化をします。GpioCfgSetInternalsでセットしなくても良いのですが、
SIGが飛んできてプログラムが終了してしまうことがあるので設定しています。
次にI2c.I2cOpen()でI2Cデバイスを作ります。Raspberry PiSlot 1からで、SPS30は0x69なのでさっくり設定します。
次に 0xD0, 0x02をデバイスに書き込みます。この命令はバージョン情報を教えてくれと言う命令です。
バイスに指示を書き込んだら、データを読み取ります。 0xD0, 0x02 は12バイトを返すので、その通りにします。
SensirionのI2Cデータは [DATA1] [DATA2] [CRC8(DATA1+DATA2)] [DATA3] [DATA4] [CRC8(DATA3+DATA4)]...のように、2バイト+1バイトのチェックサムが延々と続くのでデータ列だけを切り出します。本来であればCRC8を計算して、データが化けてないか検証する必要がありますがここでは割愛しています。
このデータをコンソールに16進数でダンプしています。
最後に I2c.I2cClose()でI2Cデバイスをクローズします。

ということで、I2Cで通信することろまでできました。
次は実データを取得します。

SensirionのSPS30(PM2.5センサ)を触る (2)

SPS30とお話するに当たってプロトコルを理解する必要があります。
SPS30のUART接続では SHDLC(Sensirion High-Level Data Link Control)を使用してSPS30と接続します。
詳しいことはデータシートをご確認頂ければ良いのですが、
1. 0x7Eで始まって0x7Eで終わる
2. 終わりの0x7Eの前にFrame(0x7Eの後~データペイロードまで)のチェックサムを取る
3. 送受信時に特定のバイトは、別のバイト列に置き換える
というお約束が必要です。
ただ、データシートに書いてあるサンプルフレームをそのまま送る分には
受信の時に気を遣うだけでいいので気が楽かもしれません。
さて、実際の計測の流れですが
0. デバイス情報などを確認する(オプション)
1. 計測を開始する
2. データを取得する
3. 計測を終了する
という流れだけで終わりです。

実際に実装をしてみましたが、何故か正しいバイト列が帰ってこないケースが多く
I2C通信の方が安定するのでは……ということもありI2C側でも検証しようと思います。

SensirionのSPS30(PM2.5センサ)を触る

珍しく"tech"らしい感じのヤツです。
最近Sensrion社のSPS30というPM2.5とかの粒子状物質を計測するセンサを入手したので、軽く使って見ることにしました。
購入はスイッチサイエンスから出来ます。
ちなみに、Mouserからセンサだけ買うとケーブルが付属せず、JSTのZHコネクタ(1.5mmピッチ)を圧着するハメになるので、圧着済みケーブルのあるスイッチサイエンスから買いましょう。
接続方法はI2CかUARTが選べるのですが、スイッチサイエンスのサイト曰く
ドライバは、UARTプロトコルとI2Cの両方用意されていますが、Arduinoプラットフォームを使用した場合、
>I2Cでは質量濃度のみ(個数濃度ではなく)に制限されることがわかりました。そのため、Arduinoで使用する場合は、UARTインターフェースをご利用ください。
とありちょっと不安な感じなので、最初はUARTで接続していきましょう。
Raspberry PiのUARTにダイレクトに差し込んでもいいのですが、今回はWindowsでも触れるようにスイッチサイエンスのFTDI USBシリアル変換アタプターを使っていきましょう。
アダプターのジャンパを 5V にして、USBコネクタからの直接給電に切り替えます。
SPS30のRXをアダプターのTX、TXをRXに刺してGNDとVDDを接続します。
これでUSBをRaspberry PiWindowsに刺せば起動はします。
さて、ここからはプログラムを書いてSPS30とお話するとことになりますが、
僕がC#メインで書いてるので.NET 5当たりで書いてみようと思います。

続く。

男性でも化粧をするぞ!

hmx-techの"tech"が関係ない話題が続いておりますが……
最近はテレワークで普通の服を着て仕事をすることが多く、
そうするとやる気のON/OFFのコントロールが大変難しくてですね……

身だしなみはどうしようもないので、いっそ化粧でもしてみようと言うことで
ファンデーションを買って化粧をして見たところ以外と「よしやるぞ」という感じになり良かったです。
たぶんこのブログの読者層は化粧に大変詳しいというわけではないので軽く説明しますと
ファンデーションを塗るにも
1. スキンケアをする
2. 化粧"下地"をつける
3. ファンデーションをつける
と3段階に分けて行います。
1は当たり前ですが化粧水と乳液をつけて、スキンケアします。
2は化粧下地という専用のアイテムがあるのでそれを使います
(スキンケア商品の中には化粧下地にもなる物があるので、めんどくさければそれが良いと思います)
3が一番大事で、通常女性が使っている「ファンデーション」と言われるヤツを使うと色の選択肢が多すぎる上に
売り場の雰囲気に負けて全く選べない可能性があるので、男性向けスキンケアブランドの "uno" から出ている
フェイスカラークリエイターシリーズが良いと思います。
ファンデーションを選ぶ際には恥ずかしさに負けずに美容部員の人に声を掛けて色を選んで貰うのが
一番失敗ない感じがしてよいと思います。
筆者はSHISEIDOで揃えていますが

  • MAQuillAGE ドラマティックスキンセンサーベース EX  ナチュラ
  • SHISEIDO シンクロスキン セルフリフレッシング ファンデーション 330 Bamboo

あたりを使っています。

さて、ファンデーションを付けると何が良いかというとニキビ跡やら青ヒゲやらがちょっと消えて
良い気分になるというのがほとんどです。
あとは少し肌の色が均一になるので、テレワークでの会議でのカメラ写りがなんとなく良くなります。

筆者は女装「ではない」男性でもできるマスカラ・アイシャドウの色合い/付け方についても研究をしているので
そのうち公表できれば(?)と思います。
アイシャドウとかマスカラ付けると目が元気に見えて、心も元気になるのが不思議です。

ヘルシオ ウォーターオーブンを買いました

今までは日立のベーカリー機能付きの電子レンジを使っていたのですが、
ヘルシオならカツオのたたきができる」ということが分かってついうっかり買ってしまいました。
買った結論から言うと、これはレンジではなく「過熱水蒸気が出る調理器具」という理解をしなければならないと言うことがわかりました。
まだ買って一週間ですが

  • 「そんな馬鹿な」と思ったらおいしかった焼きそば
  • 期待通りのカツオのたたき
  • おいしい唐揚げ
  • 絶品の2段目の総菜あたため

など多数のおいしさが詰まっており掃除などのデメリットはすっ飛びました。
処分する予定だった元の電子レンジはヘルシオの調理と並行してレンジを使うためにまだ残してあります。
ヘルシオ2台持ちというのはなかなか気分がわかる気がしますね。