2015年 03月 10日

キヤノン EOS をウェブカメラとして使う。

(写っていないが手前に EOS がある。RasPi が写っているウィンドウは Quick Time Player の録画ウィンドウで、リアルタイムに表示している)

前にデジタル一眼レフ (EOS) をウェブカメラ的にとして使うという記事を書いたが、あくまで「ウェブカメラ的」であって OS 的に「ウェブカメラデバイス」として認識させられるわけではなかった。

しかし、500 Can't connect to blog.oldershaw.org:80 というページをふとした拍子に見つけてしまった。自分が試した方法を手順だけ簡単に要約する

インストール

要は Camera Live がキモ。

  1. Camera Live を入れる https://github.com/v002/v002-Camera-Live
    • EOS カメラを Syphon というアプリケーション間で映像データをやりとりする形に変換する
  2. CamTwist 3.0 BETA をいれる
    • 内蔵で Syphon サポートがあるので 3.0 を使うのが早い

使用方法

  1. Camera Live を起動し、カメラをUSBで繋いで電源を入れる。
  2. Camera Live のリストにカメラ名がでるので選択すると Active になる
  3. CamTwist を起動する
  4. Syphon を video source に選び、Setting の Syphon Server を Camera Live にする

これで準備完了なので、これ以降は任意のビデオアプリケーションを使う。以下は例

  1. Quick Timer Player を起動し、録画元に CamTwist を選ぶと表示がでる。
    • CamTwist が候補にでない場合、Quick Time Player を再起動する。
  2. オーディオも適切に設定すれば同時録画可能 (ただし多少遅延あり)

Tips

カメラをUSBに繋いでいると、カメラ側では露出の変更が一切できなくなる。どうするか? というと、この状態でEOS Utilityを起動して、カメラの遠隔撮影モードの画面を出せば良い。他のアプリケーションが動いていても絞りを変えたりとかは普通にできるようだ。

ちなみに フォーカス調整はフォーカスリングを回せば良いので、USB を繋いでいても可能。

備考

Camera Live は名前が攻めてるが、Canon EDSDK を使っており EOS にしか対応していない。

ただ、試したところ EOS の中でも EOS M では Camera Live のリストには出るものの、Camera Error とでて接続できなかった。EDSDK の Release Note に「In the case of EOS M, remote shooting function is not supported.」と書いてあるので仕様っぽい。

今回上手くいったのは EOS 5D Mark II

解像度については、機種によって異なるようだ。Live View の機能を使ってるので、基本的に HD よりも低い。

なので、1080p で録りたい場合はやはりカメラ側で録画する必要がある。

感想

これにより映像を録画しつつ、かつ音声を Audio Units で処理しながら同時録音が可能となる。

しかも、録画データは直接コンピュータ上にできるので、いちいちカメラからコピーしてくる必要がない。

また、普通のウェブカメラデバイスとして使えるので、ビデオ通話とかにも使える (自分はやらないけど)

というか、キヤノンがオフィシャルにSDK出していたことを初めて知ったよ… しかし日本のサイトにはない… どういうこと

Canon デジタル一眼レフカメラ EOS 5D MarkII ボディ - キヤノン

キヤノン

5.0 / 5.0

2015年 03月 09日

IntelliJ IDEA で src/test/java がないところに新規でつくる方法

よくわからないけど src/test/java ができなくてであとから作る場合

  1. src/test/java のディレクトリをプロジェクトツリーから New → Directory して作成
  2. java ディレクトリを右クリックして Mark Directory As → Test Sources Root に設定する
  3. java ディレクトリを右クリックして New → Package して使う名前空間のディレクトリを掘っておく

までやると、Refactor の destination に該当ソースパスのパッケージが出てきて移動できるようになるっぽい……

3番目の手順をやらないと destination に出てこなくて???ってなる

2015年 03月 08日

今日のミシン:ペットボトルホルダー(再)

前回のもの、写真だとわかりにくいがいろいろと失敗点があって実用は可能だが満足いくデキとは言えなかった。実はお義母さんからの要望に基いて作っているものなので、あまりひどいデキのものだと申し分けない。

ということで作りなおした。前回の経験を生かし型紙を起こしなおし少し長くつくってる。

