2016年12月7日水曜日

PSoCでオペアンプとコンパレータを試す(コンパレータ―は別の記事で書くよ)

I2CやキャラクターLCDを含め、割とCPUのパワーを使う事が多かったので
今回は真反対のアナログ系について触れてみようと思う。

さて、以前の記事ではアナログをデジタルに変換をするADCのコンポーネントをつかって温度センサーの値を変換した。しかし、ADC以外にもPSoCには、アナログ回路を直接的に構成する事ができるコンポーネントがある。「高速、高分解能のADCがあればいいのでは?」っと思うかもしれない。けど、ADCへ接続する前に必要な電圧を取り出したり増幅する事が出来れば、ADCをより効果的に使う事ができる。これにはオペアンプを使ったり、コンパレータ―を使う事で取り出したり増幅することが出来る。ADCへつなぐ前の信号に、増幅や加工をすることをアナログフロントエンドとかシグナルコンディショニングと呼ぶ。
PSoC3,PSoC5LP,PSoC4に差はあるもの、オペアンプとコンパレータを内蔵している。
どのファミリーでも最大でオペアンプが4個、コンパレータ―が4個を内蔵している。
特にPSoC3とPSoC5LPにはスイッチキャパシタとオペアンプを合成したSC/CTブロックが4個ある。
これにより外部から抵抗を足すことなく特定のアナログ回路も構成することが出来る。
そのためPSoC3,PSoC5LPはPSoC4よりもアナログ系が得意と言って問題は無いだろう。
 通常のMCUばかりでオペアンプやコンパレータ―になじみが薄い人も多いので
少しオペアンプとコンパレータについて触れよう。
オペアンプとコンパレータは2つとも電圧の状態によって動いている部品になっている。
MCUではCPUがメモリー内にある数値を読みだす事で計算を出力する。
しかしオペアンプやコンパレータ―はメモリーではなく、
電圧同士の計算を行った結果を出力すると考えてもらえばいいだろう。

オペアンプは簡単に2つの機能がある。
 ①電圧を増幅する機能
 ②電圧同士を演算する機能(微積分もできたりする)

コンパレータの機能は1つ
 ①電圧同士を比較する機能

っと簡単にこんな機能がある。
オペアンプやコンパレータ―は単体ではほしい機能を得ることは中々少ない。それは入力部側(+と-の線)の関係性が出力側の結果へ反映される。そのため、抵抗やコンデンサを外付けする必要がある。オペアンプやコンパレータ―の全てを解説するのはなかなか難しいので、電子回路の本等でどういう使い方をするのかを調べて欲しい。
今回はPSoCをつかって簡単にオペアンプとコンパレータ―を使ってみようと思う。
今回はオペアンプを使って、増幅率2倍の反転増幅回路をしてみる。
反転増幅なので、オペアンプに入力した信号がプラスの電圧なら、出力は入力と比べて
マイナスの電圧が出力される。教科書でも出てくる標準的な使い方だ。
けど、PSoCが持っているオペアンプは方電源(+だけ)のため、教科書に出てくるような正負電源(プラスマイナス両方)をつかったオペアンプとは少し違う。
簡単に言うと増幅した信号が0Vより下回ると出力されない。
そのため出力電圧が0Vよりも下回る場合にはちょっとした工夫が要る。

それではやってみよう。
必要なものはPSoC5LP、もしくはPSoC3。100KΩ1個と200KΩ1個。
オシロスコープ(キットのオシロスコープでもかまわない)
今回は電源電圧を5Vで行う方が良い。

空のプロジェクトを用意したら。

アナログコンポーネントから

OpAmpとWaveDACとVDACをトップデザインへドラックアンドドロップする。



WaveDACは周波数発生器の代わりとして使って、
VDACは0Vより下に出力されてしまうのを解決させるのに使う。
トップデザインに並べるとこんな感じ。


先ずは、OpAmpのコンポーネントをダブルクリックして設定をしよう。

今回は実験なのでPowerのプルダウンメニューからHigh Powerを選択して


設定が出来たら、OKボタンをクリックして閉じよう。
その次はVDACをダブルクリックして設定をしよう。

Speedの項目にあるラジオボタンのHigh Speedに設定をして、
Valueの項目のmVの項目を668に設定をする。

出来たら、OKボタンをクリックして閉じよう。
その次はWaveDACをダブルクリックして設定する。

設定はほとんど触らないのですが
Range selectionのプルダウンメニューから
VDAC0 1.020V(Buffered)を選ぶ。


それが出来たらOKボタンをクリックして閉じる。
このままだと回路が動かないので、必要な所に結線とAnalog Pinを足して
抵抗をつなげるようにしていく。
WaveDACにはWSのピンにDigtal → LogicのLogic Lowのコンポーネントをつなげてあげて

WaveDACの先にはPort and Pins → Analog Pinのコンポーネントを追加する。

