PSoC 4100S CapSenseの使い方(その3前半)

Cypress PSoC 4 MCU内蔵タッチセンサ:第4世代CapSenseの使い方、3回目は、CapSenseの使い方を前後半に分けて示します。前半は、CapSenseのPSoC Creator設定方法、次回の後半は、CapSenseのプログラミングです。

図1 PSoC 4100S/4000S CapSenseの使い方
図1 PSoC 4100S/4000S CapSenseの使い方(第3回前半・後半の内容)

参照情報:PSoC 4 Capacitive Sensing (CapSense) コンポーネントデータシート Version 6.0

PSoC Creatorインストール → トラ技第3章参照

雑誌やブログの場合、各種ツールのインストール手順に多くの紙面が割かれます。本稿も同様でした。しかし、最新IDE:PSoC Creator 4.2インストール手順は、トラ技2019年5月号第3章P129~P142に詳しく記載済みです。

本ブログは、トラ技付録基板も活用予定なので、本稿読者は既にこのトラ技をご購入頂いている前提で、PSoC Creatorインストールや基本的な使い方は、トラ技を参照頂いて省略します(すいません😔)。

関連投稿:GWお勧め本:トラ技5月号PSoC 4100S基板付きで販売中

CapSenseコンポーネントのTopDesign.cysch配置

PSoC Creatorインストール後のPSoC MCU開発手順は、本ブログ記載PSoC Creator 3.3の時と同じです。

つまり、TopDesign.cysch:トップデサイン・スケマティックと呼ぶ回路図へ、PSoC 4000S/4100Sコンポーネントカタログからプロジェクトで使うCapSenseコンポーネントをクリック&ドロップで配置 → そのCapSenseコンポーネントのプロパティを設定しビルド → ビルドで生成された各APIをmain.cで利用 → ソフトウェア完成、という流れです。

図1 CapSenseとEZ-I2Cの2コンポーネントを配置した部分がTopDesign.cyschに相当します。本稿では、CapSenseコンポーネントのプロパティ設定を解説します。そして、次回後半が、ビルド後のAPIを使ったCapSenseプログラミング。
EZ-I2Cコンポーネントは、その4で説明します。

CapSenseコンポーネントのプロパティ設定

PSoC CreatorのTopDesign.cyschへCapSenseコンポーネントを配置し、右クリックしたのが図2です。

Open Datasheet…クリックで、最初に示した参照情報のPSoC 4 Capacitive Sensing (CapSense) コンポーネントデータシートがモニタ上に現れます。使用デバイスコンポーネントの詳細なデータシートが、クリックだけで簡単に参照できるのがPSoC Creatorの特徴です。

図2 Capsenseコンポーネントの配置とデータシート取得
図2 CapsenseコンポーネントのTopDesign.cysch配置とデータシート取得

CapSenseコンポーネントの詳細なプロパティ設定も、このデータシートに記載されています。ゆえに、このデータシートを参照してください…と書くと、これで本稿が終わりますので、少し解説を加えます。

図2のConfigure…をクリックします。コンポーネントのプロパティ設定は、どのコンポーネントでも全てConfigure…で現れるダイアログで設定します。

以下、本開発で用いる評価ボード、CY8CKIT-145-40XX PSoC 4000S CapSense Prototyping Kitを使って設定例を示します(図3)。
上側がCapSenseコンポーネント配置直後のプロパティ設定前、下側がプロパティ設定後です。基本動作に必要なコンポーネントプロパティ設定は、Basicタブのみで十分です。

図3 CapSenceコンポーネントのプロパティ設定
図3 CapSenceコンポーネントのプロパティ設定

配置直後の+アイコンクリックで、タッチUIに使うパッド形状:ButtonやLinear Slider選択 → Sensing mode:CSXやCSD選択という流れです。白抜きセル欄は選択肢あり、グレーセル欄は選択肢なし(変更不可)を示します。

CSXは相互容量式(Mutual-capacitance)のタッチ検出方法、CSDは自己容量式(Self-capacitance)のタッチ検出方法のことです。デフォルトはCSD(Self-cap)です。スライド・バー(SLD)は、自己容量式のみサポートですのでCSD、ボタン(BTN0/1/2)は、CSDかCSXの選択が可能で、評価ボードは相互容量式ですのでCSX(Mutual-cap)です(自己容量式、相互容量式は、その2投稿参照)。

CapSenseコンポーネントのプロパティ設定は以上です。繰り返しますが、基本動作はBasicタブの設定だけで十分です。

