デジタルオシロ、買っちゃったぁ(笑)

そういうワケで、こんなお仕事やるなら必須アイテムの一つであるデジタルオシロをゲットしやした。モノはこんな奴。

LeCroy WaveRunner LT584L

仕様はこんな感じ。

  • 4chデジタルオシロ
  • 帯域1GHz
  • 最高サンプリングレート4GSample/Sec(単発動作時)
  • 等価サンプリングレート50GSample/Sec
  • メモリ8Mワード(2ch動作時)、4Mワード(4ch動作時)
  • 画面サイズ8.4インチ

ちょっと派手なスペックに見えるかもしれませんが、2001年製のおかげでゲット金額は税込13万円程。最近の格安デジタルオシロが新品で買える値段だけど、この仕様はそうそうないでしょー(笑)。

一応、大手家電メーカーの社内校正ラベルが2014年だったので、とりあえず信じるコトにしといてます(^_^;)。プリンタも付いてるけど、紙はもうないし使わないので無視。軽く落とした雰囲気もなくはないけど、動作としては無問題。

で、なんでこれを選んだのかなんですが、まずHブリッジのゲートのオーバーラップの確認をリアルタイムでやろうと思うと4chが必須なんですね。本当はブラシレスやろうと思うと6ch欲しいけど、そんなもんは夢のまた夢なので、とりあえず4chで我慢。

帯域は、マイコンのクロック周りのチェックをやるとすると、今使ってるのでも16MHz発振ですから、その7倍高調波ぐらいまではないと矩形波にならないので、軽く100MHz以上はないと話にならないワケです。今後はさらに上昇するコトを考えると、少なくとも500MHzは欲しいなと。

サンプリングレートは、当然基本的には単発現象でチェックしますから、この周波数のさらに4倍以上は欲しいよねって感じですかね。なので、あっという間にGSample/Secオーダーになっちゃうんすよ。

あと、ちょうど上記の写真の画面にもあるんだけど、こういったシリアルデータのサンプリングをやった時に、一発でパケットの大半をキャプチャ(黄色い方)して、あとで拡大(オレンジの方)して細かいトコを(デジタル的にもアナログ的にも)見ていきたいので、Kワード単位のモノはハナからアウトオブ眼中なワケです。トリガ条件をあんまり厳密にしなくても、とりあえずキャプチャしてから考えればイイので、ラクチンなんですよね(^_^;)。

で、そんなスペックのモンを現行品で買おうもんなら、軽く100万円は吹っ飛ぶワケですわ(爆)。この世界、事実上の青天井なので、上を見始めるともうとんでもないコトになります。数百万円とかザラですからね。

ところが、世界の有名メーカー製のこの辺のスペックっつ〜のは、実はもうすでに10年ぐらい前には達成してるワケです。であれば、その当時の最新モデル(=10年落ち)ぐらいのを探せば、まぁソコソコの値段で買えるだろうなという感じなんですね(^_^;)。

このオシロのメーカーであるレクロイってのは日本ではマイナーですが、結構ハイスペックのオシロを多数出してるトコなんす。しかも、オプションも結構豊富で、電流プローブとかも専用品を出していて、接続するだけで自動的に電流表示に切り替わったりします。次は電流プローブを探してますが、コレだと専用品が見つかれば非常に簡単に扱えるんですよね…その代わり、超高価ではありますが(^_^;)。

無論、難点もいくつかあって、まずデカい(笑)。いや、画面がデカいのはイイんですが、奥行きも30cm以上あって結構嵩張ります。おまけにウルサイ。デッカイファンがブンブン回ってます。そりゃ2001年の頃の技術でこんなスペック叩き出そうと思ったら、放熱しないとどうしようもなかったでしょうからね(^_^;)。

あと、あの当時の流行だった気がするのですが、バーチカルの操作系がチャンネル毎になっていないのは意外と辛いんですよね。毎回チャンネルを選択してからでないと操作できないので。

でも、一応ある程度の算術演算機能も持っているみたいなので、おいおい色々に使っていこうかなと思います。将来、多少でも余裕ができたら、もっといい奴に置き換えていけばイイわけですし。

とゆーワケで、ヲイラの相棒追加のお知らせ(又の名を、見せびらかし)でした(笑)。

 

カテゴリー: なんか作る, マイコン, 電子回路 | デジタルオシロ、買っちゃったぁ(笑) はコメントを受け付けていません。

Kinetisという楽しいマイコン

ここんとこ、お仕事も絡んでマイコン弄りをやってる時間がまた増えてきた。これは自分にとっては非常に楽しい時間なんだけど、たぶん普通の人から見たらワケわからないんだろーなとも思う(^_^;)。おまけに、扱ってるマイコンは巷で販売されてる基板に載ってるような奴ぢゃないしな。

で、折角なのでここんとこずっと使ってるKinetisのマイコンをちょっと紹介してみようかと。

試作中の基板

モノはFreeScale…今は買収されちゃってNXPになっているが…が出してるKinetis。これのLシリーズをここ数年ずっと使っている。これ、マイナーなんだけどかなりの素敵仕様なのですわ。

●コア

コアはCortex M0+なので、重い算術演算をしない限りは概ね問題なし。クロックも48MHzまでイケるし、開発環境としてもSWD装備なので最近の環境から好きな奴を使えばいい。ぶっちゃけ、トラ技ライターでもある程度までは動くし(^_^;)。もっとも、トラ技ライターではなんかバイナリサイズ8KB超えぐらいでコケるようになったので、今はNXPのLPC-Link2でデバッグしてるけど。

●パッケージ

パッケージはいくつかあるけど、その中に5mm角の32pinQFNってのがあって、一般の実装屋さんで実装して頂ける点を考えると、ほぼ最小サイズに近い。BGAとか、結構嫌がられるみたいですからね(^_^;)。上記の写真のがまさにソレ。ケータイ撮影なのでちょっとボケてるけど。

RCサーボの基板なんて、酷いのになると1cm四方以下だからね(爆)。それでも4層を使わず、両面にしてるヲイラ(笑)。そんな時、このパッケージサイズはありがたいのよ。

