Sim's blog

電子工作はじめてみました

はじめてのGainerプログラミング

2008-05-27 02:17:14 | PSoC
工学社から「はじめてのGainerプログラミング」という本が出ていました(Amazon)。Gainer関連は2冊目ということになるのでしょうか。
工学社というとI/Oというイメージしかなかったのですが、電子工作の本も出していたんですね。PIC本もあるみたいです。
MaximaとかOctaveの本なんかもあります。どちらもInterface付録冊子で紹介されていたフリーソフトです。

5/27 追記 著者の方のページ「Gainerメモ
メカロボショップさんの記事「Gainer秋葉原で販売開始」、5500円だそうです。


PSoCマイコン・トレーニング・キット

2008-03-01 02:02:29 | PSoC
発売日だったので買ってきました(CQ出版のページ)。
地元の川崎駅近辺だと、DICEにあるあおい書店は置いてありませんでした。OIOIの三省堂は書店そのものがなくなっています。BEの有隣堂で見つけました。有隣堂は奥の角がCQ出版コーナーになっています。見本が一つと1冊だけ置いてあったので速攻でゲットしました。

表紙はこんな感じ。

ビニールのしっかりした箱です。

中身はこんな感じ

Cコンパイラのライセンスの紙もはいっています。

各モジュールの解説とかは本に、ブレッドボードを使った実験はCD-ROMに格納されています。サンプルを動かすための標準回路図がはいっていて、ほとんどがその回路で試せます。もちろんプロジェクトもはいっています。

Cコンパイラのライセンスは申し込みに期限があるみたいなのでさっそく申し込みました。

サーミスタ以外の部品は持っているので、封は切らないんじゃないかと思います。

「PSoCマイコン・トレーニング・キット」

2008-02-02 21:07:22 | PSoC
CQ出版に案内が出ていました(ここ)。

表紙の写真をクリックすると拡大します。
PSoCプログラマとCコンパイラのライセンスがついてくるようです。
この本があれば一通りの開発ができるようになりますね。

予定が2/29。価格が11550円です。Cコンパイラとプログラマの値段と考えると安いです。

PSoCチップを使ってみる

2007-12-20 02:06:26 | PSoC
秋月では3種類のDIP型PSoCを販売しています。CY8C26443-24PI、CY8C27443-24PXI、CY8C29466-24PXIです。(もう一種類、29666-24LFXIというフラットパッケージのものも売っています)

よく分かっていなかったので、とりあえず1種類づつ3個買ってみました。
まず26443はPSoC Expressでは使えないようでした。古いチップなので新しいアプリケーションには使わないようにということみたいです。

ブレッドボードでテスト回路を作ってみました。周辺回路はLEDだけです。

回路図です。


PSoCを動かすには電源とGNDだけでいいみたいです。クロックとかはチップ内部で作ってくれるみたいです。

プログラム用には3本線をつなぎます。プログラムはI2Cで行います。SCLK(13pin)とSDATA(15pin)の2線です。その他にXRES(19pin)というリセット信号を使うようです。

プログラマとしてPSoC Mini Programmerを使ってみました。これは去年のCypressのセミナーでもらったものです。PSoC Mini ProgrammerはVcc、GND、SCLK、SDATA、XRESの5線でPSoCと接続します。27443、29466のどちらでも問題なくプログラムできました。Mini Programmer自体はPastelMagicさんで2500円で売っています。

動作することが確認できたので、今度はFirstTouch Kitのプログラマーをつないでみました。


とりあえずFTKプログラマのpinのうち5本をつないでみました。
1 Vcc
3 GND
5 XRES
7 SCLK
9 SDATA

27443はプログラムできましたが、29466はうまくいきませんでした。
デバイスが認識できないみたいな感じのエラーが出ていました。通信そのものはできているっぽかったです。もしかしてファーム?4pinのDETECTや11pinのTYPEというのが気になりますが、よく分かりません。

Mini ProgrammerとFTKプログラマの違いはデバイスに供給する電源をオフにできるかどうかです。FTKの方は電源を供給しっぱなしです。このあたりが何か関係しているのかもしれません。

型番からすると新しいっぽい方が書けないというのは、何か変な気もします。

PSoC FirstTouch KitでLEDほわーん

2007-12-19 01:25:53 | PSoC
PSoC FirstTouch KitでLEDチカチカの続きです。

