2021年1月31日日曜日

なんちゃってPoEアダプタを試してみた

先日、外出自粛でネット通販生活 などと書いていましたが、どうも通販の運気が下がってきてしまったようです。AliExpressで買ったLEDパネルは届かず、その後モノタロウで買ったものに欠品がありました。付属品が付いていなかったので、連絡をとって送ってくれるように依頼。さすがはモノタロウで素早く返信がきました。でも、今手元にあるものを引き取って新たに送るとのこと。それも引き取りと配送は別々になるらしい。足りなかった付属品だけ送ってもらった方が手間がかからずよいのだが。

さて、テレワークのために昨年導入した NECの無線LAN中継器PA-W1200EX ですが、夏には 熱暴走対策でファンを付けたり してきました。しかし、最近再び調子が悪いのです。寒いのでファンは止めてありますが、急に遅くなったり切れたりします。PC,MacBookと中継器間のリンクはありますが、その先の親機との接続が悪いようです。中継器の電源を入れ直すと回復しますが、しばらくすると再び遅くなるようです。メールの送受信はできているので気付かないでいて、Skypeがかかってくると品質が悪くて会議ができないということが何度かありました。

購入してから1年経ちませんが、もう見切りを付けることにしました。仕事のインフラなのでこんなモノにいつまでも関わっていられません。親機の置き場所を色々試したら1Fのリビングの天井近く、かつ2Fのテレワーク部屋に多少なりとも近い方に置けば、親機と直接繋いでもそれなりの品質になりそうな感じでした。ただ、天井近くに置くとLANケーブルとACアダプタのための100V配線が見えてしまい、よろしくありません。

壁に穴を開けての隠蔽配線も難しそうです。2Fなら天井裏に入れますが、1Fと2Fの間は入れません。そこで、せめて電源配線だけでもなくしたくて、LANケーブルで電源を供給するPoE(Power over Ethernet)という方法を調べてみました。正式な規格品はPoEに対応した専用の装置になり、高価で手が出ません。しかしアマゾンで以下のような、なんちゃってPoEアダプタを見つけ、799円と安かったので試しに購入してみました。"HUACAM HCP05 パワー オーバー イーサネット PoE アダプタ インジェクター + スプリッタ キット" というものです(名前が長い)。

写真上がインジェクタでLANとACアダプタの電源をマージするもの、下がマージされたものを分離するスプリッタです。分離後に電源は装置のACアダプタ端子に挿せばOK。元々はLAN接続の監視カメラに電源を供給するもののよう。


LANコネクタの拡大写真です。線が4本しか繋がっていません。カテゴリ5のTX+,TX-,RX+,RX- でしょうか。100Mpbs迄です。コネクタにでてない他の4本の線(2本かもしれない)で電源を供給しているようです。


100Mbps出るのか以下のように有線で繋いで確認してみました。反対側のルータにはインジェクタを挿してLANケーブルを繋いでします。電源は供給していません。


インターネット速度測定サイト(speedtestでググったらトップにでてきたところ)で確認してみたところ、100Mpbs弱という結果になりました。まあ妥当。

ちなみにPoEアダプタを入れずに、普通に直結したときの速度は400~500Mbpsでています。

親機のある1Fリビングでの無線LAN(5GHz接続)は500Mbps以上でています。何度か測りましたが有線より早いです。PoEアダプタを親機に入れるとこの速度がでなくなる。

電波状況があまり良くない 2Fのテレワーク部屋でも以下の速度がでていました。ただし、電波が弱いので無線接続状態を表す扇型アイコンの扇が2つ位しか表示されず不安定。


最後に無線LANの親機をPoEアダプタ経由でLAN接続してみます。電源はまだLANケーブル経由ではありません。

1Fリビングで先ほどまで500Mbps出ていたものが以下のようになりました。予想通りです。ただ上りと下りで結構な差がでているのが想定外。

無線LANがPoEアダプタで律速されて100Mbpsになるのは嫌ですね。常に100Mbpsでればまだよいけど遅くなることもありそうで、家族が同時に映画を見たりSkypeなどを使うと気になるかもしれない。

