「気になった事を・・・」カテゴリーアーカイブ

日常、気になった事、どうでもよい話題などをつぶやく。

RXマイコン関係ソースコードを整理する

RX66T関係を追加する過程で、RX関連ソースコードを整理した。

今まで、RX24Tに始まり、RX64M、RX71M、RX65Nとサポートデバイスを広げてきたが、RX66Tを加えるにあたり、重複しているファイルや、醜い部分を整理した。
基本はRX64Mとなっている。
・RX64M、RX71Mはほぼ同じ
・RX651/RX65Nは、微妙に異なる
・RX24Tは別品種(割り込み関係が異なる)
・RX66Tは、RX24TとRX64M系の中間的
こんな感じだが、デバイスのレジスター関係は、全てにおいて共通部分が多く、共有出来る。
異なるのは、デバイス(自分のフレームワークでは、ペリフェラルと呼んでいる)の有無。
RX64M、RX71Mは非常に沢山のペリフェラルを持っているが、RX24Tなどは、それに比べて少ないが、中でも「割り込み」ベクターが大きく異なる。
これをどのように表現するかが大きな課題となっていたが、とりあえず、テンプレートにしておけば何とでもなる事が判った。
また、今までは、似ているけど少し異なるような場合は、「#if」などで、分けて凌いでいたが、基本的に各デバイスで、ファイルを分けて対応する事にした。
懸念事項としては、同じコードを全てのデバイス専用ファイルにコピーする必要があり、この場合、一つの修正が、他のデバイスのソースも同じように修正する必要が出てくる・・
一つのファイルで共有して「#if」で細かく分ける書き方だと、かなりトリッキーで読みにくくなる、どちらが良いかは、ケースバイケースで何とも言えないが、保守より読みやすさを優先した。

ペリフェラル:
各デバイスには、「peripheral.hpp」があり、このファイル内で、「enum class」により、「peripheral」型で、利用できるペリフェラルが列挙してある。
この「列挙型」の違いにより、ポートの設定、消費電力設定、割り込み制御など、大まかな動作を分けている、ペリフェラルを直接叩くドライバーは、たとえば割り込みベクター型の違いを考慮する必要が無いように実装してある。

RX24Tのペリフェラルでは、割り込みベクターは、通常ベクターに全て割り当てられているが、RX64Mなどペリフェラルが多いデバイスでは、通常ベクターの数が足りずに、グループベクター、選択型ベクターを新規に設け、それらに割り当てるように工夫されている為、そのままでは同じように扱う事が出来ない。
この違いを吸収して、デバイスドライバーを共通化する為、考えた結果、以下のような実装を行う事でかなりスマートに解決出来た。

//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
/*!
        @brief  CMT I/O クラス
        @param[in]  CMT チャネルクラス
        @param[in]  TASK    タイマー動作クラス
*/    //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
template <class CMT, class TASK = utils::null_task>
class cmt_io {

...

};

上記はCMTの制御クラスの型だが、「CMT」は、CMTペリフェラルクラスで、CMTの制御レジスターを定義したものになっている、通常CMTは0~3まで4チャネルある。
RX64M、RX71M、RX65Nでは、CMT0、CMT1の割り込みは「通常」ベクターだが、CMT2、CMT3は「選択型」ベクターとなっていて、割り込みの設定手順が異なる。

//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
/*!
    @brief  CMT 定義基底クラス
    @param[in]  base    ベース・アドレス
    @param[in]  per     ペリフェラル
    @param[in]  INT     割り込みベクター型
    @param[in]  ivec    割り込みベクター
*/
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
template <uint32_t base, peripheral per, typename INT, INT ivec>
struct cmt_t {

...

};
#if defined(SIG_RX24T) || defined(SIG_RX66T)
    typedef cmt_t<0x00088002, peripheral::CMT0, ICU::VECTOR, ICU::VECTOR::CMI0> CMT0;
    typedef cmt_t<0x00088008, peripheral::CMT1, ICU::VECTOR, ICU::VECTOR::CMI1> CMT1;
    typedef cmt_t<0x00088012, peripheral::CMT2, ICU::VECTOR, ICU::VECTOR::CMI2> CMT2;
    typedef cmt_t<0x00088018, peripheral::CMT3, ICU::VECTOR, ICU::VECTOR::CMI3> CMT3;