●タイマ

タイマが複数装備されているんだけど、そのうちの一つがなんと6ポートも持っていて、なおかつ独立してPWM幅を変更できる。これ、BLDCやる時には結構対応がラクなんですわ。

さらに、専用のインターバルタイマもあって、割り込みだけ発生させられるので、制御周期なんかはそっちを使えばいいし、オマケに様々なトリガも自動で掛けられるようになってるので、そういう機能も結構素敵だったりする。

●ADC

どういうワケか、ADCの分解能が16bitもある。サンプリングもそこそこ速いうえに、ハードウエアによる平均処理まで可能。実はこのマイコンを採用する決め手の一つがココ。

RCサーボの場合、120度のスイングの中で0.1度をキメてくれと言われるんだけど、機構的には180度スイングも可能な構造になっているために、ポテンショはマージン込みで220度なんてのを使っている。

分解能0.1度を220度上で実装しろってコトは、2200ポイントでキッチリ止まって欲しいワケで、この時点で11bitでは足りず、12bitでギリギリ。しかも、それでは微妙に前後するし制御もシンドいワケで、さらにその4倍ぐらいの分解能が欲しいってコトになる。また、通常ADCの下1bitは結構揺れるので使い物にならない。この時点で既に15bit欲しいんだよね。

でも、ほとんどのマイコンのオマケADCって12bitなんだよね。色々調べたけど、あんまり他にはこのレベルのADCを積んでるのは見ない。実際問題、過去の製品で12bitで実装されてた時期のものは、やはりちょっと分解能的に難があったように思うんだけど、概ねその問題はコレで解消しちまったんだよな(笑)。

●消費電流

こんだけ色々あって全部稼働状態にしていても、せいぜい数mA程度しか流れない。某社のマイコンだと、下手すりゃ数十mA流れてたワケで、バッテリ駆動の装置としてはこの差はデカい。

特にホビーロボットの場合、20軸程度は普通にあるワケで、仮に20mAでも400mAもの消費になってしまう。これではバッテリはどんどん消費されちゃうよね。

●値段

こんだけ美味しい仕様で、なんとバラで購入しても単価200円台半ば。量産で数千個ってなってくると、100円台の前半だったりする。いやぁ、恐ろしい時代だよね…48MHzの32bitマイコンがこの値段ですよ(^_^;)。オマケに普通にデジキーとかでも買えるし。

とまぁ、色々ヲイラ視点で色々書いてみた。でも、コレももう数年前のチップなので、今はまだコレを使っているんだけど、将来的には別のシリーズのを使ってみたいなぁとは思ってる。実は他にもチョイと興味深いのがあるんだよねぇ、ココ(^_^)。

カテゴリー: なんか作る, マイコン, 電子回路 | Kinetisという楽しいマイコン はコメントを受け付けていません。

ドライバのお話

ちょっとこんなエントリ-を読んだので、自分の思うトコロを少し…

ホビーロボット作るにしても、単車やクルマを整備するにしても、なんらかの形でドライバが必要になるんだけど、さすがに一部のビンテージなモンを除けばマイナスドライバの出番はかなり限られてる…たぶん、なんかの調整用とかツマミの固定ぐらいかな。なので、マイナスに関してはあんまり思うトコロはない。

いわゆるプラスドライバの出番は非常に多く、下は00番ぐらいから上は単車だと3番ぐらいまで出番があったりする。で、先のエントリーにもあるとおり、この番手の違いは先端の尖り具合の違い(数字が小さい方が尖っている)なので、ドライバが大きすぎれば噛み合いがハマらず、逆に小さ過ぎればハマるものの先端がつっかえてしまい、大きなガタが出る。

噛み合いがハマらない方はまず回ってくれない(スベるだけ)からまだイイのだが、ガタが出る方は一応回せてしまうコトも多い。けど、これはドライバとネジの双方の寿命を縮める行為だったりするので、実は絶対にやっちゃイケナイんだよね。プラスドライバは、ネジにきちんと合ったものを使わないとダメ。でないと頭をナメるなどのトラブルになる。

で、合ってるドライバを使っても、回し方がダメだとやっぱりトラブルの元になる。プラスドライバにはカムアウトって問題があって、回そうとするとドライバが外れる方向にもチカラが掛かってしまう。従って、通常プラスドライバを使う場合は、押し7割、回し3割ぐらいのチカラ配分で使わないといけないんだな。特に、締めてあるネジを緩める時と、ネジを締める最後の瞬間は、これが非常に重要になる。でないと簡単にカムアウトし、最悪の場合はネジ頭をナメるコトになる。

この辺の問題もあってか、最近の単車やクルマでは実はプラスドライバの活躍の場所は結構限られてて、大半はボルト(六角頭)になっているみたい。

で、ホビーロボットの場合、使うネジ径もかなり細くてM2とかM3近辺がほとんどだろうから、さらに怖い。M2ぐらいになってくると、頭の形状によっては0番あたりのドライバが必要になってくるコトになる。こんな細いのを確実に締結し、また舐めずにバラせるのって、それだけで結構大変なんだよね。ちょっとチカラを抜くと簡単にカムアウトするし。

ただ、ここ最近は実はこれに関してもう少しラクな方法が存在する。いわゆるトルクス頭のネジを使うコトである。六角穴では細すぎて簡単に舐めてしまうが、トルクスだと舐める心配も激減する上に、ネジを回す時に押しが必要ない。なぜなら、構造上カムアウトするコトがないからだ。つまり、回すコトに集中できるワケである。

この事による整備性の向上は、結構計り知れないモンがあると思う。難点は工具もネジ自体もソコソコ高価だという点ぐらいであろうか。

ちなみに、ヲイラが使うこの手のドライバは、基本的にはPB製が多い。これは、使い込んでも先端形状があんまり変化しないので、長く使えるためだ。ただし、値段もハンパなく高価なので、普通の人には進められない。種類としては、プラス、トルクス、六角をある程度持つようにしている。特にトルクスに関しては、巷の安物を使うのはおすすめしない。ほんの少しチカラを掛けただけで、簡単に先端がネジれるような品物もあるからだ。

