« 2004年4月 | トップページ | 2004年6月 »

2004年5月

2004年5月31日 (月)



支部例会で松本さんの機体を見て、BasicMouse/DCの軸受け周りを作り直すことを決意。
ひとまず、エンコーダー周りを分解する。

ソフトをやるべきなのだと思うけれど、やっぱり納得いくまで組みなおしたい。

| | コメント (0) | トラックバック (0)

2004年5月30日 (日)



支部例会に参加。
収穫の多い走行が出来たように思う。

03Bは、しばらく様子見で走らせて見ると、やはり窓からの外光で誤作動を起こす。
窓の外の隣の建物の、白い壁面の反射が強いみたいだ。
ブラインドをきっちり下ろすと、ましになった。

途中、走らせる人がほとんどいなくなったので、芝浦の皆さんにお願いして、去年の全国大会予選の迷路を組んでもらってみた。

探査OK。ハードの対策もうまくいっているようだ。
ただ、探査アルゴリズムがプアなせいか、5分ルールを想定した探査時間リミットでは全面探査は終了しなかった。
最短自体は出ているので、そのままタイムトライアルに移る。
4回(想定)のトライアルで、9秒台に入る
そのまま続け、さらに短縮した。

支部例会の場で出ても、本番で出なければ仕方ないのだが....

| | コメント (0) | トラックバック (0)



暑い...梅雨を通り越して夏のようだ。

今回は予定通り外出できるか?
昨日からの作業で03Bはそこそこ走るようになった。多分。

なんどもこの台詞をはいては、沈没してきたけれど、今回はどうかな?
今回は、センサの受光回路のフィードバックゲインを大きくしてみた。誤認識が減るといいのだけれど。hb

まだ稼動する機体は少ないだろうから、迷路がほとんど占有して使える今この時期に、いろいろやっておきたいところだ。

| | コメント (0) | トラックバック (0)



03Bの調整をする。
毎度、付いて回る作業とはいえ、もう少し自律化できないものだろうか。

というわけで、あれこれと制御仕様を盛り込んだ結果、狙ったところでちゃんと補正が効いているかどうか、わかりにくくなってきている。
闇雲にコードを書き散らした弊害、いや無計画な追加仕様のほうだ、まずいのは。

| | コメント (0) | トラックバック (0)

2004年5月27日 (木)




まだ充電器を組み立てている...

あまり何も考えずに、300~400mA設定のもばらしてしまったので03Bも動かすことが出来ない...なにやってんだか。で一念発起してくみ上げた。
こういったちゃんとした(?)電子工作は、マウス以外では久しぶりのような気がする。

ちょっと無理めなサイズのケースに、すりきりぴったり詰め込んで、ふたがぴったり閉まると気持ちいいものだ。

なんとか完成。マウス再開。明日から...

| | コメント (0) | トラックバック (0)

2004年5月25日 (火)



マウス作業再開しようとした矢先に、自作充電器がブロー。ありゃまあ。

MAX713で基板化してあるのだけれど、バラック仕立てだったのが災いした。単4サイズのセルを充電できるユニットはこれしかない...
修復中...せっかくなのでこの際、3つまとめてちゃんとしたケースに収めてみる。タカチの新作で、ちょっと気に入ったのがあって、最近ゲットしていたのだけれど、これがぴったりだ...

工作中....

ちょっとケースが小さすぎたかな?

| | コメント (0) | トラックバック (0)

2004年5月23日 (日)



BasicMouse/DC シャフトの振れが気になるので、別案を作ってみる。
走る分には問題ないと思うけれど、機体寿命にきいてきそうな気がする...

エンコーダーを機体中央に寄せ、エンコーダーを固定していた部分にシャフトを受けるベアリングを追加。03Bと同じような構造を考える。

シャフトの材料を買いにハンズまで出かける。見た目も考え、SUSにしてみる。ちょっと割高だけれど、手に入るのだから贅沢はいえない。

| | コメント (0) | トラックバック (0)

2004年5月22日 (土)



