でばいすの山小屋

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

PSoC Creator 4.0 をインストールしてみる

PSoC Advent Calendar 2016の2日目の記事です。

PSoC Creator 4.0 を Windows10 にインストールします。
PSoC 4、PSoC 4 BLE、PRoC BLE、PSoC 5LP、EZ-BLE (PRoC/PSoC) 開発する際のインストール手順になります。
PSoC 3 開発をする場合は、Keil のライセンス認証が必要になります。認証登録については扱いません。)
(FM系MCU 開発をする場合は、PDLのインストールが必要になります。この記事では扱いません。)

ログイン

PSoC Creator をダウンロードするには、Cypress のホームページにログインする必要があります。
https://www.cypress.com/user/login
f:id:blgkns:20161201185931p:plain:w320
上記ページよりログイン(アカウントがない場合は、アカウントを作成します)

ダウンロード

PSoC Creator のページに行き
http://japan.cypress.com/products/psoc-creator-integrated-design-environment-ide
f:id:blgkns:20161201163745p:plain:w320
右側の「PSoC Creator for Windowsのダウンロード」をクリックし、ダウンロードします。

Akamai ダウンロードマネージャがインストールされてない場合は、こちらの画面が表示されます。
f:id:blgkns:20161201163746p:plain:w320
Akamai ダウンロードマネージャをインストールする場合は、表示に従って、ダウンロード/インストールして、再度、上記URLにアクセスします。

直接、PSoC Creatorをダウンロードする場合は、ダイアログを閉じて、「download the file without using the download manager」を選択します。
f:id:blgkns:20161201163747p:plain:w320


インストール

インストーラ ( PSoCCreatorSetup_4.0_es100_b432.exe ) (2016/12/01時点) を実行する。

.NET Framework 3.5」がインストールされていない場合
下記のような表示が出てインストールが中止されます。
f:id:blgkns:20161201163748p:plain

.NET Framework 3.5」をインストールします。
「コントロールパネル」の「Windowsの機能の有効化または無効化」で、
.NET Framework 3.5(.NET 2.0 および 3.0を含む)」にチェックをつけて、「OK」
f:id:blgkns:20161201163749p:plain

.NET Framework 3.5」のインストールが終わったら、再度、PSoC Creator のインストーラを実行します。


画面に従いインストールしていきます。
f:id:blgkns:20161201163750p:plain

f:id:blgkns:20161201163751p:plain

f:id:blgkns:20161201163753p:plain

f:id:blgkns:20161201163752p:plain

f:id:blgkns:20161201163754p:plain

f:id:blgkns:20161201163755p:plain
名前とメールアドレスを入力

f:id:blgkns:20161202004722p:plain
FM系MCU開発用なので、Cancelを選択

f:id:blgkns:20161201163757p:plain
Cypressのウェブサイトでログインした時のメールアドレスおよびパスワードを入力

インストール完了!

開発キット

持っている開発キット(ハードウェア)にあったパッケージをインストールすることで、PSoC Creator をより便利に使うことができます。

たとえば、「PSoC 5LP Prototyping Kit」の場合、
CY8CKIT-059 PSoC 5LP Prototyping Kit With Onboard Programmer and Debugger
このページの「Related Files」の
「CY8CKIT-059 Kit Only (Kit Design Files, Documentation, Examples) 」をダウンロードし、インストールします。

新規プロジェクト作成時に、対象のキットが表示されるようになります。
f:id:blgkns:20161201163758p:plain


BLE Pioneer Kit の場合も下記からダウンロードして、インストールしてください。
※キットによっては、別のソフトウエアのインストールを要求されることがあります。

CY8CKIT-042-BLE Bluetooth Low Energy (BLE) Pioneer Kit
「Download CY8CKIT-042-BLE Kit Only Package (Kit Design Files, Documentation, Examples)」

CY8CKIT-042-BLE-A Bluetooth Low Energy 4.2 Compliant Pioneer Kit
「CY8CKIT-042-BLE-A Kit Only (Kit Design Files, Documentation, Examples) 」