2つのことをやってみます。まずはタイマーを使ったLEDチカチカ、次にプログラムを改造してLEDほわーんです。
どちらもPSoC Expressを使って0行プログラミングにします。前回と違うのはTransfer functionを使っていることです。
1.プロジェクトの作成、3.コンパイル、4.PSoCマイコンに書き込みは前回と同様です。2.のプログラムの組み立てだけ書きます。


2. プログラムの組み立て (LEDチカチカ別バージョン)

一つ目の部品はInputsタブ→CY3270 PSoC FirstTouch Kitにある「Interval Generator」です。

Nameをtimerにして、IntervalModeをTOGGLEに変更してOKを押します。
TOGGLEはIntervalTimeで指定したミリ秒毎にtimerという変数が1→0→1→と変化することを意味します。時間はIntervalTimeで変更します。デフォルトは100ミリ秒です。今回はtimerが1の間LEDが点灯して0の間消灯するというプログラムにします。

※Nameに入力した名前が変数名になります。その部品の状態を表します。

二つ目の部品はOutputsタブ→CY3270 PSoC FirstTouch Kitにある「LED - On/Off/Blink」です。

NameをLEDに変更してOKを押します。

この段階でtimerとLEDの2つの部品が配置されています。


このままだと、部品があるだけなので関連づけてやります。
LEDのアイコンを右クリックしてメニューを出して、一番上のTransfer functionを選びます。

左側に選べる3種類のTransfer functionの種類が載っています。今回は一番下のTable Lookupを選んでOKを押します。
他の2つは、少しは式を入力しないといけないので、0行プログラミングにするにはTable Lookup以外の選択肢はありません。
Table Lookupは表引きということでずか、入力がある状態のときに出力をどの状態にするか表を作ります。

上でOKを押すと入力を聞いてきます。

timerを選んでNEXTを押します。

表の作成画面になります。

左側が入力のtimerの取り得る2つの状態Not_TriggeredとTriggerdを示しています。右側がLEDの取り得る3つの状態OFF、ON、BLINKINGを示しています。
timerの取り得る状態を右側の表に埋めることで表を完成させます。
具体的にはドラッグ&ドロップで入力の状態を配置します。

完成した表です。

表はtimerが1のときはLEDがON(1)になってtimerが0のときはLEDがOFF(0)になることを示しています。
OKを押せばTransfer functionの完成です。

timerとLEDが関連づいているので、間に線が引かれています。

基本的に出力側で、どの入力を使うかを選ぶというやり方みたいです。

あとはコンパイルしてPSoCに書き込めばLEDチカチカ別バージョンの完成です。
コンパイルのときの配置配線では、LEDを、青LEDの14pin、赤の10pin、緑の15pinのどれかにします。


次にLEDほわーんを作ってみます。

とりあえず、Designタブを選ぶことでプログラム組み立てタブにもどれます。

今度は「LED - On/Off/Blink」のかわりに「With Decay ON&OFF」という別のLEDを使います。場所はOutputsタブのDisplay→LED→Single Color→With Decay ON&OFFです。

名前をLED2にしてOKを押します。
このLEDはぼわーっと明るく(暗く)なる機能をもったLEDです。明るく(暗く)なるまでの時間を設定できます。デフォルトは1000ミリ秒です。

LED2のTransfer functionです。

LED2が取る2つの状態は、GROW_ONがぼわーっと明るくなり、DECAY_OFFが同じく暗くなります。今回はtimerが0のときに明るく(GROW_ON)、1のときに暗く(DECAY_OFF)なるように指定しています。

最後にtimer時間の変更といらなくなったLEDの削除を行います。

timerのアイコンをクリックすると右上にプロパティが出るのでIntervalTimeを1000に変更します。これは明るく(暗く)なるまでの時間が1000ミリ秒だからです。

次にLEDアイコンをクリックしてDELキーを押すか、右クリックメニューからDeleteを選ぶことでLEDを削除します。
コンパイルしてPSoCに書き込むことで完成です。LEDが点滅するかわりに、ぼわーっと点いたり消えたりします。

このように、Cypressがあらかじめ用意している部品については簡単にプログラムが作れます。ないものはどうすればいいのかは、よく分かっていません。もしかするとPSoC DesignerとCコンパイラを使って作るのかもしれません。それとも専用のツールがあるのかもしれません。

