PSoCでAQM1248を動かす話

ADCかUARTの話を書くと言ったな。あれは嘘だ。

はい、今回はPSoCでAQM1248を動かす話です。
PSoCでSPI動かす話がネットであまりなかったので(私に有益な日本語の情報って意味)、いつ記憶喪失になっても大丈夫なように書いておく。
とりあえず何かを表示させるところまで書いてます。



■使ったもの。
PSoC Creator4.0
PSoC 5LP Prototyping Kit
・AQM1248A小型グラフィック液晶ボード
 3.3V作るのがめんどくてこちらを購入。PSoCボードが5Vなんだよね。
 AQM1248A小型グラフィック液晶ボード - スイッチサイエンス



1.TopDesign

これ。UARTはデバッグに使ってただけなので液晶つけるだけなら必要ないよ。
f:id:matchqueen:20170331172738p:plain

SPIMの設定
f:id:matchqueen:20170331172918p:plain
f:id:matchqueen:20170331172942p:plain

2.ソース

3.解説

読めばわかるけど順番に解説。

  • SPIの開始処理をする

 LCD_SPIM_Start();
 コンポーネント:SPI_MasterのAPI
 LCD_SPIM_Init()とLCD_SPIM_Enable()を両方やってくれる。

  • LCDセットアップをする

 Lcd_Init();
 自作関数。
 AQM1248の取説にある初期化コマンド群。
 何をしているかはvoid Lcd_Init(void){}を参照。

 Lcd_Cmd(cmd);
 自作関数。
 LCDのRSピンをHiにしてコマンドモードにしてから、コマンド送信する。

 Lcd_Data(data);
 自作関数。
 LCDのRSをLowにしてデータモードにしてから、データ送信を行う。

  • LCDのVRAMをクリアする

 Lcd_Crear();
 自作関数。
 ゴミが残ってることがあったので、クリアしようかなって。
 ただひたすら全てに0を送るだけ。

  • 一休み

 CyDelay(1000);
 無くても動くのでなくていいよ。

  • データを送る

 while(1){・・・}
 スイッチサイエンスさんのデータをパクったので、スイッチサイエンスって表示される。

 これをコメントにして、
 Lcd_Data(pic[page][col]);

 これを有効にすると、画面真っ黒になる。
 Lcd_Data(255);  

Fusion360でアクリルキーホルダのイメージ絵を作る話

PSoC?まぁ、そのうちね。

はい、今回はFusion360でアクリルキーホルダ(以下、アクキーと記載)のイメージ絵を作る話です。
趣味でオリジナルカードゲームを作っていまして。そのキャラクタ絵でアクキー作りたいなと思ったのです。
せっかくだし、告知用のイメージ絵をアクキーの外観にしたい!ということで作ってみました。
実は3DCADきちんと使うの初めてです。めっちゃ初心者です。独学です。
同じく初心者だけどこんなの作りたい同人勢向けに書きました。

初心者がでっち上げで作った方法を書いていますので、普通に使える人は見る必要ないと思うよ。
もっと効率の良いやり方があったら教えてほしいな。


1.下絵を入れる

  • 挿入 から 下絵を挿入

f:id:matchqueen:20170328192308p:plain

  • 下絵を挿入 ウインドウが出てくるので、ますは  を指定する。

f:id:matchqueen:20170328192437p:plain

とりあえずこの面でいいよ。
f:id:matchqueen:20170328193547p:plain

  • イメージを選択 で、アクキーの絵を読み込む。

こんな感じにでてくるよ。
f:id:matchqueen:20170328193615p:plain

  • なんとなくこの位置になるように移動。右や上の矢印で移動するし、真ん中の丸をマウスでドラックしても移動するよ。(3DCADの原点ってどいう考え方なのかまだ知らない)

f:id:matchqueen:20170328193719p:plain

2.スケッチを作成する

  • スケッチ から スケッチを作成 を選ぶ。

f:id:matchqueen:20170328194651p:plain

  • 下絵と同じ面を選ぶ

f:id:matchqueen:20170328194853p:plain

  • スケッチ から 線分 を選ぶ。

f:id:matchqueen:20170328195342p:plain

線分だけで囲ってもいいけど、今回はこういう風にした。
f:id:matchqueen:20170328195211p:plain

  • 社長の顔に円を描く

スケッチ から  → 中心と直径で指定した円 を選ぶ。
f:id:matchqueen:20170328195841p:plain

円を描く。こんな感じね。
f:id:matchqueen:20170328195627p:plain