Advanceやその他のタブで更に詳細なCapSenseコンポーネントプロパティが設定できます。が、これらの設定は、データシートを参照してください。また、これら設定に、その4で説明するEZ-I2Cが役立ちます。

CapSenseコンポーネント使用GPIOピン設定

CapSenseコンポーネントが使うGPIOピン設定は、Workspace ExplorerのPinsクリックで別表示されるピンエディタ画面で行います。

CapSenseコンポーネントのGPIOピン設定
CapSenseコンポーネントのGPIOピン設定。TopDesign.cyschとは別画面で行うことに注意。

CapSenseコンポーネントのBTN0_Rx0使用ピンを、GPIOのP1[4]に設定する時が上図です。同様に、全てのCapSenseコンポーネントの使用GPIOピンを設定します。緑色□マーカーは、GPIO設定に問題が無いことを示しています。黄色が注意、赤色や灰色は設定NGです。

CapSenseの使い方(その3前半:CapSenseのPSoC Creator設定方法)まとめ

PSoC 4100S/4000S内蔵第4世代CapSenseコンポーネントのPSoC Creator設定方法を示しました。

  1. コンポーネントカタログからCapSenseを選び、TopDesign.cyschへ配置。
  2. 配置後、CapSenseコンポーネントのデータシートを参照し、CapSenseプロパティ設定。基本動作は、Basicタブ設定のみで十分。
  3. CapSenseコンポーネントが使用するGPIOピンの設定は、ピンエディタ画面で行う。

補足:PSoC Creator、コンポーネント、デバイスの関係

PSoC Creatorは、デバイス選択 → コンポーネントカタログから使用コンポーネントをTopDesign.cysch回路図へ配置 → コンポーネントプロパティ設定 → コンポーネント使用GPIOピン設定、という手順でソフトウェア設計を進めます。

それゆえ最初のデバイス選択を誤ると、コンポーネントリソース不足や、使用できるGPIOピンが無いなどの問題が発生します。PSoC Creatorは、この問題回避のため、設計途中であっても使用デバイスの変更が容易です(Project>Device Selection…で表示されるデバイスリストから代替デバイスを選ぶ)。これは、他社IDEに無いCypress PSoC Creatorの特徴です。

デバイスは、色々なコンポーネントを組合せた入れ物にしか過ぎず、コンポーネントこそがPSoCプログラミングの要です。コンポーネントが使う物理的GPIOピン割付を、論理的なTopDesign.cyschとは別画面のピンエディタで行うのもこのためです。

つまり、コンポーネントのプロパティ設定やコンポーネントAPIを使ったプログラミングは、デバイスが変わっても多くの場合そのまま引継げるのです。コンポーネントプログラミングが開発経験として蓄積できます。

PSoC Creatorとコンポーネント、デバイスの関係を示す図
PSoC Creatorとコンポーネント、デバイスの関係を示す図(出典:PSoC Creatorインストール時の図より)

但し、数多いデバイスリストから、最新の第4世代CapSenseコンポーネントを持つデバイスを再選択するのは、結構大変です(新旧コンポーネント混在や、CapSenseのように後方互換が無い例があるため。第4世代CapSense後方互換性は、その1参照)。

2019年6月現在、第4世代CapSenseコンポーネントを使用する時は、PSoC 4000S、PSoC 4100Sシリーズのデバイスから選ぶのが良いでしょう。

LibreOffice Drawの使い方とテンプレート

LibreOfficeが無償提供するのは前回の文書作成ツールWriter(≒Microsoft Office Word)だけではありません。スクリーンショットから解るようにCalc(≒Excel)、Impress(≒PowerPoint)、Draw(≒Visio)、Base(≒Access)、Mathの6種類のOffice互換ツールを無償で提供中です。

LibreOfficeの無償6種ツール
LibreOfficeの無償6種ツール。Writerは前稿参照、今回はDraw。

今回は、図形描画やDTP(Desktop publishing)向きLibreOffice Drawの使い方とDrawテンプレートを開発しました。

最後に2回に渡ってWriterとDrawを使ったLibreOfficeの対Office評価結果、感想を示します。

LibreOffice DrawとMicrosoft Office Visio

LibreOffice Drawは、Microsoft Office Visio相当のツールです。Visioはユーザがあまり多くないと思いますので簡単に説明します。プレゼン資料作成ツールPowerPointの作図機能をより強化し、DTPやCADにも使えるレベルの図形描画ツールがVisioです。

