STM32 Nucleo Board STM32F303K8のジャンパについて

こんにちは、Operaです。

秋月電子からSTM32F303K8のチップが発売され、STMマイコンが更にお手軽に使えるようになりましたね。
中にはmbedとして使いたい方もいると思います。
その際、普通はSTM32 Nucleo Board STM32F303K8ハードウェア仕様書を元に自分で回路を設計することになるかと思います。
かくいう私もその一人で、製作中の制御基板のMPUをLPC1114あたりを使おうと思っていたのを急遽変更しました。性能ダンチだもんね。
しかし、回路図中にはSBnnで表されるジャンパがあり、その状態は商品を買わないとわかりません。そこで、秋月電子で販売されているボードのジャンパの状態についてまとめました。

SB1:Open
SB2:Short
SB3:Short
SB4:Open
SB5:Open
SB6:Short
SB7:Open
SB8:Short
SB9:Short
SB10:Short
SB11:Short
SB12:Short
SB13:Short
SB14:Short
SB15:Short
SB16:Short
SB17:Open
SB18:Short

Openになってるのはボードの回路図を見ると主にクロック関連ですね。
デカイ方のNucleo BoardではST-Linkのほうにクリスタルが載っており、MCOを通してクロックがマイコンにも供給されますが、チッコイボードにはそれがないからかMCO関連は全てオープン、また基板に実装スペースが設けられている後付けクリスタル関連もノーマルでは外されていますね。
あとはSB1のST-Linkの電源供給(?)でしょうか、ここはよくわからないです。

とりあえず、このことでクロック関連以外は全部ジャンパが0Ω抵抗で繋げてあるのでボードの回路図通りに実装すればいいことが分かりました。

そして、そのことを元にKiCadにて回路図を作ってみました。
この通りに作ってST-LinkV2-1もといデカイ方のNucleoBoardをぶった切ったちっちゃい方を繋げばうまいこと書き込んで利用できるはずです。
ちなみに、下図にて未接続になってるピンは全てI/Oとして利用できると思います。
STM32F303K8 オリジナルボード回路図 

今回の記事は以上です。ではまた今度。

おまけ ST32F303K8NucleoBoardグラビア写真

Nucleo Board上面

DSC_0309.jpg 

Nucleo Board下面(特別カット)

DSC_0310.jpg

続きを読む

トランペッター 1/35 KV-2のRC化その1

お久しぶりです。Operaです。

編入学受験が終了し無事来年度から某大学に行くことが決まりましたのでめでたしめでたしで更新を再開します。
閉鎖期間は半年でしたが随分と長く感じましたね、しばらく勉強したくない。

まあ受かってからは立川シネマシティの6000万のスピーカーを試聴しに行ったり

DSC_0105.jpg

青い円盤を楽しんだりでやりたい放題なんですけどね。

DSC_0107.jpg

そんなガールズ&パンツァーの世界に出てくる戦車の中でも僕はKV-2が好きでして今回の劇場版での大活躍にも感動しました。

kv-21.png

TV版に引き続き今回も頼れる同志として152mm砲を搭載した箱型砲塔が大洗女子学園の前に立ち塞がりましたね。

kv-22.png

そんなKV-2を見ていて気づいたら手元に大きな箱が届いていたわけです。不思議だなぁ。

DSC_0110.jpg

というわけで今回は1/35 KV-2のRC化をしてみようかと思います。
プラモ戦車のラジコン化って結構やってる人多いんですけど、KV-2でやっている例、またモーターをしっかり制御して動作させる例が見当たらないのですね。
普通ラジコンのモーターを動かすときって電圧を可変としてオープンループ(フィードバックなしの投げたら投げっぱなし方式)で制御するんですけど、モーターのトルクは電流に比例するのでそれだと始動時に過電流が流れ急発進してしまうのです。
そこで、モーターを電流制御して戦車を動かしたら実車のような重量感を演出できるのではと思い試してみることにしました。

ちなみに、2016年6月現在1/35 KV-2はタミヤ製、トランペッター製ともに入手困難ですがインターアライドスターショッピングさんにて現在も新品で購入できます。ほかだと4k以上はするし買いたくないですよね、全くこれだから転売屋は。