また、各所でまち針を慎重に使うようにしたり、もう少し丁寧にやることを心がけたつもり。

全体的にはよくなったが、一部まだ気になるところはある。難しい。

2015年 03月 07日

デカい文字をA4で分割して印刷するツールをJSで書いた

デカ文字A4ジェネレータというのを書いた。

https://github.com/cho45/dekaimoji-a4

原寸印刷について

いくつか方法があるがピンヘッダのレイアウトを実寸で印刷するツールを書くときに検討した通り、PDF をつくるのが現状では確実と思われる。

その上で、プレビューとの兼ね合いを考えるとさらにいくつか方法がある。

canvas で作った画像を PDF に貼る

「画像で作ってPDFに貼りつける」という方法は JS に限らず安定して確実な出力ができる。

JS の場合でもスムーズにプレビューできるし出力も簡単。ただし出力サイズが大きい場合、メモリが足りなくなることがある。

また、テキストの選択はできなくなる。

PDF オンリー PDF プレビュー

PDF オンリーの場合、ブラウザーがPDFのインライン表示に対応していれば、iframe でプレビューができる。昨今、だいたいのブラウザーで実はpdfが組み込み表示可能なので案外いける。ただしスマフォでは未対応。

2D Context の API にあわせる

jsPDF の場合、単純な図形化なら、2D Context と APIをあわせることができるので、canvasプレビュー、pdf出力がスムーズにできそう。ただしこれはテキストレンダリングしたくなった時点で確実に破綻すると思われる。

今日のミシン:ペットボトルホルダー

404 Not Found を参考につくった。まちがえてキルティングが表裏逆になってしまった。

作ってみたけどキルティングは 14x36 ぐらいでもいいかな

JS 数値リテラルに単位をつけたい

[tech] デカい文字をA4で分割して印刷するツールをJSで書いた | Sat, Mar 7. 2015 - 氾濫原 では、実寸サイズを扱うので、多くの場所で mm や cm やら pt などの単位で数値を書きたくなる。

いろんな方法

mm を係数にして毎回乗算する方法

var mm = dpi / 25.4;

10*mm

mm を係数にして毎回除算する方法

var mm = 25.4 / dpi;

10/mm

乗算の逆。

変換を関数にする方法

function mm (num) { ... }

mm(10)

Number のプロトタイプ拡張

Number.prototype.mm = function () { ... };

10..mm()


しかし JSLint とかは 10..mm みたいな呼びかたをすると怒る。

Number のアクセサディスクリプタ

単純なプロトタイプ拡張と比べ、括弧がいらない。

10..mm
function setDPI (dpi) {
	var dpmm = dpi / 25.4;
	var pt = dpi / 72;
	var units = {
		'in' : dpi,
		'pt' : pt,
		'mm' : dpmm,
		'cm' : dpmm * 10,
		'm' : dpmm * 1000
	};

	for (var unit in units) if (units.hasOwnProperty(unit)) (function (factor) {
		Object.defineProperty(Number.prototype, unit, {
			get: function () {
				return this.valueOf() * factor;
			}
		});
	})(units[unit]);
}

setDPI(150);

console.log(10..mm);
console.log(10..cm);

しかし JSLint とかは 10..mm みたいな呼びかたをすると怒る。

アクロバティックな方法

'10 mm'

とかを数値に変換する形

var UnitConverter = function () { this.init.apply(this, arguments) };
UnitConverter.prototype = {
	init : function (opts) {
		if (!opts) opts = {};
		this.setDPI(opts.dpi || 96);
	},

	setDPI : function (dpi) {
		this.dpi = dpi;
		var dpmm = dpi / 25.4;
		var pt = dpi / 72;
		this.units = {
			'in' : dpi,
			'pt' : pt,
			'mm' : dpmm,
			'cm' : dpmm * 10,
			'm' : dpmm * 1000
		};

		var unitNames = [];
		for (var key in this.units) if (this.units.hasOwnProperty(key)) {
			unitNames.push(key);
		}

		this.re = new RegExp('([0-9.]+) (' + unitNames.join('|') + ')');
	},

	unit : function (string) {
		if (string.match(new RegExp('^' + this.re.source + '$'))) {
			return +RegExp.$1 * this.units[RegExp.$2];
		} else {
			return null;
		}
	},

	context : function (fun) {
		var self = this;
		var args = Array.prototype.slice.call(arguments, 1);
		fun = eval('(' + fun.toString().replace(new RegExp("'(" + this.re.source + ")'", 'g'), function (_, s) {
			return self.unit(s);
		}) + ')');
		fun.apply(null ,args);
	}
};