足もこんな感じにしてみた。
f:id:matchqueen:20170328195727p:plain

  • スケッチ から フィレット を選ぶ

f:id:matchqueen:20170328200049p:plain

1番目の線を選び、2番目の線を選ぶと角が丸くなる。
f:id:matchqueen:20170328200413p:plain

どれくらい丸くするか出てくるので、好きな数字にする。
f:id:matchqueen:20170328200514p:plain
この角を丸くするの、アール(R)を付けるとかいうので、覚えておくといつか役に立つかも。


丸くなった!
f:id:matchqueen:20170328200923p:plain

  • いらない線を消す

スケッチ から トリム を選ぶ。
f:id:matchqueen:20170328201034p:plain

余分な線をクリックすると消えるよ。
f:id:matchqueen:20170328201537p:plain
f:id:matchqueen:20170328201542p:plain

  • こんな感じになった

f:id:matchqueen:20170328201723p:plain

3.押し出す

  • 作成 から 押し出し を選ぶ

f:id:matchqueen:20170328202102p:plain

さっき描いたスケッチを選択する。
f:id:matchqueen:20170328202144p:plain

  • こんな感じの設定にする

距離 は、アクキーの高さになる。とりあえず1mmでいいと思うよ。
f:id:matchqueen:20170328202229p:plain

なんか3Dっぽいのができたぞ。
f:id:matchqueen:20170328202409p:plain

4.アクリルっぽくする

  • 修正 から 外観 を選ぶ

f:id:matchqueen:20170328202543p:plain

プラスチック 透明 から アクリル(クリア) を選ぶ。
確か、ダウンロードする必要があった気がするので、もしもダウンロードっぽいマークが出てたらダウンロードしてから使おう。
f:id:matchqueen:20170328203023p:plain

ここに持ってくる。
f:id:matchqueen:20170328203139p:plain

さっきの アクリル(クリア) をアクキーにドロップする。
f:id:matchqueen:20170328203414p:plain


透明になったぞ!!!
f:id:matchqueen:20170328203451p:plain

5.ナスカン的なものを付ける場所を忘れてた

ので、追加する。ボディが邪魔なら、左のレイヤーっぽい一覧の電球をクリックすると消えるよ。
f:id:matchqueen:20170329111235p:plain

  • 丸をふたつ追加した。

f:id:matchqueen:20170328203612p:plain

  • さきほど同様に 押し出し する。

この時、設定はこんな感じにするよ。
操作 結合 にするのを忘れずに!
f:id:matchqueen:20170328204135p:plain

こんな感じになるよ。
f:id:matchqueen:20170328204231p:plain
実際はもう少し大きい穴になるけど、あくまでもイメージ図だから雰囲気重視。
完璧を求めるなら完璧な寸法でやればいいと思うよ。

6.アクキーの絵を入れよう!

f:id:matchqueen:20170328204545p:plain

  • 配置する面を選択する。

このとき、実際に印刷される裏面を選択する。
f:id:matchqueen:20170328204644p:plain

  • アクキーの絵を入れる。

絵はpngで、背景を透過にしておくことを忘れずに!
f:id:matchqueen:20170328204956p:plain

  • 下絵と同じくらいのサイズになるまで拡大する。

角のアールっぽいマークをドラッグすると大きくなる。
f:id:matchqueen:20170329112116j:plain

  • 砂時計みたいなのをクリックすると反転する。

下絵と同じ向きになるように反転させよう。
f:id:matchqueen:20170329112217p:plain
ここでも反転できる。
f:id:matchqueen:20170329112501p:plain

面をチェーン のチェックは外しておく。
f:id:matchqueen:20170329112520p:plain


こんな感じになった!
f:id:matchqueen:20170329112626p:plain

7.フィレットを付ける

業界用語で面取り。角をなめらかにするよ。

修正 から ルールフィレッド を選ぶ
f:id:matchqueen:20170329215305p:plain


入力フィーチャー/面 でフィレットを付ける面をクリックする。
f:id:matchqueen:20170329215440p:plain

半径 にフィレットを付けたい寸法を記載する。
色々試してみるといいよ。私は0.1mmとかにした。
f:id:matchqueen:20170329215503p:plain


角が無くなった!
f:id:matchqueen:20170329215713p:plain

8.レンダリング

モデル を レンダリング に変更する。
f:id:matchqueen:20170329113306p:plain

  • 設定 にある シーンの設定 を選ぶ。