気を取り直して箱は開けるとこんな感じ。普通のプラモデルですね。


DSC_0111.jpg

プラモはしばらく作ってなかったし、作ってもタミヤだったんで中華プラモなんてできるか心配でしたが説明書は読みやすく、パーツのバリなんかも十分除去できる範囲内だったのでなんとかできそうです。
履帯もプラスチックの一部連結履帯と昔ながら(?)のゴム履帯がついており、後者ならそのまま使ってRC化できそうです。

では、とりあえず幅が狭く、出力の歯車が小さく狭い場所にも使いやすいプラモのラジコン化に最適なタミヤのツインモーターギヤーボックスを入れてみましょう。

DSC_0126.jpg

うん、入らないね。
戦車って大きく見えますが、実際は履帯幅が非常に広いため車体部分は案外狭かったりするんですよね。
KV-2も1/35だと幅がたったの50mmしかありません、ドイツのIV号戦車なんかだと車体はKV-2より小さいものの重量差による接地圧の関係で履帯幅が細いんで無加工でもギアボックスが入るようです。
とりあえずギアボックスを加工して

DSC_0130.jpg

車体側の干渉する部分をニッパーで適当に切り取ると

DSC_0129.jpg

見事ギアボックスが入りました。

DSC_0131.jpg

タミヤ謹製のスーパーダッシュ3モーターを搭載し、試しに2S 2.2AhのLi-poを詰めてみるとこんな感じに。

DSC_0132.jpg

Li-poの上部はまるまる回路スペースとして使えるので、当初フルチップじゃないと収まらねぇんじゃないのか!?ってレベルで恐れていましたがそこまでではないようです。
実際使うバッテリーはここまでデカくないですし、そもそもやらかしたら発火してKV-2に白旗が上がるようなバッテリーは使いたくないのでニッケル水素2セルあたりで攻めようかと思います。

今回の記事はイントロ記事なのでモーターの組み込みまでです、そもそもそこまでしか終わってないし。
次は転輪周りの可動化加工やサスペンションなんかをやりたいと思います。

クアッドコプタープロジェクト終了のお知らせ

こんばんは、Operaです。
少し昔の話ですが、先々週に文化祭が終わり、発案から一年半の時を経てダラダラを続けていたクアッドコプタープロジェクトについてプレゼンを行いました。
一応このブログでもちょくちょく進捗状況を載せていたのでまとめとしてこちらの方に上げておきたいと思います。

1. プロジェクトの結果

まず結果から申し上げますと、もともと作りたいものは「半自律制御を用いて誰にでも操縦できるクアッドコプター」でしたが、残念ながら結果できたものは「そこそこのラジコン経験がある人になら操縦できるクアッドコプター」になってしまいました。残念!
まあカクカクシカジカ色々あったので順を追って書き連ねたいと思います。

2. 半自律制御クアッドコプターとはなんぞや

まずクアッドコプターについては最近では馬鹿でも阿呆でも猫でも杓子でも知っている超有名なものとして半自律制御とはなんぞやって話ですよ。
そもそもの自律制御というのは、ロボットが自らの状態をセンサを用いて認識し、それを元に自己判断を行い動作する方式のことです。
んじゃ半自律って言ったら何?って言われたら人間の命令とセンサから得た状態からどう動くかを判断して動作する方式のことなんですわ。
要するに人間が簡単に「前行け~」って命令したらロボットが自らズレを修正しながら前に行けばそいつが半自律なわけです。

3. 機体姿勢の制御内容

今回目的を達成することができなかった理由は機体の制御にあります。
本来、誰にでも操縦できる機体とするには

・高度制御→操作に合わせて上昇下降を行う
・旋回速度制御→操作に合わせて機体を旋回させる
・水平移動速度制御→操作に合わせて機体を水平移動させる

このあたりがないとダメなんですが、今回実装できたのは旋回制御と、水平移動速度制御の代わりとしての角度制御の二つだけだったのです。
高度制御は手動だから機体を目視しながらスロットルを手元で調整しないといけないし、機体の角度が制御されたところで風に流されちまえばそのまま流れていくので当て舵を当ててやらないといけない。
つまり誰にでも操縦できる機体ではなく、そこそこのラジコン経験がないと操縦できない機体になってしまったわけです。