#elif defined(SIG_RX64M) || defined(SIG_RX71M) || defined(SIG_RX65N)
    typedef cmt_t<0x00088002, peripheral::CMT0, ICU::VECTOR, ICU::VECTOR::CMI0> CMT0;
    typedef cmt_t<0x00088008, peripheral::CMT1, ICU::VECTOR, ICU::VECTOR::CMI1> CMT1;
    typedef cmt_t<0x00088012, peripheral::CMT2, ICU::VECTOR_SELB, ICU::VECTOR_SELB::CMI2> CMT2;
    typedef cmt_t<0x00088018, peripheral::CMT3, ICU::VECTOR_SELB, ICU::VECTOR_SELB::CMI3> CMT3;
#endif

上記のように、テンプレートパラメータで「INT」(割り込みベクター型)を設ける事で、cmt_t クラスは、どの型のベクターなのかを意識しなくて済むようになっていて、「typedef」だけで対応できる。

cmt_io クラスでは、ベクターの型を元に、割り込み設定の方法を分ける事ができ、面倒な「#if文」から開放される。
また、C++ では、ベクター型の違いによる分岐は、コンパイル時に決定できるので、最適化により、余分の分岐一切が無くなるので、速度の面もリソースの面も好都合となる。
このような仕組みは、C言語だと、スマートに実現する事は難しい、C++ が組み込みマイコンのプログラムに向いた言語である事の一例であると思う。
※C言語プログラマは、#define で実現可能と思うかもしれないが、#define では、正確で厳密な「型」チェックは行われないし、構造的や論理的に誤ったコードをエラー無くコンパイルしてしまう可能性があり、テンプレートとは雲泥の差がある。

C++ のテンプレートでは、構造的や論理的に誤った構造は、「ほぼ」エラーになるので、最初の設計が必要十分な要素を詰め込んであれば、自ずと正しい方向に誘導してくれる感じがある。
大雑把に言うと、コンパイルエラーが無くなったら、プログラムも正しく動く事が多いとも言える。

自分が実装したソースでは、「#define」でマクロ的な定義を行う事は一切していない。

CPが最高に高いRX24T

100円マイコンのR8Cは別格としても、安くても十分機能があり、それでいてパフォーマンス(馬力)があるマイコンが必要な場合がある。
ルネサス社が発表しているマイコンで、どれが、コスト、パフォーマンス、機能が優れているか、検討してみた。
※実際は、かなり前に検討したものだが、未だにCPの高さトップに君臨している。

ちょっとした物を作る場合でも、昔には戻れない・・
※ファミコンやゲームボーイの時代はROMが高かったので、より多くのリソースを積み込む為、データ圧縮や、手動による最適化を行ったものだ、ハードウェアーがアップグレードして、記憶媒体がROMから、RAMになってCD-ROMなどの光学媒体になってから、もう容量の事で悩むような事は少なくなり、開発環境もアセンブラから高級言語に移っていった。
※PS2、EEのようにアセンブラでチューニングしなければ性能が出なかった例外的なハードもあるのだけど・・

今は、時代が違う、それでも、組み込みマイコンの場合、容量は有限だし、価格の安いデバイスはRAMも少ない、それゆえ、小さな工夫はしないとならない。
「数」を沢山作るような製品とは異なり、DIYでは機能を実現できれば、コストは度外視しても良いが、開発がやりやすいとか、リソースの再利用とか、便利で短時間で完成させる事が出来る方が良い。
C++ のテンプレートライブラリを多様したペリフェラルフレームワークは、Arduino のスケッチを書くより簡潔で判りやすく、最適化されたコードを作る事が出来る。

8/16ビットマイコンは、CPが高いと思うかもしれないが、実際はそうでは無い(ルネサス社のラインナップでは・・)、また、個人で数個単位で扱う場合と、大手が数百個、数千個、数万などスケールが異なる場合は、全く異なる価格帯になると思われるが、実際、数個のオーダーで個人が買う場合には、状況が異なる。
また、8/16ビットマイコンは、通常ポインターが16ビットで、大きな容量にアクセスする場合は、その都度、「方法」を選択してトリッキーなコードを実装しなければならない。
意外な盲点として、RXのような32ビットマイコンに比べて、同じプログラムでも、コードサイズが大きくなってしまうケースは良くある、又、内部レジスターは16ビットなので32ビットの演算では、さらに遅くなるので、場合により汎用のクラスは改修する必要もある。
32ビットマイコンは、プログラミングにおける基本的な制限はほぼ無いので、開発のしやすさや、リソースの再利用性から、少々コストが高くなっても選択したい理由となる、それでも@1000くらいだと、少し考えてしまう・・

