忍者ブログ

FrostyDesign

自分用にさまざまなものを作るページです

カテゴリー「未選択」の記事一覧

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

新型コントローラ

IMG_2750.jpg
というわけで、プリント基板化+FPGA更新して新型になりました。
なんか名前があったほうが良いかなということで
FrostyDesign謹製 FrostyCore1.0とかにしましょう。(今までのは0.9?)
既出も含めてスペック説明。
CPU SH7145 32bit 50MHz memory1MB Flash2MB
besttechnorogy BTC080 SH7145Fマイコンボード

FPGA SPARTAN-6 XC6SLX45-2CSG324C
HUMANDATA XP68-03 PLCC 68PIN Spartan-6 FPGA モジュール

インターフェース仕様
近藤科学シリアルサーボ通信仕様 ICS3.5 115kbps 6ch
プレイステーション2コントローラIF(動作確認はlogicoolコントローラのみ。正規の通信仕様より送受信間隔詰めて使用)
AD 6ch(ジャイロ×2ch(5V)、ジャイロ×1ch(3.3V)、加速度センサー3軸(3.3V)

幅57mm奥行49mm高さ23mm(足を含めると26mm)
重さ44.3g(CPU基板15.7g、IF基板25.1g、FPGA基板3.5g)
ケーブル、スイッチ、コネクタ、足とかいろいろ込み込みだと72.5g

写真
IMG_2710.jpg
CPU基板
IMG_2838.jpg
CPU側のクロックに同期してFPGAを動かすため、クロックラインを引き出してます。

IMG_2843.jpg
IF基板(今回プリント基板を起こしました)

IMG_2715.jpg
FPGA基板

IMG_2746.jpg
FPGAは外部に引き出したJTAG端子からダウンロードケーブルを使って書き込みます。

部品リスト
面倒なのでexcelファイルです。
ダウンロード(xls)


関連過去投稿

アーキテクチャ
http://frostyorange.blog.shinobi.jp/Entry/19/
ユニバーサル基板で作ったときの紹介
http://frostyorange.blog.shinobi.jp/Entry/17/
kicad
http://frostyorange.blog.shinobi.jp/Entry/21/
基板発注
http://frostyorange.blog.shinobi.jp/Entry/22/


今回作成したプリント基板は5枚作成しましたので
欲しい方がいれば実費程度にて配布します。
と言いながら今回使用しているベステクのCPUボードが現在長期にわたって在庫切れですので
中古、ストックその他でCPUボードを入手可能な方のみ提供します。

(2013/1/18時点で在庫復活しています。)
サポートはものぐさなので、それなりです。
ストックせずに使う意思のあるかた、
情報公開して有志を増やせそうな方を優先します。

提供範囲
プリント基板
kicadデータ(自分が分かればOKレベルなので状況にあわせて相談します。)
FPGAのソースコード+バイナリ(verilogです。)
動作確認用のサンプルソフト(基本的にはデバイスの動作確認レベルを想定)
部品リスト
PR

P板.com発注メモ

P板.comに発注した際の初心者としては知りたかったけど、
事前には分からず、やってみて分かったメモ

kicadから出力したファイルそのままでOK。
 P板のページには代表的なCADのガーバーデータの出力手順が書いてあるが、kicadは載っていない。けどOK。
P板.comの見積もりのデフォルトは裏面はシルクなし。
 価格も若干違うので裏面実装が少なければたしかに要らない。
基板サイズは0.1mm(小数点以下1桁)まで記入。
 見積もりではmm単位で入れたが、基板データはインチベースのミリ表記で作っているので、
 オンライン注文後、メールベースで確認後、発注確定になった。
今回のサイズでは見積もり上1~5枚まで価格が同じだったので5枚発注。
軽量化のためデフォルトより薄い基板厚を選択、1mm厚まではデフォルト1.6mmと同じ価格だった。
見積もり条件価格は下記のとおり。(価格はそのときによって変わると思うので参考)

[小計]:¥32,620
[消費税(5.0%)]:¥1,631
[注文合計]:¥34,251
[請求書送付方法]:製品同梱
[納品書送付方法]:製品同梱

【共通仕様】
[基板種類]:リジット基板
[構成層数]:4層
[外形寸法]:49.5 mm × 57.2 mm
[最小パターン幅/間隔]:0.127mm【標準】
[最小穴径/ランド径]:φ0.3/0.6mm【標準】
[レジスト印刷]:両面に塗る
[シルク印刷]:L1面
[板厚]:1.0mm
[板材]:FR-4【標準】
[銅箔厚み]:内層35μ外層18μ【標準】
[長穴]:なし
[端面スルーホール]:なし
[特性インピーダンス]:指定なし【標準】
[ULマーク]:なし【標準】

- 製造サービス ------------------------------------------------------

【案件情報】
[サービス名]:(リジット)ガーバー製造
[工場名]:台湾
[受付番号]:xxxxxxxxxxxx
[製造日数]:8 日
[製造完了予定日]:2012/08/09(木)

【基板仕様】
[製造コース]:ノーマル
[製造枚数]:5 枚
[表面処理]:半田レベラー(有鉛)【標準】
[レジスト色]:黒
[シルク印刷色]:白【標準】
[パッドオンビア]:なし
[IVH/ビルドアップ]:なし
[ルーター切り出し面付/種類]:なし【標準】0種
[ミシン目面付/最小幅]:なし【標準】 2.0mm【標準】
[Vカット]:なし【標準】0本
[ジャンプVカット]:なし【標準】0本
[データ面付け編集サービス]:なし
[オープンショートテスト]:あり【推奨】
[DXFデータ変換サービス]:なし

【見積費用】
[イニシャル費用]:¥0
[基板製造費用]:¥32,620
[製造サービス合計]:¥32,620

出来上がりはこんな感じ。
3b7fafb1.jpeg





885a8422.jpeg
 

kicad使ってみました

kicad使ってみました。というか初プリント基板設計~。
今回は今までユニバーサル基板に手配線だったのを
再設計して小型軽量化+FPGAのロジック数を増やすのが目的。
BestTechnologyのSH7145Fマイコンボード(BTC080)49mm×57mmを使用するので、
同一サイズに収める設計です。
FPGAはHUMANDATAのPLCC68サイズの小型基板XP68-03を使いました。
サイズ的に2層(両面)基板で入るかどうかなのと、
ロボット用で信号品質も気になるので電源プレーン欲しいなということで、
4層基板にしました。(4層基板作ってみたいというのもあります。)

基板設計CADの選択で候補にしたのは下記4つ
Eagle
CADLUS X
kicad
DesignSpark PCB

まずは初心者だしトラ技に特集とか載ってるし情報多いEagleかなと
思ったけど調べてみるとフリーは2層までで、有償はそこそこするしでパス。
(改めてサイトみたら、hobbyistバージョンなるものがありますね。6層までOK。手続きは..)
基板の発注先も合わせて調べていたら、海外の安い業者は2層までの対応だったり、
4層基板だとP板.comと大して変わらなかったり。
CADLUS XはP板.com縛りになるのがちょっとなんですが、
4層基板だとどっちにしてもP板に頼むことになるから良いかというのと
定期的に講習会も行われているようなので分からなければ受講する手もあるかと
思ってインストールしてみました。
が、なんだかクラシックなIFになじめず早々挫折。(VB初期のころのUI設計?)
DesignSparkPCBは日本語の情報が少ないな~とか思ってたら
kicadは日本語版が出たよ~&トラ技に特集記事があったので
kicadにして見ました。
ま、そもそもプリント基板設計が初なのでkicadがcadとして良い悪いは
判断つきません。CADLUS Xよりルックアンドフィールの設計が新しくて良いかなとは思います。

以下、初心者的感想+覚え書き。
・PWR_FLAGという概念を知らず??他のcadからの乗り換えではなく、初めてなので
 概念的な説明がチュートリアルに無いと苦しい。
・ラベルの概念自体はヘルプ読んで理解したが、どういうときにどういう使い方をすると
 効率的なのかが分からなかったので、ほとんど使わずに設計したが、後から
 他の人の設計例を見て定石踏んでないことが分かった。良い設計例があれば・・。
 (ネットを探ればあるんだけど、最初はそれを見つけられない。)
・ライブラリが少ないということは聞いていたが、今回の用途だと、
 ピンヘッダやソケットを下記サイトで生成するのでかなり事足りた。
 http://kicad.rohrbacher.net/quicklib.php

ま、そんなこんなでこんな感じの設計になりました。
基本的にIF基板なので、CPU、FPGA基板は別。
3.3Vと5Vの2電源、レベルコンバータとIF用のコネクタという感じです。

kiban002.PNG








ねじりバネの巻き方

市販のバネを購入しようとしても、適切な強さのバネを売っているわけではないので、
自作しています。

CIMG2924b.JPG
こんな感じの治具を作ります。

CIMG2929b.JPG
ネジで材料をしっかり固定します。

CIMG2930b.JPG
巻きます。

CIMG2926b.JPG
反対巻きの場合(右利きだとこっちが巻きやすいです。)

終わり。

と書くと簡単すぎですが、実際適当な性能でよければこれで十分ですし、
左右の強さがだいたいあってさえいれば効果は得られます。

まじめに設計するばあい、まずバネの設計。
東海バネさんのページで勉強。
http://www.tokaibane.com/tech/index.html

くじけそうな場合は、東海バネさん提供のツールに頼る。そのまま発注しても良い(^^;
http://www.tokaiweb.net/nejiribanet/

設計上のポイント
バネ鋼は東急ハンズで購入しました。ピアノ線とステンレスバネ線がありますが好みで。
バネとしての許容応力はピアノ線のほうが良いし安いです。
私は極力メンテナンスを避けたいのでステンレスにしています。
売っている直径の選択肢が少ないので、事前にサイズを調べてから計算しています。
この治具だと巻いた後の正確な直径は実際に巻いてみないと分からないので
仮計算して、太さを決めて、実際に巻いて直径を測ってから再度計算しています。
許容応力値を推奨値内にしないと疲労破断します。実際折れたことがあります。
が、軽量化のため高めにしてます、寿命予測は困難なのでマネはお勧めしません。
まずは許容応力内の設計をお勧めします。
どれくらいの強さのバネにするかはコンセプトにもよりますがFrostyの場合
ジャンプするために最適化しているわけではありません。
主に立っているときに自重をキャンセルし、低消費電力化とサーボの発熱を抑えるのが目的です。
ですので自重により発生するトルクの何割をキャンセルするかという設計です。
ヒザの角度によって負荷も変わるので、変動を抑えるような設計にしています。
また、サーボのトルクだけで足を縮められるようにする必要があるので
バネを強くするにも限度があります。縮める場合の計算も必要です。
計算の際は最大トルクで縮められるかではなく、縮める速度に配慮して決めています。

設計ができたらバネを巻きます。
一番最初の曲げ始めが形がゆがみやすいので、しっかりねじ止めしてから
引っ張りながら曲げていきます。
巻きすぎた場合戻して調整することはできません。
潔く捨てて、新しい材料で巻きなおします。
多少ゆがんでも材料の総長さと角度があっていれば大体同じ性能になるので由としてます。
左右で巻き方向を変えてますが、利き手があるのでやりにくい割には性能上の違いは分からず
見た目が左右対称にできるだけな気がします。

2012/8/2追記
本ブログを見てチャレンジして苦労している人もいるようなのでもう少し。
上記の方法でキレイに巻けるようになるには何回か練習が必要です。
最初に巻いてうまく行かないとくじけそうになるかも知れませんが、
4回ぐらい失敗するとある程度巻けるようになって、その後4つぐらい作って、
形状の近い2つを選別して使うという感じでした。
200円ぐらいのピアノ線で数本捨ててもまあ、その程度の価格なので、
冶具に凝るより、練習で腕を磨くほうが早いかなと思ってます。
とはいえ、Frostyに使っているぐらいの太さになるとかなりの硬くて
手が痛くなるぐらいです。最初にネジで固定するときに、素手で引っ張っても
取れないぐらいがっちり止めて、強く引っ張りながら巻いていく感じです。

FrostyCoreArchitecture

制御系のアーキテクチャを書いてみたので公開。

まずは制御系ハードウェアのアーキテクチャ

以前に写真で説明しましたが、CPUはSH7145  50MHz 。
このクラスのマイコンボードとしては1MB DRAMとメモリ多めなのが選定ポイントの1つです。
FPGAボードとは16bit 50MHzのバスで接続。
FPGA内にICS3.0仕様のプロトコルモジュールを6ch、
PSコントローラのプロトコル処理もFPGA化しています。

FrostyCoreHWArchitecture

下記は、シーケンス図です。
通常はまずソフトウェアブロック図を示すところですが、
このアーキテクチャでは
純粋なソフトウェアはメインスレッドのみで
通常、スレッド分けて実装する通信処理系をすべてFPGAで実装しています。
メインスレッドからFPGAの通信はレジスタ経由なのでほぼメモリアクセスと同等で読み書きでき、
レジスタマップがAPIという感じです。
メインスレッド1つに通信系のスレッドが7つという感じでしょうか。
ADコンバータもコントローラ側で複数chスキャンしてるので5msに一回まとめてレジスタ読んでます。
メインスレッドは5ms毎のタイマー割り込みでループしていて、これがシステム制御間隔になっており、
センサ情報取得、PSコントローラ受信、サーボ制御、全て5ms周期になっています。
Sequence





カレンダー

10 2017/11 12
S M T W T F S
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

プロフィール

HN:
FrostyDesign
性別:
男性
自己紹介:
こんなロボット作ってます。
http://frostyorange.blog.shinobi.jp/Entry/28/

最新CM

[12/27 shoudaoqinlai]
[09/16 木下@id61]
[09/16 holypong]
[07/25 IKETOMU]
[03/29 Dr.Guero]

最新TB

(03/12)

ブログ内検索

バーコード

アクセス解析

カウンター

アクセス解析

Copyright ©  -- FrostyDesign --  All Rights Reserved

Design by CriCri / Photo by momo111 / Powered by [PR]

 / 忍者ブログ