2018年6月25日 (月)

『雨で引きこもるなら電子工作!』

これ↓ひょっとして、有名なフレーズなの?
先週、スイッチサイエンス で、ちょいとパーツを購入。
休みの間に届いていたようで、ブツは郵便ポストに入っていました。
厚み20mm、A5サイズの段ボール箱。

11

モノと伝票を取り出したら、箱の状態なんて気にしないのですが、
上蓋の裏に、何やら青文字のハンコ押されています。12

『雨で引きこもるなら電子工作!』
  ↑
これ、何かで使われた(例えばマンガとかアニメ)、有名なフレーズなんでしょか?





| | コメント (0) | トラックバック (0)

2018年6月21日 (木)

失敗! 24Vを接触させてもた

たまには失敗を。
RX220(48pin)マイコンを使った実験回路。

  ・はじめてのロータリーエンコーダー  とは、違うものです
通電しながらごそごそしてたら、24V電源がこの回路に接触!
「バチっ」っとクリップに火花が散って、マイコンが死にました。
実験用試作回路ですんで、ピッチ変換基板を使ってユニバーサル基板に組んでます。
このマイコンの手持ち、たまたまチップ単体じゃなく、ピッチ変換基板にハンダ済みのしかなかったんで、めんどうなことになりました。
チップの損傷が明らかな時の修理手法は、「基板の救出優先」で、ICの足を切断して基板から取り外しちゃいます。
この場合、基板のパターンを生かしておくのが第一。
手元にチップそのものがあれば、それを再ハンダしてプログラムを再書き込みすればよかったんですが、今回のトラブルでは、新品ICは変換基板に乗ってます。
   (・・・ICをながめながら途方にくれる私)
なんとか、実験を続けたいんで、今度は「IC優先」の作業をしなくちゃなりません。
ICを生かしたままピッチ変換基板から外す… ちょいと怖いのでパスです。
そこで、ユニバーサル基板上の変換基板(死んだICが乗っている)への配線をきちんと外し、新しいピッチ変換基板に乗せかえ、そして外した配線を元通りに。
面倒でも、こんな作業をしなくちゃなりません。
回路図と照合しながら、配線の取り外しと再配線。
これをあわてて間違ってしまうと動きませんので。

24Vが加わったかもしれない他もパーツも安心のために交換。

手間はかかりますが、しかたありません。

取り外したピッチ変換基板に乗ったIC(死んでる)。
悔しさまぎれにハンダ付けを外してみました。

11

四方向の足にハンダを盛って、コテで順に加熱。
ハンダが溶けた状態を見計らって、基板に「コン」っとショックを。
ポロリと外れます。

| | コメント (0) | トラックバック (0)

2018年6月20日 (水)

文鎮:ハンダ付け補助ツ-ル …形状違いの素材

ハンダ付け補助ツール(文鎮) 製作元の佐藤テック君から…
『こんな鉄の端材が出てきた』っと。
11

この\/の中に、丸棒とか◎パイプがはまり込むような材料です。
12

↑これの高さは66mmで切断されていますが、残材は高さ方向に長い材料になっています。

これにクリップを付ける方法(M5のタップ切り)がいくつか考えられるんで、ちょいと皆さんに相談です。

磁石をくっつけたクリップを使って想像します。
(1)斜めのところにくっつける
13

14

(2)平面部にくっつける (これまでのと同じような形)
15

16

(3)長手方向を短く切断してクリップの向きをこんなふうに

21

22


サビ落としして「黒染め」の予定です。

(1)、(2)だと重量は「500g」をちょいと超え。
クリックポストは1kg制限ですんで二つは送れません。

(3)のようにカットすると「約300g」ほどですんで二つはok。 (3)だと一つが短くなるんで、同じ材料からたくさんとれる→ちょいとお安くなる(かも)

まだ、頒布価格は決まっていませんが、いかがでしょうか?

ご希望をお聞かせください。  (こんなんいらんわ:も含めて)

| | コメント (6) | トラックバック (0)

2018年6月19日 (火)

卓上ボール盤、復活:こんなアイデアは?

ベルトがズタズタになった中華製のやすものボール盤モノタロウで買ったベルト で、無事に復活。
で、6月6日の写真 にも写っているのですが、お気に入り:自画自賛の工夫がこれ。
チャックハンドルの固定方法。
12

百均ネオジム磁石を接着して、その左右に両面テープ付きの電線押さえを貼り付けています。
これで、チャックハンドルが行方不明になりません。

 ※鉄を加工する場合、磁石に切り粉がくっつくとイヤかも。
  私らの工作では、たいていプラかアルミですんで。