元々Visioは、他社開発ソフトをMicrosoftが買収し、Officeに加えた経緯があるので、UIや使い方がプロパー(純正)製品のWord/Excel/PowerPointとは少し異なります。また、有償配布されるOfficeパッケージに含まれることも少なく、単体では数万円もするためユーザが少ないのですが、私の使用頻度はWordに次ぐツールです。

つまり、Visioは気に入っているツールです。理由は、高度な描画機能とテキスト配置自由度の高さです。アイデアをまとめる時には、PowerPointよりも簡単・自由で役立つので、価格を無視できればお勧めです。

このVisio相当のLibreOffice Drawは、その名(Draw)の通り図形描画に特化したツールでUIや使い方もVisioに近いものです。VisioでできることはDrawでもできるハズです。

LibreOffice Drawスクリーンショット(出典:libreoffice.org)
LibreOffice Drawスクリーンショット(出典:libreoffice.org)

Drawのスクリーンショットが上図です。Galleryから使えそうなステンシル(基になる図)を選び、図面の任意位置に配置、テキストなども加えると簡単に説明に適した資料が出来上がります。もちろん、配置したステンシルの編集もかなり自由に行えます。

※LibreOfficeは、Mac、Windows、Linux のマルチプラットフォーム対応です。 さらにUSBメモリで使えるPotable版や、AndroidとiOSにはビューアが用意されています。

LibreOffice Draw既定のフォント設定

Writerと同様、LibreOffice Drawも日本語と英語混在の図形描画になるので、既定のフォント設定を初めに行います。

Drawの既定フォントは、全てスタイルで設定します。 表示(V)>スタイル(E)またはF11で使用中のスタイルを表示します。”すべてのスタイル”の数が、文書作成ツールのWriterと比べ少ないことが解ります。図形描画がメインなので、これは当然です。

LibreOffice Draw既定のフォント設定
LibreOffice Draw既定のフォント設定。すべてのスタイル数がWriterに比べ少ない。

親となるスタイルは、⊞Filled、⊞Outlined、⊞標準の3種類です。この⊞標準の子スタイルとして、図面に使うタイトルやテキストのスタイルがあります。そこで、⊞標準スタイル上で右クリックし編集(B)を選びクリックします。

標準スタイルの編集ダイアログが現れますので、フォントタブを選び、西洋諸言語用フォント、アジア諸言語用フォントともにお好きなフォント(例:メイリオ)、スタイル、サイズを設定してください。

標準スタイルの設定
標準スタイルの設定。西洋アジア諸言語ともに同じフォント、スタイル、サイズを使うことがポイント。

この標準スタイルの設定が、タイトルやテキストに継承、波及するのはWriterと同じです(スタイルや継承の詳細は前稿参照)。

図形描画ツールDrawでは、この設定を⊞Filledや⊞Outlinedにも適用しておけば十分です。なぜなら、タイトルやテキストを実際に図面へ記載した時に、その文字サイズやボールド、イタリックなどの修飾を説明する図形に合わせて決める方が実用的だからです。従って、必要最低限のフォント設定で十分です。

マスターと標準

LibreOffice Draw独特の表示に、マスターと標準(←スタイルのことではないので注意!)があります。

マスターとは、全ての図面の背景のことです。例えば、会社ロゴや日付フィールドなどを記載します。一方、標準とは、マスター背景の上の透明図面のことです。つまり、マスター背景と透明図面は、レイヤ構造になっています。

通常は、この標準上で図形やタイトル、テキストを記載し、マスターは変更できない構成になっています。この編集対象を切替えるのが、表示(V)>標準(N)とマスター(M)です。

LibreOfice Drawのマスターと標準
LibreOfice Drawの表示(V)。標準(N)かマスター(M)を選ぶ。

標準図面上に書かれた内容は、もちろん重要ですが、全図面のフォーマットとも言える背景もまた重要です。

本稿で無償配布するDrawテンプレートのマスターは、シンプルな枠組み、図面説明、タイトル、改定、ページ、会社名欄のみを追加しています。必要に応じてご自由に変更してください。

LibreOffice Drawテンプレート作成

標準図面上に何も記載していない図面で、ODF図形描画テンプレート(拡張子.otg)として名前を付けて保存すれば、これが作成したDrawテンプレートになります。本稿では、横A3サイズのDrawテンプレートを開発しました。

紹介したDrawテンプレートは、コチラからダウンロードができます(サポートなしです、念のため)。ご自由にご活用ください。