マイコンの選択は、単純に、フラッシュの容量と内臓RAMサイズ、動作周波数などだが、マイコンの販売価格を見るに、非常にCPの高い製品がある事に気がつく。
※ARMやPIC32の価格には到底太刀打ち出来ないのだが、自分は、RXマイコンのソフトウェアー資産が豊富にあるので、ARMやPIC32よりも、RXマイコンを選択する事は十分メリットがある。
※まぁ、AVR、ARM、など各社マイコンは使った事もあるにはあるが、ルネサス社のマイコンだけにフォーカスしている人は少ないかもしれない。

RX24Tは、ブラシレスモーターのベクトル制御に特化した製品のようで、多分、エアコンや冷蔵庫などに使う目的でデザインされラインナップされた物と思う、イーサーネットやUSBは内臓していないが、他のペリフェラルが豊富で高機能なマイコンだ、そしてそれなりに安い。
※コード256K、RAM16K、データフラッシュ8K、LQFP100(10個購入時@594)
chip1stop「R5F524TAADFP#30」
※10個購入時だけど、DIY用でも10個くらいは使うだろって事で勘弁してほしい~
※RL78の256K版(@400)と比較しても、馬力を考えるとお得感がある。
※32MHzでFPU無しのRX220より安い。
※RXマイコンは、意外と命令効率が高いので、128KBの製品でも十分かもしれないが、価格差が僅かなので、256Kの製品リンクを張った。
※最近、Bバージョンが発売され、CANが使えて、RAM容量が2倍の32Kになった製品もある。(自動車向けか?)
#コード256K、RAM32K、データフラッシュ8K、LQFP100(10個購入時@657)
chip1stop「R5F524TBADFP#31」

  • RXv2コア
  • 80MHz動作(80MHz動作では、プログラムフラッシュにはウェイトが入る)
  • DSP命令(有効に使うには、アセンブラで実装する必要がある・・)
  • FPU(各種32ビットの浮動小数点命令)
  • ベクトルの正規化に威力を発揮するFSQRT(平方根)命令
  • 2.7V ~ 5.5V の単一電源動作
  • 普通に低消費電力
  • 12ビットA/D(最大1uS、3ユニット)
  • RSPI(1チャネル)※SDカードもかなり高速にアクセス可能
  • SCI(3チャネル、簡易SPI、I2Cが使える)
  • I2C(1チャネル)
  • DTC(データトランスファーコントローラー)
  • 高速で、豊富なタイマー郡(最大80MHz動作)
  • コンパレーター(4チャネル)
  • 必要十分なI/Oポート数
  • BバージョンのみCANインターフェースを備える
  • コードフラッシュの書き換え回数(1000回と少し少ない・・)

これだけの特異な特徴があり、他のRXマイコンと基本的にペリフェラルは共通。
ちょっとした用途ならこれで十分と思う、また、フラッシュROMの書き込みはシリアルで行うが(J-TAGはサポートしないが、エミュレーター専用端子FINEを持っているので、対応したE1でも当然書き込めるしデバッグもできる)、何故か、RX64Mなどと異なり、かなり高速に書き込めるので、シリアル書き込みでも開発ではあまり不自由しない。
※自分の開発スタイルでは、コードのブレークは必要としない。
※Apple、Linux、Windowsで開発出来る。
この価格帯にしては、浮動小数点がかなり強力なので、ジャイロや加速度センサーを使った姿勢制御(ロボットなど)にも、かなりマッチすると思う。
タイマーも非常に多く使えるので、RCサーボを沢山動かすのにも向いている。
多少残念なのは、コードフラッシュの書き換え回数が1000回と少し少ない。
それでも、ちょっとしたDIYボードに最適と思う。

おなじみ、レイトレーサーを走らせてみたが、約1.2秒くらいでレンダリングする。
これは、160MHz動作のESP32の10倍以上高速となっている、FPU内臓は伊達では無い。
※ピクセルの描画コストを5マイクロ秒としている。
※ESP32でのレイトレーサー速度は、ネットでの記事を参考にしており、RXマイコンに比べてあまりに遅い、ESP32はFPUを内臓しているので、ベンチマークの方法に問題があるかもしれず、単純に比較するのはフェアではないかもしれない事を付け加えておく。
200MHz動作のARMでは0.6秒との事なので、妥当なスピードと思う。

デバイスは以前に10個ほど買った(Aバージョン)ので、自分用にでも汎用ボードを作ろうと思っている。
又、折角のDSP命令も使わないのは勿体無いので、gcc 向けアセンブラ・ライブラリを実装しようと思っている、これはRXマイコン全般で使えると思う。