| | コメント (0) | トラックバック (0)

2018年6月18日 (月)

ロータリーエンコーダでグルグル回る角度を読み取る

RX220マイコンで2相パルスカウント:グルグル回る角度を の具体的なプログラムです。
  ※初期化部分は省略
このルーチン、最新カウント値が欲しい時だけでなく、オーバーフローをチェックするため定期的に呼び出してください。
  ※表示の関係で全角スペースを使っています

/****************************************/
/*   2相パルスカウント        */
/****************************************/
// 16bit up/downカウンタのオーバーフローをチェック
// 4逓倍で1回転1200パルス
long cnt_old;        // 前回カウンタ
WORD cnt_read;       // 読み出したカウント値 0~1199
WORD cnt_offset;      // カウンタオフセット値 0~1199
#define PLS_1200  1200  // 1200パルス/360度
#define PLS_CW   736   // CW: 65536 % 1200 = 736を加算
#define PLS_CCW   464   // CCW: 1200 - 736 = 464を加算

/***** カウンタ読み出し    *****/
// 0~1199の値を持ってリターン
// 16bitカウンタのオーバーフローをチェックしながら
// カウント1で0.3度
WORD cntread(void)
{
long cnt;
WORD a;
  cnt = (long)MTU1.TCNT;         // 16biカウンタ→longに
  if((labs(cnt - cnt_old)) >= 32768L){  // オーバーフロー発生
    P30_H;             // (!!!) P30 10pin H/L
    a = cnt_offset;         // オフセット値
    if(cnt < cnt_old){       // 右回転
      a = a + PLS_CW;       // +736
    }
    else{              // 左回転
      a = a + PLS_CCW;      // +464
    }
    cnt_offset = a % PLS_1200;   // 新オフセット値:1200で割ったあまり
  }
  else{                // 通常カウント
    P30_L;             // (!!!)
  }
  cnt_old = cnt;           // 次回チェック値
  a = (WORD)(cnt % PLS_1200);     // 16biカウンタ 1200パルスで割った余り
  cnt_read = (a + cnt_offset) % PLS_1200; // オフセット加算
  return cnt_read;          // 0~1199の値
}

※出力ポート「P30」にパルスを出すことで、オーバーフローのタイミングをオシロで観察できるようにしています。

| | コメント (6) | トラックバック (0)

2018年6月17日 (日)

RX220マイコンで2相パルスカウント:グルグル回る角度を

※前記事
今回の試作(とある装置の性能評価用ジグ)、目的はグルグル回る0~360度の角度計測です。
 (0.3度分解能で)
小さなロータリーエンコーダを選んだのは、小さな起動トルク小さなイナーシャが測定系にとって魅力だったから。
形状の大きなエンコーダだと、もっといろんなパルス数のが手に入りますが、この大きさで300パルスという分解能は十分にありがたい性能です。
48ピンですが、小さくても32ビット・マイコン。
二つのタイマーカウンタ・モジュールで位相計数モード(2相パルスをカウント)が利用できます。
ハード的には、こんな感じでこのエンコーダと接続しています。
A1
  ※今回使ったのは一つだけ。 もう一系統のカウント入力は
    空いています。
イニシャルだけしておけば、ソフトであれこれしなくてもカウント値を読み出すだけで「現在位置」が分かるという仕掛けです。
ほんとにお手軽。
ただし、カウンタは16ビットなんで、カウント範囲は「0~65535」。
ソフト的に何らかの処理を入れないと、「何回転もグルグル回る用途」では使えません。
今回のエンコーダは1200パルスなんで、手を入れない場合の回転回数は「54回転」までになります。
55回転目になると「65535」を超えて一周回ってしまいます。
それを描いてみました。
Ov2

オーバーフローするかも? そんな数値の処理 では、符号付きの16ビット値を考えていましたが、今回は符号なしの数値です。
右回りでカウントアップしている時は、カウント値を1200パルス割った余り、つまり「0~1199」の値に「3」を乗じれば「0.1度」単位の回転角が得られます。
しかし、正しいのは54回転目まで。
55回転目になると、その途中で「65535→0」のオーバーフローが発生して、それより右に回ると正しい角度が得られません。
そして、左回りだと、いきなり「0→65535」となります。
ほんとは「0度→359.7度」なのに、剰余は「735」となり、角度に直すと「220.5度」になってしまい間違った値が出てきます。

通常のグルグル回らないup/downカウンタ(上限値、下限値がある)だと、16ビットの高速カウンタをベースに、定期的にオーバーフローを監視することでソフト的に上位桁を作リ出し、カウント桁数を増やします。
1mS程度の周期で監視できるのなら、ベースにしたカウンタの応答速度を低下させることなく桁数を増やせるでしょう。