これらのドライバの購入先はアチコチだが、ヲイラは最近はアキバでは高架下の工具屋さんへ行くようになった。ポンバシなら、五階の一角にある工具屋さんかな。

とりあえず、思いつく限り書いてみた。そういうワケで、正しい工具で安全な作業を心がけましょう。

カテゴリー: クルマ, なんか作る, メカ, ロボット, 乗り物, 単車 | ドライバのお話 はコメントを受け付けていません。

VS-RC003(HV)による自律動作の考え方

先日の神戸で開催されたROBO-ONEにて、初めてAUTOが行われたワケなんだけど、たぶんアレ見て「自分も」って思ってる人は少なくないと思う。けど、今AUTOに参戦されてる方って結構ハイエンドな方が多いみたいで、早々真似できるってワケでもないと思う。

でも、実はもともと関西にはロボチャレンジという大会があり、もう何年も前から自律競技である「さがしてポン」が行われてきた。相手は単なるスチロールの球だけど、センサで相手を探して移動し、叩き落とすのは考え方としてはAUTOとそう変わらない。自律動作に関しては、実はすでにある程度のノウハウが存在するわけだ。

なので、ココでは既存のロボット用マイコン基板であるVS-RC003(HV)…以下、VSRC…とRobovieMaker 2…以下RM2…を使った自律の考え方について少しメモを残しておくコトにする。どなたかの参考になれば幸いである。なお、それぞれの基本的な使い方についてはすでに習得しているものとして記述するので、基本的な部分に関しては別途学習をお願いしたい。

●VSRCとRM2を使って自律を行うのに重要なポイント

VSRCとRM2にはちょっと独特な機能があって、これが自律を行うのに重要な意味を持つので、まずそれらを列挙してみる。

  • 変数…VSRCには変数の概念が存在する。初心者はあまり馴染みがないかもしれないが、ちょっと使い込むとすぐにこの概念が重要になってくる。実は自律を実装する上でも、この概念が非常に重要になる。なお、変数の一覧表はココにある。
  • アイドリングモーション…このモーションは「何もしない時に発動される」という仕掛けなのだが、これも自律を実装する上では非常に重要な存在になっている。
  • 操作マップV2…元々コントローラのボタンを押してモーションを発動することを前提としたV1に対し、V2ではモーションの発動条件がかなり多彩になっており、その中に「変数の値に一致すれば発動」という恐ろしく強力な仕組みが入っている。また、V2はリスト形式になっており、上から順番に発動条件を評価するようになっている。
  • 変数番号251…この変数は、元は読み出し専用だったのだが、実は書き込めるコトが判明し、今は資料にも書き込みOKになっている。この変数に1を書き込むと、全てのサーボがフリーから作動開始するようになっている。また、0で脱力するようになっている。

さて、RM2のマニュアルを見ると「オートデモ」という機能があるコトに気づく。電源を投入すると自動的に動作を開始する機能なのだが、実は自律競技をやる場合には、以下の三点の問題があり、お勧めできない。

  • 単一モーションファイルに全てを記述しなければならない
  • 電源投入後すぐに動作するので、試合開始のタイミングを取るのが難しい
  • 電源を切るまで動作してしまうので、一旦荒ぶってしまうと止めようがなくなる

なので、自律競技を実装する場合、操作マップV2を使って通常のバトルと同じようにリストにモーションを登録するという形をお勧めする。

●基本的な自律動作の考え方

この競技では、基本的にはセンサの値によって行動を決めるというのが基本的な流れになる。当然、その行動を決めるアルゴリズムをどこかに記述するコトになるのだが、これをアイドリングモーションの中に全て記述する。ただし、実際に機体を動かすコトは、このモーションでは一切行わない。単に立っているだけのポーズを一つ指定しておくだけである。

そして、ユーザが任意に使える汎用変数の一つ(例えば80番とか)を「行動指示変数」と考え、ここに、センサの値に基づいて判断した次の動作(前進とかターンとか)を指示する値を代入してアイドリングモーションを抜けるように記述しておく。もちろん、この値の意味づけは各自の自由だが、後述の操作マップV2の設定と合わせておく必要がある。また、0は後述する理由のために、空けておく。

操作マップV2は、先にも書いたがコンントローラのボタンの代わりに変数の値に沿って起動するモーションを決定するコトができる。ここで必要なモーションを登録する時に、上記の「行動指示変数」の値との一致で発動するようにセットしておくと、アイドリングモーションで決定されたモーションが発動するコトになる。

ただし、そのままではそのモーションが終わった時にまた操作マップV2のリストの最初から評価され、再度同じモーションが発動してしまうので、各モーションの最後で「行動指示変数」に0を代入してクリアしておく必要がある。そうすることで、またアイドリングモーションに戻ってくるワケである。指示値で0を使わないようにするのは、このためである。

センサの値をいつ読むかという問題に関しては、アイドリングモーションの中で読んでも良いし、何らかのモーションの途中で読んだ値を任意の汎用変数(「行動指示変数」以外のどれか)に代入しておいて、後でアイドリングモーションでその汎用変数を読み出して確認してもよい。

これを繰り返すコトで、ある時はセンサの値を元に移動方向を決め、ある時はリングから落ちないように回避し、ある時は相手がいないので移動し、ある時はパンチなり攻撃を繰り出すという動作を行うコトが可能になる。転倒した場合も、アイドリングモーションの冒頭で加速度センサの値等を確認するコトでそれを検知し、起き上がりモーションを発動する指示を「行動指示変数」に書き込めばイイわけだ。無論、操作マップV2にはそれに対応する起き上がりモーションが登録されており、当該設定値で発動するようにセットされている必要があるが。

また、すでにお気づきかと思うが、実際に動作させるモーションは通常のバトル等で使っているファイルをそのまま流用できる。末尾に「行動指示変数」クリアのための記述を一つ追加するだけだ。なので、動作のソレゾレに関しては別々のファイルだし、独立して調整できるし、バトル用と共用にできるので、作業に無駄がなくなる。1ファイルに全てを記述しなければならないシステムでは、こうはいかない。

