2012年6月12日火曜日

KOZOS EXPBRDの最終組み立て (廣杉計器さんのスペーサが届いたので組み立てた)

先日のアクリル発注に引き続き、廣杉計器さんからスペーサを購入しました。
廣杉計器さんは、個人相手でも取引してくれる上、最小発注数は50からと敷居はとても低いです。
今回で言うと、豊富なスペーサの中から選んで発注できるのが嬉しいです。

水平方向の検討は先日の記事のとおりですが、今回は高さ方向です。
今回はひとまずノギスで測って実測ベースでスペーサを選定しました。


以下のように、どこに何が入るのかを整理します。
きちんと書いておかないと、発注漏れとか平気で起きてしまいます。



発注して翌営業日には届いていました。

最小発注数は50ですが、例えば4箇所止める設計で10台も作れば40個です。
個人でも使いきれる数量ですね。


KOZOS EXPBRD #00は、秋月電子通商のH8/3069Fネット対応マイコンLANボードを裏返して使う設計です。
土台が以下のような感じで完成します。


その上にKOZOS EXPBRD #00が載ります。


組み立て完成時の写真がこちら。


結構分厚いです。


基板設計だけならまだしも、外装を考え始めると色々と別の事も考えなくてはいけません。
電気と機械の関係を考える事で、今まで出来なかった新しい事も出来そうだなぁと考えています。

暫くは「外装を考える価値を見出せない基板設計はしない」というポリシーを持とうかと考えているところです。

2012年6月6日水曜日

SDカードからブートしたKOZOSを使ってニジマス君を動かす

KOZOS EXPBRD #00のハードウェアデバッグのためにジャンクコードを量産しましたが、
集大成として(←何の?)ニジマス君をロータリーエンコーダーを使って動かすテストをしました。

まぁ、テストというよりもネタです。
すみません。



SDカードからブートできるようになったので、パソコンいらずでKOZOSを起動させる事ができます。
テストプログラムでは、DRAMを使っていますので巨大なプログラムでも余裕でロード可能。

mp3デコーダチップを使ってスプラッシュサウンドを出力したり、赤外線リモコンを使えます。
ありきたりですがmp3プレイヤーとかを作ってみるのが楽しいかも。

デバッグ用の基板実装にスイッチサイエンスさんから入手したリフローグッズを使おうと思ったのですが、「部品実装のデバッグ」より「基板設計のデバッグ」を優先させたので、結局できませんでした。

何台か作る時には是非試したいなぁ。

2012年6月5日火曜日

EAGLEの図面からアクリ屋ドットコムさんに頼むアクリル外装部品のサイズを簡単に得る方法

この記事やあの記事で外装に関する話題に触れたわけですが、基板との関係に触れていない事に気付いて簡単に紹介してみたくなりました。

EAGLE V6からは、新しく基板上のコンポーネントのサイズが計測できるようになりましたが、実際に試してみたところ、現状では実際の設計に役に立つ動作をしているように思えませんでした。
EAGLE内で完結して外装まで注文できる形になると良いのですが、あまりうまくいきません。

ここではEAGLEで基板設計した後で、アクリ屋ドットコムさんに頼むアクリル外装部品のサイズを簡単に得る方法を紹介する事にします。

まず初めに、EAGLE上でボードファイルを開き、dxf.ulpを実行します。


オプションダイアログが表示されます。
3つのチェックボックスの全てのチェックを外して下さい。
これは、後で用いるRootPro CAD Freeの動作と関連があります。


OKボタンを押したら書き出しが実行されます。
次に書き込んだファイルをRootPro CAD Freeで読み込みます。


オプション選択ダイアログが表示されますが、デフォルトのままで構いません。


読み込みが完了すると以下のようにEAGLEのボードファイルで見たような画面が表示されます。
これで下準備は完了です。


さて、アクリ屋さんですが、セミオーダー加工時に指定可能なサイズは0.5mm単位となっています。

基板設計時に明確に決めておかないとズルズルとインチ系のままになっている事が多いわけですが、今回の基板も例にもれずインチ系のグリッドに穴やら基板外形が乗っています。あらら。

この場合、完璧主義に陥ってインチ系でぴったり合うようにフルオーダーしても良いのですが、費用対効果がバランスしないでしょう。

今回の場合、基板設計時点でぼんやりと外装アクリル付けようかなぁと考えていました。
以下がその時のスケッチです。


スケッチと言うにはお粗末ですが、それでもスケッチはスケッチです。
このスケッチは「アクリ屋ドットコムさんのセミオーダー加工で対応可能な範囲だ。」という事を示唆しています。

さて、アクリルの穴位置と外形は、先に述べたように0.5mm単位での指定になっています。
先ほどインポートしたCADデータとスケッチを基にサイズを決めていきます。

図形メニューの寸法から長さ寸法を選択します。


インポートした図面の穴位置中央にカーソルを持っていくと、センターが取り出されます。
うーん、これは便利だ。

基板端からの計測ももちろん可能です。
もし、基板端が図形として期待通りに認識されなかった場合、EAGLEでの書き出し時にチェックボックスの選択を外したかどうかを確認して下さい。