※ダウンロード時エラーメッセージが表示されることがあります(前稿Writerのダウンロードも同様で原因不明)。ダウンロードはできますので、エラーメッセージは無視してください。

LibreOffice感想:Microsoft Office代替ソフトウェアとして十分使える!

2回に渡りLibreOffice WriterとDrawの使い方、通常の仕事利用でも十分と思う文書作成Writerテンプレート、描画作成Drawテンプレートを示しました。
※最新版Writer機能をフル活用した公式英文ガイドは、コチラからダウンロードできます。フル活用するとこのような綺麗で読みやすい文書作成が可能です。

LibreOfficeは、無償オープンソースソフトウェアです。現在使用中のMicrosoft Office 2010延長サポートが2020年10月13日に終了するので、代替としてOffice互換性もあるLibreOfficeの魅力をまとめます。

長年使い慣れたMicrosoft Officeと比較するとUIのチョットした違いなどはやむを得ないと思います。しかし、これは慣れの問題でもあります。

何より無償でもWord/Excel/PowerPoint互換ツールのみならず、Visio相当のDrawやAccess相当のBaseもあるのは特筆すべきです。OfficeパッケージでこれらVisio/Accessを揃えると、Office Professional Pulsパッケージ以上の購入が必要だったと記憶しています。1ライセンス当たり10万円以上の初期投資が必要です。

既にMicrosoft Officeの各ツールは、機能的には過飽和状態だと思います。これが私がOffice 2010からOffice 2013/2016/365へ更新しなかった理由です。また日本独自のOfficeライセンスもマイナス要因です。

※家庭向けOffice 365は、今年の10月2日から無制限インストール、同時5サインイン可能へ変更になります。但し、Visio Pro for Office 365の対応は不明です。

最新版LibreOfficeの基本機能は、本稿で示した通常の仕事で使う範囲内では、文書作成、描画作成にMicrosoft Office 2010代替ソフトウェアとして、十分に間に合い使えるというのが私の感想です。皆さんもお試しになってはいかがでしょう。

LibreOffice Writerの使い方とテンプレート

今回はMCUの話題から離れ、LibreOffice Writerの文書テンプレート無償配布の話をします。

202010月でサポートが終了するMicrosoft Office 2010の代替として、無償LibreOfficeを評価中であることはMCU開発環境トラブル顛末記に示しました。最新版LibreOffice 6.1がリリースされ、益々使いやすく、また既存OfficeユーザでもUIに違和感が少なくなりました。

このLibreOffice Writerの簡単な使い方と、文書作成に必要十分なテンプレートを作成しました。

LibreOfficeセキュリティ対策

LibreOfficeの脆弱性情報があります。以下の設定をしておけば防止できます。

LibreOfficeセキュリティ対策
ツール(T)>オプション(O)>セキュリティで信頼された場所ではないドキュメントからのリンクをブロックにチェックを入れる

既定のフォント設定

WriterWordなどの日本語文書作成ツールで面倒なのが、日本語と英語混在文書でどのフォントを使うかです。日英別々の設定がツール上は可能ですが、文字サイズ差異、等幅、豆腐問題が発生します。好みの問題を別にすれば、1フォントで全言語に使えると便利です。

豆腐問題:本来フォントが表示されるべき部分に□□□(←これを豆腐と言う)などの”空白の四角”が表示されること。

私は、Windows 7Word時代からメイリオを日英言語に使っています。日本語フォントを使っても英語スペルチェックは問題なく行われます。Writer既定フォントの設定は、ツール(T)>オプション(O)LibreOffice Writerを選択し、お好みのフォント(例:メイリオ)を選びサイズも日本語(アジア諸言語)と同じにしておきます。

LibreOffice Writer既定のフォント設定
西欧、アジア諸言語ともに同じフォントとサイズを設定

西欧とアジア諸言語に同じフォントとサイズを設定することがポイントです。これでLibreOffice Writerを使って日英混在の文章が違和感なく作成できます。

Writer文書作成手順とスタイル編集

一般的に第三者に見せる報告書や説明文の作成時は、文章作成→体裁追加という順番で文書を作ります。ここでは、文章は既に出来ているとして話を進めます。

※便宜上、シンプルテキスト=文章、文章の体裁を整えた第三者に見せるドキュメント=文書と呼びます。

文章ができた次の段階が体裁追加です。限られた時間で読者に効果的に内容を伝えるには、この体裁は重要です。タイトル、見出し(大中小)、ヘッダーやフッターなどがこの体裁です。