PoEアダプタを使わずに、電源も取れる場所でもう少し電波の強さなどを調査してみようと思います。今のところ手元にあるLANケーブルで届く範囲でしか調べられてないので、まずは長いLANケーブルを調達します。

2021年1月30日土曜日

マトリクスLEDパネルが届かない

これで使ったマトリクスLEDパネル を3枚(3千5百円位)追加注文していたのですが届きません。注文してからすでに2ヶ月近くたち、到着予定を1ヶ月も過ぎています。デリバリステータスを見ると原産国の倉庫で止まっており、動きがありません。

ショップに連絡したら既に発送済みなので、後は自分で調べろ的な回答でした。ひどいな。そこでAliExpressに届かない旨を連絡したら、同様に既に発送済みなので、ステータスをよく確認しろ、との自動応答が帰ってきて、あと10日待てと。

ステータスが正しければ倉庫か、倉庫を出てから行方不明になったとしか思えない。さらに春節の休みに入るのに、後10日で届く訳ないよね。

まぁ、AliExpressで買い物するというのはこういうリスクがあるという事です。ここしばらくは未着になることは無かったので油断してました。

10日経ったら再び連絡してみて、状況をアップします。乞うご期待(^_^)

2021年1月24日日曜日

外出自粛でネット通販生活

寒い週末ですね。雪にならずによかった。こんなに寒いと散歩にいく気力もなくなってしまいます。外出自粛で食料品以外の買い物には行かず、それも週に1回弱でほぼステイホームしています。その反動かネットで色々注文しまくっています。多いのはアマゾンとモノタロウ、次にAliexpress、時々ヨドバシです。寒いし、コロナ禍の中で配達してくれる皆さんに感謝です。

先日モノタロウの送料を無料にするために色々細かいものをまとめて注文したのですが、3回に分かれて届きました。これなら送料無料の閾値を下げて欲しいな。

最近届いたのはコレです。工作室の棚を増設 した際に棚板間が狭くて電動ドライバが入らず、短いドライバでコーススレッドを締めました。コーススレッドが長い上に、回すのに力が必要で手のひらが赤くなるほど。そこでL字のアダプタを購入してみました。おそらく傘歯車で回転方向を90度曲げてあるものです。

AnnexのAKL-565、業界最短38mmというものです。こんなに狭いところをビス止めすることはないと思うけど、小は大を兼ねるということでこれにしました。もうビス止めは終わっているので今すぐ必要なわけではなかったけど、必要になるときは急に必要になるので備えておきます。

ハンドルは左右どちらにでも付けられます。しかし、ビス止めするときには上から力を掛けるのでハンドルはあまり意味ないかも。試しに先日付けたビスを外して再度締めてみましたが、手のひら全体でビットの上辺りにしっかり力を入れないとビスの頭をナメてしまいそうです。

とりあえず出番がくるまで工具箱で待機です。


他にも工具関係で欲しいもの多数なのですが、今月はすでに色々と買い過ぎているのでちょっと控えておきます。カードの請求が怖い。

寒くて工作部屋に長居したくないのと、百均にプラケースも買いに行けないので、工作室の整理整頓は進んでいません。

2021年1月22日金曜日

リフロー半田用の温度コントローラ

Windows Updateの直後、INACCESSIBLE_BOOT_DEVICE エラーで立ち上がらなくなったデスクトップパソコン と ノートパソコン の復旧が一応終わりました。データは残っていたのですが、アプリがすべて消えたのでそのインストールとセットアップに手間がかかりました。

ブラウザのお気に入りはバックアップしてなくて復旧できませんでした。ArduinoIDEのライブラリもまだ全てはインストールできていません。また、これまでにビデオエディターで編集した動画のプロジェクトファイルが消えました。素材と編集結果の動画は残っていますが、プロジェクトが無くなったので再編集はできません。

このトラブルでアップが遅れてしまった、オーブントースタやホットプレート用の温度コントローラの動画をアップしました。基板のリフロー半田付けなどに使えないかと思っています。

設定温度でリレーのオンオフを行う単純制御です。動画の白熱電球は熱容量が小さいので、それなりに一定の温度になりますが、ホットプレートなどはもう少しオーバシュートが起こるかも知れません。しかし、PID制御はパラメータの調整が大変そうなので保留中です。