片づけをしているときに、偶然支部会報を見る。あれっ、例会は明日かと思っていたけれど、来週だ...あぶないあぶない。

まあ、作業はここのところ進んでなかったので、来週のほうが都合がいいのだけれど。

------

久しぶりに03Bのプログラムを見直す。なんだかわけがわからない...BasicMouse/DCからすると、とてつもなくコードが大きく感じる。
ここのところの作業で、だいぶ頭の中が整理されてきたので、03Bのプログラムの再構築も手を付けたいものだ。

------

ようやく本業もひと段落(?)した感じなので、マウス作業再開する。

| | コメント (0) | トラックバック (0)

2004年5月20日 (木)



すっきり終わらなくて持ち帰り。明日中にはなんとか...

明日には作業再開の予定。気力を温存する。

| | コメント (0) | トラックバック (0)

2004年5月19日 (水)



帰宅はそんなに遅くないのだけれど、ちょっとガス欠気味。
明日は最近の分の大詰め。今日は作業を控え、早く寝ることにしよう。

BasicMouse/DCの構想は練っているのだけれど...週末どこまで出来るか。早く見極めて、今年の大会の戦略を考えないと。

そうこうしているうちに、5月も終盤に入ってきた。今年の大会シーズン(支部大会)まであと4ヶ月。全国大会まで6ヶ月。あっというまだ。

| | コメント (0) | トラックバック (0)

2004年5月18日 (火)



掲示板にて教えていただいたコンパイルオプションを試してみた。
効果的だ。ざっくり計測では10usec前後も改善された。がぜん息を吹き返したかも知れない。

short x short の演算結果をlongで受けるためには、あらかじめshortをlongにキャストしてからでないとうまくいかない。
やはりこういう(C言語)拡張コマンドがあるのか...
あやうく一生、16ビットCPUとC言語は相性がよくない、と思ってすごすところだった。

------

裏を返せば、いままで、ここまで要求の厳しいものを作る機会がなかったということだ。
鍛えなおさねば....

| | コメント (0) | トラックバック (0)

2004年5月17日 (月)



------

longを使わない処理を試してみる。

usTimerLeft += (unsigned short)(((long)usIntervalCenter * (0x400 - iRLRate)) >> 10);

;*** File HANDLER.C , Line 419 ; expression statement
   MOV.W #1024:16,R0
MOV.W @_iRLRate:16,R1
SUB.W R1,R0
EXTS.L ER0
MOV.W @_usIntervalCenter:16,R1
EXTU.L ER1
JSR @$MULL$3:16
SHAR.L ER0
SHAR.L ER0
SHAR.L ER0
SHAR.L ER0
SHAR.L ER0
SHAR.L ER0
SHAR.L ER0
SHAR.L ER0
SHAR.L ER0
SHAR.L ER0
MOV.W @_usTimerLeft:16,R1
ADD.W R0,R1
MOV.W R1,@_usTimerLeft:16


に対して、longを使わない場合。

usTimerLeft += (unsigned short)((usIntervalCenter * (0x400 - iRLRate)) >> 10);

;*** File HANDLER.C , Line 420 ; expression statement
MOV.W #1024:16,R0
MOV.W @_iRLRate:16,R1
SUB.W R1,R0
MOV.W @_usIntervalCenter:16,E0
MULXU.W E0,ER0
MOV.B R0H,R0L
SUB.B R0H,R0H
SHLR.W R0
SHLR.W R0
MOV.W @_usTimerLeft:16,R1
ADD.W R0,R1
MOV.W R1,@_usTimerLeft:16

うーん、やっぱり、longを使わないとうまくいかないのか。
掛け算の結果は、うまく32ビットレジスタに入っているけれど、そこから下位16ビットのみの処理になっているようだ...
C言語的には下位16ビットのみの処理が正しいような気がするが、アセンブラならうまくかけそうだ。

どうしても速度を求めるなら、ここはアセンブラになりそうだ。

| | コメント (0) | トラックバック (0)



