2014年4月12日土曜日

PSoC5LPでLEDチカチカしよう!後編~文字で作る編~

~準備編~で作るための用意が出来ました。
準備編は、PSoC5LPで作る場合のすべてに共通するので

忘れたら見ておくと良いです。



さて、LEDを実際にチカチカさせましょう。
まずは左側のこまどを見てみましょう。
これは、PSoC5LPを作るためのファイルを表しています。


「TopDesign.sch」(青のわく)はPSoC5LPの「機能を描く」用ファイル
「[自分で付けた名前].cydwr」(みどりのわく)はPSoC5LPの内部設定用ファイル
「main.c」(オレンジのわく)はPSoC5LPのCPU「こんな事して」命令用ファイル
っとこんな感じ。

今は「TopDesign」のタブが開かれています。
これのおかげで、プログラムを見ずとも、「あ~。こんな事させたいのか?」
が判ってしまいます。

「TopDesign」のタブを開いた状態で、右側のこまどを見てみると
Cypress」と「off-chip」のタブがあります。

「Cypress」のタブはPSoC5LPの中に作れるもの

「off-chip」のタブはPSoC5LPに接続するもの が入っています。

タブに入っているファイルの中にたくさんのコンポーネントが入っているので、
コンポーネント一つ一つを白い絵の中にドラッグアンドドロップして
PSoC5LPを含めた全体の機能を組み立てていきます。


さて、「off-Chip」タブをクリックして
「DioDes」「Passive」「Power」のファイルの中から「LED」「Resistor」「Ground」を白い中心にドラックアンドドロップしましょう。
1回クリックすると右下に「今選んだコンポーネントはこれ」って表記が出ます。


それが終わったら、「Cypress」タブをクリックして
「Ports and Pin」のファイルの中から「Digital Output Pin」を白い中心にドラックアンドドロップしましょう。

主要なものが揃うとこんな感じ。

このままだと見づらいのでムシメガネのプラスマークで
見やすく何度かクリックして、

なんとなく一列になるように
マウスポインタでプレスして移動させます。

PSoC5LP側の部品で、文字と部品が黒い文字で表されている。
今回の場合だと「Pin_1」はPSoC5LPが持ってる部品

PSoC5LP側の部品ではないけど接続されている部品
部品と文字が青であらわされている。
今回の場合だとLEDとかの部品


移動が出来たら、「Pin_1」をダブルクリックします。
そうするとピンについての設定画面が出ます。

設定画面が出たら、「HW Commection」のチェックボックスを外します。
今回は使わないので。
あと他の部品とも接続(お絵かき)できるように「Show External Terminal」
チェックボックスを入れます。
そうするとこんな感じ。

終わったら「OK」ボタンをクリックしましょう。

次に部品同士を結線させていきます(お絵かき)
コネクターボタンをクリックして、部品同士をつなげていきます。
つなげるとこんな形になります。
(青い四角がコネクターボタン)

おおまかな、PSoC5LPのデザインが終わったら
PSoC5LPの内部についての設定をしていきましょう。


[自分で付けた名前].cydwrをダブルクリックするとこんな感じの画面になります。


下にあるタブの中で設定していきます。

先ずは、ピンの設定をしましょう。「Pins」のタブにある右側のこまどに
「Neme」「Port」「Pin」って行があるので、
「Pin_1」の列と「Port」の行のプルダウンメニューを開きましょう。
使いたいX番ポートのX番目をクリックしましょう。
そうするとこんな感じになります。

(私はfreeSoCを使っているので、P15[4]をクリックしました。CQ出版の人はP6[7]を。PSoC5_EVBの人はP12[1]を。)

そしてもう一つ設定をします。
それは、PSoC5LPに「いくつのボルト数で動かすよ」を伝えないといけません。
なので、「System」のタブをクリックして、

右側のスクロールバーを下に移動させます。
移動させたら、「Vdd**(V)」の項目を3.3って入力します。

ここまで来たら1度ビルド(コンパイル)をします。
ここで1度ビルドをしておくと、プログラムを書くときの補助機能が動作しやすくなるのでします。

青い四角のビルドボタン押しずしボタンを1回押します。

すこし時間がかかるので、すこし待ちます。 
エラーが出なければ次に進みましょう。



「main.c」をダブルクリックしてページを開きましょう。
開いたら、少しスクロールして

for(;;){
<ここにプログラムを書きます。>
}

プログラムの中身は

        Pin_1_Write(1);
        CyDelay(500);
        Pin_1_Write(0);
        CyDelay(500);

今回は、500ミリ秒LEDをつけて500ミリ秒間消す。を
繰り返しさせます。
終わるとこんな感じになります。

書いている途中から「これ使うの?」みたいに
候補が出てくると思いますが、候補を使っても良いです。

もう1度ビルドボタンを押して、エラーが出なければ

データ完成 (/・ω・)/

実際に、PSoC5LPにデータを入れてみましょう。
USBケーブルをボードとパソコンをつなぎます。


つなぐと、「キコン!」って接続しましたアラートが2回聞こえたら


ビルドボタンの近くに書き込みボタンにぎりずしボタンを押して
書き込みましょう。(みどりの四角のボタン)

どうですか?光りました??


手数は多いかもしれませんが、プログラムの中身は
「3V流せ」
「そのまま」
「止めろ」
「そのまま」
だけです。
また、AVRや他の32bitマイコンだとながーい呪文を書くのですが
純正の環境なのに、Arduinoやmbedと似た感じで作れます。

「PSoC怖い」とか「えーPSoCぅ・・・」って言ってる人はどうでしょう?
そんなに怖がらなくても平気ですよ??



もしかしたら、副題で引っかかった人もいるかと
思いますが、~ほぼ、文字を書かないで同じ動作~も出来ます。
と言うか、今回はちょっと効率が悪いやり方でした。

次回は、PWMってなに?~結局ONとOFFなの?~

0 件のコメント:

コメントを投稿