でばいすの山小屋

デバイスとかクラウドを実験中。IoTのふもとあたりをうろうろ。

PSoC 4 BLE で、Lチカしてみる(1)

Cypress BLE Pioneer Kitを使って、Lチカしてみます。

PSoC 4 BLEをさしたBaseboardをPCにUSBケーブルでつなぎます。
PSoC Creatorを起動します。

1. プロジェクトの作成

メニューから「File」「New」「Project」を選択

f:id:blgkns:20150803004445p:plain:w320
PSoC 4100 BLE / PSoC 4200 BLE Design を選択
・プロジェクト名
・保存場所
ワークスペース
を設定 Project templete を「Empty schematic」にして、「OK」を押す

2. Digital Output Pin を配置する

f:id:blgkns:20150803004446p:plain:w320
右上のComponent Catalogの検索窓に、「pin」と入力
「Digital Output Pin」を、TopDesign.cysch にドラッグ&ドロップする

f:id:blgkns:20150803004447p:plain:w320
Digital Output Pinは、「Pin_1」という名で、生成される。
※写真は、Zoom In で拡大してます。
これをダブルクリックする。

f:id:blgkns:20150803005421p:plain:w320
Nameを「LED」に変更。
「HW connection」のチェックをはずして、OKを押す。

f:id:blgkns:20150803004449p:plain:w320
LED01.cydwrをダブルクリックする。
「LED」を、ドラッグ&ドロップで、P2[6] につなぐ。

f:id:blgkns:20150803004450p:plain:w320
メニューから「Build」「Generate Application」を実行。
(もしくは、Generata Applicationボタンを押す)
これで、現在のハードウェア構成にあわせて、関数群が生成される。

3. コードを書く

左の Workspace Explorer の main.c を、ダブルクリックする。
2行加えて、こんな感じ

#include <project.h>

int main()
{
    CyGlobalIntEnable; /* Enable global interrupts. */

    /* Place your initialization/startup code here (e.g. MyInst_Start()) */

    for(;;)
    {
        LED_Write( ~LED_Read() );
        CyDelay(1000);
    }
}

コードの説明(ざっくり)
現在のLEDの値が1であれば0に、0であれば1にする。
1000msec(1秒)待つ。
これをひたすら繰り返す。

f:id:blgkns:20150803004451p:plain:w320
メニューから「Debug」「Program」を実行
(もしくは、Programボタンを押す)
設定やコードに間違えがなければ、書き込みデータ生成され、チップに書き込まれ、実行される。

f:id:blgkns:20150803004453p:plain:w320
問題なく実行されれば、LEDが点滅する。

4. おまけ

このLEDは、3色LEDなので、色を変えられます。
LED01.cydwr を表示して、「LED」を、ドラッグ&ドロップで、P3[6] につなぐ。
f:id:blgkns:20150803004452p:plain:w320

Programボタンを押す。
うまく動けば、LEDが緑色で点滅する。

LED01.cydwrをダブルクリックする。
「LED」を、ドラッグ&ドロップで、P3[7] につなぐ。
Programボタンを押す。
LEDが青色で点滅する。