電池を収縮チューブでパックする。
もとが単3型の電池をL/Oするためのスペースなので、すかすかだ。特に前側。

------

姿勢制御を本格的に実装してみる。longの掛算は相当時間がかかるようだ。
ひとまず処理は回っているようだけれど、割り込み処理時間の最大値が45usecとなってしまった。これはまずい...
なんとか、short x shortの処理で済ませられないものか。
森永さんの発表を参考に、処理の軽量化ができないものだろうか。

発表では、横壁からの距離データをかなり小さめの値でクリッピングして、姿勢制御に使っているとのこと。
具体的には、迷路中央からの距離が±10程度の範囲のみリニア値として使用し、それ以外の範囲はクリップした値を使う。
これをうまく使って、処理の軽量化が図れないだろうか。考える...

| | コメント (0) | トラックバック (0)

2004年5月16日 (日)




横壁センサで姿勢制御をしながら、直線走行をするところまでできた。

ここまでで総重量330gとなった。DCマウスとしては、割と一般的な重量ではないかと思う。

ここまでくれば、あとは普通のステッパーや03Bと同じ作りこみでいけるはず。
違うのは、残されているCPUパワーが、かなり少ないこと。
迷路の解析などは、走り出す前に済ませればいいとして、あとは位置補正か。3月の例会で発表した内容も実装したいところだ。

いずれにせよ、このまま(有線)では迷路を走るわけに行かないので、バッテリーを何とかしなければ。

特別こだわっているわけでは無いけれど、来週末はまた例会があるので、探査走行レベルでもできるといいかな?
どちらかというと、03Bの方に手を入れたいのだけれど。
このBasicMouse/DCでやるべきことは、別にあるのだが。

| | コメント (0) | トラックバック (0)



電池パックは熱収縮チューブのちょうどいいサイズが、在庫になかったので、ひとまず保留。
電源ケーブルを引っ張ることにし、1区画前進のコードを書いてみる。

さすがに第二走行用の加速度ではだめだけれど、ゆっくりとした探査走行並(2000mm/sec2)なら、ゲインの調整をしてない状態でも、それなりにきれいに動いているようだ。

続けて作業したいところだが、家事タイムになったのでここまで。
また今夜かな。

| | コメント (0) | トラックバック (0)



加速テーブル作成。

このBasicMouse/DCでは割り切って速度制御をあきらめ、サーボの目標位置を16KHzごとに更新し、それに対する位置サーボだけでコントロールしてみる。

------

ステッパーBasicMouseでは、タイマーコンペアマッチでパルスを各々精度よく出力している。
これはDCでも、そうであるに越したことはないのだけれど、このマウスでは使えるタイマーがまったく残ってない。

そこで、ソフトウエアですべて処理することを考える。
具体的には、次の目標位置更新までの残り時間をソフトウエアで管理し、16KHz割り込みごとに62.5usecを減らして行く。
計算値がアンダーフローするタイミングで、目標位置をインクリメント(またはデクリメント)し、加速テーブルから次のタイミングまでのインターバルデータを引き、残り時間に加算して処理を終える。これを左右でそれぞれ行う。処理の集中を避けるために、0.5msecおきに左右交互に行い、各々1msec間隔の処理とする。

加減速データもCPUで算出すると、自由度が高くていいのだけれど、H8-Tinyには荷が重いというもの。
オリジナルと同じくExcelで計算済みのテーブルを使うことにした。

目標値更新の時間精度は、最大62.5usecの誤差が出るけれど、累積誤差も必ず62.5usec以内に収まるし、ローカルサーボ自体が目標値に対して定常でも3~10ステップくらいの偏差が残っているようなので、問題にならない(と成立するので、うれしい...)

....文章で説明すると、なにがなんだかわからないけれど、実装してみると大体うまくいっているようだ。
バッテリーパックをくみたてていないので、迷路では走らせられないのだけれど。

今日はここまで。今日の割り込み処理時間14.0~28.9usec。そろそろいい感じになってきたが、未実装の処理も残り少なくなってきた。なんとか収まってほしいことろだ...