ところが、今回はグルグル回る処理をしなければなりません。
上位の桁数を増やしても、いつかは頭打ちになってしまいます。

そこで、考えを変えます。
数値として欲しいのは回転角度です。
つまり、、エンコーダの1回転カウント値である「0~1199」です。
軸が何回転したのかの情報は不要です。 
    (カウント値1200以上の値は不要)
マイコンの内蔵カウンタが「カウント範囲を0~1199にする」なん
ていう機能を持っていれば良いのですが・・・
  ※コンペアマッチでゼロクリアーという機能は
    あるが、up/downカウンタでは使えない。
(1)  まずは、オーバーフローとアンダーフローのチェックです。
  前回にカウンタを読み出した時の値を覚えておき、前回値と今回値の
  差の絶対値が16ビット値の半分、「32767」より大きかったらオーバー
  フローが発生したと判断します。
    ※32767以下なら、65536←→0 の点を通過していない。
(2) 差の正負により、右回転のオーバーフローか左回転のオーバーフロー
  (アンダーフロー)かを判断します。
(3) 右回転のOVFなら、「一周分65536を1200で割った余り=736」を、
  今回カウンタの値から算出したカウント値(0~1199)に加えます。
    (それをさらに1200の剰余を計算し0~1199を算出)
  「736」はオフセット値として記録しておき、オーバーフロー発生ごとに
  736をオフセット値に加算します。 
    (加算後のオフセット値も剰余計算で0~1199にしておく)
  これで右回転の時の補正が完了します。
    ※1回転目のオーバーフロー「65535→0」は「735→0」ではなく
      「735→736」となる
(4) 同じように左回転のOVFでは、「-736」をオフセットにすれば良いのですが、
  せっかくですんで、マイナスの値は使わずに1200に対する補数である
  「464」をオフセット値に加算することにします。
  この、加算処理後も剰余計算で0~1199にしておきます。
(5) カウント値、オフセット値とも1200の剰余計算で0~1199にすることで、
  桁あふれなくグルグル回る軸の回転角度を「符号無し16bit値」で計算する
  ことが可能になります。
こんな考えでプログラムを組んで、グルグル回る角度の値を算出します。

| | コメント (0) | トラックバック (0)

円周360度を測る時:1回転300パルス、中途半端じゃない

はじめてのロータリーエンコーダーRE12D-300(1回転300パルス)360度を測る時、「300」だと中途半端な気がしますよね。
でも、これ。 「1回転300パルス」が意外と使えるんです。
「1度」単位の計測だと確かに中途半端です。
『360パルスのエンコーダが欲しいよぅ』となるんですが、「0.1度」単位の計測だと300パルスでもうまくいくんです。
1回転300パルスを4逓倍すると、1回転が1200パルスになります。
カウントが1パルス進むと、角度だと「360度÷1200パルス」で「0.3度」進みます。
つまり、角度の最小桁を「0.1度」とすると、カウント値を3倍するだけで「0.3度」の分解能で角度が計算できるわけです。
最小桁の表示を0.1度にすると、四捨五入計算の必要がありません。
「360パルス」のエンコーダだと、1度桁での表示ではきっちり出るんですが、4逓倍すると「1カウントが0.25度」になってしまい、表示が「0.1度」だと四捨五入処理が必要になってしまいます。
かといって「0.01桁」まで表示しても「1/4度」が最小分解能ですんで、わざわざ桁を増やす意味がありません。

1回転300パルスのロータリーエンコーダと「360度」、「0.1度表示」だと、ちょいと相性が良いのです。
  (でも、絶対的な分解能は0.3度ね)

※しかし
問題はこれをカウントするup/downカウンタ。
360度をグルグル回して0~359度(0.1度単位なので0.0~359.7度)を数えるには、パルス数0~1199をカウントしなくちゃなりません。
upカウントだけなら10進カウンタ2つに12進カウンタで0→1199をカウントできます。
アップパルスが入って「1200」到達で「0」にクリアという処理です。
   (あるいは1199の次のアップパルスで0にという言い方)

しかし、downカウントとなると、「0の次のダウンカウントパルスで1199」ということにしなくてはなりません。

※続き
RX220マイコンで2相パルスカウント:グルグル回る角度を


| | コメント (0) | トラックバック (0)

2018年6月16日 (土)

はじめてのロータリーエンコーダー

過去、ロータリーエンコーダーなどの2相パルス出力装置、あれこれ使ってきましたがここまで小さな精密エンコーダは初体験。
コパルの「RE12D-300」。
ちょいと、実験で使います。
12

