忍者ブログ

FrostyDesign

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

[PR]

×

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

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








PR

ねじりバネの巻き方

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

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





走行動画

まずは素の特性を良くしてからフィードバックと思っていましたが、改良したらジャイロによるフィードバック無しで最高速まで加速できるようになりました。



300fpsの映像です。一応ちゃんと浮いてます


こっちは加速後、減速して止まるまでの動画

続・コントローラボード

コントローラの電源を変更した際にばらしたので写真とって見ました。
IMG_1036.jpg電源ケーブル込みなこともありますが、
ちょっと重い108.6g

コントローラボードは3段構成になっていて




IMG_1022.jpg一番上は
ベステク BTC080 SH7145Fマイコンボード

http://www.besttechnology.co.jp/modules/knowledge/?BTC080%20SH7145F マイコンボード

FPGAとクロック同期するためのクロックのラインがなかったので
CPUの足から取ってます。

IMG_1025.jpg一番下は
FPGAボード(ヒューマンデータ XCM-301-200)
http://www.hdl.co.jp/XCM-301/index.html
FPGAで
ICS3.5仕様シリアル通信モジュール6ch
プレステコントローラ通信モジュールを組んでます

ICS3.5仕様シリアル通信モジュール
はISC3.5といってもコマンドは3バイトのみ対応、ボーレートは115kbps固定としています。
(ICS2.0のサーボも使っているため)
FIFOバッファ付でCPUからは複数コマンドを連続書き込み可能で
FPGA側でタイムアウトエラー回避のため1ms間隔で送信します。
受信結果も複数コマンド分レジスタに蓄積し、エラー情報とセットで
連続して読み出せます。
CPU側では多重割り込みを使うことなく6ch×3サーボを5ms毎にタイマー割り込み1回で送受信しています。

IMG_1031.jpgIMG_1030.jpg





中間段は
電源、レベル変換、外部へのコネクタになっています。
電源はDCDCコンバータでRecom R-783.3-1.0
http://www.bellnix.co.jp/pdf/C_R-78.pdf
http://jp.rs-online.com/web/p/dc-dc-converters/6727120/

レベル変換は
サーボの制御信号が5Vの半二重なので方向付5v-3.3v変換で
TI SN74LVC1T45 です。
http://www.tij.co.jp/product/jp/sn74lvc1t45

ちょっとパスコンが多めなのはデバッグ中におまじないで
入れたためで、多分もっと少なくても大丈夫です。

#FPGAのソースコード提供するから
 誰か基板起こして小型軽量化してくれないかな~。

カレンダー

02 2017/03 04
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 31

プロフィール

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]

 / 忍者ブログ