RSS Twitter Facebook


« 2020年10月 | 2020年11月のアーカイブ | 2020年12月 »

2020/11/25

激安プロジェクターを静音化する試み


最近は中国製の激安プロジェクター製品の勢いが凄いですね。別にプロジェクターのガチ勢でもなく映れば割と何でも良い派なんですが、ちょっと手を出してみようかと評判が安定していた Vankyo V630 という機種を買って天吊りブラケットを 3D プリンタで作ったりしていました。

2万円かそこらという値段でこれならば充分じゃないですかね。安いのは安いなりの理由があるんでしょうけど。

ただ前評判でも一部指摘されていたのですが、ファンの騒音はちょっと気になります。慣れれば気にならないという話もあるようだし個人差もあると思いますが、やはり気になるレベルではあります。それなりに賑やかな場所で使うなら大丈夫だとは思いますが。

という事でどれくらいうるさいのか測定してみました。

プロジェクターの前面から1mの距離です。まずは電源を入れる前は 41.3dBA、静かな住宅街程度の環境です。そして電源投入すると52.3dBA。これがどれくらいかというと普通のオフィスくらいの音、部屋の中で人の話し声が聞こえているくらいのイメージです。

プロジェクターの左側面に吸気口があってフィルターが入っているのですが、風切り音が結構するのでフィルターが無ければ多少変わるかと思って外してみたのですが、52.0dBA、まあ誤差範囲ですね。

さて、じゃあ買ったばかりですが中身を見てみましょうか。開けるには見えているネジの他に出荷時期を示すシールの下にもネジがあります。当然保証は無くなりますが気にしない事にしましょう。

筐体を開けて左半分を覆っている黒いプラスチックのカバーを外すと大体の構造がわかります。単板のカラーLCDにLEDランプから光を当ててミラーで反射して投射レンズに行くという単純な構造ですね。騒音の元であるファンは2個あります。左上の吸気用のシロッコファン、そして右下には見えにくいですが、ヒートパイプ付きのヒートシンクがありその裏側にファンが付いています。ヒートパイプはLEDランプの熱をヒートシンクまで引っ張ってきているようです。

光の経路は黄色の線、空気の流れは赤い線です。空気はLCDの表側と裏側をそれぞれ流れるように分岐しています。

筐体を開けた状態で電源を入れると排気ファンよりも吸気シロッコファンの音が目立ちます。このシロッコファンはネジで固定もされておらずはさみこまれているだけです。

しかしこのシロッコファン、形状がちょっと変わってますね。開口部がやたら大きいです。空気の経路がそれなりに長くて空気を押し込むための圧力が必要なので静圧に有利なシロッコファンなんでしょうけど、効率とかどうなんでしょう。
ひっぱり出してみると定格は 12V 0.30A、高速でぶん回っていて風量もかなりあります。これは速度を落としてみたいですね。筐体内温度が上がって寿命に影響するでしょうけど。

オススメはしませんけど、試しに無理矢理止めてみましょうか。おー、46dBAまで下がりますね。これくらいならまあまあ気にしないでいられるレベルなんですけどね。

うーん、どうするかなあ。


取り合えずこの吸気ファンがなかったら筐体内がどうなるのか確認してみましょうか。

通常状態で排気部あたりの温度を測ると 44℃ くらいで安定します。そして吸気ファンを取っ払って電源を入れてみると 53℃ で安定。流石に常に10度近く温度が上がるのは寿命に影響しますね。LCD付近の空気の流量が極端に減ると思うので LCD のカラーフィルターが焼ける感じでしょうか。まあおもちゃとして 1~2 年程度で使い潰すくらいのつもりならありかも知れません。


他に気になる所は、シロッコファンの出口の近くで風がほぼ U ターンしているのですが、まあ基本構造は仕方ないとしてプラスチックのあまり強くなさそうな構造に風が至近距離で直接当たっているのが良くないかも知れません。少し振動が伝わってしまっている感じがします。

対策として風の通り道にブチルゴムシートを貼ってみます。

