コメを噛め

コメを噛め

rerofumi の電子工作メモ

hatena bookmark

「つみょん」マイコンボードとしての一枚目。
SSOP28 形状の PSoC4 を乗せたマイコンボードになります。

USB mini-B 型のコネクタが付いていますが、これは単なる電源コネクタとして使用しています。
PSoC3/5 の時には USB B+/B- を結線したいなー、という将来の希望的なものも含みつつ設置してます。

DSC00830

回路図
2015-03-23_014333

BOM

Item Size Num Value
C1 C2012 1 10uF
C2 C1608 1 0.1uF
C3-4 C1608 2 1uF
CN1-2 CN-2×7 2 CN-2×7
CN3 USB mini-B MUSB-5B-NE-S175 1
U1 SoC4 SSOP28 1 CY8C4245PVI

基板
DSC00831

プリント基板のガーバーファイルです。
Download: PSoC4-CPU-Prod2.zip

基板が欲しい方はこのガーバーファイルを FusionPCB なり Elecrow なりに製造依頼することでオンデマンド製造することができます。
FusionPCB で製造したときに使ったガーバーデータそのものになります。


hatena bookmark

「つみょん」のコネクタとその信号についての仕様です。

「つみょん」は主に基板の形状と、コネクタの仕様を規定するプロジェクトです。
コネクタの仕様を決定し、それにそった基板を作る事はプロジェクトの肝とも言えます。

2015-03-23_121743

CN1 と CN2 の配線は上記の図の様になっています。
CN1 の ①②④ と CN2 の ⑪⑬⑭ の赤で示されているところは電源ラインです。両方に必ず電源ラインを引き出すようにしてください。上図だとわかりにくいですが、電源ラインは点対称で配置されています。つみょん基板のコネクタは CN1 と CN2 がずれる配置になっていますが、それでも逆刺しすることは可能です。もし逆刺しをしてしまっても電源ラインがショートすることがないようにこのような配置となっています。
電源ラインには 5V と 3.3V がありますが、使用する方だけを供給し他方は NC としても構いません。
その場合、基板上のシルクに 5V と 3.3V のどちらを供給するかを記載することを推奨します。

電源ラインに隣接する 3本は緑色で示されていますが、これはシリアル通信に特化したピンとなります。
UART や SPI や I2C 等種類は問いませんがどれか 1つをこの部分に載せることができます。
CN1 の ③⑤⑥ は汎用のシリアルポート、CN2 の ⑨⑩⑪ もシリアルポートですがマイコンのプログラミングに使用します。CN2 のほうも汎用シリアルとして使えるのならばそれに越したことは無いのですが、最初に提供する PSoC4 では Xres/SWD に割り当ててしまっているので汎用シリアルや GPIO として利用することはできません。
PSoC 以外のマイコンであっても、CN2 のこの部分にプログラミング線を納めるようにしてください。

それ以外の 16本は汎用 GPIO となります。
PSoC の場合特に用途の指定はありませんが、GPIO 以外の機能として使う場合 CN2 の ①~⑧ をアナログ入出力関連に、CN1 の ⑦~⑭ を PWM 等のデジタル特殊出力に割り当てることを推奨します。

connetor_1

実際の PSoC4 基板上での信号は上図の様になります。

DSC00837
ピンコネクタは 2×7 列の足が長い「連結型」を用います。
この長いピンで積み重ねて行けるわけですね。


hatena bookmark

「つみょん」のプリント基板サイズについての仕様です。

DSC00820
サンハヤトの “ICB-90” という 45x45mm が2つ連結したようなユニバーサル基板があり、「つみょん」はこの基板の形状に準じます。

DSC00821
「つみょん」の基板基本形状は “ICB-90” の半分と同じく 45mm x 45mm サイズで、ネジ穴の位置も準じます。

DSC00822
試作の時は “ICB-90” を利用できます。

tmon_board1
コネクタは 2.57mm の標準 DIP サイズの 2×7 = 14ピン型で 2.57mm グリッドに沿う位置にアラインされます。
CN1 のある側を East、CN2 のある側を West とします。CN1 は North と South の中間に位置しますが、CN2 は DIP 1列分 North 側にずれてアラインされます。

サイズ拡張で伸びていくときは “ICB-90” に倣って、1mm の糊代を加えつつ、North 側に 2倍、3倍のサイズで延長していきます。
2倍長のときは 45x91mm のサイズに、3倍長のときは 45x137mm のサイズとなります。
ネジ穴は途中にも必要ですので、2倍長のときは 8つのネジ穴が、3倍長ときは 12個のネジ穴を用意します。


hatena bookmark

「つみょん」マイコンテストボードにて仕様として規定することとしないことです。