●さらに追加としていくつか…あと危険回避の方法も

上記の実装を行い、ロボットの電源を入れても、実はそのままでは動作しない。なぜなら、当然ではあるがセレクト=スタートしてないので、脱力したままだからである。かといって、任意のタイミングでセレクト=スタートを行うと、内部的に自律動作してる途中で動作を開始してしまうコトになる。これは危ない。

かといって、アイドリングモーションの冒頭で変数251に1を代入してしまうと、今度は荒ぶった時にいくらセレクト=スタートしても、またアイドリングモーションで作動開始してしまい、いつまでたっても止めることができなくなる。

この問題を回避するためには、マップ移行機能を使うのがお勧めだ。

もともと4つのマップが実装できるようになっていて、デフォルトで起動するのは<00>のマップなので、そのマップはアイドリングモーションとして普通に立っているだけのモーションを設定しておく。で、例えば<01>のマップに上記の自律を実装しておく。

そうすれば、起動時には立っているだけのモーションなので、この段階でセレクト=スタートを行い、リングの上に立たせるコトができる。ついで、ファイトのコールでマップ切り替え操作を行えば、後は勝手に自律で動作を開始するというワケだ。

また、汎用変数の値が起動時に不定である可能性も考え、<00>のマップのアイドリングモーションにおいて、「行動指示変数」に0を代入してクリアしておくこともお勧めする。

無論、操作マップV2では任意の操作でマップ切り替えが可能なので、そこをどう設定しておくのかは各自の設定に依存する。重要なのは、自律のマップをデフォルトにしないコトだ。

なお、危険回避のため非常時に停止させるために、コントローラの何らかの操作で変数251番に0を書き込み、脱力させる仕掛けを仕込んでおくことも重要だと思う。

 

取り急ぎ、ざっくりと書いてみた。なにか追加すべきコトがあれば、おいおい追記していこうと思う。

カテゴリー: なんか作る, ロボット | VS-RC003(HV)による自律動作の考え方 はコメントを受け付けていません。

我が懐かしのSan Jose

今年のWWDCが、再びあのSan Joseで開催されるらしい。1993年に初めて行かせてもらい、1997年から2003年までは連続して行くハメになったのだが、確か2003年からSFに移動しちゃったんだよな。

なんで連続して行く羽目になったのかというと、OSに激変がダブルで加わってデバイスドライバ関係が大変なコトになったから。1993年の時も、当時ストレージ用インターフェースだったSCSIの管理方法が大幅に変わるってんで、慌てて行って情報収集してたんだが、1997年辺りは「次期OS」として開発されてたCoplandがデバイス管理を全面変更するってんで、(ごく一部の連中だけ(笑))大騒ぎになってたんだよね。世界中でミーティングが行われ、WWDC以外でもアチコチに行く羽目になった。

しかも、(ご存知のとおり)Coplandがボツっても騒ぎは終わらなかった…MacOS Xの話が矢継ぎ早にやってきて、そこでのドライバシステムの情報が錯綜してたからね。ある者はNeXTのDriverKitだと言い、ある者はLinuxのドライバシステムだと言い、全く先が見えなかったんだよな。結果どうなったのかと言えば、実はCoplandでやってたシステムをホボそのまま移行するコトになった。結局のトコロ、当時の既存のUnix系のドライバシステムでは、USBみたいな活線挿抜に対応できなかったからと聞いている。

そんな感じでしばらく通っていたSan Joseなので、今でもコンベンションセンターの周辺はある程度覚えている。どうも当時の店もまだ残ってるらしいので、初めてSan Joseへ行く人向けにちょっとだけ書いておこうと思う。iOSからこっちの業界に来た人には初めての場所になるんだろうし。

●交通

あの当時もたぶん今も、San Jose国際空港(SJC)への便はそう多くはなく、大半はSan Franciscoの国際空港(SFO)にて入国するコトになるだろうね。SFOから先は、あの当時は結構大変だった(ホテルシャトルとかを利用したり…)けど、今は公共交通機関だけでSan Joseまで移動できるハズだ。SFOにはBARTが接続してるが、これで一駅移動するとCaltrainの駅に出る。これに乗って南下するのだが、どうも当時と今はSan Jose方面への乗り換え駅が変わったみたいだ。

昔はTamienという恐ろしく辺鄙な駅(駅舎すらない)で、ただ隣のホームっぽいモンに移動するだけだったのだが、どうも今はその手前にSan Jose Diridonって駅ができてて、そこが乗り換え駅になってるようだ。ここでVTAのLightRail(路面電車)に乗り換えれば、会場のコンベンションセンターの前に出る。

当然のコトだけど、便数はそんなにない。特にCaltrainはいわゆるローカル線なので、1時間に3本とかそれ以下(笑)。キッチリとスケジュールを組んでおかないと怖いコトになる。

なお、San Joseの会場付近からアップルの現本社へはクルマがないとかなり厳しいが、VTAのバスの乗り継ぎで行った猛者がいたと記憶している。普通はレンタカーが欲しいトコロだよね。レンタカーを借りるなら、SFOで借りてルート101を南下するのがおすすめ。いかにもアメリカンな気分を味わえる(笑)。

●宿

あの当時からするとある程度増えてはいるようだが、恐らくどこもかなり高い。あの当時でもSan Jose中心部は一泊200ドル/泊とかザラだったし。なので、これまたレンタカーを使うコトになるが、少し離れた場所にいわゆるモーテルが結構あったハズなので、そっちを使うコトを検討した方がイイかもしれない。ヲイラも当時、一回だけそっちに連泊した覚えがあるが、クルマさえあればそう不自由しなかったと記憶している。

あと、LightRail路線沿いのSJC近くにソコソコ安い宿があって、概ね100ドル/泊ぐらいだってのを追記。Gish駅の周辺に色々ありますな。

●食事