ピンやコンポーネントを反転させたいときはコンポーネントを選択した状態で、
メニューバー近くの反転ボタン(青い囲いの中)をクリックすると反転する。

繋ぎ終わるとWaveDACはこんな感じになる。

VDACはOpAmpの入力側のプラス側につなげる。

OpAmpは入力側のマイナス側にAnalog Pinをつなげる。

使うAnalog Pinは名前を変更しておいた方があとあと楽なので変えておく方が良いでしょう。
ここまで出来たら左側のツリーチェーンからPinをダブルクリックして
使うピンを設定しよう。
どこでもいいと言えばいいけれど、今回はOpAmpを使うのでプルダウンメニューから
OpAmp[*],***と表記されている物の方が内部リソースを無駄に消費しなくて済む。

例えば、オペアンプのマイナスに繋ぐピンにはOpAmp[*],vminusに設定をするような感じで設定してほしい。WaveDACの出力ピンはOpAmp[*],Voutに設定してほしい。
私はあまりギチギチにしなかったので、こんな感じにしました。

ここまで出来たら一度コンパイルしよう。
コンパイルをしている間にPSoCに抵抗を追加して反転増幅回路を構成しよう。
WaveDACとOpAmpのマイナスの間に100KΩをつないで、
OpAmpのマイナスと出力側の間に200KΩをつなぐ。
繋ぐとこんな感じ。