■ 規定すること

  • 基板のサイズ、ネジ穴の位置
  • 使用する電源
  • コネクタのサイズ、コネクタの位置
  • コネクタの電源ライン
  • コネクタピンの大まかな役割(マイコンプログラム用信号の位置など)

■ できれば準じて欲しいこと

  • 基板の向き
  • ケーブルコネクタの位置
  • ケーブルコネクタが乗る基板の面(top側が望ましい)
  • 標準サイズより大きい時のネジ穴位置
  • マイコン基板は最下層の第一層とする
  • マイコン基板は電源供給口を持つ

■ 規定しないこと

  • マイコンチップの種類
  • ソフトウェア部分
  • マイコンプログラミングの手法(SWD か JTAG か I2C か UART か)
  • 電源電圧として 5V と 3.3V のどっちを使うか
  • GPIO や ADC コネクタの使い方、割り振り方

ざっくり言って基板サイズとコネクタは規定しますが、その使われ方は規定しません。

update
Feb.08.2015 – 初版、メモ書きとして


hatena bookmark

2003年に電子工作を再開し、マイコン電子工作を初めて行ったときに真っ先に作ったのが PIC マイコンの実験をするためのテスト基板だった。
GPIO にコネクタをつないで、そのコネクタにLED等の色々なデバイスをつないでテストしたものだった。
「奏」も自分で使う用のテストボードとして作って、かなり使い倒したし。その後も事あるごとに舞コンテスト基板を作り続けてきた。
ひょっとしたらマイコンテスト基板そのものを作るのが好きなのかも知らん。

というわけで久しぶりにマイコンテスト基板を作りたくなってきたというお話。
今回はその予告までに。

board_image

コンセプトのイメージ図。
基板とコネクタの仕様が決まっている一連のシリーズで、一枚の基板に単機能をのせる。
その基板群を必要な機能に合わせて上に積み重ねていき五重の塔、七重の塔みたいにして利用する『積み上げ式テスト基板』というのがコンセプト。

Arduino系だと “BLE Nanoキット” がそういった方針かな。

DSC00818

最初は PSoC4 の自分用テスト基板として試作を積み上げているところ。
積み、だけに。

「つみょん」というのは一応プロジェクト名を作ったほうが良いかなということで付けた呼称。「積み」+「on」とかそんな感じで。
仮称なんで突然変えるかも。


hatena bookmark

Gynostemma の更新、最新版。(Ver.1.90.3)

元記事

最新版(2015/2/28): gynostemma-20150228b.zip

主に Quadcept が出力するガーバー形式に対応するための機能拡張です。

  • %AM で指定されるアパーチャマクロ型のパットに対応、ただしプリミティブ番号 21番のみ
  • 読み込んだデータの左右反転機能を追加
  • ポリゴンベタデータを含んでいるとき、パス計算ができなくなる事がある不具合の修正

ポリゴン型のパッドには未だ対応していませんので、一部ガーバーでパッドが表示されない可能性があります。

update: 2015-02-28
PCBE が出力するドリルデータが全て読み込まれない不具合を修正。
update: 2015-01-28
パターンが密集しているところで外周パスが欠けてしまうことがあったものを修正
Quadcept のパッドティアドロップで出やすかったものを対処しました、完全じゃないかも
update: 2015-01-17b
水平ミラー反転後、gcode出力時のドリルコードが水平反転していなかったので修正


hatena bookmark

Gynostemma は処理結果として 3種類の G-Code を出力する(パターン、穴開けドリル、外周カット)。
これを 1本のエンドミルを使って 1本の G-Code で彫りたいという要望を耳にした。
パターン切削と外周カットは G-Code を連結させればできそうではあるが、穴開けだけは望んだ結果ができないはずである。具体的には開けたい穴より細い刃を付きさして円を描くことになる。
0.8mm の穴が欲しいときは 0.5mm のエンドミルを使って φ0.3mm の円を彫れば良い。

なんとなく既存のクラスを拡張することで対応できそうなので追加してみた。
不具合修正最新版(2014/8/31): gynostemma-20140831.zip
ワンカッターオペレーション対応旧版: gynostemma-20140615.zip

menu1
これまでの Export G-Code の下に ‘Export One Cutter OP. G-Code’ という項目が追加されている。
これを選択して、出力先ディレクトリを指定するとツール(ドリル刃)毎のサイズを指定するダイアログが開く。

toolpref-1
Gynostemma ではドリルの径を扱ってこなかったので、ここで始めて指定してやる必要がある。
ツール番号と穴のサイズについては設計した CAD の方に因るので、実際の数値はそれを参照して入力すること。また、カッターのサイズはパターンカットと異なる場合があるので、ここで改めて指定する。

ncvc_view
すると G-Code ファイルが 1つだけ作成される。
これを NCVC 等で確認すると、パターンカットと穴開けと切り抜きが連続していることがわかるはずである。

