なんでも作っちゃう、かも。

Arduino/Make/フィジカルコンピューティング/電子工作あたりで活動しています。スタバの空きカップを使ったスタバカップアンプなど製作。最近はもっぱらArduinoと3Dプリンタの自作に興味があります。

作業テーブルの製作(本番)3

Posted by arms22 on 2015年01月25日 0  0

作業テーブル製作

平日の夜にBRIWAX=蜜蝋を塗っておいたので今日は磨き作業を行います。タワシを使って余分なロウを落し、乾いた布でピカピカになるまで磨きます。杉は磨くと節がくっきり浮き出てきて良い感じです。

作業テーブル製作

天板も同様にタワシと布で磨きます。面積が広いので結構時間がかかりました。

作業テーブル製作

磨きが終わったので場所をベランダから洋間に移して組み立てを行います。足のホゾ穴に幕板のホゾを差し込んで接合し、天板と幕板をコーススレッドで接合します。

作業テーブル製作

テーブルをひっくり返して組み立て具合を確認すると足がグラグラしていたのでコーススレッドで幕板に固定しました。。一生懸命ホゾ継ぎにしても最後はこうなってしまう。。

作業テーブル製作

完成しました。3週間にわたって行っていた作業テーブルの製作も今回で終了です。これで広々作業することができるようになりました。ただテーブルが大きすぎて窓際に移動させるのに苦労したけど。。

関連記事



作業テーブルの製作(練習)
作業テーブルの製作(練習)2
作業テーブルの製作(本番)
作業テーブルの製作(本番)2

Category : DIY

作業テーブルの製作(本番)2

Posted by arms22 on 2015年01月19日 0  0

さて前回の続きです。

作業台

あらかじめボール盤でいくつか穴をあけてからホゾ穴の加工を行いました。前回、練習用の棚を製作したときより綺麗にできました。使用した木材=杉は加工し易いみたいで思ったよりうまく加工できました。

作業台

縦方向はユルめに横方向はキツめに仕上げています。

作業台

カナヅチで叩き込んでみました。なかなかいい具合にはまりました。

作業台

穴あけ作業が終わったらヤスリで綺麗に仕上げます。次回、BRIWAXの塗布・組み立てを行います。

関連記事



作業テーブルの製作(練習)
作業テーブルの製作(練習)2
作業テーブルの製作(本番)

Category : DIY

作業テーブルの製作(本番)

Posted by arms22 on 2015年01月12日 0  0

作業テーブル(本番)の製作をはじめました。テーブルの材料は届いていたのですが、昨年末はマンションの外壁工事の影響でベランダで作業できませんでした。

作業テーブル大

とりあえずモデリング。天板の大きさは1830x50mm、高さは750mmとしました。前回製作した時、高さは830mmとしましたが少々高すぎると感じたので少し低くしました。

木材はジョイフル本田で購入しました。

  • 桧 特等 エアドライ材 40×85×3000mm 2本
    幕板に使います。長い木材は歪みが酷いようです。。短い木材を必要数買った方が良かったかもしれない。
  • 杉 特等 KD材 プレーナー加工 60mm×60mm×1820mm 2本
    731mmにカットして足につかいます。
  • パイン集成材(無節)19mm×500mm×1830mm 1枚
幕板とテーブルの足を必要な長さに切ってホゾ穴の加工に入ります。

木枠にクランプしてほぞ加工

今回は四方胴付きというほぞに挑戦。木材を横に挽く時はソーガイドが使えるのだけれども縦に挽く時はこうやって木材をテーブルなり木枠なりに固定し、固定した台をガイドにしないとうまく切れない。

四方同つきほぞ

縦に挽きすぎてるけどそこそこうまく切れた。

旋盤でネジ穴

天板と幕板を固定するためのネジの下穴をボール盤であけました。天板が大きいので穴の数も多めです。持ってて良かったボール盤。

次回ほぞ穴の加工をやります。

関連記事


作業テーブルの製作(練習)
作業テーブルの製作(練習)2

Category : DIY

Arduinoで光学式マウスのCMOSセンサーを乗っ取って移動距離を計測する

Posted by arms22 on 2015年01月07日 5  0

IMGP0612

昨年末の話。勤務先の大掃除の日にいらなくなった光学式マウスを頂戴してきたので、マウスに内蔵されているCMOSセンサーを使って移動距離を計測する実験を行いました。この記事ではArduinoを使ってセンサーから座標を取得し、マウスの移動した距離をシリアルモニタに出力する方法を紹介します。

IMGP0601

写真はマウスを分解したところ(マウスの型番はFMU−HOP1-PW)。真ん中の8本足のICが今回の主役CMOSマウスセンサー「PAN3101」。PAN3101はDSPを内蔵したローコストの光学式マウスセンサーの1つで、ICに内蔵されたCMOSカメラで机やマウスパッドの表面を連続して撮影し、その映像から移動方向や距離を測定します。シリアルインターフェースを通してレジスタの値を読むことで現在のX/Y座標を知ることができます。PAN3101の横の細長いICはUSBインターフェースだと思います。