この大きさで1回転300パルス。
4逓倍すると1200パルスになります。
取り付けネジはM2。
出力はTTLなんで、インターフェースも簡単。

マルツ・日本橋店 に注文したら、翌日に入荷しました。

※実験回路はルネサスの「RX220」マイコン。
11

使ったのは48ピンのものなんですが、ポートの並びがぐちゃぐちゃ(PICやAVRマイコンのように8ビットのポートが順に並んでいない)。
あまり使いやすくはありません。
「NC」ピンが2つもあるし、もったいないのだ。

※関連
メカのようでもあり電気のようでもあり
オーバーフローするかも? そんな数値の処理

※続き
円周360度を測る時:1回転300パルス、中途半端じゃない
RX220マイコンで2相パルスカウント:グルグル回る角度を


| | コメント (0) | トラックバック (0)

2018年6月14日 (木)

ガレージPCのHDDが逝く!

今週になってからガレージPCの調子が悪い。
で、昨夜のこと、とうとうウィンドウズ・システムが入ってるHDDが逝ってしまいました。
そろそろヤバいかっと、夕刻、日本橋に寄ってHDDを買った、その途端でした。
写真やあれこれデータを入れてあるもう一つのHDDは大丈夫だったんですが、システムがアウトとなと復旧がめんどくさい。

そんなこんなのしてたら、JJ3ENTのノートパソコンも「ハードディスクがカッコン、カッコン言ってる!」っと。
えらい三隣亡な日でした。

| | コメント (0) | トラックバック (0)

2018年6月12日 (火)

Tele Auto FX-1 シャッター用無線リモコン

同種の無線リモコン、以前に修理しています。
・修理:電動シャッター用無線リモコン

11_2

正常品と故障品が二つやってきたんで、状態の比較が可能です。
以前に修理したのと同じ形式の無線リモコンなんですが、電源回路が異なっていました。
単4電池2本で動作します。 しかし、今回のは「TL499」で昇圧しています。
前に修理したのは電源3Vで動いていました。
   ※今回のほうが電波が強い!

2台のうち、1台が動作せずなんです。
電池のマイナス電極とスイッチが接触不良でしたんで、交換しました。

12_2

しかし、スイッチオンで電波は出るんですが、スイッチ種別による変調がかかったりかからなかったりと不安定なんです。
AM(振幅変調)なんで、電波チェッカー を使うと、変調音が聞こえます。
変調がかかるときもあり、キャリアだけのときもあり、そのキャリアも途切れたりと、状態がころころ変わります。

スイッチ操作での電源供給はOK。
セラロックによるクロック発振もOK。
パワーオンリセットかとも思ってあれこれ試したが、解決せず。

どうやら、中の制御チップそのものがアウトになっているようです。
修理不能にするのも悔しいので、別マイコンを乗せて、リモコンの変調信号を作ることにしました。

まずは、解体。
13

リモコンの制御チップは1.778mmのSDIPなんで、ID設定用DIP SWのところに8pin ICソケットを実装します。
新たな制御マイコンはATtiny13A
ID設定は固定にしちゃうんで、UP/STOP/DOWN三つのスイッチ入力と変調用の信号出力が一つ。

14

先ほど、現地で動作確認。 無事に修理完了しました。

発射電波の様子。
オシロのプローブ先端をGND線につないでワンターンアンテナにして観察。
A1
上が故障品の送出電波で、下が正常品。
正常品が出す波形を見ながら、タイミングを合わせました。
信号長短で「1,0」を示していて、32コのビット列を送っています。

こんな回路になっています。 (概略図で)

A2

元の制御ICに出入りしている、スイッチ入力の3本と送信制御出力の1本をATtiny13Aにつなぐだけ。
ID設定は固定しちゃってます。
   ※1~10の設定スイッチ、このリモコンでは「1と4」
    だけがオンで残りはオフ。

正常なリモコンの送出信号を観察して、
 ・UP スイッチ  1E DE 96 97
 ・STOPスイッチ  1E DE 3C 3D
 ・DOWNスイッチ  1E DE 5A 5B
こんな4バイトの制御コードになりました。
先頭の16ビットがIDコード、後の16ビットがスイッチコードのようです。
  ※IDコードの付け方がよくわかりません。
    現物合わせで決定。

※FX-1の修理メモ 代替マイコンの制御プログラムなど (zip)

※さまざまな電子機器の修理依頼について:(有)アクト電子


| | コメント (4) | トラックバック (0)

«ベルト到着! ボール盤の修理完了