写真がなんだかわかりにくいですが、シロッコファンから風を吹き込む入口の所をブチルゴムで覆っています。これで同じ条件で騒音を測ると 51.1dBA。微妙なんですけどまあ悪い方向には働いてないようです。このアプローチでもう少しいけるかと思ってシロッコファンの周辺にかなりベタベタと貼り付けてみましたけどこれ以上の効果はなさそうです。


ここから先はファンの回転を抑えるしか無さそうですね。昔はPCのケースファン制御用に結構色んなファンコントローラがありましたけど、最近はそういうのは減ってるんですかね。Amazonで見つけた何用だかわからないファンコントロールモジュールをシロッコファンに仕込んでいきます。

さて、これで回転数を割と自由に制御できるようになりました。やはりシロッコファンの回転数を下げると騒音レベルはかなり下がりますが、排気ファンは通常通りに回転していますのである程度以下は排気ファンの方が支配的になります。

正確な回転数はわからないので、回転を落としていった時の騒音レベルと温度の関係を何点か測定すると大体の様子がわかります。ファンがフル回転時に44℃だったのが回転を落としていくと温度が上がり始め完全に停止すると53℃になります。温度上昇を3℃くらいまで許容すれば47dBAくらいまで騒音レベルを落とせます。勿論多少なりとも温度上昇の悪影響はあるでしょうけどバランス的にはこれくらいにしたい所ですね。

という事で、騒音レベルは 47.5dBA 排気部の温度が +3℃くらいの所に設定してみました。これがどれくらいかというとエアコンの静音設定くらいの音でしょうか。これ以上の静音化を目指すなら排気ファンの方にも手を入れる事になりますが、実際の所それならまずエアコンをなんとかする等も考えた方が良い気がします。

しばらくこれで様子をみましょうか。


なお、これらの試みは基本的にいじくりまわすのが目的なので、ぶっ壊す覚悟がなければやってはいけません。温度の上昇は確実に劣化の要因になるので、普通に映画を鑑賞する事が目的ならメーカーが保証する基本性能で自分が満足するものを買った方が幸せになれると思います。

posted by g200kg : 12:39 AM : PermaLink

2020/11/18

RFリモコンの割と残念な連携


家には結構以前から Nasnos 製の電動カーテンを導入しています。電動ブラインドやカーテンの老舗ブランドです。特に必要があったわけでもないのですが面白そうだったので。これ、以前にニトリの電動カーテンとして OEM 供給されていたようなので同じものを持っている人はそれなりにいるんじゃないでしょうか。

これでリモコンによる開閉とタイマーによる朝夕の開閉が自動化できるのですが、残念ながら Amazon Echo などの AI スピーカーとの連携には対応していません。問題はこのリモコンが良くある赤外線リモコンではなく 315MHz帯を使うRFリモコンという奴で、そのため学習リモコン系のスマートホーム連携用のブリッジ等が使えません。

更にこのリモコン送信機は技適マーク付きの小電力無線機器になっています。こうなると送信機を改造する事もできず、厳密には分解した時点で二度と電波を出してはいけないので、解析もままなりません。AIスピーカーがブームになってから、そのうち Nasnos でも対応するのではないかと思って期待しつつ待っていたのですが、残念ながらその兆しもありません。

そうこうしている内に他社から AI スピーカー対応を謳った電動カーテン製品が出てきたのですが、その中のひとつ、LinkJapan 社製の電動カーテンを見て理解しました。「これメカ的には Nasnos のものと同じ」。つまり Nasnos がメカを供給して LinkJapan が AI スピーカー対応部分を作っている、と。Nasnos ではもう自社製品として AI スピーカー対応をする気がないのではないかという気がします。しかし LinkJapan の製品はもちろん別会社の別製品なので AI スピーカー対応部だけアドオンできるようなものでもなく、LinkJapan に乗り換えるなら Nasnos 製品を捨てて全取っ換えしかないし、ほとんど同じものを買いなおすというのも気が進みません。いや、Nasnos のメカ部分は結構長く使っていますがへたりも無く、優秀なんですよ。

