家庭用コピー機の故障 [電子工作]
家庭用コピー機が故障しました。
コピーをとると、「画像が流れる・画像がボケる」という現象が発生しました。メーカーのQ&Aのページは「不良サンプル画像」以外はまったく使いものになりません。Q&Aには、故障「以外」でそういう現象が生じる状況が書かれていますが、私は最初から「故障」を疑っているんです、不良サンプル画像と同じような状況ですけどね。
さて、コピー機自体はFC230という大昔の機種ですが、去年、購入以来初めてトナーを交換しました。
確かに、「交換したトナーがなくなるころには、おそらく買い替えだな」とは思っていましたが、まだトナーが大量に残っている状況ですのでなんとかしたいと思いました。
画像が流れるのは用紙送りがうまくいかない場合に多いのですが、ボケは原稿が浮いているなどで発生します。
ですので、まず紙送り、そして念のためドラムにゴミがついてないかも確認しました。
…紙送りのローラーには問題となるほどのゴミはついていません。ドラムも非常にきれいです。はて?
よくよく機械の中を見ると、右端と左端が異なっていました。つまり、片側はバネで止まっており、もう一方はバネがはずれています。なるほど、このバネで紙を押さえるなどしているのでしょう。バネがとれたら、押さえられず流れとボケが発生しますよね。ふむ。
で、これ直るの? 正常な方をみると、ともにプラの爪にバネを引っ掛けています。バネがとれている方をみると、片方のプラの爪が折れています。ダメじゃん。
テンションがかかるところ、特に「バネの引っ掛けにプラを使って、この爪が折れて故障」、という事象は、実はこのコピー機が最初ではなく、東●のビデオデッキが最初でした。●芝の方は、爪が細すぎたのか、プラの材質が脆弱だったのか、バネのテンションが高かったのかわかりませんが、早々に爪が折れてしまい、修理する方法がなく廃棄せざるをえませんでした。このときに「テンションがかかる場所をプラの、細い爪にするとはどんなクソ設計だよ」と思ったのを覚えています、そいつはUIも最低でしたし。
2つの機械とも生産の時期的に同じでしたので、あのころはそういう設計が当然のようになされていたのかもしれません。「保証期間だけ保てばいいや」、「いつまでも使われちゃ次の製品が売れない」なのかもしれませんが、その最たるものが「ソ●ータイマー」で、痛い目にあったユーザはそのメーカーを避けるようになりませんでしたか? だから、そのメーカーの「現在の状況」があったりするのではないでしょうか?
話が逸れていますね、修理に戻しましょう。
警告:ここで書くような修理についてはすべて自己責任で行わなければなりません。保証がなくなることはもちろん自ら行なった修理に基づく事故などは、すべて自分で責任を負わなければなりません。自ら試そうという方は、それを理解したうえで実施してください。
この折れた爪を直すことはできません。どんな強力な接着剤でもテンションがかかるため長持ちしません。困りました… !? いい方法が見つかりました。要するに、バネを留められればいいんですよ。つまり、その後ろの大きなネジに留めてやればいいのです。針金で輪を作ってネジに留めればよいでしょう。
針金は細めで2重のほうがよいですが、手持ちはやや太めの錫メッキ線しかありませんでした。あまり太いとネジが飛び出てくるので、何かに引っかかったりしないか心配ですが、ともかく、それでやってみます。
左のようにしました。
さて元に戻して試しにコピーしてみます。特に詰まることもなく、流れもボケも直ったようです。一安心です。が、いずれ他のプラの爪も折れるでしょうから、いつまで使えるのか、やはり心配です。
ところで、今でもバネを留めるのに、当然のようにプラの爪を使っているんでしょうかねぇ。修理窓口での統計から故障箇所と故障の原因は直ちに分かるはずですが、やはり資本主義の短期的ルール(短期的利益)は倫理に勝っているのでしょうか、それとも、かつての日本製品のように資本主義の長期的ルール(信頼を利益に)を選んで、丈夫で長持ちに回帰しているのでしょうか。
MSP430G2231によるeZ Probe [電子工作]
ソースのライセンスは
giftware, as is, no warranty, restricted to hobby useとあります。
you cannot use this software for commercial gains w/o my permission
if u are building software releasing it based on this,
u should retain this message in your source and cite it's origin
otherwise just take whatever code snipplets you need
もともとのeZProbeのページはmsp430f2012、通称クラゲを使って、さらにもともとのeZ430を改造してロジックプローブにしています。追加のf2012を買った上でeZ430を改造してしまうとなると、かなりのコストがかかります。参考までに、digikeyでは(2011年9月当時)f2012が340円ほどとeZ430が2040円で、合計2380円です。
でもLaunchPadという安い600円ほどのものが出て、そこにDIP品2個、msp430g2231とg2211が付いて、書き込みボードが付属してます。開発環境(ツール)はgccのほか、IARのKickStartなら無料です。
f2012とg2231は非常によく似た石です(まぁ、その違いのためにちょっと悩まされたわけですが)。なら、g2231を使ってeZProbeをつくろう、と思い立ったわけです。
まず、開発環境ですが、IARのEWBはよくできていますので、私はそれを使っています。KickStartなら無料ですし、g2231で使う分には十分です。なれた人なら、gccを使うのもよいでしょう。
さて、eZProbeのプログラムをダウンロードしてコンパイルします。IARで、CPUの設定等を行なってコンパイル! エラー。そうですよね、石が違うんだから、includeファイルが違いますよね。コンパイル!
まだエラーがでますね。includeを増やして、コンパイル!
で、残るは、BCR1とDCOの設定値。これがf2012とg2231との差で、廉価版のg2231は、1MHzの値しか持っていません。で、12MHzの設定は... UserManualを見ると... REFx=14,MODx=0,DCOx=3あたりみたいです。おっとXT2OFFもね。まぁ、発振周波数にかなり幅がありますが、今のところは放っておきましょう。必要なら後で、パルス出力モードを使って測定して、周波数を追い込んでください。
ここまでの状態で、LanunchPadではLEDが光ってます。右下のP1.6/A6がプローブピン、P1.7がモード切り替えスイッチです。P1.7を手で触ると、LEDの光り方が代わり、モードが変わっているのがわかります。
LaunchPadをそのまま使ってeZProbe(というより、LaunchPadProbe、略してLPProbeですね)とするなら、せっかくならLaunchPadにあるスイッチを使うようにそれらのポートを入れ替えてコンパイルしましょう。ダウンロードして実行すると、今度は、スイッチでモードLEDが切り替わりました。
私は、小さな蛇の目を買ってきて配置しました。LEDも光りすぎないように集合抵抗を入れて(プログラムで間欠点灯しているので抵抗なしでもOKだと気がついたのは組んだあとでした)、じゃぁ、テスト! あれ、光りませんね。
LaunchPadで動くのだから、プログラムはされています。何がおかしいのでしょう... LaunchPadの回路図を調べてみますと、RST#/NMI/SBWTDIOがプルアップされています。あ、オープンじゃダメみたいですね。蛇の目上ではデバッグしませんから、これをVcc直結にしてしまいましょう。テスト!
LEDが光り出し、スイッチポートを手で触れるとモードが変わります。が、どうもProbeができていないのか、表示が変わりません。はて? A6ポートを壊しましたかね?
も一度LaunchPadに戻してデバッガでみると、スイッチポートのon→offのリリース待ちでループしています。へ?
Webのページをみると、eZ430でケースに入れて作ると、そのピンは外部プルアップされているので内蔵プル抵抗を付ける必要すらない、とありました。なるほど。eZ430ではないのでプルアップが必要ですね。
確か、msp430はプル抵抗を設定できたはずですので、それでプルアップしてしまいましょう。えーと、どうやるんだっけ? UserManualをみると、INポートに設定して、REGをenableにして、OUTポートに1を書けば、プルアップになりますね。ダウンロードして実行!
動きますね。Probeでmsp430の足を触るといい感じです。妙なタイミングの信号も見えます。あと、手で触るとノイズのようなものも。
ソースのパッチは後ろに。なお、動作は保証しませんので、At your own riskで。
さて、じゃぁ、あとは、A6を保護するための回路を追加しなければなりませんね。msp430は、Vccが3.6Vmaxで、A6はVccが最大。逆電圧も防がないといけません。印加は5Vがありうるものとして、最大15Vくらいを考えましょうか。
さて、あとは規格を考えるわけですが、Vcc=3.3Vとして、プローブへの印加5Vが普通だとすると、Rmは電流が(5-3.3)/Rm=1.7/Rmで、電力は(5-3.3)^2/Rm=2.89/Rmです。1/4Wタイプだと12オームです。
で、これが、15Vとなると、電力が11.7^2/Rmになり、548オームとなります。となると、560オームですな。
このとき流れる電流が11.7/560=20.9mAなので、保護ダイオードには21mAが耐えられるもの... 普通ので大丈夫ですね。
保護抵抗はどうでしょうか? Vcc=0として流れる電流は(15-0.3)/560=26.3mA。これだと、387mWで抵抗がもちませんが、まぁそれはそれとして、ダイオードを流れる電流としては、かなり少ないので50〜100mA品なら大丈夫でしょう。
手に入りやすそうな保護ダイオードとして、1SS319を使うことにしました。1チップで2個のダイオードが入ってますし、なんとかDIPの蛇の目パターンに乗りますし。
電源は、単4型2本でスイッチ付きがありましたので、それを買いました。
で、主にロジックプローブとして使いますので、モード切り替えスイッチは省略しました。モードを切り替えるときには、GNDのクリップでmsp430の足を触ればよいでしょう。
さて、実際にプローブをあてようとしてみると... ??? なぜターゲットに触る前に点滅する???
プローブの線を普通の線にしたのが間違いです。誘導でA6が電圧を拾っているようです。入力インピーダンスが高すぎですねぇ。ま、ともかく、これはシールド線を使えば良くなります。
シールド線に変えたら線のほうでは誘導を拾わなくなったのですが、まだプローブ(ICクリップ)の先のほうでは拾ってしまいます。なんという繊細さでしょう。使うのが難しそうです。クリップを引っ掛けては手を離し...みたいに。
ところで、このLED、どう見るのでしょう? というか使い方は?
Webページからすると、
- スイッチを長押し(1.5秒)することによって、測定・発信器の3つのモードを切り替えられる。
モードLEDはLED0 (P1.0):
消灯:プローブモード
点灯:パルス出力モード
点滅:PWMパルス出力モード - プローブ時のレベル表示(LED0 (P1.0)が消灯)
赤LED1 (P1.1)点灯:High
緑LED7 (P2.7)点灯:Low
2つとも消灯:Floating
2つとも点滅:100Hzを越えるパルス
黄LED2 (P1.2):
点灯:100Hz〜
点滅:10kHz〜
黄LED3 (P1.3):
点灯:500Hz〜
点滅:50kHz〜
黄LED4 (P1.4):
点灯:1Hz〜
点滅:100kHz〜
黄LED5 (P1.5):
点灯:5kHz〜
点滅:500kHz〜
なお、単一パルスの場合は、赤と緑が点灯のまま、最大8回まで黄色LEDが光る(らしいです)。 - パルス出力モード(LED0 (P1.0)が点灯)
このモードのとき、スイッチを短く押すことによって、9段階の出力周波数を変えられる。
黄色LEDの表示で周波数が分かる。
100Hz, 500Hz, 1kHz, 5kHz, 10kHz, 50kHz, 100kHz, 500kHz, 1MHz - PWMパルス出力モード(LED0 (P1.0)が点滅)
このモードのとき、スイッチを短く押すことによって、9段階のPWMパルス出力を変えられる。
黄色LEDの表示でPWMパルス出力が分かる。
0%, 12.5%, 25%, 37.5%, 50%, 62.5%, 75%, 87.5%, 100%
この下はG2231とLaunchPadで動作させるためのパッチ (なお、動作は保証しませんので、At your own riskで):
- USE_MSP430G2231をdefineすると、G2231用になります。
- USE_LAUNCH_PADをdefineすると、LaunchPad用に、P1.3とP1.7を入れ替えます。つまり、S2がモード切り替えスイッチとなり、代わりにP1.7に黄色LEDを接続します。
--- ../ezprobe.c 2011-09-02 03:11:36.000000000 +0900
+++ ezprobe.c.g2231 2011-09-05 03:34:44.000000000 +0900
@@ -69,23 +69,49 @@
december 2010
built with msp430-gcc
******************************************************************************/
+#define USE_MSP430G2231 1 // if use g2231, not f2012
+//#define USE_LAUNCH_PAD 1 // if use LaunchPad, swap P1.3 <-> P1.7 for button.
+#ifdef USE_MSP430G2231
+# include <msp430g2231.h>
+ typedef unsigned char uint8_t;
+ typedef unsigned short uint16_t;
+# ifdef __cplusplus
+# define __READ /* not supported */
+# else
+# define __READ const
+# endif
+// G2231 dosnt have CALxxx12MHZ values in InfoFlash, have only 1MHZ values.
+# define CALBC1_12MHZ 0x8E
+# define CALDCO_12MHZ 0x60
+
+#else //-USE_MSP430G2231
#include "signal.h"
#include <msp430x20x2.h>
+#endif //-USE_MSP430G2231
+
+
#define MODE_PROBE 0
#define MODE_SIGGEN 1
#define MODE_PWM 2
#define MODE_PWMHI 3
#define ADC_CH INCH_6
+#ifdef USE_LAUNCH_PAD
+#define P_BUTTON (1<<3)
+#else //-USE_LAUNCH_PAD
#define P_BUTTON (1<<7)
+#endif //-USE_LAUNCH_PAD
#define P_PROBE (1<<6)
#define P_LO (1<<7)
#define P_HI (1<<1)
#define P_IND (1<<0)
+#ifdef USE_LAUNCH_PAD
+#define P_RANGE (((0x0f<<2)&~0x08)|0x80)
+#else //-USE_LAUNCH_PAD
#define P_RANGE (0x0f<<2)
-
+#endif //-USE_LAUNCH_PAD
#define P_LEDS (P_HI|P_RANGE|P_IND)
#define S_LOGIC (1<<0)
@@ -207,6 +233,14 @@
P2SEL = 0x00;
P1DIR = P_LEDS;
P2DIR = P_LO;
+#ifdef USE_MSP430G2231
+ // G2231 must be pull-up of P1.7 to USB D+ (for button)
+ // but launchPad has external-pullup.
+#ifndef USE_LAUNCH_PAD //-USE_LAUNCH_PAD
+ P1REN=P_BUTTON; // pull enable
+ P1OUT|=P_BUTTON; // pull-up
+#endif //-USE_LAUNCH_PAD
+#endif //USE_MSP430G2231
//________________ we need wdt to control led brightness
IE1 |= WDTIE; // enable wdt interrupt
_BIS_SR(GIE); // enable interrupt
@@ -310,7 +344,12 @@
__bic_SR_register_on_exit(CPUOFF); // Clear CPUOFF bit from 0(SR)
}
-static uint8_t bar[] = { 0x00, 0x04, 0x0c, 0x1c, 0x3c, 0x04, 0x0c, 0x1c, 0x3c, };
+#ifdef USE_LAUNCH_PAD
+static const uint8_t bar[] = { 0x00, 0x04, 0x84, 0x94, 0xb4, 0x04, 0x84, 0x94, 0xb4, };
+#else //-USE_LAUNCH_PAD
+static const uint8_t bar[] = { 0x00, 0x04, 0x0c, 0x1c, 0x3c, 0x04, 0x0c, 0x1c, 0x3c, };
+#endif //-USE_LAUNCH_PAD
+
//______________________________________________________________________
#ifdef MSP430
interrupt(WDT_VECTOR) WDT_ISR(void) {
BBEイコライザ [電子工作]
ところで、私のもっているiAUDIO、音声のイコライズに、BBE Sound社のBBEが付いています。ヘッドフォンで聞いていると、このBBEが実に良いのです。楽器とボーカルが同一平面にあるように感じるとき、BBEを使うと明らかにボーカルが前面に出てきます。音が痩せるという意見もあります(確かにそのとおりです)が、ヘッドフォンで音量を絞って聞いているときはあまり音痩せがありません。さらに言うと、加齢とともに、(モスキート音が聞こえなくなると同時に)雑音や楽器の中のボーカルが聞こえにくくなってきます。それを補うためにもBBEは効果があるように思います。なにより、音量を上げなくてもボーカルが聞こえるようになる、というのが良いです。
最近、大変古いTV番組の再放送を見ているのですが、そのTV音声が聞きづらいのです。昔のものなので、音声が、特に高域が下がってしまっています。単にTVの音質で高域を上げただけではうまく聞こえません。で、BBEなら?と思いました。
早速、BBEの付いたイコライザを探してみます…。BBE Sound社のBBE SONIC MAXIMIZERなどがヒットしますが、結構高いですね。も少し探してみると、バッファローコクヨサプライのクラスDアンプ(スピーカー付) BSSP10がBBEを搭載しています。安いところで実売6000円程度なので、買うことにしました。
実は、BBEのICはJRC製のものがあり、そのデータシートがインターネットで入手可能で、そこに参考回路図も載っています。ですので、自作も考えたのですが、よくよく読むと、そのチップを買うには「まずBBE Sound社とライセンス契約が必要」とありました。不可能ではないのでしょうが、まぁ個人でICを1個買うには敷居が高すぎるようです。
で、BSSP10を入手しました。早速あれこれと聞き較べてみたのですが… 結果、わかったことは、「BBEはヘッドフォンを使っているときに特に効果が高い」ということでした。スピーカーでは、音痩せがかなり目立ちます。また、昔のTV番組の音声にBBEを使っても、あまり効果はありませんでした。ただし、主題歌などではBBEが効果を発揮します。
さらに、困ったことに、このBSSP10のクラスDアンプ、常に「シャー」という、テープのヒスノイズのような雑音が出ています。このノイズは誰でも分かるでしょう。たったひとつの例だけですが、それでも私の中で「クラスDアンプは使い物にならない」という経験則が刻まれました。安物だとしても、これは酷い。
さて、どうしましょう? BSSP10のクラスDアンプを使わずにBBEイコライザとして使うことはできないでしょうか? しかし、BSSP10は、LINE入力→スピーカー出力/ヘッドフォン出力しかありません。スピーカー出力は、BTLなので下手なことはできません。ヘッドフォン出力を使うという手もありますが…
警告:
以下の内容については、その実施内容とそれにより生じる危険性を十分に理解している人しか行なってはいけません。BSSP10の取扱説明書にも「分解・改造・修理を自分でしないでください」と明記されています。
もし実施される場合は、ご自身の判断と責任において行なってください。
改造しちゃいましょう。どうせBBEのICを使っているのでしょうから。ケースを開けてみると、果たして、そこにはBBEの文字の付いたJRC製のICが。データシートをダウンロードして見てみると、ほぼ参考回路図どおりでした。ということは、BBEの出力はICからコンデンサ1個通した先です。これを引っ張り出してRCAのジャックを付けます。LINEの出力がパラになるのでインピーダンスが下がりますが、まぁ、大丈夫でしょう。この改造でLINE入力→LINE出力のBBEイコライザに早変わりです。
試してみると、BSSP10のボリュームは最高にしておくと、ほぼ入力と同じレベルの出力になるようです。ただ、ボリュームを最高にすると、どの部品だか分からないんですが、「鳴く」んですよね。多分、クラスDアンプの出力側のコイルかコンデンサあたりだと思うのですが。念のため、クラスDアンプの入力を切り離しておくのがよさそうです、省エネのためにも。0オームの抵抗を1本外すだけですが、どれを外すのかについては注意が必要です(というほどでもないかも)。
さて、この改造をしたために、わかったことがひとつ。BSSP10の前面の電源スイッチをOFFにしても、改造したLINE出力から出力されます(BBEなしの出力です)。でも、電源を抜くと出力されません。どうやら、BBEのICには、前面の電源スイッチの状態に関わらず給電されているのかもしれません。でもそれなら、BBEの機能自体も使えるようになっているとうれしかったんですがねー。