その他、たくさんの開発キットがありますので、お持ちのキットのページからダウンロードしてください。
また、キットによっては、回路図やBOMを置いてあるので、いろいろ参考になります。

Keil ライセンス取得ダイアログについて

しばらく使っていると、Keil のライセンス取得を求められるようになります。
以下の手順で、ダイアログ表示を止めることができます。
(※PSoC 3 で開発する方は、ライセンスを取得してください。本記事では扱いません。)
メニューの「Tool」「Options」で、
f:id:blgkns:20161201163759p:plain
「Don't show Keil registration....」に、チェックをつけます。

さて準備は出来ました!

PSoC Creator でいろいろ作ってみましょう!

PSoC 4 BLE で、シリアル通信してみる

PSoC 4 BLE で USBシリアル変換モジュールを使ってシリアル通信してみました。

使ったもの

・Cypress Bluetooth Low Energy Pioneer Kit (PSoC 4 BLE)
・USBシリアル変換モジュール

1. USBシリアル変換モジュール

秋月電子通商 超小型USBシリアル変換モジュール
http://akizukidenshi.com/catalog/g/gM-08461/
こちらを使用しました。3.3V でも 5V でも使用できます。
3.3V対応のものであれば、他のモジュールでもそのまま使えるかと思います。

2. プロジェクトの準備

メニューから「File」「Example Project」を選択
f:id:blgkns:20150919005433p:plain:w320
Device Family を PSoC 4200 BLE、
Keyword を UART にして、
SCB_UartComm を選択し、「Create New Workspace」を押す。
プロジェクトの保存先を指定して、「OK」を押す。
プロジェクトが生成され、データシートが表示されます。

3. ピンアサインを変更

データシートに、Bluetooth Low Energy PIONEER KIT (CY8CKIT-042 BLE) の場合、ピンアサインを変更するように書かれています。
f:id:blgkns:20150919005434p:plain:w320
UART:rx を P1[4] に、UART:tx を P1[5] につなぎ変えます。

4. 書き込み

「Build」「Generate Application」を押します。
Program ボタンを押します。

5. 配線

一度、 Baseboard の USB ケーブルを抜いた上で、下記のように配線します。
f:id:blgkns:20150919005438p:plain:w320

PSoC 4 BLE USBシリアル変換モジュール
GND - GND
P1[5] UART:tx - RxD
P1[4] UART:rx - TxD

また、USBシリアル変換モジュールと PC をUSBケーブルで、つなぎ、Baseboard と PC を USBケーブルでつなぎます。

6. シリアル通信してみる

ターミナルソフトを起動する。今回は、Tera Term を使用しました。
f:id:blgkns:20150919005435p:plain:w320
「シリアル」を選択し、対象のCOMポートを選択し、「OK」を押します。
※環境によって、COMポートは変わります。
f:id:blgkns:20150919005436p:plain:w320
「設定」「シリアルポート」において、シリアルポートの設定を変更します。
PSoC 4 BLE のシリアルポート設定にあわせます。データシートに記述されています。

f:id:blgkns:20150919005437p:plain:w320
Baseboard のリセットボタンを押すと、Tera Term 上にメッセージが表示されます。また、PC 側でキー入力を行うと、そのまま表示されます。

7. コードについて

PSoC Creator で、main.c を見てみると、起動後、5行のテキストを、UART に吐きます。
その後、UART から受けた文字をそのまま UART に返します。PC でターミナルソフト上で、入力された文字は、いったん PSoC 4 BLE に送られた文字が帰ってきたものであることがわかります。

EZ-BLE で、Lチカしてみる

EZ-BLE 小さくていいですね。1cm角のモジュールに、CPU / BLEモジュール / チップアンテナが載ってます。 今回は、EZ-BLE PRoC Evaluation Board が入手出来たので、これでLチカしてみます。

1. Baseboardの準備