以下、回路図とスケッチです。バグがあるかも知れません。無保証です。また、著作権は留保しますが、改造などご自由にどうぞ。

回路の特徴は、Arduino Nanoのピンが足りない! で書いたように、7セグLEDの1桁をダイオードで作ったNOR回路で駆動していることです。

//-------------------------------------------------------------------------
//                                                            2021.1.8 naka
// オーブントースタ・ホットプレートの温度コントローラ
//
//   ・設定温度を境にON/OFFする単純制御
//   ・温度設定はロータリエンコーダで10℃刻みに上下
//   ・設定温度と測定温度はそれぞれ7セグ3桁のLED表示
//   ・温度測定は約1秒毎に行い、即時表示
//   ・稼働中はいつでも設定温度を変更できる
//   ・設定温度はEEPROMに保存され、次回起動時に反映される
//   ・温度が高くなるとオーブントースタのサーモスタットが効いて強制的にOFFになることがある
//-------------------------------------------------------------------------
#include <MsTimer2.h>   
#include <max6675.h>
#include <EEPROM.h>

// 熱電対関係
int thermoCS  = A0;
int thermoDO  = A1;
int thermoCLK = A2;
MAX6675 thermocouple(thermoCLK, thermoCS, thermoDO);
static int temp,settemp;

// 7セグLED関係
#define DIGIT_ON  HIGH
#define DIGIT_OFF LOW
#define SEG_ON    LOW
#define SEG_OFF   HIGH
const int     digitPin[]   = {9,10,11,12,13};
const int     segmentPin[] = {2,3,4,5,6,7,8};
const uint8_t segmentPattern[] = {
  0b00111111,  // 0
  0b00000110,  // 1
  0b01011011,  // 2
  0b01001111,  // 3
  0b01100110,  // 4
  0b01101101,  // 5
  0b01111101,  // 6
  0b00100111,  // 7
  0b01111111,  // 8
  0b01101111,  // 9
  0b00000000   // 10: 消灯(ゼロサプレス用)
};
static uint8_t idigit = 0;
static uint8_t digits_buff[6]; // 6桁

// ロータリエンコーダ
#define RT0     A3
#define RT1     A4

// ON/OFF出力のリレー
#define RLpin   A5
#define RL_ON   HIGH
#define RL_OFF  LOW

// 数字nをm桁目に表示する(n=10は消灯)
void displayDigit(int n,int m) {
  static int pm = 0; // 前回点灯digit
  digitalWrite(digitPin[pm], DIGIT_OFF); // 直前のdigitを消灯
  for (int i=0;i<7;i++) {
    digitalWrite(segmentPin[i], segmentPattern[n] & (0x01 << i) ? SEG_ON : SEG_OFF);  
  }
  if (m!=0) { // 1桁目のときは全てのdigitpinをoffなのでOFFのまま
    digitalWrite(digitPin[m-1], DIGIT_ON);
    pm = m - 1;
  }
}

// 7セグLEDのダイナミック表示と温度測定(3ms毎の割り込みで呼ばれる)
void dynamicDisp() { 
  static int seccount = 0;
  displayDigit(digits_buff[idigit],idigit);
  idigit++;
  if (idigit>=6) idigit = 0;

  seccount++;
  if (seccount>333) {  // 3ms * 333 = 約1秒毎に温度測定
    seccount = 0;
    temp = (int)(thermocouple.readCelsius()+0.5); // 四捨五入
    Serial.println(temp);
    upperBCD(temp);
  }  
}

void toBCD(int a,uint8_t &a1,uint8_t &a2,uint8_t &a3) {
  a = abs(a);
  if (a>=1000) a = a % 1000;
  if (a>=100)  a3 = a / 100;         // 3桁目
  else         a3 = 10;              // ゼロサプレス
  if (a>=10)   a2 = (a / 10) % 10;   // 2桁目
  else         a2 = 10;              // ゼロサプレス
  a1 = (a % 10) % 10;                // 1桁目
}
  
void upperBCD(int a) {
  toBCD(a,digits_buff[3],digits_buff[4],digits_buff[5]);
}
  