f:id:matchqueen:20170329113620p:plain

背景を写真にしたり、色を付けたり、明るさ変更したりできる。
お好きにいじってみて。
f:id:matchqueen:20170329113705p:plain

f:id:matchqueen:20170329113818p:plain

f:id:matchqueen:20170329113933p:plain

クラウドレンダリングが開始された。
f:id:matchqueen:20170329114016p:plain
f:id:matchqueen:20170329114041p:plain

尚、ローカルレンダリングにするとCPU使用率がもりもり上がって行く(Surfacebook i5モデルで100%になった)ので、クラウドレンダリングオススメだけど、有料の設定もあるのでご注意。
時間があるならローカルレンダリングでいいと思うよ。

f:id:matchqueen:20170329224439p:plain

  • できたー!

f:id:matchqueen:20170329224451p:plain

  • 画像をダウンロードすることもできる。

ダウンロードした画像がこれ。
f:id:matchqueen:20170329224537j:plain

角度によってアクキーっぽさ出る画像が作れるので、いろいろ試してみてくださいな。
f:id:matchqueen:20170329114615j:plainf:id:matchqueen:20170329114618j:plain

PSoCでSW入力する

この間の連休?仕事してましたよ。社畜じゃねーし。社畜は卒業したんだし。

…と、いうことで本日はSW入力したらLEDが点灯する奴をご紹介。
これやって、PSoCすげーなって感動しました。



■使ったもの。
PSoC 5LP Prototyping Kit
PSoC Creator4.0

1.コンポーネント:Debouncerを持ってくる。

右にあるタブから、Digital - Utility にある Debouncer[v2.20] を選択して、図面の中にドラックしてくる。
この便利な四角いの、コンポーネントっていうらしいよ。
f:id:matchqueen:20170327200046p:plain

2.SWピンとLEDピンを置く。Clockも配置するよ。

CLKは20Hzにする。NOTを置かない場合、SWを押したらLEDが消灯する奴が作れる。
f:id:matchqueen:20170327195917j:plain


他のピンはどこにある?って思ったら前回の記事を読もう!
PSoCデビューした話 - なるみさんの覚書


ピンをダブルクリックするとこのウィンドウが出てくるので、ここでピンの名前や設定を変えたりする。
PSoC 5LP Prototyping KitのSWはプルアップされていないので、General タブの Drive mode から Resistive pull upを選ぶ。
f:id:matchqueen:20170327201123p:plain

  • SWとLEDのピンアサインを回路図で確認して。

f:id:matchqueen:20170317121503j:plain

  • 配置する。

f:id:matchqueen:20170327201442p:plain

3.Buildしてボードに書き込む。

SWを押したらLEDが点灯するやつの出来上がり!
すごいね!プログラム書いてないよ!なんてこった!!!



コンポーネント単位でどう使うか書くと初心者向けだなって思ったので、そんな感じで次回はADCかUARTについて書こうかな。
なんかどれもこれも簡単で、すごい世の中だって思うね。

PSoCデビューした話

会社のPSoCおじさん'sがニコニコしながら勧めてくるので、「ちょっとだけ…」と足を踏み出したら面白くて沼にはまりそうになっている話。
業界ではよく見る光景ですね。

1.PSoC Creatorを入れる。

私は4.0を入れました。
DLはここから。普通にインストールをする。
ユーザ登録が必要だよ。
japan.cypress.com

2.評価ボードをPCに刺す

f:id:matchqueen:20170317121147j:plain

私は秋月で PSoC 5LP Prototyping Kit を買いました。
akizukidenshi.com

ところで秋月さんはいつまで商品名を全角英数で表現するのでしょうか。
そろそろ半角になっても良いのでは?と常日頃考えております。

3.Lチカ

さあ!何も考えずにLEDを光らせるんだ!

  • ここから評価ボードの回路図を落としてきます。

japan.cypress.com

f:id:matchqueen:20170317120829j:plain

  • 回路図を開き、PSoCの型番を確認します。

f:id:matchqueen:20170317122456j:plain

f:id:matchqueen:20170317121912j:plain

  • 型番を選択。

f:id:matchqueen:20170317123335p:plain

f:id:matchqueen:20170317123452p:plain

  • 適当な名前で保存。

f:id:matchqueen:20170317123813p:plain

  • できたー

f:id:matchqueen:20170317123942p:plain


  • ピンを図面に書きます。

右にあるタブから、Ports and Pins にある Digital Output Pin[v2.20] を選択して、図面の中にドラックしてくる。
f:id:matchqueen:20170317124234j:plain