もちろんお高い場所はアチコチにあるので、比較的リーズナブルなお店をいくつか…あの当時よりは店も増えているみたいだけどね。地図を見る限り、あのマクドは消えたみたいやな(笑)。

  • Original Joes 会場から超近いイタリアン
  • BoTown 会場から数ブロック南東にある中華
  • Johnny Rockets 会場から数ブロック北東にあるバーガー屋
  • Gombei 会場から電車で移動した先の定食屋

なお、この最後のGombeiだけはLightRailで少し先へ行った「JapanTown」にあるのだが、名前でお気付きの通り日本食の店で、しかも定食屋だ。寿司屋とか色々あるけどみんなお高いのに比べ、ココは本当に庶民的なお店なので、電車に乗ってでも行く価値があると思う。しかも、少なくとも当時は結構美味かったし。

なお、Gombeiも含め出てくるモンの量には注意が必要。今はどうなっているか不明だが、BoTownで10名ぐらいでFamily Dinnerを頼むと、とんでもない悲劇が発生したのは今でもよく覚えている(笑)。あとGombeiの豆腐サラダの悲劇とかね(^_^;)。

もっと侘しい食事でイイ(笑)という人は、会場から北北東方向に数ブロック先あるZANOTTO’Sってスーパーマーケットがおすすめ。デリもあるし、最悪の場合はカップ麺(日本では見かけない味付けも色々)も売ってる。鉄火巻きもあったな。ただし、割り箸はないハズなので、自分で余分目に持って行くコト。

●ネタショップ

基本的にはレンタカーがないと行けない場所だけど、チャンスがあれば行ってみるといいと思う。

Apple Company Store 普通のアップルストアとは違い、ココにはアパレルとか文房具とかのアップルグッズが大量にある。お土産を探すならココかもしれない。無論、場所は無限ループな本社。誰でも入れる外側に入り口がある。

The Tech 会場から通りを挟んで真正面にある博物館。名前の通り、技術的なモンばかり展示してる。並んでる協賛企業がパネェコトになってたな(^_^;)。

Fry’s Electronics 冷蔵庫とICチップと箱で買える缶コーラが同じフロアに並んでいる不思議な馬鹿デカい電気屋さん。何軒かあってそれぞれ店の雰囲気が違う(笑)。VTAバスの乗り継ぎで行った覚えがあるが、今も路線があるかどうか…

Weird Stuff 謎のジャンク屋。日本では見たことがないタイプのジャンクが結構ある。有名なメーカーのワークステーションのケースだけとかね(笑)。

Yoshinoya そう、あの吉野家。アップル本社からちょっと行った先にあるYoshinoya Cupertinoは、ちょっとしたカルチャーショックが味わえるお店(笑)。

 

とりあえず、思いつくのはこれぐらいか。何か思い出したら、また後で加筆するかもしれない(笑)。

 

カテゴリー: Apple, 日常 | 我が懐かしのSan Jose はコメントを受け付けていません。

ウチのKitMillのお話

もうだいぶん前に作業してしまった関係で、委細を忘れそうなもんで、ちょっとメモがてら(笑)。

現在、ウチにはオリジナルマインド社KitMill BT200があって日々の切削作業をやってくれているのだが、実はいくつか改造して使っている。ネットで教えていただいたり、買って使っているうちに気づいたり、組み立て前から気づいて作業したりとキッカケはいろいろだけど、何をやってあるのかをリストアップしてみる。

●防音防塵箱

CNCがどれぐらいゴミを出し、切削中にどんなコトが発生するのかについては、以前いた某社にて充分経験させてもらった(^_^;)ので、自宅にCNCを置く上で防音防塵箱は不可欠という結論になった。

なので、CNCの発注と同時に箱の設計を行い、CNCの完成前に箱を作ってしまった。どんな箱かっつ〜と、こんな感じ。取っ手を持って扉を上へ跳ね上げ、奥に収納できる仕掛けになってる。

これのおかげで、夜中に回してもうるさくないし、ゴミも散らないし、切削中に外れた部品が吹っ飛んで周囲に突き刺さるコトもない。

●配線延長

製品にはコントローラボックスも含まれ、フライス本体のモータやセンサとケーブルで接続するワケなんだけど、基本的にフライス本体のすぐ横にコントローラボックスを置いて使うことを前提にしているせいか、ケーブルの長さが1メートル程度しかない。

自分としては、フライス本体の防音防塵箱への収納を考えており、切削粉塵の影響を考えれば箱の中にコントローラボックス(非密閉構造)を置くという選択肢は最初から無かったので、ケーブルの延長を行うコトにした。念のため、問題が発生する技術的な可能性についてオリジナルマインド社にも確認をし、当然自己責任の上で同じコネクタを電子部品店で購入、全長2.5メートルのケーブルを作成した。

もちろん、このままではなくフレキダクトに収納してから設置。結果は全く問題無し。防音防塵箱の中からフレキダクトごと束になったケーブルを引っ張り出すという面倒さはあったものの、安心して使える環境になった。

●テーブル改造

純正のCNCテーブルは樹脂製で、これを面出しした上で材料を固定(貼り付け)して切削するようになっているのだが、これだと切削が終わってから完成品を取り外し、次の切削をさせるまでの時間が結構無駄になる。

これも以前いた某社での方式にならい、MDFの捨て板に材料を固定するコトにし、そのMDF捨て板を簡単に固定できるテーブルを作った。

あまり加工精度は追求できないが、二足ロボ用の板金切削程度であれば、実はそこまで高い精度が必要になるコトはレアなので、特に大きな問題はない。また、捨て板ごと外せるので時間短縮だけではなく、アルミ材の無駄も減った。未切削の領域があるのなら、捨て板ごと保管し、次回の切削でまた使えばイイからだ。板厚の異なる部品を多用する場合、これはとても重要なのよね。

●主軸改造

世の中のエンドミルのシャンク径には色々あるのだが、オリジナルマインドの主軸チャックは固定径+イモネジ固定式で、異なる径に対する対応方法は主軸ブロックごと主軸を交換するというものであった。これは金額的に大変である他に、毎回主軸の傾きを調整せねばならないという問題を抱えるコトになる。また、厳密にはイモネジ固定のエンドミルというのもあまり気分のイイものではない。