f:id:blgkns:20150909120743p:plain:w320
Bluetooth Low Energy Pioneer Kit の Baseboard に、EZ-BLE PRoC Evaluation Board をセットします。

2. プロジェクトの準備

メニューから「File」「New」「Project」を選択
PSoC 4100 BLE / PSoC 4200 BLE Design を選択
プロジェクト「EZ-BLE_LED01」とし、
Project templete を「Empty schematic」にして、「OK」を押す

3. プロジェクトの対象デバイスの変更

参照:
yamagoya.hatenablog.jp

  1. Components タブを選択します。
  2. Project を選択、右クリックから、Device Selector を呼び出します。
  3. Family のフィルタで、PSoC 4 BLE のチェックをはずし、PRoC BLE のチェックをつけます。
  4. CYBLE-022001-00 を選択し、OK を押します。
    f:id:blgkns:20150909120739p:plain:w320

4. コンポーネントを配置する

4-1. コンポーネントの配置

TopDesign.cysch を開き、 Component Catalog から、Digital Output Pin を3つ配置する。

4-2. Digital Output Pinコンポーネントの設定

f:id:blgkns:20150909120740p:plain:w320
写真のように、LED_R を設定する。
同様に、LED_G、LED_B を設定する。

4-3. 配置・設定完了 ####

f:id:blgkns:20150909120741p:plain:w320


5. 配線する

f:id:blgkns:20150909120742p:plain:w320
EZ-BLE_LED01.cydwr を開き、
LED_R を P3[4] に
LED_G を P3[6] に
LED_B を P3[7] につなぐ。
「Generate Application」ボタンを押す

6. コードを書く

Workspace Explorer から main.c を、開いて下記のようにコードを書きます。

#include <project.h>

int main()
{
    int count = 0;
    
    CyGlobalIntEnable;

    for(;;)
    {
        LED_R_Write( count & 0x01 ? 0:1 );
        LED_G_Write( count & 0x02 ? 0:1 );
        LED_B_Write( count & 0x04 ? 0:1 );
        CyDelay(500);
        
        count++;
        if(count > 7)
            count = 0;
    }
}


7. 実行

Programボタンを押して、実行。
うまく動けば、LED が0.5秒ごとに、色を変えていきます。

8. 参考

Bluetooth Low Energy Pioneer Kit に挿した時、LED と User Switch は、下記のようになっています。

  PSoC 4 BLE / PRoC BLE EZ-BLE
LED (R) P2[6] P3[4]
LED (G) P3[6] P3[6]
LED (B) P3[7] P3[7]
User Switch P2[7] P3[5]

PSoC 4 BLE を、BLE Broadcaster にしてみる

PSoC 4 BLE を、BLE Broadcaster にして、値を変えつつ発信させて、それを PC で受信します。
PC は、Windows10 になって、BLE のアドバタイズパケットを、アプリ側で見ることが出来るようになったので、それも一緒に試します。
なので、機材的にちょっとハードルが高いです。

用意するもの

・Cypress Bluetooth Low Energy Pioneer Kit
・PC (Windows10 / Bluetooth 4.0 LE対応)
PSoC Creator
Visual Studio 2015 (無償のCommunity版でも可)

1. UWP アプリケーションサンプルを準備する

1-1. サンプルのダウンロード

Windows10 の新しいアプリケーションプラットフォーム Universal Windows Platform (UWP)のサンプル集が Github にあります。
https://github.com/Microsoft/Windows-universal-samples から
Windows-universal-samples-master.zip をダウンロード。

1-2. サンプルのビルド

c:\Projects\ に解凍
※この時、すべての sample を解凍してください。BluetoothAdvertisement のみ解凍しても動作しません。
C:\Projects\Windows-universal-samples-master\Samples\BluetoothAdvertisement\cs\BluetoothAdvertisement.sln
Visual Studio 2015 で開く
※UWP 開発に必要なパッケージがインストールされていない場合は、インストールするように言ってくれます。
ソリューションを開く時に、「セキュリティ警告」が表示されますが、「OK」を押します。