ここからがポイントです。
セミオーダーフォームから色々試してみたところ、以下の事がわかりました。
アクリル板端からの話はどこにも書いていなかったような・・・。
  • アクリル板端から4mmの位置に対して、直径3.2mmの穴をあける事ができない。
  • アクリル外形や穴位置の指定は0.5mm単位である。
  • 穴系は0.1mm単位で幅広く選ぶ事ができる。
上記を踏まえて、以下のような基板に対してどうすべきか考えました。

  • 基板外形はいったん無視。穴位置の関係さえ守れば基板とアクリル板は結合可能である。
  • 0.5mmグリッドに乗らない穴は、近い位置に丸めてアクリル加工穴とする。
  • 近い位置に丸めた穴は、本来の位置とのズレを吸収する意味で穴径を大きくする。
以下が設計した内容です。

今回は基板の中心を原点と見做してアクリル外形サイズを少し大きめにとりました。
期待した穴位置には設計ルール上の制限で穴が開けられない事がわかったからです。

重要なのは、基板にあいている穴の相対位置の関係を維持する事ですね。
これさえ外さなければ、絶対に作ったアクリル板の穴位置とズレる事はありません。

最後にアクリ屋ドットコムさんのサイトで設計した後、出てきた図面を基に検証します。
いくら安いとはいえ、加工枚数が少なければ一枚1000円近くします。
一発で決めたいですよね?

試しに検証してみましょう。

例えば、水平方向を見ると基板側では96.52mmとなっています。
概ね96.5mmと見做す事ができるので、設計したアクリルの穴位置を計算して
110.5 - (7.0 * 2) = 96.5mmとなり、期待通りというわけです。


垂直方向を見ると、50.80mmなので、概ね51.0mmと見做します。
設計したアクリルの穴位置を見ると61.0 - (5.0 * 2) = 51.0mmとなります。
本来の穴位置に対しての誤差は51.00 - 50.80 = 0.2mmとなります。

中心位置が外側に0.1mmずつ広がっていると考え、穴径は基板側の3.2mmに対して
0.1mm拡げた3.3mmを直径とすれば、「まぁ入るでしょ」という計算です。

ロータリーエンコーダーの穴位置は、止め穴から内側へ5.08mmという基板設計側の情報を基に決めてあります。
これも双方の穴位置の関係が命なので、アクリル外形に惑わされないようにするのがポイント。

ずいぶんといい加減なもんですが、こんな感じで
  • EAGLEからRootPro CADにデータを渡して
  • RootPro CAD上で手軽にサイズ測定して
  • アクリ屋ドットコムさんに発注
という一連の流れが完成です。

切断端面の加工に細目仕上げを選択して5枚の製造を依頼しました。
お値段は以下のように一枚約800円です。


私は自宅に機械加工の道具を持ち合わせていません。
自分で苦労しながら穴をあけて残念な感じになる事を考えると安いものです。

2012年6月2日土曜日

KOZOS EXPBRD #00のハードウェア動作確認完了

今回はチマチマと部品を付けながら暢気にデバッグしたのですが、
最後まで残ったデバイスの動作確認を完了し、大きなバグもなく一安心となりました。


ハードウェアデバッグ用にジャンクコードを量産したので気持ちが悪くなっています。
ハードウェアは問題なさそうなので、今度はファームウェアの設計です。

今回のボードの主な搭載部品をもう一度挙げておきます。
  • 122x32ドットのモノクロ・グラフィック・ディスプレイ
  • マイクロSDカード・スロット
  • 2つのLED
  • 2つのスイッチ
  • ロータリー・エンコーダー(赤と緑のLEDを内蔵、プッシュスイッチ付き)
  • mp3エンコーダー・チップ
  • ステレオ・フォン・ジャック
  • 赤外線受光素子
結構盛りだくさんに色々出来ます。


合体させる側のボードにはLANも付いているので色んなアプリケーションが考えられます。
こうなると下回りをきちんと整備する事がポイントになってきますね。

「KOZOS EXPBRD #00でKOZOSをしゃぶりつくそう!」みたいな企画も考えています。
どこでどんな風にやろうかなぁ。

あと、どうでも良いのですが・・・。
今度からプロジェクト名に#記号は使わないでおこうと思います。
これは今回の反省点。

Twitterではハッシュタグとして間違えられるし、TracやRedmineではチケット番号として扱われてしまいます。
正しく名前を書こうとして意図していない結果を生むのも考えものです。

2012年5月31日木曜日

KOZOS EXPBRD #00のSDカードスロットを使ってKOZOSを単独稼働システムに仕立てる

KOZOS EXPBRD #00には、SDカードスロットがあります。
設計当初からKOZOSを単独稼働システムとして楽しめるようにしたいなぁと考えていました。

従来はパソコンからブートローダ経由でOSイメージをRAMに転送して実行していたわけです。
この場合、KOZOSを起動するためのパソコンが必ず必要です。
これでは、組み込みシステムとして稼働させるために隣にリッチなパソコンが存在するという矛盾した状況を生んでしまいます。せっかく組み込みの雰囲気を楽しんでいるのに、少し残念な感じがします。