ホントはそこら辺も実装したかったのですが、高度や速度といったデータを取得するには結構難しいのでその点は妥協せざるを得なかった感じです。
データさえ取れれば後はそんな難しくはないんですけどね、センシングは本当に難しい。

4. 組んだ制御システム

んでまあそんな妥協を重ねてでっち上げた機体の角度制御システムがこんな感じ。

図1

プレゼン用のデータをそのまま持ってきたので制御工学的な要素は限りなく隠蔽済み。
一旦角度入力を角速度入力に変換して最終的に角速度を制御する理由は単純で、直接機体角度を制御したところで応答が限りなく遅くてお話しにならないため(実験済)。基本的に微分値(角度に対する角速度)を使った方が安定するので良いのです。
角度で制御してもPD制御にして微分項を効かせれば実質変わらないんですけどね、でも微分項はノイズに弱くて不安定だから角速度でPI制御にしたほうが安定なのです。
一応実際に使ってる制御プログラムはPID制御なんですけど、微分項をちょっとでも効かせるとすぐに機体が暴れるんで微分項は無かったことにされPI制御に落ち着きました。

5. 角度のセンシング

機体角度の取得にはジャイロセンサと加速度センサを用い、それぞれのデータをいい感じにミックスして使いました。

ジャイロセンサは角速度を積分するので精度は良いのですが、時間が経つと共にノイズが積算されていき正しい角度からはズレていきます。
逆に加速度センサは重力加速度の方向から逆三角関数を用いて角度を求めるので角度がズレることはありませんがセンサに重力加速度以外の加速度が加わるとそれがそのままノイズになるのでクアッドコプターのようによく動くものだと楽しいことになります。

それを考えるとそれらのセンサをうまいこと機体の状態に合わせて混ぜてやるのがいいので、

図3
(θ:機体角度[deg], θa:加速度センサを用いて取得した角度[deg], θω:ジャイロセンサを用いて取得した角度[deg])

こんな適当な数式をでっち上げるとうまいこといきます。
kの値は下のグラフのように機体に加わる加速度の絶対値と重力加速度の偏差によって変化するので機体が激しく動いている=機体に加速度がかかり偏差が大きくなると小さくなります。

図4

これで機体が安定していてだいたい重力加速度ぐらいしか加わってない状態だと加速度センサを用いて角度を取得するようになるのでジャイロセンサで溜まったノイズも綺麗サッパリです。めでたしめでたし。

ちなみにですがクアッドコプターのようにジャイロセンサを三軸フルに用いる場合は各軸の値をそのまんま積分したところで正しい角度なんて出てきません。
だってセンサ自体が回転してるんだもん、ちゃんと回転行列を使ってベクトルを回転させないと。

他にも直近n回のデータを持ってきて平均取ってデータの精度を確保し、PI制御をサンプリング周波数で回したりとか色々やりました。
一発で取ったデータは信用ならないんで平均取らないといけないけど、そんな悠長なことしてたらPI制御の周波数が落ちてしまうのでだったらいちいちn回サンプリングしてからPI制御に投げつけるんじゃなくって直近n回のデータ持ってきてその平均投げつけて制御周波数をサンプリング周波数と同じにしたほうがエエやんって話。

6. でっち上げた操縦システム

色々と書き連ねた内容を全部プログラムにぶち込んでブラックボックス化させた全体図がこちら。

図2

ほんとは他にも色々センサつけたかったのに結局6軸姿勢センサつけて終わりなんですよねぇ、かなしい。
一応機体情報がフィードバックされるのが特徴だったりします。

7. でっち上げた機体

でそれらを組み合わせ完成した機体がこちら。

DSC_0031 (Large)