f:id:blgkns:20150818111859p:plain:w320
ソリューションプラットフォームを「x64」もしくは「x86」にします。
ソリューションエクスプローラーから、Scenario1_Watcher.xaml.cs を開く
f:id:blgkns:20150818111903p:plain:w320
※ここで、やたら赤線だらけになってしまう場合は、Visual Studio を再起動するとなぜかなおる....

下記のようにコンストラクタの真ん中あたりの6行をコメントアウトします。

public Scenario1_Watcher()
{
    // <snip>

    //var manufacturerData = new BluetoothLEManufacturerData();

    //manufacturerData.CompanyId = 0xFFFE;

    //var writer = new DataWriter();
    //writer.WriteUInt16(0x1234);

    //manufacturerData.Data = writer.DetachBuffer();

    //watcher.AdvertisementFilter.Advertisement.ManufacturerData.Add(manufacturerData);

    // <snip>
}

該当部分は、BLE デバイスのフィルタ指定です。これを切らないと、PSoC 4 BLE が見えません。
※見やすいようにコメント行を削っています。

「ビルド」メニューから「bluetoothadvertisement のリビルド」を実行します。

2. PSoC 4 BLE のサンプルを準備する

2-1. サンプルのダウンロード

https://github.com/cypresssemiconductorco/PSoC-4-BLE から
PSoC-4-BLE-master.zip をダウンロード

2-2. サンプルのビルド/実行

c:\Projects\ に解凍
C:\Projects\PSoC-4-BLE-master\100_Projects_in_100_Days\Day009_Dynamic_Broadcaster\Dynamic Broadcaster\Dynamic Broadcaster.cywrk
PSoC Creatorで開く

f:id:blgkns:20150818111858p:plain:w320
PSoC Creator のメニューから、「Build」「Clean and Build Dynamic Broadcaster」を実行し、Build します。
Program ボタンで、実行します。
無事に実行されると、定期的に、アドバタイズパケットを発信している状態(ブロードキャスト)で動き始めます。

3. スマホで確認(任意)

CySmart で、PSoC 4 BLE が、発信しているか確認します。

f:id:blgkns:20150818111904p:plain:w240

発信していれば、このように表示されます。発信しかしていないためタッチしても、接続は出来ません。

4. UWP アプリケーションサンプルを実行する

Visual Studio に戻り、「 ローカル コンピューター」を押して、アプリケーションを実行します。
f:id:blgkns:20150818111901p:plain:w320
アプリケーションが起動したら、「Run」を押します。
f:id:blgkns:20150818111900p:plain:w320
アドバタイズパケットが観測でき、デバイス名や受信したデータ(Manufacturer Specific Data)が表示されています。

5. 動作の説明(ざっくり)

PSoC 4 BLE は、定期的に、ひたすらアドバタイズパケットを発信します。PC側では、アドバタイズパケットを受信するだけです。1対多 の一方向通信です。BLE的には、発信する側を Broadcaster、受信する側を Observer といいます。
PSoC 4 BLE側(Broadcaster)のこのサンプルでは、送信する値を定期的に変更しています。(main.c:219あたりから)
f:id:blgkns:20150818111902p:plain:w320
また、送信しているアドバタイズパケットは、BLE コンポーネントの「GAP Settings」「Advertisement packet」に、定義されています。
Manufacturer Specific Data の Data を、「00 00 00」にするとどうなるか、PC側でどうなるかやってみてください。
ちなみに、このアドバタイズパケットの Local Name を削って、Manufacturer Specific Data を最大にとったものが、iBeacon です(ざっくり)。

6. 参考:CyBle_GapUpdateAdvData()

PSoC 4 BLE でアドバタイズパケットを CyBle_GapUpdateAdvData() で、更新していますが、サンプルを使わずに、書くとなぜか動きませんでした。
調べてみると、BLE コンポーネントのバージョンに依存しているようで、新しいコンポーネントでは、CyBle_GapUpdateAdvData() は、CyBle_GetBleSsState() が、CYBLE_BLESS_STATE_ACTIVE の時は、使えないようです。
※たしかに STATE_ACTIVE の時にアップデートしたら、問題が起こりそうですよね....

