2017年1月31日火曜日

秋月のHPで商品の場所と在庫が表示されるようになった。

秋月は商品の数が多くて買うものが決まっていてもなかなか物が見つからなかったり、探した挙句探しているものが店員さんに言わないと出てこないものであったりすることで有名ですが、気づいたらHPに商品の場所が表示されるようになっていました。
もう店員さんに商品の場所を聞く必要はなさそうですね。表に出ていない(レジで店員さんに言わないと出てこない)商品については売り場の欄に「お問い合わせください」と書いてあります。

2017年1月26日木曜日

Raspberry Pi3 RSケース用の拡張基板

Raspberry Pi3用のケースはいくつかありますが、2番目ぐらいにメジャーなのはRSの作っている「拡張ボードケース」なのではないでしょうか。個人的にはカクカクしていて、丸いデザインの公式ケースよりも好きです。
拡張ケースなので、簡単に拡張ボード(Arduinoでいうシールド)を自作して付けたいのですが、内部の形があまり公開されていないし、色々と罠があるので、ここで注意点を書いておきます。
  • ①すべての拡張ケースがつくわけではない
    内部は狭いので基本的にほとんどの拡張ボードは入らないと思います。例えば秋月のRaspberry Pi用ユニバーサル基板は入りません。
  • ②ふたと干渉する
    ふたの裏にはPiカメラ用の突起がありましてそれが拡張ボードと干渉します。
  • ③CPUとLANコントローラーの部分は穴を開ける。
    ここに放熱シンクを付ける人が居るので開けてみてもよいでしょう。個人的にあまり放熱の必要性を感じて居ませんが、どこかしらに穴を開けておかないと、拡張基板をRaspberry Piから取り外すのが大変困難になるので、開けましょう。
これらを考えると以下のような形になります。1枚目は外形、2枚目は穴とCPU、LANコントローラー用の穴の寸法図です。穴ですが、ふたの突起がφ2.0mmなのですが、余裕をとってφ2.8で私は作ります。図中の横線はRaspberry Piに装着したときに中心に成る位置です。


Raspberry Pi用ロボットボード

今回RSの拡張ボードケースに収まるボードを作成しました。Raspiをロボットに組み込むときに必要となる6つの機能を入れたものです。
  • 電源
    12V→5VのDCDCコンバーターを入れました。私の作っているロボットは12V電源が通っているので、それに適合できるようにしました。またRaspiそれ自体にはUSB-Bコネクタしかないので、ロボットに適した、JST-PHコネクタを付けました。
  • シリアルポート
    本来ネットワーク越しにSSHでつなぐという方法でRaspberry Piにアクセスできますが、ロボットは移動するので安定してネットワークにつながっているとは限らないので、有線でターミナルに接続できる必要があります。なお、今回シリアルポートとRaspberry Pi本体はAnalogDevicesのMカプラで絶縁しています。
  • RTC
    Raspberry Piは大体PCについている機能はあるのですが、RTCだけはついていません。RTCモジュールとバックアップ電池を搭載しています。
  • EEPROM
    RTCがI2Cでつなぐのでおまけに付けました。使う必要性をあまり感じませんが。
  • フルカラーLED
    Raspberry Piの実行状態を把握するために使います。
  • スイッチ
    Raspberry Piのシャットダウン等の用途を想定しています。
まだ実装はしていないのですが、テスト基板(下3枚目)で大体動作を確認しているので動くはず。RTC用の電池は表に入らなかったので基板裏に入れています。実は秋月のCR2032用のケースは本来のスペースよりも厚いので、この電池ケースを実装するとわずかに基板が傾くのですが、実用上は許容範囲内です。

2017年1月16日月曜日

ガンユニット(2) 6mmBB弾用マガジン

マガジンを自作する必要性

ロボット搭載用のエアガンを作っているのですが、実はエアガン本体以上に面倒なのがマガジンです。エアガンはマルイの「電動ガンボーイズ」のものを使うと決めています(下図は電動ガンボーイズシリーズのM4A1 5000円ほど、東京マルイWebサイトより)。理由ですが、まずマルイは日本で圧倒的な販売数を誇るエアガンメーカーです。販売数だけでなく性能も品質もピカイチです。18禁物(条例の制限による)だと威力が強すぎるので、これにさらに10禁物という条件を足すとこの「電動ガンボーイズ」一択になります。これのマガジンですが(下図、同)実銃の形をまねているので複雑な形状になっていて、自作のフレームと組み合わせるのが困難になります。


困難な形を設計するだけなら良いと思い作ったのですが設計してから致命的な欠陥に気づきました。このマガジンは横にすると給弾できません。内部を開けたものが下の写真ですが、下側の外形フレームに入っているディスク状の部品の内部にぜんまいが入っていて、これを事前にまくことで、円筒のとげが回ってBB弾を供給するという仕組みになっています。
しかしこれをロボットに組みつけようとすると。下の図のように横向きになってしまいます。横向きになるとディスク状の部品のとげにBB弾が十分に供給されなくなります。この状態になるとぜんまいが一気に空回りをしていまい、それ以降給弾できなくなります。

今回作成したマガジン

ここで自作のマガジンを作ることにしました。上記のものはぜんまいを動力に巻きますが、制御のしやすさから電動にすることにしました。ステッピングモーターは秋月のMDP-35Aで、モータードライバはTB6608を使います。CADの図を下に示します。下の上から見た図を見るとわかりますが、ほとんどがt1.5の薄板をt2.5のスペーサーを使って重ねて行くという方式で作っているので、生産性は抜群です。

内部のBB弾の流れを下に示します。上部が弾をためておくところでおそらく100発ほど入る設計です。中央にあるとげのついた円盤をステッピングモーターでまわすことによってBB弾を掻き分け、赤い矢印の道を通して流していきます。
 主要な寸法を下に示します。ちなみにBB弾(6mm)が流れる部分の板と板の間の幅は6.5mmにしています。とげの大きさは割りと適当です。たぶんまり考えなくても動く?
 今回もうエアガン全体は組み終わっていて射撃のテストは成功しました。また今度動画をあげようと思います。

2017年1月10日火曜日

6脚歩行ロボット、歩行動画


現在作成している6脚歩行ロボットですが、実は2016年の9月には歩行ができるようになっていたのですが、ここに動画を入れてなかったので入れます。思った以上にスムーズに歩いてくれて感動しました。
ロボットにRaspberry piが積んであり、それの無線LANでコントロール用のPCとつながっています。PCにジョイパッドをつないで人の手で操作しています。
ロボットにWebカメラが積んでいて、その映像をリアルタイムで見ながら操作できます。

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の穴があけられない。あまり使ったことがありません。