So-net無料ブログ作成
検索選択
パワー・コントローラ ブログトップ
前の10件 | -

パワー・コントローラ基板を設計した [パワー・コントローラ]

(2013.02.09)
暫くJavaFXに掛かりっきりでしたが、ひと段落したのでPICの開発を再開することにしました。先ずは、昨年末にソフトウェア試作の段階で中断したパワー・コントローラの基板設計を行いました。回路はほぼ固まっているので、(基板化して)実機でソフトウェア開発する計画です。

パワー・コントローラは親族SNS管理人が二年前にPICを使って初めて作った”間欠タイマーそよ風メロディー)”<これです>の後継機です。二年間の研鑽(試行錯誤?)の成果を盛り込み、機能の向上と使い勝手の改善を図った自信作です。

最近は以前描いた図面からコピペするだけで、必要な部品が粗方揃うようになったので、”Bsh3V(回路図エディタ)とMBE(ボード・エディタ)<==水魚堂氏に感謝!”<水 魚 堂 O N L I N Eはこちら>を使った設計作業もサクサク進みます。回路図を描き、パターンを引き・・・
2013_0209_2.png回路図はこんな感じ
2013_0209_1.pngパターン図はこんな感じ
最後に行うのが、ネットリスト差分ユーティリティ(yfNetDiff V0.20)というオープン・ソース<これです><Vectorからダウンロードできます>を使って行うネットリストの照合です。

セラ・コンや抵抗の向き(ピン番号の違い)まで揃えなければならないのは大変ですが、誤配線や配線漏れのチェックにもなるので、おろそかに出来ません。ジリジリ。ジリジリ。差分を修正してピッタリ一致したときに覚える快感は格別です!

<ネットリスト差分ユーティリティの出力>
[[Same]]  <== 全ての結線がここに集まればO.K.
[GND] (C1.2) (C2.2) (C3.1) (C4.2) (C5.1) (CN1.3) (CN3.3) (D2.1) (GND.1) 
省略
[PGC] (CN3.5) (U1.27) == [N00023] (CN3.5) (U1.27)
[PGD] (CN3.4) (U1.28) (U3.4) == [N00024] (CN3.4) (U1.28) (U3.4)
[Vdd] (C1.1) (C4.1) (CN1.1) (CN3.2) (D1.2) (D2.2) (R9.1) (U1.20) == [N00007] (C1.1) (C4.1) (CN1.1) (CN3.2) (D1.2) (D2.2) (R9.1) (U1.20)
[Vpp] (CN3.1) (U1.1) == [N00012] (CN3.1) (U1.1)

[[Like]] <== ここに入った配線は部品の向きを修正する

<<File 1 only>>  <== ここと

<<File 2 only>>  <== ここに入るのは誤配線や配線漏れ


もちろん、回路図に誤りがあれば全ては”水の泡”なので、暫く手元で熟成させてから基板発注します。
Fusion PCBも春節でお休みらしいし・・・

にほんブログ村 IT技術ブログへ
にほんブログ村 ネットブログ コミュニティサイトへ
にほんブログ村 IT技術ブログ オープンソースへ


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:日記・雑感

パワー・コントローラの開発は暫くお預け [パワー・コントローラ]

(2012.12.15)
データ登録にRタッチ&Lタップ操作を割り当てていましたが、もう少しタッチ・スイッチらしいインターフェースにしたくなって、R2Lスライド操作を新たに加えました。同じくL2Rスライド操作をデータ読出しに割り当てました。

ブザー応答その他を加えた所、使用メモリが4050ワードを超え、ついにプログラム・メモリがパンクしました。出来るだけ実機に近い所までPIC16F1827で試作する計画でしたが、パワー・コントローラの開発は暫くお預けです。

今年も残り少なくなって来たので、温度槽の組み立てとステッピング・モーター・コントローラの多CH化試験を優先して、何とか年内にケリを付けようと思います。

にほんブログ村 IT技術ブログへ
に

ほんブログ村 ネットブログ コミュニティサイトへ
にほんブログ村 IT技術ブログ オープンソースへ


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:日記・雑感

エラー・トラップに引っかかった [パワー・コントローラ]

(2012.12.14)
ブレッド・ボードにモード表示LEDや応答ブザーを組み込んで、タッチスイッチによるモード切替操作をデバッグしていて、時々生じる変な挙動に頭を悩ませていました。タッチ・スイッチを操作するとブザーが断続的に鳴り出したり、全く反応しなくなったり・・・

