2017年1月9日月曜日

0.3mmと0.5mmの組み合わせでできる高さは?

ロボットを作っていて、高さ調節がしたい場所があったのでM3ねじ用のシム(高さ調節用の薄板)を探したのですが、モノタロウで調べても1.0mmより薄いものは0.3mmと0.5mmしかありません(JIS規格で決まっている?)。これでは高さの組み合わせのできる高さがだいぶ制限されると思ったので、Excelを使って調べたのですが、なんと0.9mm以上はすべてこの組み合わせで作れました。
参考までに2.0mm以下の高さの作り方の表を載せます。
高さ(mm) 0.3mm 0.5mm
0.1, 0.2 × ×
0.3 1 0
0.4 × ×
0.5 0 1
0.6 2 0
0.7 × ×
0.8 1 1
0.9 3 0
1.0 0 2
1.1 2 1
1.2 4 0
1.3 1 2
1.4 3 1
1.5 0 3
1.6 2 2
1.7 4 1
1.8 1 3
1.9 3 2
2.0 0 4

2017年1月8日日曜日

mbedコンパイラでの半角カタカナの扱い

バグの出る半角カタカナのコード

半角カタカナというのは日本独特のもので、あまり使用が推奨されるものではありません。しかし組み込み界隈ではマイコンにLCDキャラクタディスプレイを接続するときに内部的にたびたび使用されます。
mbed のオンラインコンパイラで半角カタカナを使ったときにはまったので載せてせておきます。

int char c0='ア;'

というコードを書いたときにc0には0xB1が代入されます。では

int char s0[]="ア";

というコードでは同様にs0[0]に0xB1が代入されるのが道理ですが、実は

s0[0]: 0xEF
s0[1]: 0xBD
s0[2]: 0xB1

と入ります。もっと紛らわしいことに上記のコードをメモ帳で書いてからmbedコンパイラにコピペすると

s0[0]: 0xB1

となりますが、1回webサイトを閉じて開きなおすと上の3バイト代入され、上の例のようになります。

文字コード(Shift JIS と UTF-8)

2つの文字コードでの半角カタカナの扱いについて説明します。
Shfit JISは組み込み界隈に限らず昔から使われている文字コードです。
UTF-8で半角カタカナがどうマップされているかはここでわかります。
おまけ
C/C++のNULLは(int)0 としてdefineされているらしいです。つまり

int *p=NULL;
*p=0xff;

なんてコードを書くとハングアップします。

エアガンマガジン用のばね

今回はばねの話です。ちなみには撥条と漢字で書く日本語なので「バネ」とカタカナで書くのは誤りという流儀があるらしいです。
ばねはばねですが今回は弾性を利用するのではなくBB弾をマガジンからチャンバーまで運ぶチューブの役割をしてもらいます。内径が6.0mmより少し大きいぐらいの長い引きばねがないかなと調べていたら「アキュレイト密着コイルばねL33」というちょうど良いものがあります。内径が6.2mm、外径が8.0mm(実際は少し小さい)がこれが500mmで2000円ほどです。ちょうど良い。
買ってみて、中にBB弾を通したところまげても良く通るので採用としたところ、加工の仕方がわからないという難点に当たりました。ちょうど130mmほどにしたいのですが、どうやって切ろう。
とりあえずコッター(バンドソー)できってみたところ下の写真のようにばねがゆがんでしまいました。
ゆがんだ端を切ろうとニッパーを使ったのですが、傷をつけることもできません。ふとラジオペンチの刃で切ったらあっさり切れました。
ニッパーとラジオペンチの刃はこんなにも力の差があったのですね。最後に端をすこしラジオペンチで整形して無事にφ8.0の穴にこのばねを通すことができました。ばねの両端はM4埋め込みボルトで固定しています。


2017年1月7日土曜日

アルミパーツの注文

僕も含めてたいていの人はロボットのフレームをアルミで作ると思います。複雑な形状のアルミパーツを作れると作れるものの幅が広がるのですが、自分で作るとなると限界が(かなり)あります。
そこで金に任せて外注です。注文さえすれば安定した品質で一定の期間で出来るのであなたのロボットライフが格段と快適になります。しかも意外と安い。

外注の手順