文字列化した関数を置換する。みためクロージャなのにクロージャになってないので変数アクセスで混乱する。つくれない。

結論

普通に係数使うのが一番シンプル。除算のほうがかっこいい気がする。ただし演算子の優先順位に気をつかわないとハマる。

2015年 03月 04日

MathJax のサイトが綺麗になってから一発で live demo が開けないよ!

本気でなくとも裁縫するなら絶対に知る必要があること

とりあえず本は必要。本については後述

作業について

裁断でデキの70%が決まる

伸縮性のある布を正確に裁断するのは、それだけでも大変難しい…

オルファ(OLFA) セーフティロータリカッター ゴム L型 156B - オルファ(OLFA)

オルファ(OLFA)

5.0 / 5.0


オルファ(OLFA) カッターマットA2 (450x620x2mm) 159B - オルファ(OLFA)

オルファ(OLFA)

5.0 / 5.0

基本的に裁断バサミよりロータリーカッターが良い。なぜなら布を持ちあげずに裁断できるため。型紙が動きようがない状態で裁断できると正確に切りやすくて精神的に良い。

カッティングマットはA2ぐらいがちょうどいいと思う。A1だとテーブルに乗らなかったりして扱いにくいし、A3だと小さすぎる。A2 でも結構マットを動かす必要はあります。


「水通し」「地なおし」などのキーワードを知っているかいないかでだいぶ変わる。

洗濯するものは裁断前に「水通し」をして予めある程度縮ませてから裁断するか、厳密にあわせる必要がないものは3%〜10%程度大きく裁断する。

水通しは工場で縮める処理をしているものならやる必要がないみたいな話もあるが、売られているもののうちどれがそれなのか判断することができないので、水通しをするほうが安全。ただし一度綺麗に広げて干す必要があるので矮小住宅環境ではクソ面倒。

(今のところの個人的見解では身につける衣類でなければ水通しをせずに5%大きめに作るのが良い気がしている。身につけるものは作る予定がないので水通しやらずに押しきりたい)

「縫い代」は正確にとる

「縫い代」は縫ってひっくり返すと見えなくなるので適当に切ってもええやろと思ってしまうが、これは大きな間違い。

ミシンをかけるときは常に裁ち切り線を基準に縫い代分をオフセットして縫うことになるので、裁ち切りが正確であることと同様に縫い代も正確にとれていないと、当然ミシンの縫い目(=仕上り線)も直線にならない、ということになる。

また、適当に切ってしまうと、複数枚重ねて縫うときに位置をあわせることができなくなる。がんばって仕上がり線を書いても重ねるときにそれであわせることは難しい。マチ針駆使したらできるだろうけど…

裁縫用語

微妙に特殊な「言いまわし」があって混乱することがあった。主観で重要な順に並べた。

かがり

→ 裁断した部分のほつれ防止。基本はジグザグ縫い。「端にジグザグ縫いまたはロックミシンをかける」と書いてある場合すなわちかがるということ。ロックミシンはかがり専用のミシンのことで素人には関係ない。

返し縫い

→ ミシンの文脈では縫いはじめと縫いおわりで逆方向に少し縫うこと。普通は返し縫い機能があるので簡単にできる。手縫いの場合は「縫いかた」の種類でミシンの返し縫いとは関係がない。

返し縫いは縫いはじめに針を置いて、少し普通にすすめて、戻って、もう一度すすむ。つまり返し縫い部分は3回針が刺さる。

表あわせ

→ 布の表同士をあわせること。最後にひっくり返すので裏面を見ながらミシンをかけることが多い。

ステッチ

→ 2つの布を縫いあわせる機能がない縫い目のことっぽい? 飾り・強度のためにかけるミシンのよう。「ミシンをかける」は逆に縫いあわせるという意味を含むようだ。使いわけてる人がいるけど、正確に使いわけてない場合があってややこしい。「なんとなく縫う」ぐらいのニュアンスがある。

