PSoC 6 Pioneer Kit で、Lチカしてみる (1)
PSoC Advent Calendar 2017の18日目の記事です。
PSoC 6 Pioneer Kit で、Lチカしてみます。
2回にわけて記事にしてみました。
今回は、コードを少し書いて、Lチカします。
※PSoC 6 Pioneer Kit を使うには、PSoC Creator 4.2 以降のものが必要になります。
PSoC Creator 4.2 について
2017/12/18 現在、正式リリースはされていません。ベータバージョンとして提供されています。
下記の PSoC 6 のページからリンクが張られており、ダウンロードには、ユーザ登録が必要です。
Cypress PSoC 6
http://www.cypress.com/products/32-bit-arm-cortex-m4-psoc-6
プロジェクトを作成
「Create Project」を押す
「Target kit」「CY8CKIT-062-BLE (PSoC 63)」を選択して、「Next >」を押す
「Empty schematic」を選択して、「Next >」を押す
「Next >」を押す
ワークスペース名など、任意に設定して、「Finish」を押す
Digital Output Pin を配置する
右上のComponent Catalogの検索窓に、「pin」と入力
「Digital Output Pin」を、TopDesign.cysch にドラッグ&ドロップする
Digital Output Pinは、「Pin_1」という名で、生成される。
※写真は、Zoom In で拡大してます。
これをダブルクリックする。
Nameを「LED8」に変更。
「HW connection」のチェックをはずして、OKを押す。
※Nameには、任意の名前をつけられます。その場合、以下のすべての「LED8」を読み替えてください。
Pins をダブルクリックする。
「LED8」の Port のドロップダウンリストから、P1[5]を、選択する。
コードを書く
左の Workspace Explorer の main_cm0p.c を、ダブルクリックする。
forのなかに、2行加えます。
※コメントは削除しています。
#include "project.h" int main(void) { __enable_irq(); Cy_SysEnableCM4(CY_CORTEX_M4_APPL_ADDR); for(;;) { Cy_GPIO_Inv(LED8_PORT, LED8_NUM); CyDelay(500); } }
コードの説明(ざっくり)
LED の GPIO の出力を反転させる。
500msec(0.5秒)待つ。
これを繰り返す。
Program ボタンを押すと、コードが書き込まれ、実行されます。
LED が点滅します。
おまけ
この Kit には、ほかにも LED が、のっていますので、光らせる LED を変えてみてください。
※Pins の LED の Port の接続先を変えることで光らせる LED を変えられます。
LED の Port は、このようになっています。
色 | Port | |
---|---|---|
LED5 RGB (R) | 赤 | P0[3] |
LED5 RGB (G) | 緑 | P1[1] |
LED5 RGB (B) | 青 | P11[1] |
LED8 | オレンジ | P1[5] |
LED9 | 赤 | P13[7] |
参考:
PSoC 6 Pioneer Kit の回路図は、下記にインストールされます。
C:\Program Files (x86)\Cypress\CY8CKIT-062-BLE PSoC 6 BLE Pioneer Kit\1.0\Hardware\CY8CKIT-062-BLE\CY8CKIT-062-BLE Schematic.pdf
PSoC 6 Pioneer Kit / E-ink ディスプレイの表示データを作ってみる
PSoC Advent Calendar 2017の7日目の記事です。
PSoC 6 Pioneer Kit の E-ink ディスプレイで遊んでみます。
今回は、PSoC 側のコードは書きません。
※PSoC 6 Pioneer Kit を使うには、PSoC Creator 4.2 が必要になります。
PSoC Creator 4.2 について
2017/12/07 現在、正式リリースはされていません。ベータバージョンとして提供されています。
下記の PSoC 6 のページからリンクが張られており、ダウンロードには、ユーザ登録が必要です。
Cypress PSoC 6
http://www.cypress.com/products/32-bit-arm-cortex-m4-psoc-6
プロジェクトを作成
「Create Project」を押す
「Target kit」「CY8CKIT-062-BLE (PSoC 63)」を選択して、「Next >」を押す
「Code example」を選択して、「Next >」を押す
「CE218133_EINK_CapSense」を選択して、「Next >」を押す
「Next >」を押す
ワークスペース名など、任意に設定して、「Finish」を押す
サンプルプロジェクトの実行
screen.c の 140行目に BreakPoint をしかけて、デバッグ実行(デバッグ実行ボタンを押すか、F5を押す)する
デバッグターゲット選択画面が表示される場合は、
「PSoC 63 CY8C6347BZI-BLD53(CM0p)」を選択して、「OK / Connect」を押す
ビルドされ、書き込みが完了し、実行される。
実行されると、main_cm0p.c の main 関数の頭で、止まるので、F5 を押して進めると....
E-ink ディスプレイにイメージが描画される。
Shift+F5 で、デバッグ実行を止める。
ここで、デバッグ実行を止めずに、そのまますすめると、このサンプルプロジェクトを試すことができます。
Pioneer Kit の右下のタッチセンサー部分をスライドしたり、タッチすることで、画面が書き換わります。
画像データを書き換えてみる
次に、このサンプルプロジェクトの起動画面を書き換えてみます。
screen_contents.c : 509行目から、起動画面のイメージがあります。
ここの最初の1バイトを、0xFF から 0x00 に書き換えて、デバッグ実行します。
さらに、F5を押して、進めると....
E-ink ディスプレイの左上に、小さな線(縦1ピクセル/横8ピクセル)が描かれていることがわかります。
画像イメージは、1ビットが1ピクセルに対応しています。つまり、1バイトで、8ピクセル。
この E-ink ディスプレイは、縦横264x176なので、全画面の画像データは、264×176÷8 = 5808バイトとなります。
そんなデータをひたすら書いていくのはつらいので、BMP から画像データへのコンバータを作ってみました。
画像データコンバータ
やることは単純です。
BMP ファイルを読み込み、1ピクセルずつ色を見て、1バイトに詰めて、16進数表示でテキストにしています。
処理を簡単にするために、BMP の赤のみをみています。
下記のコードは、WPF/C# の一部です。
(Linuxな方!PNG対応したい方!Advent Calendar 書くネタないなぁという方!コンバータ作って、ぜひ投稿してください)
MainWindow.xaml
<Window (snip) Title="MainWindow" Height="350" Width="525"> <Grid> <Button Content="File Select" HorizontalAlignment="Left" Margin="10" VerticalAlignment="Top" Width="80" Height="20" FontSize="12" Click="Button_Click"/> <TextBox Name="tbResult" Margin="10,40,10,10" /> </Grid> </Window>
MainWindow.xaml.cs
using Microsoft.Win32; using System; using System.Windows; using System.Drawing; namespace (Your Namespace) { public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private void Button_Click(object sender, RoutedEventArgs e) { OpenFileDialog ofd = new OpenFileDialog(); string result = ""; ofd.DefaultExt = ".bmp"; ofd.Filter = "BMP|*.bmp"; if (ofd.ShowDialog() == true) { Bitmap bitmap = new Bitmap(ofd.FileName); for (int y = 0; y < bitmap.Height; y++) { result += " "; for (int x = 0; x < bitmap.Width; x+=8) { int a = 0; for (int i = 0; i < 8; i++) { a = a << 1; Color c = bitmap.GetPixel(x+i, y); if (c.R > 127) a |= 1; } result += string.Format("0x{0:X02}, ", a); } result += string.Format("// {0}", y + 1) + Environment.NewLine; } tbResult.Text = result; } } } }
読ませるBMPファイルは、縦横264x176の物を準備してください。
サイズが間違っていると、画像がずれたり、動作がおかしくなります。
実行後、出力された16進数のデータを、screen_contents.c の 511~686行目と部分に上書きします。
※画像ではわかりにくいですが、176行分上書きしてください。
これを、デバッグ実行すると....
うまく表示されました!
IoTおもちゃを作ってみた
PSoC Advent Calendar 2016の13日目です。
以前、作った「IoTおもちゃ」について書いてみます。
IoTおもちゃ「ハロウィンのお城」
6cm角のサイコロ型の箱におさまる大きさのペーパークラフトです。
これを、PC やスマホから、照明を操作できるようにしました。
操作画面です。ブラウザから操作できます。
ペーパークラフト
株式会社さんけい の ペーパークラフトキット「みにちゅあーとmini」を改造して使用しています。
窓ガラス部分を、光りが通るように、プラバンに変え、中に LED を入れ、配線を床下に出しています。
床下には、PSoC 4 BLE Module (ピンソケットをはずしたもの)と ボタン電池が入っています。
システムの全体構成
通信経路は、下記のようになっています。
PSoC 4 BLE と Android が、BLE 通信。
Android と PC/スマホ が クラウドを介して、通信できるようになっています。
はじめて見る人は、「なんでー?」って言ってくれる人が少なくないのですが、わかってしまえば簡単です(^^)
Android端末
BLE通信 と インターネット通信を仲介するために、それぞれに接続できるようになっています。
もちろん、BLE通信だけで、直接、ペーパークラフトを操作できます。
Cloud / Webアプリ
Microsoft Azure 上に、Web Apps をたてています。
WebアプリとAndroid端末は、SignalR を使って通信しています。
Cloud 側は、ほぼ設定だけで、コードといえる物は、ありません。
Webアプリもボタンを押したら、Cloud に、コマンドを投げるだけというレベル。
BLE 通信
BLE の通信もシンプルです。
Custom Profileにして、Service / Characteristic を1つ作っています。
Characteristic は、uint8 が 1byte です。
Android から、コマンド 1byte 書き込むことで、動作するようにしています。
2つの LED をどのように光らせるかということを設定するだけなので、8bit で十分です。(単純に手抜き)
ひとこと
いろんな技術を使っていますが、どれも入門編レベルです。
IoTブームとか言われますが、まだまだ、インターネットとやりとり出来たらおもしろくなる物は、たくさんあると思います。
なにか作ってみてはいかがでしょうか?
おまけ
今回使用した「みにちゅあーとmini」は、他にもたくさん発売されており、いくつか改造して遊んでみようと思っています。
そこで、勉強がてら、専用基板つくっちゃいました(笑)
PSoC 4 BLE で基板を作ってしまうと、技適を通す必要が出てくるため、EZ-BLE PSoC を使っています。
しかし、こんな基板を設計して、気軽に発注できるなんていい時代ですよね。
PSoC 4 BLE で、はじめての BLE
PSoC Advent Calendar 2016の4日目の記事です。
Cypress Bluetooth Low Energy Pioneer Kit を入手して、PSoC Creator をインストールすれば、スマホですぐに BLE通信 を試すことができます。
導入後のファーストステップとして、コードも書かず、電子部品も使わずに、BLE の実験してみます。
1. スマホに「CySmart」アプリをダウンロード
BLE に対応した iPhone / Android スマホに、「CySmart」アプリをダウンロードします。
CySmart (iPhone) : App Store からダウンロード
CySmart (Android) : Google Play からダウンロード
(この記事の CySmart のスクリーンショットは、iPhone のものです。)
2. 新規プロジェクトの作成
2-1. PSoC Creator 起動
PSoC Creator を起動します。
「Create Project」ボタンを押す。
2-2. デバイスの選択(CY8CKIT-042-BLE の場合)
「Target device」にチェックを入れ、
「PSoC 4」「PSoC 4200 BLE」を選択。
2-2. デバイスの選択(CY8CKIT-042-BLE-A の場合)
「Target device」にチェックを入れ、
「PSoC 4」「Launch Device Selector...」を選択。
「Series」で、「PSoC 4200 BLE」を選択し、「CY8C4248LQI-BL583」を選択して、「OK」を押す。
2-3. テンプレートの選択
「Code example」を選択し、「Next >」を押す。
2-4. Example Project の選択
「BLE_FindMe」を選択し、「Next >」を押す。
2-5. 作成するプロジェクトの設定
ワークスペース名/保存先/プロジェクト名を設定し、「Finish」を押す。
3. 接続/ビルド/実行
Baseboard を PC と接続します。
「Program」ボタンを押すと、自動的にビルドが実行され、書き込みが行われます。
書き込みが完了すると、自動的に、実行されます。
このプロジェクトが正常に動作すると、右上のLEDが緑色に点灯します。
緑色に点灯している間は、BLE接続できる状態で、一定時間で、接続出来ない状態(赤色点灯)になります。
Baseboard の Resetボタンを押すことで、再度、接続出来る状態になります。
4. スマホで、BLE 通信する
スマホ側で、CySmartを起動します。
うまく動作していれば、「Find Me Target」がみつかります。
※見つからない場合は、Baseboard の Reset ボタンを押してみてください。
4-1. 接続する
「Find Me Target」をタッチすると、接続され、通信が確立します。
4-2. Find Me
メニューを左右にスライドさせて、「Find Me」を正面にもってきてタッチします。
「Select」を押す。
「No Alert」「Mid Alert」「Hige Alert」のいずれかを選択すると、Baseboard の LED の光り方が変わります。
スマホと、PSoC 4 BLE が通信できていることが確認できたでしょうか?
5. ひとこと
今回の Find Me 以外にも、たくさんの Example Project がありますので、お好みの物を試してみてください。
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] |