”何が起きているのか?”皆目見当がつきません。何気なく、エラー・トラップにブレーク・ポイント(PIC16F1827は一箇所しか設定できない)を設定してみると・・・

ヒットしてしまいました!
void csm_operation_main( void )
{
 |
 |
  if( wr_posi == rd_posi )
  {
    error_buzzer();  <== ここ!
  }
}

設計上はwr_posiとrd_posiが一致することは無い(筈な)ので、ロジックに誤りがあることを示しています。断続的に鳴るブザーも明らか(エラー・ブザーを反復していた)になりました。しかし、何故こんなことになるのか?その原因はなかなか掴めません。

csm_operation_main()の先頭でスナップ・ショットを取って、エラー・トラップに落ち込む直前の状態を確認し、ようやく事情(二つの設計ミス)が判明しました。mainループのモード切替処理で、操作シーケンスをOFFに戻し忘れていた(箇所があった)のと、誤ったタイミングでOFFに戻していました。そのせいでリング・バッファの読み出しポインタ(rd_posi)が先に進まず、書き込みポインタ(wr_posi)が追いついてしまいました。

複数のエラーが重なると状況が複雑化して、不具合原因の特定が難しくなります。そんな時、いたずらに(やりたくなるものですが)プログラム・コードを弄ると、さらに訳の判らない状況に陥りがちです。『エラー・トラップ』と『スナップ・ショット』で状況把握に努めたことが良かったのかもしれません。

やれやれ!

---------------------------------------
Wタップでモードが切り替わるのは楽しいのですが、指が乱れて変な操作になるとエラー・ブザーで叱られてしまいます。この気難しさをどうしたものか?

また悩む(でも楽しい!)。

にほんブログ村 IT技術ブログへ
に

ほんブログ村 ネットブログ コミュニティサイトへ
にほんブログ村 IT技術ブログ オープンソースへ


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:日記・雑感

同じ失敗を繰り返した [パワー・コントローラ]

(2012.12.12)
以前、ICSPDATとICSPCLKにSW入力を割り当て、”デバックしようと思ったらSW操作が読み取れない”という失敗を経験しました。”SWがオープンならPICkit3の書き込みに影響しない”と考えたのですが、ICSPDATとICSPCLKをPICkit3側でプルダウン(4.7kΩ)していて、SW入力がハイレベルにならなかったのです。そして、今回も・・・

パワー・コントローラは要素試作を終了して、実機の開発に取り組む段階にたどり着きました。PIC16F1827を使った要素試作用の回路を見直して、開発試作用の回路を設計したのですが、そのときICSPDATとICSPCLKに(以前と全く同じことを考えて)タッチスイッチ入力を割り当ててしまったのです。

”電極だけなんだからPICkit3の書き込みに影響しない筈”( <==懲りない奴 )

今回は、ブレッド・ボードで開発試作回路を組み立てるときに、タッチ・スイッチを接続しようとして、既に配線されているICSP信号に気付きました。

”ん!”
”駄目だ、こりゃ”

デバッグを始める前に気付いたのを”進歩した”と呼べるのか?
全く同じ間違いを犯したことを”学んでいない”と反省するべきか?

めげずに先へ進みます。

にほんブログ村 IT技術ブログへ
に

ほんブログ村 ネットブログ コミュニティサイトへ
にほんブログ村 IT技術ブログ オープンソースへ


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:日記・雑感

助け船が現われた [パワー・コントローラ]

(2012.12.11)
PIC16F1827で始めたパワー・コントローラの試作ですが、いよいよプログラム・メモリーが足りなくなってきました。delay_loopを使っていたdecimal_ledモジュール(1個のLEDで10進三桁の数値を感覚的に表示する)を0.1秒インターバル割り込みから呼び出せるように修正し、duty_levelを表示したところ、プログラム・メモリが3800ワードに達しました。

どう考えても、プログラム・メモリが足りません。赤外リモコン機能を諦めれば何とかなりそうでですが、それは・・・ちょっと・・・

藁をも掴む思いで、Michrochip Technology社でPIC16F系のデバイスを検索すると、PIC16F1829というデバイスが見つかりました。プログラム・メモリを8kワード、データ・メモリが1kバイト、EEPROMも256バイト積んでいます。しかも、秋月電子で扱っているんです(こちらです)。

パチパチパチ~