取りうる手段としては物理的にリモコンのボタンを押すか同じ信号を小電力無線ではなく微弱無線で出す機器を一から作るか、くらいしかなさそうです。という事で、残念な方法ではありますが現実的な解としては、物理的にリモコンのボタンを押すというので良いんじゃないかなという気になってきました。スイッチボットのボタンを押す奴なんかもありますしね。

で作ったのがこれ

スイッチボットの指ロボット2つでリモコンのキーを押します。押す位置の調整が思ったより微妙で、輪ゴムで押さえる力の調整をしてなんとか動いている状態です。まあ動いているから良いかと思いますが。


なお、もう少しちゃんとしたものを作るのなら、電波を解析して信号をクローンし、Strawberry Linux で売っているこの辺のモジュールを使って送ればなんとかなるかもしれません :

微弱無線モジュール(315MHz送信)

とりあえず現状のでも動いてるし面倒なのでやらないですけど、誰か作らないですかね。

Nasnos
LinkJapan

posted by g200kg : 3:11 AM : PermaLink

2020/11/15

Philips Hue 分解


家の電球をスマート電球、Philips Hue 化して半年、どうやら10球中の1球が死亡した模様です。せっかくなので中身を見てみたいですね。

1球だけ点灯しない...

Philips Hue の電球です。これは色の変化なしのバージョンです。電球が直接 Bluetooth、Zigbee の電波を飛ばすので技適マークがついています。

かなり硬い材質の半透明部分をなんとか切り取りました。LED がアルミ基板上に24個実装されています

土台部分のプラスチックとアルミを無理やり引きはがすと基板が見えてきます。

基板取出し成功。この縦に付いている小さな基板が無線関係のようです。

メイン基板の裏にも結構な部品があります。ちょっと煤けた感じはするけど、見た感じでは特に重大な問題はない様子です。

無線基板を拡大。どうやら MCU はシリコンラボの EFR32 Wireless Geckoです。枝番がかすかに読み取れるのは「MG13P8」 かな。なんだか基板のシルクが汚いですね。元々アウトレット品だったせいでしょうか。

無線基板の裏にある上に向かって弧を描いているのがアンテナパターンですね。


中が見たくなったのでいきなりバラしてしまいましたが、冷静になって考えると無線の設定が吹っ飛んだだけで設定をやり直せば正常に戻ったのかも。後の祭り。高い電球なんだから半年で壊れるのはちょっと勘弁です。

posted by g200kg : 11:03 AM : PermaLink

2020/11/08

Arduino Nano Everyで高速PWMする例


Arduinoをそのまま組み込みで使う時にNanoを良く使ってたのだけど、そろそろ新機種である Nano Every に主力を移すべきかと思ったりもするのですが、完全に上位互換というわけではないので結局はケースバイケースかなと思います。

Arduino NanoArduino Nano Every
MCUATMega328pATMega4809
Flash32KB48KB
SRAM2KB6KB
EEPROM1KB256B
クロック最大16MHz最大20MHz
USBコネクタUSB MiniUSB Micro
価格純正品なら Nano Every の方が安い。※ただし互換品を探すと Nano の方が安い。
互換性Arduino IDE ベースでの互換性はそこそこ。タイマー周りはちょっと怪しい。


MCUが違うのでしょうがないのだけど、特にレジスタ直叩きでオーディオ周波数の波形生成なんかをしている場合は Every に移植するのは結構面倒です。 という事で、Nano Every で高速PWMによるサイン波生成のサンプルをメモしておきます。

ATMega4809 のタイマーは TCA というのが1つと TCB というのが4つで 328P とは全く構成が異なります。 クロック 16MHz を TCA0 で 512 カウントしてサンプリング 31.25kHz、9bit、これに PWM をかけて 440Hz サイン波を生成します。出力は Pin9 (PB0) 固定。