PAN3101の仕様

  • 電源:4.75V〜5.5V
  • システムクロック:18.432MHz
  • 速度:21インチ/秒
  • 解像度:400 or 800カウント/インチ
  • フレームレート:3000fps
  • 動作電流:10mA(移動中)、5mA(停止)、100uA(パワーダウン)
  • インターフェース:2線式シリアル
※CMOSカメラの画素数は不明。
※このICはカメラ映像を抜き出すことはできない様子。

IMGP0598

IMGP0597

ICの裏側にピンホールが開いていてプラスチック製のレンズが取り付けられている。


ハードウェア


IMGP0617

USB ICとマウスセンサの間のSCLK/SDIOのパターンをカットしSCLK/SDIOにワイヤに接続します。USBケーブルが接続されていたスルーホールをArduinoとの中継ポイントとして利用するためUSB ICに接続されているD+/D-のパターンもカットします。

次のようにArduinoと接続します。PAN3101のピン割り当てはデータシートを参照してください。
マウス to Arduino
VDD(7) 5V
SCLK(4) 2番
SDIO(3) 3番
GND(6) GND

ライブラリ


幸いにもArduino用のライブラリを見つけることができました。OptiMouseはPAN3101以外にAgilentのADNS-2051・ADNS-2083・ADNS-2610に対応しています。

OptiMouse
https://github.com/zapmaker/OptiMouse


スケッチ


//使用するデバイスに合わせてインクルードするヘッダファイルを選択すること
#include "PAN3101.h"
// #include "ADNS2051.h"
// #include "ADNS2610.h"
// #include "ADNS2620.h"
// #include "ADNS2083.h"

//ピン割り当て
#define SCLK 2
#define SDIO 3

//PAN3101デバイス作成
PAN3101 Optical1 = PAN3101(SCLK, SDIO);
// ADNS2051 Optical1 = ADNS2051(SCLK, SDIO);
// ADNS2610 Optical1 = ADNS2610(SCLK, SDIO);
// ADNS2620 Optical1 = ADNS2620(SCLK, SDIO);
// ADNS2083 Optical1 = ADNS2083(SCLK, SDIO);

//マウスの現在値
signed long x = 0;
signed long y = 0;

void setup()
{
  //シリアルポートを初期化
  Serial.begin(38400);
  //マウスセンサ初期化
  Optical1.begin();
}

void loop()
{
  signed char tx, ty;

  //最後のモーションステータスを取得(PAN3101とADNS2051のみ対応)
  //Optical1.updateStatus();

  //注意事項
  //updateStatusコマンドを使う場合、
  //PAN3101.hのDelta_Yを0x18に、Delta_Xを0x17に変更すること。

  //モーションステータスビットがセットされていれば
  //if (Optical1.motion())
  {
    //dX/dYレジスタを読み出して現在値に加算する
    //dX/dYレジスタには前回読み出してからの相対値が格納されている
    //dX/dYレジスタは8bit(-127〜128)なのでオーバーフローする前に読み出すこと
    tx = Optical1.dx();
    x += tx;
    ty = Optical1.dy();
    y += ty;

    //dX/dYレジスタに値がセットされていれば
    if (tx || ty)
    {
      //現在値をmmに変換してシリアルポートに出力する
      Serial.print("x=");
      Serial.print((25.4 * (float)x) / 800.0);
      Serial.print("mm y=");
      Serial.print((25.4 * (float)y) / 800.0);
      Serial.println("mm");
    }
  }
}
スケッチをアップロードしシリアルモニタを開くとマウスの移動した距離が次のように出力されます。
x=46.99mm y=5.11mm
x=47.05mm y=5.02mm
x=47.05mm y=4.95mm
x=47.09mm y=4.86mm
x=47.12mm y=4.79mm
x=47.15mm y=4.70mm
x=47.15mm y=4.64mm
x=47.18mm y=4.57mm
x=47.18mm y=4.54mm
x=47.21mm y=4.51mm
今回使用したマウスは2007年頃の製品で同じICを使ったマウスを手に入れるのは難しいと思います。けれども安いマウスはどれも同じようなセンサーを使っていると思うので取りあえず光学式マウスを見つけたらバラしてICの型番を確認してみてください。そしてGoogleで検索すればきっと対応するライブラリが見つかると思います。

参考リンク


PAN3101
http://www.pixart.com.tw/upload/PAN3101_V10_20051121170653.pdf

Interfacing an optical mouse sensor to your Arduino
http://www.martijnthe.nl/2009/07/interfacing-an-optical-mouse-sensor-to-your-arduino/


↓最近は青色LEDを採用した光学式マウスが主流になってきているみたいですね。

iBUFFALO 有線BlueLEDマウス Mサイズ レッド BSMBU16MRD
バッファロー (2013-06-28)
売り上げランキング: 745


↓いわゆるPCゲーマー向けのマウスは高速・高解像度のセンサを搭載したモデルが多いようです。こいつも1度バラしてみたい。

LOGICOOL ゲーミングマウス G300r
ロジクール (2013-04-19)
売り上げランキング: 83

該当の記事は見つかりませんでした。