| | コメント (0) | トラックバック (0)

2004年5月14日 (金)



センサ動作確認。

センサ基板は最初のBasicMouse製作時から受け継いでいる。
もう2年以上も使っていることになる。

これを機に、オペアンプを2902から660に換装してみる。
確かに近距離側のレンジが広がっているようだ。
以前は、2.8Vくらいがピークだったのが、3.7Vくらいまで伸びるようになったみたいだ。

今日の割り込み処理時間 15.4~21.3usec。

| | コメント (0) | トラックバック (0)



センサボードへの配線完。
LCDの制御を細かく分割し、サーボをかけながらでも表示ができるようにしてみる。
ソフトを書き、センサLEDを点灯させてみる。本来ならばフラグだけを立てて、実際にポートをたたくのはバックグランド側にしたいところだけれど、いろいろ考えて割り込み処理側に持たせてみる。
まずは単純に、0.5msecおきに4つのLEDをローテーションさせてみる。

この状態で、割り込み処理時間は14.0~19.9usecと観測されている。
まずまずといったところか。

| | コメント (0) | トラックバック (0)

2004年5月12日 (水)



火入れ。モーターを回してみる。

問題ないようなので、さっそくサーボをかけてみる。とりあえず位置サーボ。(というかこの構成では、速度サーボは分解能が低すぎてうまくかけられないような気がするが...)サーボ周期はひとまず、PWM周期の16倍、1msecとする。
一連のDCマウスでさんざんやったので、さっくりとコーディング。

まず左のモーターをフリーにしておいて、左輪のエンコーダカウントに対して、右輪を追従させるようにサーボをかける。
こうしておいて、左輪を手でまわすと右輪が同じ動きをする。
ゲインを大きくしたり、手で負荷をかけてみたり、ホイールに重りを貼ってみたりして、サーボがちゃんと機能しているかチェック。

大体いいようなので、D項を入れてみる。
右輪を止め、左輪を手で回していくと、カリカリカリカリ・・・・といった感じの手ごたえがある。
エンコーダーがカウントした瞬間にD項が加算されているからだ。

大体イメージしているとおりにいっているようだ。
しばらくこの状態で遊んで、不連続な動きをしたりしないか、眺めて暮らそう。

順調に進めば、今週末に迷路に置くところまで進められるかも...

| | コメント (0) | トラックバック (0)

2004年5月11日 (火)




モータードライブボード配線終了(?)
ハードな戦いであった...しばらくハンダ付けは、いいです...

なんとなく、それとなく、BasicMouseのモータードライブ基板の雰囲気が出てるような気がする。そこは満足。
火入れは日を改めて。
残すはCPUボードのセンサボードとの接続部分のみとなった。

今回のモータードライブ回路は、03Bとは異なり、ON/FREEの構造になっている。デューティOFFサイクルのときに、還流回路にダイオードが残るタイプ。

よく考えてみると、この方式ならば通電方向を変えない限り、いわゆるデッドタイムは必要ないのでは?という気がしてきた。
通電方向を変えるときには必ず、デューティ0%のサイクルを1つ挿入すればいいのではないか?
だとすると、もっと効率のよいシンプルなゲートドライブ回路が作れる。
もしかして、というより井藤さんや井谷さんの回路は、要するにそういうことなのか...

話では何度も聞いていたはずなのだけれど、自分の頭の中でかみ合うまでに、ずいぶん時間がかかっている...

| | コメント (0) | トラックバック (0)

2004年5月10日 (月)



ハンダ付けに疲れたので、モーターの制御目標値を生成するルーチンを仮に作ってみる。

処理時間を計ってみると、9.7~14.2usecとなった。まだ大丈夫だ...
あと、割り込み処理部分に入れなければならないのは、コマンド終了判断部分と、インターバル処理のフラグセットだけれど、この分ならなんとか30usec以内に収まるかな...

はやくモーターを回せるようにして、実際にサーボをかけて実験してみたいところだ。