発表の期限などもあり色々とダメな方向性の工夫を繰り返していたら最終的にはアンテナ支持フレームが紙製(しかも栄養ドリンク箱)になってしまったり衝撃吸収用の足がダイソーのボールになってしまったりしましたがプロトタイプなのでよくあることです。
フレームの方はみんな大好きアルミとアクリルのハイブリッドで、シンプルな出来になってるので案外墜落しても腕が損傷しただけで済んだりします。
一回色々あってそこそこの高度から落っこどしたのですが腕に使っているアルミアングルが曲がってポッキリ逝きかけただけで他は生きていました。
ちなみに設計は自分ではないのでメンバーに圧倒的感謝です。

あと送信機はこんな感じ。

DSC_0033 (Large)

LCDをつけると可能性が広がるので皆さんも是非やりましょう。
実際操縦中にはLCD見ることは難しいのでバッテリー警告なんかは音でやったほうが良さげです。一応LCDの下にブザーがあってLi-poの電圧が残念なコトになるとけたたましく鳴り響きます。

8. 飛ばしてみた

でその機体を飛ばしてみたら案外安定して飛んでくれました。

DSC_0048 (Large)

さすがに風に流されたりはしますが、クアッドコプター特有の圧倒的な機動力のおかげで機体を大きく傾けた操縦にも応答してわりかし自由自在に飛ばすことができました。
動画がこちら。



いやー飛ばしてると面白くてしょうがないですね。そのうち無線モジュ換装して長距離通信を可能にしてグラウンドで最高時速測ったりしてみたいです。そのうち。

9. 総論

クアッドコプター作るとセンシングとか制御とか勉強できて圧倒的成長できるよっ!
しかも完成した後には飛ばして遊べるよっ!
自分だけの機体だからパラメータ好き放題弄ってギリギリまで性能引き出すこともできるよっ!


まあこんな感じですね。無事に炎上しかけたりはしたものの一年半かけて作ってきたものがなんとか形になりました。
元々はホント色々な機能つけて遊びたかったのですが結局学業も忙しく飛ばすだけで精一杯でした。
来年には一応編入学試験が控えているというのが高専内での通説ですので理論上ではそろそろお勉強に舵を切る頃ですのでしばらくはブログも放置するでしょう。
一応二ヶ月に一回とかは更新出来たらな~と思います。順調に事が進んで行けば6月頃には進路が決まり戦線復帰できるはずです。
では、また今度。

4bit CPUをつくる話

こんばんは、Operaです。

長らく電子工作をするようなヒマとやる気がなくはんだごての電源を二ヶ月間も投入しないという異常事態に陥っていましたがなんとか一つばかし作れましたのでそれをネタにしたいと思います。
作ったものはそう、かの有名なCPUの創りかたを参考にオリジナルのアレンジを加えた4bitCPUです。
というのも、CPUをつくるという内容の授業がありまして、その一環で作ったものだったりします。
授業の内容としては3,4人のグループで分担してCPUをつくるという内容になっており、半期の授業で作る分しっかりと時間をとって設計することが出来たので割とこだわりの仕上がりになっていたりします。製作に関しては時間的余裕がなくって夏休み突入で残業がデフォだけどね!!!
実は半年ほど前に2bitのCPUは作ってたのですが、これはその拡張版とでも言うべきでしょうか。

書きたいことはだいたい同じなので上記の記事をそのまんまコピペして手抜き記事を書きたいと思います。

まあまずなんでCPUか?って話ですよ。
普通ブラックボックスとして扱われていて最先端技術を駆使して作られているだろうCPUを作ろうと思う人間なんていうのはいないように思うわけですが実は電子工作をかじったことがある人間なら誰でも知っているだろうこんな書籍があるんですね→CPUの創りかた

この書籍では汎用ロジックICを使って4bitのCPUを創る方法を懇切丁寧に説明してあるのですが、ノリが緩いのもあり難しい内容でもすんなりと頭に入ってくるわけですね。
僕はちょくちょく読み返しながら読んでいったら普通に理解できたので、既にロジックICの基礎が頭に入っている方なら簡単に理解できる内容かと思います。
また、オームの法則レベルから説明してあるのでまるっきりの初心者でも何度も読み返せば理解することができるかと思います。まあ理解できたとしてそこから製作するのは茨の道でしょうが...

