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
上記ページよりログイン(アカウントがない場合は、アカウントを作成します)
ダウンロード
PSoC Creator のページに行き
http://japan.cypress.com/products/psoc-creator-integrated-design-environment-ide
右側の「PSoC Creator for Windowsのダウンロード」をクリックし、ダウンロードします。
Akamai ダウンロードマネージャがインストールされてない場合は、こちらの画面が表示されます。
Akamai ダウンロードマネージャをインストールする場合は、表示に従って、ダウンロード/インストールして、再度、上記URLにアクセスします。
直接、PSoC Creatorをダウンロードする場合は、ダイアログを閉じて、「download the file without using the download manager」を選択します。
インストール
インストーラ ( PSoCCreatorSetup_4.0_es100_b432.exe ) (2016/12/01時点) を実行する。
「.NET Framework 3.5」がインストールされていない場合
下記のような表示が出てインストールが中止されます。
「.NET Framework 3.5」をインストールします。
「コントロールパネル」の「Windowsの機能の有効化または無効化」で、
「.NET Framework 3.5(.NET 2.0 および 3.0を含む)」にチェックをつけて、「OK」
「.NET Framework 3.5」のインストールが終わったら、再度、PSoC Creator のインストーラを実行します。
画面に従いインストールしていきます。
名前とメールアドレスを入力
FM系MCU開発用なので、Cancelを選択
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) 」をダウンロードし、インストールします。
新規プロジェクト作成時に、対象のキットが表示されるようになります。
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」で、
「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」を選択
Device Family を PSoC 4200 BLE、
Keyword を UART にして、
SCB_UartComm を選択し、「Create New Workspace」を押す。
プロジェクトの保存先を指定して、「OK」を押す。
プロジェクトが生成され、データシートが表示されます。
3. ピンアサインを変更
データシートに、Bluetooth Low Energy PIONEER KIT (CY8CKIT-042 BLE) の場合、ピンアサインを変更するように書かれています。
UART:rx を P1[4] に、UART:tx を P1[5] につなぎ変えます。
4. 書き込み
「Build」「Generate Application」を押します。
Program ボタンを押します。
5. 配線
一度、 Baseboard の USB ケーブルを抜いた上で、下記のように配線します。
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 を使用しました。
「シリアル」を選択し、対象のCOMポートを選択し、「OK」を押します。
※環境によって、COMポートは変わります。
「設定」「シリアルポート」において、シリアルポートの設定を変更します。
PSoC 4 BLE のシリアルポート設定にあわせます。データシートに記述されています。
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の準備
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. プロジェクトの対象デバイスの変更
- Components タブを選択します。
- Project を選択、右クリックから、Device Selector を呼び出します。
- Family のフィルタで、PSoC 4 BLE のチェックをはずし、PRoC BLE のチェックをつけます。
- CYBLE-022001-00 を選択し、OK を押します。
4. コンポーネントを配置する
4-1. コンポーネントの配置
TopDesign.cysch を開き、 Component Catalog から、Digital Output Pin を3つ配置する。
4-2. Digital Output Pinコンポーネントの設定
写真のように、LED_R を設定する。
同様に、LED_G、LED_B を設定する。
4-3. 配置・設定完了 ####
5. 配線する
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」を押します。
ソリューションプラットフォームを「x64」もしくは「x86」にします。
ソリューションエクスプローラーから、Scenario1_Watcher.xaml.cs を開く
※ここで、やたら赤線だらけになってしまう場合は、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で開く
PSoC Creator のメニューから、「Build」「Clean and Build Dynamic Broadcaster」を実行し、Build します。
Program ボタンで、実行します。
無事に実行されると、定期的に、アドバタイズパケットを発信している状態(ブロードキャスト)で動き始めます。
3. スマホで確認(任意)
CySmart で、PSoC 4 BLE が、発信しているか確認します。
発信していれば、このように表示されます。発信しかしていないためタッチしても、接続は出来ません。
4. UWP アプリケーションサンプルを実行する
Visual Studio に戻り、「 ▶ ローカル コンピューター」を押して、アプリケーションを実行します。
アプリケーションが起動したら、「Run」を押します。
アドバタイズパケットが観測でき、デバイス名や受信したデータ(Manufacturer Specific Data)が表示されています。
5. 動作の説明(ざっくり)
PSoC 4 BLE は、定期的に、ひたすらアドバタイズパケットを発信します。PC側では、アドバタイズパケットを受信するだけです。1対多 の一方向通信です。BLE的には、発信する側を Broadcaster、受信する側を Observer といいます。
PSoC 4 BLE側(Broadcaster)のこのサンプルでは、送信する値を定期的に変更しています。(main.c:219あたりから)
また、送信しているアドバタイズパケットは、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 Store や Google Play で見つかります)
PC でも、BLE Pioneer Kitに、同梱されているドングルを使って、BLE 通信できますが、今回は使用しません。
(この記事の CySmart のスクリーンショットは、iPhone のものです。)
2. プロジェクトファイルのダウンロード
Cypressさんが、github上に、PSoC 4 BLE のサンプルプロジェクトを置いてくれています。
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
上記のファイルをダブルクリックで、ワークスペース(プロジェクト)を開きます。
PSoC Creator のメニューから、「Build」「Clean and Build Custom Profile」を実行し、Build します。
Program ボタンで、実行します。
無事に実行されると、BLE 通信ができる状態になります。
4. スマホで、BLE 通信する
スマホ側で、CySmartを起動します。
すると、CapSense Slider LED がみつかります。
※見つからない場合は、Baseboard の Reset ボタンを押してみてください。
4-1. 接続する
CapSense Slider LED をタッチすると、接続され、通信が確立します。
4-2. RGB LED
メニューを左右にスライドさせて、RGB LED を正面にもってきてタッチします。
カラーチャート上のマーカーをスライドさせると、そこの色情報が、PSoC 4 BLE に送られ、LED の色が変わります。
4-3. CapSense Slider
メニューに戻り、次は、CapSense Slider を選択します。
Baseboard の CapSense Slider 部分をタッチして、指をスライドさせると、スマホ側に、タッチ位置情報が伝わります。
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の準備
Baseboard から、PSoC 4 BLE モジュールをはずし、PRoC BLE モジュールをセットします。
3. プロジェクトの対象デバイスの変更
Components タブを選択します。
Project を選択、右クリックから、Device Selector を呼び出します。
Family のフィルタで、PSoC 4 BLE のチェックをはずし、PRoC BLE のチェックをつけます。
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コンポーネントの設定
2-3. PWMコンポーネントの設定
2-4. Digital Output Pinコンポーネントの設定
2-5. コンポーネントの接続
各コンポーネントの設定後、このように接続します。
2-6. 配線
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ボタンを押して、実行。