こんな感じになる。
f:id:matchqueen:20170317124514p:plain

次にCLKを同じように追加する。System にある Clock[v2.0]
f:id:matchqueen:20170317124829j:plain

この二つを線で結ぶ。キーボードの W を押すとワイヤーが出てくるよ。
f:id:matchqueen:20170317124959j:plain

  • Clockピンをダブルクリックして、クロックを入力する。

Source を ILO(1kHz) にする。
Specify を Frequency 1Hz くらいにする。
f:id:matchqueen:20170317130346p:plain
指定したクロックで光るよ。
Source を auto にしておくとワーニングが出るので、ILO(1kHz)とかにしておけば。どんなワーニングかは自分で確認してな。

  • 左にあるタブの、Design Wide Resourcesをダブルクリックする。

f:id:matchqueen:20170317125204j:plain

こんな画面が出てくる。
f:id:matchqueen:20170317125406p:plain

  • 回路図から、どこのピンにLEDが繋がっているか確認する。

f:id:matchqueen:20170317121503j:plain
なるほど、P2_1だな!

  • P2_1 に Pin_1 をドラックしてくる。

f:id:matchqueen:20170317130135j:plain
プルダウンから選んでもいいみたい。

  • Build してエラーが出なかったら、ボードに書き込む。

f:id:matchqueen:20170317130909p:plain
Buildはこれをクリックしてもできるよ。

f:id:matchqueen:20170317131009p:plain
ボードに書き込むのはこれ。

  • ひかったー!点滅するよー!!

f:id:matchqueen:20170317131854j:plain


4.CでLチカ

Cでソースコード書いて光らせることもできるよ。
図面からクロックとワイヤーを消してPin_1だけにする。
f:id:matchqueen:20170317145918p:plain

Pin_1をダブルクリック。HW connection のチェックを外す。
f:id:matchqueen:20170317150209p:plain

ピンの外観が変わる。
f:id:matchqueen:20170317145954p:plain

右側の Source Files から main.c を選んでダブルクリック
f:id:matchqueen:20170317150315p:plain

ここにLEDを光らせるプログラムを書く。
f:id:matchqueen:20170317150428p:plain

まずは簡単に光らせたい。
ということで、100msで点滅するやつ。
f:id:matchqueen:20170317151135p:plain

Pin_1_Write(1);
これでPin_1ピンがHiになる。
0にしたらLowになる。かーんたーん。

CyDelay(100);
これで100msお休み。



次の記事で一番感動したSWの処理について書こうかなって。
元気だったら連休中にどうにか。

Altiumでアートワークデビューしたから3Dマウス買った話

タイトルですべて説明し終わった感。

最近また転職しまして。
アートワークも自分でやるようになりました。

今まではOrCADで回路図書いて、NETリスト出して、基板外形図書いて、
アートワーク屋さんに「あとは任せたで」って感じでした。
今は自分で全部できるので、
「あ、これ絶対に部品入らない」
と思ったら部品選定からやり直すこともできるのです。なんということでしょう。
(実際やった)

お高いCAD(当社比)なので大変便利で良い感じです。
初めてチャレンジしようとしたPCB-CADはCADLUSだったので、分かる方だけすべてを察してあげてください。
もちろん挫折しました。

さて、本題です。
これ買いました。3DconnexionのSpaceNavigator for Notebooks

アートワークするとき、上に下に左に右にと色々を動き回るんですよ(私だけ??)
そんなときに、いちいちマウス(私はトラックボール使ってる)で移動させるのが本当にストレスで、会社の人に触らせてもらったこの3Dマウスが大変使いやすかったので
「ああもう無理!3Dマウス買う!!!」
って叫んだその日に買いに行きました。

Twitterで買った!ってつぶやいたら、色々な人から現在は置物になっているという情報を頂き、「やばい、使いこなせるか」と不安になりましたが、問題なく仲良くやってます。


Altiumで使ってる設定はこれ。
速度はデフォルトのままです。
f:id:matchqueen:20170307150101p:plain

持ち上げると縮小
押し込むと拡大
左に押すと左に進む
右に押すと右に進む
下に押すと下に行く
上に押すと上に行く

※すべて動かす物体を基準で考えるのが肝だと思う

これ単体でマウスとして使えるわけでもなく、使えるソフトも限られてるので、ぜいたく品扱いだと思うのですが、あるのと無いのとでは作業効率が段違いなので私は買って良かった。