あらかじめ用意されている部品には色々なものがあります。加速度センサーを読んでI2Cで通信したりとかは、PSoC Expressで出来てしまうみたいです。少なくともPSoC FirstTouch Kitについている、静電容量センサー(CapSenseスライダーと接近センサー)、光センサー、温度センサー、ブザー、三色LEDはPSoC Expressだけで遊べます。

PSoC FirstTouch KitでLEDチカチカ

2007-12-17 22:57:55 | PSoC
マイコンの基本ということで、PSoC FirstTouch KitでLEDチカチカを作ってみます。せっかくなのでPSoC Expressを使って0行プログラミングをしてみます。

PSoC Expressを使ったプログラミングの手順はおおまかに以下の4ステップです。

1. プロジェクトの作成
2. プログラムの組み立て
3. コンパイル (チップの選択とピン配置あり)
4. PSoCマイコンへの書き込み

普通の開発ツールと違うのは、3.でコンパイルするときにチップの選択とピン配置を行うことです。2.のプログラムの組み立てはチップに依存しない形でやるので、後でチップを選択します。その際、入力や出力をどのピンに配置するかを決めてやります。チップ選択やピン配置はプロジェクトに覚えているので、最初に一回やってやれば、その後変更がなければ二回目以降は何もする必要はありません。(とは言いつつプロジェクトを作る度にやらないといけないのは少し面倒です)

それでは、上の手順に従ってLEDチカチカを作ってみます。

1. プロジェクトの作成

PSoC Expressを起動した直後の画面です


FileメニューからNew Projectを選んでやると次のダイアログが出ます


上のエディットボックスにプロジェクト名を入力してOKボタンを押せばプロジェクト作成は完了です。プロジェクト名はflashled1にしました
プロジェクトを作るフォルダーを変えたいときはBrowseボタンを押します。

2. プログラムの組み立て

PSoC ExpressのプログラミングはGUIで部品を並べて、部品のプロパティを設定することで行います。今回はLEDしか使いません。

プロジェクト作成後の画面です。中央のペインには何もないのでプログラムはない状態です。


左側の部品一覧(Output Devices)で、CY3270 PSoC FirstTouch Kitのツリーを開いて、LED - On/Off/Blinkをダブルクリックします。もしくは右クリックメニューからAdd to Designを選びます。もしくは中央のペインにドラッグ&ドロップします。

するとプロパティの設定画面が出ます。ここで設定しなくても後で設定できますが、とりあえず設定します。


設定箇所は2箇所です。この部品の名前(Name)と初期状態(Initial Value)です。初期値はデフォルトでOFFになっていますが、OFF, ON, BLINKの3種類をメニューで選べます。OFFのところをクリックするとメニューが出ます。今回はLEDチカチカなのでBLINK(点滅)を選びます。

書き換えた様子です。


Blink Rateのところで点滅する周波数を選べます。デフォルトのままだと1Hzです。Current ModeではLEDの接続形態としてSourcing(LEDは電流制限抵抗を介してGNDに接続)、もしくはSinking(LEDは電流制限抵抗を介してVccに接続)の2種類を選択できます。PSoC FirstTouch KitのLEDはSourcingなので、そのままにしておきます。

OKを押せば部品配置完了です。

中央のペインにLEDという部品があるのが分かります。
(部品を選択すると右上にプロパティが表示されるので、ここでプロパティを変更できます。また、右下には部品のデータシートが表示されます)


今回は以上でプログラミング完了です。

ちなみに部品はドラッグ&ドロップして好きな配置にできます。中央のペインはctrl + クリックで拡大、shift + ctrl + クリックで縮小もできます。スクロールは alt + クリックです。

3. コンパイル

BuildメニューからGenerate/Buildを選んでやればコンパイルが始まります(F6でもいいです)

最初に出てくるのはチップの選択画面です。


デフォルトでは一番上にあるチップが選択されています。
PSoC FirstTouch Kitに載っているチップの型番はCY8C21434です。
ちょっと分かりづらいのですが、CY8C21030のツリーを開くとCY8C21434がいるので選択します。

CY8C21434を選択した画面です


Nextボタンを押すとピン配置のダイアログに変わります。


デフォルトでは勝手に配置されています。
PSoC FirstTouch Kitでは、青LEDが14pin、赤が10pin、緑が15pinに接続されています。
LEDが13pinになっているので、14pinにつなぎ直します。
つなぎ直しの方法は13pinのところの青い四角をドラッグして、14pinの四角にドラッグします(マウスボタンを離す)。
ドラッグした段階でピン配置できないところ(GND等)は白い四角に、ピン配置できるところは水色の四角になります。
ピン配置されていない状態に戻すにはドラッグしてから何もないところにドラッグします。