if( CyBle_GetBleSsState() == CYBLE_BLESS_STATE_ACTIVE )
{
    ....
}
else if(( CyBle_GetBleSsState() == CYBLE_BLESS_STATE_EVENT_CLOSE )&&(updated == 1))
{
    CyBle_GapUpdateAdvData(...);
    updated = 0;
}

こんな感じの対応が必要でした。

PSoC 4 BLE で、BLE 通信してみる

Cypress BLE Pioneer Kit で、すぐにBluetooth Low Energy (BLE) の実験ができます。
今回は、サンプルプロジェクトを使って、スマホと BLE 通信をしてみます。

1. スマホに「CySmart」アプリをダウンロード

BLE に対応した iOS / Android スマホに、「CySmart」アプリをダウンロードします。
App StoreGoogle Play で見つかります)
PC でも、BLE Pioneer Kitに、同梱されているドングルを使って、BLE 通信できますが、今回は使用しません。
(この記事の CySmart のスクリーンショットは、iPhone のものです。)

2. プロジェクトファイルのダウンロード

Cypressさんが、github上に、PSoC 4 BLE のサンプルプロジェクトを置いてくれています。
f:id:blgkns:20150810152321p:plain:w480
https://github.com/cypresssemiconductorco/PSoC-4-BLE

たくさんのサンプルがあり、かなり参考になります。
このページ右下の Download ZIP を押し、PSoC-4-BLE-master.zip をダウンロードします。

3. サンプルプロジェクトを開く

ダウンロードした zip ファイルを、日本語を含まないフォルダに展開します。
例: c:\projects
C:\projects\PSoC-4-BLE-master\100_Projects_in_100_Days\Day003_Custom_Profile_CapSense_RGB_LED\Custom Profile\Custom Profile.cywrk
上記のファイルをダブルクリックで、ワークスペース(プロジェクト)を開きます。
f:id:blgkns:20150810152322p:plain:w320
PSoC Creator のメニューから、「Build」「Clean and Build Custom Profile」を実行し、Build します。
Program ボタンで、実行します。
無事に実行されると、BLE 通信ができる状態になります。

4. スマホで、BLE 通信する

スマホ側で、CySmartを起動します。
すると、CapSense Slider LED がみつかります。

f:id:blgkns:20150810152323p:plain:w240

※見つからない場合は、Baseboard の Reset ボタンを押してみてください。

4-1. 接続する

CapSense Slider LED をタッチすると、接続され、通信が確立します。

4-2. RGB LED

f:id:blgkns:20150810152324p:plain:w240

メニューを左右にスライドさせて、RGB LED を正面にもってきてタッチします。

f:id:blgkns:20150810152325p:plain:w240

カラーチャート上のマーカーをスライドさせると、そこの色情報が、PSoC 4 BLE に送られ、LED の色が変わります。

4-3. CapSense Slider

f:id:blgkns:20150810152326p:plain:w240

メニューに戻り、次は、CapSense Slider を選択します。

f:id:blgkns:20150810152328p:plain:w320
Baseboard の CapSense Slider 部分をタッチして、指をスライドさせると、スマホ側に、タッチ位置情報が伝わります。

f:id:blgkns:20150810152327p:plain:w240


5. ひとこと

PSoC-4-BLE-master.zip には、50本のサンプルがあって(8/10現在)、BLE Pioneer Kit だけでも、いろんな実験ができそうです。

PRoC BLE で、Lチカしてみる

新しいプロジェクトから、PRoC BLE プロジェクトを作ってもいいのですが、なぜか、PRoC BLE 用に Empty schematic テンプレートが 用意されていない(8/10現在)ので、PSoC 4 BLE 用のプロジェクトを、PRoC BLE 用に変更する方法で、プロジェクトを作成してみます。

