goo blog サービス終了のお知らせ 

寝ても覚めてもPSoC

電子工作とマイコンをやりはじめました。
ど素人ですので配信する情報の取り扱いには十分注意してください。

CY8C27143でマトリクスLED[Max7219]

2009年06月30日 | PSoC
またまたマトリクスLEDです。
前回は 74HC164 というICを2つ使って、4つのポートで表示しました。
それで今回は Max7219 というICを使ってみました。このICでは、なんと3つのポートで表示が可能に!!(ズドーン!)
しかも74HC164は14x2で28ポート、Max7219は24ポートで4ポートもハンダ付けがお得に!
そして設定した値をMax7219側が表示してくれるので割り込み処理も必要なし!
ただし、価格は数倍ですが...orz
まぁしかし、こんな便利なICがあるとは知りませんでした。まさに7segLEDかマトリックスLEDを表示するために生まれてきたIC!!



配線はソースのコメントにあります。(正しい保証はありませんので、必ずデータシートで確認してください)

プロジェクトです。
デザイナ: 5.0
デバイス: CY8C27143-24PXI
コンパイラ: Hi-Tech C
PSoC_Max7219.lzh

CY8C27143でマトリクスLED[74HC164]

2009年06月28日 | PSoC
8PINのPSoCで8x8のドットマトリクスLED[TOM-1588BH-B]をやるにはどうしたらよいか?
ってことで、普通にやると16PIN必要なので74HC164というICを使ってみました。
74HC164...8-bit Parallel-out Serial-In Shift Register
8ビットのシリアルデータをパラレルに変換してくれるという、ありがたいICですね。CY8C27143のようにポートが少ない場合は特に。
制御PINのSerialInputsAとB、Clear、Clockの4PINで8個のLEDは扱えそう。
しかし、マトリクスに対応するには、こいつ(74HC164)を2つ使わないといけない。
27143で使えるのは6PINなので、とりあえずSerialInputsAとBをまとめればいけそうですね。
いやいや、まてよ、ClearもClockも同期してるので共通でいけそうだ~。
という訳で、4PINでマトリクスLEDの表示ができました
しかし、実用としては少し電流が足りないので別機構が必要です orz

左からCY8C27143、74HC164[列用]、74HC164[桁用]です。
相変わらずケーブルがぐちゃぐちゃw




プロジェクトです。
デザイナ: 5.0
デバイス: CY8C27143-24PXI
コンパイラ: Hi-Tech C
PSoC_74HC164.lzh

CY8C27143とRX

2009年06月21日 | PSoC
8PINのCY8C27143-24PXIでRX8を使おうとすると、以下の警告がでます。
3.3Vでも5V設定でも同じです。
27143のクロックって24MHzじゃないの????

Level 1 Warning - RX8 should not be used along with a Power Setting that has SysClk freq less than 24MHz.

マジでRX8は使えないんですかねー??
※TX8でも出ます(T_T)


※6/23追記
警告が出ますが、5Vも3.3Vも普通に使えることがわかりました


サーボ8ch制御[GWS S03T]

2009年06月12日 | PSoC
PSoCでサーボモーターを制御してみよう!目指せ、二足歩行ロボ!!
って事で、ちょこちょことやってましたが、とりあえず形になったのでアップします。

PWMを3つ使ってサーボモーターを8chまで制御できます。(サーボ入手の関係で6chまでしか試していませんけど...)

いろいろググると、サーボは20ms周期でそのうち2.5msまでのパルス幅で回転角度を決定するモーターらしい。
※センターは1.5ms

という事は20ms-2.5msの17.5msは使われていない。その空いている時間に他のサーボを制御すれば、少ないリソースでたくさんサーボを扱えるという。
なるほど~、つまり20ms/2.5ms=8で8chはいけそう。LEDのダイナミック点灯みたいですね。

↑次の周期でCH:0ってなってますが、CH:1の間違いです。