14pinにLEDをつないだ画面です


Nextを押してしばらく待つとコンパイル終了です。
flashled1.hexという実行ファイルができます。ファイル名はプロジェクト名.hexになるようです。

4. PSoCマイコンへの書き込み

いよいよ最終段階です。メニューのProgramからPSoC Programmerを選びます。


そうすると、PSoC Programmerが立ち上がってきます。


左上のPortでFirstTouchを選んでやります。他のDevice FamilyやDeviceはPSoC Expressで設定したチップが引き継がれます。hexファイルだけ入手して書き込むときとかはDevice FamilyやDeviceに適切なものを選択してやる必要があります。

下のActionとResultのペインは下から上に情報が進んでいきます。一番上が最新の情報です。慣れないと結構見づらいです。

PSoC FirstTouch Kitが正常に接続されていればSuccessful port connection for...というメッセージが出ます。出ないときは、例えば書き込み器のファームウェアが古いバージョンだったりします。その場合はPSoC Programmerの最新版をダウンロードしてインストールしなおす必要があります。ちなみにファームウェアのアップデートはPSoc ProgrammerのUtilitiesメニューのFirmware upgradeで行います。

いよいよ書き込みです。Programというボタンを押すと書き込みが開始します。


最後に(一番上に)、Programming Succeededと出れば書き込み完了です。PSoC FirstTouch Kitの場合は、即座にプログラムが開始されます。他の書き込み器の場合だとToggle Device Powerボタンを押してやらないといけないかもしれません。

まとめ

とりあえず設定するだけで、LEDチカチカはできました。

もっと高度なことをするときは、各部品のTransfer functionを決めてやる必要があります。Transfer functionは例えばボタンが押されていたらLEDが点くみたいな、部品間の依存関係を決めてやります。LEDチカチカもインターバルタイマーを使って作る方法もあります。

今回は出力デバイス(Output Devices)というカテゴリーの部品しか使いませんでしたが、他に入力デバイス(Input Devices)、変数(valuators)、インタフェース(interfaces)といったカテゴリーがあります。

GUIは目の前で実際に動かしているところを見ると分かりやすいのですが、言葉で説明しようとするとやたら面倒です。

PSoCセミナー参加報告

2007-12-11 23:17:03 | PSoC
12/10に開催されたPSoCセミナーに参加してきました。
内容はPSoCの製品説明とFTK(First Touch Kit)を使った実習でした。

実習は
(1) コンパイル済みの実行ファイルの書き込み(4種類)
- CapSenseスライダを使うとRGB3色LEDが指の動きに合わせてON/OFFする
- 温度センサー(サーミスタ)を使って温度でLEDがON/OFFする。指をあてると赤くなりました
- 光センサーでLEDをON/OFFする
- 近接センサーでLEDをON/OFFする
(2) PSoC Expressを使ったデモプログラムの改造
- ↑の近接センサーデモで距離に応じてLEDの明るさ(PWM)を変えるように改造
(3) PSoC Designerを使った簡単なプログラムの作成
- PWMでRGB3色LEDをつける
- スリープタイマーを使ってPWMデューティ比を変えながらLEDの明るさを変える

の3種類でした。かなりペースが速かったので落ちこぼれずについていくのがやっとでした。時間的には1つの実習が10分の休憩をはさんで50分でした。
ちなみに4種類のデモは実行ファイルだけでなくPSoC Express用プロジェクトもあります。

$20で、実習で使ったFTKをお持ち帰りだったので、私は予備も含めて2個買いました。国内だと4000円なので1個近くの価格で2個買った計算になります。

PSoC自体は全世界で2億個以上売れているんだそうです。iPodなんかが有名ですね。
アナログとデジタルを1chipに混載させることで製品全体での部品数を減らすことに効果があるそうです。

FTK(FirstTouch kit)です。上がPCブリッジでPSoCのライターになっています。下が拡張カードで近接センサー、ブザー、温度センサー、CapSenseスライダー、光センサー、RGB3色LEDとPSoC(CY8C21434)が載っています。

FTKのライターに対応したボードを色々企画中だそうです。またライター側もコネクターをつければ中を書き換えられるという話をしていました。元の状態に書き戻せるようにファームウェアもあるそうです。セミナー中にファームの場所を言っていたのですが、メモし忘れてしまいました。
21434以外の型番のPSoCにも書けるかどうかは調査している最中だそうです。このあたりはちゃんと分かっていませんが、正式にはミニプログラマを使うということみたいです。

