はじめに
KUTアドベントカレンダー7日目担当のringoです。
普段は音ゲーしてるかFPGA触ってます。最近はTensorFlowが熱い!
今回は夏休みに製作したことりちゃん基板とPSoCのCapSense(静電容量センサー)の紹介をしたいと思います。
今回は画像の編集→KiCadに取り込み→感光で基板作製→PSoCで動かす
といった手順で実装しました。
PSoCのCapSenseについて
- CY8CKIT-042 PSoC® 4 Pioneer Kit
今回はPSoC4のPioneerKitを使って作製した痛CapSense基板を動かします。
なぜPSoCかというと自分がよく使っているからというのもあるけど、CapSenseのモジュールが用意されていて使いやすいからが一番の理由だと思います。
PSoCのCapSenseはiPodのクルクルホイールにも採用されています。
今回はスライダーですが指の静電容量に反応させるという点では同じ仕組みです。
ここらへのことはCypressのデザインガイドに詳しく乗ってるので興味のある方は読んでみてください。
画像の準備
まず素材となる画像を適当な画像編集ソフトで2値化します。
ここにスライダーを書き込んで画像データして保存
今回はGIMPで編集しました。腕の部分が切れているのは配線を出すためですが、両面基板にしてビアを作るほうがきれいに見えると思います。
KiCadに取り込む
KiCadには標準でビットマップからコンポーネントへの変換機能が搭載されているので今回はこれを使います。サイズの決定が面倒だった記憶があるけど、そこは生成されたフットプリントとにらめっこしながら設定した気がする。
フットプリントが生成されたら適当なライブラリのディレクトリに追加して、プリント基板エディタを開いてフットプリントの追加から追加します。
こんな感じで配線を伸ばしてピンに接続すればパターンは完成!
感光してエッチングしたものがこれ
思ったよりきれいにエッチングできたのでよかった
少しショートしてしまったのでパターンをカットしている
PSoCで動かす
Slider Designのサンプルを参考にプロジェクトを作ります。
CapSenseのモジュールの設定を開くとスライダーの他にもボタンやタッチパッドも使えますが今回はスライダーを使います。
モジュールを追加したらピン配置を決めてプログラムへ。
プログラムと言っても実質20~30行ぐらいで使い方は
CapSense_CSD_Start();
CapSense_CSD_InitializeAllBaselines();
でモジュールを初期化して
CapSense_CSD_ScanEnabledWidgets();
while(CapSense_CSD_IsBusy() != 0);
Pos = CapSense_CSD_GetCentroidPos(CapSense_CSD_LINEARSLIDER0__LS);
で値を取得しています。
完成!
スライダーの値をUARTでPCの画面上に表示するプログラムを作製しました。よく見るとボード上のフルカラーLEDの色も変わっているのがわかります。動いてるところ、マイコンはPSoC4のボードを使ってます#南ことり生誕祭 pic.twitter.com/eHGfbGoeRf
— ringo+1/2 (@Malus_Mill_ ) 2016年9月13日
まとめ
- PSoCはいいゾ~
- ことりちゃんかわいい
今回はCapSense基板の自作とPSoCでの実装について書きました。
元ネタははやしよのすけさんにC90でお会いして製作意欲を刺激されたからというのと、自分の好きなキャラで何か作りたかったってところが始まりだったので、今回アドベントカレンダーでかけて良かったです。
次はTensorFlowで書けたらいいな~と思う