この本のよさは折り紙つきで、発売から12年が経った2015年8月現在でも増刷が続いておりAmazonの「コンピュータ・ITの周辺機器」カテゴリのランキングで堂々売上1位なぐらいです。
本を読んで実際に製作するのも良し、読み物として読んで楽しむのも良しの内容になっていますので、是非とも読んでみることをおすすめします。大学なら図書館にあったりするんじゃないですかね?

まあステマパートはここらへんにして自分の作った4bitCPUの話をそろそろ。
今回は学校の授業さてその性能はと言うと...

汎用レジスタ : 4bit x 2
アドレス空間 : 4bit(=ROM容量は16byte)
プログラムカウンタ : 4bit
フラグレジスタ : 1bit
算術演算 : 4bitの加算、ビット反転、ビット論理積、比較(A=B)
最高動作クロック : 27MHz以下(ロジックICの動作周波数)
入力ポート : 4bit x 2
出力ポート : 4bit x 2
使われたICの数 : 27個

>超低性能<

アドレス空間4bitってアレですよ、プログラム16行書いたら終わりですよ!!!!前回の2bitに比べたら飛躍的とも言える向上ですがそれでも少ねぇよ!!そのプログラムに用意されている命令を並べると、
ADD A, Im : A + Im
MOV A, B : AにBを代入(以下A←B)
IN1 A : A←IN1
MOV A, Im : A←Im
MOV B, A : B←A
ADD B, Im : B + Im
MOV B, Im : B←Im
IN2 B : B←Im
OUT Im : Imを出力
OUT A : Imを出力
OUT B : Imを出力
INV B : Bのビット反転
JMP Im : Imの番地にジャンプ
JNC Im : フラグが立っていたらImの番地にジャンプ
COM B, Im : B=Imならフラグを立てる
AND B, Im : BとImのビット論理積

※A : Aレジスタのこと。4bitのデータが格納されている
※B : Bレジスタのこと。4bitのデータが格納されている
※IN1 : 入力ポート1のこと。4bitのデータを入力することができる
※IN2 : 入力ポート2のこと。4bitのデータを入力することができる
※IN1 : 出力ポートのこと。4bitのデータを出力することができる
※Im(イミディエイトデータ) : 命令とセットで組み込まれた数値データ。通常、機械語は命令コードと数値データの組み合わせで表現する
※加算命令については加算時に繰り上がり(キャリー)が発生しなかった場合にフラグが立つ

一応ですが、命令がたった16つしかなくてもカウントアップやLチカはもちろんライントレースだってできちゃったりします。
最初は駆逐戦車の中に入れてコイルガン仕込んで自律ライントレレースパンツァーを作ろうとか言ってましたけど完成した回路は学校に回収されることを忘れており無事消えました。
ちなみに命令セットのうちCOM、AND、INV、OUT Aは独自で追加した命令で、また入力ポートも本来一つのところを二つにしています。


そして完成した4bitCPUがこちら。

DSC_0471.jpg

左上が入出力・クロック生成回路、右上が命令デコード回路、左下がROM回路、右下がCPU本体の回路となっています。


自分が設計したのは右側の回路なのでそれだけ紹介を。まずはCPU本体の回路。

DSC_0473.jpg

この回路はデータの読み出し・書き込みや各種演算を回路で、CPUの要となる回路です。
追加命令の影響で、回路内のデータセレクタが増えていたり演算器が増えていたりしてICの数が8個から15個と大幅に増加しております。
CPU本体の回路には確認用のLEDを大量につけています。さすがに基板上に配置するとすし詰めになってしまうのでここだけソケット生やしてLEDモジュールにつなげています。
ちなみにLEDを生やした理由は自分が好きなのもそうですが著者へのリスペクトが込められていたりもします。本にもLEDたくさんあるとかっこいいよねと書いてありますからね。
ちなみにこのブログに来るような方は既にお気づきでしょうが今回の回路は全て基盤加工機を使って製作されています。

DSC_0426.jpg

削る幅が0.5mm程度なのでジャンプしやすく、ハンダ付けが若干難しいですがそれでも配線作業が不要になるのは非常にありがたいです。

DSC_0424.jpg