| | コメント (0) | トラックバック (0)



モータードライブ基板ひたすら配線中。結構時間がかかる...
物理的に載せるのがやっとで、合理的なレイアウトが採れない。

| | コメント (0) | トラックバック (0)



ソフトウエアの構成について、ちょっと考える。

H8-Tinyでは優先割り込みが設定できない。SHやH8Sでは15レベル、H8-300Hでも、2レベルの設定ができる。

優先順位が付けられないときに、タイミング要求がシビアな複数の割り込みを使おうとすると、どうにもまずいことが出てくる。
経験則で、なんとなくだけれど、アセンブラを使えばOKとか、そういうことではないような気がしている。
なので03Bとかでは、複数のレベルの割り込みを使用し、インターバルタイマーやモーター制御などを、非同期で処理している。

BasicMouse/DCのソフトウエアでは、割り込みは1系統、この16KHzインターバル割り込みのみでやってみようと思っている。
制御単位もこの62.5usec刻みとして、ポーリングによって動かしてみる。

ステッパーでは、ちょっと成立しないような気がするし、マウスの本質でもないし、普通ならまずそれなりの(多重割り込みレベル設定可能な)CPUを選択するのがスジだと思うのだけれど。
まあテーマというか、試みとしては(自分としては)面白いのでは?と思ってみている。

| | コメント (0) | トラックバック (0)

2004年5月 9日 (日)



Nch側は、ロジック直結でもいいような気がしてきた。
うまくスイッチングスピードを合わせられれば....
モータードライブ基板を作り直すときは、こちらのほうかも...

| | コメント (0) | トラックバック (0)



回路図(全体の1/4)
実機では試してないけれど、いくらか(0.1usecくらい?)デッドタイムができる(??)はず。どうだろう?

| | コメント (0) | トラックバック (0)

2004年5月 8日 (土)




モータードライブ基板組み立て中。
とりあえず、部品は全部載ったが...やばいかも..

もう空きランドがほとんどない。
大容量ケミコンを取り付けなきゃいけないのだけれど場所がない。
裏側に取り付けるかなぁ。オリジナルもそうなっているし。

| | コメント (0) | トラックバック (0)

2004年5月 7日 (金)



昨日は割り込みのオーバーヘッドで、こんなもんかな?で3usecと書いたけれど、実際にどれくらいなのか調べてみた。

コンパイルオプションを変更し、アセンブルリストを吐くようにしてみる。
タイマーW割り込みのところは...

;*** File HANDLER.C , Line 110 ; block
_TMW: ; function: TMW
PUSH.W R6
PUSH.L ER1
PUSH.L ER0
;*** File HANDLER.C , Line 110 ; block
;*** File HANDLER.C , Line 133 ; expression statement
MOV.W @65414:16,E0

(・・・略・・・)

;*** File HANDLER.C , Line 180 ; block
POP.L ER0
POP.L ER1
POP.W R6
RTE

となっていて、push/popとretで、全部で38ステート。
割り込み処理への分岐時間は、マニュアルによると15~27ステート。
合計で53~65ステート。

1ステート50nsecだから、実際のオーバーヘッドは2.65~3.25usecとなる。
感覚的にこんなもの、という感じで書いたにしては、ずばり真ん中を射ているなあ...
もっといろいろ処理を加えていくと、退避されるレジスタも増えるのだろうけれど。

アセンブルコードを見ていると、もうほんのちょっと高速化できそうなところがある...しかしインラインアセンブラで高速化するのも最後の手段にしたいところだ。

プログラムは、この調子で実行時間を計測しつつ、パズルのように進めていくつもり。たまにはこんなのも面白いだろう、多分...
(本人が)こわれたり、システムが破綻したら、用心棒の先生に変わってもらうし...

| | コメント (0) | トラックバック (0)

2004年5月 6日 (木)




駆動ブロックのエンコーダーの配線のみ、仮につないで実際にカウントさせて見る。特に問題ないようだ...