そこで、SDカード系統のハードウェアデバッグも兼ねてSDカードブート機能を実装してみました。
下の動画でSDカードブートの様子を御覧下さい。




パソコンなしでもリセットスイッチを押すだけでOSイメージをRAMに展開して実行してくれます。
まさにデモする時にボード一つで実行可能。
実際の組み込みシステムの雰囲気に近づくというわけです。

KOZOS EXPBRD #00には、LCDもスイッチもLEDもあるので、複数のブートイメージを用意しておいて、ユーザインターフェースを使って起動モードを選択させたりといった事もできるでしょう。

ちなみに、FATファイルシステムはChaNさんのPetit FAT File System Moduleを使用しています。
うーん。ありがたやありがたや。

KOZOS EXPBRD #00の動作確認進捗状況

先日の記事で取り上げたKOZOS EXPBRD #00ですが、基板も上がってきてユルユルとデバッグしています。

今回は外部の基板とドッキングさせるので、基板の外形寸法の検証から。


アイキャッチを入れるのも「そういえば初めて」なので、しげしげと眺めて楽しんだりしています。

ビアのドリル径ですが、今回は0.3mmで設計しました。
「ニジマス君」の周囲にあるドリルは、両面のグランド層を繋ぐビアです。
ビアのドリル系を0.3mmにしただけで随分と配線が楽になりました。

そういえば今まで結構大きいドリルを使っていた事に今更気付いたりしています。
BlackTank LPC1769なんて、配線が多いのに0.6mmだったりしました。
そりゃ配線が大変なわけです。気を付けよう・・・というか気付いて・・・。


H8のボードとドッキングして使用している様子は以下のようになります。
外形寸法はドッキング対象のボードと同じなので、コンパクトに持ち運べます。


使用感を共有するために動画を作ってみました。
動作は全てハードウェアを確認するためのジャンクなコードによるものです。
ブートローダの書き込みとOSの転送にはkz_xmodemとkz_h8writeを使用しています。

LEDをチカチカ。


ロータリーエンコーダをクルクル。


グラフィックLCDをテコテコ。


赤外線リモコンをピコピコ。


実デバイスが複数搭載された基板を制御する場合、それなりの枠組みを用意する事になります。
KOZOS EXPBRD #00は、組み込みシステム開発特有の世界をKOZOSを使って体験する事を念頭に設計しました。

KOZOSは、必要な事を最小限のコードで実現してあります。
こういったOS教材は今までになかったので、非常に面白いなぁというのが以前からの印象でした。
KOZOS EXPBRD #00と合わせて使ってみて、面白い題材になっている手ごたえを感じます。

2012年5月21日月曜日

ACB-BF592とUMB-SSM2603のベース基板を設計する

金子システム株式会社さんのコンパクトで高性能なDSP基板ACB-BF592の準備を随分前の記事で始めたわけですが、なかなか納得のいく進め方を見つけられずに放置状態でした。

先日のKOZOS EXPBRD #00を考えるうちに「こんな風にやってみようか。」という方針を自分の中で決める事ができたので前進開始です。

第1段階として、オーディオ・コーデックが搭載された基板UMB-SSM2603も使って、オーディオ・プラットフォームの実験用基板を設計する事にしました。

設計時に考えた事を列挙すると・・・
  • 2つのモジュールのコンパクトさを生かそう。
  • UARTブートのためのインターフェースは最低限欲しいなぁ。
  • バス・パワー動作させたい。
  • 使う時に楽しめるようにプチ・ディスプレイを搭載しよう。
  • ハードウェア・スイッチはアプリケーションによって要求が異なる。リモコンにしてしまえ!
  • SDカードでブートできたら嬉しいなぁ。
  • リセット・スイッチくらいはいるだろ。
  • 基板製造費用は安く抑えたい。
  • その他。
こんな感じでうだうだ考えて一日。
設計完了した基板は以下のようになりました。


ハードウェア・スイッチを取り除いたお陰でコンパクトに仕上がっています。
そして、遊べるようにディスプレイを付けておきました。

UARTインターフェースとSDカード・スロットは、UMB-SSM2603の下に隠してあります。
シンプルな見た目とは裏腹にというのが、設計の裏コンセプトです。

このベース基板を使えば、これ一つでDSPを気軽に楽しめちゃうという算段。
金子システムさんの安価なDSP基板シリーズのお陰で、気軽に始められるのが嬉しいです。

さて、コンパクトさを生かす設計には、基板製造費用を抑制するという効果もあります。
FusionPCBでは、基板外形の最大寸法で費用が決まります。


今回の基板の外形寸法は、約92x62mmなので、10cm Max * 10cm Maxで収まり、+$15.00で済みます。これが、仮に横方向15cm以上となるといきなり+$60.00です。

DSP基板がコンパクトなお陰で、ベース基板も安く設計する事ができるのが嬉しい限り。
少し寝かせて基板製造工程に進む予定です。