これを解決するため、ネットで得た情報を元に主軸を交換するコトにした。材料はコレ

BT200の主軸径は10mmなので、10mm径のコレットチャックを購入。長さを調整するため、某所で旋盤を借りて突っ切りバイトで長すぎる分をカット。

一方、元の主軸ブロックからプーリーと旧主軸を除去し、プーリー主軸穴に切ってあるメネジ(旧主軸とはネジ込み固定+イモネジ)を拡大して10mmの穴にする。

主軸ブロックにコレットチャックのシャンクを挿入し、プーリーを取り付け、イモネジで固定。こうして改造した主軸ブロックを、垂直に留意しながら慎重に固定して完成。

これにより、コレットの交換だけでエンドミルのシャンク径を変更するコトが可能になった。

 

とりあえず、こんなトコかしら。

 

カテゴリー: なんか作る, メカ, ロボット | ウチのKitMillのお話 はコメントを受け付けていません。

さて、サーボの基板でも作ってみるか

そういうワケで、独立状態になったものの…すぐにお仕事大量でウハウハ荒稼ぎ…なんてコトになるわきゃない(泣笑)ので、まずはオサライやオベンキョウも兼ねて、前職でやってたサーボ基板を自分の手の内だけで作れるかの実験をやってます。

具体的には、某J社のN×3421と同じような基板が自分で作れるかどうか…できれば、当時追加したかった細工や機能も追加した形で実装し、実際に組み込んでチャンと動作するかどうか…ですかね。

これがチャンとできたら、手持ちのD$3401(これは単なるデジタルサーボ)の基板と入れ替えてシリアル化してしまおうかなという感じです。現在製作途中のTheMask(二足ロボ)のメインサーボはD$3401なので、これを全部シリアル化できるなという目論見です。

ファームに関しては、昨年末に会社を辞めた段階で、まだアタマの中に残ってた情報を元に全てのコードをゼロから書き起こしたものがあり、これをトラ技ライター経由で既存のN×3421に書き込んで動作するコトを確認してあります。ま、こんなコトができるのは、一つには使っているマイコンであるKinetisのツールが優秀で、IOの初期化周りのコードが自動生成できるために、本題部分のコーディングだけを思い出せば済むからでしょうね。ありがたいコトです…。開発環境も、生成バイナリがたったの5KBしかないため、会社と同じIARの環境を無償モード(Cortex M0+で16KBまではOK)で使わせていただけますし。こちらもありがたいコトです。こういうのが本式のお仕事になったら、ポッドとかもチャンと購入しないとね。

で、これまた昨年の終わりの段階で「たぶん、必要になるよなー」という予感の元に勉強を始めたKiCAD(最初は単車のウインカ用LED基板だった)を使い、Kinetisマイコンの回路を起こしなおし、基板パターンを作成してます。そのデータをまとめて基板屋さん(今回はElecrow)へ発注というステップです。当時の回路設計も大半に自分が関わってるし、そう大したコトをやってるワケでもないので、この辺もどうにでもなります。

あとこの際いくつかの変更を行い、よりノイズ耐性を高めたりする方向に改良作業もやってます。もっとも、この辺はブレッドボードでは何の確認にもならず、実際に組み込んでブッツケで実験してみるしかないので、その実験も兼ねてという形ではありますが(笑)。

今回初体験なのは、ガチの表面実装両面基板のパターン設計と、自宅で可能な部品調達手段のチェック、それと、実装屋さんへのお願いという感じでしょうか。

基板のパターンは大昔には普通にやってましたし、昨年末までの製品の基板でも色々と助言したりしていたので、パズルではありますが概ね問題なく数日で完成しました。こういう回路は、実装の仕方にノウハウがあるので、ソコはできるだけおさえながらという感じです。

部品調達は、今回はDigikeyChip One StopMouserにお願いしました。残念ながら、どこも「ワンストップ」にならなかったのが微妙に残念です(笑)。使う部品メーカは、マイコン以外は以前からロームの部品が多かったので、今回もロームで固めてあります。

実装屋さんとしては、これまた以前からお世話になってるクレイン電子に頼もうと思ってます。さすがにもう、QFPや1005のコンデンサを自分でハンダする根性はないっす(^_^;)。んで、残件としてお願いするための資料作成ですかね。KiCADから生成できればイイのですが、まだその辺はお勉強中という感じです。

さてさて、うまくいきますかね(笑)。

ちなみに、念のために書きますが、回路図もファームも会社辞めてから自宅でゼロベースで起こしなおしているコトと、元の製品は特許等で保護されてるものではないコトが分かっている(だって当時やってたの、ヲイラだし)ので、著作権とか特許権関係のご指摘は無用です(笑)。

カテゴリー: ソフトウエア, なんか作る, マイコン, ロボット, 電子回路 | さて、サーボの基板でも作ってみるか はコメントを受け付けていません。

3D CADを初めて使う前に知っておいてほしいコト

そういうワケで、3D CADの勧めを書いてしまったワケなので、続いて3D CADを使い始める前に覚えておくと躓きにくくなるであろう予備知識をいくつか書いておく。3D CADを始めてみたけど良くわからないとか、何がどうなってるのかサッパリという声を時々聞くので、やはり事前情報は重要なのかなという気がする。

特に2DのCADに慣れ親しんでいる人は、一度その常識を全部捨てないといけないかもしれないぐらい、3D CADの考え方は違っているかもしれない。方眼紙に作図してる人も、ちょっとびっくりするかもしれないね。

1:最も基本的な使い方

3D CADにも色々あるが、機械製図系の場合は多くがソリッドモデリングになっているハズで、操作方法の違いはあれど概念的にはホボ同じ仕組みになっている。それは

  • 平面に絵を描く
  • その絵を引き延ばして立体にする

という作業の繰り返しだというコト。つまり、例えば長方形を描き、それを引き延ばして直方体にするといった作業だ。円を描けば円柱ができるワケである。

最初の平面をどう設定するのかはソフトによるので少し注意が必要かな。だけど、何らかの方法で最初の平面に図を描き、それを引き伸ばせば何がしかの形ができる。そうしたら、その形のどれかの面にまた平面を設定し、そこに絵を描き、それを引っ張り出せば枝ができるといった塩梅である。