void lowerBCD(int a) {
  toBCD(a,digits_buff[0],digits_buff[1],digits_buff[2]);
}

// ロータリエンコーダのサンプリング
int sample_coder()
{
  static int code = 0;
  int code_val,code_pin0,code_pin1;

  code_val = (PINC >> 3) & 3;  // RT0,RT1=3,4 なので 3bitシフトして 0b00000011 とAND
  code = ((code << 2) | code_val) & 15; //
  switch (code) {  // デテンド位置=3
    case 0xE:
      return(1);
    case 0xD:
      return(-1);
    default:
      return(0);
  }
  delay(10);
}

void setup() {
  Serial.begin(115200);
  for (int i=0;i<5;i++) 
    pinMode(digitPin[i], OUTPUT);
  for (int i=0;i<7;i++) 
    pinMode(segmentPin[i], OUTPUT);

  // ロータリエンコーダi/oピン設定
  pinMode(RT0,INPUT_PULLUP);
  pinMode(RT1,INPUT_PULLUP);

  // リレーi/oピン設定
  pinMode(RLpin,OUTPUT);
  
  MsTimer2::set(3, dynamicDisp);     // 3ms毎にdynamic表示
  MsTimer2::start();  

  digitalWrite(RLpin, RL_OFF);
  int readtemp = (int)EEPROM.read(0); // 前回設定温度
  settemp = (readtemp / 10) * 10;     // もし10℃刻みでない値が入っていた時に10℃単位にする
}

void loop() {
  lowerBCD(settemp);  // 設定温度表示

  while (1) {
    int dir = sample_coder();
    if (dir>0) {
      settemp += 10;
      if (settemp>250) settemp = 250;
      break;
    }
    else if(dir<0){
      settemp -= 10;
      if (settemp<10) settemp = 10;
      break;
    }

    if (temp>=settemp) {
      // 設定温度以上なのでリレーoff
      digitalWrite(RLpin, RL_OFF);
    }
    else {
      // 設定温度未満なのでリレーon
      digitalWrite(RLpin, RL_ON);
    }
    
  }
  EEPROM.write(0, settemp);

  delay(100);
}

2021年1月19日火曜日

ノートパソコンまで起動しなくなった

先程ノートパソコンを起動したら、デスクトップと同じINACCESSIBLE_BOOT_DEVICEで立ち上がらなくなった。絶対Windows Updateの所為だよな!


何度再起動してもダメだった。

もうWindowsなんか使いたくない。

2021年1月17日日曜日

Windows10が起動しなくなった(T_T)

今日のお昼頃、Windows Updateか何かで再起動を促すダイアログが出たので、再起動したらWindowsが立ち上がらなくなってしまいました。

なんだよこれ。初めて見た。停止コード:INACCESSIBLE BOOT DEVICE ってブートレコードが壊れたの?!
再起動したら今度はこれがでます。

詳細オプションを選ぶと「デバイスの使用」というメニューがあったので、念のために作っておいたUSBメモリの回復ドライブを挿してみました。

すると、「ドライブから回復する」というのがでましたが、個人用ファイルとアプリは全て削除されます、ですと。回復の意味ないよね。

 回復ドライブを使わないトラブルシューティングのメニューには以下のような個人用ファイルを保持することができる初期化がある。ホントかどうか分からないし、これで復元できるか分からないので、まだやってない。

ネットで見つけたMBRの修復を試みるも、/fixboot はアクセスが拒否された。
他にも、最新のWindows Updateをアンインストールしたり、復元ポイントまで戻したが直らない。

どうしよう。
絶対Windows Updateが悪さしたのだと思う。腹立たしい。もう少しネット情報を探してみます。

--
'21.01.17 18:45追記

色々試しましたが、どうにもならず初期化しました。以下の「個人用ファイルを保持する」というメニューを選択。

Windowsを再インストールできて、無事に立ち上がりました。データは残っていましたがアプリが全て消えています。アプリのインストールはひとまずウィルス対策ソフト、メーラやスパムフィルタ、エディタなど最低限のモノだけです。後は必要になったらオンデマンドで入れるつもり。まだまだタップリ残っています。