いろいろ考えたが、結局単純な方法を試した。エンコーダーのパルスを入力ポートに直結。高速なインターバル割り込みにて処理を行い、すべてソフトウエアでカウントしてみる。
枯れた手法だと思うので公開。

エンコーダーは、P8.6、P8.7とP8.0、P8.1に接続されている。

16kHzインターバル(62.5usec)で割り込みを回す。割り込み処理内部で前回、前々回と、今回の状態を比較し、インクリメント、ディクリメントの処理を行う。これで24kHzまでの帯域を確保。直線走行で約7.2m/sec相当。多分大丈夫、かな。


(グローバル変数 定義部分)

const signed char ccEncorderEncord[64]={

0,1,-1,0,-1,0,2,1,1,-2,0,-1,0,-1,1,0,
0,1,-1,-2,-1,0,0,1,1,0,0,-1,2,-1,1,0,
0,1,-1,2,-1,0,0,1,1,0,0,-1,-2,-1,1,0,
0,1,-1,0,-1,0,-2,1,1,2,0,-1,0,-1,1,0

};

(割り込み処理部分)

int i,j;
char c;

us = TW.TCNT;

if ( 1 ){
TW.TSRW.BIT.IMFA = 0; /* 割り込み要求クリア */

usEncorderBuff <<= 2;
usEncorderBuff = (unsigned short)((IO.PDR8.BYTE & 0x00c3) | (usEncorderBuff & 0x0f3c));

c = ccEncorderEncord[usEncorderBuff & 0x3f];
usEncorderLeft = (unsigned short)((int)usEncorderLeft + (int)c);

c = ccEncorderEncord[(usEncorderBuff >> 6) & 0x3f];
usEncorderRight = (unsigned short)((int)usEncorderRight + (int)c);
}
usTest = TW.TCNT - us;
}

(バックグラウンド)

LCDCommand( 0x80 );
sprintf( strBuff, "L %04X R %04X ", usEncorderLeft, usEncorderRight );
for(i=0;i< 16;i++){
LCDData( strBuff[i] );
}

LCDCommand( 0xc0 );
sprintf( strBuff, " %2d.%2d usec ", usTest / 20,(usTest % 20) * 5 );
for(i=0;i< 16;i++){
LCDData( strBuff[i] );
}



割り込み処理時間は、現在のところ見たとおり。実際にはこれに割り込み自体のオーバーヘッドがあるから、+3usecくらいか?
これから処理を追加していって、40usec以下くらいに押さえられれば、何とかなるのでは?と思っている。

どうだろう?

| | コメント (0) | トラックバック (0)

2004年5月 5日 (水)




駆動ブロックへの配線。
オリジナルでは、P8.0~4まで。
このBasicMouse/DCでは、P8.0~7まで。ポート8をすべて使用する。
空きピンに残りの配線が追加されている。
つまりCPUボードは、オリジナルに対してアッパーコンパチということだ。

ステッパーと共用可能、と思ったら、オリジナルに対して穴1つ分短かった...無念.....作り直そうかな....

さてマウス終了。またまた家事タイム。

| | コメント (0) | トラックバック (0)



LCDが動くようになった。

オリジナルは、P5.4~6をLDCのRS,RW,Eに割り当てている。
RWは、BUSYをチェックしなければ、事実上必要ない。

3694ではi2cが改良されている(らしい。未検討)ので、ここはひとつ、EEPROMでも取り付けてみることにする。デッドストック品の1M EEPROMの出番もできた。
03、03Bではパラメーターなどの多くを不揮発性メモリーにおいておくことで、いろいろ使い勝手がよかった。検索MAPデータも保存できるし。

そのためにはP5.6をあけなければならない、ちょうどかみ合って、P5.6にアサインされていたEをP5.5に変更。ソフトウエアの変更を最小限にする。

さて、キリがいいので家事タイム。昼飯準備でマウス中断。

| | コメント (0) | トラックバック (0)




いろいろ間違えて大幅に時間がかかったが、やっとフラッシュの書き込みができるようになった。