この逆に、描いた形に穴を空けるという操作もある。最初の一回で出来た立体のどれかの面に穴を開けたりできるワケだ。穴の深さも設定でき、貫通も指示できるハズだ。

ただし、お気づきかもしれないがその絵は「閉じて」いる必要がある。全ての線は、一周して閉じていないと立体になれない。複数の閉じた線が同時に存在しても構わないが、その途中が交差してはならない。そうでないと、引き延ばした形状ってイメージできないよね。

閉じた線が入れ子になっていたらどうなるか…例えば2つの輪っかが入れ子になっている場合、これを引き伸ばすとその平面形状で四角い断面のドーナツになる。これを応用すれば、例えば四角い板にあらかじめ穴が空いてる状態で作図しておくだけで、穴あきの板がモデリングできるコトになるワケだ。

ほとんどの形状は、この方法で描く事ができると思う。板材なら、平面形状を描いて板の厚み分だけ引き出せばできる。他にも細かい操作は色々あるし、円柱面以外の曲面を操作するにはまた別のやり方があるんだけど、とりあえずココでは触れない。

2:寸法のこと(および拘束という考え方)

とりあえず、適当に絵を描けばなにがしかの立体形状になるのはご理解いただけたと思うが、当然それでは正確な部品は描けないので、寸法をきちんと指定せねばならない。ここで、特にこれまで2DのCADを使ってきた人は、一度その感覚を捨てる必要があると思う。

2DのCADにおいては、線分は「寸法通りに描かねばならないもの」であり、描いた後で入れる寸法線は、「すでに描かれた線分の長さを表示するもの」でしかないハズだ。

しかし、3D CADにおいては線分は「まずとりあえず適当に描くもの」なのだ。四角が欲しければ、まず四角を描くといった塩梅に。で、その後で寸法を「指示」する事で、希望の寸法に「拘束」していくという形をとる。

この「拘束」という概念がミソで、単に線分の長さを表示しているだけではない点が重要なのだ。例えば、四角形の幅を拘束するにしても、上下の辺の「長さ」を拘束するコトもあれば、左右の辺の「間隔」を拘束するコトもあり、これは全く意味が違う拘束になる。

さらには、円に接する接線として拘束したり、平行線として拘束したりと、寸法以外にも様々な拘束が存在している。これらを上手に使えば、恐ろしく簡単に作図できるようになってくるものだ。

逆に、これらの拘束をきちんと使わないと、先の「閉じた」図にならなかったりもするので、注意が必要だ。例えば自分で線分を描き、円と接するように描いたつもりでも、実際には接していないなんてコトはザラにある…というより、拘束をかけなければ正確に接するコトはないと思ってもらって構わない。正確に接してくれなければ、閉じていない線というコトになり、立体にできない。この辺りも、初めて使った時に戸惑う理由の一つだろう。

この辺りは実際に作業してみたほうが解りやすいと思うが、大事なコトは、この寸法はあくまで「拘束」であるというコトだろう。そして、同じ事は組立図においても発生する。つまり、部品と部品の間隔を「拘束」してみたり、丸い部品と丸い穴を同心(中心一致)になるように「拘束」したりできるワケだ。むしろ、組み立てる作業というのは、この拘束を設定していく作業に他ならない。

この拘束という概念は結構アチコチで出てくるので、覚えておくと戸惑わなくて済むと思う。

3:部品図と組立図

多くの場合、絵を描いて形をひねり出した部品図と、そうやって出来上がった部品を並べて拘束して組み立てる組立図は別になっている。組立図の中では、あくまで立体になった部品を組み上げていく形になる。

その際、実は組立図の中に別の組立図を引っ張り込むコトが可能なコトが多い。つまり、例えばオムニホイールを組み立てた組立図を用意し、それをRCJ機体の組立図に4回割り付ければ、オムニホイール4個が現れるといった塩梅である。当然、元のオムニホイールの組立図を修正すれば、全てが自動的に更新される。

こうやって、いくつもの部品をいくつかの組立図にて組み立て、それらをまた別の組立図で組み立てて大きな形を形成していくワケだ。

無論、最初から全部バラバラの部品を一気に組み立てるコトも不可能ではないけれど、多くの場合で管理が大変になり、疲れ果てるだけだと思う(^_^;)。

結論

そういうワケで、ざっと簡単に書いてみたが、実際に操作すればそう難しいものではないというコトもご理解いただけると思う。上記の点を念頭において、まずは触ってみるコトをお勧めする。

以上

カテゴリー: なんか作る, メカ, ロボット | 3D CADを初めて使う前に知っておいてほしいコト はコメントを受け付けていません。

なぜ3D CADで設計するのか(ヲイラの場合)

ここ数年来ずーっとRCJ(ロボカップジュニア)をワッチしてるのだが、時代の流れというか尖った人材の乱入のせい(笑)というか、昔のような切った削った貼ったの時代からだいぶ進化してきてて、きちんと設計してきちんと部品をCNCで削り出してきちんと組み立てて動かす方へシフトしてきてる感じがする。

これはある意味当然のコトで、道具が進化している以上いつまでも原始的なやり方や、既製品だけでモノを作っていくのには限界があるし、進化した道具を低学年のうちから経験する事もまた、当たり前のコトだろうと思う。ま、コストの問題はあるにせよ、今は各地にそういった工房もできているので、必ずしも全てを購入せねばならないというコトでもないだろう。

(実際問題、ヲイラが中学生の頃はそもそもプログラミングするコト自体生徒がやるコトではなかった。そんなコトやってたら「遊んでないで勉強しろ」とさえ親に言われたものだ。これに関しては、今でも時々親にリベンジしているが(笑))

しかしながら、まだ今の所「あの道具を使えば勝てるのか」レベルの発想で導入しようとしてるケースが後を絶たないらしい。CNCを使えば勝てるとか、3Dプリンタを使えば勝てるなんて発想は、ブッチャケて言えばボンクラ以外の何者でもない。

