電子工作

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月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月12日 (火)

トラ技2018年7月号付録

11

タイトル、『あなたの知らないコネクタのお話』
この別冊付録の中に、どういうわけか「B-29」の写真…二次大戦の爆撃機ね。
12

キャプションが「±60℃を超える冷熱衝撃の影響で制御不能になったB-29の試作機」っと。
ハンダ付け部が強烈な温度変化に耐えられず、接続部が破断。
これが原因で試作機が制御不能になって墜落したんだそうです。
関連、このあたりかな。

 

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

2018年6月 8日 (金)

文鎮:ハンダ付け補助ツール、やっぱしSUS304がいいかも

※ハンダ付け補助ツール(文鎮)まとめ を見ていただくとわかりますが、2015年11月 に素材が「SUS304(ステンレス)」の文鎮を頒布しています。
それもその時のお代は「1200円」。

これ、むちゃ安価だったんです。
たまたま、製造元である佐藤テック君のところに、適当な大きさのSUS304の材料が残っていたからというのが主たる理由です。
このときに、文鎮に使えるSUS304の材料を全部使ってしまったもんだから、その後に製作の文鎮、基本は
黒染めメッキしたり塗装したり、あるいは「生」のままだったりと、状況によりその頒布形態は変動しています。
      ※リン青銅の文鎮  ←ほんとにもうこれが最後。

佐藤テック君が文鎮を作るタイミング、「端材が出たから」というのがきっかけになるわけですが、「加工に失敗したその残り」、これが文鎮になっている場合もあります。
だもんで、「文鎮がいつできるかは不明」な状態になっています。

で、ガレージで一杯やりながら『SUS304のを新規に作ったらどうなるだろ』を話してました。
SUS304のフラットバー(定尺4mになる)を買って、それを切断して表面加工や端面仕上げ、面取り、M5のタップを立てて完成。

材料費とこの工程の加工賃・・・・・合わせていくらになる?

佐藤テック君からの回答です。
  ・厚み16mm(15mmかも)のSUS304。
  ・お代は、一つ「1900円」。
  ・SUS材のキャップボルトと平ワッシャを添付。
  ・クリックポスト(164円)で発送(最大2個まで)。
そして、次が難関か・・・
  ・リクエストの合計数=20個は必要!
ということで、20個集まったらSU304の文鎮製作を進めるっと。
欲しい方、この記事に必要数と連絡用メールアドレスを記入してコメントしてください!
20個以上集まれば、SUS304のハンダ付け補助ツールができてきます。
※鉄の文鎮は、これまでどおり、端材が出たタイミングで作るということです。

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

2018年6月 6日 (水)

マイコンのリセット回路

古いCPUを使った工作で、「回路の消費電流が小さいと、マイコンのパワーオンリセットがうまくいかない」問題に悩んでおられるようです。

これ、原因の一部はシュミット入力のヒステリシスは電源電圧に依存するということ。
リセット検出ラインがシュミットになっているんで、ついつい安心してしまうんですが、中途半端な電圧低下だとリセットパルスが出てきません。
ちゃんとするには、「電圧低下」をきちんと検出して、リセットタイミングを作るコンデンサを放電しなければなりません。

BOD回路がマイコンに内蔵されていたら積極的に使いましょう。
しかし、便利なBOD、古~いマイコンには搭載されてません。

そこで外付けの電圧検出ICの出番です。
手抜きのパワーオンリセット回路がこれ。
電源電圧が落ちると、ダイオードを通してコンデンサが放電。
次回のパワーオンではリセットパルスが出るだろうと。
Q1
しかし、電源電圧低下が中途半端だとアウト。
リセット起動に失敗します。

その具体例を引っ張り出してきました。「TK-80」の回路図です。

R2

   ※図面の日付 : 1976年6月10日  設計:T.Goto さん。

01

クロックジェネレータのリセット入力に、リセットボタンとともにつながっています。
特徴的なのが「Vbb -5V」の発生。
クロック出力を倍電圧(P-P値)整流しています。
8080は+5V、+12v、-5Vの3電源。
TK-80の-5Vは基板内で作っていましたんで、5Vと12Vで動いていました。

昔、リセットIC(電圧検出)でよく使っていたのがこんな回路。
Q2
「PST600」はミツミ製。
オープンコレクタなんで、外部からもリセット信号を与えることができます。
その後、消費電流が小さなS-80845(セイコーインスツル)に代替わり。
Q3
リセットスイッチ、コンデンサを直にGNDに落とすんではなく突入電流制限抵抗(100Ωでok)を入れておくと安心。
このあたりの具体例。  私の製作物から。
  (クリックで拡大↓)
R1
    ※この図は1989年10月 PC-9801のOrCADで書いてます。

マイコンは日立の「63701」。
リセットICはPST-520。
    ※プルアップ抵抗は集合抵抗でして、図の範囲外にいます
シュミットで受けて、さらに遅延させてリセット信号を発生。
リセットがLになる前に、NMI信号を発生させて「停電」を通知。
左下にはスーパーCAPによるバックアップ回路。

最近になると、マイコンのデバッグツールが出すリセットパルスを考えておかなくてはなりません。
従来のパワーオンリセット回路につなぐと、リセット時間が長くってデバッグツールが動いてくれません。
そこで、こんな対策をすることになります。
Q4
パワーオンリセットとデバッガからのリセット信号をゲートでOR。
しかしこれは面倒。

そこで、最近はこんなリセットICを使っています。
オープンコレクタ(オープンドレイン)ではなくCMOS出力。
ただし、デバッガーのリセット出力とは直接つなげません。
そこで、間に抵抗を挿入。
デバッガーのリセット信号を優先するようにしときます。
Q5

「BD5345」は、外付けCTでリセット時間が決まります。
もうひとつ、こんなの。
Q6
「STM811」は、リセット時間は内部固定で、外付けのリセットボタンをつなげるようになっています。
最近のリセットIC、いろんな検出電圧のが入手できるんで適材適所で。

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