聞き間違いかもしれませんが、電池動作用に昇圧回路入りのPSoCがあるようなことを言っていました。これはすごくうれしいかも。

実習でPSoCデザイナーで使えるライセンスを教えてくれました。一応、セミナー用で開発には使えないそうですが、遊ぶのに使うくらいはいいみたいです。

日本語のドキュメントも準備中とのお話でした。

とてもおもしろかったです。また機会があれば参加したいです。

会場で展示されていたデモです。

下の方の色チャートの部分に指を触れると右上のLEDの色が変わります。


2軸の加速度センサーの読み取り値をLCDにグラフとして表示しています。
PSoC Expressだと、LCDにグラフを書くのはお手の物です。
これはたぶんPSoC EVAL1というボードです。まんなかの白い所はブレッドボードになっていて好きな回路が組めます。


ジャイロセンサーです。
読み取った結果を隣に置いてあったMacintoshでグラフ表示していました。


上のグラフを表示していたMacです。


ちなみに、Macのタッチパッドの部分にもPSoCが使われています。
通常はカバーがかかっているところを今回はカバーを取り外してありました。


ラジコンカーです。右側がコントローラで左側がマイコンカーです。


写真だと分からないですが、ぐるぐる回すと上のグラフが変わるようになっていました。


これも分かりづらいですが、テンキーになっていた触るとLCDに押した数字が出て周りにあるLEDが光っていました。


これは近接センサーのデモです。CapSenseの応用ということみたいです。


+GAINER

2007-11-28 21:50:13 | PSoC
+GAINERという電子工作(?)の本を買ってきました(amazon出版社のページ)。

タイトルは英語(?)ですが、中身はれっきとした日本語です。帯にはGainerとブレッドボードではじめるフィジカルコンピューティングと書かれています。

ソフト屋さんに向けて、PCだけでなく、PCの外に色々機器をつけて制御して遊ぼうという趣旨の本です(少なくとも私にはそう思えました。)
写真や図が多く、プログラムリストが載っているあたりがソフト屋さんにも抵抗なく受け入れられそうな雰囲気の本で、なんというか回路図とか電気のような慣れない人にとって抵抗のありそうなものは、あまりありません。

基本的にPSoCマイコン(I/Oボード)とブレッドボードで色々するみたいです。GAINER(ゲイナー)自体はソフトウェアとハードウェアをmixした環境のことみたいです。

Gainerのホームページです。

ブレッドボード用の色々なボードというとwsNakさんを思い出します。

出版社は九天社という電子工作ではあまりなじみのないところです。たまたま書店の店頭で見つけました。Amazonも便利ですが、たまには書店を覗いてみないと、こういう本には出合えなかったなあと思いました。

PSoCセミナー

2007-11-26 21:46:08 | PSoC
日本サイプレスからメールがきていました。
PSoC first touchを使ったPSoCセミナーをやるそうです(アナウンス)。
前回と同じくノートPC持参で、その場で色々動かす実習がメインです。
4000円相当のPSoC first touchをおみやげにもらえるのもうれしいところです。
11/28 訂正 30%オフで買えるということみたいです。$29.95 → $20。クレジットカードのみなので、決算のときのレートで円価格が変わります。

普通のCコンパイラやアセンブラ用の統合開発環境(IDE)がPSoC Designerといって、これだけでもNECのapplilet以上の機能をもっています。使いたいデバイスを選択すると自動的にソースが生成されます。

さらに進んだのがPSoC Expressで、これはCのソースすら書く必要がありません。四角い箱を並べて線でつないで箱の設定をするだけです。LCD出力とかI2Cとかよく使いそうな周辺デバイスはほとんど用意されています。


PSoC FirstTouch

2007-09-25 20:32:26 | PSoC
PSoC FirstTouchというUSB接続の小型マイコンボードが発売されているようです(日経の記事)。静電容量式タッチ・センサや近接センサ、光センサ、温度センサなんてことが書いてあります。

eZ340やくもちゃんのライバルということになるのでしょうか。センサがあるということだとMSP430入門セミナー2007で配っていた容量センサー付eZ430の方が本当のライバルっぽいです。

パステルマジックさんは4000円ですが売り切れています。

そういえばSTR9-comStickはどうなったんでしょう。