これでひと安心。暫くは赤外リモコン受信機能を外してPIC16F1827で開発を進め、PIC16F1829を手に入れてから赤外リモコン機能を組み込むことにします。

よーし、順風満帆!

にほんブログ村 IT技術ブログへ
に

ほんブログ村 ネットブログ コミュニティサイトへ
にほんブログ村 IT技術ブログ オープンソースへ



nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:日記・雑感

タッチ・スイッチが動き出した [パワー・コントローラ]

(2012.12.10)
なかなか思うように動いてくれなかったタッチ・スチッチが、ようやく動き出しました。操作シーケンスを読み取る関数を0.1秒ごとに呼び出していたことが不具合の原因でした。以前から使っているSW操作シーケンスを読み取る関数の中をCSM用に書き換えたのですが、その呼び出しが0.1秒ごとであることを失念していたのです。初めて使う機能なので、プログラミングの感覚が掴めなかったということもあります。これでCSMを(何とか)使えるようになったんじゃ無いかと思います。

パッドの間隔を調整すればフリップ動作も検出できそうな所まで来ましたが、予定通りWタッチ&Lタップで行くことにしました。タッチ・スチッチ操作の判別に目処がついたので、パワー・コントローラのモードの切替操作に対応付けて、オペレーション・モードを一通り組み込みました。

赤外リモコンの登録やオペレーション・モードの細かい部分は未だ組み込んでいませんが、プログラム・メモリは既に2850ワード(およそ70%)が消費されました。まぁ予想通りと言えばそうなのですが、かなり厳しくなってきました。

一難去って、また一難!

にほんブログ村 IT技術ブログへ
に

ほんブログ村 ネットブログ コミュニティサイトへ
にほんブログ村 IT技術ブログ オープンソースへ


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:日記・雑感

タッチ・スチッチの判別で嵌る [パワー・コントローラ]

(2012.12.07)
上手く行かないフリップ動作の検出に見切りをつけ、Wタッチ&Lタップ(Wタッチから左指だけ一旦離してタップする)に仕様変更することにしました。”これなら何とかなるんじゃないか”と思ったのですが甘かった。

Wタッチ&Lタップの一番単純な操作シーケンスはこんな感じです
HOLD_OFF ==> R_TOUCH & L_TOUCH ==> R_TOUCH & L_OFF ==> R_TOUCH & L_TAP ==> HOLD_OFF
HOLD_OFF:LRともにOFF
R_TOUCH & L_TOUCH:LRともにON
R_TOUCH & L_OFF:RだけON
R_TOUCH & L_TAP:RがONの状態でLが短時間ON

ユーザがこの通りに操作してくれるなら問題はありません。しかし、操作が微妙にズレたり、定義されていない動作(例えばL_TAPとR_TAPを交互に繰り返すとか)を行った場合、適切な判定を下すロジックがなかなかまとまりません。状態遷移が多岐にわたり、手に負えなくなってしまいました。

”タッチ・スイッチ操作を組み合わせた操作シーケンスの判定”は、これまでやってきた”押しボタン・スイッチの長押しと短押しを組み合わせた操作シーケンスの判定”とは全く異なることを、思い知らされました。

なんとかロジックを整理してプログラムするか?
根本的に操作を見直すか?(タッチ・スイッチを3個にするとか)

困った!

にほんブログ村 IT技術ブログへ
に

ほんブログ村 ネットブログ コミュニティサイトへ
にほんブログ村 IT技術ブログ オープンソースへ


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:日記・雑感

フリップの判定は思っていたより難しい [パワー・コントローラ]

(2012.12.06)
ブレッド・ボードにPIC16F1827を乗せて、パワー・コントローラの試作を始めました。できるだけ実機に近づけてプログラム・メモリ(4kワード)が足りるかどうか見極めようと考えています。手始めにタッチスイッチ周りからプログラムを書いてみました。

Lタッチ、Rタップ、Wタッチと順調に進みましたが、フリップ動作の検出で躓きました。Wタッチで二本の指を離すタイミングが少しずれた場合と、Wタッチ&Lフリップ操作の区別がつきません。

検出サイクルをもっと早くすれば良いのか?それとも電極の配置を見直すべきなのか?試行錯誤が続いています。スマホはどうやっているんだろう?

にほんブログ村 IT技術ブログへ
に

ほんブログ村 ネットブログ コミュニティサイトへ
にほんブログ村 IT技術ブログ オープンソースへ



nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:日記・雑感