GitHub の「主要言語」

GitHub のホームを開くと、各プロジェクトに主要言語が表示されるー

自分の場合、以前は「C」、「C++」などで、どのようなロジックで表示されてるのか疑問だった。
調べると、コミットしてあるファイルの拡張子などから、集計を取り、一番多い「言語」を表示している事が判った。
「主要言語」が「C++」でも、「C」のライブラリなどがプロジェクトにコミットされていて、単純にCのソース数がC++ソース数を上回ると、「C」と表示されてしまう・・
※自分のプロジェクトでは、C++はヘッダーのみの場合がほとんどで、ソースは必要無いので、ソースの数は1/2で、評価が意図と異なる。
githubの検索などでは「言語」をキーに検索する事もできるので、これは、意図と違う結果になってしまう。
そこで、調べると、「.gitattribute」ファイルをプロジェクトのルートに置いて、このファイルで、集計を除外する事で、「主要言語」の評価を変えられる事が判った。

RTK5_NESEMU/emu/* linguist-vendored
ff12b/src/* linguist-vendored
zlib/* linguist-vendored
libmad/* linguist-vendored
jpeg-6b/* linguist-vendored
RX65x/drw_2d_ver1.02/* linguist-vendored

たとえば、「RX」プロジェクトは↑のように、ライブラリを除外してある。

これで、「主要言語」の評価を「C++」に出来た。

※上記の「バー」をクリックすると、ファイルと言語のプロパティが表示される。

さらに、「言語」をクリックすると、どのファイルがその言語と認識されているか詳細が表示できるので、「意図」と合わないファイルは、「.gitattribute」で、細かく指定できる。

中華製VFDで問題発生(CNC6040)

CNCの要と言えるスピンドルモーター、80mm直径、ER16、水冷式を購入、それに合わせてVFD(インバーター)も購入(HY01D511B)、物が届いたので、早速火入れをしてみた。

ところが、超低速では回るものの、周波数を上げると10Hzくらいで停止してエラーコードらしきものが表示され強制停止する。
「E.oL.A」
このエラー、マニュアルを見ても載っていない・・・
設定が悪いのかと思い、色々変更してみたが、同じようにエラー表示で停止する。
不具合の問題を切り分ける為、別のVFDに接続して回してみた(やはり中華製)、こちらでは、ギュンギュン回る、やはりVFDの初期不良のようだ、VFDの横にテクニカルサポートのメールアドレスが印刷してあるので、メールで不具合を聞いてみたら、モーターの型番を教えて欲しいとの事で、写真を撮って、メールを返した。
※英語の文書を作るのは翻訳エンジン頼みなので、イマイチだ・・・
今、ココ・・・
初期不良だとしても、送り返す手間や送料など、かなり面倒な事になる・・
まぁ仕方無い、それが中華品質だ・・・

そもそも、日本製のインバーターだと、100Vで使えるものが少ないうえに割高だし、少し調べた限りでは、100V、1.5KWはラインナップしていない。
かと言って200V用を買って、屋内配線を200V対応にするとか、かなりハードルが高い、昇圧トランスを買うにもコストが高い・・・
どうしたもんか・・・
まぁ、対応がアレな場合、修理するしか無いと思える。
それか、インバーターを自作するしか無いかも・・・

エラー表示のVFD
問題無く動作するVFD、非常に概観が似ているが、違うメーカーのようだ・・・

動作するVFDは、RS485で制御する事が出来ないようなので、追加で買ったのだが「ハズレ」を引いたようだ・・・

「RX65N Envision Kit」の紹介

Arduino や ARM には、よそ見をしないで、ルネサス製マイコンのみを扱ってきたが、
最近、ようやく、面白そうなガジェットが出てきたー

ARM界隈では、コスト度外視、メーカーでなければ出来ないような評価ボードを色々
出していて、そんなのが出る度に、ARMerたちがそこに注力するとゆー構図があった。

自分は日本人なので、「日本製マイコン使え!」と言ってはいたが、中々胸を張って、
「これはイイですよと言えない」状況が続いていた。

そんな折、マルツさんのメールニュースで、「Renesas Synergy Target Board Kit」
のアナウンスがあり、ARMベースのルネサスマイコンで、興味は無いのだけど、
リンクを観に行った。
そこで、見つけてしまい、思わず購入してした。
※自分の好きなRXマイコン、120MHz動作、液晶付、など目一杯盛り込んでいて
5000円!、しかも、何かガジェットを作った場合に、コンパクトにまとめられる
ように配慮された基板サイズ。

このボード2017年11月頃に発表されていたボードのようだが、丁度仕事が忙しく
情報を漏らしていた。

このボード、海外のソフトウェアーベンダーが音頭を取り、製作したようだが、この価格
でこの内容は、コストパフォーマンスが良すぎる。
しかも、インサーネットやSDカードを後から付けられるようにもなっているし、かなり
練られた設計となっていて好感が持てる。

ボードの特徴など気がついた部分を列挙する。
・RX65Nマイコン120MHz動作
・2MBの内臓フラッシュ
・256KB+320KBのRAM
※このメモリー空間は別なので、液晶のフレームバッファで、320KBは利用不可と思う。
・インサーネット対応「N」バージョン
※物理層PHYは乗っていないが、後から乗せられるようにパターンがある!
※25MHzのクリスタルは乗っているので、PHY(LAN8720A)、パルストランス
付コネクタ(表面実装タイプ)を取り付けるだけと思う。
・エミュレーター(簡易バージョン)内蔵なので、フラッシュの書き換えや開発が容易。
・480×272ピクセル、タッチ機能付液晶付
・RX65N内に、液晶の制御と、描画エンジンなど内臓(パフォーマンスは現在不明)
・拡張コネクターや、未使用端子の取り出しランドなど多数。
・SDカード接続用パターン有り
・マイコン用3.3V電源用に、同期整流式のDC/DCコンバーター
※5Vから降圧で動作し、効率が高い(安易なシリーズレギュレーターでは無いのが凄い!)
※液晶用バックライトもDC/DCコンバーターを内臓
・USBコネクター装備(RXマイコン用と、エミュレーター用)
・モード切替用、DIPスイッチ4ビット分(1ビットはユーザー利用可能)

今は、仕事が忙しいのだが、これをベースに色々な物を作りたいと思う。

BOSCH(ボッシュ) 高圧洗浄機 AQT33-11 ホースジョイントの改造

以前に、ボッシュの高圧洗浄機を買ったのだけど、賃貸の水道は勝手に使えないと判り、
放置してあったが、一軒家に引っ越したので、水道を自由に使えるようになった。

ただ、この高圧洗浄機のホースジョイントは、ニップルが特殊な形状になっており、専
用の物で一般的な「タカギ」製と互換性が無い、それでは、不便なので、改造してみた。

良く調べるとニップルの先端が、数ミリ余分に出っ張っているだけで、これを削ると、
タカギのジョイントが使えると考えた。


※赤いジョイントが、ボッシュ専用、透明(ポリカーボネイト)なのが、高圧洗浄機の
「ニップル」。
※先端を切断、削った後。

そこで、先端を削ってみたら、無事フィットするようになった、これで、タカギ製の、
色々なアタッチメントも使える~

中古住宅(リホーム:電灯スイッチ交換)

実際は、中古住宅購入後、真っ先にDIYした事だが・・
引越しと仕事が重なってブログを書く余裕が無かった。

パナソニックは、家電が主力なのかもしれないが、細かい部品も非常に優れた物が
多い。
それを感じたのは、何十年も前の小学生の頃だった。
親父に、コンセントが壊れたのでお使いを頼まれて、たまたま、パナソニックのコ
ンセント(部品)を買って帰ったのだが、凄く怒られてしまった、値段も少し高か
ったと思う。
※以前の物と形や大きさが違う為だった(同じものを買ってきて欲しかったと思う)
ところが、親父が、コードをネジで止めて、修繕が終わった頃にはご機嫌になって
いて、さっき怒った事を謝っていた。
なんでも、内部の細かい「出来」や「品質」、「設計」に関心した為だった。
※直ぐに、以前の物より格段に良い物だと感じたと思う。
それ以来、パナソニックの電気部品には、特別で最上のプライドを感じている。
今でも、細かい改造、改修が続けられており、より良い物に洗練され続けている。


中古物件とはいえ、スイッチが壊れていた訳ではないが、前からこのスイッチが気に
なっていたので、早速交換した。

これは、パナソニック製のほたるスイッチ「コスモワイド21」シリーズの物で、
多分、世界中探しても、この値段でこれ以上の物は存在しないとまで言えるくらいの
優れものと思っている。

※アマゾンでは、一般的な「ニ路」より「三路」の方が安いので、交換するなら「
三路」を買って、二本だけ繋げば良いと思う。

「ほたるスイッチ」は、「消灯」時にスイッチの場所を照らす淡い光が灯るもので、
以前は「ネオン管」が使われていたようだが、最近はLEDになっている。
消灯時に光らせる為、照明機器に微弱な電流を流す必要があるので、電気代が微妙に
かかるのだけど、利便性を考えると納得できる、また、スイッチは極限まで大きくて
押しやすく、とても使い勝手が良い。
また、沢山のバリエーションがあり、それらを組み合わせて、自由にカスタムが出来
る。
※当然「ほたる無し」のバリエーションもある。


4路スイッチ:
自分は工業高校の電気課を出ており、「電気工事士」の国家試験を受けて合格してい
るのだが、既に何十年も前で、又、実際にプロとして働いた経験は無い。

1つの電灯を1階、2階の二つのスイッチでON/OFFする方法は知っていた。
ところが、この中古住宅には、中二階があり、3つのスイッチで、1つの電灯を
ON/OFFしている。
どうやったらそんな事が出来るだろうと、考えたが、良い方法を思いつかない。
ネットで調べると、どうやら「4路」スイッチなるものがあるらしい。
結線図を見ると、「あーナルホド」と関心してしまったwww。
当然「コスモワイド21」にも「4路」で「ホタル」がある、ホームセンターで、
スイッチだけ購入して、入れ替えた。




交換は簡単なのだが、古いスイッチを外す際、コードのリリースボタンが固着してい
て、押しても感触が無くまったく外れない個体がいくつかあり、電線を切断して対応
した。
ビンの蓋を利用して、スイッチ金具を壁に当ててリリースボタンを押すと、力が入り
やりやすい。

中古住宅(リホーム:混合水栓の交換)

「混合水栓」の前に、トイレの「ボールタップ」を交換(結局1階、2階、両方)
した。
これが結構な値段で、1個4950円、痛い出費だったが、以前の物は、かなりや
れてて、リークはするし、手を洗うとこから水が出ないとか、もう駄目な状態だっ
た。

最初、ホームセンターに買いに行ったら、種類が沢山あり、どれを買うべきか判ら
なかったが、店員に聞いて、タンクの型番が判ればどれが適合するか判ると言って
いたので、出直した。
何でも、各メーカー(特にTOTO)、微妙に仕様の違うタンクを作りすぎて、製
品が溢れてしまい、部品の種類が多くなりすぎて管理できないような「無双」状態
らしい、それでも最近ようやく一本化したとか・・・
又、TOTOはパッキン類なども独自仕様(他メーカーに使えないようにしている
らしい)で、他メーカーと共通化していない為、TOTO製の蛇口や水周りの部品
を修理する際注意が必要らしい。
※TOTOって結構クソメーカーだったんだなぁー・・・


まず、今回購入した中古住宅の水周りで大きな問題が見つかった。
排水口の処理がいいかげんで、キッチン、洗面所で、排水パイプ(60パイ)に繋
がるホースが、ただ差し込んであるだけで、ガバガバな状態、普通はゴムのパッキ
ンなどで隙間を塞ぐが、それもしていない状態だった。

洗面台などは、そのおかげて、湿気が上がり、洗面台の下の空間がグズグズになっ
ていた、洗面台の下にある蛇口は、サビサビで、固着して使えない状態だったので、
新品に交換、洗面台も棄てて、新規に購入した。
※不思議なのは、前のオーナーは、何故、ほおっておいたのだろうか???
今回、排水パイプへの接続は、隙間の生じないタイプを見つけたので、色々加工し
て無理やり付けたが、水漏れは無い。




※エンビ用接着剤を使って、ジャバラホースとパイプなどを接着してある。

この交換は、洗面所のフローリングを修理した後にするので、今回は触れない。

さて、「混合水栓」の交換だが、かなり難儀した。

まず、古いやつはパッキンが駄目で、リークする為、最初はパッキンを交換すれば
良いと思ったが、既に製造を終了しており入手出来ないと聞いた。
そこで、最新の「混合水栓」を購入しておいた。

※ボールタップ地獄の真相を知る前だったので、TOTOを買ってしまった・・・
シャワーヘッドが外せて伸びるタイプで、水のフィルターも入っている豪華な
仕様だ、住宅を買った喜びで浮かれて高い買い物をしてしまったが、使ってみ
ると凄く便利で使いやすい、まぁこれはこれでいいかーー


古いタイプは、裏側に大きなナットがあり、それを外す必要がある。
※ここも、TOTOの製品乱発地獄の影響を受けたようだ。
このキッチンで混合水栓裏にアクセスするのは、非常にスペースが狭い。
目視の確認も出来ないので、水栓をネットで調べて、ナットの径を調査した。
その結果38mmと判り、一番安いレンチを購入したのだが、全然合わない・・
よく調べると、44mmとか46mmとか色々なバージョンがあるようだ・・・
※実際は46mmだった

また、レンチを買うのもバカバカしいので、プライヤーで回す事にして、裏板のベ
ニヤを少し切って広げ、手が入るようにしたのだが、非常に硬く締まっていて、か
なり頑張ったが、ビクともしない。

「もういいや古い水栓を破壊しよう」と言う事で、ディスクグラインダーで、切り
刻んで、無理やり外した、最初からそうすれば良かった・・・
※真鍮にメッキがしてあるのが判った。
※金属の粉だらけになった・・・

キッチンの側はステンレス製だが、0.3mmくらいのペラペラで、水栓を取り付
ける穴の裏に合板が当ててあるのだが、これがグズグズになっており、ボロボロ崩
れてくる。
このボロボロになった木屑をあらかた取り除いて、硬い合板(10cm四方10m
m、ホームセンターの木っ端売り場で購入した、フローリングの切れ端)に穴をあ
け(35mm)、接着剤を塗り、キッチンの裏に当て、混合水栓の取り付け金具を
固定した。


※裏からの作業なので、目に木屑が入らないようにゴーグルをして作業したが、口
に木屑が入った・・・


最新型の混合水栓は、固定方法が良く考えられており、5mmのボルト二本を使い
金具ではさんで固定するようになっている、金具は、上から入る(横にして入れる)
ように配慮された型をしており、落下しないように配慮されており、下からアクセ
ス出来なくても取り付けが出来るように工夫されている。

やはり、最新の「蛇口」は良くできている~

-----
モンキーレンチの正しい使い方?:

よく、車やバイクの動画で、「モンキーレンチの使い方が違う」とか鬼の首を取っ
たかのようにコメントする「ヤカラ」がいるけど、自分で整備をした事も無い、口
だけ達者な無知蒙昧なのかと思う。
と言うのも最近のモンキーレンチは、右周りでも左周りでも大丈夫なように設計さ
れており、可変サイズでも、「ガタ」が出ないような構造にしてある。
また、スパナと同じような角度がついている事で、回す角度が取れないところでも
裏、表と使う事ができるようになっている。
自分が使っているバーコのモンキーレンチもどちらで使って、力をかけてもも大丈
夫なタイプだ。(15年以上前に既にそうなっている)
また、ナットをゆるめる以外の使い方で、板を曲げたりもしているが全く問題無い。
「使い方が違う」と言っている人は、モンキーが壊れる(痛む)とか、ナットを舐
めやすくなるとか言いたいのだと思うが、それは、全く当てはまらない。
モンキーレンチは、工作精度や、仕組みを改善して、工具メーカーが進化させた新
しい工具の一つなのだ。
※こんな基本的な事は、知らなくても、使っていれば判る事なんだけどね・・

中古住宅(引っ越し編)

最近ようやく落ち着いた。

11月始め頃に山梨県大月市で中古住宅を購入。
ここに生活の拠点を移す事を計画、この計画は今年の初め頃から、中古住宅の物件を
探したり、色々情報を集めていた。
長野あたりに住む事も考えたが、大月市くらいなら、実家(埼玉)へも直ぐに帰れる
事から、大月、上の原、相模原などで探していた。

何故「山梨」かと言えば、「安い」からにつきる、それと、最近はネット環境があれ
ば仕事ができるので、都会に住む必要も無く、自然が近いところ、空気が綺麗で水が
美味しいとこなどに憧れがある。
※周りは山ばかりwww

値段が安いには理由がある、今回買った物件は、高速道路のそばであり、夜など静か
な時には、高速を走行する車の音がかすかに聞こえる、また、微振動もある。
※微振動については、下見では気がつかなかったが、それなりに揺れる。
色々不満はあるが、立川のアパートに5年住んだら、ペイできる金額なので、あまり
気にしていない。
築25年だが、それなりに綺麗で、引渡し後直ぐに住める状態、それで、4LDK、
庭付きのマイホームが入手できるのだから文句は無い。
それでも、「やれて」る部分はあるので、コツコツリホームするつもりだ、それも楽
しみと考えている。

12月も末になって、ようやく引越しも終え、立川のアパートを引き払い、住民票も
移動した。
※退去する際に、敷金を2ヶ月と、残り(日割り)の家賃を全て修繕に使い切ったの
で、1円も残らなかった・・・(言いくるまれた気もするが・・・)

引越しは、重い荷物は手伝ってもらったが、基本、ステップワゴンを使って全部自分
で荷物を運んだ。(引越屋に見積もりをとったところもの凄い金額になった為)
※多分12回くらいは往復したと思う。
※ETCの深夜割を利用したり、20号線で下道を使ったり、色々だったが、合計、
5万くらい(主にガソリン代)で出来たと思う。

苦労した点や、手順:
・かなり大きいブラウン管テレビがあったが、リサイクル券を購入して廃棄した。
・46型の薄型テレビは、かなり昔に買ったものだがまだまだ使えるので、友人に手
伝ってもらい運んだ。(最近のは軽いので一人で運べる)
・洗濯機も、壊れていたので、リサイクル券を購入して廃棄した。
・エアコンが二台あったので、自分でポンプダウン(冷媒を循環させて室外機に貯め
る操作)を行い、配管を外して、室内機、室外機を運んだ。(室外機はそれなりに重
いものの、一人で運べた)
※中古住宅購入時、ほぼ各部屋にエアコンは付いていたが、古い物が数台あるので、
自分で交換しようと思う。
・引越しの際、粗大ごみや燃えるごみなどを大量に処分したが、それでも、もの凄い
荷物が残った。(よく2DKの部屋に収まっていたものだと関心したww)
・100サイズのダンボール70箱(6900円)を使い、小物を運んだ。
・それ以外は、クリアケース、紙袋、など色々使い効率的に運んだ。
・小型フライス盤は、そのままでは重過ぎて腰を痛めそうだったので、コラムを外し
て、二つに分けて運んだ。(それでもかなり重い)
・小型旋盤は、ベアリング交換の為、分解していたので、普通に運べた。
・400リットルの冷蔵庫は、友人に手伝ってもらい運んだが、横にした為、何だか
調子がイマイチな気がする・・・(一応冷えているが・・・)
※運んだ後に気がついたが、横にしたら駄目らしい・・・(壊れたかもしれない・・)

まずは、トイレから~、この家、トイレが1階と2階にあるので、温水便座を買い足
した。

DL-WL20(Panasonic)
DL-WL20(ECカレント販売)
以前からパナソニック製を愛用していて、非常に優れていると感じる。
今回も、以前に買ったシリーズと同じだが、改修されておりより良くなっている。
以前の物は二階のトイレに設置した、まだ使えるけど、新しいのが凄く良いので、買
いなおそうかと思ってる。

今回はここまで。

RL78の開発は中断しています

RL78/G13系は、低価格で、高性能なマイコンで、R8CとRXの
中間を埋めるものとして期待して、始めたものの、以下の理由で、中断し
ている。

(1) 内臓データフラッシュのハードウェアー仕様などが公開されない。
(2) 内臓データフラッシュ操作ライブラリーは、gcc 環境では提供されな
い。

以上が、「中止」の主要因で、他にもある。
(3) 16ビットマイコン特有の、特殊な制限
(4) RX24Tの存在

(3) については、色々あるが、16ビットマイコンとは言っても、内部の
構成は8ビットマイコンと変わらず、リニアにアクセスできる領域は64
Kバイトとなっており、特別な命令により、広範囲にアクセスできる。
また、領域には特別な意味を持たせ、小さい空間を効率よくアクセスでき
るようにしているが、デバイス特有なもので、専用のコードになってしま
う。

(4) は、コストに関するものだ、RX24Tは、10個購入で@550円
なので、それでもRL78/G13に比べるとコスト高だが、32ビット
マイコンで、80MHz動作、256Kのフラッシュ、16KのRAMと、
かなりCPが高いマイコンではある。
また、あまり多くのデバイスに手を広げるのはリソースの集中の観点から
も良くないと感じる。
当面、R8C、RXマイコンに集中する。

それでも、RL78のリソースは、一通りあり、基本的にハードウェアー
特有の部分は隠蔽してあるので、特別な事をしない限り困らないと思う。
また、R8CやRXのテンプレートライブラリーと共通性がある為、コー
ドの再利用は可能と思う。

GitHub のリポジトリーはそのまま残す。

-----
RX24TはCPが高いが、RTCが無い、CAN、イーサーネットが無
いなど、ハードウェアーを制限している(元々インバーター向けの製品な
ので・・)為、後付すると、RX62系や、RX63系など、より上位の
マイコンとコストは変わらなくなるので、使い方は多少微妙だが・・・