Writerは、体裁のことをスタイルと呼び、表示(V)>スタイル(J)またはF11で設定済みのスタイルを表示します。既に色々なスタイルが設定されており、文章にこれらスタイルを適用することで見栄えのする報告書などの文書が出来上がります。

階層のスタイル表示
階層のスタイル表示

スタイルの表示に階層を選ぶと、標準スタイルを左端先頭にして、⊞フッターや⊞ヘッダーなどが現れます。これは、標準スタイルを基(親)に、各(子)スタイルが継承されることを示しています。つまり、親の標準スタイルを変えると、その変更が、子のスタイルに継承、波及するのです。そこで、最初に標準スタイルを編集します。

標準スタイル上で右クリックし編集(B)を選びます。特に変更が無ければ、そのままキャンセルします。

⊞本文のスタイルを編集する時も、同様に⊞本文上で右クリックし編集(B)を選ぶと下図になります。

本文スタイルのインデントと間隔の編集
本文スタイルのインデントと間隔の編集。間隔を段落上部下部を広くし視覚的に塊化する

管理タブで継承元、つまり親が標準スタイルになっていることが解ります。インデントと間隔タブを選択し、間隔を段落上部下部ともに0.30cmに増やします。これは、改行した文書を一塊として視覚的に分離して表示するためです。塊になっていれば、長い文章でも見やすく、読みやすくなります。

なお、子スタイルを変更しても親スタイルはそのままです。継承関係がある親スタイルの変更は影響大です。

同様にフッター、ヘッダー、タイトル、見出し(大:見出し1、中:見出し2、小:見出し3)にスタイル編集を加えました。これら編集を加えたスタイルを文章に適用するのみでも報告書や説明文には十分です。

Writerテンプレート作成

文章に各種スタイルを適用して体裁に問題が無ければ、その適用スタイルをテンプレート化します。

体裁が整ったWriter文書は、ODF文書ドキュメント(拡張子.odt)として名前を付けて保存(Ctrl+Shift+S)します。その後、全文章を削除し、今度は、ODF文書ドキュメントテンプレート(拡張子.ott)として名前を付けて保存すれば、これが作成したWriterテンプレートになります。

LibreOffice Writer文書テンプレートの保存方法
LibreOffice Writer文書テンプレートの保存方法。Microsoft Word互換性を実現する様々な保存方法があるのも解る。

この文章なしでスタイルのみに変更を加えたものがWriterテンプレートです。

このテンプレートを使う時は、作成したテンプレートを開き→文章作成→文章にスタイル適用、その後、ODF文書ドキュメントとして保存すれば、見栄え良い文書が簡単に完成します。

開発したWriterテンプレートは、コチラからダウンロードができます(サポートなしです、念のため)。ご自由にご活用ください。※ダウンロード時エラーメッセージが表示されることがあります。ダウンロードはできますので、エラーメッセージは無視してください。

Writerテンプレートは、本稿で開発したもの以外にも多数初めから備わっています。ファイル(F)>新規作成(N)>テンプレート(C)で履歴書などが、またオンライン上のテンプレートなども参照できます。

テンプレートの役目

このように、Writerテンプレートを使うと「文章の作成」と「体裁追加」を分断し流れ作業化できるので、各段階の作業に集中し、より良い文書が作れます。

自動車の製造と同じく流れ作業は、効率的な生産に向いています。全作業を1人で行う場合でも、集中する作業範囲を狭くできるのでミスが減ります。これは、Writerテンプレートに限らず、マイコンテンプレートでも同じです。

これがテンプレートの役目です。ソフトウェア開発でコーディングとデバッグを別々に行うのと似ています。

弊社マイコンテンプレートは、複数のサンプルソフトを組合せた開発ができます。個々のサンプルソフトをテンプレートへ組込む時に、サンプル利用だけでなく、テンプレートに組込むという観点からもサンプルソフトを見ることになるので、サンプル応用や変更へも広く対応できるようになります。

Writerの標準スタイルに相当するのが、マイコンテンプレート本体です。テンプレート本体は、とてもシンプルな作りで変更や修正も容易です。マイコンテンプレートは、汎用マイコン毎に5種類あり、詳細はコチラです。各1000円の有償ですがご活用ください。

MCUから離れると出だしで書きましたが、結局MCUテンプレートに結び付けてしまい申し訳ありません。

気を取り直して……、次回は、LibreOfficeの描画作成ツールDrawの使い方とそのテンプレートを示す予定です。