ヤフオクで買ったエアタッカー便利

エアタッカー買った。

強いことで有名なダイソーのハンドタッカーは前から持ってて、バイクのシートを張り替える時とかキーボードのアームレスト作るのとかに使ってたんだけれども、今回アドレスV125のシートを張り替えようと思ったらベースのプラスチックが硬すぎて針が通らない。

しかたがないので中国産のエアタッカーをヤフオクで買った。

保証付 新品 エアータッカー 針12000本付 シート 貼り替え - バイクパーツセンタープラス - ヤフオク!

針が12000本付きで送料込み3000円以下だった。

売ってるものは、Amazonとかで安く売ってるものと同じと思われる。

 

f:id:yklycoris:20160203152844j:plain

 

 

 

使ってみた感じ、普通に問題なく使える。

毎日仕事で使うならもっと上等な物を使うほうがいいと思うけど。

エアネイラー自体が強力なので、付属のちゃちい針でも何の問題もなく刺さる。

中にシリンダが入っててエアがシリンダを動かして針を押し出す構造なので、空気圧を変えれば射出力を調整できる。

バイクのシートを貼るなら、0.4~0.5MPa程度がちょうど良かった。それ以上の圧力で使うと革を貫通した。

 

f:id:yklycoris:20160203152305j:plain

f:id:yklycoris:20160203152316j:plain

ハンドタッカーだと割と苦労するけど、エアタッカーがあればシートの張り替え一瞬で終わるしかなり楽しいので空気圧工具オススメ度は高い。

 

なお安全装置とかなにもないので指とかに刺さるととても痛そう

STM32 Nucleo F401REとmbedでリセットからプログラム実行までに10秒ぐらいウェイトが入るやつの対策

f:id:yklycoris:20150718132358p:plain

2015年7月18日時点の記事です。

昨日ひさしぶりにmbedとNucleo F401REでセンサのテストプログラムを作ったら、マイコンのリセットからプログラムの実行までに10秒程度のウェイトが入るようになっていることに気づきました。

調べたところここに原因はこれのようです。

STM32F4: HSE timeout increased from 0.5s to 5s, needs 10seconds to fallback to HSI · Issue #1096 · mbedmicro/mbed · GitHub

ざっと読んだところ、よくわかりませんでしたがSTの新型マイコンにmbedを対応させるためにmbedライブラリの実装を旧式のSPLから新式のCubeMX(HAL)に変更したがなんか都合があって5秒x2で10秒のディレイが入っているらしい。

 

対策としては、mbedのソースライブラリをインポートして該当部分を書き換えるだけです。mbedがオープンソースになってるのに昨日気づきました。

該当部分は以下です。

mbed/stm32f4xx_hal_conf.h at master · mbedmicro/mbed · GitHub

 

 

手順

標準のコンパイル済みmbedライブラリを削除して、mbed-srcライブラリをインポートします。ちょっと読み込みに時間がかかります。

mbed-src - a mercurial repository | mbed

以下のファイルを開きます。

mbed-src\targets\cmsis\TARGET_STM\TARGET_STM32F4\TARGET_NUCLEO_F401RE\stm32f4xx_hal_conf.h

104行目の

#define HSE_STARTUP_TIMEOUT ((uint32_t)5000)

#define HSE_STARTUP_TIMEOUT ((uint32_t)500)

に変更するとウェイト時間は1秒になります。

 

感想

電源入れてから起動まで10秒もかかるのはかなりアレなのでそのうち戻るんじゃね(適当)

mbedってArduinoより性能高いし色々良いところはあるけど日本語情報はあんまりないのでなんか気づいたら積極的に情報を公開すべし。

NUCLEO-F401REをmbedのオンラインコンパイラで使う際FPUは有効になっている。

Nucleo F401REに搭載されたSTM32F401REは単精度FPUを搭載していながら1500円で買える貧乏人の味方である。

後輩からこれをmbedのwebコンパイラから使用する際にFPUが無効設定になっているとの情報を得た。