①作るアルミパーツをCADで作成します。」
②アルミパーツの図面を出力します。
③図面を業者に送って注文します。
簡単!

図面の作り方(①、②)

僕はSolidEdgeというだいぶマイナーなCADを使っているのですが、他でも同じなので自分の環境で説明します。
まず作りたい形をCADに起こします。このときに形は2次元的に作ってください。ポケット加工はアミエではしてくれません。また穴は確か2.0mmぐらいが限界でそれより小さな穴はほれません(炉簿スポットがφ2.4mmまで、ロボトマ・アミエは1.7mmだったはず)。また角の内側にはR1.0程度をつけましょう(図面で入れなくても加工段階で入ります)。
3Dのデータををドラフト環境で図面にします。Solidedgeでは図面も独自フォーマットが標準ですが、これを.dxf に変換して書き出します。dxfはAudtodeskのフォーマットなのですが、業界のデフォルトスタンダードになっています。
アミエのWebサイトにはdxf形式で入稿してくださいとありますが、ここで大きな罠があります。dxf 形式は別に業界標準としてくつられたものではないので結構ソフトによって読み込めたり読み込めなかったりします。
ここで使用するのがJWCadです。これは建築製図用に作られたものらしいのですが、フリーで使えるために業界スタンダードのソフトという地位を築いています。古いソフトなので操作がわかりづらいですが。JWCadで先ほどの dxf ファイルを開きます。
まず線をすべて選択します(左クリックで4時の方向に動かすと選択になります)。この後に左側の「BL解」を押してブロック化をすべて解除します。この後に保存をします(ctrl+Sでは保存にならないよう)。これで提出できる形式のdxfファイルになります。

後工程

ただの色々な形の平板がほしいだけなら今回の注文だけで用が済みますが、いくつかの後工程を組み合わせることで用途の幅が広がります。
  • 曲げ
    ベンディングマシーンを使うことでアルミを任意の角度で曲げることができます。柿で紹介するロボトマとロボスポットではベンディングマシーン(Be Gen BG20-HS)があるので曲げが行えます。曲げの設計は以下の図を見れば分かると思います。詳しくはロボスポットのHPに加工サービスについてについてがあるので参照を
  • タッピング
    ねじ穴を開ける作業です。これによりナットを使わなくて良くなるので省スペース、組み立て性が良くなります。以下にねじのピッチの表を載せます。たとえばt1.5の板にタッピングをする場合M3ではピッチが0.5mmなのでちょうど3山分ほれることになります。基準として最低2山あれば止まると私は思っていますが、少々危ないかもしれません。
    0.4mm :M2並目
    0.45mm:M2.6並目
    0.5mm :M3並目
    0.35mm:M3細目
    0.7mm:M4並目
  • L字金具
    これは後加工ではないのですが覚えておくと便利なので書いておきます。アルミ板の加工では2次元的な部品しか使えませんが、L字アングルを使うことで3次元的なものが作れます。
    あまり工作に適した小型のL字アングルは市販されていないのですがCK-100(カタログ販売サイト)というものがなかなか便利です。
  • スペーサー
    スペーサーを使うことでも3時限的な形状や機能を得られます。秋葉原ですと西川が有名ですが、ネットの廣杉計器が圧倒的に安くて品揃えが豊富です。このサイトでWeb注文ができて最低注文数量50個、2000円以下は送料がかかるという欠点はありますが、使ってみるとそんなに気になりません。

業者について

アルミ加工を安く行ってくれる業者がいくつかあるので紹介します。
  • アミエ
    圧倒的な安さを誇ります。150x180mm(実質144x174mm)の範囲に6つまでのパーツで2500円 ここまでくると色々考える前にとりあえず発注しちゃえというレベルになります。部品は他と違ってバリ取りされた状態で郵送されます。ただ個人で経営しているみたいで、たまに納期が長いのが欠点。
    A5052(1.0, 1.2, 1.5, 2.0mm)、A2017(1.5, 2.0mm) 144 x 174mm
    A5052(1.5mm)で6点以内で2,500円
  • ロボトマ
    現在アルミ加工は休業中です(機械の故障?)。後加工できる設備があり、アルミ曲げができます。
    A5052(0.5~3.0mm)、A2017(1.5, 2.0, 3.0) 190 x 240mm
    A5052(1.5mm)で6500円
  • ロボスポット
    高い、φ2.0の穴があけられない。あまり使ったことがありません。