どんな道具でも、手になじむまでに時間がかかったりするものだけれど...

もう寝よう。

| | コメント (0) | トラックバック (0)

2004年5月 4日 (火)



夕食後はマウス作業再開。

駆動ブロックが組みあがったので、そろそろCPUボードを組み始める。シリアルかLCDがないと、動作チェックがやりにくい。

うっ、トラ技がない。うーん、持ってったままだったか...
仕方がないので、パターンをおってピンロケを調べる。

| | コメント (0) | トラックバック (0)



駆動ブロック配線終了。
駆動ブロックと、モータードライブ基板は10ピンのピンヘッダーで接続されている。この部分もBasicMouseスタンダード。基板間で配線を引くと、断線などトラブルの原因になるので、極力使わない方針で進める。

------

元通り組み上げてみると、なんだか軸がずれていてキャンバがついている....
L型ピンヘッダを、直角部分の固定だけでなく、エンコーダーの配線としても使用している。ここの配線をしたときに寸法が狂ったか?と思い、ジュラコンのスペーサーの長さを微調整。
一向によくならない...と思っていたら、エンコーダー自体を固定しているM1.6のねじが緩んでいる...これか...
スペーサーも新品に交換。一応解決。hp更新してみる。

連休でペースが上がらないのもあいまって、進捗は芳しくないが...こんなものだろう。

| | コメント (0) | トラックバック (0)

2004年5月 3日 (月)




駆動ブロック配線中。

ロータリーエンコーダーが中古なので、足の長さが足りない...
適当に抵抗の足かなんかで延長。

| | コメント (0) | トラックバック (0)

2004年5月 2日 (日)




休みの日は秋葉。

マウス関連ではないけれど、ここのところ少し話題になっている、千石のジャンク液晶(\200)と、CMOSカメラモジュール(\150)を購入。

液晶は、ロウ/カラムドライバのみ付いているようで、出ているフレキが40Pくらいある。
これは動かせたとしても、コントローラーをコンパクトにまとめるのはたいへんそうだ...どなたかが解析されるのを待とう...

------

カメラのほうは、SHARPのCMOSカメラモジュール、LZ0P3820のようだ。4年前のものなので、メーカーのサイトにはすでにデータシートは無いようだけれども、LZ37C1Bがほとんど同じもののようだ。
電源電圧が違うようだけれど...

おりしも、井藤さんや森永さんなど、RoboCupヒューマノイドリーグでの画像処理の話が出ているのとかぶるのだけれども、何か遊んでみるのも楽しそうだ。

今回作った7145ボードが、ちょうどいいな...

| | コメント (0) | トラックバック (0)

2004年5月 1日 (土)



やっと、通常モードに復帰(?)BasicMouse/DCを再開。

------
一般には(私にも)高性能だけれど、高価で敷居の高いとされているDCマウス。
けれども、BasicMouseの精神に沿って、(それなりに)安く、通販物、店頭物で組み上げ、大会に参加できるものが作れないだろかか?
それが、外見や構成でも、オリジナルのBasicMouseそっくりだと面白そうだな....ということでやっている。建前は。

しかし本音のところは、03Bをちょっと偏りすぎたバランスにしてしまったのかも?という迷いがでてきていてる。
諸元を標準的なものにしたDCマウスを実際に製作してみて、感覚のリファレンスを作ろうと思っている。どう出るか....

------

03Bを製作する過程で、同じ2輪マウスでも、ステッパーの2輪と、DCの2輪では、まったく違う方向性があるのでは?と思うようになってきた。もちろんその重量ではなくて、姿勢制御の可能性について。
3月の支部例会で発表した通りなのだけれども、DCはその構造上、ステッパーでは不可能な制御ができる(可能性がある)。
03Bで、その可能性を見出した(と思う)ので、このBasicMouse/DCで、その検証ができるといいのだけれど...

| | コメント (0) | トラックバック (0)

« 2004年4月 | トップページ | 2004年6月 »