update:
2014/8/31 – ワンカッターオペレーションのドリルパス生成にバグがあったので修正


hatena bookmark

DSC00575
パテなども使ったので外見として色が統一されていないし多少のデコボコも存在している。
これをエアブラシを使ってサーフェイサーと塗料で仕上げていく。
実はエアブラシ初体験なのでその修行。

DSC00589DSC00591
塗装し終えた。

DSC00590
パテで埋めた角の部分もそれなりに仕上がっている。
DSC00592
デカールも張ってみた。
デカール保護のためにこの上にさらにクリアも吹いている。

DSC00619
DSC00618DSC00621
そんなこんなで一通りの完成である。
上辺がボロボロだったり作りが甘いけれども、個人的には修行的作業ということでそのへんはご容赦。

DSC00622
ちょっと大きめのケースを 3Dプリンターで自作するといった趣向のプロジェクトだった。
やっぱり3Dプリンターだと細かいものが作れて便利で、ケースの縁にキーボードを引っかけるツメを作ったり、上記写真の様なネジ間を押さえる部品とか本当にちょっとしたパーツを作るのに役立ってくれた。

最近は i686 アーキテクチャのマザーボードも小さくなっているし、そういった Windows マシンもキーボード一体型で作れそうな雰囲気である。
皆もぜひ作ってみてほしい。


hatena bookmark

DSC00560
pcDuino 基板の他に USB HUB も組み込みたいので、安価で小型な USB HUB を買ってきてそれがはめ込める様なケース部分を作成。
USB HUB をケースにあてがって「セメダイン スーパーX」でべたべたと固定してしまう。
DSC00561
外部から見るとこんな感じ。

DSC00565
pcDuino 基板部分と USB HUB 部分以外は現物合わせでサイズを出して出力。
結果として四分割になった。
この頃はキーボードがはまり込むようにツメもつけてあってちゃんと乗せられる箱になっている。

DSC00564DSC00562
このままだと3Dプリンターの積層跡が丸見えだったり、3Dプリンター出力品特有の反りによって隙間が空いてしまったりで今ひとつ完成度としては高くない。

DSC00572
そこで、箱の五面に化粧板としてプラバンを張って表面を仕上げていくことにした。
やはり「セメダイン スーパーX」でべたべたとプラバンを貼り付けていく。

DSC00576DSC00584
角の部分は丸みをつけてしまった関係でプラバンで覆えなかったりする。そういった隙間が空いてしまったりしている部分はパテで埋めてヤスリで仕上げていく。
段々普通の工作になってきた。

DSC00577DSC00582
途中途中の写真でパーツ間に隙間が空いている残念な光景が見られると思う。
繰り返しになるが、これは3Dプリンターで出力する際に樹脂が冷えて縮んでしまうことによって生じる反りである。
この反りと反りで隙間が空いている部分は内側に「セメダイン スーパーX」を流し込んで目地埋めしていく。
どんだけ「セメダイン スーパーX」好きなんだよというくらいに多用していく姿勢。


hatena bookmark

DSC00553
キーボードの準備ができたということでその下部、pcDuino が収まるケース部分を自作していく。
その下の箱をどうやって作るのかについては色々と考えた。単に箱を作るだけだからプラバンやアクリル板で組んじゃってもいいし、わっかを作って上写真にある分解前の底パーツを底上げする形で箱にしちゃっても良い。
でもやっぱり 3Dプリンターで作成していくことにした。
理由としては上記写真の様に側面に緩いRが付いていたことにある。この部分を手で切削できる自信がなかったと、穴開けとか面倒な部分があるんなら CAD で設計したいなということで。

DSC00555
キーボードの奥行きを実測しながら、どれくらいの奥行きと高さにするべきかを出力しながら作っていく。

DSC00556
小さく小さく試作を繰り返しながら少しずつサイズ検討を重ねていく。

DSC00557
奥行きと深さが大体定まってきて、pcDuino を納めるのに丁度良いサイズを見つけたあたり。
この時はサイズのあたりをつける作業なので、3Dプリンター特有の出力中冷却による歪み、曲がりに付いてはノーケア。よく見ると曲がっていたりする。

DSC00558DSC00588
そして本番出力。
普段は底面としてテーブルにくっつける側面部分をわざと天井に持ってきているのは、出力中の冷却歪みを避けるため。テーブルに接した面がどうしても歪んで反るため重要な部分を上に持っていくという作戦。
このために meshMixer のサポートモデル(枝みたいに伸びている支え)を利用している。
サポートの直上になる面(この写真では天板の底)はどうしてもボロボロに荒れるけれども、このケースの場合は内側にあたるので見える部分じゃ無いし良いか。という割り切り。

DSC00559
基板をネジ止めする穴もバッチリで、良い感じのケースに仕上がった。