この基板の場合は切削+穴あけで3時間ほどかかりました。加工中は他の作業をするなり昼寝するなり空を見ながらぼーっとするなり何やってても大丈夫なのでどんなに時間がかかろうが関係ないんですけどね。


次に命令デコード回路です。

DSC_0468-2.jpg

この回路はROMから読みだした命令データをデコードする回路で、デコードされたデータはCPUの各ICへと入力される信号となります。確か追加命令を入れない場合は使用するICが2つほどで収まるはずでしたが、色々命令を追加して回路規模が大きくなった結果9つも使う羽目になってしまいました。
ちなみにこの回路の裏面は...

DSC_0469-2.jpg

シナガワの力士

>シナガワの力士<

最後に軽く動作動画でも。
書籍に乗っているラーメンタイマーのコードをそのまま出しただけですが各所のLEDが点滅していてパチンコみたいだなぁと。いややったことないんですけど。
時間の関係で本来1Hzのクロックを10Hzにオーバークロックしているので実際のところは18秒タイマーだったりします。



まあこんな感じですね、他のグループに比べてそこそこ変なことをしたのにしっかりと動いてくれてよかったです。
やはり基板加工機を使うと基板CADで起こしたデータが間違っていない限り配線ミスが起こらないのが非常に嬉しいですね。
ただし、ランドが非常に剥がれやすいため部品の入換は不可能なのと、配線ミスがあった場合の修正が難しいことが面倒だったりします。
空から100万円入りのアタッシュケースが落ちてきたら迷わず購入するんですけどね、まだまだ値段も高いし趣味レベルで導入することが難しい機械だなとは思います。

そんなこんなで学校の授業の一環でCPU作ってMake成分を摂取することが出来ましたってお話です。
実は10月末の文化祭までにマルチコプターを飛ばさないと予算貰ってる関係で色々アカンかったりするのでそろそろまたマルチコプターをいじりだしたいと思います。
では、また今度。

PSoCを試食してみた

こんにちは、Operaです。

今回は一ヶ月放置せずに次の記事を書くことネタを見つけるができました、良かったですね。
ということで巷で噂の気になる子、PSoCを触ってみました。
ちなみに今回の記事は一応PSoC布教用なので、ちょっぴりだけ真面目に書いているつもりらしいです。

1,はじめに

まあなんで突然PSoCなのかというと、恐らくこのようなブログに来る人の多くがしている、”秋月電子の新商品チェック”をしていたら僕の目にPSoC 5LP Prototyping Kitという文字列が飛び込んできたのが始まりなわけですね。
今までPSoCは聞いたことしかない程度でしたが、1500円とお求めやすい価格であったのもありちょっと気になったので調べてみると
・回路図を組んでプログラミングし、マイコンを一つの回路として扱うことができる
・論理素子だけでなく、オペアンプやコンパレータなどのアナログ素子を使うことができる
なんていう特徴があるそうです。
論理素子のみの場合はCPLDなんかで事足りるわけですが、アナログ素子まで使えるだなんてまたすごい話じゃないですか。
ということで秋葉原に向かった時に気づいたらお買い上げしていたわけです。

ちなみにですが、買ってきてから調べてみたらマイコンの性能が低い分、600円とマイコンボードとしては破格の値段のPSoC 4200 Prototyping Kitなんてのもあったのでこっちも良さそうですね。

2,ボード本体について

マイコンボード本体は非常にシンプルな構成で、PSoC本体+ライターといった感じになっています。

DSC_0332.jpg

GPIOは38ピン。説明書いわく、基板上のインタフェースとしてはライター上のオレンジのLEDが電源、緑のLEDが通信、光ってはいませんがボード上の青のLEDがユーザー用のLEDで、またライター上のスイッチがリセットスイッチ、ボード上のスイッチがユーザー用のスイッチのようです。
初期状態ではボード上の青LEDが点滅するようになっています、つまりLチカのプログラムを組むまでもないわけですね(ちょっと悲しい)。
ライターの基板がそのままUSBになっていて、USBポートに直接接続することができるのは面白いですね。
本体にあるMicroUSB端子は通信用のようです。

3,ソフトのインストール