パワー・コントローラの設計仕様をまとめた [パワー・コントローラ]

(2012.12.04)
LED一個でDutyレベルを表示する良い方法を求めて試作を重ね、ボリューム操作とタッチ・センサ(と赤外リモコン)操作との整合に頭を悩ませ、そしてついに・・・

♪ジャジャーン♪~
パワー・コントローラの設計仕様がまとまりました。
(パチパチパチ~)

ボリュームとタッチ・センサ(と赤外リモコン)は、ボリューム優先(ボリュームの設定で制御Dutyが決まる)モードと操作優先(ボリュームで制御Dutyの初期値を決め、後はスイッチあるいはリモコンで制御Dutyを変更する)モードを設けることにしました。操作優先モードでは、後からボリュームを操作しても制御Dutyに影響しないので、誤操作による混乱が回避されます。

また、LEDで10進一桁の数値を(BCDコードではなく)感覚的に表すことにして、組み合わせで3桁程度の数値を表示することにしました。LEDの表示だけでは判りにくい所もあるのですが、ボリューム・ツマミで制御Dutyが凡そ判ることに期待しました。

<LEDによる10進一桁の数値の感覚的な表示>
  9:短点灯4回+長点灯1回
  8:短点灯4回+長点灯1回
  7:短点灯4回+長点灯1回
  6:短点灯4回+長点灯1回
  5:長点灯1回
  4:短点灯4回
  3:短点灯3回
  2:短点灯2回
  1:短点灯1回
  0:早い点滅4回

例えば
ト・ト・ト・ツー・(8)・チカチカチカチカ(0)なら80です。

ボリュームを80%付近で操作すると
ト・ト・ツー・(7)・ト・ト・ト・ト・ツー・(9)
ト・ト・ト・ツー・(8)・チカチカチカチカ(0)
ト・ト・ト・ツー・(8)・ト(1)
のように変化するので、ボリュームでも正確な制御Dutyを設定できると考えました。
CSM(タッチ・スイッチ)の操作はこんな感じです。
(1)ON/OFF切替                Wタッチ
(2)オペ・モード切替          Wタップ
(3)ティーチング・モード選択  Wタッチ&Lフリップ( Wタッチ&Rフリップ)
(4)登録モード選択            Lタッチ&Rタップ
(5)読出しモード選択          Rタッチ&Lタップ
(6)UP                        Rタッチ|Rタップ
(7)DOWN                      Lタッチ|Lタップ

ティーチング・モードで、この7種類のリモコン信号をパワー・コントローラに覚えさます。
ん!ティーチング・モードを選択するリモコン信号って要るのか?

まとまりはしましたが、設計仕様はまだまだ発展途上です。

にほんブログ村 IT技術ブログへ
に

ほんブログ村 ネットブログ コミュニティサイトへ
にほんブログ村 IT技術ブログ オープンソースへ


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:日記・雑感

パワー・コントローラの設定・表示に悩む [パワー・コントローラ]

(2012.12.03)
ユーザーに拒絶されるのは大変悲しい(しかもその見込みが極めて高い)ので、『DutyレベルをBCDコードで表示する』案は採用を見送りました。バイナリ・コードをLED表示するモジュールデバッグで活用することにします。

で、今ボリュームを使う方法を見直しています。ボリュームによるDutyレベルの設定は、そのまま(ツマミの向きが)Dutyレベルの表示になります。昔から使われている方法ですから、ユーザーから拒否される心配もありません。ただ、”赤外リモコンとタッチ・センサで操作する”という当初計画と、どうしたら整合させられるのか?

”赤外リモコンとタッチ・センサによる操作”は今回の開発の目玉なので、ここを外す訳にはいきません。『ボリューム操作とタッチ・センサの操作をどのように組み合わせ、そのときLEDに何を表示するか?』が設計上の課題です。それがクリアできれば、赤外リモコンの方は自ずと決まります。

例えば、ボリュームでDutyレベルを凡そ設定して、タップ操作でDutyレベルを微調整するとか・・・
でも、ボリューム設定とタップ操作で変更したDutyレベルが大きく食い違ってしまうと、ボリューム・ツマミによるDutyレベルの表示が意味を失ってしまう・・・
う~ん、悩ましい!

にほんブログ村 IT技術ブログへ
に

ほんブログ村 ネットブログ コミュニティサイトへ
にほんブログ村 IT技術ブログ オープンソースへ


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:日記・雑感
前の10件 | - パワー・コントローラ ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。