コンパイルが終わったら、プログラムを書いてOpAmpやDACが使えるようにしよう。
プログラムは単純。
int main(void)
{
    CyGlobalIntEnable; /* Enable global interrupts. */

    WaveDAC8_1_Start();
    Opamp_1_Start();
    VDAC8_1_Start();

  
だけ。For文の中身は空っぽでOK
それが終わったら、もう一度コンパイルをしてPSoCに書き込もう。
書き終わったら、WaveDACの出力ピンとオペアンプの出力ピンに
オシロスコープのプローブをつなげてみよう。
(1CHがWaveDAC,2CHがオペアンプの出力)

WaveDACからは0~1Vの電圧で1Khzの正弦波(sin)が出ていて
OpAmpの出力側からは0~2Vの間でWaveDACとは電圧が反転した波形が2倍で出力されていれば成功!
(/・ω・)/

反転増幅回路は「マイナス」X倍で出力される。そのためどうしても0Vより下の電圧値が出てしまう。
オペアンプのバーチャルショートを利用して0Vより下回っている部分を0Vより上にする事が出来る。

記事が長くなり過ぎたので、ここで中断するよ。
別の記事にコンパレータ―の実験を試してみるよ~。

2016年9月29日木曜日

PSoCまつり2016レポート

 
去る10月17日、日本サイプレス株式会社川崎営業所にて、
PSoCまつり2016が開催されました。
参加者数は前回よりも1.5倍ほど多い過去最大の46名となりました。
またPSoCまつりに関するtweet数は116となりました。
 

プレゼンテーションの内容
·         PSoCってなに?さん。 中村優友(@hamuhmau_Humi)
·         PSoC Analogのご紹介 energy harvesting のご紹介    滝川 剛
·         ブレッドボードで楽しむPSoC4BLE入門  有山 隆史 富士通株式会社 あしたのものづくり研究会
·         リフロ炉作ったよ      @cronos_sv
·         PSoCでちびねずみロボットを作ってみた       @poyokoma_danna
·         PSoC4でLCD表示を低消費動作させる    @yacicci
·         夢のコラボCreator IAR Embedded Workbench    古江勝利(@katsutoshifurue) 長濱みほ(@Miho_x_x_N
·         PSoC4BLEでつくる簡単無線センサーユニット   井田 健太
·         ラジコン×電子工作×PSoC     宮園 恒平

配布された資料

PSoCまつり2016のツイロガー

PSoC4の体験コーナーは、前回と同じでスイッチを押したらLEDが光るという内容でした。
普段はソフトウェアを作っている人が多かったため、新鮮に感じた人が多かったと思います。
体験コーナーの希望者は18名と多かったのですが、当日は5名の方が体験コーナーに参加しました。

今年はなんと、IARシステムズの方もプレゼンに参加されました。PSoCまつりでは個人事業主の方も多いため、お仕事のお役にも立ったかと思います。

じゃんけんコーナーではPSoC3の開発キットとPSoC4の開発キットを
ほしい人へプレゼントされました。また、スイッチサイエンス様から
EZ-BLE PRoCのボートと付箋の提供がされました。
今回は当日キャンセルが7名程出てしまいました。私も都合が合わない方向けへの案内が
出来ていなかったために起きてしまったと思われます。

 
PSoCまつりは丁寧に、また肩の力を入れなくてよいセミナーでありながら、
今年はその規模をより大きくなりました。PSoCまつりとしての大きな進歩であるように
感じます。そして、PSoCまつりは多様性を大切にしながら
互いにより良い成長につながる場であることを私は本当に誇りに思います。
その一方でPSoCまつりはプレゼンターの方々や協賛の企業様
また多くの人の協力によって開催することが出来ます。
そんな、PSoCまつりに賛同していただける方々に
深い敬意と感謝をもってPSoCまつり2016の結びにしたいと思います。


2016929日 PSoCまつり統括 中村優友

2016年4月16日土曜日

PSoCまつりのプレゼンター募集

PSoCまつりでプレゼンターになりませんか?


PSoCまつりではプレゼンターを募集しています。
PSoCまつりでのプレゼンターが不足していまして
「PSoCまつり」の開催が危うい状態となっております。

PSoCまつりとは、

「PSoCってなんだろう?」
「PSoC使ってみたいんだけどなぁ…

っと言うようなのPSoCが初めての人向けセミナーです。

通常の難しい事を説明するセミナーとは違い
「PSoCならこう言う風に出来るよ」という事を
学生、ホビースト、社会人に向けてプレゼンしていきます。

プレゼンの内容は「PSoCで」試した。作った。仕事が捗った。
PSoCでやってみた事であれば何でも構いません。
難しい事をやっていなくても大丈夫です。
レギュレーションは「丁寧に説明すること」です。
プレゼンの練習としても最適かと思われます。

プレゼンターの応募資格はありません。
気軽に にリプライ、Google+のハングアウト
Doorkeeperのお問い合わせ等に
ご連絡を頂けたらと思います。

開催の日程は、20016年の8月or9月の予定
開催場所は日本サイプレス株式会社本社
を予定しております。
最終的な日程はプレゼンター方の都合が良い日になります

何卒宜しくお願いいたします。



*いまいち連絡先が判らない場合
コメントをしていただけたらと思います。

2015年11月29日日曜日

加工と検証が出来る準備が出来た。

PSoC5LPで機能を造る事は出来ても、
外側やフレーム等の加工や回路のチェックをする機材がありませんでした。
実のところ、電子工作をする上で回路のチェックは
テスター(デジタルマルチメーター)だけでは、無理があります。
例えば、アナログ回路で作成した波形出力機はテスターで見る事が出来ません。
また、混ざった波形にどの周波数が隠れているか
正しい周波数なのかを調べるにはオシロスコープや周波数解析器が必要となります。

電子回路は作れても、外側の箱やメカニカルな機能が残ります。
外形加工は測る道具もそうですが切る道具、削る道具も多くそろえる必要があります。
また穴あけも含め電動の工具は割と大きな音が出るものが多いため
なかなか都心の真ん中では運用に問題があります。

正直なところ、私の家には外形加工と回路検証の手立てがありませんでした。
特に回路の検証は深刻で、手の届きやすい機器が易々と手に入る訳ではありません。
予算もないですしね。
アナログもしっかりやりたい私には少なくとも10Mhz対応のオシロスコープと
周波数解析、デジタルの通信をモニターするロジックアナライザーが欲しいと考えていました。
ただ、これだの機材を揃えようと思うとかなりの高額な金額になります。
外形加工も夕方や夜に出来れば良いのですが
そんな訳にも行かないので低騒音なNC加工の機器が欲しいと考えていました。
多くの時間をかけて考えた結果として、私はこれらを解決するのに2つの機器を買いました。

1つはビットスコープマイクロと言う多機能検査機器
もう1つはda Vinci Jr1.0と言う3Dプリンターです。

ビットスコープマイクロと言うのは、
2Ch20Mhzオシロスコープ、ロジックアナライザー,スペクトラムアナライザー(周波数解析)
8chスペクトラムアナライザーが1つに合わさったUSB検査機器です。
またビットスコープはraspberry Piの様なLinuxボードでも動きます。
Linuxボードを使えば作業用のパソコンとも切り離せますし
OSの割り込みによる測定ミスの可能性を減らせます。

このビットスコープは日本だとどこも取り扱いがないので今回は個人輸入をしました。
梱包ミスがあったりしてオーストラリアのお店とのやり取りが多かったですが
無事に手元に届きました。
pcDuino3nanoで動かすとこんな感じです。


da Vinci Jr 1.0は5万円以内かつスタンドアローンで出力のできる、
今のところ唯一の3Dプリンターでしょう。

 樹脂部分のヒビによって返品交換をしたりしましたが
どうにか運用出来ている感じかと思います。
3Dプリンターは削って作りこんでいく訳ではないので都心でも安心して使えます。


とは言え大きい事もあるので定位置はクローゼットとなりました。
セミクローズド制御でもないので加工精度としてはイマイチですが
時間を気にせずに運用が出来るので良しとしましょう。3mm以下の円形は苦手の様です。
実際に作ったpcDuino3nanoのケース。
売っていないのでda Vinci jr 1.0で作った。