こんな事で半日以上かかりました。日曜日でよかったですが疲れました。今日は午後から動画編集して工作動画をアップするつもりでしたが明日以降に延期です。

2021年1月16日土曜日

工作部屋の掃除と整理整頓中

先日、大物のDIYが終わった ので工作部屋の整理整頓を始めましたが中々進みません。ネジクギや金物などの細かい部品を整理したく100均でプラケースを入手したいのですが、これは不要不急だな、ということで外出を控えています。

外出しないでできる作業として既存の棚を改造しました。今迄、棚間が高くて無駄な空間があったので、中間の奥に奥行きの狭い棚板を追加してみました。また、モノタロウでパーツケースを購入。下記のカラフルなケースがそれです。小を8個、中を4個ですが全然足りません。

取り敢えず適当に入れてみた様子です。まだ、整理はできてないのと、入り切らないモノがこの2倍くらいあってどうするか思案中です。使用頻度の低いモノはダンボールに入れて積んでおくかとも思いますが、そうすると忘れてしまい、あるのに買ってしまうということが過去に何度もあった。

もう少しなんとかしないと。モノタロウのケースをもう少し買ってみようかとも思うけど、100均に比べると高いので躊躇。

あと、アマゾンで購入した透明ビニールのシャワーカーテンで、電子工作している場所(上記写真の左側)との間に仕切りを設けるつもり。木工作業するとおが屑や紙ヤスリの粉が飛ぶのでその対策です。この棚の前にもカーテンかけたほうがよいかも。

透明ビニールのシャワーカーテンは飛沫の拡散防止のために売れているようですね。お店の天井からぶら下がっているのがそうかも。

2021年1月13日水曜日

逆ポーランド電卓

デイリーポータルZ に 君は逆ポーランド電卓を知っているか? ~そして自作へ という記事が掲載されていました。ヤラレタ、これは自分が工作すべき題材だった。二番煎じになるが、そのうち基板を起こして作るかも。どんなものか知りたいかたは上記の記事や下記動画参照。


逆ポーランド電卓は昔、記事にも載っているHPの電卓で少しだけ使ったことがあるが、HPの電卓はキーが独特で硬いキータッチだったので敬遠してしまった。あの硬さがよいという人も多いと思うがちょっと馴染めず、逆ポーランドよりもキータッチで使わなくなった記憶がある。でも自作してタクトスイッチにすると、あの硬いキータッチのような感じになるのか。

今はiPhoneに RPNMate (App Store) という逆ポーランド電卓アプリ(下記)を入れて使っている。スタック内が見えるのがよいのと、スワイプでpush/popができるのがよい。自作するときもスタックが見えるようにしたい。グラフィックLCDを使えば小さく表示できるか?


キーに = や AC がないのが特徴です。

2021年1月11日月曜日

足掛け4年のDIYがようやく完了

ブログ記事を辿ってみると、木材を調達したのは2018年4月のことでした。カットが終わったのはその年のGW前半ホゾ穴開けが完了したのが5月末。ここまでは順調に進んでいましたが、その後、急にモチベーションが下がり停滞してしまいました。

再開したのは2年半ほど経った昨年11月。年内に完成させようとしましたが叶わず、年末年始の休みとこの3連休でようやく完成です。足かけ4年、2年9か月のDIYでした。本格的に寒くなる前に完成したよかった。これでずっと気掛かりだった作業が終わってホッとしています。作業に集中?していたので作業途中の写真はありません。

キッチンとダイニングの間の扉です。向こう側がキッチン。元々上の角が丸くなっていて洒落ているのですが、扉がつけにくいデザインです。これまではDKが一体で寒かったので冬場はカーテンで仕切っていましたが、暖房効率が悪いので扉をDIYで作ってみた次第です。扉を閉めたときの角のRを合わせるのに少々難儀。


仕上げのステインやニスがムラになってしまい、近くで見ると粗が目立ちますが、遠目ではまあまあです。費用は木材、ガラス、レール、戸車、引手、塗料、工具などで約10万円。

工作部屋からこの大物の扉がなくなったので、散らかった工具や材料などを片付けようと棚の改善と整理整頓に着手しました。工具やネジ・釘などこまごましたものを整理するケースを100均で調達してこようかと思っています。