ソフトについては、製品のページよりダウンロードすることができます。
ページ下部に「CY8CKIT-059 Kit Setup (Kit Design Files, Creator, Programmer, Documentation, Examples)」があるのでそれをダウンロードしましょう。
インストーラがうんたらとか言われるので適当にそれもインストールすれば流れでどうにかなります。
インストール時には、下のような画面が表示されインストールする内容を選ぶことができます。

ps2.png

画面ではInstallation TypeがTypicalになっていますが、とりあえずここはCompeleにすればいいでしょう。

インストールが終わったら、何やらいくつかのソフトがインストールされますが使用するのは主にPSoC Creatorになるかと思います。

4,PSoC Creatorで遊んでみる

実際にPSoCの内部を組み立てていくソフトが、PSoC Creatorになります。
起動するとこのような画面が表示されるかと思います。

fig9.png

新しくプロジェクトを立ち上げる時は、Recent Projects→Create New Project...でプロジェクトの新規作成をします。
初めての場合はExamples and Kits→Find Example Project...で作例を探してみるのも参考になるかと思います。

プロジェクトを作成し、左のタブからTopDesign.cyschを選ぶと中央のような回路図の作成画面になります。

fig2.png

回路図内に配置できる部品は、右のタブの中から選ぶことができます。
とりあえずはカウンタでも作って遊ぼうと思い、各種モジュールを頑張って探してみると...

fig3.png

おおっとそれっぽいものが。次は繋いでみようと思い、回路図左のタブから線をつなぐアイコンを選ぶと

fig4.png

すげぇ、部品が繋がっちまった。こんなノリでつなげていくと、

fig8.png

4bitのカウンタができました!がしかし、これでは回路図上で完成しただけで、実際の回路とのピン番号の紐付けをしなければなりません。
ではまずはこのプロジェクトで使用するマイコンチップを指定しましょう。

チップの指定は、左のタブよりProject(プロジェクト名)が書いてある部分で右クリックをし、そこからDevice Selector...を選択することで指定することができます。

fig6.png

Device Selectorを起動すると、以下のようなウィンドウが表示されるかと思います。

fig5.png

まずはFamilyから自分のPSoCのシリーズを選び、そこから搭載しているマイコンを指定します。PSoC 5LP Prototyping Kitに搭載されてるCPU型番はCY8C5888LTI-LP097なので、それを選びます。他のマイコンを使っている人は、それの型番を探しだして指定すればいいでしょう。

次に、左のタブより(プロジェクト名).cydwrを選択するとマイコンのチップの画像が表示されます。

fig7.png

右側に自分が回路図上で設定した入出力ピンの一覧が出るので、それぞれどのピンを使用するのか指定します。
P2[3]のようにピン番号が表示されていますが、これはボードに刻印されている2.3ピンがそのピンになります。

DSC_0343.jpg

ピンの設定ができたら、あとは上のメニューからBuild→Build(プロジェク名)を選択してプログラムをビルドし、問題がなかったらDebug→Programを選択してマイコンに書き込みます。
エラーが有った場合は下部のスペースに表示されるので、それに応じて修正をします。
Programを選択した時にウィンドウが出てデバイスを選択するような画面になった場合は、プロジェクトで設定されているマイコンとUSBポートに接続されているマイコンが違うときに表示されるのでその時は再度確認しましょう。

実際に出力されている波形を見ると、以下の様な感じになりました。

DSC_0345.jpg

しっかりとカウントできていますね、問題なく動作しているようです。

5,おわりに

まあといった感じにPSoCを使ってカウンタを作ることが出来ました。
今までマイコンと聞いて敬遠していた人も、これなら論理回路やアナログICの代わりに使ったりすることもできるのではないでしょうか。
プロフィール

おぺら

Author:おぺら
強電から弱電まで狭く浅くやっています。
強電:コイルガン(充電&発射部)、テスラコイル
弱電:コイルガン(制御)、鉄道模型版PRC&CTC、マルチコプター

最新記事
カレンダー
03 | 2017/04 | 05
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 - - - - - -
検索フォーム
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
訪問者数
リンク
ブロとも申請フォーム

この人とブロともになる