仕上がり線

→ 縫う線。この線に縫い代を加えると裁ち切り線になる。つまり普通はこの線で裁断しない。

縫い代

→ 縫うためにつける 1cm ぐらいの領域。

縫い代を割る

→ 縫ったあと、2枚の布の縫い代がくっついているが、これをそれぞれの布の方向に開いて固定すること(アイロンをかけたりする)

裁ち切り

型紙に「裁ち切り」と書いてある場合、縫い代をつけないという。仕上がり線がすなわち裁ち切り線になる。

切替

→ 途中で別の布 (または同じ布) を繋ぐこと。途中で柄を変えたいときにやる。

パターン

→ 型紙のこと

レシピ

→ 型紙も含めた製作の手順のこと

コード (Cord)

→ 紐のこと。

地直し

→ 買ってきた布が歪んでいることがあるので (そのまま作ると洗濯したときに歪みが表面化する) それを直すこと。最近の布の品質ならやる必要ないという話もある

バイアステープ

→ 斜めに裁断されたテープ状の生地のことをバイアステープというらしい。少し伸縮性があり縁取りとかに使う

返し口

→ ひっくり返すために縫い残す部分のこと。これがないとひっくり返せない。最後は手縫いで返し口を閉じるか、周囲にステッチをかけて強制的に閉じる。

目が落ちる

→ ミシンの針が布地以外のところに落ちて空振りすること。特殊なことではなく、特に布端をジグザグ縫いでかがるときは片側はほぼ目が落ちる位置になる。

パイピング

→ 布端をバイアステープ処理すること

イセる

→ 寄せ集める。縮める。英語で gather の意味

布の種類

名前は編みかたの分類なので、実際は使用される糸の太さによって厚さは変わる

ブロード

よくあるプリントされたりしていて表面がつるつるしている、比較的薄い生地。

私見:薄いので使いどころ次第でちょっと安っぽくなる

オックス

少し厚手で編み目が明確なやつ。丈夫。キャンバスよりは薄い。(10番オックスというのがよく使われるらしい)

私見:適度な光沢があって高級感があり、汎用性が高く感じる。手触りも布!って感じで良い。

シーチング

本来シーツ用の生地でちょっとざらざらとした厚手の生地。

私見:オックスの下位互換みたいな感じがする。ちょっと安っぽいというか、荒っぽい風合いがある。

キャンバス (帆布)

厚手でかたくかなり丈夫。カバンとかに良く使われる。(11番が一番薄いが、典型的なオックスと比べるとこれでもかなり厚い生地)

キルティング

2枚の布の中に綿が入っていて斜めに縫ってあるやつ。やわらかいが丈夫。ブロードのキルティング・オックスのキルティングとかデニムのキルティングとか、いろいろある。2枚生地を使ってる分高価だけど、手軽に作れるので便利。高価といっても2枚生地を買うよりはだいぶ安い。

私見:手軽で便利だけど、できあがりがまさに小学生とかが持ってそう!という感じになる。良く言うと手作り感がでる。

きれいに縫うための基礎の基礎 - 水野 佳子

水野 佳子

5.0 / 5.0

かなり細かく「縫いかた」について書いてある。服を作らない場合必要ない技術もあるけど一通り丁寧に書いてあってよかった。

いちばんよくわかる かんたんかわいい通園通学グッズ -

5.0 / 5.0

簡単な作例がたくさん載ってて参考になった。作りかたほぼいっしょだけどサイズだけ違うみたいなケースが結構あるなという発見がある。

2015年 03月 02日

今日のミシン:幼児用ナップサック

まだ必要ないんだけど、作りたいベースで作ってみた。

上の写真は今日の状態のものだが、実はひとつ前のバージョンがある。

布団カバーを作る際にあまった布をフタに使ったのだが、あまりにも本体と色があっていなくてダサかった… 作る途中に気付けよという感じだが、とりあえず仕上げたかったのと、全部おわったら意外と納まるんじゃないかと思ったけど、やっぱダメだった。

なのでやはり別途布を購入しなおしてフタだけ切替なしで作りなおし、元のフタをはずしてつけた。