2021年1月10日日曜日

運動量の低さに愕然

昨日、正月は完全ステイホームで過ごしたことを書きましたが、年末年始の運動量をiPhoneの歩数計で確認したらひどい状態でした。絶対に体重が増えていると思うけど怖くて体重計に乗れない。心を入れ替えて今日は午後から散歩してきました。約8,000歩。


仕事納めの25日は出勤だったのでそれなりに歩いていましたが、翌日から殆ど歩いていません。全く歩数が記録されていない日は、iPhoneを置きっ放しだったのだと思います。1月4日はDIY作業をしていたので家の中を結構動いたようです。

年末年始の2週間殆ど歩かなかったためか今日の散歩は途中で足が痛くなってしまいました。毎日動かないとすぐに身体が鈍ります。

ちなみに昨年1年間の様子は以下でした。



テレワークが始まった4月から毎朝散歩していたのですが、その前の2月3月に比べるとかなり落ちています。8月が極端に少ないのは暑さで散歩をサボった結果です。

11月も少ないですが、これは1日しか出勤しなかった影響です。他の月は3〜5日程度は出勤していたので、そこで歩数を稼いだ感じです。出勤といっても半日で帰ってきたり、短いと1時間位のこともありましたが。

運動量は減っていますがテレワークが可能な仕事と職場なのでコロナ感染リスクは抑えられています。医療をはじめ運輸、工場、販売、教育、介護など出勤して業務をされている皆さんに感謝です。ワクチン接種が始まり安心して外出できる日が早く来ることと、それまでに爆発的感染にならないことを願ってステイホームを続けています。

2021年1月9日土曜日

Arduino Nanoのピンが足りない!

年が明けてから昨日まで、ポストに郵便物を取りにいく以外はまったく外出せずに過ごしてきました。食料品も年末に購入したものでなんとかやりくり。仕事はテレワークなので、完全なステイホーム生活です。寒くて散歩もしていないため体重増加が気になります。流石に今日はスーパへ買い出しにでかけてきました。緊急事態宣言が出たあとですがスーパの人出は以前とあまり変わらない感じです。

正月休みにArduino Nanoを使ったシンプルな温度コントローラを作り始めました。以前、LCDに設定温度グラフと測定推移を表示できる オーブントースタの温度制御(続き2) を作りましたが、オーブントースタのサーモスタットが効いてしまい思うような温度制御ができなかったのでもっと単純なものにすることにしました。温度を設定し、その設定温度を閾値に単純にオン/オフするだけのものです。

Arduinoで7seg LEDのダイナミック表示をするのは初めてでしたが簡単にできました。ただ困ったことにピンが1ピン足りません。7seg LED 6桁(設定温度3桁、測定温度3桁)で13本も使うのが痛い。他に熱電対モジュール用、ロータリエンコーダ用、オン/オフのリレー出力用にもピンが必要。D0,D1 (TX,RX)ピンを使えば間に合いますが、通信用ピンを使うのは躊躇してしまいます。

7seg LEDのダイナミック点灯用にシフトレジスタを外付けすれば間に合いますが、シフトレジスタICが手元にありません。手元にあるPICでシフトレジスタを作ろうかと思いましたが、1ピン足りないだけで大げさです。


そこで、ダイオードとトランジスタで7seg LEDのすべての桁をオフにしたらオンになるNOR回路を作ってみました。通常のダイナミック点灯の桁信号は順番にひとつづつオンになっていき、どこかの桁が必ずオンになっていますが、すべてオフになる状態を設け、NORにより他の桁をオンにします。今回は最下位(右端)の桁をアサインしました。これにより5ピンで6個の7seg LEDをダイナミック点灯することができます。


このアイデアは、以前購入した水晶発振周波数カウンタテスタキットのオリジナルサイト、
Frequency counter with a PIC and minimum hardware に書かれていたもの(下図)です。周波数カウンタはカソードコモンの7seg LEDだったのでNANDを組んでいますが、今回はアノードコモンの7seg LEDなのでNORを作っています。


PICならピン数の多いものに乗り換えられますが、Arduino Nanoではそうもいかずこのような対策で回避しました。