1. プロジェクトの準備

yamagoya.hatenablog.jp
上記記事を参考に、プロジェクト「LED01」を作成します。
その後、プロジェクト「LED01」をフォルダごと、バックアップするか複製などします。

2. Baseboardの準備

f:id:blgkns:20150810152320p:plain:w320
Baseboard から、PSoC 4 BLE モジュールをはずし、PRoC BLE モジュールをセットします。

3. プロジェクトの対象デバイスの変更

f:id:blgkns:20150810152316p:plain:w320
Components タブを選択します。

f:id:blgkns:20150810152317p:plain:w320
Project を選択、右クリックから、Device Selector を呼び出します。

f:id:blgkns:20150810152318p:plain:w320
Family のフィルタで、PSoC 4 BLE のチェックをはずし、PRoC BLE のチェックをつけます。

f:id:blgkns:20150810152319p:plain:w320
BLE Pioneer Kit についてる PRoC BLE のモジュールには、CYBL10563-56LQXI (同梱されているモジュールを確認してください)と書いてあるので、それを選択し、OK を押します。

4. 実行

「Build」「Clean and Build LED01」で、リビルドします。
Programボタンで、実行

5. 参考

PRoC BLE

PSoC 4 BLEから、アナログ系のコンポーネントなどをカットした廉価版のチップです。
ちなみに、Baseboard にさしたとき、LED や SWITCH が同じピン配置になっています。
PRoC BLE
http://japan.cypress.com/products/proc-ble-bluetooth-smart

EZ-BLE

PRoC BLE を積んだ小型のモジュールです。指先にのるサイズ。なんかプラモデルかなにかに組み込んで、スマホで操作するには最適(?)です。
ただ、ほんとに小さいので、IO を引き出して、配線するのは、ちょっと技術がいるかも。
EZ-BLE
http://japan.cypress.com/products/ez-ble-proc-module-bluetooth-smart

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

PSoC 4 BLE で、Lチカしてみる」の4本目。
LEDの明るさを制御してみます。
今回は、PWMを使います。PWMは、PRoC BLE / EZ-BLE でも使えます。特に EZ-BLEは小さいので、プラモデルなんかに組み込んで、BLE で LEDをコントールとかも出来そうです!

1. プロジェクトの作成

プロジェクト「LED04」を作成します。

2. コンポーネントを配置する

2-1. コンポーネントの配置

Component Catalog から、
・Clock
・PWM
・Digital Output Pin
・Logic Low '0'
を持ってきて、TopDesign.cysch に配置する。

2-2. Clockコンポーネントの設定

f:id:blgkns:20150809235011p:plain:w320

2-3. PWMコンポーネントの設定

f:id:blgkns:20150809235009p:plain:w320

2-4. Digital Output Pinコンポーネントの設定

f:id:blgkns:20150809235010p:plain:w320

2-5. コンポーネントの接続

f:id:blgkns:20150809235012p:plain:w320
コンポーネントの設定後、このように接続します。

2-6. 配線

f:id:blgkns:20150809235013p:plain:w320
LED04.cydwr を開き、LEDを P2[6] につなぐ。
「Generate Application」ボタンを押す

3. コードを書く

Workspace Explorer から main.c を、開く。
コードはこんな感じ。

#include <project.h>

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

    PWM_Start();

    for(;;)
    {
        PWM_WriteCompare(led_output);
        led_output++;
        
        if(led_output > 255)
            led_output = 0;
        
        CyDelay(5);
    }
}


4. 動作の説明(ざっくり)

PWM_WriteCompare( led_output ) で、LED の点灯時間を設定します。点灯時間は、led_output / 255 となります。led_output が255の時は、ずっとついていて、0なら消灯します。
このプログラムでは、led_output を1ずつ大きくしていって、255 になったら、0 に戻しています。
これで、LEDは、だんだんと明るくなり、明るくなったら、消灯に戻り、また明るくなるというのを繰り返します。

5. 実行

Programボタンを押して、実行。