2010年10月3日日曜日

8割完成

  8割完成したというより8割しか完成していないという方が正しい.レジストがあるのでハンダ付けはほとんど問題なく進む.Nakashimaさんの教訓を活かしこまめに動作チェックしながら進めたのでトラブルも短時間で解決.ただし,以下2点が痛い.

    - 物理的に干渉するところがある.
    - 加工ミスで部品作り直しの必要あり.

前者は設計変更したときに十分考えていなかったのが原因だが,なんとか目処は立った.またしてもアクロバティックなハンダ付けをする羽目になったが.
後者は今思えばいい加減に加工したからであるが,あのときは暗くてそれどころではなかった.


  そういえば今日は北信越大会だったようで,誘われましたがさすがに遠いのでお断りさせていただきました.休むときに休まないと生きていけないのです.

2010年10月2日土曜日

基板到着

  当初は今回も自作基板でいけるかと思ったが,やはり基板厚を薄くしようとすると外注せざるをえない.今まで1.6mm厚しか使ったことがなく,基板の厚さと強度の関係がイマイチわからないが,katoさんの基板にならって0.6mm厚とした.

  マウス作っている人はP板を利用する場合が多いように思うが,登録しようとして途中面倒になったことと個人だと支払いが代引きだけなのでやめた.代わりにプリント基板センターを利用してみた.デザインルールはだいたい同じで価格もだいたい同じ.今は偶然登録で1000ptついてきたので1000円引きで利用できた.

  ハーフの基板なのでものはかなり小さいはずだが,届いた箱がやや大きい.開けてみるとテスターが入っていた.サービスらしい.肝心の基板は緩衝材にまぎれてあやうく粗末に扱うところであった.5枚発注したはずだが,6枚入っていた.製造上の都合かな?さらに初回利用だということで,3ヶ月有効な5000円引き券がついていた.


  基板だけで2.0gである.ハーフの重量,大きさなら0.6mmでも割れる気はしない.来年は0.4mmか?

ホイールの加工

  前回に続き駆動系部品の加工を行った.ホイールは加工手順を見直し,その結果満足いくものができた.モータ軸とタイヤとの干渉を避けるためにホイール直径9.2mmである.なんか不安.


  相変わらず作業場所は暗いが,それより黒色POMは本当に見にくい.特に中ぐりのとき.

2010年9月30日木曜日

蛍雪の功

  新作ハーフマウスのためのマウントとホイールの切削.をしようと思ったが,もともと暗い環境なのに蛍光灯が切れていてほとんど加工面が見えない.何ヶ月も前から切れているけど新しいものに替わらないあたり私のサークルの活動実態を反映している.仕方ないので自転車用のライトで照らしながら作業する.昔明かりがなかった時代の苦労がわかる.

  しかしながらホイール径がイマイチ.設計がよくなかったらしい.明日の夜また作ることにする.また暗いと嫌だなあ.

2010年9月5日日曜日

中部地区初級者大会

  名古屋まで遠征してきました.今回は行き帰りともリッチに新幹線を利用したのでだいぶ楽に移動し,かつ,移動時間の有効活用ができました.参加者は多かったように思いますがスムーズに進行していましたね.さすがです.

  私は,ハーフマウスの競技だけ参加し,結果は以下の通り.参加者が少なく,エキスパートの人除外のおかげですが.私は初級者なのか?ハーフでは初級者ですね.たぶん.

    こじまうす6 5秒772 優勝

  次は中部地区大会ですかね.それまでに今年の本番用にハーフマウスを作りたいが,どうせいろいろあって忙しいだろうな.でも作るけど.

2010年9月4日土曜日

小数点演算の単精度化

  STM32に小数点演算をさせる場合は倍精度だと時間がかかるし,倍精度も必要無いので単精度で計算すべきだろうと思う.つまり全ての浮動小数点変数はfloatで宣言し,浮動小数点定数は1234Fのようにfloat型であることを明示すべき.特に定数値は数値だけ書くと倍精度として扱われるので,途中の演算が倍精度で行われて時間がかかるだけでなく,代入の時に単精度に変換することになるのでよけいにかかる.

  私のマウスは現状定数には何もつけていなので倍精度で計算されていることになる.全部定数にFをつけるのが面倒だなあとか思っていたが,やはりそういうコンパイルオプションはあるらしく,
    -fsingle-precision-constant
とすると定数が全て単精度になるらしい.(GCC以外にこのオプションがあるかどうかは知らない)

  以下,このオプションを付けない場合の調査結果.ただし,一定時間毎に割り込みがかかってたりするので計算時間の絶対値に意味はない.

1. 304ms
    float temp=1.0;
    for(int i=0;i<100000;i++) temp = temp * 1.0001;

2. 116ms
    float temp=1.0;
    for(int i=0;i<100000;i++) temp = temp * 1.0001F;

3. 225ms
    double temp=1.0;
    for(int i=0;i<100000;i++) temp = temp * 1.0001;

4. 406ms
    float temp=1.0;
    for(int i=0;i<100000;i++) temp = temp / 0.9999F;

初級者大会前

  さて,5日は中部地区の初級者大会ですね.わりといろんな方が参加されるようで,運営の方は大変かと思います.私もハーフだけ登録してあります.といっても7月末から何も変わっていないし関西支部の大会から中途半端にプログラムを書き換えてある分遅い.とりあえず壁切れだけちゃんと読めるようになれば少しはましになるはず.あと一日あるが,調整に使えるのは2時間くらいか.