レジスタの定義はどこかでされているような気がするけど、取り合えず ATMega4809 のデータシートを見ながら全部このファイル内に置いてみました。


// Sin Wave Generation for Arduino-Nano-Every
#define PORTMUXBASE (0x05e0)
#define TCA0BASE (0x0a00)

#define TCAROUTEA (*((uint8_t*)(PORTMUXBASE + 0x04)))
#define TCA0CTRLA (*((uint8_t*)(TCA0BASE + 0x00)))
#define TCA0CTRLB (*((uint8_t*)(TCA0BASE + 0x01)))
#define TCA0CTRLC (*((uint8_t*)(TCA0BASE + 0x02)))
#define TCA0CTRLD (*((uint8_t*)(TCA0BASE + 0x03)))
#define TCA0PER (*((uint16_t*)(TCA0BASE + 0x26)))
#define TCA0CMP0 (*((uint16_t*)(TCA0BASE + 0x28)))
#define TCA0CMP0BUF (*((uint16_t*)(TCA0BASE + 0x38)))
#define TCA0INTCTRL (*((uint16_t*)(TCA0BASE + 0x0a)))
#define TCA0INTFLAGS (*((uint16_t*)(TCA0BASE + 0x0b)))
#define TCA0OVF_vect  _VECTOR(7)

float fdelta = 440.0 * 512 / 16000000.0;
uint16_t phase = 0;
uint16_t delta = (uint16_t)(fdelta * 32768);

int16_t sintab[512];

void setup() {
  for(int i=0; i<512; ++i){
    sintab[i] = 256 + sin(3.14159 * 2 * i / 512) * 255;
  }
  pinMode(9,OUTPUT);                // Pin9=Output
  TCAROUTEA = 0x01;                 // TCA0 PWM to PORTB
  TCA0CTRLA = 0x01;                 // PRESCALE : CLKSEL = fclk_per, peripheral Enable
  TCA0CTRLB = 0x13;                 // CMP0EN, SINGLESLOPE
  TCA0CTRLD = 0;                    // SPLIT mode=off
  TCA0INTCTRL = 0x01;               // Enable TCA0 OVF interrupt
  TCA0PER = 511;                    // Counter period = CLK / 512 (16MHz:31.25kHz or 20MHz:39.0625kHz)
  TCA0CMP0BUF = 100;                // PWM Value (0 - 511)
}
ISR(TCA0OVF_vect){
  TCA0INTFLAGS = 1;                 // Clear Interrupt
  phase += delta;
  if(phase >= 32768)
    phase -= 32768;
  TCA0CMP0BUF = sintab[phase >> 6]; // Set PWM value
}
void loop() {
  // put your main code here, to run repeatedly:
}


結果 : Pin9 出力に RC 一段入れただけなのでキャリアが乗ってしまっているけどこんな感じ。

posted by g200kg : 10:14 AM : PermaLink

2020/11/04

組み込み系ArduinoのKiCAD用ライブラリ公開


組み込みにそのまま使えそうな 600mil 幅の Arduino の KiCAD 用のライブラリを 3D モデル付で公開しました。
Arduino Micro、 Arduino Nano、 Arduino Nano Every、 Arduino Pro Mini、 Sparkfun Pro Micro の 5 種類です。

GitHub に置いてあります。
https://github.com/g200kg/kicad-lib-arduino

ライセンスは Creative Commons CC0 にしてありますのでご自由にどうぞ。

KiCAD では GitHub から直接フットプリントを読み込むこともできますが、反応速度の問題もありますので、ローカルにコピーして自分の環境に合わせてパス等を設定する方がおすすめです。

なお、3D モデルは .x3d フォーマットです。KiCAD の推奨フォーマットは .wrl なんですが .x3d でも問題なく読み込めます。Blender でモデルを作る時は .wrl を直接吐けないので .x3d で出力するのが良さそうです。

シンボル

フットプリント

3Dモデル

posted by g200kg : 2:10 AM : PermaLink

« 2020年10月 | 2020年11月のアーカイブ | 2020年12月 »


g200kg