2005/06/30 |
| |
2005/06/29 |
アナログサーボにしてみたら と、思って見てたら、ごめんなさい、サーボは壊れていませんでした。いつも幅の大きい方に振り切るんですね。 しかも安定して。再現性あり。というわけで、再びペン型オシロを引っ張りだしてきて(あまり当てにならんやつなので、 いつか、自分でロジアナ作ろうと思っているんですが)、信号をチェックしていたら、「2.7ms」のパルスが出ていました…。 すまん、ペン型オシロ、君は役に立っているぞ。 Pirkus-Rは、PWMのリミッタ−がついていて、それを超えると動作しないようになっているんですが、対してMICRO-MGはとっても素直。 なるほど。異常パルスが出た時に、Pirkus-Rでは、見た目、何も起こってないように見えたんですが、実はそういうことが起きていたわけですね。 ふむふむ。というわけで、これからは両方接続してテストすることにします。 それはそうと、なんで「2.7ms」がでてくるのかな?とコードを調べ始めると…この領域になってくると、 エミュレータじゃどうにもならないので、再現性の確認と、状態チェック。 なるほど。 while( MM.GIP.SRV[MM.GIP.bSrvIoOpeIdx].CTL.bClk >= TV.TCNTV ); 実は、こんなコードで信号オフのタイミングを待っているのですが、なんと、この処理、一周するのに4.8usもかかることがわかりました。 ということは…
幸運なことに、タイマーVには、もう1つコンスタントレジスタがついている(2つあります)。 そんなわけで、またまた一致フラグを使うことにしました。先割り込み時間も、ちょっと処理が増えたので、 10usから20usに出血大サービス(あまり増やすと、メインルーチンが動きません)して…お、いい感じですね。 というわけで、後は、ProBo信号解析処理とセンサ処理の組み込みをします。これが完了すれば… タイマVだけでサーボ制御とプロボ信号解析とセンサ平均化処理 の完成です。こっちの処理は、もともとの処理をちょっと改良するだけなので、割とすぐできそうです。 この調子なら、今週末には完成しそうです。 まずは、G-Tune2004FIIのSIPHA COREをAKI-H8/3694に換装してテストをしてみようと思っています。楽しみ〜。
| |
2005/06/26 |
大きめに震えるのは… というわけで、次のステップ(割り込み)にすればいいや〜、と思ったわけなのですが、そうすると、ケースによっては、 「オフタイミングを離す」という条件から外れることになります。どうしよう…。ならば!102.4usを1ステップとして…
という作戦で行くことにします。はっ、待てよ…。そうすると、4信号扱うということは、最大7ステップ広がることになります。 ということは、 「信号最小値の600us内に納まらない」 あらら、がっくり。…というわけで、しょうがないので3信号1組で扱うことにしました。これなら、最初の0msでスケジュール、 0.1024で最初の信号オン、0.3072msで次、0.5120msで最後、そして最初の信号オフ処理を0.6144msで開始することができるようになります。 ん?それってひょっとして…3信号用のスケジュールプログラムに変更してみました。あらら、あっという間に30usですよ。 今までの苦労って…。 そうだ、ここでこれを使うんだ! ○| ̄|_
| |
2005/06/23 |
と、きついきついとうなっていても何も面白くないので、負けじとプログラミングです。 大方いい感じ、でもちょっと問題あり。 それっぽい信号が、それっぽい間隔で出ていることを確認したら、いよいよサーボ接続。軽く一発動作! よしよし、快調快調…と思いながら、今度はゆっくり首振りするプログラムを入れてみる。 う〜ん、なんか、サーボがひっかかるような動きをするところがあります。また、時々、びくっとやや大きめに震えます。 サーボの動きが引っかかる 具体的には、もともとオーバーフローで割り込みをかけていたのを、10usだけ早くオーバーフローより早く割り込みがかかるようにしました。 タイマーVには、コンスタントレジスタというのが2つついているのですが、ここに値を設定しておくと、 一致した時に割り込みがかかるようになります。それで、3usぐらいで割り込み処理に入って、 ちょっと準備すると10usでちょうどいいかな〜ということでして。これで、ぴくっというのは無くなりました。よしよし。 ロボコンマガジン No.40
| |
2005/06/21 |
昨日は眠ってしまいました… という話はおいといて、楽しい!話。えまのんさんから救援物資到着。いや〜、まさしく救援物資です。 ありがとうございます。助かります〜。嫁さんは、このABSの固まりを見ると、いつも「白チョコみたい」と言い、 手にとって不思議そうに感触を確かめます。
次は信号オン *( MM.GIP.SRV[MM.GIP.bSrvIoOnIdx].CTL.pSrvIo->pbAddr ) |= MM.GIP.SRV[MM.GIP.bSrvIoOnIdx].CTL.pSrvIo->bOn; MM.GIP.bSrvIoOnIdx++; これ、どれくらいかかると思います?うへ。約4usでした。うわ〜、ちょっといろいろやってみたのですが、 2usぐらいまでしか速くなりません。う、予想外…(って、最初にチェックすべきであった、う〜ん)。 信号オン処理なので、絶対に重なるタイミングあるしな〜。 アクセスしやすいようにI/Oを並べると自由度が減るしな〜、ということで…。 あきらめます。 でも、ただで全部をあきらめるわけではありません。「オンの遅れを見越して完了を遅らせる」のです。 そうすれば、ジッタは出ないはずです。しょうがないところはしょうがないとして、 今度はオフ側で吸収することにします。これから、信号オフの方のコードも書いてしまって、 一度動かしてみることにしようと思います。
| |
2005/06/19 |
ちょっと荒業でlongアテコミ long型で一気に入れ替え! ができます。さっそく構造体内のメンバーの順番を入れ替え、unionを使ってlongに当て込み、long型の変数で一気に入れ替えるようにしました。 いや〜、H8/TINYのアドレスが2バイトでよかった。昔、超有名なソフトウェアのソースコードで、こういうコードを見たことがあります。 むむむ、来ましたよ。一気に150usです。 100usで割り込むのはアキラメ 要は…例えば、2048というデータが入ってきた場合、今まで、20と48という風に分けていたんですが、 このデータを作るためには「2048を100で割る」という処理が入ります。これをあきらめて、8と00にするようにしました (2048は、16進数で0x0800)。これで、「100で割る」という処理分だけ、高速化できることになります。 さて、結果の方は?おお、120usでいけますね〜。でもまだまだです。じゃあ、次は… for文の比較部分 for( a = 1; a < ( b-1 ); a++ ){ ... } これ、ソートとかに良く使う文なんですが、確か…for文の条件判定のところで"b-1"のような、演算するコードを書くと、 毎回演算することを思い出しました。そりゃそうですよね。プログラムがそうなっているんですから。というわけで、これを signed char c; c= b-1; for( a = 1; a < c; a++ ){ ... } お、なんか急に速くなったぞ。100usをきりそうです。対象となるデータは4つだけ。いっそのこと、 for文をやめたらどうなるかな?というわけで、4回単純に回るだけのfor文は全部やめて、ベタベタとプログラムを書いてみました。 結果は、なんと、80usです。お〜、やる気が出てきました。でも、プロポ信号解析処理も入れようと思うと、まだまだです。 さらにfor文削除 50us達成! やった〜。このアイデアは成立しそうです。…ROM容量が少し心配になってきました…。 ここのところ毎日見てしまうページ
| |
2005/06/18 |
100usって短いよ… です。おお〜、これはすごい。今までの経験から、信号オンよりもオフの方が難しいです。 というのも、オンの方は、「うぉりゃぁ」とオンすればいいのですが、オフとなると…そもそも、いつオフするかなんてことは、 サーボ制御プログラムだけからみたら、実行して初めてわかるようなことなんで、それに加えて割り込みなどでタイミングを計った後、 いろいろチェックしてから「えいっ」とやるわけです。数マイクロ秒オーダーで考えると、 結構、ここを安定した時間でやるのは難しかったです(それをやろうとしたのが現行です)。 何しろ、単純なif分1ついれるだけで、1us近く使いますから。 とうわけで、信号オンする前に、「サーボ信号幅によるソート」をして「オフタイミングが近くなりすぎないようにオンタイミングを調整」、 そして「落ち着いて一個ずつ信号オフ」するようにしようと思います。 さらに、この隙間を縫えば、誤差50usぐらいで100us毎のインターバルな処理も可能になると思います。これでプロポ信号を読み取れます。 また、ずらす量ですが、割り込みを100usで入れようと思っていますので、これを基準としてシフトしようと思います。 例えば、1500usの信号を2つ出す場合は、「最初の割り込みで1つめオン、2回目の割り込みで2つめオン」とし、 1500usと1700usの信号を出す場合は、「最初の割り込みで2つともオン」とします。こうすると、オフのときに必要な間隔が開くはずです。 と、ここまでは、「新サーボプログラムを作ろう」と思ったときあたりから昨日ぐらいまでの話で、今日は、 プログラムがだいたい出来上がったということで、あれこれ試していました。 仕様としては、とりあえず、今のサーボ制御プログラムに習って、4つまで同時に制御することにしています。 また、「制御信号のオフタイミングを離す」ためには、ソートして再計画するのが簡単そうということで、ソートして、 100us単位でオフタイミングがずれるようにするようにしてみました。 …で速度計測してみたわけですが、いかんです。いきなり170usも処理がかかっています。 サーボ指示値をメモリからコピって、バブルソートをし、100usごとのステップ情報に分けるというコードを書いたのですが、 軽く目標値(50us)オーバーです。これでは、プロポ信号解析どころではありません。 1つの割り込みでさえオーバーしています。う〜ん。
| |
2005/06/17 |
SIPHA COREのジッタ対策 さて、前回、書きました「タイマWによるサーボ制御」の最後に、「SIPHA COREでのジッタ対策」についてちょっと触れましたが、 今回は、そのお話です。 TSC16を動かしてみたことがある方はご存知かと思いますが、4つ1組にしたサーボ制御信号のうちのどれかが近づく、
もしくは同じ値になると、他の止まっている「ぷるっ」と震えます。
「 SISO-LAB不定期TOPIC Jun.2004」の2004.06.03に動画があります。
こんな感じでぷるっとなります。この時点で、ある程度の改良をしていますが、これをどうやったか?というところです。
ネタは既にSIPHA COREの解説のところでバラしてますが、もう少し詳しく説明します。 割り込みの先取り(勝手語) 仮に、割り込みに入るのに3us、信号オフ処理が1us、抜けるのに3usかかるとします。 もし、4つとも同じタイミングでオフにしようとしたらどうなるでしょう? なんと、最大、合計7usの処理が3つ(4つめの信号オフは、前に3回既に処理されていることになる)走っているわけですから、 合計21usの処理遅れが発生することになります。これだけ動くとサーボは約2度以上動いてしまいます。 逆にいうと、ロボットのホームポジションがこれにぶつからないようにしておけば、そんなに気になりません。 また、ホームポジション以外では、だいたいサーボは角度が常時変化させていますから、サーボによってはあまり目立たなかったりします。 しかしながら、サーボを高級化したり、動作を高速化させたりしていくと、それなりの精度が要求されてきます。 サーボの動きが良くなると、一瞬の「ガクッ」とした動きが不安定さにつながったりしてきます。そこで、「割り込みの先取り」を行います。 具体的には、信号オフ処理で割り込みに入った時に、もし、すぐ後に信号をオフする処理があれば、 最初の割り込みの中で時間が経過するのを待ちます。 そして、タイミングがきたら、その信号もオフしてしまい、新しい割り込みのフラグをクリアしてしまいます。 そうすると、後の割り込みは、最初の割り込み処理を抜けても発生しません(他のCPUではわかりませんが)。 まとめると、以下のようなことをしています。
この、「ほんとだったら割り込みで処理するのにかかる時間(オーバヘッド)」を待つ処理というのが苦労したところで、 これが無いと、これはこれでジッタになってしまいます。そんなわけで、それなりに複雑な処理になってしまいました。 特にこのプランを作る部分がややこしいです。ややこしくて苦労した割には「もう一声!」な結果になっています。 さらっとアイデアメモ的に書きましたが、コントローラソフト自作+外部回路無し派の方は、チャレンジされてみるとなかなか楽しいですよ。
| |
2005/06/15 |
H8/3694のタイマについて
それぞれのタイマは、CPUクロックを分周して入力することができます。 例えば、H8/3664(16MHz)で、タイマVとかタイマWに1/8のクロックを入力すると、1入力が0.5us(1/16000000*8)となり、2カウントで1usになります。 この場合だと、タイマVの場合は、128us、タイマWでは32768us(32.768ms)でカウントアップできるようになります。 タイマWによるサーボ制御
と書くと、簡単そうです。実際、ここまでは簡単で、TSC16でもこの基本的なアルゴリズムを使用しています。 ところが、H8/3694は、割り込み処理に入るためには、約うんusかかります。ハードウェアマニュアルを読むと、「15〜27ステート」とあります。 たぶん、この「ステート」というのは、CPUクロックと同じだと思っているんですが、だとすると、0.75us〜1.35us(20MHz)ということになるのですが、 実際にはうんusかかっている気がします。きっといろいろ準備があるんでしょう。 細かいところはよくわからないのですが(Cを使っているからかもしれませんが)、 実際に測ってみるとこんな感じです。 というわけで、サーボ制御信号を1つだけオフするだけならば、かならずうんusかかるので、 それはそれで安定するのですが、これが、信号オフタイミングが近くなってくると話が変わってきます。 もし10usも処理がずれたら、サーボは1度以上動いてしまうわけなんですが、このロジックは、ある条件下において、 このズレが発生してしまうという難点があります(これについては次回)。 S03Tとかで普通に動かしているぐらいだと、あまり気にならないんですが、 だんだん動きの正確さを要求する度合いがあがってくると(高速動作させるとか、いいサーボを使うとか)、 気になってきます。そんなわけで、SIPHA COREでは、「信号オフタイミングが近かったら、 割り込みをまとめる」という処理をしています(これがまた苦労したんですが…)。 LBC でも、ソフトで完全に制御し、超小型制御基板でロボットに実装、これまた浪漫です。 とかいいながら、とどのつまり、G-Tuneにはとにかくスペースがありません。 ちょっとあってもこれまた中途半端な隙間でして…。次のSIPHA COREは、50×35mm以下の実装を目指します。 これでサーボの稼働範囲もばっちり確保!のつもりです。G-Tuneは、ROBO-ONEの中では小型な方ですから、 サーボや他の部品との体積比は、コントローラボードがかなり大きくなると思います。 そんなわけで、コントローラボードも小型を目指さないとね!なのです。 というわけで、実装サイズに問題がない場合、無理にソフトのみで制御する必要は無いと思います。 でも、こういうアプローチもおもしろいと思いませんか?(苦手なハンダ付けが少なくて済むし…) 今日のNOTE
| |
2005/06/14 |
襟が立ってマス 肘の向き 今日のNOTE
| |
2005/06/13 |
ジッタフリーとの限りなき戦い 今までのも、なかなかいいプログラムだと思うのですが、ことの起こりは、PRS-3401をSIPHA COREに接続した時の話です。 アナログサーボではほとんど目立たなかったジッタが、結構、出ているではないですか…。これはイカンです。 今後、高速歩行とかにチャレンジしていこうというのに、こんなところでプルプルしていてはまずいです。 プログラムでは、確かに、場所によっては、一瞬0.5度ぐらいぶれであろうところがあるのですが、デジタルサーボでは、なんだか顕著。 これが謙虚だったらいいのに。 さらに、次はぜひともジャイロを接続して制御に使いたいです。一度マイコンに取り込み、それでいろいろできるようにしたいです。 ジャイロ解析に使えそうなモジュールは、H8/3694ではタイマWだけです。 タイマWは、H8/3694の中でも一番高機能なタイマーで、現行のサーボ制御にも使用しています。 ということで、いずれにせよ、ジャイロを搭載するところでサーボ制御ソフトはタイマVへ移行させないといけなさそう、というわけです。 他のCPUに目をやると、なかなかいいのが無いんですよね〜。消費電力とかサイズをもう少しひろげれば選択肢はありますが、 電源電圧変動に強くて、そこそこ脚の数があって、そこそこメモリがあって、さらにそこそこサイズが小さいという(「そこそこ」ばっかり…)と、 H8/3687(ベステクのBTC065)と M16C/26(OAKS16-MINI)あたりになります。 なんとなくM16C/26だと、タイマ構成とかがいい感じなのですが、ちょっと基板が大きいのが難点…。 あれで幅が50mmだったらばっちりなんですけどね〜。 そういえば、BTC065って、H8/3694のBTC064と200円しか違わないんですが、そんなもんなんでしょうか。 次のSIHPA SYSTEMの目標
これを全部直接続…(^_^;…チャレンジャーだな〜。あはは。これにLED出力つけたら、ホントに端子がもう無いです。 さて、この中での問題がジャイロです。ラジコン用のジャイロを使おうと思っているのですが、これはPWM取り込みです。 制御に使いたいため、それなりの細かさが必要になります。 分解度が0.1msだったら現行プログラムを改造すればできるのですが、やはりここは、サーボの間にジャイロを入れる仕組みと同じぐらいの精度で動かしたいです。 アイデアとしては、H8/3694のタイマWを使って、ハード的にカウントしてやればいいや〜ってことになるんですが… タイマWを計測処理に使ってしまうということは、サーボ制御を残ったタイマであるタイマーV(8BIT)で行うということになります。 このタイマV、以前から0.1msの割り込みやカウントに使っているのですが、実は機能がよくわからなかったりして…。 少なくとも2つのジャイロを計測するのは無理っぽいです。 そんなわけで、H8/3687にしようかな〜とかいろいろ悩んだんですが、サーボ制御とプロポ信号取り込み処理をうまいことやろうと思うと、 H8/3687にしても、それほど変更するメリットが無いかな〜というのと、せっかくAKI-H8/3694も買ったことだし、まずはこれでチャレンジしてみることにしました。 ちなみに、H8/3687は、タイマZという、名前からして魅力的なタイマがついています。 ハードウェアマニュアルを読むと、タイマWが2個分、という感じです。 PWMで信号が入ってくるものを処理するならば、非常にいい感じです。きっとさらにダブルになると、グレートタイマになるに違いないです。 そんなわけで、片方でサーボ制御信号、もう一方でPWM入力処理、なんてのも簡単にできそうです。 また、ROM、RAMともに大きくなっているので、これまたいい感じです。 しかし、しかし、やはり、H8TINY、今のプログラムをそのまま移植しただけでは、やっぱり同じような結果になると思いますし、AKI-H8/3694のもったいないおばけがでると困ります(ただでさえ、無駄にしているものが多いですし…)。 というわけで…タイマVで動く「サーボ制御&プロポ信号解析&センサの平均化処理」プログラムを作ることにしました。 ま、まずはチャレンジチャレンジということで、はい。
| |
2005/06/11 |
JRスーパーホーン
あたりまえと言えばあたりまえですね…。 KOローハイトホーン
外してサーボホーン内側のセレーションを見ると、削れているのがわかると思います。というわけで、きっとアルミでは、はまらないと思います。
| |
2005/06/10 |
どどんとサーボホーン比較 左から、「標準」、「JRスーパーホーン」、「KOローハイト」です。
標準サーボホーンも、こうやって見てしまうと貧弱とはいえ、なんだか小ぶりな感じがスマートです。 フレームが面で当たるようにデザインすれば、それほど問題が無いのかな〜という気がします。触ると、少なくとも、MICRO-MGのよりは丈夫な感じがします。 スーパーホーン、厚みがあってしっかりしています。穴を追加してカットして使うベースにはいい感じです。 デザインが一番しっくり来るのはやっぱりKOローハイトでしょうか。寸法をチェックしてたら、ABSで手加工フレームだと、KOの穴位置は苦しい気がしてきました。
| |
2005/06/09 |
すんごいですね〜
| |
2005/06/07 |
RES端子のプルアップ抵抗内臓 他には…PSoCのメモ書きでも書きましたが、あたりまえといえばあたりまえで、何で気づかなかったんだろう?というところで、 I2Cの通信速度が変わっています。クロック16MHzが20MHzに変わって、一緒に変わったようですね。 他にも少しずつ変わっている可能性があるので、時間がある時にまたゆっくりハードウェアマニュアルを読んでみようと思います。さっそくNoteに追加しておこう。
| |
2005/06/06 |
めずらしく東京出張 そして、最後は王国へ行きました。そしたら何やら取材をしている様子で、高橋さん(締め切り1号の)を店内で発見!というわけで、押さえていた新幹線の時間ギリギリまでみなさんとお話を楽しみながら購入したものは、 なぜかサーボマウントA、ローハイトサーボホーン、反対軸用サーボホーンなどなど(笑)。それに高屈曲ワイヤー。さて、試しにはめてみよう。 サーボマウントAを買ったのは、ABS板を直交結合する時のパーツに使えるかな〜と思いまして。 M2とM3のネジを使わないといけないんですが、それでも精度あるので試しに、という感じです。 うぅ、ついつい、予定よりいろいろ買ってしまいました。
| |
2005/06/05 |
新サーボ制御ソフト開発してたんだけど… 変数にvolatile宣言つけるのを忘れていました…。しかも最適化「-O2」です。ふわ〜。 説明しよう!volatileとは、コンパイラの最適化を抑止する機能で、この宣言を持った変数は最適化にも負けず、コンパイラが「こいつは無意味だ」と判断しても消されたりしないためのものであ〜る。割り込み処理等とmainな処理の両方からアクセスするようなグローバルな変数には必須な宣言なのだ〜。 最近、改造ばっかやってましたから、新規物のときの注意点、忘れてました。さ、気を取り直してデバッグデバッグぅ。
| |
2005/06/04 |
PSoC下調べの続き
| |
2005/06/03 |
サーボホーン、微妙に入らないとのこと 今月もONOさんの「選り抜き」に入れてもらいました。ありがとうございます。 自分もよく使わせてもらってます。 ところで、「選り抜き」、TOPページの更新履歴以外のところからって、入り口ありましたっけ? 未だに更新履歴のところからいつも行っているんですが…。 2005/06/04追記:わかりました。いずみかわさん、どうもありがとうございます。
| |
2005/06/02 |
PRS-3401のセレーションを数えてみる。
これだと、目が疲れてきたりとか、どこまで数えたかわからなくなったりしなくていいです。 で、PRS-3401を数えた結果は23歯でした。なるほど。KONDOのサーボも23歯なんですよね〜(テクニカルインフォメーションの中にPDF図面があります)。 ということは…。
| |
2005/06/01 |
いや〜、PSoC、おもしろそうで、もうダメ! さて、ちょっと一息入れて…最初、この先もっとセンサーが増えてきたら、8PのPICとオペアンプでどうかな〜と思ったんです。 でも、回路組むと意外と大きくなりますし、なによりSISOは電子回路に弱いので、 電子回路面でコンパクト&シンプルにできるのであれば、それに越したことは無いな〜と。 また、PSoCのチップって、\500〜\700ぐらいで安いです。能力的に考えてコストパフォーマンスもすごくいいような気がします。 もし28PINが大きすぎれば、8PINのCY8C27143が共立エレショップで購入できるようです (写真は28Pですが…本当はどっちなんでしょう?)。開発キットは対応しているのかな? 実のところ、今のH8/3694だけでも、サーボ20ch、加速度センサ、距離センサx2、ジャイロx2、ProBo対応まではいけると思っているのですが、 今後、もっといろいろ対応していかないとダメかなって思ってまして、次期のさらに次のG-Tuneあたりで搭載できたらいいな〜なんて思ってます。 やってみたいことは、各種センサを取りまとめてIIC通信化です。 H8TINY(H8/3687を除く)、I/O数が少ないので、いろいろ繋ぎたくても脚が足りなくなっちゃうというのと、 アナログを扱う以上は、オペアンプなどのアナログ回路は避けられない(特に安く使おうと思うと)のかな〜って思ってまして、 だったら、オペアンプなどを内臓して、しかも内部で組換え可能なマイコンであるPSoCならうってつけじゃないかな〜なんて予感がします。 IICは、芋ずるのように接続できますので拡張性も維持できますし、シリアルEEPROMを読み出すような感覚で扱えるスレーブのIICデバイスにできたら、 なんとか番地のメモリを読み出すと距離センサーの値が、別の番地を読み出すと加速度センサの値(しかも増幅された)が…なんてできそうです。 いや、プログラムも組めるわけですから、転倒判定もPSoCの方でやらせるのもいいかも…。ああ〜、また夢が広がっていってしまいます。 IICで体内ネットワークレベルまでやるとノイズの問題で難しいらしいですが(本当はどれくらいまでいいんだろう?)、隣のボードに繋ぐのは問題ないですし、 G-Tune程度のサイズなら簡単なノイズ対策程度で体内ネットワークもできるかもしれません。 というわけで、まだ開発キットは来ていませんが、なんだか我慢できなくなってきたので、PSoCデザイナーをダウンロードしてインストールしてみました。 本にもついているのですが、なんとなく開封するのがもったいなくて…。 まずはCYPRESSのトップページから、「Software and Drivers」に入り、「Select Product Group:」を「PSoC Mixed-Signal Controllers」にして「Apply Filter」します。 そうするとツール群がずらずらっと出てきます。 「PSOC DESIGNER V. 4.2」と「PSOC DESIGNER V.4.2 SERVICE PACK 2」があるのですが、説明を読むとこっちは拡張機能っぽいので、まずは「PSOC DESIGNER V. 4.2」をダウンロードしました。 うへ、66MByteもあります。じっと待ちます。インストールそのものは、解凍して出てきた実行ファイルを起動するだけですので、特に難しいところはありません。 あとは、Pastel Magicさんのところのチュートリアルを読みながら、PWMでLEDのやつを入力してみました。 おお、おもしろいですよ、これ。というわけで、なんか絵ができたところで、現物が無いので終了〜。あ〜、久しぶりにデバイスで興奮しているような気がします。 採用は次々期G-Tuneにしようと思っているんですが…ま、新型制御ボードの製作スケジュールを後ろにして、進捗の様子を見ながらやろうと思います。 なんだか止まらない予感…。
|
2005 | Jan. | Feb. | Mar. | Apr. | May. | Jun. | Jul. | Aug. | Sep. | Oct. | Nov. | Dec. |
2004 | Jan. | Feb. | Mar. | Apr. | May. | Jun. | Jul. | Aug. | Sep. | Oct. | Nov. | Dec. |
2003 | Jan. | Feb. | Mar. | Apr. | May. | Jun. | Jul. | Aug. | Sep. | Oct. | Nov. | Dec. |