で、折角こういう場所も作ったので、自分を例に引きながら何のために3D CADを使い、何のためにCNC等を使っているのかを解説してみるコトにする。願わくば、御無体な要求(笑)を喰らい続けているであろう各地のメンターさんの補助になればと思う。

理由その1:事前に組み上げ予想がつく

事前に組み上げ予想がつくというコトは、切った貼ったで積み上げた時によく発生する「部品が入らない」という問題を回避できる可能性が非常に高いというコトだ。黙々と切って作った部品がゴミになるのは泣けてくるだけでなく、大きな時間のロスを生む。従って、仮にCNCや3Dプリンタを使わなくても、3D CADで設計するコトには大きな意味があると思う。

また、逆に全体像が事前に見えるコトで、機能的な検討を画面の中で行ったりするコトもできる。センサーの位置とかって、実際に組む前から検討できるってのはかなり強力だよね。場合によっては、格好良さをそこで追求することだってできるし(笑)。

(ま、本来はこっちが優先で、どういう格好の中にどう詰め込むかと考えるのが筋なんだけど、ここではRCJ等に話題を絞るのであえて書かない)

ただし、これには条件がある。それは「全てを原寸でモデリングすること」である。つまり、組み立てに使用する全ての部品を3D CAD上に描き出さないと、実際に組めるかどうかは判断できないというワケだ。まぁ、さすがに細かいネジまでやる必要性はそうそうないとは思うが、スペーサやモータ等、市販の部品も全て採寸し、一度モデリングする必要がある。そうすれば、入る/入らないとか、ネジが締結可能かどうか(ネジ穴の位置が狂ってないか)等が判断できるコトになる。

(だからといって、無意味に細かい部分(ネジ穴のネジ山とかさ)までモデリングすると、今度は3D CAD自体の動作が重くなってしまうので注意。寸法的に重要な部分を重点的にモデリングするのがコツだろう)

なお、別の注意として「工具が入るルートがあるかどうか」「組立手順」もよく検討せねばならないというコトを付記しておきたい。画面の中ではどんな部品をどういう順番で並べても概ね組立可能であるが、実際の品物を組み立てようと思ったら、ドライバやレンチが入るルートがなかったり、実際には組み立てが不可能というケースがあるのだ。これでは折角データができても役立たずになってしまうので、細心の注意が必要だと思う。

ちなみに、通常3D CADではモデリングは単体部品単位で行う。画面内での組立は、事前にモデリングしたデータを組立図内に割り付けて行う。例えば同じモータが4個あるのなら、1個だけモデリングして、組立図内に4回割り付ければ済む。後から変更するのにも、こうしておけばモデリングした1個を修正するだけで、組立図内の4個は自動的に更新される。この辺も3D CADを使う理由の一つだ。2Dや方眼紙ではなかなかこうはいかないよね。

また、この関係で可動部の当たりチェックも画面の中で可能。例えばハッチが何かに当たったりしないかどうか、画面の中で確認する事ができるので、間抜けな設計をしてしまう率も減るコトになる。

無論、一度モデリングしたデータは再利用が可能なので、他にも使うことを念頭にライブラリフォルダを作って入れておくのも一手だろう。ヲイラも、そういうファイルを大量に抱えている。

理由その2:寸法を割り出すのが楽(間違いにくい)

3D CADは当然寸法を設定しながらデータを作成していくので、それらが存在する組立図内の空間距離は正しい寸法になっている。従って、例えば組立図内で何かの部品を組み上げたあと、任意の二点間の寸法を組立図内で「計測」することができる。

これは思いの外便利で、複数の部品にまたがる部品を設計する時や、斜めの部品が存在したりする時には非常にありがたく思える。そしてこれもまた間違った部品を生み出さなくて済むというメリットにつながる。もちろん、そうやって寸法を割り出して新たに作成した部品のデータは、当然組立図内で組み立てられ、実際にうまくマッチするか確認できる。

理由その3:3DプリンタやCNCにデータを引き渡せる

もちろん当然と言えば当然なのだが、3D プリンタやCNCはデータがなければ何もできない。このデータを生成するのには各種の方法があるが、3D CADで設計していれば、簡単な変換だけでこれらに引き渡すデータを生成できる。

立体物を3Dプリンタに出力させる場合は、モデリングした3Dデータからソレ用のファイルフォーマットへ変換(stlファイルが多いかな)してやればイイし、CNCを使って板を切り抜くなら、同じく3Dデータから平面図を生成し、それをまた変換(こっちはdxfファイルが多いかな)すれば済む。変換時に若干の誤差を含む場合もあるかもしれないが、基本的には寸法はそのまま変換されるので、生成される品物の寸法も基本的には間違いがないことになる。

このことはすなわち、設計で確認できた(間違いのない)寸法の通りに実際の部品が生成されるということであり、逆に言えば3D プリンタやCNCはそのために存在する道具なのである。こういうプロセスを経ないでCNCや3Dプリンタの話をするのはナンセンスと言っても過言ではないだろう。

結論

従って、3D プリンタやCNCの導入を騒ぐ前に、まず3D CADでの設計を進めることをお勧めする。今なら無料で使えるソフトも結構あるのだから、手を出さない理由がない。

まぁ、パソコンのスペックによっては少々大変かもしれないが、恐らく現段階においてはそれはもう限りなく古いものではないかと思うので、これを機に最新モデルに更新しても良いのではないかと思う。その際はできるだけ大量のメモリを積むことをお勧めする。

以上

カテゴリー: なんか作る, メカ, ロボット | なぜ3D CADで設計するのか(ヲイラの場合) はコメントを受け付けていません。

旧サイトを復旧しました

とりあえず、新サーバにフォルダ作って古いデータを整理もせずに放り込みました。なお、VISOR関連のページは既に終了している基板通販のページなので削除してあります。

その他、リンク切れが多数あるかと思いますが、その辺はボチボチってトコですかね(笑)。

http://www.zaklab.jp/old_zaklab/

カテゴリー: 日常 | 旧サイトを復旧しました はコメントを受け付けていません。