2016年12月27日火曜日

レッグユニット基板原価計算

基板1枚の原価計算がしたくなったので今回しました。
僕はコネクタのピン配置は1ピンから順番に正電源、グラウンド、(マスター側から見た)出力、入力の順番に統一して配置しています。これは個人的な美意識もありますし、正電源が1ピン、グラウンドが2ピンに統一されることで挿し間違えによる破壊を防止する目的もあります。
しかし近藤科学のサーボモーターとのコネクタだけこの基準になっていないことに前に気づきました。サーボモーターは伝統的に信号線、正電源、グラウンドの順になっていて、僕も前にそれにしたがって基板を作成しました。
基板を作り直したくなってきましたが、同じ基板が6枚必要なもので、基板の値段が高いなら他の修正が出てくるまで待とうと思い、今回基板の原価計算をしました。以下がレッグユニットの基板です。足1本に1枚の基板を使っていて、これが足のコンポーネントに接続されています。本体のマイコンとレッグユニットのマイコンはCANでつながっています。そうすることで本体側とは4本接続するだけでよく、取り回しがしやすくなります。

パーツ一覧
\  8、チップ抵抗(470 x5, 12k x3)
\ 45、チップコンデンサー(10p x2, 0.1u x2, 1u x1, 100u x1)
\ 15、チップダイオード(RB751S-40 x3)
\ 16、チップLED(red x4)
\ 50、水晶発振子(FA238V-12MHz)
\ 50、DIPスイッチ(DIP04YLSM)
\124、PHコネクタ(S2 x1, S3 x3, S4 x1, S6 x1, T6 x1)
\  5、チップFET(2SK1589)
\100、レギュレーター(AZ1086H-3.3, AZ1086H-5.0)
\100、CANトランシーバー(TJA1051T/3)
\ 25、リセットIC(TCM809RV)
\500、マイコン(LPC1768)
\200、基板
合計1288円

以外と安い、6枚で9千円
これなら修正してもよいかな。

2016年12月25日日曜日

ガンユニット(1)

レッグユニットが完成して歩行のデモを行うことができたので次はガンユニットです。今まで書いてなかったですが、アルミ板の加工はアミエ様(http://robot.umie-marine.jp/index.html)に注文しています。A5052のt1.5で部品点数が6点まででならB5に近いサイズで1枚2500円でフライス加工してくれるという格安のサイトです。
まずCADを使って部品の設計を行います。
これをアミエ様に切削の依頼をしますと。
このように切削された部品が届きます。アミエ様はなんとバリ取りまでやってくださる。結構面倒なのに。
これを組み立てると
こんな感じになります(今回切削で注文した部品以外が結構ありますが)。
機関部とバレルはマルイの電動ガンボーイズシリーズのM4A1(http://www.tokyo-marui.co.jp/products/electric/boys/43)の中身を使っています。
マルイの電動ガンに限らず大体の電動ガンは、外形パーツと機関部に分かれています。外形パーツは商品の種類によって変わりますが、内部の機関部はシリーズで共通になっています。この中身を取り出して今回は使用する予定です。


2016年10月23日日曜日

Widthが0のポリゴンを作ってはいけない(Eagle Board)

Eagleを使って基板を使っていたのですが、最後のCAM(ガーバーデータを出力)する段階で、普段は数秒もかからないのに、ものすごく時間がかかるという現象が起きました。
下の写真のようにポリゴンが……という警告が出たのですがYesを押した後、下のようなダイアログが出た後に、一向に処理が進みません。Top Silkだけの処理で2時間置いてやっと10%進んだので20時間かかるみたいです。

さすがにおかしいと思い原因を調べたらwidthが0のポリゴンがいけないみたいです。widthが0のポリゴンを作ったら、ただの小さい正方形でも追加した瞬間に時間がかかるようになりました。
widthを保険をとって2.0にしたら一瞬で終わるようになりました。0はだめみたいです。
なおいつもベタグランドをポリゴンで作っているのですが、こちらはデザインルールの影響を受けるからなのか、Isolateの設定をするからなのか問題は無いようです。