また、別の後輩からオフラインコンパイラ(Keil uVision)であればFPUを有効にできる旨(http://developer.mbed.org/media/uploads/hirokazu_yago/mbed-nucleo-f401re-offline-works.pdf)情報を得た。

二月ほど前にジャイロを使った角度推定で処理速度が出なくて困っていた私はなるほどこれが原因かと考え、確証を得るために急遽南米へ飛んだ。

検証

1.00001を1万乗するプログラムの実行にかかる時間を測定した。

#include "mbed.h"

Serial pc(USBTX, USBRX);
Timer timer0;
float num = 1.0f;

int main() {
    pc.baud(115200);
    pc.printf("start\n");
    timer0.start();
    for(int i=0;i<10000;i++){
        num *= 1.00001f;
    }
    pc.printf("num = %f time = %d\n", num, timer0.read_us());
}

結果

webコンパイラ 298us

uVision 298us

結論

webコンパイラでもFPUは有効である。まんまと踊らされた。

なお、上記資料にあるFPU有効化設定は現在既にwebコンパイラからエクスポートした時点で行われているのでしなくてよい。

以下のおまけ情報は処理を高速化するのにとても重要であるので読んだほうが良い。

おまけ① float指定

F401REのFPUは単精度である。ということは高速に処理できるのはfloatだけです。doubleはCPUで処理されます。

上記プログラムで小数には全部1.0fみたいにfloat型を明示してあるけどこれをサボるとdouble型として認識されるのでFPUは使用されずあなや。

具体的にはfloat型では298usで終わる上記処理がfを明示し忘れると32708usかかる。処理時間109倍である。あなや。

角度推定の処理速度が遅い理由はこれであると思われる。

おまけ② コンパイルオプション

uVisionでプロジェクトを開いた際の初期設定では、コンパイルオプションが色々無効になっているので、設定しないとwebコンパイラより遅いという残念な状態になる。

以下のようにコンパイルオプションを設定する必要があった。

設定するのは-O3とOptimize for timeとPlain char is signedだけでよい。

オフラインコンパイラ Keil uVision4 を使ってみる(その1) | mbed

/media/uploads/MACRUM/option_mod.png

実行時間は以下のとおりだった。

O0 1669us

O1 1073us

O2 1073us

O3 597us

O3,Optimize for time,Char 298us

FPU無効 32708us

やりたいことメモ

一応成績は半分以上なのだけれども運悪くラボの他の皆様の成績がよくて推薦からあぶれたので、今、8月末の院試に向けてラプラス変換の勉強をしている。

 

試験に向けて勉強をする期間が人生で一番クリエイティブになれると思っているので、やりたいこと作りたいものが山のようにできるわけだが今やると人生が狂うのでメモだけしておく。

  • サーキット用ラップタイマー自作 期限なし
  • NSR50レーサー製作 9月頭をめどに
  • 依頼されてる制御装置の製作 9月中
  • 新型Kuroway製作→あいちゃれに出す。 10月13日締め切り
  • 合同ロボコン用ライントレーサー製作 9月中旬
  • アドレスV125のドリブンプーリーの交換 いつでも
  • ヤフオク関係 収入源

そして研究もする。

 

定期的な試験は日常のありがたみを思い出させてくれるが、定期的に人生が左右されるのはやめて欲しい。

Oculus Rift欲しい

WBSOculus Rift特集やってるの見てて、存在自体は前から知ってたけど完成度高くてテンション上がった。

高解像度&低遅延なのがいい。

 

実は昔、マテリアルスナイパーにハマったあげくARToolKitでスナイピングゲームを作ったことがあって、

f:id:yklycoris:20140610005910j:plain

こんなモデルガンを自作して

f:id:yklycoris:20140610005913j:plain

こんなソフトを作った。

モデルガン(木から削り出したり板金で作った)の先端にウェブカメラを取り付けて、PCで処理してマーカーを基準に合成した的をモデルガンに取り付けたPSPに映し出している。

的は動くし撃ってから着弾までにタイムラグもあり、さらに撃った際やリロード時の音響をこだわって結構臨場感あふれてて楽しかった。

これを作る際に初めはHMDを使おうと思っていたのだが、その当時(2010年頃)安いHMDはVuzixの低解像度のしかなく、それでもそこそこの値段はしたので小型モニタとしてPSPを使ったのだった。

その頃に比べてみればFHDで加速度センサが付いたHMDが400ドルなんだから技術の進歩凄い。

 

Oculusについて調べてたらこんな記事を見つけた。

余命わずかの女性がOculus Riftを使って最後の外出を体験 | コタク・ジャパン

HMDの用途がゲームだけじゃない、とても良い使用例で良い話なんだけどこれどっかで聞いたことあるなって思ったらSAOの絶剣編だった。

ユウキ氏は先天性エイズだったりメディキュボイドはフルダイブできたりするけどVRを使って外出ができない患者のQOLを上げるって使い方は同じで、Web版SAOが2000年代前半の小説であることを考えると割と本気で俺今未来に生きてるなって思うしSAO2期がとても待ち遠しい。

 

良いアイデア思いついたら是非Oculus買おう。もしくは買ったけど放置してる人から借りよう。

安いリポ充電器

SKYRC社製充電器

http://retail.hobby.co.jp/163.html

http://www.rc-airstage.com/default.php/cPath/62_67?osCsid=hr4ekjppshf0t662kjfp6tktp1

保証はほぼなしのメイドインチャイナ

前はこれの4ch同時充電器が1万円で売られてて2台買った。うち1台が半年ほどで2ch死んだ。

安いのでハイリスクハイリターン。

400Wとかの充電器では圧倒的な安さ

 

いわゆるiMAX B6系とか言われる充電器は消耗品と考えたほうが良さそう。

 

旋盤で摩擦圧接はできるのか

できない。

 


【摩擦圧接】摩擦圧接による驚愕の引張強さと精度 - YouTube

 

こんな動画を見つけたので旋盤でもできるんじゃねって思ってやってみた。

結果から言うとほぼ無理

圧倒的に剛性不足

ドリルチャック側の剛性が全然足りない。

鉄は全く溶けなかった。

アルミだとある程度は溶けたし確かにくっついたが、すぐ折れた。

この感じだと、アクリルはやってないけどできると思う。