Sim's blog

電子工作はじめてみました

PSoC FirstTouch KitでLEDほわーん

2007-12-19 01:25:53 | PSoC
PSoC FirstTouch KitでLEDチカチカの続きです。

2つのことをやってみます。まずはタイマーを使ったLEDチカチカ、次にプログラムを改造してLEDほわーんです。
どちらもPSoC Expressを使って0行プログラミングにします。前回と違うのはTransfer functionを使っていることです。
1.プロジェクトの作成、3.コンパイル、4.PSoCマイコンに書き込みは前回と同様です。2.のプログラムの組み立てだけ書きます。


2. プログラムの組み立て (LEDチカチカ別バージョン)

一つ目の部品はInputsタブ→CY3270 PSoC FirstTouch Kitにある「Interval Generator」です。

Nameをtimerにして、IntervalModeをTOGGLEに変更してOKを押します。
TOGGLEはIntervalTimeで指定したミリ秒毎にtimerという変数が1→0→1→と変化することを意味します。時間はIntervalTimeで変更します。デフォルトは100ミリ秒です。今回はtimerが1の間LEDが点灯して0の間消灯するというプログラムにします。

※Nameに入力した名前が変数名になります。その部品の状態を表します。

二つ目の部品はOutputsタブ→CY3270 PSoC FirstTouch Kitにある「LED - On/Off/Blink」です。

NameをLEDに変更してOKを押します。

この段階でtimerとLEDの2つの部品が配置されています。


このままだと、部品があるだけなので関連づけてやります。
LEDのアイコンを右クリックしてメニューを出して、一番上のTransfer functionを選びます。

左側に選べる3種類のTransfer functionの種類が載っています。今回は一番下のTable Lookupを選んでOKを押します。
他の2つは、少しは式を入力しないといけないので、0行プログラミングにするにはTable Lookup以外の選択肢はありません。
Table Lookupは表引きということでずか、入力がある状態のときに出力をどの状態にするか表を作ります。

上でOKを押すと入力を聞いてきます。

timerを選んでNEXTを押します。

表の作成画面になります。

左側が入力のtimerの取り得る2つの状態Not_TriggeredとTriggerdを示しています。右側がLEDの取り得る3つの状態OFF、ON、BLINKINGを示しています。
timerの取り得る状態を右側の表に埋めることで表を完成させます。
具体的にはドラッグ&ドロップで入力の状態を配置します。

完成した表です。

表はtimerが1のときはLEDがON(1)になってtimerが0のときはLEDがOFF(0)になることを示しています。
OKを押せばTransfer functionの完成です。

timerとLEDが関連づいているので、間に線が引かれています。

基本的に出力側で、どの入力を使うかを選ぶというやり方みたいです。

あとはコンパイルしてPSoCに書き込めばLEDチカチカ別バージョンの完成です。
コンパイルのときの配置配線では、LEDを、青LEDの14pin、赤の10pin、緑の15pinのどれかにします。


次にLEDほわーんを作ってみます。

とりあえず、Designタブを選ぶことでプログラム組み立てタブにもどれます。

今度は「LED - On/Off/Blink」のかわりに「With Decay ON&OFF」という別のLEDを使います。場所はOutputsタブのDisplay→LED→Single Color→With Decay ON&OFFです。

名前をLED2にしてOKを押します。
このLEDはぼわーっと明るく(暗く)なる機能をもったLEDです。明るく(暗く)なるまでの時間を設定できます。デフォルトは1000ミリ秒です。

LED2のTransfer functionです。

LED2が取る2つの状態は、GROW_ONがぼわーっと明るくなり、DECAY_OFFが同じく暗くなります。今回はtimerが0のときに明るく(GROW_ON)、1のときに暗く(DECAY_OFF)なるように指定しています。

最後にtimer時間の変更といらなくなったLEDの削除を行います。

timerのアイコンをクリックすると右上にプロパティが出るのでIntervalTimeを1000に変更します。これは明るく(暗く)なるまでの時間が1000ミリ秒だからです。

次にLEDアイコンをクリックしてDELキーを押すか、右クリックメニューからDeleteを選ぶことでLEDを削除します。
コンパイルしてPSoCに書き込むことで完成です。LEDが点滅するかわりに、ぼわーっと点いたり消えたりします。

このように、Cypressがあらかじめ用意している部品については簡単にプログラムが作れます。ないものはどうすればいいのかは、よく分かっていません。もしかするとPSoC DesignerとCコンパイラを使って作るのかもしれません。それとも専用のツールがあるのかもしれません。

あらかじめ用意されている部品には色々なものがあります。加速度センサーを読んでI2Cで通信したりとかは、PSoC Expressで出来てしまうみたいです。少なくともPSoC FirstTouch Kitについている、静電容量センサー(CapSenseスライダーと接近センサー)、光センサー、温度センサー、ブザー、三色LEDはPSoC Expressだけで遊べます。

最新の画像もっと見る

コメントを投稿