以下が使用したGWS S03Tの情報(データシートより抜粋)です。
■GWS S03T
・Operating voltage : DC4.8V - 7.5V Max.
・Operating temperature : -20°C ~ +60°C
・Pulse width range (Frame time : 16-23 ms)
 Max : 2.1 ms
 Min : 0.9 ms
・Horn position (rotate angle)
PulseW Horn position
 0.8 ms Safety zone for CW
 0.9 ms +60 degrees ± 10° CW
 1.5 ms 0 degree(center position)
 2.1 ms -60 degree ± 10° CCW
 2.2 ms Safety zone for CCW

PSoCの制御ですが、とりあえずRow_Outputが4つまでなので、PWM1つにサーボ4つを受け持たせ、全体の管理用として一つのPWMを使用しました。これでPWMは3つ使用します。(なんか無駄なような気がする...)
各サーボへの信号の動的切り替え(Row_Output)は DCB**OU レジスタを直接書き換えました。他に良い方法があれば教えてください。
たぶん、絶対もっとスマートな方法があると思います...

実際に歩かせるには、まだまだかかりそうです。電源や歩行シーケンスやフレームなど。
ゆっくりやっていこうと思いますが、ちょっと手を出すのが早かったかな~?!と思う今日この頃です。トホホ...

プロジェクトです。
デザイナ: 5.0
デバイス: CY8C29466
コンパイラ: Hi-Tech C
PSoC_ServoCtrl.lzh

PSoCで瞑想ゲーム?[KMX52-1050,SGD-A,FM34F]

2009年06月10日 | PSoC
知人が瞑想をしてブレを感じたら知らせる装置がほしいというので作ってみました。

傾きの検出に加速度センサー[KMX52-1050]、お知らせ用に振動モーター[FM34F]、表示にシリアル制御LCD[SGD-A]を使いました。
もちろん、コントローラーはPSoC CY8C29466です。

使用方法は例によって簡単です(簡単のものしか作れないという話も)。
1.瞑想のポーズをとる
2.両手で装置を持つ
3.心の準備ができたらスイッチを押す
4.瞑想する
5.心の乱れがあれば『喝っ!』(振動)となって通知される
6.瞑想時間を見て考える(何を?)
7.1に戻る

結局、瞑想よりも『俺はジャックバウアー』って感じで爆弾処理班の方が盛り上がりましたw

ケースは百均のタッパーです。

加速度センサーは、秋月の説明書では配線方法が2箇所に書いてありますが、両者で食い違う部分があり、悩みます とりあえず、今回のつなぎ方で動作していますが...。
振動モーターは3V程度が必要なので、PWMで比を3/5にして出力しています。
LCDのSGD-Aは...シリアル通信で制御できるため、PSoCとはTX信号1本の配線で済むので重宝します。大きさも薄くて小さい。
ちなみに前記事のSG12864Aは、現在はPSoC1つを専用コントローラにして、UARTかI2Cでコントロールできるようにモジュール化(?)してありますが、サイズが大きいため今回は不採用となりました。ケースに入りません。残念!

内部ブロックは贅沢に使っています。見られるのが恥ずかしいぐらいに。
さすが29466!気楽に作れるところがうれしい。

プロジェクトです。
デザイナ: 5.0
デバイス: CY8C29466
コンパイラ: Hi-Tech C
PSoC_Meisou.lzh


回路図です。


さよならHiTech、お帰り?ImageCraft

2009年06月03日 | PSoC
今までのプロジェクトは全てPSoCデザイナ5.0のSP4.0で作成し、コンパイラはHi-TechC。

しかし、最新のSP4.5ではHiTechコンパイラが削除され、再びImageCraftに戻るという。(正確には今までもImageCraftを選択できた(はず)ので”戻る”という表現はおかしいですが...)
たいした処理はしてないので切り替えは特に問題はないと思うけど、コンパイラの変更は気分的に慎重になってしまう

まぁ次のSPがでるまでには切り替えるとしようw