mieki256's diary



2016/07/01(金) [n年前の日記]

#1 [prog][neta] プログラミング言語のベンチマークって何を測定したらいいんだろう

ネットサーフィン(死語)をしてたら、「Rubyと比べてPHPは重い」と紹介してる記事を見かけたのです。「Rubyは基本的に遅い」と思ってた自分としては、「そんなバカな…Rubyの遅さをなめてんじゃねえ!」と、いい歳して憤慨(?)してしまったわけですよ。こんなFUDが許されていいのか。否。ここは一つ実際にベンチマークを取って、Rubyがいかに遅い言語であるかを世界的に社会的に大々的に広めねばなるまい! ガツンと証拠を突き付けて、PHPの名誉を回復してやらねば!

などと馬鹿妄想したところで、悩んでしまって。ベンチマークと言っても、この場合は何を測定すればいいんだろう…。

Ruby と PHP を比較してるあたりからして、おそらくはWebサーバ上でそれぞれを動かした時に、どちらが高速に動くか、短い時間でWebページを返してくるか、という話なんだろうと想像するわけです。であれば、Apache(Webサーバ)を動かして、index.php と index.rb でも書いて、何百回かアクセスしてトータルでどっちのほうが時間がかかったか、てな感じで測定すればいいのかなと。そこまでは分かる。

ただ、Webページを返すと言っても、「Hello World」の一行を返しただけでは、それは全然実態に即してないだろうと。いや、呼び出し(?)コストぐらいは測定できるかもしれないけど…。実際にはもっと色々な処理をしてWebページを返すはずだと。しかし、何の処理をさせれば、妥当な処理と言えるのだろうかと。数値計算? 文字列結合? 配列アクセス? DB処理?

てな感じで悩んでしまって。何を測定したらいいのかなあ。うーん。

「言語の速度を測ってみたところで意味は無い」「今時はフレームワークを使うのが当たり前なんだから、フレームワークを測定しなきゃ実態に合ってるとは言えない」てなツッコミもありそうだよなあ、てなところも。

#2 [anime] 「甲鉄城のカバネリ」最終回を視聴

※ 感想には個人差があります。

面白かった。ような気がします。たぶん。

や、終わり方がちょっとさっぱりし過ぎてたような気もして、何か物足りなさも感じたけれど。そこに至るまではちゃんと盛り上がってたように見えたからこれでいいのかな、主人公がしっかりと主人公してたもんな。などと思いながらも太目の友人のことを誰も思い返してないのが泣ける、とか、今後のことを考えると頭抱えそう、とか思ってしまったりもしつつ、しかしこの大団円っぽさを見せられてしまったら、これはこれで、という気分にも。

まあ、自分の場合、一話で和風スチームパンクが出てきた時点でズキューン状態だったのでアレだったりするのですけど。

そういえば、皆が手を広げて待ち構えるあたりは、1stガンダムの最終回のオマージュかなと思ったのだけど、どうなんだろう…。

打ち上げ花火タイプのアニメってあるよなと。 :

オマージュと言えば。線路がボロボロと崩れ落ちるあたりで、劇場版銀河鉄道999を連想したのです。やはり列車で脱出と言えば線路がソレしないと納得できん、てなところが自分も含めておじさん達の心の中にはあるのだろうか。みたいな。

それはさておき。「999」も、主人公とヒロインが 無事に脱出して良かった良かったで終わるように見えてるけど、よくよく考えてみたら終点の惑星を完全にアレしちゃってるわけで実はとんでもないドイヒーな話なわけですよ。「カバネリ」も、なんだかソレと似てるよなと。よく考えてみたら「いや、ちょっと待て。それでいいの?」と思える部分があちこちに。

でも、子供だった当時の自分が、「999」を見て「おもしれー。おもしれー」と思ってたのも事実で。だから、「カバネリ」も、そのくらいの年齢の人が見ていたら、終点をアレしちゃってる点なんてすっかり忘れて「おもしれー」と思ってくれる可能性があるかもなと。いわば、平成の劇場版銀河鉄道999 = 甲鉄城のカバネリ、とか言えちゃうかもしれぬ、などとくだらないことを思ったり。

そういや個人的には、「劇場版銀河鉄道999」を作ったりんたろう監督と、「ギルクラ」「カバネリ」を作った荒木監督ってなんだか属性が似てそうだなと勝手に思っていたりもするのです。打ち上げ花火系のアニメを作ることを得意としてる監督さん、みたいな。…コレ、前にも書いたかな。どうだったかな。誰かが言ってたことの受け売りかな。…まあいいや。書いちゃえ。

打ち上げ花火には、ストーリー性とかテーマ性とかメッセージ性とか、そんなものは無いわけですよ。だからといって、「あんなものは取るに足らない存在だ」「評価に値しない」と言い出す人はそうそう居ないはずで。ドーン、ババーンと轟音が鳴った瞬間、見てる人達が「スゲー」「綺麗だなー」と喜ぶわけで。その場に居る観衆を笑顔にしちゃうだけのパワーが間違いなくそこにある。それが、打ち上げ花火ってヤツで。

りんたろう監督作品も、そういうノリだよなと。とにかく各カットがカッコイイ。なんでこんなにビシッと決まったカットを次々に思いつくのですか、シビレルわあ、みたいな。 *1 何にせよ、ストーリーとかテーマとかもはやどうでもいいじゃん。とにかくカッコイイのだから別にそれだけでもオッケーじゃん? てな気分にさせられちゃうところがあるよなと。

荒木監督作品も、ちょっとそういう雰囲気があるよなと。各カットだけ見てみると「スゲーな」「カッケーな」「オイオイとんでもないことになってるぞ」と思うけど、全体を思い返すと「…アレ?」みたいな。

でも、そういうのも全然アリだろうと自分は思うわけですよ。

OPの冒頭、「貴様、人かカバネか!?」「どちらでもない! 俺はカバネリだ!」って叫びますけど。自分の中では、アレを毎回聞くたびに「ハイ、オッケー! シビレタ! もうこれだけで60点クリア!」てな気分になってたわけで…。ところどころが最高にカッコよかったらまずはソレでいいじゃん。そういうのもたまにはアリじゃん。みたいな。

腕組みして「深いな…」とか唸っちゃうアニメはどうせ神山監督あたりがガンガン繰り出してくれるのだから、そっち系はそういう監督に天下取ってもらえばいいんです。荒木監督はこれからもバンバン花火を打ち上げてほしいものだ…などと失礼極まりない上から目線で、そんな勝手なことを思ってたりするのでした。そういうアニメを毎回確実に繰り出せる監督ってそんなに居ないので、貴重な監督さんだよなと。

でも、打ち上げ花火って、光った次の瞬間に消えちゃうんですよね…。迫力はあるけど、儚い…。 *2

妄想が捗るアニメってあるよなと。 :

ネット上の感想記事を眺めていてなんとなく思ったのですけど、どうもこのアニメ、視聴者の想像力・妄想力を妙に活性化させる効能を持ってたような気もしたり。と言うのも、各人が、「コレはこういう設定ではないか」「こういう展開になったら面白いのではないか」等々を書き込んでいて、それらを読んでて「あー、それはたしかに面白い」「なんでこの人そんなことを思いつけるんだ。スゲーな」と感心してしまった場面が多々あって。

アニメを見ていても、ただボケーッと見てるだけで終わるアニメと、設定なり展開なりをついつい妄想しちゃうアニメってあるよなと。そのあたり、どこで違いが出てくるのだろうと。どういう設定を盛り込んでおくか、どういう世界観を提示するか、そのあたりで違ってくるのかしらん。わかんないですけど。

何にせよ、このアニメ、見てる人の中で何かちょっと変わったことが起きてるような、そんな印象を持ちました。

「いやいや、いつもと変わらんよ」「SFアニメやロボットアニメ作ると大体こういう感じになるよ」「ギルクラもこんな感じだったよ?」と言われるかもですけど。

*1: や、実際にそれらのカットを苦労して捻り出してるのはスタッフさんで、りんたろう監督は元になる写真だの印刷物を持ってきて「こういう感じでよろしく」と注文つけていくだけらしいですけど…。
*2: でも、花火はすぐに消えちゃうけど、親しい人と一緒にソレを見たという思い出は残るよ! …そういや本編でもそういうシーンがあったような。

2016/07/02() [n年前の日記]

#1 [prog] プログラミング言語のベンチマークを載せてるサイトがあった

昨日、RubyとPHPの処理速度の差について疑問が湧いたものの、何を測定したらいいのかで悩んでしまってアレだったのだけど。

その後もググっていたら、各プログラミング言語のベンチマークを大量に載せてるサイトに遭遇。自分が知らなかっただけで、おそらくは有名なサイト、なのかもしれないなと…。載ってる量がスゴイ…。

_The Computer Language Benchmarks Game

「Rubyと比べてPHPは重い」は真か偽か。 :

Ruby と PHP の比較ページも見れました。わざわざ自分でベンチマークを取る必要は無かった。このページを見れば一目瞭然でしたな…。

_PHP_vs Ruby (64-bit Ubuntu quad core)

ざっと眺めてみた感じでは…。やっぱり Ruby って PHP よりはるかに遅い。全然遅い。大体2倍〜5倍ほどRubyのほうが遅い。この結果だけを見ると「『Rubyに比べてPHPは重い』は偽」って話になりそうだなと。

ところが。コレ、2010年頃は逆の結果が出ていたようで。

_プログラミング言語の速度とアプリケーションの速度がいかに関係ないかがわかるグラフ - kなんとかの日記

どうやらその頃は、PHP のほうが Ruby よりも3倍ぐらい遅かった模様。とにかくPHPは遅かった。ありとあらゆる言語と比べても PHPは遅かった。もし、その頃に、「Rubyに比べてPHPは重い」と言ってたら「そうですね」「仰る通り」って話になってたんだろうなと。

Ruby にしろ PHP にしろ、バージョンが上がるたびに、最適化が進んだり、動く仕組みがガラリと変わったりしてるので、そういうことにもなるのでしょう。つまり…
  • 昔は、Rubyと比べるとPHPは重かった。
  • 今は、Rubyと比べるとPHPは速い。
そういう話になりそうだなと。

言語の速度だけ気にしても意味がないっぽい。 :

しかしですね。 _前述の記事 によると、「○○は遅いからダメ」と即断できるほど単純な話でも無いようで。

言語の処理速度ではなく、Ruby、あるいはPHPで書かれたアプリの処理速度を比較してみると…。PHP自体はRubyよりはるかに遅いはずなのに、アプリの測定結果では、何故かPHPで書かれたアプリが最速の結果を叩き出してたそうで。おかしいじゃないですか。めちゃ遅い言語で書いた時が一番速い。どういうこと?

「言語の速度を気にしてみたところで実態に即してないよ」てな話は、そもそもRubyコミュニティ内からも過去に出ていて。

_Rubyist Magazine - Ruby 1.9 で Web アプリを想定したベンチマークをとってみた

高速化されたはずのRubyの新バージョンと、高速化されてないはずのRubyの旧バージョンを比較したら、たしかに処理が速くなった部分もあるのだけど、逆に遅くなってしまったところもありますよ、と。「バージョンが上がって速くなったぞ」と喜んでたらソレは甘いよ、と。

Ruby という一つの言語の、各バージョンでの比較事例ですら、そういう結果が出てくるのだから…。他言語との比較や、フレームワーク毎の比較ともなれば、こりゃますますわけがわからんことになってくるなと。

つまるところプログラミング言語に関しては、一概に「○○は遅い」「○○は速い」「だから○○はダメだ」「○○は素晴らしい」と安易に言えないのだろうなと。
  • どの言語を使って、どんな処理をさせるか。
  • どの程度、その処理に特化して最適化させてあるか。
そのあたりで結果はコロコロ変わってくるから迂闊な判断は下せない、ということだろうと。「モビルスーツの性能の違いが戦力の決定的差ではないということを…教えてやる!」ってヤツですかね。…いや、シャアは毎回負けそうになってたから、ちょっとこの台詞は合ってないのでは。どうなんだ。

とは言え。
  • ソースを最適化しまくった際に、言語の処理速度の差が最後に響いてきて、望むパフォーマンスが得られない、ということはありえるだろうから、凄いプログラマーさんがカリッカリにチューンしたあげく「○○ではダメだ」と結論付けたなら、それは妥当な判断と言えそうだし。
  • 逆に、言語が速いおかげで、めちゃくちゃなソースを書いていても、そこそこの速度で動いてしまって誤魔化せちゃう時だってありそうだし。
なので、「やっぱり速さは正義」と主張する人だって居るだろうなとチラリと思ったりもして。でも、ある程度経験を積んでる人ならアルゴリズムを見直すことで結果が劇的に変わった場面をいくらでも目撃してるはずだし、メンテナンスコストだって無視できない場面もあるだろうしで、結局は「ケースバイケースだよなー」てことになるのが大半、とも想像するのですが。…まあ、そのあたり人によって色んな考え方がありそうですわな。

アウトプットは大事。 :

何にせよ、「Rubyに比べてPHPは重い」的な一文を書いてくれた方には感謝したい気分。

その一文を見かけて「えっ?」と思ったから、こうしてググって「なるほどなあ…」と思えたわけで。その一文が無かったら、こういう機会には恵まれなかった。おかげで勉強になりました。ありがたや。 *1

つまりは、ポエムでも何でもいいからアウトプットは大事、ってことだろうと改めて思った次第。

てな感じのポエムをこうしてメモっておくのです。

*1: ただ、その元記事を覗いてみたら、自分が見かけたはずの元の文章がしれっと削除されてて無かったことになっててなんだかアレな気分に。そういう時は _打ち消し線 を使って消しといたほうが、読者にとっては正誤が分かって為になる、と思うのだけど、打ち消し線が使えないblogシステムもありそうだよな…。そういや、最近何故か見かけないよな…打ち消し線…。なんでだろ? 見た目がダサいから、かなあ…。

#2 [anime] アニメの感想をメモ

色々なアニメが最終回を迎えたので、印象に残った作品についてなんとなく感想をメモ。今日視聴したというわけではなくて、しばらく前に視聴終了したものを思い出しながらメモ。

「ジョーカー・ゲーム」の最終回を視聴。 :

おそらくは太平洋戦争に向かっていく昔の日本を舞台にして、日本軍の中に作られたスパイ組織の暗躍を描いていく作品、という紹介であってるのだろうか…。

「攻殻機動隊」「サイコパス」等を作ったProduction I.Gの制作に加え、関わった作品がどれもヒットしてる岸本卓氏のシリーズ構成・脚本。ということで期待してたのだけど、予想通り何もかもバッチリじゃないスか、てな印象で。

おそらく原作がそうなのだろうけど、前時代的・非合理的な思考をする集団の中に、現代的・合理的な思考をするキャラを投入して動かすだけでも、そこにある種のカタルシスが生まれるのだなと感心させられたり。当然ながら、原作者・読者・視聴者は、本編で描かれている状況の未来が分かってるわけで…。未来が分かってない集団に、未来予知ができている主人公が入ると、それは賢者にしか見えないという。そして、えてして作品内で賢者が描かれていると、視聴者は見ていて気分がスッキリしてくるわけで。まあ、映画「八甲田山」のようなソレに近いのかもですが。いや、本編内でも「八甲田山」っぽいシーンが出てきましたが。

それとは別に。コレはイケメン揃いのルパン三世かもしれないな、とも。スパイ達は、皆変装が得意だし。手品のように手先は動くし…。ルパン三世を今風にリメイクすると、ていうかルパン三世を猿顔からイケメンにしてAKB48っぽく数をたくさん揃えたらこうなるのかも、などとちょっとアホなことを思いながら眺めてました。

「宇宙パトロールルル子」の最終回を視聴。 :

おそらく日本のアニメスタジオの中で最も勢いがあるTRIGGERの作品。かつ、そのTRIGGERのコアメンバーである今石洋之監督の作品。

どこを切り取っても、「ああ…TRIGGER作品だ…」「見事なまでに、今石監督作品だ…」てな印象で。全てにおいて、とにかくテンションが異常な事態になってるというか…。何もかも勢いで乗り越えていくというか…。

個人的には台詞の数々にシビレてしまったり。特に、「○○がアレして○○が○○になるぞ!」で説明終了しちゃうあたりで参ったというか。

考えてみれば、視聴者にとってもソレで十分なんだよなと。とにかくこんなことになっちゃうよ、と分かってることが大事で…。どうしてこんなことになっちゃうのか、その仕組みについてキッチリとSF考証して伝えることが、視聴者にとって面白いと感じる部分ってわけでもないだろうし。しかも頭の悪さを感じさせるあたりが実にイイ。「俺達さあ〜、とっても頭がいいんだよねえ〜」「各設定についてもしっかり考証してるんだよねえ〜。分かる?」とか見栄を張るよりも、「俺、頭悪いからサ! ココは『アレして』で済ませちゃっていいよナ!? ナ!? ハイ、次行くぞ、次!!」のほうが全然勢いがあって見ていて笑えてくるわけで。時々思うのだけど、妙な見栄を張らずにぶっちゃけたほうが強いというか、俄然面白くなる時ってあるよなと。 *1 なんだか小難しい理屈をネチネチコネコネして見ていて眠くなるようなアニメなんて押井監督あたりに任せときゃいいわけで。そんなのわざわざTRIGGERで作ってどうすんだ。目がバチーンと覚めちゃうアニメを作らんでどうする。だからこれでいいのだ。「アレして」がこの場合はバッチグーだ。みたいなことも思ったり。

それと、「初恋をした中学生は無敵だ」の台詞に、なんだかやられました。なんか意味がよくわかんないけどいいこと言ってる気がするからオッケーだ! そうだ、行け! ドーンと行け! みたいな妙な気分にさせられたりして。

1話あたりの放送時間が短いのもなんだか良かったなと。このテンションで30分やられたら…。いや、それはそれでアリか…。「グレンラガン」も「キルラキル」も面白かったし…。でも、「ルル子」は濃縮されてたというか、原液を飲んでるかのような、そんな印象も。

「田中くんはいつもけだるげ」の最終回を視聴。 :

とにかくけだるい男子高校生の日常を描く作品、という紹介でいいのだろうか…。

間の取り方がとにかく独特で。「おじゃる丸」を更にパワーアップさせた感じとでもいうか、更に洗練した感じとでもいうか…。

基本的に自分はテンポが速いアニメが好みで、無駄にグズグズと時間を引き延ばされるとそれだけでアレな気分になってしまうのだけど。このアニメに限っては別。ここまで徹底的にやれば面白くなってくるのだなと再認識させられたというか。

かといって、全てがのんびりしてるわけでも無くて、一瞬でシュッと入れてきて、ソレが通常時のペースとコントラストを生んで笑いに繋がるシーンも多々あって…。まあ、とにかく、時間制御・タイミングの取り方が秀逸。毎回見るたびに、「今のは上手いわ…ココも上手いわあ…」と笑いながら唸ってました。

「おそ松さん」もタイミングにこだわって作ってたらしいけど。やっぱりアニメは、いや、アニメに限らず映像作品は、時間制御が肝なのだなと痛感。

*1: いや、実際にはちゃんとSF考証してるのかもしれないけど…。してない素振りを見せたほうが面白くなるなら「アレして」を取るべきとも思うわけで。

2016/07/03() [n年前の日記]

#1 [dxruby] DXRubyのバージョンをアップグレードしたいのだけど

どうやればいいんだろう…。

「DXRuby って何?」 … Rubyというプログラミング言語からWindowsのDirectXを使えるようにする、ライブラリ? モジュール? パッケージ? …とにかくそういうアレです。

「DirectX って何?」 … Windows上でゲームを作りやすくするための機能、ですかね。画像を高速に描画できたり等、色々できます。

要するに、Ruby + DXRuby を使えば、Windows上で動く2Dゲームが作れるよ、ってことなんですが。

それはさておき。 DXRuby は gem も用意されてるから…gemで上書きインストールすればいいのだろうか。

「gem って何?」 …Rubyのライブラリをインターネット経由で簡単にインストールできる仕組み、とでも言えばいいのかな。例えば gem install dxruby と打つだけで、dxruby をインストールできちゃいます。

とりあえず、今まで入ってたバージョンを確認。
> ruby --version
ruby 2.2.4p230 (2015-12-16 revision 53155) [i386-mingw32]
> irb --noreadline
irb(main):001:0> require "dxruby"
=> true
irb(main):002:0> DXRuby::VERSION
=> "1.4.2"
irb(main):003:0> exit
手元の環境では、DXRuby 1.4.2 を今まで使ってたらしい。

ちなみに、irb --noreadline とオプションをつけてるのは、 _自分の環境では readline を無効にしないと irb が固まる からです。

gem で公開されてる DXRuby のバージョンを確認。
> gem search -r dxruby

*** REMOTE GEMS ***

dxruby (1.4.4, 1.4.0 mswin32)
dxruby_rp5 (0.0.4)
dxruby_sdl (0.0.14)
DXRuby 1.4.4 が登録されてるっぽい。

gem を使って上書きインストールしてみる。
> gem install dxruby

Fetching: dxruby-1.4.4.gem (100%)
Successfully installed dxruby-1.4.4
Parsing documentation for dxruby-1.4.4
Installing ri documentation for dxruby-1.4.4
Done installing documentation for dxruby after 1 seconds
1 gem installed

DXRubyのバージョンを確認してみる。
> irb --noreadline
irb(main):001:0> require "dxruby"
=> true
irb(main):002:0> DXRuby::VERSION
=> "1.4.2"
irb(main):003:0> exit

アレレ? DXRuby は 1.4.2 のままだぞ…? どうなってるんだ?

インストールされてる gem の一覧を確認してみる。
> gem list

(中略)
dxruby (1.4.4)
(中略)
うむむ…。こっちは、DXRuby 1.4.4 が入ってるように見えるな…。

よくわからんので、gem版はアンインストール。
> gem uninstall dxruby
Successfully uninstalled dxruby-1.4.4

たしか以前は、 _ダウンロードファイル一覧 - DXRuby - OSDN から入手したファイルでインストールした記憶があるのだけど。コレをアンインストールしてから gem でインストールすればいいのかな。でも、アンインストールするには、どうしたら…。

install.rb を眺めてみた。
(中略)
require 'rbconfig'
require 'fileutils'
include RbConfig

if CONFIG["ruby_version"] != "2.2.0" then
  puts "このバイナリは2.2系じゃないと動かせません"
  exit
end

if CONFIG["arch"] =~ /64/ then
  puts "32bit版じゃないと動かせません"
  exit
end

FileUtils.mkdir_p(CONFIG["sitearchdir"])
file = CONFIG["sitearchdir"] + "/" + "dxruby.so"
FileUtils.install("dxruby.so" , file, :preserve => true)
file = CONFIG["sitearchdir"] + "/" + "dxrubyex.so"
FileUtils.install("dxrubyex.so" , file, :preserve => true)

puts "DXRubyのインストールに成功しました"
どうやら、CONFIG["sitearchdir"] で指定されたフォルダの中に、dxruby.so と dxrubyex.so をコピーしているらしい。

CONFIG["sitearchdir"] って、どこを指定しているんだろう?
> irb --noreadline
irb(main):001:0> require 'rbconfig'
=> false
irb(main):002:0> include RbConfig
=> Object
irb(main):003:0> CONFIG["sitearchdir"]
=> "C:/Ruby/Ruby22/lib/ruby/site_ruby/2.2.0/i386-msvcrt"
irb(main):004:0> exit
自分の環境の場合は、Ruby 2.2インストールフォルダ\lib\ruby\site_ruby\2.2.0\i386-msvcrt になってるらしい。覗いてみたら、たしかに dxruby.so と dxrubyex.so が入ってた。

この2つのファイルを削除すればアンインストールできる、ということかな…。削除してみるか…。

削除した状態で、require "dxruby" ができるか確認。
> irb --noreadline
irb(main):001:0> require "dxruby"
LoadError: cannot load such file -- dxruby
        from C:/Ruby/Ruby22/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
        from C:/Ruby/Ruby22/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
        from (irb):1
        from C:/Ruby/Ruby22/bin/irb:11:in `<main>'
irb(main):002:0>
「dxruby なんて見つからねえよ!」と怒られた。さっきの2つのファイルを削除しただけで、アンインストールできたっぽい。

gem install dxruby でインストールし直してみる。
> gem install dxruby
Fetching: dxruby-1.4.4.gem (100%)
Successfully installed dxruby-1.4.4
Parsing documentation for dxruby-1.4.4
Installing ri documentation for dxruby-1.4.4
Done installing documentation for dxruby after 0 seconds
1 gem installed
> irb --noreadline
irb(main):001:0> require "dxruby"
=> true
irb(main):002:0> DXRuby::VERSION
=> "1.4.4"
irb(main):003:0> exit

バージョンが 1.4.4になってる。DXRuby 1.4.4 にアップグレードできたっぽい。

しかしコレ、gem でインストールした場合は、dxruby.so はどこに入っているのだろう。

ファイル検索してみたら、Rubyインストールフォルダ\lib\ruby\gems\2.2.0\gems\dxruby-1.4.4\ に入ってた。

一応、 _Home - mirichi/dxruby-doc Wiki で公開されてるサンプルファイル群を動かしてみたけど。自分の環境、Core i5 2500 + GeForce GTX 750 Ti + Windows 10 x64 では動いてるように見える。

ただ、 _DXRuby1.4.4(´・ω・`) - mirichiの日記 によると、「Window.draw_box を使うと不正終了するから Window.draw_line で代替してくれ」と書いてあった。修正されるまで、ちょっと気を付けておかねば…。

#2 [anime][neta] 遠くから撃ってくるヒーローってどうなんだろう

たまたまTVでローカルヒーロー番組を何本か見たのだけど。どれもこれも肉弾戦ばかりだな、銃を構えて撃ってくるヒーローが居ないな、てなところが気になって。

まあ、子供達の前でヒーローショーをする際に、アクションを見せたほうが俄然喜ばれるだろうから、そりゃ肉弾戦で戦うのは当たり前だろうし。遠くから銃で撃つとなると、合成や操演が必要になって大変なので、ローカルヒーローならそういう設定は避けるのが当たり前、だろうとは思うのだけど。

でも、真面目に考えたら、たぶん正義のヒーローって、遠いところから悪の怪人を狙い撃つ戦い方になりそうだな、と…。

怪人 「ぐわっ! 遠くから攻撃してくるなんて汚ねえぞ! お前それでも正義のヒーローか!?」
ヒーロー 「そうさ、お前の言うとおりだ。俺は正義のヒーロー! 正義が悪に負けるなんてことは、絶対に許されない…。だからこそ、お前が手を出せないこの距離から攻撃して、確実に勝利するのだ!」
その場に居る市民達 「(ええー)」

そんなヒーローはどうか。どうかと言われても。たぶん売れないなコレ。

しかし、そういうローカルヒーローを設定すれば差別化できそうな気はするなと…。いや、でも、子供達に悪影響を…。いやいや、本当に目的を果たしたいと思うなら頭を使わなきゃダメだよ、みたいなメッセージ性をですね…。無理があるか…。

2016/07/04(月) [n年前の日記]

#1 [cg_tools] Affinityのベータ版があるらしいのだけど

Macユーザさんの間で評判が高い _Affinity なるドローツールがあるらしいのだけど。その Windows版が開発中でベータ版を使えるらしいので試してみたり。メールアドレスを登録するとDLページのURLが書かれたメールが届くっぽい。

インストールしてみたけど…。そもそも起動しない…ぜ…。さすがベータ版。Windwos10 x64 上では動かないのだろうか。イベントビューアで確認したら、.NET Runtime 関係でエラーが出ているっぽい。何かインストールしないといけないランタイムでもあるのだろうか。

#2 [anime][neta] アニメを見るのもそろそろ限界なのかもしれない

7月から始まるBS放送分のアニメの録画予約をしていたら、HDDレコーダ RD-BZ710が「これ以上録画予約はできません」と言ってきて。軽くショックを受けてしまった。

そうか…。とうとうBS放送のアニメの本数だけでも、HDDレコーダの予約可能数を超えてしまうほどに増えてしまったのか…。これはもう色んな面で、そろそろ限界かもしれない。と言うか、ここまで増えるなんてアニメ業界も末期なのでは…。

いやまあ、古いHDDレコーダなのでスペックがヘボイだけ、という気もするのだけど。にしても当時は、「この予約数で十分過ぎるやろ」「そんなに録画するわけないだろ」と思いながら開発者達がスペックや仕様を決定してたのだろうし。あらゆるジャンルを録画しようとしているわけでもなく、アニメだけに絞っているのにコレだもの。恐ろしい時代になってきたなと。 *1

とりあえず、仕方ないから再放送のアニメについては録画しないことに。たとえどれほどの名作が再放送されていたとしても、予約数をオーバーしてしまっては録画のしようもないし、録画できないのだから見れるわけもない。諦めるしかないよなと。

それとは別に。日曜深夜というか月曜早朝の同じ時間帯に、アニメ番組が4本も重なって放送されることに今頃気が付いて、それもそれで呆れてしまったり。ずらせばまだなんとか見てもらえるかもしれんのに、どうしてぶつけ合うのかね…。こんなに重なってしまったら、視聴してもらえるチャンスを、間違いなく自ら潰してるよなと。

そのあたりの時間帯は、おそらくは局側にとって、視聴率がどうなろうが知ったこっちゃない時間帯だろうし…。その曜日/時間に放送してほしいと交渉したアニメの制作側だか委員会だかが、かなりのお馬鹿さん揃いなのかなと。自分達からお金払って放送してもらうのだろうけど、お互いがお互いを潰し合うようにわざわざ設定するのでは…。中身を見てもらえないのでは宣伝にもならないから、金をドブに捨ててるようなものでは…。一方では「動画の人達が食べていけない」等の話をしておきながら、こういうことをするんだからなあ…。アニメ業界ってのはまだまだ全然随分と余裕があるのですなあ、と。

てなことをもやもや思っているうちに、鉄道関係ではダイヤグラムの達人が居て、事故が起きたりした時に活躍したりする、てな話を思い出したり。TV放送でも、そういう達人が居て、活躍してくれたらなと妙な妄想を。まあ、無理か。TV局ってのは衝突事故を起こしたがる人しか居ないし。あちらこちらで車両の転覆事故が起きまくりですがな。

何にせよ、今現在のアニメの制作本数は、ちょっと多過ぎるよなと…。
*1: もっとも…。「今頃何を言ってるんだ。都市圏の地上波ではそんなの日常茶飯事だぜ!」と言われそうな予感も。それもそれで、恐ろしい話だなと。

2016/07/05(火) [n年前の日記]

#1 [windows][dtm] Windows10はMIDIマッパーが殺されてることに今頃気づいたり

_Genkhord という、音楽のコード支援ソフトがアップデートされたと知って、早速試用していたのですけど。

触ってる最中に、Windows10 ではMIDIマッパーが殺されてしまっていたことに今頃気が付いたりして。正確には Windows8 の頃に殺されたままでそれっきり、という状況ですけど。

Windows7 を使ってた頃は回避策があったから、そのことをすっかり忘れてた…。なんてこった…。チクショウ。見事に 殺って やってくれやがったぜ、Microsoft め…。これじゃ Genkhord が内包していた実力が発揮できんではないか…。

ちなみに、MIDIマッパーと言うのは、各アプリがWindowsに「このMIDIデータを鳴らしてよ!」と要求してきた際、どのMIDI音源を使って鳴らすのか選択できる機能…という説明で合ってるのかしらん。

Windows XP の頃は、鳴らすMIDI音源をユーザが自由に選択できたのですけど。Windows Vista や Windows 7 になったら、音源の選択ダイアログが削除されてしまって。ただ、Vista / 7 には機能自体はこっそり残っていて、レジストリを書き換えれば選択できるようになっていたから、 _MIDIせれくたー 等を使うことで、まだどうにかなってたのですな。

ところが、Windows8では、そのあたりの機能がごっそり削除されてしまったそうで。レジストリに「この音源を選んでくれ」と書き込んでも、ソレを見て選択してくれなくなっちゃった。MIDIを鳴らすなら、何が何でも Windowsに標準で入ってる _Microsoft GS Wavetable SW Synth で鳴らしやがれ、ソレ以外では俺(Windows8)は鳴らさん、てな事態になってしまったわけです。

Microsoft GS Wavetable SW Synth の音を聞いた人なら分かると思うんですけど。コレがとにかくチープな音なんですよ。スーパーファミコンの音に毛が生えた程度、いや、下手するとスーファミにすら負ける音で。リバーブ等のエフェクトもなければ、波形の差し替えもできませんから、ある面ではスーファミ以下なんですよね…。同じソフトウェアMIDI音源でも、YAMAHAのソフトウェアXG音源あたりは結構イイ感じの音だったんですが。現状のソレは落涙間違いなしの音で。

いや、違う。そういう話じゃないなコレ。

MIDI音源の音質や音色がどうとか、そういう狭い話じゃないんですよね。 _仮想MIDIケーブル を指定できないのが大ダメージなのです。

OS側で仮想MIDIケーブルを指定することができれば、MIDIデバイス選択機能を持っていないアプリでも、出力したMIDI信号をDTM/DAWソフトに渡すことができるわけです。すると、DTM/DAWソフト側で、シーケンスを記録できるのはもちろんのこと、膨大なソフトウェアシンセサイザの類を利用することが可能になる…。そこが大きいわけで。

実際に鳴らしてみる。 :

Genkhord + Microsoft GS Wavetable SW Synth で鳴らした音は、こんな感じですよ。

_out1.ogg

ショボいですよね。

ちなみに。 _ペンちゃんの不思議なけんばん2015_仮想MIDIケーブル loopMIDI_FL Studio 、と経由させてみた音は以下になります。「ペンちゃんの不思議なけんばん2015」は、出力先のMIDIデバイスを選択する機能があるので、仮想MIDIケーブルを指定してDTM/DAWソフトにMIDI信号を渡すことが可能なわけですが。

_out2.ogg
_out2b.ogg

出力先のMIDIデバイスを自由に選択できれば、仮想MIDIケーブルを選択することができて、その先でこういう音が鳴らせる。

更に、ソフトウェアシンセサイザ側でアルペジオ系の音色を選べば、以下のような音だって出せる。コレ、基本的にはキーボードのキーを押しっぱなしにしてるだけですよ。

_out3.ogg

だけど、Windows10 や Windows8 では、MIDIマッパーが削除されてるから…。WindowsにMIDIを渡すだけのアプリからは、 _こういう音 しか鳴らないわけで。

Windows XP の頃にはできてたことが、最新OSのはずの Windows10 では、できないわけですよ。XPの頃は _こう _いう _ が出せていたのに、10は機能削っちゃったから _こんな音 しか出ない。ダメだろソレ。全然つまんないでしょ。なんで削っちゃったんだよ…。

CoolSoft MIDIMapper beta を使えばなんとかなるかも。 :

何か手はないのかとググってたら、CoolSoft MIDIMapper なるツールが開発中らしいと知り。

_CoolSoft MIDIMapper beta1 released | CoolSoft

「Windows7までは、VirtualMIDISynth 1.x 内のMIDIマッパーでMIDIデバイス選択ができたけど、Windows8/10は機能削除されたからできないんだよね」「それじゃ悲し過ぎるから Windows8/10でも使えるソレを作ってみるわ」ということらしくて。

ユーザ登録しないとダウンロードできないらしいので、ユーザ登録してDLして試用してみましたよ。ちなみに環境は Windows 10 x64。

おお…。ちゃんと切り替わってる、ような気がする。素晴らしい。

試しに Genkhord + CoolSoft MIDIMapper + loopMIDI + FL Studio で鳴らしてみたり。こんな感じに。

_out4.ogg

ということで。
  • Windows Vista/7ユーザなら、MIDIせれくたー or VirtualMIDISynth内のMIDIマッパーで。
  • Windows 8/10ユーザなら、開発中の CoolSoft MIDIMapper の人柱に立候補。
それでどうにかなりそうだなと…。

もちろん後者は自己責任で。鋭意開発中のツールだから何がどうなるか分からんです。転んでも泣かない。

MIDIマッパーは*NIXで言えばパイプ相当。 :

以下はポエムです。

MIDIマッパーの有無というか、まともな実装というのは、*NIX等で言えばパイプ機能に相当するのではないか、と思うのですよね。

パイプ機能ってのは、各コマンドの出力結果を次のコマンドに渡していく機能で…。一つ一つのコマンドはできることが限られてるけど、連携することで、更に幅広いこと・複雑なことができるようになるという。シェル上でパイプを使えば、コマンドの組み合わせができて、やれることが増えてくるように。DTMの世界では、MIDIデバイスを連携できるかどうかで、やれることが広がってくる、のではないかと。 *1

もし、*NIXで、「これからはパイプ機能である『|』を削除する」と誰かが言い出したら、「お前、気でも狂ったのか?」と大ブーイングは必至だろうと思うのですけど。Microsoft と Windows の開発陣は、ソレに近いことをやりやがったわけですよ。MIDIという、プログラマー連中が滅多に触ったり遊んだりしないところだから、幸か不幸かスルー気味だけど…。この機能削除は結構な大失態、だったのではないかと。

いやまあ、どうして機能削除したのかは、ぼんやりとですが分からないでもなくて。今時、「何か音楽を聴きたいな」と思った際に、MIDIファイルをクリックして聴く人なんてまず居ないわけで。ほとんどは mp3 を再生して終わりでしょう。だから、「MIDIなんて使うヤツはもう居ねえだろ」と安易に思って削ったんだろうと推測するのですが。

だけどね…。mp3の再生なんてスマホでもMP3プレイヤーでもできるんですよ。PCがソイツラと同じレベルに自分から落ちていってどうするねんと。単なる波形データのプレイヤーならスマホで十分なんだよ。PCの強みはソコじゃねえだろ、と。

PCが本領発揮するのは、何かを作る場面でしょう。何かを作るために必要な機能は充実させておかなきゃ、PCの存在意義が怪しくなってくるわけで。なのに、「PCで音楽を作ろう」と思ったときに、MIDIデバイスの選択すらできないって、致命的じゃないかと。「だったらスマホやタブレットで、入力/出力が閉じてる専用アプリ動かして、楽曲作る感じでもいいよね」「わざわざPCを使うメリットが一体どこにあるんですか」「Windowsなんて要りませんよね」「Windowsってオワコンですね」って話になりかねない。どうして自分達の優位性を、自分達でわざわざ削り落とすかな…。

連携可能な機能があるかどうかで、バラバラだった各アプリを組み合わせることができて、もっと色んな事ができるようになるわけですが。その連携に関わる根幹部分を削っちゃあかんでしょう…。

「PCは面白い玩具」と捉える人が少なくなってるのかも。 :

8bit PCの頃からPCを触ってる自分のようなおじさんにとっては、PCは面白い玩具、というイメージがあって。昔のPCは低スペックだから、たいしたことは全然できなかったけど。ひょっとしたらこんなことができるかも、あんなことができるかも、スペックが上がっていけば凄いことができるかも、と…。触ってるだけで夢がひろがりんぐな存在、チープだけど可能性だけはパンパンに詰まった玩具、だったわけですよ。

そういう感覚を持ってる人達が Windowsを開発してたら、MIDIマッパー関係を削るような愚行はしなかったかもしれないなと。だって、コレ、面白い機能ですから。残しとくだけで、まるで戦隊ロボットの如くアレコレ合体させて遊べるんですよ。夢がひろがりんぐですよ。

でも、今現在 Windows を開発してる人達は、そんなイメージを誰も持ってないんだろうなと。そういうイメージを持ってWindowsをゴリゴリとパワーアップさせてた怪しい人達は、どんどんMicrosoftを辞めていって会社立ち上げて違うことをしていたりするし。昨今のOSは、セキュリティホールがどうとかの胃が痛くなるような話ばかりだし。だから、「こんなの要らねえだろ」と思ってしまったんだろうなと。

PCは、面白い玩具。夢を叶えられる玩具…。もはや、そんなイメージを持つことは難しいのでしょうか…。難しいのだろうなあ…。だけど、こんなことしてたら、そのうちWindowsはExcel専用OSみたいな存在になっちゃうよ。ソレでいいのかと。

とは言え、今はもう「PC = 仕事の道具」と捉えてるユーザが大半な時代だろうし。「PC = 玩具」なんて印象を多少なりとも復権させるのは難しいよな…。別の何かに玩具としてのポジションを担ってもらうほうが、まだ望みがあるのかもしれず。

もしかして、このあたり、「Mac使え」で済んじゃうのですかねえ…。

*1: いやまあ、DTMの世界も、MIDIに代わるアレやコレを使おうぜって話になってる印象もありますけど。それでも、「連携して使うのは当たり前だろ?」ってところは変わらないと思うわけで。

#2 [windows] Windows10上でデスクトップで鳴ってる音を録音するのはどうしたらいいんだろ

Windows7の頃は、デスクトップ画面上で鳴ってる音を録音する方法があったような気がするのだけど。たしか、ステレオミキサーなるソレを選択すれば録音できたような…。と思って Windows10の「サウンド」を選んでみたけど、ステレオミキサーが無くて。

これはドライバをインストールし直さないといかんのかなと、 _Realtek から、High Definition Audio Codecs のセットアップファイルを入手してインストールしてみたのですが。それでもやっぱりステレオミキサーは出てこない。うーん。

ちなみに、使ってる M/B は、 _Intel DH67BL ですが。

ググってるうちに分かってきた。サウンド → 録音、のウインドウ中で右クリックして「無効なデバイスの表示」をすれば出てくるのか…。ソレを右クリックして「有効」にチェックを入れる、と…。

もしかすると、Windows7の頃も、同じ作業をしていたけど忘れてしまっていただけかもしれない。いや、どうだったか覚えてないけど。

参考ページをメモ。 :


2016/07/06(水) [n年前の日記]

#1 [nitijyou] 頭痛

午後になってから頭痛が。後頭部が時々ズキッとする。なんだろ、コレ…。

気になってググってみたら、後頭部の頭痛は大別して3つに分けられるそうで。一番ヤバイのがクモ膜下出血。バットで殴られたような痛みだそうで、痛みが治まることも無く、命にも関わるとか。他の二つは、緊張型頭痛、後頭神経痛。

_【医師が監修】後頭部が痛む頭痛の種類と注意したい病気 | ヘルスケア大学 によると、
激しい痛みが突然起きたとしても、その痛みが断続的である場合、もしくは最初は弱い痛みで次第に強くなっていく場合はくも膜下出血ではありません。

【医師が監修】後頭部が痛む頭痛の種類と注意したい病気 | ヘルスケア大学 より

とあるので…。自分のソレは、他の2つのどちらか、なのだろうか。

とりあえず、寝てみる。

2016/07/07(木) [n年前の日記]

#1 [nitijyou] 自転車で買い物に

頭痛は治まった。夜、自転車で、ザ・ビッグまで夜食等を買いに。

犬がクンクンとやたらに鳴くので、買い物のついでに散歩がてら連れて行ってみたり。店で買い物してる間、駐輪場で、吠えることもなく、ちゃんと待ってた模様。よしよし。偉いぞ…。

2016/07/08(金) [n年前の日記]

#1 [pc] Raspberry Pi 3が気になり始めた

消費電力が大き過ぎるから Raspberry Pi 3 はちょっとアレかなと思ってたけど、その後もググってたら、どうやらあらゆる機能を全開で使おうとしなければ Pi2 と同程度の消費電力で収まる、という話を見かけて。

_Raspberry Pi 3 の電源は本当に2.5A必要なのか? - 時には立ち止まってみるのもいいよ

また、Pi3 を動かせるモバイルバッテリーがあるのかどうかが気になってたけど、2.4A出力可能なAnker製モバイルバッテリーで動いてる、という事例も見かけたり。

_消費電力が大きなRaspberry Pi3に最適のモバイルバッテリーは? - 猿まね電子工作
_Raspberry Pi 3買ってみたけれど…(追記あり) - そんな今日この頃でして、、、

Pi3 を動かせるバッテリーがあるなら、Pi2 に拘る必要も無いのかなと思えてきたわけで。そもそも、もはや Pi2 は入手が難しいみたいだし…。

2016/07/09() [n年前の日記]

#1 [windows] 筆まめの不具合に遭遇

親父さんから、年賀状ソフト「筆まめ Ver.26」について質問されて、操作を教えていたら不具合に遭遇。ちなみに環境は Windows 10 x64。

筆自慢2001の住所録ファイルをインポートしたい、という話だったのだけど…。インポートしてみると、以下の不具合が。
それに加えて。自分が使ってる「筆まめ Ver.21」では、そもそも筆自慢の住所録ファイルをインポートできなかった。インポート処理のバーが最後まで伸びたところで不正終了してしまう。親父さんPC上の「筆まめ Ver.26」ならインポートできてるのに…。

筆自慢の住所録データファイルがどこか壊れてるのかなと思ったけど、筆自慢で開くとフツーに見れてしまうわけで…。いやまあ、筆まめ側が想定してない妙なデータが途中に入ってるのだろうな、とは思っているのだけど。ソレを特定する方法が思いつかない…。

筆自慢からcsvでエクスポートしてみたらどうか、と思って試してみたけれど、どうやら筆自慢は、マークA〜Jの情報まではエクスポートできないようで。エクスポート時の選択項目に、マークA〜Jの項目が無い…。

古いバージョンはWindows10に非対応らしい。 :

自分の環境(Windows10 x64)の「筆まめ Ver.21」では、csvファイルすらインポートできないことに気づいたり。これは…。Windows7 から Windows10 にアップグレードした環境だから問題が起きているのだろうか…。

_Windows 対応情報 | サポート | 筆まめネット を眺めてみたら、Ver.21 は Windows10 に対応してない、と書いてあった。ガーン。なんでや。一体どういう作りしてたんや…。

ショートカットファイルのプロパティを開いて、互換モードを Windows7 にしてみたり。…コレだと、csvも筆自慢の住所録ファイルもインポートできた。そんなオチか…。親父さんPC上の「筆まめ Ver.26」は、Windows10に対応してるからインポート処理がエラーを出さなかったのだな。

筆まめの住所録ファイルの仕様が絡んでるのでは。 :

「筆まめ Ver.21」で、筆自慢の住所録ファイルをインポートしてみたところ、カードの中にマーク1〜5しか用意されてなかった。ということは…。

これは勝手な想像だけど。おそらく、筆まめの住所録ファイルは、元々はマークを5つ記録するだけの領域しか持ってなかったのではないか。それが現行版(Ver.22〜Ver.26のどこか)では、8つまで扱えるように拡張されたけど…。

ところが、筆自慢の住所録ファイルのインポート処理に対して、拡張分への対応・修正を忘れてしまって、故に筆自慢住所録をインポートすると、マーク5つ分までは ―― マークA〜EまではインポートされるけどマークF以降が無視される・インポートされない、ということではあるまいか。いや、勝手な想像だけど。

#2 [anime] 「Thunderbolt Fantasy 東離劍遊紀」1話を視聴

「まどかマギカ」「PSYCHO-PASS」の虚淵脚本+台湾のSFX人形劇(現代布袋劇・霹靂布袋劇)による作品。一応、人形劇という分類でいいのだろうか…。

随分昔に、「台湾の人形劇が凄いことになってる!」てな話をどこかで聞いて、それからずっと気になってたのだけど。実際にこうして見てみたら…。マジで本当に、凄いことになってた…。何だコレ…。あらゆる場面で無茶しとる…。素晴らしい。いや、恐ろしい。とにかく凄い。コレはとんでもない。

それに加えて、もしかすると虚淵脚本によるところが大きいのかもしれないけど、芝居がかった台詞がまたイイ感じだなと。

宣伝側は「アニメでも人形劇でもない」というフレーズを宣伝文句として使ってるようだけど、たしかにそう言いたくなる気持ちも分かるというか。「人形劇」と言ってしまうと「ひょっこりひょうたん島」「プリンプリン物語」みたいなのがうっかり脳裏に浮かんでしまうけど、もはやここまで来ると、全然そういうのじゃないんだよな…。「サンダーバード」「Xボンバー」の方向性で異常進化した、とでもいうか…。

特番も視聴。 :

前の週に放送されてた特番も録画してあったので視聴してみたら、制作風景が紹介されていて。さすがに今時はスタジオの中で撮影するのだなと変なところで感心を。

や、コレは偽記憶かもしれないけど、たしかこの手のソレを作り始めた最初の頃は…。スタッフがスタジオの近所の川に入りながら人形を操ってロケ撮影してたけど上流に養豚場だかその手のソレがあって下水をガンガン垂れ流してたもんだからスタッフが次々と謎の奇病にかかって病院送りに、てな感じの制作エピソードを聞いたような記憶が。…違ったっけか。取材した人が「そんなドブ川に入って大丈夫なのか」と驚いてたような…。偽記憶かなあ…。偽記憶かも…。そもそも何の媒体でその情報を目にしたのか思い出せない…。ファンロードだったような、それとも漫画雑誌だったような…。

何にせよ、さすがに今時はそんな酷い目に合わずに済むのだなと…。でも、たまにはオープンセットで撮影してほしい気も。見た目のリアルさが違ってくるし…。でも人形が退色しちゃうかな。

日本でも作れないのかな。 :

日本でも、こういう人形劇を作れないものか…。富野監督原案の人形劇とか。宇宙を舞台にモビルスーツがビュンビュン飛ぶ人形劇。宮崎駿監督原案の人形劇とか。奇怪な形状の飛行メカが画面を覆いつくす人形劇。いやまあ、最近NHKで放送してる、3DCGでキャラを動かしてるサンダーバードでも見て我慢しなさいって言われそうだけど。

宮崎駿監督が描いた「シュナの旅」を現代布袋劇で映像化、とかヨサゲだったりしないか…。元々の布袋劇は、一人の話者が全キャラの台詞+状況説明を語り続けることで成立するらしいけど。「シュナの旅」原作本も、台詞主体ではなく状況説明で話を進めていくスタイルなので、布袋劇で映像化したら全体の雰囲気がドンピシャで合いそうな。 *1 また、「シュナの旅」では、「風が吹いてる場面が多い」「服の模様が細かい」といった、アニメでやったら面倒臭そうな要素があるけど、現代布袋劇の「あらゆる場面で風を起こして何かを伝える」「服のデザインに凝る」てなあたりと相性がいいのではないか、とも。そして、おそらく日本で上映される版は日本人の俳優さんに語り部をお願いするのだろうけど。誰を起用するのか等の妄想もなんだか楽しそう…。例えば、吉永小百合さんに、とか…。いや、いっそ宮崎駿監督が語り部になるのも面白そうだけど…。面倒だったら弟子筋の庵野監督に押し付けて…。

ガンダムシリーズを人形劇で、てのも良さそうだよな…。役者を使った撮影では、宇宙空間・無重力表現が大変だけど、人形ならいくらでもふわふわさせられる…。もしかすると、地上で展開していく話より、宇宙空間で展開していく話のほうが人形劇に向いてたり、てなことは…。いや、どうかな…。

などとバカ妄想を。

*1: と思ったけど、YouTubeでその手のソレをいくつか眺めてみたら…。落語に近い感じの演じ方だからちょっと違うかな、という気も…。

2016/07/10() [n年前の日記]

#1 [nitijyou] 投票してきた

参議院選挙、ということで集会所まで行って投票してきた。

今回は…悩んだ…。どの候補者も選びたくなかったわけで…。参った…。

2016/07/11(月) [n年前の日記]

#1 [nitijyou] 工具箱の中から謎のICを発掘

工具箱の中を漁っていたら、学生時代に購入したと思われる謎のICが出てきた。 学生時代の自分は、一体何を作ろうとしていたのか…。もはや思い出せない…。

A-Dコンバータだけは、何に使おうとしてたか分かるけど。8bit PC の SHARP X1 に繋いで、PCM録音をしようとしていた、ような気がする。今はもう、あらゆるPCについてる録音機能だけど。当時、そんな機能はPCについてないのが当たり前だったのです…。そもそもメモリが64KBとかそんなんだったし…。

#2 [pc] 携帯ゲーム機にGPIOがついてたらもうちょっと違ったのだろうか

GPIOてのは、「汎用I/Oポート」のことらしいけど。「I/O」は「Input/Output」の略。入出力、ってことですが。

_マイコン活用基礎:周辺機能を学ぼうー(1)GPIO | ルネサス エレクトロニクス

Raspberry Pi や Arduino 関係の記事を眺めていると、なんだかモヤモヤしてくる時が。自分達の身の回りに、持ち歩ける小さなコンピュータがこれだけ普及してる時代なのに。どうしてわざわざ、新規に Raspberry Pi なり Arduino なり、その手のコンピュータを導入しないと、そういうことができないのかなと。自分のような貧乏人の部屋にすら、小さくて持ち運べるコンピュータが埃を被ってゴロゴロ転がってるというのに…。そいつらだって、LEDを光らせたり、モータ制御する程度のスペックなら、十分に持ってるはずなのに…。

例えばスマホに、いや、ガラケーに、あるいはノートPCでもいいけど、GPIOに相当する何かが用意されてたら、そのコンピュータを流用して色々できたのかもしれないよなと…。

ニンテンドーDSに、あるいは PS Vita に、そういう何かがついてたら、巷に溢れてる「Raspberry Pi (Arduino) を使って○○しよう!」的な記事は、そのほとんどが「ニンテンドーDS (PS Vita)を使って○○しよう!」という記事として公開されていた、かもしれず。

今はもう青息吐息気味なコンパクトデジカメの市場だって、ユーザが書いたプログラムを動かして好きなように画像処理までできますよ、みたいな点が早い時期から売りだったりしたら、例えば電動雲台をデジカメから制御しちゃう事例が出てきたりなんかして、もうちょっと展開が違ってたかもしれない、などと夢想したりもして。原発事故現場に潜っていったロボットの頭脳部分には、Canon製デジカメやSONY製デジカメが鎮座ましましていたり、とか。

enchantMOONだってGPIOがついてたら、Raspberry Pi の位置にどっしりと enchantMOON が座り込む状況に…。いや、価格からしてソレは無理か…。

まあ、どれもこれも、今更どうしようもないのだけど。

本当にそうだろうか。今は死にかけているジャンルの製品に、そういう機能をつけてみたら、少しは息を吹き返したり…。甘いかな。甘いだろうな。そういうアレコレって、端子一つすら削りたい世界なのだろうし。

2016/07/12(火) [n年前の日記]

#1 [anime] 仮面ライダーアマゾンズ、1〜2話を視聴

BSで放送が始まったらしいので見てみたり。おお…ちょっとアダルト向きっぽい作り、のような…。最近の平成ライダーはどちらかというと子供向け気味になってた気がするので、自分のようなおじさんにとっては、なんだか嬉しい方向性だなと。や、ニチアサ版も好きですが。

1〜2話は石田監督担当で、そのせいか映像もなんだかソレっぽくてイイ感じ。しかも小林靖子脚本。完璧や…。

オリジナル版は子供の頃に見たままそれっきりだったのでよく覚えてないけど、モグラ怪人が懐かしい…。登場時に「なるほどなあ…」と感心を。そういう配置か…。

興味が湧いてググってみたら、ネット配信版で含まれてた刺激性の高いシーンは、TV放送版でカットされていると知り。ネット配信には、そんな強みもあったのかと…。

2016/07/13(水) [n年前の日記]

#1 [raspberrypi] Raspberry Pi3が届いた

数日前に Raspberry Pi3その他を注文していたのだけど、今日の昼ちょっと過ぎに届いた。

_Raspberry Pi てのは、手のひらサイズのコンピュータ。元々は教育用として企画されたけど、サイズやスペックがイイ感じだったので、電子工作やら制御やら、もっと色々な使い道があるんじゃないのと、あちこちでワイワイやってる製品、てな感じの説明でいいのだろうか。

入手にかかった期間。 :

ショップのサイトで注文したのが日曜の夜。振り込んだのが月曜の朝。月曜の午後には「長野郵便局に配送を頼んだよ」と連絡メールが来て。水曜日の昼過ぎに配達してもらえた。要は、そのくらいの期間で届いたよ、ということでメモ。

てっきり宅急便っぽい箱で届くのかと思ってたけど、郵便ポストに入る程度の薄い箱で届いていたので驚いた。つまりはそれだけ、Raspberry Pi関連製品は小さいよ、ということだなと…。

届いた品をメモ。 :

今回は _KSY さんで、以下の品を注文。
  • Raspberry Pi 3 Model B ... 5,670円
  • Piケース RS for 3/2/B+ 白 ... 972円
  • USB電源アダプター 5V/2.5A/1P ... 1,620円
  • Raspberry Piシリーズ用ヒートシンク セット ... 540円
  • microSDHC Team製 16GB CLASS10 ... 1,080円
  • Piカメラ Official V2 for 3/2/1 ... 3,780円
raspberry_pi_and_etc.jpg

計13,662円(税込)。cameraモジュールも注文してしまったので、ちょっと高くなったけど。本体+ケース+電源等の基本製品だけなら9,000円台で揃うはず。というかセットで売ってるからソレを選んだほうがいいと思うけど。

ただ、ちょっと問題が。USB電源アダプタに、USB電源ケーブルがついてくるはずだけど。ケーブルが入ってない…。全部の箱を開けて確認してみたけど、やっぱり入ってない…。

USB電源ケーブルは別売りだったのかなと不安に思って、 _USB電源アダプター 5V/2.5A/1P のページを再確認してみたけど、「USB電源ケーブル付属」と書いてあるよな…。これはたぶん、梱包ミスだな…。

とりあえず、KSYさんにメールでその旨連絡を入れておいたけど、どうなることやら…。「あらまあゴメンナサイ」で済んでくれればいいけど…。

※ 2016/0716追記。KSYさんから別途USB電源ケーブルが届いた、とメモ。対応してくれてありがとう、なのです。

microSDHCの速度を測ってみたり。 :

Raspberry Pi は microSDHC にOSを入れて動かすらしいのだけど、以前は相性問題が起きてたそうで。なので、「相性問題は起きないよ」と謳ってる、Team製の microSDHC (KSY016G0MC28P1) も一緒に注文してみたわけで。

せっかくだから一応速度を測ってみたり。ちなみにカードリーダは、 _BUFFALO BSCRMSDCWH 。USB2.0接続。
-----------------------------------------------------------------------
CrystalDiskMark 5.1.2 x64 (C) 2007-2016 hiyohiyo
                           Crystal Dew World : http://crystalmark.info/
-----------------------------------------------------------------------
* MB/s = 1,000,000 bytes/s [SATA/600 = 600,000,000 bytes/s]
* KB = 1000 bytes, KiB = 1024 bytes

   Sequential Read (Q= 32,T= 1) :    20.054 MB/s
  Sequential Write (Q= 32,T= 1) :    17.851 MB/s
  Random Read 4KiB (Q= 32,T= 1) :     3.139 MB/s [   766.4 IOPS]
 Random Write 4KiB (Q= 32,T= 1) :     0.687 MB/s [   167.7 IOPS]
         Sequential Read (T= 1) :    19.715 MB/s
        Sequential Write (T= 1) :    15.310 MB/s
   Random Read 4KiB (Q= 1,T= 1) :     2.596 MB/s [   633.8 IOPS]
  Random Write 4KiB (Q= 1,T= 1) :     0.543 MB/s [   132.6 IOPS]

  Test : 100 MiB [E: 0.0% (0.0/14.7 GiB)] (x3)  [Interval=5 sec]
  Date : 2016/07/13 20:07:40
    OS : Windows 10 Professional [10.0 Build 10586] (x64)
    microSDHC Team 16GB Class10 + BUFFALO BSCRMSDCBK (USB2.0接続)

microsdhc_team16gb_class10__20160713_200737.png

これは…。速いのか、遅いのか…。どうなんだろう…。どの数値を重視して判断すべきなのか…。

そもそも、このUSB接続カードリーダは、速度的にどうなんだらう。

OSをインストールするための準備。 :

自分はメインPC上で Windows を使ってるので、 _Raspberry Pi Downloads - Software for the Raspberry Pi から、NOOBS なるものを入手。NOOBS_v1_9_2.zip をDLした。

コレを解凍して、microSDHC に全ファイルをコピー。この microSDHC を使って Raspberry Pi を起動すると、OSをインストールすることができるらしい。

ケースに入れた。 :

ケースを開けて、中に Raspberry Pi3 を入れる。が、ケースを開けるところで一苦労。4点で引っ掛かるようになってたけど…。どうにかなんとか開けたけど…。何かコツがあるのだろうか。

ちなみに、今回白いケースを選んだのは、Raspberry Pi2 以降は強い光を当てると誤動作する、という話を見かけたからで。

_Raspberry Pi 2 にフラッシュなどの強い光を当てると再起動してしまう件 | ピックワールド(PIC World)

対策としては、誤動作するチップに光を遮る何かを載せるとか、不透明なケースを選ぶとか…。本当は透明なケースにしたかったのだけど、そういう理由で白いケースを選んだわけで。

microSDHCをスロットに差す。 :

microSDHC は、Raspberry Pi3 の裏面についてるカードスロットに差し込むらしい。以下の記事内の写真画像が参考になった。microSDHCの端子が、基板側にくるような方向で差すっぽい。

_Raspberry Pi 2 Model BにRaspbian(Jessie)をインストールする手順(2016年2月版) | darmus.net
_IoTスイッチの「Raspberry Piで作るドアの開閉お知らせ&履歴記録DIYキット」を使った設置方法IoT時代の初心者から始めるDIY電子工作

OSをインストールしたいのだけど。 :

USB電源ケーブルが無いので、作業が進められない…。

と思ったけど、部屋の中を見渡したら、Androindタブレット端末 Lenovo IdeaPad Tablet A1 のUSB電源ケーブルが目に入った。コレを流用してどうにかならんか…。

IdeaPad Tablet A1のACアダプタをチェックしたら、5V / 1.5Aと書いてあった。Raspberry Pi3 は最大2.5A流れるらしいから、下手すると火事に…。いや、通常時は1Aぐらいと誰かが書いてたし、なんとかなってくれないか…。

OSをインストール。 :

IdeaPad Tablet A1 のUSB電源ケーブルを試しに使ってみた。おお、虹色の画面が出てきた。これはもしかすると、なんとかなる、かもしれない。

後は画面に従って作業を進める。OSインストール終了後、一度再起動。

起動時に、イチゴっぽいアイコンが4つ表示された状態でずらずらとメッセージが。「俺様はCPUを4コア積んであるぜ!」ってことですかな…。素晴らしい。

デスクトップ画面が出てきた。これが Raspberry Pi のデスクトップ画面か…。

構成その他。 :

ワットチェッカーで消費電力を測ってみたけど。インストール処理中は2W程度、電流は 0.05Aと表示されてた。もっとも、自分が使ってるワットチェッカー ―― たぶん、 _サンワサプライ TAP-TST5 だと思うけど、この製品の精度からして、数値はちょっとあてにならないかも。だとしても、先日200円PCケースに入れた CPU + M/B が、画面をペロンペロンと書き換えるほどに遅かったのに60W以上食ってたことを考えると…。コレは圧倒的な省電力性。画面もペロンペロンにならないし。

作業に使ったマウスとキーボードは、 _Logicool k400r 。ワイヤレスキーボードなので受信アダプタが電気を食いそうだけど、一応動いてくれた。まあ、タッチパッドもついてるキーボードだから、マウスとキーボードの2つを1つの受信アダプタで済ませられるわけで、その分消費電力がトントンで済んでくれれば、と思ってたりもするけど実際はどうなんだろう。

LAN接続は、ひとまず有線LANケーブルで。Raspberry Pi3 は無線LAN機能が追加された製品なので、できれば無線LANで接続したかったけど、MACアドレスが…分からん…。ウチの無線LANルータはMACアドレスを登録しないと接続できない設定なので、事前にMACアドレスを知る術がないと…。

そういえば、LANケーブルは100円ショップで買った品だけど、フツーに使えたなと…。ケーブルの線に「Category 5e」と書いてあったから、表記が正しくてコネクタの圧着がちゃんとできてれば、たぶん使えるだろうと思って買ったのだけど。

#2 [raspberrypi] 秋月電子通商からも色々届いた

秋月電子通商で月曜の夜に注文していた品が今日届いた。

注文していた品は以下。
akiduki_20160714.jpg

計 1,710円 + 送料 500円 = 2,210円。銀行振込で。

これが…マイクロサーボモータってヤツなのか…。初めて触った…。なんだか感動。

2016/07/14(木) [n年前の日記]

#1 [raspberrypi] Raspberry Pi3にカメラモジュールを接続

Raspberry Pi の関連製品の中には、専用のカメラモジュールが用意されていて。以前は500万画素のセンサが載ってたらしいけど部品の調達ができなくなって、今現在はSONY製800万画素のセンサが載った、カメラモジュール V2 なるものが販売中だそうで。

今回、本体と一緒にカメラモジュールも購入したので、せっかくだから早速接続してみようかなと。

本体と接続。 :

接続方法は、 _Raspberry Piカメラのセットアップ方法 >> DesignSpark でも解説されているけど、文章だけで説明されているので、何が何だか…。

動画を探してみたら、なんとなく分かってきた。

_Raspberry Pi - Camera Tutorial... - YouTube
_Raspberry Pi [10] - Connecting Camera Module - YouTube
_Camera board setup - YouTube

本体基板上のコネクタの上に蓋だかタブだかがあるから、ソレを上にグッと引っ張ると隙間ができて。そこにカメラモジュールのフラットケーブルの先端を差し込むらしい。向きは、ケーブルの金属端子部分が、HDMIコネクタの側を向くように。差し込んだら、蓋だかタブだかを上から押しこむと、ケーブルが固定される、という感じらしい。

接続はできたのだけど、カメラモジュールがケースに入らない…。 _RS Componets Piケース RS for 3/2/B+ 白 なる、上面にイチゴっぽい穴が開いてるケースだけど…。「カメラモジュールを内蔵できますよ」てのが売りらしいけど、カメラモジュールのフラットケーブルがケース内でギッチリミッチリしていて…入らない…。コレは騙された、かも…。

なんとか無理矢理抑え込んで入れてみたけど、フラットケーブルの反発で、ケース上面の蓋がポコッと浮いてる状態に。うーん。それでもまあ、とりあえず、動作確認してみたり。

OS側の設定。 :

sudo raspi-config を実行すると、camera がどうとかの項目があるので、そこで enable にしてやる。これだけでOS側の準備は終了らしい。

撮影用コマンド。 :

raspistill なるコマンドで静止画を撮影できるらしい。-o xxxxx.jpg で、保存ファイル名を指定。
raspistill -o hoge.jpg
5秒ほどデスクトップ画面全体にプレビューが表示されて、その後撮影されるようだけど。想像していたよりも、撮影時間が…長い…ような…。まさか1枚撮影するのに、体感で10秒近くかかるとは思ってなかった…。厳しいな、コレ…。

プレビューを表示したくない場合は、-n オプションをつける。このオプションをつけても、5秒ほど様子を見てから実際に撮影するのは変わらないらしい。
raspistill -n -o hoge.jpg

5秒ほどプレビューしてる間に、明るさの調整その他をしているようで。-t 1 等を指定すればプレビュー時間を 1ms に指定できるらしいけど、その場合は風景の明るさが分からなくて真っ黒な画像が撮影されてしまったりする。
raspistill -n -t 1 -o hoge.jpg

問題発生。 :

何度か撮影しているうちに、撮影画像の右下や左下に、白くてぼんやりとした、もやみたいな何かが映ってることに気が付いたり。必ず映るというわけでもないけど、たまに何故か写り込む…。

これは想像だけど。おそらく、ケースが白いこと、及び、カメラのレンズ位置とケースの穴の位置が合ってないことが問題なのではないか、と…。要するに、ケースのデザインが悪い予感。

ケース上面にカメラモジュールを付けると、こんな感じの見た目になるのだけど。
camera_and_case.jpg

カメラのレンズ位置と、穴が、微妙にずれてるような…。

撮影すると一応撮影画像が得られるので、致命的なほどにずれてるわけではないのだけど。ただ、光の当たり方によってはこうなるのではないか、と。
camera_and_case_edit1.png

ケースが白い上に、カメラ位置がケースよりも結構奥に引っ込んでいるので、光が反射して入ってしまう時があるのではないか、と。

なら、黒いケースを買っておけば問題が無かったのか、とも思ったけど、黒いケースも表面がテカテカツヤツヤしているだろうから、やっぱり反射しそうな気…。であれば、透明なケースだったら…。それはそれで光が色々と屈折して入ってしまいそうな気も。

あるいは、こうしてしまうとか…。
camera_and_case_edit2.png

いや、しかし、結構幅があるわけで…。切り取るのが大変そう。

「ちょっと待て。お前のソレ、そもそも取り付け位置がおかしい」という話もありそうな。例えば、 _Raspberry Pi 2 Model B用エンクロージャ--在庫限り - スイッチサイエンス によると、ケースに立てる形でつけることもできるらしいし。…ただ、件の記事にも書いてあるけど、カメラモジュールの基板は差し込めるものの、フラットケーブルの入る空間は考えられてないので、件のつけ方ではカメラが使えないはず。実際試してみたけど、やはりフラットケーブルの反発で、カメラモジュールが黒ひげ危機一髪状態で上にピョンと飛び出してしまったり。ちなみに上下を逆にして試してみたけどダメだった。無理に差したら基板の裏面が壊れそう。

てなわけで、カメラモジュールはケースの外に出さないとダメなんじゃないかな、と思えてきた。このケースを選んで…失敗した…。どうせ内部に入れられないなら、別ケースを買ったほうが良かったかも…。開けたり閉めたりするのも一苦労だし…。

いやまあ、これはこれで、テカテカツヤツヤしていて、なんだかオシャレな感じのケースではあるのだけど。見た目はチョベリグな感じなんですけど。

撮影画像の画質。 :

撮影画像の画質は…。部屋の中を撮影した感じでは、なんというか…。Webカメラのレベル、とでもいうか…。

外の風景も撮影してみたいけど、電源コードの長さが届く範囲でしか撮影できないわけで…。

#2 [anime] 「けいおん!」の二期が始まったっぽい

NHK-BSで放送されてる「けいおん!」が、二期目に入ったようで。1話を見たけど…。やっぱり今見ても、凄い…。動きも、表情も、やっぱり凄い…。どうしてここでそんな動きをさせようと考えるかな、てな感じで、凄い…。

1話の脚本は吉田玲子氏。吉田脚本と言えば「銀河機攻隊 マジェスティックプリンス」(以下「MJ」と略)ですよ。「MJ」も「けいおん!」も、 *1 キャラの会話のノリはそこそこ同じように感じているのだけど。しかし「けいおん!」はキャラの細かい仕草に対する気配りの度合いが違う…。これはおそらく1話のコンテを担当した、監督の山田尚子氏のソレなのかなと。あるいは当時の京アニの作画陣の拘り、だったのだろうかと。脚本から大きく逸脱するわけでもなく、しかしおそらく細部に対して大幅に膨らませながらコンテや動きを描いてたのではあるまいか、と…。だって、「MJ」あたりでは、こういうアレコレなんてまず無いし。どちらも優れた脚本家さんから脚本を受け取っておいて、「MJ」スタッフは「MJ」のレベルで出してきて、京アニは「けいおん!」を出してきたわけで。 *2

何にせよ、「けいおん!」の二期の一話を見て、やっぱり凄いなと思いました。とメモ。
*1: 「けいおん!」は原作付きと言う点を差し引いたとしても、
*2: いや、まあ、その代り「MJ」は、3DCGで描かれたロボットのモーションに気合を込めてた印象があるけれど。3DCGアニメーターさん達の膨らませ方・拘り方が凄いというか…。そっちかー、そっちに力入れたのかー、みたいな。…や、キャラの表情を積極的に崩してたあたりも好感が持てましたけど。まあ、キャラの仕草に関しては、てなだけの話でして…。

2016/07/15(金) [n年前の日記]

#1 [raspberrypi] Raspberry Pi のカメラモジュールV2はピントが合ってない

撮影実験をしているうちに気が付いたけど。Raspberry Pi のカメラモジュールV2は、ピントというかフォーカスが合ってない、ような…。低価格帯のWebカメラと同様というか…。チャット等をする際は都合がいいようにと、80cmとか1mとか、そのぐらいの近い距離にピントが固定してある、ような気がする。

ググってみたら、やっぱりそうだったらしい。

_Raspberry Pi - View topic - New 8MP Camera - Q&A thread

英語赤点野郎だから自信は無いけど、

「V2は、V1と違って、無限遠にピントを合わせた状態で出荷していない」
「これはセンサ供給元のSONYが意図的にやっている」
「携帯電話に載せること前提の製品だからそうなってる」
「接着剤ではなく粘性の何かで固定すればユーザが調整可能になりそうだけど…どうしよ」

みたいな感じの話が書かれてる、のかな。たぶん。

ユーザさんが頑張ってどうにか調整した際の結果画像も提示されていたけど。

_Raspberry Pi Camera v2 - Album on Imgur

たしかに全然違う…。

ただ、「ペンチで回そうとするとレンズを挟み過ぎて壊しちゃうよ。俺、2回壊した」てな話も。それは…困ったのう。

件の記事では、レンズ部分を回すための専用の工具と言うか、レンズスパナとやらを自作して調整したほうがいいぜ、みたいな話になってるようで。古くなったクレジットカードを切り抜いて作ったとかなんとか。また、レンズスパナの3Dプリンタ用データもあるらしい。3Dプリンタか…。いいな…。そういう話を聞いてしまうと、やっぱり3Dプリンタは革命だな、と…。

どこかで発売しないか…。レンズスパナ…。いや、使う場所があまりにも限られてるから、作るわけないか…。

クレジットカードって、厚さはどのくらいなんだろう…。 _クレジットカードのサイズは?国際規格とは?|クレジットカードの仕組みや使い方の道しるべ! によると、厚さ 0.76mm らしい。ということは、1mmぐらいのプラ板があればレンズスパナとやらが作れるのかな。

#2 [raspberrypi] 紙でカメラモジュールケースを仮作成

_Raspberry Pi3 のケース 内からカメラモジュールを外に出すことに決めたものの。カメラモジュールの基板が露出した状態で実験するのは危ないよなと。公式でも「静電気にめちゃくちゃ弱いから取り扱いには気をつけろ」と書いてあったし…。

後で、もっとちゃんとしたカメラモジュール用ケースを作ることになるだろうけど、ひとまず、紙を使って仮ケースを作成してみたり。こんな感じに。

camera_module_case_2_photo.jpg

紙製だから強度が無くて、フラットケーブルの反発で歪んでるけど…。まあ、仮だからいいやと。

ケースへの固定その他は、100円ショップで購入したメンディングテープ(?)で。貼ったり剥がしたりできるテープ。仮だからコレでいいや、と。

モジュールの固定は、コレも100円ショップで買った、ビニール被膜付きの針金で。仮だからコレでいいや、と。

図面その他。 :

カメラモジュールのサイズは、
_Raspberry Pi Camera Module Mechanical Dimensions という記事が参考になった。ただ、試した感じでは、カメラ部分は 8x8mmピッタリというわけではないようで。9x9mmぐらいにしておいたほうがスポンと入ってくれそう。

_AR_CAD で以下のような図面を作成。

_camera_module_case_2.pdf

コレをプリンタで印刷して組み立てた。

印刷用紙は、少し厚みがあって工作向きとされている、 _Canon マットフォトペーパー A4 を使ってみたり。

さておき。紙を使ってもこの程度の形状が作れるなら…。100円ショップで薄いPPシートを買ってきて作れなくもない、のかな。どうなんだろう。その場合静電気はどうなるんだという不安もあるけど。

#3 [pc] Canon PIXUS iP4600ってどの程度の厚紙まで利用できるのだろう

プリンタで、もう少し厚みのある紙が使えたらいいのだけど…と思ったのだけど。自分が使ってるプリンタ、Canon PIXUS iP4600 について改めて調べてみたら、本来なら Canon マットフォトペーパーA4すら使えないのでは、と思えてきて。

_使用できる用紙と積載可能枚数(PIXUS iP4600) には、
64〜105g/m2(キヤノン純正紙以外の普通紙)この範囲外の重さの用紙(キヤノン純正紙以外)は、紙づまりの原因となりますので使用しないでください。
と書いてある。 *1

ところが、 _Canon マットフォトペーパー A4 は、170g/m2 なわけで。オーバーしてるやん…。

しかし、 _プリントヘッド位置を調整する(PIXUS iP4600) では、
罫線がずれるなど、印刷結果に均一感が見られないときには、プリントヘッド位置を調整します。
用意するもの:A4サイズのマットフォトペーパー(MP-101)1枚
と書いてある。

「プリントヘッド位置調整には MP-101 を使いましょう」と書いてあるのに、スペック上は「そんな重さの紙は使えませんよ」と書いてあるわけで。どういうことや…。

あ。分かった。「64〜105g/m2(キヤノン純正紙以外の普通紙)」と書いてあるところがポイントなのか。「Canon純正紙は別扱いだよ」「他のメーカが出してる重い紙を使って『紙が詰まった!』と文句言われても、そんなの知らんがな」ってことなのか。

ていうか。使える用紙の中に、Canon マットフォトペーパー MP-101 が、ちゃんと列挙されてましたわ…。

改めて眺めてみたら、 _Canon 写真用紙・光沢 プロ プラチナグレード のほうが、紙が厚いのでは…。300g/m2, 紙厚 0.300mm と書いてあるし。マットフォトペーパーは、170g/m2, 0.220mm だし。

だけど、値段が凄い。マットフォトペーパーは、1枚28円ぐらいだけど。写真用紙プラチナグレードは、1枚66円ぐらい。

他のメーカで出してる用紙はどうなのかなとググってみたけど。例えば _ELECOM ペーパークラフト専用紙(マットタイプ) - EJK-HCシリーズ は、厚くても 180g/m2, 0.21mm で、Canon マットフォトペーパーと同じくらい。やはりそのぐらいの紙厚が無難、ということだろうか。
*1: m2 は、平方メートル。環境依存文字になってしまうのでとりあえず「m2」と記述。

2016/07/16() [n年前の日記]

#1 [raspberrypi] カメラモジュールのケースをどうにかすべくアレコレ購入

Raspberry Pi3 のカメラモジュールV2を、そこそこちゃんとしたケースに入れてやりたいので、ケースになりそうな何かを探しに、あちらこちらのお店まで電動自転車で行ってきたり。

ホーマックで、M2 x 10 なるネジ+ナットと、OLFA 万能M厚型カッターを購入。

カメラモジュールの基板を何かしらに固定するために、ネジとナットが必要になるだろうと。カメラモジュール基板に開いている穴は直径が2mmらしいので、ココは直径2mmのネジが欲しい。店頭で、M2は太さ、と書いてあったから買ってみたけど、本当にその太さかな…。ノギスで測ってみたら、一応2mmの太さのように見えてるけど…。

_OLFA 万能M厚型カッター は、フツーのカッターより刃が太くて、0.45mm ほどあるらしい。その分、プラ板等も切りやすい、という感想記事を見かけたので購入してみたり。替刃は、 _オルファ 替刃M厚 なるものが必要。

Seriaでメモ帳やらなんやらを購入。色々探してみたけど、カメラモジュールのケースになりそうなものは見つからず。DS(ニンテンドーDS?)のメモリカードケースが、もしかすると使えそうな気もしたけど…。

ダイソーで、0.75mm厚のPPシートその他を購入。ここでもケース代わりになりそうなものは見つからなかったので、PPシートを切ったり折ったりして工作するしかないかなと。しかし、0.2、0.75、1、1.2、1.4mm厚ぐらいしか見つからない。0.5mm厚とか無いのかな…。もしかして、誰かがごっそり買い占めて、その後入ってこない、みたいな状態だったのだろうか。

リオンドールでフリスクなるものを購入。このケースがカメラモジュール用のケースにピッタリ、という話を見かけたので…。場合によってはその選択肢もアリかなと。ただ、50粒も入ってる…。もったいないから一応食べるけど、いつになったら空になることやら。

帰宅後、犬の散歩。 :

帰宅後、疲れてそのまま寝てしまいそうな感じだったので、ちょっと早いけど夕方の犬の散歩に。翠ヶ丘公園のあたりで蚊に刺されて、手の甲がぷっくりと…。虫よけジェルは塗っていったのだけどな…。

そういえば、最近薬局に行ってもジェルタイプの虫よけ商品が無くて、どれもスプレータイプばかりなのだけど。何故なんだろう。ジェルタイプは何か問題でも発生したのだろうか。

#2 [raspberrypi] USB電源ケーブルが届いた

KSYから、梱包されてなかったUSB電源ケーブルが別途郵送で届いた。早速使ってみたけれど、フツーに Raspberry Pi3 が起動してくれた。これで、最大2.5Aが流れても、問題無く実験ができそう…。

2016/07/17() [n年前の日記]

#1 [raspberrypi] Raspberry Pi3でLチカ

「Lチカ」とは、「LEDをチカチカと光らせる」の略、でしょうか。分かりませんが。

先日、秋月電子通商さんから、赤いLEDやら、ブレッドボートやら、色々購入したので、Raspberry Pi3 で光らせてみようかと。

「はぁ? LEDが光ったとして、ソレが何なの?」
「LEDなんか周りで光りまくりじゃん」
「そんなもんを今更わざわざ光らせるとか、意味わかんない。バカなの?」

…などと言われるかもしれんけど。LEDという電子部品をコンピュータから制御できるってことは、その延長線上で、モータを制御したり等、色んなモノを制御できる道筋が見えてくるわけで。プログラミングで言うところの「Hello World」ですよ。「Hello World」が表示できれば最低限の環境構築は完了で、後はひたすらソースを書くだけ、てな状態になるわけで。Lチカも似たようなもんです。

LEDと抵抗値。 :

今回購入したLEDは、 _3mm赤色LED LT3U31P 250mcd 。秋月電子さんのサイトには、 _LT3U31Pのデータシート(pdf) も載っている。それによると、順電圧 1.85V、電流 20mA を流すと、250mcd の明るさで光るよ、と書いてあるように見える。自信無いけど。

LEDを光らせるためには、えてして直列に抵抗を繋いで、電圧や電流を調整しないといけない。抵抗値の求め方は、これも秋月電子さんのサイトで、親切にも計算の仕方が載っている。

_抵抗の計算方法(led-r-calc.pdf)
LED抵抗の基本的な計算式は次のようになります。

(電源電圧[V] - 順方向電圧降下[V]) ÷ 順方向電流[A] = 抵抗値[Ω]
あるいは、 _ツール・ラボ >> 第20回 LEDに接続する抵抗値を計算する も参考になるかと。

例えば、電源電圧が3.3Vと仮定すると、繋げる抵抗値は…。
(3.3V - 1.85V) / 0.02A = 72.5Ω
つまり、72.5Ωの抵抗を繋いでやれば、このLEDは定格で光ってくれるはず。ということで、72.5Ωぐらいの抵抗を探して…。

待て。あわてるな。これは孔明の罠だ。

単に光らせるだけなら、その抵抗値でいいのだろうけど。今回は Raspberry Pi の GPIO を使って光らせたいわけで。しかし、Raspberry Pi の GPIO には、流せる電流の制限があるから…。

_ツール・ラボ >> 第22回 Raspberry PiのGPIO概要
- GPIOピン1本あたりの最大電流は16mA
- 複数本のGPIOピンを使用する場合、同時に流せる電流の合計は50mAまで

_Raspberry Pi LED点滅(Lチカ) 抵抗の決め方 : 電子工作と3DCAD
Raspberry Piクックブックによれば、出力ピン1本あたり3mAを超える電流を流すと、寿命を縮めるおそれがあるそうです。
なので、電流制限抵抗も3mAとなるように抵抗値を選ぶほうが良いと思われる。

ということで、「データシートに書いてあるから」と、20mA を流したらマズイ。GPIOに合わせて、ココは 3mA程度を流すことにする。
(3.3V - 1.85V) / 0.003A = 約483Ω
483Ωより大きい抵抗を繋げてやればいい、ということになる。

「ちょっと待てよブラザー。データシート上では20mA流すことになってるのに、3mA程度を流しても光ってくれるのかい?」

ソレは…ぶっちゃけ試してみないと分からない。LEDの各製品によってスペックが違うので。その程度でも電流の大きさに応じて光ってくれるヤツも居れば、最小でもンmAは流してくれないと俺は光らないぜ、ってヤツも居るので。

抵抗値の見方。 :

ひとまず、工具箱の中を漁ってヨサゲな抵抗を探したり。「青灰茶金」の抵抗が見つかった。…ところで、最近自分も老眼が進んだようで、眼鏡を外さないと近い距離が見えないんですよね。探すのに10分ぐらいかかった。それはともかく。

抵抗器は、一般的には表面に4本の線が塗られていて、その線の色で抵抗値が分かるようになってる。 _抵抗のカラーコード や、 _抵抗器のカラーコード を眺めれば分かるだろうか…。左から順番に、2桁の数字、10のn乗、誤差、を表してる。

色と数値の対応は以下の通り。
黒 茶 赤 橙 黄 緑 青 紫 灰 白
0  1  2  3  4  5  6  7  8  9
金 : 10の-1乗 = 0.1、あるいは、誤差±5%
銀 : 10の-2乗 = 0.01、あるいは、誤差±10%

なので、「青灰茶金」の抵抗は、68(青灰) × 10の1乗(茶) = 680Ω、誤差は±5%(金)、の抵抗値のはず。なんだけど。ホントに合ってるのかな。自信が無い。抵抗値を読んだのなんて、下手すると高校以来だし…。不安になったのでテスターを持ち出してきて測ってみたら 650Ωぐらいの表示になったので、まあ、おおよそ合ってるのではないかと…。

計算で求めた483Ωより大きいけど、抵抗が大きければ流れる電流は少なくなるので、GPIOが壊れにくくなるはず。なので、これでいいやと。

回路図。 :

_Fritzing というツールを使うと回路図っぽいものがサクサク作れるらしいので試しに導入。起動してから…。
  • 上のほうの「ブレッドボード」を選ぶ。
  • 画面に表示されてるブレッドボードを選択。右下のインスペクター欄で「full+」→「half+」に変更。
  • 右上のパーツ欄で検索。「raspberry」で検索すると「RP3」もリストアップされるので画面にD&D。
  • 右上のパーツ欄で「CORE」を選べば、抵抗やLEDが選べる。画面にD&D。
  • 端子の上でマウスボタンを押してドラッグすると配線ができる。

こんな感じになった。
led_flash_bb.png

led_flash_c.png


Fritzingの使い方が今一つ分かってないので謎の色がついてるけど、どういう繋ぎ方をしているのかは分かるだろうから、まあいいか…。

とりあえず、GPIO 18番とGNDに繋いでみたり。

Pythonモジュールをインストール。 :

今回は Python でスクリプトを書いてLチカさせたい。なので、Raspberry Pi3 上で、PythonからGPIOにアクセスできるようにするためのモジュールをインストール。
sudo aptitude install python-rpi.gpio
む。既にインストール済みだった。最近の Raspberry Pi のOSは、至れり尽くせりってことでしょうか…。

Pythonスクリプトを書く。 :

あちこちのサイトを眺めながらコピペ。led_flashing.py というファイル名で保存。
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import RPi.GPIO as GPIO
from time import sleep

GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.OUT)

for i in [1, 1, 1, 2, 2, 2, 4, 8, 16, 32]:
    t = 0.01 * i
    for j in range(4):
        GPIO.output(18, GPIO.HIGH)
        sleep(t)
        GPIO.output(18, GPIO.LOW)
        sleep(t)

GPIO.cleanup()

実行してみる。
sudo python led_flashing.py



光ったね! 親父にも光ったことないのに! などと1stガンダムのアムロになったつもりで意味不明な台詞を叫びたくなるぐらいにちょっとだけテンション上がってきました。

#2 [raspberrypi][nitijyou] 配線用のアレコレを買いに自転車で

犬の散歩をした後、近所のホームセンターまで、Raspberry Piの実験用のパーツを買いに。

使おうとしてる抵抗器が、何かの基板から半田を溶かして取り出したソレなので、端子が短過ぎて延長しないとダメだなと。しかし、延長できる導線(?)を持ってなくて。以前100円ショップで買った針金で作業してみたけど、固過ぎるのかなかなか曲がってくれず。ちゃんとした線を買ってこないとダメかも、と。

ダイユーエイトに寄ったけど、電子工作用に使えそうな何かしらは売ってなかった。100V交流の工事用のアレコレは売ってるんだけど…。

ただ、保冷材(500g)や、PPシートを接着できる薄いタイプの両面テープ、 _3M KPU-12 (Scotch 超強力 PREMIER GOLD、幅12mm、厚さ0.6mm、長さ1.5m) を見つけたので、そのあたりを購入。このお店では夏しか保冷材を売ってないので、見つけたらその時にゲットしておかないと。

ホーマックで、スズメッキ線なるものを発見。太さが0.4mmと0.6mmがあったけど、どちらがブレッドボード向きなのか分からないので両方購入。型番は、 _ELPA HK-SM04H_ELPA HK-SM06H だった。

抵抗器にメッキ線をグルグル巻く作業が絶対面倒なことになりそうなので、 _藤丸産業 先丸カッティングプライヤー HK-140 なる工具も購入。「ビーズ細工のワイヤー曲げ加工等に」とパッケージに書いてあった。

単三電池 x 2 の電池ボックスを持ってないので、ソレも購入。 _ELPA UM-SC32NH 。スイッチとカバー付き。ついでに、単三電池 x 1の電池ボックスも購入。 _ELPA UM-310NH

2016/07/18(月) [n年前の日記]

#1 [raspberrypi] Raspberry Pi3でスイッチを読み取り

Lチカはできたから、今度はスイッチの読み取りを実験。

led_and_sw_bb.png

led_and_sw_c.png

GPIO 18番にLEDを、GPIO 24番にタクトスイッチを接続。抵抗は、LED用が680Ω、スイッチ用が3.3KΩ。

lwd_sw.py として保存。
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import RPi.GPIO as GPIO
from time import sleep

LED_PIN = 18
SW_PIN = 24

GPIO.setmode(GPIO.BCM)
GPIO.setup(LED_PIN, GPIO.OUT)
GPIO.setup(SW_PIN, GPIO.IN)

try:
    while True:
        if GPIO.input(SW_PIN) == GPIO.HIGH:
            GPIO.output(LED_PIN, GPIO.HIGH)
        else:
            GPIO.output(LED_PIN, GPIO.LOW)
        sleep(0.016)

except KeyboardInterrupt:
    pass

GPIO.cleanup()

sudo python led_sw.py として実行。スイッチを押すとLEDが光った。終了は、Ctrl + C を押す。

ついでにLEDをPWM制御。 :

PWM(pulse width modulation、パルス幅変調)を使って、LEDの明るさが変化するように光らせてみる。

PWMってのは、オンにしてる時間とオフにしてる時間の比率を変化させることで、電力量を調整する方法、という説明で合ってるのかな。どうなんだろ。 _PWMとは | 東芝 ストレージ&デバイスソリューション社 の図を見れば、なんとなく分かるだろうか…。

Raspberry Piの場合、GPIO 18番がPWM制御に使える、という記述をどこかで見かけた。たしかもう1本、使えるピンがあるという話も見かけたけど…。どこだろう…。

led_pwm.py として保存。
#!/usr/bin/python
# -*- coding: utf-8 -*-

import RPi.GPIO as GPIO
import time

LED_PIN = 18

GPIO.setmode(GPIO.BCM)
GPIO.setup(LED_PIN, GPIO.OUT)
pwm = GPIO.PWM(LED_PIN, 1000)
pwm.start(0)

try:
    for i in range(3):
        for dc in range(0, 101, 10):
            pwm.ChangeDutyCycle(dc)
            time.sleep(0.1)

        for dc in range(100, -1, -10):
            pwm.ChangeDutyCycle(dc)
            time.sleep(0.1)

except KeyboardInterrupt:
    pass

pwm.stop()
GPIO.cleanup()

  • pwm = GPIO.PWM(ピン番号, 周波数) で、PWMを使うピン番号と、PWMの周波数を指定できるらしい。
  • pwm.start(0) で、デューティ(時間幅) を 0 にしてる。
  • pwm.ChangeDutyCycle(デューティ) で、デューティを設定できる。0(%)から100(%)まで指定できる模様。

sudo python led_pwm.py として実行。こんな感じに。



_raspberry-gpio-python / Wiki / PWM や、 _Raspberry PiでPWM制御を使ってLEDを点滅 - 忘れる前に書き残す が参考になった。

#2 [raspberrypi][emacs] Raspberry Pi上にEmacsを入れようとしたけど挫折

Raspberry Pi3上でPythonスクリプトを書く際に vim を使ってたけど、やっぱり vi系は使いづらいなと。ここは多少慣れてる Emacs系のエディタを使いたいなと。

Windows10上のEmacsでtrampを使おうとして挫折。 :

調べてみたら、Emacs には tramp という機能(?)があって、ftp や ssh で他のコンピュータにアクセスしてファイル編集ができるらしい。

_Windows で Emacs + tramp - 雑多な覚え書き

すると、Windows10 + NTEmacs + tramp を使えば、今までゴチャゴチャ設定しまくったEmacs環境をそのまま使って Raspberry Pi3上のファイルを編集できるということかしら。

てなわけで試してみたのだけど、これが全く上手くいかない。

環境は、Windows10 x64 + NTEmacs 24.5.1 + tramp + PuTTY付属の plink.exe。C-x C-f と打って、「/plink:ユーザ名@ホスト名#22:~」とか「/ユーザ名@ホスト名:~」とやってみると、Windows10のデスクトップ画面全体を巻き込んで固まってしまう…。dired の表示まではできるのだけど、そこから .py を開こうとしたところで固まる。なんでや。使ってる NTEmacs の版がアレなのか、~/.emacs 等で設定してる内容がいかんのか。

ちなみに、~/.emacs に書いたのは以下。PuTTY のインストール場所は、環境変数 PATH に追加済み。
(require 'tramp)
(setq tramp-default-method "plink")

以下も書いてしまうと、ますます固まる。なんでや。
(setq tramp-shell-prompt-pattern "^[ $]+")

Raspberry Pi3上でEmacsをインストールしようとして挫折。 :

これは Raspberry Pi上に Emacs をインストールして、ソレを使うしかないのかなと。しかし調べてみたところ、Raspberry Pi の apt-get でインストールできる Emacs はバージョンが古いそうで。

_Raspberry PiでEmacs 24.5とCaskを使う - Qiita を参考にして、Emacs 24.5 をインストールしてみたり。ソースをDLしてmakeしなきゃいかんらしい。ちなみに、巷の記事では make、make install に1時間半以上かかるという話だったけど、Raspberry Pi3で試したら30分もかからなかった。CPUがパワーアップしてるから、なのだろうか…?

Emacs自体はインストールできたので、前述の記事を参考に Cask なるものもインストール。ただ、Cask なんて使ったことがないから、環境構築の仕方が分からない…。

Raspberry Pi3上での Emacsの起動も、なんだか遅くて、ちょっとゲンナリ。まあ、Windows10上での NTEmacs の起動も結構時間がかかるから、これは仕方ないのかもだけど。手軽にササッと、てなわけにはいかんようだなと…。

ということで、結局のところ vim で書いたほうがいいんじゃないか、という気分になってきた。vim なら、サクッと立ち上がってくれるし…。にしても、vi系は使いづらい…。補完の仕方も分からん…。

tramp関係をもう少し試したり。 :

NTEmacs が固まる際に、「py-install-directory が Don't see じゃよ。readmeを読めや」とメッセージ表示されてるあたりが気になったので、もう少し調べてみたり。

試しに .txt を Raspberry Pi3 上に作ってソレを開いてみたり。…アレ? この場合は、一応開けるし、編集もできる。てことは、NTEmacs 上の python-mode の設定がアレなのかな。

ググってたら、 _how to install python-mode.el for emacs - Stack Overflow という記事に遭遇。最後のあたりで、
(add-to-list 'load-path "~/.emacs.d/site-lisp/python-mode")
(setq py-install-directory "~/.emacs.d/site-lisp/python-mode")
(require 'python-mode)
という記述が。もしかして (setq py-install-directory "~/.emacs.d/〜") を ~/.emacs に記述しておけばいいのだろうか。

python-mode は…。自分の環境の場合、環境変数HOMEのパス\.emacs.d\elpa\python-mode-20160620.330 に入ってた。コレを指定しておけばいいのだろうか…分からんけど…。

指定してから試してみたら、Raspberry Pi3 上の .py が開けるようになった。むう。つまり python-mode の設定が足りてなかったのか。これでなんとかなった。のか。ホントか。どうなんだ。分からんですが。

#3 [windows] PuTTYをアップデートしてみた

今まで使ってた PuTTY関連ファイルのタイムスタンプを確認したらなんだか古い感じだったので、 _PuTTY PRIVATE PATCHES_PuTTY-ranvis をDLして解凍して上書きコピーでインストールしてみたり。とりあえず、plink -V と打ってバージョンが表示される、PuTTY-ranvis をインストールしてみた。

解凍すると、ja-JP とか Japanese とかのフォルダの中に .lng ファイルがあるけど、これは .exe と同じ階層にコピーしておく。のかな。たぶん。巷の解説記事にはそう書いてあったけど。

#4 [pc] Canon PowerShot A3300 IS で撮影した動画をwebm形式にしたい

手持ちのコンパクトデジカメ、Canon PowerShot A3300 IS で動画を撮影すると、おそらくは QuickTime形式の .mov として保存されるっぽいのだけど。コレを、HTML5 の videoタグで再生できるはずの、.webm 形式の動画に変換したい。…いや、webm形式を再生できるのは、Firefox や Google Chrome で、IEその他は再生できないという話もどこかで見かけたけど。

_AviUtl + _ffmpegOutプラグイン + _L-SMASH Works で、webm形式に変換できた。不要なフレームを削除できる点も助かった。

以下、参考ページ。

_【AviUtl】L-SMASH Worksとは?導入方法と使い方1【入力プラグイン】
_【AviUtl】FFmpegOUTでWebM・ASF・TS形式の動画をエンコードする方法【出力プラグイン】

ただ、L-SMASH Works r877 を入れたら、mov読み込み時に音声が妙なことに。音声部分の表示が、全部緑になってる。今まで r679 を使ってて、そちらでは音声が妙なことにはならないのだけど…。まあ、どうせ音声無しの動画として出力しちゃうから、問題は無さそうだけど。

それにしても、Appleが完全放置宣言をしてしまったWindows版のQuickTime…。これからどうするんだ…。コンパクトデジカメの類が結構使ってるのに…。

2016/07/19(火) [n年前の日記]

#1 [raspberrypi] Raspberry Pi3でサーボモータを制御。その1

秋月電子から購入したマイクロサーボモータ、 _SG92R を、Raspberry Pi3 から制御したいなと。

サーボモータってのは…。この場合は、PWMで角度を指定して動かせるモータ、という認識でいいのだろうか。 _サーボモータ - Wikipedia を眺めるとゴイスなヤツからホビー用まで色々あるらしいけど。今回使うのはホビー用。

仕様をメモ。 :

とりあえず、SG92Rの仕様を秋月電子さんのサイトからコピペしてメモ。特に、PWMサイクル、制御パルスの仕様が重要。
SG92R : メーカー : Tower Pro Pte Ltd
PWMサイクル : 20ms
制御パルス : 0.5ms〜2.4ms
制御角 : ±約90°(180°) 配線 : 茶 = GND、赤 = 電源[+]、橙 = 制御信号 [JRタイプ]
トルク : 2.5 kgf・cm
動作速度 : 0.1秒 / 60度
動作電圧 : 4.8V(〜6V)
温度範囲 : 0℃〜55℃
外形寸法 : 23 x 12.2 x 27mm
重量 : 9g

マイクロサーボ SG92R: サーボ 秋月電子通商 電子部品 ネット通販 より


つまり、20ms間隔でPWMを流して…。0.5ms幅のパルスを送ると -90度に、2.4ms幅のパルスを送ると90度にモータが回転してくれる、のであろうと。

ピンコネクタでちょっと失敗。 :

サーボモータの端子をブレッドボードに差すために、 _細ピンヘッダ 1 x 20 も購入したのだけど。試してみたら長さが足りなかった…。もしかすると、ここは _両端ロングピンヘッダ なるものを購入すべきだったのだろうか…。

とりあえず、 _ブレッドボード用ジャンパーコード(オス - オス) をサーボモータ側の端子に差し込んでどうにか。

回路図。 :

こんな感じに。
servo_motor_02_bb.png

servo_motor_02_c.png
  • Raspberry Pi3 の GPIO 18番を、サーボモータの制御信号に接続。GPIO 18番なら、PWMが使える場合が多いらしいので。
  • サーボモータの電源は、単三電池 x 4 で確保。
  • モータがノイズを出すらしいので、ノイズ対策としてモータの電源(VCC - GND)の間に 100uF のコンデンサを追加。コンデンサにはプラスマイナスがあるので注意。

巷の解説記事を眺めてると、コンデンサや抵抗を入れる場合と入れない場合があるようで。
  • コンデンサをつけるとしても 0.1uF とか 100uF とか色々あって、どれが正しいのやら。
  • Raspberry Pi3 の GPIOピンと、サーボモータの制御信号の間に、1KΩ程度の抵抗を入れる場合も。サーボモータが壊れた際に逆流しないように、という理由だとか。

Pythonで動かしてみる。 :

とりあえず、LEDをPWMで光らせた時と同じやり方で ―― Python + RPi.GPIO を使う形で制御してみたり。servo_pwm.py として保存。
#!/usr/bin/python
# -*- coding: utf-8 -*-

import RPi.GPIO as GPIO
import time

PULSE_PIN = 18
TOTAL_MS = 20.0
MIN_MS = 0.5
MAX_MS = 2.4
MIN_DCV = (float(MIN_MS) / TOTAL_MS) * 100.0 - 0.7
MAX_DCV = (float(MAX_MS) / TOTAL_MS) * 100.0 - 0.5

def get_dc(ang):
    ang += 90
    if ang < 0.0:
        ang = 0.0
    if ang > 180.0:
        ang = 180.0
    dc = MIN_DCV + ((MAX_DCV - MIN_DCV) * (float(ang) / 180.0))
    return dc

GPIO.setmode(GPIO.BCM)
GPIO.setup(PULSE_PIN, GPIO.OUT)
pwm = GPIO.PWM(PULSE_PIN, 50)
pwm.start(get_dc(0))

try:
    for ang in [0, -90, 0, 90, 0, -90, -45, 0, 45, 90, 0]:
        dc = get_dc(ang)
        print "ang %f , dc %f" % (ang, dc)
        pwm.ChangeDutyCycle(dc)
        time.sleep(3)

except KeyboardInterrupt:
    pass

pwm.stop()
GPIO.cleanup()

sudo python servo_pwm.py として実行。



動いた。

と思ったら、甘かった。指定角度で止まってくれたように一瞬見えたけど、なんだか「ジャジャッ…ジャッ…」と鳴きながら、ガクガクブルブルしている…。これじゃ使えない…。

Python + RPi.GPIO はPWM制御に関して精度がよろしくない、という話も見かけたけれど。ひょっとして、そのせいでガクブルしてしまうのだろうか…。それとも別の原因が…。

全然関係ないけど、サーボモータ上に乗せたのは _2012/05/15 に作ったペーパークラフト。机の中を探したらコレが見つかったので。

ServoBlasterをインストールしてみた。 :

サーボモータを制御することに特化した、ServoBlaster なるものがあるそうで。デーモンとして動くことで、比較的正確なPWM制御が可能になっているらしい。

_Raspberry PI でサーボを動かす ・ Airwhite Memo
_Raspberry Pi でサーボモータ制御 - Qiita
_Raspberry-PiにおけるGPIO関係ツールのインストール方法
_[raspberry] GPIOの制御とservoblasterの併用時 | Gerolian
_Indoor airplane world
_raspberry Pi でサーボモータ制御 | Linux & Android Dialy

コレを使えば、RPi.GPIO 使用時と違う結果になるのでは。試してみないと。

インストールは以下。
$ git clone git://github.com/richardghirst/PiBits.git
$ cd PiBits/ServoBlaster/user
$ make servod
$ sudo make install
servod てのが、コマンド名(?)らしい。

デーモンとして起動。あるいは、デーモンが起動中なら現在の状態を表示。
sudo servod

デーモンを終了。
sudo killall servod

ServoBlaster をインストールすると、サービスとして自動起動するように設定される。自動起動しないように設定する場合は以下。
sudo update-rc.d servoblaster remove

自動起動するように設定する場合は以下。
sudo update-rc.d servoblaster defaults

サーボ番号と、GPIO番号の対応は以下のようになってるらしい。コピペさせてもらってメモ。
サーボ番号01234567
GPIO番号4171821/2722232425
P1ピン番号?711121315161822

例えば、GPIO 18番のdutyを、パーセント指定で変えたければ、以下のように打つ。
echo 2=0% > /dev/servoblaster
/dev/servoblaster に何かを書き込んでやることで指定できる、ということなんだろう…。

パーセントではなく、パルス幅(10マイクロ秒単位)で指定することも可能。
echo 2=120 > /dev/servoblaster

さて。手持ちの SG92R の場合、受け付けるパルス幅は、最小 0.5ms 〜 最大 2.4ms らしいので、以下が指定できるはずだけど。
echo 2=50 > /dev/servoblaster
echo 2=240 > /dev/servoblaster

試してみたところ、実際には指定できず…。以下の範囲でしか指定できなかった。
echo 2=50 > /dev/servoblaster
echo 2=213 > /dev/servoblaster
213より大きい値を指定すると異音がする…おそらく回りっぱなし…。本来なら 240 まで指定できそうだが…。

つまり、ServoBlaster + SG92R を使う際は、-90度 = 50, 0度 = 131, 90度 = 213 を指定する感じになりそう。

さておき。前述のPythonスクリプトで制御するとガクブルだったけど、ServoBlaster を使った場合は、ちゃんとピタリと止まってくれた。状況が改善した、ような気がする。

ServoBlasterが握るピンの数を変更。 :

ところで、このままだと ServoBlaster が複数のGPIOのピンを握り続けてしまって、他の実験がちょっとやりにくくなる。今回は GPIO 18番だけを使いたいわけで…。

ということで、GPIO 18番だけを利用しなさい、他は使わんでくれ、と指定する。P1ピン番号を使って指定するらしい。
sudo servod --p1pins=12
ただし、コレを一度発行すると、ピン番号が入れ替わるので注意。デフォルトでは、
echo 2=50 > /dev/servoblaster
echo 2=213 > /dev/servoblaster
と指定したけど、1本だけ有効状態にすると、以下のような指定になる。
echo 0=50 > /dev/servoblaster
echo 0=213 > /dev/servoblaster

再度 sudo servod を実行すると、元のピン設定に戻ってしまう模様。

それと、sudo servod 実行時に --idel-timeout=1000 をつけると、指定時間(ms)が過ぎたらアイドル状態になる、ような設定にできる、のかもしれないけど、このあたりよく分かってない。

ServoBlasterを使ったPythonスクリプト。 :

ServoBlaster を使った場合の Pythonスクリプトを書いてみたり。servo_pwm2.py として保存。
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# required servoblaster

import subprocess
import time

START_V = 50
END_V = 213
CENTER_V = 131

def get_pulse(ang):
    ang += 90
    if ang < 0.0:
        ang = 0.0
    if ang > 180.0:
        ang = 180.0
    v = float(END_V - START_V) * (ang / 180.0) + START_V
    return v

try:
    cmd = "servod --p1pins=12 --idle-timeout=1000"
    subprocess.call(cmd, shell=True)
    for ang in [0, -90, 0, 90, 0, -45, 0, 45, 0]:
        pulse = get_pulse(ang)
        print "ang = %f , v = %f" % (ang, pulse)
        cmd = "echo 0=%d > /dev/servoblaster" % (pulse)
        subprocess.call(cmd, shell=True)
        time.sleep(3)

except KeyboardInterrupt:
    pass
要するに、bash上で手打ちしていたコマンドを、subprocess.call() を使って再現してるだけですが。

sudo python servo_pwm2.py として実行。

こちらもガクブルしなかった。指定角度で、ちゃんと止まってるように見える。

pigpioを試用。 :

ServoBlaster はイイ感じにサーボモータを制御できるのだけど、コマンドを呼び出してる感がなんだか気になるわけで。

他の方法を探してみたところ、Python + RPi.GPIO ではなく、Python + RPIO ならサーボモータ専用のモジュールが既に用意されていたそうで。しかし、RPIOは随分前から開発停止状態。Pi3 や Pi2 に非対応なのだとか。残念。

ただ、RPIO関係を調べていたら、pigpio なるものがあると知り。ServoBlasterと同様にデーモンとして動く仕組みで、コマンドラインでも使えるし、Pythonから呼ぶためのモジュールも用意されているらしい。

ということで、pigpio を試用してみる。 Raspberry Pi3 の場合は、最初からインストールされてるっぽいが、入ってない時はおそらく sudo apt-get install pigpio でインストールできるんじゃないか、という気がするけど自信無し。

デーモンの起動と殺し方。
sudo pigpiod
sudo killall pigpiod

ひとまず、コマンドラインから使ってみる。pigs というコマンドを使って、GPIOに色々送れるっぽい。

GPIO 18番にサーボモータが繋がってるものとして、1.45ms のパルス幅を送る例。
pigs SERVO 18 1450
オプション内容は、pigs SERVO GPIOピン番号 パルス幅(単位はマイクロ秒?)、だと思う。

パルス幅には、500 - 2500 の値を指定可能。つまり、0.5ms - 2.5ms の範囲で指定できる。

SERVO の記述は、s でも代替できる。以下は 0.5ms、2.4ms のパルス幅を送る例。
pigs s 18 500
pigs s 18 2400

サーボモータ用のパルスを切る例。
pigs s 18 0

詳細は _pigpio library を参照。

ところで、ServoBlaster を使った際は、最大値として 213 (2.13ms) までしか指定できなかったけど。pigpio (pigs) を使った場合は、2400 (2.4ms)まで指定できた。もしかするとPWMの精度に関して、ServoBlaster より pigpio のほうが高い、ということだろうか…。わからんけど。

pigpioを自動起動。 :

Raspberry Pi3起動時に、pigpio が自動で起動するようにしたい。以下のページにやり方が色々載っていた。一つは crontab を使う方法。他には、サービスとして登録できるようにする方法。

_Raspberry Pi - View topic - PIGPIO daemon

とりあえず、サービスとして登録できるやり方を試してみたり。

最初に、pigpiod の場所を ―― /usr/local/bin/以下にあるのか、/usr/bin/以下にあるのか、把握しておく。
which pigpiod

サービス起動用の雛形ファイルをコピー。
sudo cp /etc/init.d/skeleton /etc/init.d/pigpiod
sudo chmod 755 /etc/init.d/pigpiod

中身を編集
sudo vi /etc/init.d/pigpiod

/etc/init.d/pigpiod の中身は、上記のサイトからコピペ。ただし、Pi3 などでは、
DAEMON=/usr/local/bin/$NAME
の行は、
DAEMON=/usr/bin/$NAME
になる。かもしれない。

サービスとして登録。
sudo update-rc.d pigpiod defaults
sudo update-rc.d pigpiod enable

サービスの起動・終了ができるか確認してみる。
sudo service pigpiod start
sudo service pigpiod status
sudo service pigpiod stop
sudo service pigpiod status

参考ページ。 :

_サーボモーター(SG-90)を試す - Raspberry Pi 備忘録
_くたじんの鎌倉生活 RaspberryPiのPWM制御、周波数とデューティー比について
_Raspberrypi2 PWMでサーボモータを動かす | Myブーム & My備忘録
pwmSetClockの値の設定についてだが、調べたところ以下の条件式が成立するらしい。

- pwm周波数=raspiのPWMが持つベースクロック周波数/clock * range
- pwm周波数: 50Hz
- raspiのPWMが持つベースクロックの周波数: 19.2MHz
- range: 1024
- clock: pwmSetClockで設定する値

従ってclockを求める式は、clock = 19.2 x 10^6 / (pwm周波数 x 1024) となる。
故に、clock = 18750 / pwm周波数
ということは、50ms にしたいなら…。clock = 18750 / 50 = 375、なのかな。

#2 [nitijyou] 自転車で買い物に

門のチャイムが壊れたとのことで。親父さんが線を繋ぎ直しても鳴らないのだとか。どこかで断線したままなのだろうけど、断線箇所を見つけようにも…。線は壁の中を通ってるわけで…。てなわけで、ここはワイヤレスのチャイムを買って、ソレを設置しようという話に。

ということで、ホームセンターホーマックまで電動自転車で。以下を購入。 _電源タップ WHS2523JP は、Raspberry Pi3 の電源を取ってる位置をもっと伸ばしたくなったので購入してみたり。他にも電源を取りたくなるだろうから、スイッチ付・数個口のモノを。

ついでに、Seriaで以下を購入。
一応コンセントカバーは部屋に転がってるけど、小さいから引き抜くのが面倒で。その点今回購入したソレは比較的大きいので、引き抜く時に楽かなと。

セパレートボックスは、ブレッドボード用のジャンパーコードを入れるために購入したけど、長いコードは入らなかった。細長いケースが、どこかで売ってないものか…。筆記具を入れる時に便利だろうから、商品としてありそう、とは思うのだけど…。

REVEX X810のスペックについてメモ。 :

_リーベックス株式会社 Xシリーズカタログ
_X810・X800・X10共通 取扱説明書

送信機側の電源は、CR2032 x 2。受信機側は、単三電池 x 3。ただし受信機側は、5V 500mA のACアダプタがあれば、ACアダプタ駆動もできるらしい。

無線IDは、16段階のボリューム x 2 で設定する。16 x 16 = 256通りが選べるはず。他の御家庭と混線しないように選んでくれ、と説明書には書いてあった。

チャイム、音楽、効果音の種類は、16種類。なかなかイイ感じの音色が鳴る…。PSGっぽい音というか、ファミコンっぽい音というか…。

送信機側はネジを緩めないと裏蓋が外れない。防雨対策、なのかなと。

2016/07/20(水) [n年前の日記]

#1 [raspberrypi] Raspberry Pi3でサーボモータを制御。その2

Raspberry Pi3 + マイクロサーボモータ SG92R で、Python + pigpio を使って制御してみたり。

_servo_pwm3.py
#!/usr/bin/python
# -*- coding: utf-8 -*-

import pigpio
import time

SERVO_X = 18 # GPIO
START_V = 500 # us
END_V = 2400 # us

def get_pulsewidth(ang):
    ang += 90.0
    if ang < 0.0:
        ang = 0.0
    if ang > 180.0:
        ang = 180.0
    w = (END_V - START_V) * (float(ang) / 180.0) + START_V
    return w

pi1 = pigpio.pi()

try:
    for ang in [0, -90, 0, 90, 0, -90, -45, 0, 45, 90, 45, 0]:
        w = get_pulsewidth(ang)
        print "ang = %f , pulse width = %f" % (ang, w)
        pi1.set_servo_pulsewidth(SERVO_X, w)
        time.sleep(0.5)
        pi1.set_servo_pulsewidth(SERVO_X, 0)
        time.sleep(2.5)

except KeyboardInterrupt:
    pass

print "Done."
pi1.stop()

sudo python servo_pwm3.py として実行。こんな感じに。



動いた。かつ、ガクブルしてない。

一応ソース内の説明を少しだけ。
上記のソースでは、念のために、サーボモータにパルス幅を送ってから 0.5秒後に、該当ピンに 0 を送ってサーボモータの制御をオフにしている。この処理は必要なのか不要なのか、ちょっと分かってない。

どうして0.5秒かと言うと…。SG92R のスペックは「0.1s/60度」のはずなので、180度動かすとしても0.3秒で足りるはず。故に、0.5秒も経過すれば、目的の角度に到達してるだろうと踏んでいる。が、ホントにそうなってくれるのかどうかは分かってない。スペック上はそうなるはずだけど…。

_pigpio library を眺めると、pigpio を使えば他にも色々できる模様。

ランダムに動く版を書いてみたり。 :

_servo_pwm3_2.py
#!/usr/bin/python
# -*- coding: utf-8 -*-

import pigpio
import time
import random

SERVO_X = 18 # GPIO
START_V = 500 # us
END_V = 2400 # us

def get_pulsewidth(ang):
    ang += 90.0
    if ang < 0.0:
        ang = 0.0
    if ang > 180.0:
        ang = 180.0
    w = (END_V - START_V) * (float(ang) / 180.0) + START_V
    return w

pi1 = pigpio.pi()

try:
    old_ang = 0
    for i in range(10):
        while True:
            ang = random.randint(0, 18) * 10 - 90
            if ang != old_ang:
                break

        w = get_pulsewidth(ang)
        print "ang = %f , pulse width = %f" % (ang, w)
        pi1.set_servo_pulsewidth(SERVO_X, w)
        time.sleep(0.4)
        pi1.set_servo_pulsewidth(SERVO_X, 0)
        time.sleep(0.1)
        old_ang = ang

except KeyboardInterrupt:
    pass

time.sleep(1)
pi1.set_servo_pulsewidth(SERVO_X, get_pulsewidth(0))
time.sleep(0.5)
pi1.set_servo_pulsewidth(SERVO_X, 0)
time.sleep(1)
print "Done."
pi1.stop()

「ギュイッ!」的なモータ駆動音さえなければ、何かのディスプレイに使えそうな予感。いや、「ギュイッ!」がマジでうるさくて、このままではダメだけど。

#2 [raspberrypi] 電池ボックスに繋げられそうなヨサゲなコネクタは無いものか

Raspberry Pi3 でサーボモータ制御の実験をしているわけだけど、サーボモータを動かすために、単三電池 x 4、の電源を使ってるのがちょっと気になってるわけで。

電池ボックスから線が出ているわけだけど。コレを _ワニ口クリップ・ミノムシクリップ を使ってブレッドボードに接続しているのが…気になる…。何かもうちょっと抜き差しが楽な状態にできないか。つまりはヨサゲなコネクタは無いものかと。

FAN接続用のアレはどうか。 :

この手のコネクタと言えば…。PCパーツというか、FANを接続する時に使う、 _あの3ピンコネクタ はどうだろう。

と思ってググってみたけど、コレがなかなか売ってないようで。あんなに製品が出回ってるのに、コネクタは売ってないのか…。でもまあ、FAN関係で流れる電流なんて、えてして500mAも行かないわけで。ソレを考えると電源用コネクタとしてアレを使うのもどうなんだ、という気もしてくるなと。

DCプラグはどうか。 :

直流用の電源コネクタと言えば、 _DCプラグ_DCジャック だろうかとも思うのだけど。

ただ、DCプラグって、今一つ規格化されてない印象があるというか…。例えば身の回りに転がってるACアダプタを眺めてみると、プラグの外側と内側の、どちらがプラスでどちらがマイナスなのか、てなところからして製品毎にてんでバラバラだったりするわけで。パッと見で、こっちがプラス、こっちがマイナスと分かる何かがいいよなと。

microUSBはどうか。 :

それとも、Raspberry Pi と同様に、microUSBを電源コネクタとして使う、てな方向のほうが良いのだろうか…。どうやらスマホの普及で、そういう流れになりつつあるようでもあるし…。

ただ、元々のUSB規格(USB2.0)は、最大でも5V/500mA程度が流れることを前提にしているので、ソレを電源として使うのはどうなのよ、という不安もあって。とは言え、これもまたスマホの普及で、規格外の電流を流す製品が既に結構普及しちゃってるよ? てなところもありそうな。

てな感じで、電池ボックスに何のコネクタを繋げたらいいかで悩んでしまったわけです。

もっとも、電池ボックスを使うアレコレは、えてして基板に線を半田付けしてることが多いし。「持ち運びや抜き差しが便利になりそうな、電池ボックス用のコネクタとして、何がいいのだろうか」なんてのは、かなりマイナーな悩みっぽいなと。

どこかでそういうのを規格化したりしないかな。いや、既にある規格に乗ってしまうのが現実的なのかしらん。

#3 [windows] AviUtlでmovをwebmに変換しようとして四苦八苦

コンパクトデジカメ Canon PowerShot A3300 IS で撮影した mov 動画ファイルを、AviUtl で webm形式の動画に変換しようとしたけど、上手く行かず。

環境は Windows10 x64 + AviUtl 1.00 + L-SMASH Works r877 + FFmpegOUT 0.05。

movの音声が正常に読み込まれない。 :

まず、mov の中に入ってる音声(PCM、サンプリング周波数 12KHz、8bit、モノラル)が AviUtl に読み込めなくて。音声表示部分が全部緑色になってる…。おそらく、導入してる L-SMASH Works で何か起きてるんだろうけど…。

これは、L-SMASH Works の設定ダイアログで、Libav + L-SMASH のチェックを外したら、音声部分もそれっぽく読み込んでくれるようになった。

ffmpegでwebm出力ができない。 :

次に、webm形式の動画として出力しようとしてハマったり。FFmpegOUT で出力を試みるものの、「変なオプションついてるからエラーが出たよ。変換できねえよ」と怒られてしまう。

ffmpeg.exe は version N-81045-g450cf40。最新版をDLしてきたから、おそらく 3.0.1 以降の開発版だと思うけど。

ffmpeg 3.0.x を使ってるからいかんのかなと、 _Zeranoe FFmpeg - Builds から、ffmpeg 2.8.6 や、FFmpegOUT 0.05 が公開されてた頃の版であろう ffmpeg 2.5.2 をDLして試してみたけど、結果は変わらず。どれか特定の版を使えばスンナリ動くのだろうか。しかしググっても、「この版で動いてる」という情報が見つからない…。

とりあえず、プロファイルを選んだ時に表示される文字列の中から、-cpu-used 0 -threads 8 を削除したら出力できるようになった。が、どうしてコレが関係してくるのか、さっぱり分からない…。

ffmpegに渡すオプションについてアレコレ試したり。 :

ググってたら、 _ffmpegでエンコードしたVP9(WebM)動画をブラウザで再生してみる | potproject.net blog という記事で、ffmpegに渡すオプションの一例が載っていた。FFmpegOUT上でも試しに設定してみたり。
-c:a libopus -b:a 64k
-c:v libvpx-vp9 -b:v 2M -threads 4 -speed 4 -tile-columns 0 -frame-parallel 0 -auto-alt-ref 1 -lag-in-frames 25 -g 9999 -aq-mode 0
これだとエラーが出ない…。

_VP9 Encoding Guide - wiki も参考になりそう。
-c:a libopus -b:a 64k
-c:v libvpx-vp9 -b:v 0 -crf 33 -threads 8 -speed 2 -tile-columns 6 -frame-parallel 1 -auto-alt-ref 1 -lag-in-frames 25
これはエラーが出る…。

色々試してみたけど、ビットレートを指定するだけで、とりあえずパッと見はそれほどおかしくない webm を出力してくれるので、それでもいいのかもしれないなと。
-c:a libopus -b:a 64k
-c:v libvpx-vp9 -b:v 1M
とりあえず、64k とか 1M とか書いてあるところがビットレートの指定です。

#4 [anime][neta] 「ストライクウィッチーズ」BS11放送版のOP映像がなんだかおかしい気がする

録画してたアニメを再生していて、ふとなんとなく気づいたのだけど。BS11で放送されてる、「ストライクウィッチーズ」なるアニメのOP映像がおかしいというか、妙なことになってるような気がしてきたわけで。

症状としては、画面の上から1/3のあたりに線が入ってるというか…。そこらへんを境にして、上と下で、めちゃくちゃビミョーに、まずほとんど分からないぐらいに、輝度が違ってしまっているというか。

必ずどのコマにも入ってるわけじゃなくて、どうやらスタッフ名等のテロップが表示された時に、その症状が出やすいようで。なんだろな、コレ。テロップ部分のレイヤーの範囲が画面サイズより小さい上に透明部分がビミョーに値を持ってるというかアルファチャンネルにめちゃくちゃ小さい値が残ってるのかな。でも、そんな状態なんてあるのかな。当時、テロップって、何を使って映像の上に乗せてたんだろう…。

ただ、これは元映像からしてそうなってるのか、放送波に乗った時点でそういう映像になるのか。あるいは自分が使ってる機材のバグやスペック不足なのか、そこらへん全然分かってないわけで。

ちなみに自分が使ってるのは、HDDレコーダ 東芝 RD-BZ710 + 液晶ディスプレイ MITSUBISHI RDT233WX-3D。どちらも古いから、テロップが出た瞬間に映像の輝度が変化して、内部の画像処理が何か誤動作して、画面の途中から変なフィルタをかけてる、みたいなこともありそうだなと。と言っても、他のアニメでそういう症状を見た記憶はないんだよなあ…。仮に機材がバグってるとしても、どうしてこのアニメだけが…。

まあ、件のアニメは少し古いアニメで、映像もアプコンをかけて放送してるようでもあるから画質その他を気にしてもしょうがないし。そもそも内容的にもアレだから、作業しながらBGVとして流してる状態で。故に自分としては映像面でおかしなところがあってもどうでもいいやって感じなんですけど。万が一放送版がおかしな映像だったとしても、どうせDVDやBDではちゃんとした映像になってるだろうから、ファンの人も別段困ってないだろうし…。

ただ、どうしてこういう症状が出るのかな、ってあたりが気になっただけの話で。と、メモ。

デジタルになってからちと面倒臭い時代に。 :

それにしても、デジタル放送になってから、映像がおかしい場合にどこで問題が起きてるのか、原因をちょっと特定しづらくなったところがありそうだよなと。手持ちの機材がバグってるとか、諧調等のスペックが足りてない可能性も否定できないというか。若干面倒臭い時代になったなと。

でもないか。昔も違うところで面倒だったか。画面の端っこなんて、TVによっては映ったり映らなかったりしたもんな…。某シューティングゲームも、家庭用ゲーム機に移植された際、自機のオプション表示をアーケード版と同じく画面端にしておいたら、「このゲーム、オプション表示がそもそも見えねえ!」とクレームが次々に…。あの頃も、また違う面で、面倒臭い部分はあった…。

画面端と言えば。 :

「エルガイム」の2番目のOPで、エルガイム MK-II が変形する時に足が切れちゃってた記憶があるのだけど…。たしか放送中はずっと直ってなかったような…。

と思ったけど。改めてググってみたら、足のところ、直ってる…。するとコレは自分の偽記憶…? それともどこかの時点で修正されてた…? あるいは自分、ダンバインあたりと混同してるのか…?

「ここから先はどうせ画面外だから描かなくていいだろ」的に線が途切れてて、仕上げの人が「ここから先は塗らなくていいのね」的に塗り残した感じの端っこが、変形した時にグイッとスライドして画面内に入ってきてた、ような記憶があるんだけど…。あの映像は…自分の偽記憶なのか…? ヤバイ。自分の脳はもうダメかもしれない。どこでそんな嘘映像が脳内発生したんだ。怖い。自分の脳がますます信用できなくなってきた。

ずっと直さなかったと言えば。 :

「キャッツ・アイ」のOPで、タイトルロゴが出るときに、ヒロインの頭が一瞬つるっぱげになるのが、当時は気になって、気になって…。アレは撮影ミスだよな…。だけど、ずっと直さなかったよな、アレ…。

ググってみたら _関連記事 があった。良かった。コレは自分の偽記憶じゃなかった。自分の脳は全部がダメってわけでもなさそうです。

わざと仕込めないかな。 :

今時のアニメも、たまにそういうの仕込んでおくといいかもしれず。もちろん本編でネタにする方向で。「昔と違ってデジタル制作なんだから、その気になればすぐに直せるだろ! なんで直さないんだ!」「うるせえ! スタッフは今それどころじゃねえんだよ!」「まさか…総集編」「言うな! その単語を口にするな!」みたいな会話を…。

や、「えとたま」や「鬼斬」や「ミルキィホームズ」あたりだったらできるけど、フツーのアニメではちょっとやりづらいですね。

積極的に作画ミスを利用する方向で…。主人公が放心したヒロインの肩を揺さぶりながら「しっかりしろー! ヒロインが作画崩壊しちゃダメだろー!」とか。…コレ、何かで見た記憶があるような、ないような。また偽記憶か。

そういうのって、脚本家さんは迂闊に書けないかもしれないよなと。台詞では「作画崩壊」と言ってるのに、作監さんが頑張りすぎちゃって全カットをキッチリ直してしまって意味不明のシーンになったりとか…。脚本家と作画陣の揺るがない信頼関係や、お互いの十分なコミュニケーションが求められるから、実はハードルが高いのでは…。そういうお遊びが出てきたら、スタッフの団結力を褒めるべき、かもしれず。や、分かんないですけど。

2016/07/21(木) [n年前の日記]

#1 [raspberrypi] pigpioでLチカ

Raspberry Pi3 + Python + pigpio でサーボモータを制御できたので、少し前の段階に戻って Python + pigpio でLチカ(LED点灯)をしてみたり。

3回点灯させる版。 :

GPIO 17番に抵抗とLEDを繋いで実験。led_pigpio.py として保存。
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# LED flash - pigpio

import pigpio
import time

LED_PIN = 17

pi1 = pigpio.pi()
pi1.set_mode(LED_PIN, pigpio.OUTPUT)

try:
    for i in range(3):
        pi1.write(LED_PIN, 1)
        time.sleep(0.5)
        pi1.write(LED_PIN, 0)
        time.sleep(0.5)

except KeyboardInterrupt:
    pass

print "done."

# cleanup
pi1.set_mode(LED_PIN, pigpio.INPUT)
pi1.stop()

sudo python led_pigpio.py で実行。フツーに光ってくれた。
  • pi1.set_mode(GPIO番号, pigpio.OUTPUT) で、出力モードに。
  • pi1.write(GPIO番号, 1) で、High状態に。
  • pi1.write(GPIO番号, 0) で、Low状態に。
  • pi1.set_mode(GPIO番号, pigpio.INPUT) で、入力モードに。

PWMを使って明るさを変える版。 :

pigpioを使えば、どのピンでもPWMが使えるようで。ココでも GPIO 17番を使って試してみたり。led_pigpio_pwm.py として保存。
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# LED flash - pigpio PWM

import pigpio
import time

LED_PIN = 17

pi1 = pigpio.pi()
pi1.set_mode(LED_PIN, pigpio.OUTPUT)
pi1.set_PWM_frequency(LED_PIN, 200)
pi1.set_PWM_range(LED_PIN, 100) # 25 - 40000

try:
    for i in range(3):
        v = 0
        d = 10
        while v >= 0:
            pi1.set_PWM_dutycycle(LED_PIN, v)
            time.sleep(0.1)
            if v >= 100:
                d *= -1
            v += d

except KeyboardInterrupt:
    pass

print "done."

# cleanup
pi1.set_mode(LED_PIN, pigpio.INPUT)
pi1.stop()

sudo python led_pigpio_pwm.py で実行。フツーに明るさが変わってくれた。
  • pi1.set_PWM_frequency(GPIO番号, PWM周波数) で、PWMの周波数(Hz)を設定。
  • pi1.set_PWM_range(GPIO番号, 範囲最大値) で、dutyの範囲を指定。25 - 40000 の間で指定できるらしい。デフォルトでは 255 になってる、と、ドキュメントには書いてあった。
  • pi1.set_PWM_dutycycle(GPIO番号, duty) で、パルス幅の長さを指定。set_PWM_range() で指定した範囲の値を指定できる。

#2 [raspberrypi] QIコネクタとかTJC8コネクタとか2550コネクタとかHeader Connectorとか

電池ボックスとブレッドボードを接続できるヨサゲなコネクタは無いものかとググってたら、QIコネクタ、あるいはTJC8コネクタ、もしくは2550コネクタ、はたまたHeader Connectorと呼ばれるコネクタがあると知り。PC関係でも使われてる例のコネクタ、らしい。というかおそらく Raspberry Pi のGPIOもソレなのかなという気がするけど。

_Arduino で使うあのコネクタ
_デジットBlog:【Tips】電子工作でよく使う『QIコネクタ』の圧着方法
_2550コネクタ(QIコネクタ)の圧着 - YouTube
_電子工作の幅を広げよう!「オープンバレル端子」の使い方 - NAVER まとめ
_ATMEL AVR RTOS館【QIコネクタ、信号伝達コネクタ、2550コネクタ、DUPONTコネクタを圧着してみた】
_2550コネクタ、またはQIコネクタ ・ オッサンとバイエル、ピアノ等
_【共立エレショップ】>> QIコネクタ02P★受注単位有★: 【能動・受動・機構パーツ】 << 電子部品,半導体,キットの通販
_2.54mmピッチコネクター 2ピン ZL2543-2PS Linkman製|マルツオンライン
_TJC8コネクター (オス) (10本入): パーツ一般 秋月電子通商 電子部品 ネット通販
_TJC8ピンターミナル(メス) (10本入): パーツ一般 秋月電子通商 電子部品 ネット通販

なるほど、コレか…。コレを使えばいいのか…。お店によって呼び方が違うようではあるけど。

秋月電子で購入できないかと思ったのだけど、どうやら秋月電子ではハウジングと呼ばれるプラスチック製のカバーっぽいソレは売ってないようで。どうしたもんか。

そもそも、このコネクタを使うには、圧着ペンチなるものが必要になるらしい。そして、圧着ペンチのお値段は、結構高い…。

microUSBを電源端子にするのもアリなのかも。 :

電池ボックスに、USB Type A のメス端子でもついてれば、USB Type A - micro USBケーブルで電源供給ができるかもしれんのに、などとチラリと思ったら、どうやらそういう電池ボックスも世の中には存在するようで。

_電池ボックス 単3 x 4本 USBコネクタ・フタ付: パーツ一般 秋月電子通商 電子部品 ネット通販

ということは…。コレを入手してから、例えば100円ショップで充電用USBケーブルを購入して、後はブレッドボード上で microUSB を接続できる何かをゲットすれば…。

_100均『USBケーブル』は外見で選べ!? 100円ショップで購入できるUSBケーブルをいろいろ比較してみました(ウェブ情報実験室) - Engadget Japanese
_ブレッドボード用マイクロBメスUSBコネクタDIP化キット: 組立キット 秋月電子通商 電子部品 ネット通販
_マイクロUSBコネクタDIP化キット - aitendo
_マイクロUSBコネクタ [キット品]

もっとも、コレだと値段が高くなってしまうのか…。いや、モバイルバッテリー等を利用できる可能性も出てくる、というメリットはありそうだけど。

DCプラグもコスト的に捨てがたい。 :

コストを考えると、DCプラグでどうにかするのもありなのかな…。

_ブレッドボード用DCジャックDIP化キット: 組立キット 秋月電子通商 電子部品 ネット通販
_2.1mm標準DCプラグ(MP121C) 内径2.1mm外径5.5mm: パーツ一般 秋月電子通商 電子部品 ネット通販

microUSBで揃える選択肢と比べると、半額以下で済みそうな…。でも、汎用性が、ちょっと…。

2016/07/22(金) [n年前の日記]

#1 [raspberrypi] Raspberry Pi3でブザーを制御

Raspberry Pi3 + Python + pigpio で、ブザー? 圧電スピーカ? なんて呼ぶのか分からんけど、ブザーっぽいものを鳴らしてみたり。PWM制御を使って周波数を設定してみる。

使ったブザーは、秋月電子で購入した、 _圧電スピーカー(圧電サウンダ) (13mm) PKM13EPYH4000-A0

回路図は以下。

buzzer_01_bb.png

buzzer_01_c.png

buzzer_bb.jpg


GPIO 18番にブザーを接続。…最初、GPIO 24番に繋いで、 _set_PWM_frequency(user_gpio, frequency) で鳴らせないか実験してたけど、大雑把な周波数なら指定できるものの、人間の可聴域の周波数をそこそこちゃんと指定するのは難しいようで。ハードウェアでPWM制御ができるGPIO 18番に繋ぎなおして実験したらちゃんと音が鳴ってくれた。

ブザーをどう繋ぐかは、ググってみたけどちょっとよく分からず。いきなり GPIOピンとGNDに繋ぐ例もあったけど、抵抗を繋いでる例も見かけたので、今回は直列で1kΩの抵抗を入れてみたり。

「ピポ」を鳴らすスクリプト。 :

buzzer_pigpio.py として保存。
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# buzzer control - pigpio PWM

import pigpio
import time

BUZZER_PIN = 18

pi1 = pigpio.pi()
pi1.set_mode(BUZZER_PIN, pigpio.OUTPUT)
pi1.hardware_PWM(BUZZER_PIN, 0, 0)

try:
    for v in [2000, 1000]:
        pi1.hardware_PWM(BUZZER_PIN, v, 500000)
        time.sleep(0.3)

except KeyboardInterrupt:
    pass

print "done."

# cleanup
pi1.hardware_PWM(BUZZER_PIN, 0, 0)
pi1.set_mode(BUZZER_PIN, pigpio.INPUT)
pi1.stop()

pi1.hardware_PWM(GIPO番号, 周波数, dutycycle) で、ハードウェアを使ったPWMを設定。詳しくは、 _pigpio library の、 _hardware_PWM(gpio, PWMfreq, PWMduty) の項を参照。眺めた感じでは…。

使えるGPIOは4つ。
12 PWM channel 0 All models but A and B
13 PWM channel 1 All models but A and B
18 PWM channel 0 All models
19 PWM channel 1 All models but A and B
  • 12と18は、PWMチャンネル 0 を共有。
  • 13と19は、PWMチャンネル 1 を共有。
  • 18は、Raspberry Pi 全モデルで使える。
  • 12,13,19は、Model A と Model B なら使える。(ということは Model A+ や Model B+ は、話が違う…?)
ということなのかなと。PWMのチャンネルが、0と1の2つ、というのが、どこかで見かけた「ハードウェアPWMは2つしか使えない」という話になるのだろうか。自信無いけど。

ひとまず、sudo python buzzer_pigpio.py で実行。

こんな音が鳴った。



PC-9801の起動音を再現してみたかったのだけど…。なんか違う…。以下の記事を参考にして、2000Hz → 1000Hz を鳴らしてみたつもりなのだけど…。

_新設計!98ピポ回路II
_国産名機PC-9801シリーズの起動音に関する質問です。 ピポッとな… - 人力検索はてな
_国民機起動音発生装置 PiPo Ver.4

ドレミっぽい音階を鳴らすスクリプト。 :

buzzer_pigpio_doremi.py として保存。
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# buzzer control - pigpio PWM

import pigpio
import time
import re

BUZZER_PIN = 18
tm = 60.0 / 120.0 * 4
musical_scale = {
    "C":523, "C#":554, "D":587, "D#":622,
    "E":659, "F":698, "F#":740, "G":784,
    "G#":831, "A":880, "A#":932, "B":988
    }

pi1 = pigpio.pi()
pi1.set_mode(BUZZER_PIN, pigpio.OUTPUT)
pi1.hardware_PWM(BUZZER_PIN, 0, 0)

try:
    score = "C4D4E2C4D4E2C4D8E16F16G8A4B2"
    while len(score) > 0:
        m = re.match(r"^([A-Ga-g]+)([0-9]+)", score)
        if m:
            s = m.group(1)
            d = m.group(2)
            score = score.lstrip(s + d)
            freq = musical_scale[s]
            pi1.hardware_PWM(BUZZER_PIN, freq, 500000)
            print "%s : %d" % ((s + d), freq)
            time.sleep(tm / float(d))
        else:
            break

except KeyboardInterrupt:
    pass

# cleanup
print "done."
pi1.hardware_PWM(BUZZER_PIN, 0, 0)
pi1.set_mode(BUZZER_PIN, pigpio.INPUT)
pi1.stop()

こんな音が鳴った。



一応音階というか、メロディーが鳴ってるように聞こえなくもない、かな…。

もうちょっと努力すれば _MML(Music Macro Language) を鳴らせるソレも作れなくもないだろうけど…。周波数も、 _音階の周波数を計算する方法とMIDIノート番号の関係 で計算式が紹介されてるし…。

しかしそもそも Raspberry Pi3にはサウンド機能が入ってるはずなので、あえてブザーを使って凝ったメロディーを鳴らす必要はないわけですが。

この記事へのツッコミ

Re: Raspberry Pi3でブザーを制御 by 名無しさん    2020/08/01 12:40
壊れた炊飯器から取り出した圧電ブザー(TDK製)と1kΩの抵抗を
使って、音を出すことができました!
素敵な記事をありがとうございます。

#2 [nitijyou] 自転車で買い物に

100円ショップのSeriaで売ってるUSB充電ケーブルが意外にイイ感じ、という話がなんだか気になってきたので、電動自転車で近所のSeriaまで探しに行ってみたり。田舎だし、売り場面積が小さいお店しかないから、どうせ売ってないだろ…。と思ったらフツーに店頭にあった。ありがたや。たしかに、「2Aまで充電可能」的な文がパッケージに書いてある。とりあえず購入。

単3電池 x 2本で携帯電話(スマホに非ず)を充電できる、USB charger なるものも店頭にあって、少し気になった。おそらく中に昇圧回路が入ってて、3Vを5Vぐらいにして出力してくれるのだろうけど。ソレをモータ用の外部電源として使うのは…厳しいかな…。厳しいだろうな…。安定した出力にならないという実測結果をどこかで見かけた記憶もあるし。ということで今回は買わないことに。

ヨークベニマルで夜食その他を購入。

2016/07/23() [n年前の日記]

#1 [raspberrypi] Amazonから色々届いた

Amazonに注文していた品が届いた。

モバイルバッテリーについて。 :

_モバイルバッテリー Anker PowerCore 10000 と、 _USB急速充電器 ACアダプタ 10W は、Raspberry Pi3 を動かすために購入。

この製品は、出力が2.4Aまで。最大2.5Aを必要とする Raspberry Pi3 が動くのかちょっと不安だったけど。以下の構成では、一応起動したし、メインPCからsshで接続もできた。
  • USB端子に Logicool k400r用のUSBレシーバを1つだけ接続。
  • 無線LANでネット接続。
  • カメラモジュール V2を接続。
  • GPIOで、LEDとブザーを制御。

Amazonでは、Anker PowerCore 10000 は2種類扱ってるようで。Quick Charge 3.0対応品と、非対応品。今回は安かった非対応品のほうを購入。

ちょっとよく分からないのが、側面についてるスイッチ。コレは…何に使うんだろう…。USB端子に、ケーブル+Raspberry Pi3を差すとすぐに電源供給されるから、電源のON/OFFスイッチではないようだけど…。

USB端子に何も差してない状態でスイッチを押すと残量のLED表示が有効になって、すぐに消えるようではあるけれど。残量確認用スイッチ、なのかな…。

さておき。ググったらレビュー記事に遭遇したのでメモ。

_小さい!軽い!すごい!Ankerのモバイルバッテリー「PowerCore 10000」がかなりいい感じ ・ でこにく
_2000円台で買える大容量10000mAhの超小型軽量モバイルバッテリー「Anker PowerCore 10000」レビュー - GIGAZINE

ギヤーボックスについて。 :

_TAMIYA製 6速ギヤーボックス HE 72005 は、Raspberry Pi3 からDCモータ制御をするつもりで購入。パッケージを開けてみたら、プラモデルっぽい感じでランナーに各部品がついた状態で入ってた。ニッパー、ラジオペンチ、ドライバー、カッターの類が必要らしい。

ひとまず組み立て。今回は 1300.9:1 のギヤ比で。スペック上は、トルク 2306 g・cm、回転数 約7.8rpm (rpm (rotation per minute) = 1分間に何回転するか)、になるはず、らしい。

全体としてはサクサクと組み立てていけたのだけど、一つだけ問題が。スプリングピンなる細い棒を、軸に空いてる穴に差し込むあたりで四苦八苦。入らねえ…。仕方なくラジオペンチで、スプリングピンを若干潰すような気持ちで、グリ…グリ…グリ…グリ…グリ…グリ…グリ…グリ、と入れてみたけど…。大人ですらこんなに力任せに作業するのでは、子供さんでは組み立てられないのでは…。いや、スプリングピンを入れるところだけが大変なので、ソレ以外は子供さんでも全然問題無いだろうけど。

単3電池 x 2本を繋いで動かしてみた。動いたことは動いたけれど、動作音が「ギャアアアー」って感じで、かなりウルサイ。付属のグリスは各ギヤにつけたはずだけど…。

もっとグリスをつけなければアレなのかなと、机の引き出しの中から、DVD-Rドライブ修理用として以前購入したTAMIYA製ラジ四駆チタングリスを発掘して更に追加。しかし、やっぱりウルサイ…。

弄ってるうちに気が付いたけど、出力する軸を指で回すとカクカクと動く。ギヤのギザギザ一つ分の間で動いてしまうのだな…。ピタリと止まってくれることを期待していたのだけど、このカクカク量は、後で困るかもしれない…。どうしよ…。

ググったら、組み立て作業の動画があったのでメモ。動作音も紹介されてる。自分の手元のソレも、こういう音です…。

_タミヤ6速ギヤボックスを組み立ててみた - YouTube

秋月電子からも届いた。 :

秋月電子通商からも注文していた品が届いたけど、まだ開封してなかったり。

#2 [tv][anime] 「ニッポン特撮遺産〜続々登場!70年代テレビヒーロー〜」を視聴

録画しておいたソレを視聴。

_NHK BSプレミアム「ニッポン特撮遺産〜続々登場!70年代テレビヒーロー〜」が7/16(土) 19:30〜放送! | 円谷ステーション

等々の紹介をしていく内容で。特撮関係について薄い自分にとっては、大変勉強になる番組だったなと…。半年に1回とか、1年に1回とか、そんなペースでもっと作ってほしい感じの番組でした。素晴らしい。

ググってみたら、 _感想:NHK番組「ニッポン特撮遺産〜続々登場!70年代テレビヒーロー〜」 - セントラル・ステーション分室 という記事で細かい紹介が。

最近の「日本スゲー」的なアレコレが気にならないでもない。 :

ただ、ちょっと気になったところも。「昔の日本の特撮は凄かった」「ハリウッドすらその技術に嫉妬してた」なる感想を、スタジオ側のゲスト ―― 哀川翔氏やキャイーンの天野氏が発言して、それで終わってしまっていたあたりが気になって。その後に「今は逆だけど」「なんとか追いついてほしい」等の一言があれば違ったのだろうけど…。

現状から目を逸らして昔の栄光を懐かしむだけのいかにも哀れな日本人の姿を見せて終わったあたりが、悲しい…。これでは明るい未来が見えてこないなと。もっとも、番組の趣旨からして、そこで日本を貶めてどうする、そんな自虐的な一言は放送できんわ、等々言われそうでもあるけれど。

STAR WARSを作ろうとしていたジョージ・ルーカスが、日本の操演を真似したくてもできなくて、逆にカメラを動かして解決した、というエピソードがチラリと紹介された時も…。 *1 「それも凄いね。逆転の発想だね。さすがルーカスだ」ぐらいのコメントは欲しかったよなと…。そこでどうして「(当時の)日本ってスゲー」のコメントのみで終わるのか…。「アイツらもスゲー」には一切行かず、「俺達スゲー」だけで終わっちゃうのか…。

他者の工夫や発想をリスペクトすることすらできない民族に未来なんて無いよなと。ハリウッドがメキメキとレベルを上げていったのは、リターンの大きさから来る予算の問題が大きいだろうけど、それ以前に根本的なところで、「お前のソレ、スゲーね」と評価することができる柔軟な姿勢、「うちらも負けてられねえ」と発奮するチャレンジ精神があったから、だと思うわけで。 *2 まあ、日本は、「スターウォーズから学ぶべきものは何もなかった」と公言しちゃうソレだから、そりゃこうなるのだろうけど…。

この番組に限った話じゃないけれど。どうも最近、「日本スゲー」だけで終わってしまうアレコレが、ちょっと気になるというか。そこだけで終わっていたら、ガチで「日本オワタ」に繋がってしまうと思うのだけどな…。まあ、敗戦後の「日本はダメだ。アメリカスゲー」の反動が今頃グジュグジュと妙な形で出てきてるのかと邪推したりもしますが。どうもこういうのって、必ず反動があるというか。

とは言え。昔の特撮技術を映像で紹介していくだけでも記録としては大変意味があることだし。

昔ながらのミニチュア操演なんて今はできないから、こういう番組を作ることで、NHKの予算を使って再現してもらって記録映像として残そう、てなあたりはどう考えてもグッジョブで。当時の職人さん達も、もうすぐ会えなくなっちゃうわけだから…。今のうちに記録として残せるものは、あらゆる手を使って、どんどん残していかないと。てなわけで間違いなく、グッドな番組企画だよなと。それに比べたら「日本スゲー」コメントの類なんて些末なことでしょ、などと思ってしまうところもあるのでした。

*1: 実際はルーカスじゃなくて、 _ジョン・ダイクストラ あたりだったりしないのかな、とも思ったけれど、そこはルーカスの名前を出したほうが分かりやすいし、決定権持ってたのはルーカスだろうから、そういう説明のほうがいいよな、とも。
*2: 「お前のソレ、スゲーね」は、実際には「お前のスゲーところに気がついちゃう俺カッケー」ではあるのだけど。そういう姿勢のほうがレベルアップしやすいのだから否定されることでもないよなと。

#3 [anime] 「バケモノの子」を視聴

昨日TVで放送されて、ソレを視聴したことをメモし忘れてた。フツーに面白かった。

やっぱりこの調子だと、今後ジブリアニメ的なポジションに収まるのは、細田監督作品っぽいよなと…。

そういえば、この作品も前作同様、基本はファンタジー設定なのにあちこちでリアリティを付加する作りが見られたけれど。そのあたりなんとなく、あり得ないことを描写してるのに何故かありそうな光景に見せてしまう、若かった頃の宮崎駿監督の属性と共通するところがありそうな。いや、宮崎駿監督のソレはアニメーターとして動きにこだわるというやり方で、細田監督のソレは脚本レベルでシチュエーションにこだわる、という違いがあるわけだけど。…む。ソレはもしかして、高畑勲監督に近いのだろうか。

何にせよ、フツーの監督なら「どうせファンタジーだから」でスルーしてしまうところで、「いや待て、リアルに考えたらこういうことが起きるだろ…」的な何かを盛り込まずにいられないあたりが、他とは若干違う作家性に繋がってるというか、明らかに強みの一つ、てなところはありそうだなと。

などといかにも素人っぽい感想をメモ。

2016/07/24() [n年前の日記]

#1 [raspberrypi] Raspberry Pi3とモバイルバッテリー Anker PowerCore 10000の組み合わせ、のその後

結論を先に書いておくと、Raspberry Pi3 + Anker PowerCore 10000 の組み合わせで使う時は、USB電源ケーブルの選択が重要っぽいですよ、ということで。

昨日届いたモバイルバッテリー、Anker PowerCore 10000 を、Raspberry Pi3 に繋いで動作確認していたのだけど。昨日の構成(メインPCからsshでアクセス)から変更して、液晶ディスプレイにHDMI接続して動作させてみたところ、何かしら操作や処理をするたびに、画面の右上に虹色の四角が表示されることに気が付いて。何だコレ…。

ググってみたら、電源電圧が足りてない時に虹色の四角 ―― 「Rainbow square」と呼ばれてる ―― が表示されるらしい。

_【Raspberry Pi】起動時に画面右上に出る四角の意味。 | Woishin Journal
_Raspberry PI 2 が到着しました(&虹色な謎四角)
_Raspberry Pi の画面右上の警告表示 | Raspberry Pi

上記の記事によると、電圧が4.65Vを下回ると虹色の四角が表示されるそうで。

なんてこった。つまり Anker PowerCore 10000 は、Raspberry Pi3 の電源としては足りない…。

わけでもないらしい。

今まで利用していたのは、 _KSY で購入した、 _USB電源アダプター 5V/2.5A/1P KSY0525USB-RASPI に付属していたUSB電源ケーブル。これは長さが1mあるので、もっと短いUSB電源ケーブルにしたら状況が変わったりしないかなと。

そこで、秋月電子から購入した、 _C-09313 USBケーブル Aオス-マイクロBオス 0.3m A-microB と交換。2.5A対応を謳う品で、長さは0.3m(30cm)。なんとお値段、110円。

結果は…。秋月電子のUSB電源ケーブルを使った場合は、右上に虹色の四角は表示されなかった。

SWITCHSCIENCEさんがUSBケーブルの抵抗値を調べて検証した、 _Raspberry Pi 3の電源問題について(pdf) でも、「USB電源ケーブルの選択は大事」と書いてあったけど。実際にこうして影響があるのだなと…。

しかしコレ、各ケーブルの抵抗値なんて、なかなか調べられないよなと…。件のpdfで計測に使ってる _高精度LCRメータ DE-5000 は約8,000円ぐらいするし…。

その他USB電源ケーブル関連記事をメモ。 :

#2 [raspberrypi] 秋月電子通商から届いた品をメモ

秋月電子通商から届いた品についてメモ。

_C-09056 : 両端ロングピンヘッダ 1 x 40 (40P 6.1) PH-1x40SG(6.1/6.1) \50
_P-04500 : フォトリフレクタ(反射タイプ) LBR-127HLD \50
_K-06656 : ブレッドボード用マイクロBメスUSBコネクタDIP化キット AE-USB-MICRO-B-D \200
_C-10398 : 基板用マイクロUSBコネクタ(電源専用) MRUSB-2B-D14NI-S306 \30
_P-02681 : 電池ボックス 単3 x 4本 USBコネクタ・フタ付 SBH-341-3S/USB \250
_P-08635 : 熱収縮チューブ(スミチューブC クリア) φ1.5 x 0.2 x 1m SUMITUBE-C-1.5x0.2x1m-CLR \40
_C-09313 : USBケーブル Aオス-マイクロBオス 0.3m A - microB USB CABLE A-MICROB(2A L0.3m) \110
_C-09247 : TJC8コネクター (オス) (10本入) TJC8-MALE \50
_C-09248 : TJC8ピンターミナル(メス) (10本入) TJC8-PT \50
_P-06756 : 耐熱電子ワイヤー 2m x 7色 外径1.22mm(UL3265 AWG24) \480


結局、 _USB端子付き電池ボックス や、 _ブレッドボードにも使えるmicroUSBコネクタDIPキット まで購入してしまった…。高くつくのに…。しかし見た目がヨサゲなあたりが気になってしまって…。

microUSBコネクタキットを半田付け。 :

_ブレッドボード用のmicroUSBコネクタキット は、ピンを半田付けしないと完成しないので、工具箱から久々に半田ごてを引っ張り出してきたり。半田付け、面倒臭い…。が、それでもまだ表面実装用のmicroUSBコネクタが既につけてあるだけ随分と楽なのだけど。表面実装用の電子部品の類を自分の腕前で半田付けできるとは到底思えないわけで。

とりあえずこんな感じに。やっぱり見た目はカッコイイ。
microusb_dip_kit_01.jpg

ただ、このコネクタ、ちょっと不安な点が。「ポリスイッチ(リセッタブルヒューズ)付き」と書いてある…。おそらく、大きい電流が流れると一旦切れちゃうのだろう。 *1 ということは、ひょっとするとモータ駆動できる程度の電流すら流せなかったりしないか…。いや、試してみないと分からんけど。

一応、 _基板用マイクロUSBコネクタ(電源専用) も一緒に購入してあるので、万が一前述のヒューズが働いちゃって使えない場合は、コレを使ってどうにかしないとアレかなと。

あるいは、 _マイクロUSBコネクタDIP化キット - aitendo が入手できればなあ…。

microUSBコネクタキットの固定ピンの扱いで悩む。 :

今回、キットの固定ピン ―― microUSBコネクタとは繋がってない前のほうの2つのピンについて、つけるかどうかちょっと悩んだ。

最初は、「固定ピンは要らんやろ」と付けなかったのだけど、実際試してみたら結構グラグラしていて危ないなと。固定ピンを付けなければ、ブレッドボード上の差す位置は結構自由に選べる。例えばブレッドボードの端っこに差したりもできるので、ケーブル端子に厚みがあっても問題無い。が、そもそもグラグラするのでは…。

てなわけで、固定ピンをつけてみたのだけど。しかしこの場合、ブレッドボードの真ん中をまたぐような形でしか差せないわけで。つまり、USBケーブル端子側に厚みがあると、ケーブル端子がブレッドボードとぶつかるので、押し上げられてコネクタが宙に浮いてしまう。今回秋月電子から購入した _USBケーブル(TypeAオス - microUSB TypeBオス) が、まさしくそういうケーブルで。端子に厚みがあるから、コネクタキットが若干宙に浮くわけで。困った…。

そこでふと、先日100円ショップ(Seria)で購入したUSB充電ケーブルを思い出した。そちらと交換してみたところ、幸いにも端子の厚みがまだ比較的無い感じだったので、コネクタキットが宙に浮かずに済んだ。

もっとも、100円ショップで買った品だから、ケーブルの抵抗値が気になるところだけど…。

USB端子付き電池ボックスについて。 :

ちと盲点だったのは、電池ボッスの裏にどこかに引っ掛けるためのフック(?)がついてたこと。置いた時に、平らにならない…。気づかなかった…。いや、持ち歩く時は便利だろうけど…。机の上に置いて使ったり、別の何かとまとめたい時は、ちょっと…。

ググってたら以下の記事に遭遇。電流が流れないかも、という話が気になる…。

_USB出力付電池ボックス2種を試す 【起】: 今日思うこと
_USB出力付電池ボックス2種を試す 【承】: 今日思うこと
_USB出力付電池ボックス2種を試す 【転】: 今日思うこと
_USB出力付電池ボックス2種を試す 【続】: 今日思うこと

自分もバラしてみた。なるほど、基板上にLEDと抵抗を入れるための穴が開いてるし、ダイオードらしきものも入ってる。自分も改造しておくか…。

元々はこんな感じ。J1の左上の導線が、ダイオードからスイッチの端子に繋がってる。
batterybox_before_resample.jpg

改造後は以下。J1の左上の導線を外して、J1を繋ぎなおした。
batterybox_after_resample.jpg

半田ごてを出したついでにワニ口クリップのアレも半田付け。 :

せっかく半田ごてを出してきたのだから、ワニ口クリップというか、ミノムシクリップというか、例のアレも作成。工具箱の中に部品だけは買ったまま転がってたわけで。

_[RB]意外に簡単!リード付きミノムシクリップの作り方。 | リカバンク
_Fの工作&実験室: みの虫クリップの付け方
_テスト用ワニ口クリップの作り方。|ステップワゴン/ホンダ|整備手帳|tankchyan|みんカラ - 車・自動車SNS(ブログ・パーツ・整備・燃費)

10cmぐらいの短いヤツを作った。

*1: ただ、リセッタブルヒューズとやら、一旦切れても、そのうち復活するっぽい。

#3 [nitijyou] 自転車であちこち回って探したり

親父さんの電動自転車を借りて、近所のホームセンターで精密圧着ペンチなるものが売ってないかと探してきたり。ホーマック → ダイユーエイト → サンデー → ダイユーエイト(メガステージ店)と回ったけど…。まあ、当たり前だけど、無かった。電気工事用の圧着ペンチなら売ってるんだけど。ていうかソレなら自分も持ってるからアレなんだけど。

自分の手元にある圧着ペンチは、もしかすると高校時代に電気工事士の免許を取った時に買ったのかな…。いや、その後、あったほうが便利だからと買ったのだろうか…。全然覚えてない…。

ダイソーでプラケースを購入。 :

ダイソーで、コレクションケースなるプラスチック製ケースを購入。穴を開けてギヤボックスを固定してみたい。できるかな。どうかな。

TAMIYA製品も売ってない。 :

ヤマダ電機のプラモデル売り場で、TAMIYA製の工作キットの類が売ってないか探したけど。まあ、当たり前だけど、無かった。ガンプラはあったんだけどなあ…。

自分の住んでる市では、プラモデルやラジコンを売ってたお店が閉店してしまって。その手のお店なら、おそらくTAMIYA製品も扱っていただろうけど…。お店自体が無くなってしまったのでは…。

つまるところ、田舎では、子供さん達が遊びの一環としてその手の工作を試せる機会が物理的に存在していない、機会を与えることができていない、と言えてしまうのかもしれんよな、などと思えてきて少し考え込んでしまったり。身の回りの家電製品その他で、こんなにも電池やモーターが溢れてるというのに、田舎では、電池やモーターを使った工作すらできないという…。小学生がちょっと自転車走らせれば辿り着ける範囲にTAMIYAの「○○工作セット」が置いてないというのは、なんだか寂しい話だなと。

いやまあ、そもそも、そういうアレコレが商売として成立することが許されたのは、団塊Jrが子供さんだった時代まで、だったのかもしれんなとも…。本来その手のアレやソレは需要からして商売にならないジャンルだったけど、昔は子供さんの数が多かったから工作好きな子供さんも一定数居て、故にどうにか商売になってたのかも…。などと根拠のない印象を漏らしてしまったりもして。

とか思ったりもしたけれど。考えてみればモータや電池ボックスぐらいは今でもホームセンターで売ってたりするから、まだどうにかなるか。気の利いた店だと、「夏休みの工作に!」とか貼り紙して、モータや電池ボックスを並べた一角を作ってたりするし。でも、ELPAのパッケージ品しか置いてないんだよな…。いっそELPAが、TAMIYA製品もパッケージに入れて売り始めてくれたりしないものか。無理か。

2016/07/25(月) [n年前の日記]

#1 [raspberrypi] microUSBコネクタDIP化キットのヒューズを外した

_ブレッドボード用のmicroUSBコネクタDIP化キット に、ポリスイッチ(リセッタブルヒューズ)がついてた点が不安になってきて。この状態では、電流が制限されてしまう…。

その後ググってみたら、件のヒューズを取り外して使ってる事例をいくつか見かけたので、自分も真似して半田ごてでグリグリやって取り外してみたり。短絡させるあたりは、半田をボコッと盛ってどうにか。たぶんホントは良くない。下手するとポロッと落ちそう。ちゃんと線を乗せて繋がないと。でも表面実装だから難しそうで。

_Raspberry PIでLED点灯コントロール、Part1 パワーLEDとMOS FET | ものづくりエクスペリメント
_マイクロUSB DIP化キット ヒューズ取り外し | manspace

こんな感じになった。
microusb_dip_kit_kaizou.jpg

ちなみに、コネクタ部分にくっついてる半田は、固定用ピンを半田付けする際に間違ってつけてしまったもので…。数年ぶりに半田ごてを握ったから、全然上手くできないわけで…。 _イモやヒゲ だらけですがな…。

#2 [raspberrypi] Raspberry Pi3でDCモータを制御するテストその1

Raspberry Pi3でDCモータを制御してみたい。その実験をするために、わざわざ _TAMIYA 6速ギヤーボックス HE 72005 を買ってみたわけで…。コイツを動かしてみないことには…。

DCモータを動かす際は、モータドライバなるICを使うと制御が楽になるらしい。今回は、東芝 TA7291P なるモータドライバを入手してみたり。

TA7291Pについて。 :

_TA7291Pデーターシート(pdf)(秋月電子のサイト)
_TA7291P - 滴了庵日録

どっちが1番ピンか分からなかったけど、後者の記事が参考になった。ありがたや。放熱板が欠けてるほうから、1番、2番と数えるのですな。

他の参考ページをメモ。

_Raspberry Pi 2でDCモーターを制御する - カイワレスタイル
_Raspberry Pi 2 で小型モーターを制御する | 桜のはなびら.ネット(12歳)

Fritzing で TA7291P を使った回路図を作ろうとしたけど、パーツ一覧の中に TA7291P が無くて困ったなと。ググってみたら、 _無料ダウンロード:Fritzing 部品一覧 で、TA7291P が公開されてた。ありがたや。使わせていただきます。

Fritzing にパーツを追加したい場合は、ファイル → 開く、で追加パーツを選べばパーツ一覧の中に追加された、ような気がするけど覚えてない。とにかく、「開く」でなんとかなるはず。

ギヤボックスを固定する台を作成。 :

昨日ダイソーで購入したコレクションケースに穴を空けて、TAMIYA製ギヤボックスを固定することに。

親父さんから電動ドリルを貸してもらえたので、ガンガン穴を空けることができた。電動ドリル、便利だな…。ただ、手持ちのドリルの口径(?)より大きい穴を空けるあたりで困ったり。一応ヤスリっぽい先端があったから、ソレを電動ドリルで回して押し当てて広げようとしたけど、なかなか削れてくれない…。この、ヤスリっぽい何かは、ちゃんとした使い方でもあるんだろうか。

熱収縮チューブの使い方。 :

モータから出ている線を延長したいわけで。先日秋月電子から購入した、 _耐熱電子ワイヤー 2m x 7色 外径1.22mm(UL3265 AWG24) の中から、赤と青の線を50cmほど切り出して、モータの線と捩じって繋いでから半田付け。更に、これまた秋月電子から購入した、 _熱収縮チューブ(スミチューブC クリア) φ1.5 x 0.2 x 1m を被せてみたり。

熱収縮チューブを縮ませるのは、たしか初めてのはずなので、使い方についてググってみたけど。「ドライヤーで熱を加えて縮めることができる」と紹介されているものの、実際には今時のドライヤーは熱くなり過ぎないように設計されているからちゃんと縮まないよ、という話が。他の方法としては…。
  • 100円ライターであぶる方法。
  • 半田ごての根元を近くに寄せて熱する方法。
等があるようだけど。今回は半田ごてを使って縮めてみた。

熱収縮チューブを上にして、半田ごての根元は下にして、ギリギリのところで、ケーブルを回しながら全般的に熱を加える、みたいな。半田ごてを下にしたのは、暖められた空気はそのままだと上に行くものだから。

内部が見えないと不安だなと思って透明タイプの熱収縮チューブを買ったけど、ちと失敗だったかも…。どこからどこまでがチューブなのか、パッと見で分からん…。黒のチューブにしておくべきだったかな…。

#3 [nitijyou] 自転車でダイソーまで

犬の散歩後、電動自転車でダイソーまで。

ハンダ用ピンセット2 (電気工具-ハンダ No. 21)、を2本購入。掴むと開き、離すと掴む、タイプのピンセット。半田付けする時にこれがあると楽。になるはず。たぶん。できれば熱が伝わらない何かを指で挟む部分にくっつけたいのだけど…。コルクシートだか、コルクシールだか、そのあたりではどうだろう。分からんけど。

ミニスチール製クランプ 2インチ4個組 (工具-はさむ No.1)、も購入。半田付けが楽にならないか、と。

2016/07/26(火) [n年前の日記]

#1 [raspberrypi] Raspberry Pi3でDCモータを制御するテストその2

Raspberry Pi3 でDCモータを制御してみたい。

回路図。 :

ブレッドボード上で配線。

dcmotor01_bb.png

dcmotor01_c.png

入力端子には、GPIO 22番と23番を繋いでみた。

DCモータドライバ TA7291P は、3つの電源を要求する。
  • Vcc ... ロジック側電源端子。Raspberry Pi3の +5V を繋ぐ。
  • Vs ... 出力側電源端子。モータ側で使う電源。単三 x 4本の電池ボックスを繋ぐ。新品のアルカリ電池なら、+6V程度が入るはず。
  • Vref ... 制御電源端子。ココにかかった電圧が、モータにかかる最大電圧になる。らしい。
_TA7291Pデータシート - ta7291p.pdf
_TA7291P - 滴了庵日録
_Raspberry Pi 2でDCモーターを制御する - カイワレスタイル
_Raspberry Pi 2 で小型モーターを制御する | 桜のはなびら.ネット(12歳)

Vref(制御電源端子)に何を繋いだらいいのかでちょっと悩んだり。PWM制御をしたい場合は、Raspberry Pi3 のGPIOのどれかを繋ぐ場合が多いらしいけど、今回は全開で回してみたいわけで…。

使おうとしているギヤボックスは、 _TAMIYA 6速ギヤボックスHE 72005 で、「RE-260モーター付き」の製品。 RE-260てのは、おそらく _マブチモータ RE-260 だろうと。1.5V-4.5Vをかけられるけど、3Vで使うことを前提にしてるらしい。

なので、Vref(制御電源端子)には、最大でも3V前後をかけたい。GPIOのどれかを繋ぐと、PIOは +3.3V だから、まあ大丈夫だろ、ってことになるのだろう。

ググってみたら、全開で回したい場合、Vref(制御電源端子)に、Vs(出力側電源端子)と10KΩの抵抗を挟んで繋いでる事例をいくつか見かけた。自分もその通りにしてみたけれど、どうして10KΩなんだろう…。実は+6Vかかってしまっている、てことはないのかな…。

Pythonスクリプト。 :

Python + pigpio で制御してみる。dcmotor_pigpio.py として保存。
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# DC Motor control with TA7291P - pigpio

import pigpio
import time

PIN1 = 22
PIN2 = 23

pi1 = pigpio.pi()
pi1.set_mode(PIN1, pigpio.OUTPUT)
pi1.set_mode(PIN2, pigpio.OUTPUT)

def set_motor(pi1, a, b, t):
    pi1.write(PIN1, a)
    pi1.write(PIN2, b)
    time.sleep(t)

try:
    set_motor(pi1, 0, 0, 0.5) # stop (neutral)

    for i in range(4):
        set_motor(pi1, 1, 0, 0.3) # normal rotation
        set_motor(pi1, 1, 1, 2.0) # brake

    for i in range(4):
        set_motor(pi1, 0, 1, 0.3) # reverse rotation
        set_motor(pi1, 1, 1, 2.0) # brake

except KeyboardInterrupt:
    print "done."

set_motor(pi1, 0, 0, 0.5) # stop (neutral)
pi1.set_mode(PIN1, pigpio.INPUT)
pi1.set_mode(PIN2, pigpio.INPUT)
pi1.stop()

sudo python dcmotor_pigpio.py として実行。こんな感じになった。



ウルセー。動作音がウルセー。けど、そこは置いといて。一応動いてくれた模様。ただ、回り始める時にガクッと動いてから回る時と、そうでない時がある。うーん。

ちとよく分からないのが、モータにブレーキがかからないこと。止めたつもりがズルズルッとそのまま動き続けて惰性で止まるというか。入力端子の両方を1,1にしてるのだけど、ブレーキがかかってくれるわけではなさそうだなと…。

もしかして、止めたいと思った瞬間に一瞬だけ逆回転させる、てな感じの処理が必要なのだろうか。でも、モータに余計な負荷がかかりそうでもあるし…。

_模型用モーターを回転させ、ピッタと止めるには... - 工学 | Yahoo!知恵袋

やっぱり逆回転させると壊れるらしい。

PWM制御で速度を変化させてみる例。 :

Vrefに+6Vかかってたりしないかと不安になってきたので、GPIOを繋いで、ついでにPWM制御を試してみようかと。

回路図は以下の通り。
dcmotor02_pwm_bb.png

dcmotor02_pwm_c.png

Vref に GPIO 13番を接続。

Python + pigpio でPWM制御。dcmotor_pigpio_pwm.py として保存。
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# DC Motor control with TA7291P - pigpio

import pigpio
import time

PWMPIN = 13
PIN1 = 22
PIN2 = 23
pi1 = pigpio.pi()
pi1.set_mode(PWMPIN, pigpio.OUTPUT)
pi1.set_mode(PIN1, pigpio.OUTPUT)
pi1.set_mode(PIN2, pigpio.OUTPUT)
pi1.set_PWM_frequency(PWMPIN, 50)
pi1.set_PWM_range(PWMPIN, 100)
pi1.set_PWM_dutycycle(PWMPIN, 0)

def set_motor(pi1, a, b, t):
    pi1.write(PIN1, a)
    pi1.write(PIN2, b)
    time.sleep(t)

def set_motor_pwm(pi1, a, b, t):
    set_motor(pi1, a, b, 0.2)
    for i in range(25, 100, 25):
        pi1.set_PWM_dutycycle(PWMPIN, i)
        time.sleep(t)
    # set_motor(pi1, 0, 0, 2.0) # stop (neutral)
    set_motor(pi1, 1, 1, 2.0) # brake
    pi1.set_PWM_dutycycle(PWMPIN, 0)

try:
    set_motor(pi1, 0, 0, 0.5) # stop (neutral)
    set_motor_pwm(pi1, 1, 0, 1.0) # normal rotation
    set_motor_pwm(pi1, 0, 1, 1.0) # reverse rotation

except KeyboardInterrupt:
    print "done."

pi1.set_PWM_dutycycle(PWMPIN, 0)
set_motor(pi1, 0, 0, 0.5) # stop (neutral)
pi1.set_mode(PWMPIN, pigpio.INPUT)
pi1.set_mode(PIN1, pigpio.INPUT)
pi1.set_mode(PIN2, pigpio.INPUT)
pi1.stop()

sudo python dcmotor_pigpio_pwm.py として実行。こんな感じに。



duty比が、25%、50%、75%の時に、動作音の大きさと回転速度が微妙に違ってることが一応分かる、だろうか…。

TAMIYA製ギヤボックスの問題。 :

_TAMIYA 6速ギヤボックスHE 72005 を使って実験してるけど、ちょっとこの製品、マズいなと…。停止してるはずの状態でも、ガクガクと動いてしまうわけで…。以下の動画を見れば分かるだろうけど…。



ピタッと止まっていてくれないと、上にカメラを乗せて撮影しようとしたときにブレてしまって困るんだけどなあ…。どうしよう…。どうしたもんか…。何か手は無いか…。

どうしてガタガタしてしまうのか、ギヤボックスをじっと眺めてみたけれど。
  • 一つは、金属製の軸の六角形部分と、オレンジのプラスチック製のギヤの穴の形がピッタリと合ってない。オレンジのギヤに穴が開いているけれど、その穴が結構緩いというか。
  • 複数のギヤが組み合わさっているので、一つ一つのギヤの遊び(?)が積み重なって、大きなガタガタになってる。
前者は、ギヤボックスを今後分解することを諦めてガッチリと接着すればなんとかなるかもしれないけど。後者は仕組みからして解決策が思いつかない…。

#2 [raspberrypi] Amazonから色々届いた

Amazonに注文していた工具その他が届いた。

_精密圧着ペンチ エンジニア製 PA-20 , 3,063円
_USB Type A - microUSBケーブル ELECOM MPA-AMBS2U12BU (1.2m、2A出力高耐久、ブルー) 764円
_TAMIYA 楽しい工作シリーズ No.157 ユニバーサルプレート2枚セット 70157 , 445円。

圧着ペンチについて。 :

結局、精密圧着ペンチを買ってしまった…。絶対に元が取れない予感。とはいえ、QIコネクタ(2550コネクタ)を圧着する際、こういうのが無いと厳しいし…。

いやまあ、一応、ラジオペンチ + 電気工事用の安くて大味な圧着ペンチでも、やれないことはなかったのだけど。ピンの圧着部分を、ラジオペンチででチマチマと折り曲げてから、大味圧着ペンチの1.25や2.00あたりをつかってグイッと圧着して、熱収縮チューブで無理矢理隠せばどうにか使えなくもないソレが作れたし。ただ、ソレもなかなか大変で。大味圧着ペンチの溝にピンを入ってもずれちゃって何度も何度も位置調整する羽目になるし。しかも、まず間違いなくハウジングなるケースっぽいものに入るほど綺麗な形にはならないわけで。

てなわけで早速 PA-20 を使ってみたり。 _デジットBlog:【Tips】電子工作でよく使う『QIコネクタ』の圧着方法 を参考にして作業。

いやはや、さすがプロ用工具。圧倒的に簡単…というわけでもなかった。評判通り、「意外とデリケート」な工具で、やはりコレも位置調整が面倒臭い。油断すると向きがズレる…。

とは言え、さすがに大味圧着ペンチを使った時よりも、それらしい形になってくれた。や、最初、うっかり被膜部分の折り曲げを1.9あたりでやってしまってなんか変だなと思ったけど。2.3で軽く丸めてから、圧着ペンチの先端で3回ぐらい押して形を整える、のですな…。

コレ、そのへんのフツーのペンチや、 _ホビー用クランプ で、グイッと挟むとらしくなる的なアタッチメントっぽい工具を作れないものかな。もちろん圧着ペンチに比べたら圧倒的に作業時間はかかるけど、その代りにお安く圧着できますよ、みたいな製品があれば…。まあ、需要が無いか…。

microUSBケーブルについて。 :

SWITCHSCIENCEさんの、 _Raspberry Pi 3の電源問題について(pdf) の中で、「1.2mもあるのに、実測ではなんだか抵抗値がめっちゃ少ないので、電圧降下が少なくて済むケーブル」としてリストアップされてたので、試しに購入してみたり。

Raspberry Pi3 + Anker PowerCore 10000 で使ってみたけど、電圧不足表示(画面右上の虹色の四角)は出てこなかった。たしかに抵抗値が少ないっぽい。

ケーブルは、他のケーブルと比較すると固い感じで。パッケージに折り曲げられた状態で入ってたわけだけど、その折り曲げ部分がそのままずっと曲がっていて、元に戻そうとしても手に反発を感じるぐらいに固い。つまりはそれだけ導線部分が太いケーブルを使ってる = 抵抗値が少ない、ということかもしれないなと。

共立エレショップからも届いた。 :

共立エレショップに注文していた品が届いたので、ついでにメモ。

_QIコネクタ 01P QI-1 , 16円 x 10 = 160円
_QIコネクタ 02P QI-2 , 16円 x 10 = 160円
_QIコネクタ用コンタクトピン メス QI-ZU , 10円 x 20 = 200円

小さい部品なので、クロネコヤマトのネコポス便が使えて、送料がちょっと安くて済んだ。…他のお店も、このネコポス便とやらが使えたらいいのに。

2016/07/27(水) [n年前の日記]

#1 [raspberrypi] ユニバーサルプレートで電動雲台の仮組み

Raspberry Pi3 でDCモータの制御が一応できたので、そろそろ電動雲台モドキの作成に近づけていきたいなと。

しかし、作るとしても、重量的な面で問題が出たりしないか不安になってきたわけで。本当に回せるのかや。てなわけで、少しテストしてみようかと。TAMIYA製ユニバーサルプレートと、養生テープを使って、ソレっぽい台を無理矢理仮組み。

一応、回転させながらカメラモジュールで撮影して、バッテリーの面で動作に問題が起きないか、そのあたりも確認したり。



undai_prototype_01_ss.jpg

歪んでる歪んでる歪んでる。ヤバイヤバイ。強度的にヤバイ。

けど、一応回ってるな…。

Raspberry Pi3 は無線LAN子機を内蔵してるので、スクリプトの実行はメインPCからsshでログインして行っている状態で。また、今回はモバイルバッテリーで動いてるので、コイツを家の中のどこに持っていっても同じ操作ができるはずで。このあたりの感覚はなんだか面白いなと。

もっとも、現状では無線LANルータと接続できる範囲でしか動かせないけど。それと、予想通り、バッテリーの重量が厳しい…。回ってるうちにバキッと割れそうでヒヤヒヤした…。

制約が厳しい。 :

仮に電動雲台モドキを手持ちパーツで作るとなると、いくつか制約があって。
  • 一つ。Raspberry Pi3 は、回転部分の上側に置かないといけないこと。
  • 一つ。できればバッテリーも回転部分の上に置いたほうがいいこと。
  • 一つ。カメラモジュールは横方向の回転軸のちょうど真上に居なければならないこと。

もし、Raspberry Piのカメラモジュールのみを回転部分の上側に設置できれば、重量面でもう少し楽になるのだろうけど…。おそらくそれは無理かなと。

というのも、カメラモジュールはケーブルが短い上に、フラットケーブルっぽい形で妙に固い一風変わったケーブルなので、好きな場所に設置できないし、ケーブルを引きずり回すわけにもいかない。となると、カメラモジュールのすぐ近くにRaspberry Pi本体も居てくれないと困るわけで。つまり、回転部分の上側に、カメラモジュールと一緒にRaspberry Pi本体を配置するしかなく。

一応、カメラモジュールの延長ケーブルも(値段は高いけど)売ってはいるので、ソレと交換すれば長さの問題は解決するはずだけど。しかしケーブルの種類が特殊なので、横方向360度グルリととぐろをまくように引き回すのは、ケーブルの固さからして無理なんじゃないかなと。…このカメラモジュール、どうしてラウンドケーブルで用意してくれなかったのか。コストの問題なのかな。

更に、Raspberry Pi3 をモバイルバッテリーで動かそうとした場合、USB電源ケーブルの選択を気を付けないと電源電圧不足になるわけで。短くて抵抗値が少ないケーブルを使うか、長いけど固くて曲がらないケーブルを使うか…。

雲台の重心について考えれば、できればバッテリーのような重いものは、回転部分の下側に置いて雲台を安定させる役目を持たせたい、が、そうなると回転部分の上側に置いてある Raspberry Pi3本体にどうやって電源を供給するのか、という問題が。横方向360度グルリと引き回せる長さと柔らかさがあって、しかも抵抗値が少ないUSB電源ケーブルなんて、おそらく売ってないよなと。となると、短いUSB電源ケーブルを使うしかなくて、つまりはバッテリーも回転部分の上側に配置することになりそうで。

加えて、 _ノーダルポイント の問題も。カメラを回転させてパノラマ画像の撮影を試みるなら、ノーダルポイントが重要になってくるわけで。つまり、横方向360度回転する軸の真上にカメラモジュールが配置されてる必要が。しかしその位置にカメラモジュールが来るような配置を考えると、Raspberry Pi本体やバッテリーが妙なところに位置することになって、全体の重心がおかしくなって雲台が倒れてしまう。

ということで、どういう形・配置にすれば解決するのか、ちょっとまだ思いついてない状態。どうしたもんか。

#2 [raspberrypi] TAMIYAユニバーサルプレートって便利だなと

先日Amazonから届いた、 _TAMIYA ユニバーサルプレート(2枚セット) No.70157 を初めて使ってみたけど。コレ、便利だなと…。仮組みして試行錯誤する際は、バッチグーな部材のように感じたり。

ただ、お値段がちょっと高い…。もう少し安くならないものか…。

それと、プラスチック製だから強度的に若干厳しい時が。いや、コレはプレートの強度というより、同梱されてたプラスチック製のプッシュピンの強度がアレなんだろうけど。手軽にプスプスと差していける代わりに、抜けやすい。取り付けは面倒になるけど、金属製のネジとナットで固定しないと、プレートの真の実力は発揮できない感じ。

何より、この製品、入手性が悪い…。そのへんのお店では、まず売ってない…。いっそ、100円ショップで取り扱いを始めたりしないものか…。100円は無理でも、200〜300円商品に設定して…。おそらくヒット商品になりそうな予感も。ていうかホームセンターで置いといてほしいよなあ…。

ところで。どういうものかちょっとよく分からないと思うので、 _同梱されてた説明書 をスキャンしてこっそり置いときます。ついでに、先日からアレコレ試してる _6速ギヤボックスの説明書 もこっそり置いときます。…いや、本当はこういうのってメーカのサイトに置いといてほしいのだけど、TAMIYAさんのサイトは何故かこの手の情報が全然アップロードされてなくて。 *1 ギヤボックスを選ぼうとした時も、それぞれどういう構造なのか知る術が無くて、どれを選ぶべきか悩んでしまったわけで。せめてカタログページ上に、パッケージ・箱のスキャン画像でも載ってれば、それだけでも随分違っただろうけど…。製品写真が低解像度だったり、白黒・カラー・イラストと製品ごとにてんでバラバラなのもよく分からん…。せっかく良い製品を出してるのに、なんだかもったいない…。

2017/03/19追記。 :

DropboxのPublicフォルダが死んだのでファイルを置き直し。

*1: パンフレット・組立説明書をDLできるページもあるのだけど、ギヤボックスやユニバーサルプレートのソレは見つからなかった。

#3 [windows] Windows10 x64でEPSON GT-7600Uを使いたい

めちゃくちゃ古いUSB接続スキャナ、EPSON GT-7600U を Windows10 x64 から使いたいと思ってググったり。

_ざっくり書いていく : GT-7600Uのドライバ
_Windows 7 x64 で化石のようなスキャナ EPSON GT-7600U を使う - メモ
_「Windows 7(64bit)」で「GT-7600U」を使う方法 | ちほちゅう
_Windows7 64bitで古いスキャナ(GT-7600) | NightWalkerの日記 | スラド

Windows7 x64 で使う時と同じ方法でイケるっぽい。スキャナを繋いでない状態でドライバをインストールしてOS再起動して、スキャナを繋ぐとドライバの自動インストールで失敗するので、手動でハードウェア一覧の中から追加。

おかげさまで使えるようになりました。ありがたや。

今時、スキャナなんてものは、えてしてプリンタと一緒になった複合機についてるものだろうから、ドライバすらWindowsに標準で入ってないのは仕方ないのかもしれんけど、ちょっと困るなと。ていうか下手すると、スマホのカメラで撮影してスキャナ代わりにしちゃうことも多いのか…。うーん。

この記事へのツッコミ

Re: WIndows10 x64でEPSON GT-7600Uを使いたい by ゆきろー    2018/01/03 18:17
私の環境(Windows 10 Home 64bit)では
GT-X980用ドライバを使用すると出来ました。

2016/07/28(木) [n年前の日記]

#1 [raspberrypi] Raspberry Piのカメラモジュールのケースをフリスクのケースで作成

そろそろ、カメラモジュールのケースを、紙製の仮ケースではなくちゃんとしたヤツに作り替えたいなと。本体の蓋を開けるたびに紙製だからヨレヨレになっていくし…。

と思っていたら、ちょうどフリスクを全部食べ終えたので、試しにフリスクのケースでカメラモジュール用のケースを作成してみたり。

こんな感じになった。
camera_module_case_3.jpg

「フリスクのケースはサイズ的にピッタリ」とは聞いてたけど、評判通りだった…。本当にピッタリ…。フリスクケース、イイな。シールも剥がしやすかったし。

こういうタイプのカメラモジュールケースも、公式あたりで売ってほしいところだなと…。

参考ページ。 :

参考写真。 :

これがフリスクのケース。シールを剥がした状態。
frisk_case_01.jpg

蓋を外してみる。
frisk_case_02.jpg

蓋を裏返してみる。
frisk_case_03_1.jpg

要は、この部分を切り取って使う。
frisk_case_03_2.jpg

どこに穴を開けるか、どのくらいの大きさで開けるのかについては、 _フリスクでraspberry piカメラのケースを作る - 徒然創作記 で掲載されてた図が大変参考になりました。ありがたや。

使ったネジ。 :

_Raspberry Pi Camera Module Mechanical Dimensions で、カメラモジュールの寸法が紹介されているけど、カメラモジュールに開いている4つの固定用の穴は直径2mmっぽいので、M2と表記されてたネジとナットをホームセンターのホーマックで購入して使ってみたり。

昔は、金属製のネジとナットを使うと、基板上のC1だかのあたりでショートして壊れそう、みたいな話があったようだけど。どうやらカメラモジュールV2は基板のレイアウトが少し変わったようで、金属製ナットを使っても何か他の部品とぶつかるような感じはしなかったような、とメモ。

ただ、ちと課題も。ケース外側(表)と基板の間に隙間を作りたいのだけど、ヨサゲなスペーサー?相当が見つからなくて。直径2mmの棒が入って、厚みが2〜3mmある何かなら、目的を果たせそうだけど…。ナットを積み重ねて代替できないか…。ちょっと太さが厳しいか…。径が2mmの熱収縮チューブを流用してどうにかならんか…。

作業時間。 :

作業時間は3時間ぐらいかかりました…。もっとも…。

フリスクケースを切断する際に、100円ショップで買った大味鋸を使って四苦八苦して時間を食ったので、例えばピラニア鋸等、細かく正確に切断できる鋸を使うとか、あるいは _モール を切る時に使えるという万能ハサミだか電工ハサミだかでざっくり切ってからカッターで削っていけば…。

また、カメラ部分が入る穴は7.2mm程度が欲しいのだけど、3mmのドリルしかなかったものだから、丸型ヤスリでゴリゴリと延々やって穴を広げて時間を食ってたので、もしかすると _リーマ の類があればもっと早くできた、かもしれないなと。や、リーマって使ったことないのでプラスチックに対しても穴を広げられるのか分からんのですけど。

#2 [raspberrypi] ホーマックでネジとモータを購入

夕飯のおかずを買うついでに、ホームセンターホーマックで、M3サイズの金属製ネジとナット、DCモータを購入。

ネジとナットについて。 :

ネジとナットは、TAMIYAユニバーサルプレートを固定するために購入。M3、と書いてあったから、太さは3mm、なのかな。長さ10mm x 20本、15mm x 5本、ナット x 25個。パッケージにはピッチ0.5と書いてあった。

早速ユニバーサルプレートの固定に使ってみたけど。プラスチック製の押しピンを使った場合と比べて圧倒的に強度が増した印象。全然ぐらつき具合が違う。プレートが割れるほどの力でもかからない限り壊れない予感。

もっともその分、取り付け・取り外しは面倒になったけど…。仮組みはプラスチック製の押しピンを使って、本番では金属ネジを、てな使い分けがいいのかもしれず。

DCモータについて。 :

購入したDCモータは、 _ELPA HK-M140H 。パッケージには、RE-140型、適正電圧 DC1.5V。5,400rpm、と書いてあった。

DCモータは線を短絡させた時にブレーキがかかる、という話が気になって、確認用に買ってみたのだけど。軸を指で回しながら、線を開放・短絡で試してみたものの、ぶっちゃけ違いが分からん…。プラシーボ効果で軸の回転に抵抗を感じてるのかもしれんと不安に思えてくるぐらいに、違いが無いような…。もしかして、このレベルのDCモータは、さほど違いなんて感じない or 違いは無かったりするのだろうか。

せっかく買ったのだから何かに固定して動かしてみたいと思ったものの、固定する方法が思いつかない。完全に丸いし。一応店頭でマウンタだか _モーターベース だかを探してみたけど見つからなかったし。工具箱の中には…無いな。小学生の頃には持ってたのだけど、さすがにそこまで物持ちが良いはずもなく。

回転数が微妙に少ないということで RE-140型を買ってしまったけど、固定まで考えるなら、少し平べったい形状の FA-130型を買うべきだったかもしれないなと…。いや、FA-130 は、回転数が多いけどトルクが少ないので、できれば RE-140 のほうがいいのだけど。

_マブチの工作用モーター | Let's Motorize!

しかし、ELPAで売ってるモータのスペックがわからん。型番でググってみてもスペック情報が全く見つからない。マブチモータ RE-140 とは回転数も違うようだし…。無負荷時に 5,400rpmだとしたら、マブチモータより性能が低いモータですよ、という話になるのかな。いや、そもそも _マブチモータ製 RE-140RA にも三種類ぐらいあるみたいで、どのモデルと比較すべきなのか。よく分からん。

DCモータの固定。 :

_細かく粉砕出来るボールミルを自作してみた という記事の中で、結束バンド(?)を使ってモータを固定している事例を見かけた。なるほど、とにかく縛り付けることができればどうにか、ということなのか…。考えてみれば、ネジとナットで挟んでいくモーターベースも縛り上げて固定しているようなもの、なのだな。

#3 [zatta] ホーマックのネジのバラ売りシステムがちょっとアレだった。

ホームセンターホーマックではネジのバラ売りをしてくれるので、今回利用してみたのだけど。

「『袋ごとレジに持っていけ』『レジで数えるから』と書いてあるけど、そんな仕組みで大丈夫か?」「コレってたぶん、アレな光景になりそうな…。いや、でも、まさかな…」と不安だったのだけど。予想通りと言うか、案の定と言うか…。

レジの人がネジを数えていく、その作業でめっちゃ時間がかかってしまって、他のお客さんにとっては大迷惑な状態に。あまりに時間がかかったものだから、「御迷惑かけてスミマセン…」と思わずこっちから小声で謝ってしまってレジの人が苦笑してたぐらいに酷い有様で。

ホーマックの経営者は何を考えとるのだ。いや、バラ売りはマジ助かるのですけどね…。しかし現状のシステム・仕組みでは迂闊に利用できねーよ! 他の客から睨まれちゃったよ! 身の置き所が無かったよ! 何だコレ、どんなプレイだよ!

例えばですけど。いきなりレジに持っていくのではなくて、一旦サービスカウンターで数えてもらって小さい袋にまとめてからレジに持っていく流れにするとか。数えやすいように専用小皿を用意しておくとか。もうちょっと何かしら最適化できるのではないかと思うわけですよ…。

ツルツル滑るレジの台の上に、ネジをバラーッと撒いてから、コロコロと転がるネジを相手に、一つ一つ拾って数えていくレジの人の姿を目にして、いくら何でもコレは、と。こんな売り方はヤバイだろ、と。現代社会において突如目の前に出現した賽の河原的シチュエーションに恐怖しましたよ。上のほうからレジの人達に対して「ネジやナットが転がりにくい小皿を用意したので、数える時はコレを使ってください」的な指示があってしかるべきだろ、と…。

また、それぞれのネジとナットを、混ざらないように個別にビニール袋に入れるという気配りまで頂けたけど。その一つ一つの袋が、そのへんにあるデカいビニール袋だったりして…。こういうのはチャック付きの小さいビニール袋に入れるもんだよな…。つまりはそういう最低限の準備すらできてないまま身の回りにあるものをどうにか駆使して現場がその都度必死に対処してる状況なのだろうと…。

なんというか、現場のことを全然知らない経営者連中が始めてしまったサービスだったりするのかなあ、などと邪推してしまうわけで。いや、サービスの存在は実にありがたいので是非とも続けていただきたいのですが、せめて上のほうに居る方々はもう少し頭を使って最適化していただけませんかと。コレ、現場の悲鳴も上に届いていないのだろうな…。

ていうか、ネジやナットを簡単に数えられる便利グッズって、そもそもホームセンターで売ってたりしないのかしらん。いや、存在しないからこういうことになってるのだろうけど。そういうグッズを商品開発できないものかな。おそらく極一部でヒット商品になりそうな。でも、サイズがバラバラだから実現は難しいのだろうか。何か思いつきそうだけど、しかし思いつかない感じでもあり。うーん。

2016/07/29(金) [n年前の日記]

#1 [raspberrypi][neta] 水中Raspberry Piってどうだろう

DCモータの固定方法を探しているうちに、 _ジュニアの電動化再び(その3): からくりP雑記帳 という記事の動画に遭遇して、そこから、ふと、なんとなく。この潜水艦に、Raspberry Piが積んであったらどうなるんだろうと。無線LANで他のPCからアクセスして…。

そもそも無線LANって水中では届くのでしょうかね?

いや、そもそも、水中にRaspberry Piを入れて、それで一体何ができるのだろうか。

水中で電波。 :

#2 [nitijyou] ホームセンターや100円ショップを回ってきたり

電動雲台モドキの上にモバイルバッテリーや単三電池ボックスを乗せたいのだけど、何か箱っぽいものを一旦乗せて、その中にバッテリーを置いたほうが良さそうだなと。ということで、ホームセンターや100円ショップを回って、使えそうな材料や、あるいはプラスチックケースが無いか探してみようと。…親父さんの電動自転車を借りて暑い中走ってきたり。

Seriaで1つ、ダイソーで2つ、それらしいサイズのプラスチックケースを購入。

ホームセンターには、使えそうな材料は無かった。いや、木材等はあるけれど、自分で切ったり接着したり等の工作はしたくない…。ていうか、ホームセンターの木材って高いし…。

その代り、ホーマックでモーターベースを発見。ELPA HK-M01H。FA-130型用・RE-140型用と書いてある。ついでに平ギヤセットも購入。ELPA HK-MG5H。後者はちょっと値段が高かった…。というか帰宅してから気が付いたけど、フツーにTAMIYA製ギヤボックスを購入したほうが安上がりだったような。暑さで判断力が無くなっていたとしか。

ホームセンターサンデーで、M3ネジとナットを一袋分購入。12個ほど入っているっぽい。

#3 [raspberrypi] MMLを周波数と時間に変換するPythonスクリプトを書いてたり

Raspberry Pi3をモバイルバッテリー付きで外に持ち出すとして、スイッチを押したら画像を撮影、みたいな処理をしたいわけで。

その際、動作したかどうかを確認するために、ブザーを鳴らしたいなと。そして、どうせならメロディーで知らせたいなと。メロディーを指定すると言っても、どうせブザーで鳴らすチープな音だから、簡単な指定でいいよなと。つまりMMLを使ってメロディーを鳴らせればそれで十分だろう、と。

てなわけで、Pythonスクリプト内で記述したMMLを、PWM制御を使ってブザーから鳴らすために、まずは、MMLを周波数と時間のリストに変換する処理を書こうと。

Windows + Python の場合、winsound というモジュールを使うと、winsound.Beep(周波数(Hz), 時間(ms))というメソッドが使えるようになるので、ひとまずソレを使って、Windows10上で動作確認しつつ書いてるところ。

_35.4. winsound ・ Windows 用の音声再生インタフェース ・ Python 2.7.x ドキュメント
_時報を Beep 音で鳴らそうとしたら、意外な厳しさがあった | 傀儡師の館.Python - 楽天ブログ
_Pythonでビープ音を鳴らす(Windowsのみ) - 数値計算とかの備忘録(仮)

ただ、winsound の場合、ビープ音と言っても、M/B上のブザーを鳴らすわけではなく、サウンドボード経由で鳴らす仕様らしい。

ちょっとハマったのは、ConEmu上で実行すると winsound.Beep() が鳴らない点。DOS窓上で実行する分には winsound.Beep() が使えるのだけど…。なんでだろ。

MMLの仕様がちょっとよく分からない。 :

_Music Macro Language - Wikipedia
_MML入門
_Python+PyAudio+MMLでスーパーマリオの地上BGMを - つまみ食う

  • CDEFGABでドレミを表す。
  • 「#」か「+」がついてたら半音上げる。
  • 「-」がついてたら半音下げる。
  • C〜Gの次に数字がついてたら音の長さ。
  • 数字の後ろに「.」がついてたら付点音符。
  • 「T数字」でテンポ指定。
  • 「O数字」でオクターブ指定。
そこまでは覚えてたけど。「<」「>」「L」は覚えてなかった…。「Q」「V」「&」あたりも記憶が無いな…。

というか、もしかしてMZ-700のMMLには用意されてなかったコマンドが結構あるのかな。一応自分、X1turboも使ってたけど、そっちでMMLを打ち込んだ記憶はないので、単音用のMMLは記憶があっても、PSG用のMMLコマンドについては全く知らない状態かもしれず。

2016/07/30() [n年前の日記]

#1 [raspberrypi] MMLを周波数と時間に変換するPythonスクリプトその2

とりあえず、Windows上で動く版はこんな感じかなと…。

_MMLを周波数と時間のリストに変換するPythonスクリプト
ただ、winsound.Beep() は処理の優先順位が低いのか、発音タイミングがその都度変わってしまうようで、なんだか不安になってくる演奏に…。まあ、Raspberry Pi3上で使った場合にちゃんと鳴ってくれればそれでイイかなと。

Raspberry Pi3 + ブザーでも鳴らしてみた。 :

_MMLを周波数と時間のリストに変換するPythonスクリプト の中の、buzzer_pigpio_mml.py が、Raspberry Pi3 + ブザーで鳴らしてみるサンプル。

回路図は、 _2016/07/22の日記 のソレを参照のこと。今回は GPIO 12番に接続した。

実行は、sudo python buzzer_pigpio_mml.py。…マ○オっぽいメロディーが流れた。winsoundを使った版とは違って、発音タイミングもちゃんとソレっぽい感じになってる。イイ感じ。

#2 [raspberrypi] カメラモジュール設置位置を試行錯誤したり電動雲台モドキを組み直したり

そろそろ Raspberry Pi3 につけているカメラモジュールをサーボモータ SG92R で動かしたいなと思って、ユニバーサルプレートについてきた棒っぽいソレを使って配置を検討。

棒の先にSG92Rを木ネジで固定して、棒自体は Raspberry Pi3本体ケースに両面テープで仮止め。カメラモジュールは、サーボモータの軸につけるサーボホーンなる部品にこれまた両面テープで仮止め。

サーボモータを回転させて写真を撮影してみたものの問題発見。下方向90度にカメラを向けて撮影した際に、カメラモジュールのケーブルが写真に入り込んでしまう…。

本体ケースの蓋を閉めた際に、カメラモジュールケーブルが上から抑え込まれて横方向に飛び出した状態になるけれど。その状態だと、カメラが下を向いたときに、カメラの目の前にケーブルが入り込んでしまう模様。ということは、ケースの蓋を開けて、ケーブルコネクタの真上にケーブルが一旦伸びてる形にしないといかんのかもしれず。…やっぱり、このケース( _Piケース RS for Pi3/2/B+ 白 [908-4212] )を選んで失敗だったのだろうか。でも、Pi3用のケースって、他にもう一種類ぐらいしか見当たらないし…。

電動雲台モドキを組み直し。 :

Raspberry Pi3本体を後ろのほうに配置するとしたら、前のほうには重い何かを配置して、重量面で前後のバランスを取らないといけないなと。であれば、前のほうにバッテリーをぶら下げてしまえば、と思いついて組み直しているところ。

バッテリーはそのままだと前のほうにぶら下げられないので、何か箱だか枠だかっぽいものを作ってその中に入れるしかないかなと。100円ショップダイソーで以前購入したPPシート1mm厚を引っ張り出してきて工作を。PPシートでは強度的にちょっと足りないので不安ではあるけど。

PPシートの曲げ方が、よく分からない。ゆっくり曲げたつもりが「パキッ」と音が。割れて切れてしまった…。仕方ないから養生テープでペタペタと。

2016/07/31() [n年前の日記]

#1 [raspberrypi] Raspberry Pi3起動時にスクリプトを実行したい

Raspberry Pi3 + カメラモジュールをデジカメもどきにして外に持ち出したいのだけど、そのためには撮影用のスクリプトを本体起動時に実行させなきゃいかんなと。どうしたらそんなことができるのかなと。

ググってみたら、/etc/rc.local というファイルにスクリプトの実行を追加するのがお手軽らしい。本当はサービスとして実行したほうがいいのかもしれんけど…。

とりあえず、実行するためのスクリプトを書いているところ。

#2 [raspberrypi] スイッチって高いのだな

Raspberry Pi3 にスイッチを付けたいけれど、 _ブレッドボード の上に _タクトスイッチ を乗せた状態はちとよろしくないなと。タクトスイッチを押すたびに、ブレッドボードや本体がグラグラしてしまう。

できればスイッチにコードをつけて、本体からぶらぶらさせておきたい。しかし、タクトスイッチは基板上に実装するのが前提のスイッチなので、ぶらぶらさせるためにコードをつけるのもちょっと難しいかもしれんなと。

てなわけで、犬の散歩後、近所のホームセンターホーマックまで行ってヨサゲなスイッチが無いか探してみたのだけど。一応あることはあったけど、一つ300円前後のお値段だったので、躊躇して買わないまま帰宅したり。さすがに300円は高い…。

もっとも、送料等を考えたら妥当な値段かも。通販で買うとしても送料が500円ぐらいはかかるから、スイッチ一つを買うだけならホームセンターで買ってしまったほうが安いということに。

そういえば、近所のあちこちに工場があって、おそらくは工場内でこの手のスイッチを使って製品を組み立てたりしてると思うのだけど。それら工場でお店を開いたりしないものだろうか…。そうなれば、もうちょっと安く入手できる可能性が…。お店と言っても事務所の一角にスペースを作って、工場内で扱ってる電子部品に上乗せした値段で陳列しておく、みたいなノリで。などと妄想したけど、需要が無いか。一体全体どこの誰がその手の電子部品をわざわざ工場まで買いに来るんだよ、という気もする。

100円ショップで売ってないかと思って Seria を回ってみたけれど、改めて眺めてみると、100円ショップにはスイッチがついてるアレコレってほとんど存在しないことに気づいたり。あるとしても、押したらONのままになって、また押したらOFFになったままになる、的なスイッチで。

_モーメンタリとオルタネイトの動作の違い によると、押してる間だけONになるスイッチを「モーメンタリスイッチ」、押した後に手を離してもONのままのスイッチを「オルタネイトスイッチ」と呼ぶらしい。100円ショップで入手できるスイッチは「オルタネイトスイッチ」、ということになるのかな。

以上、31 日分です。

過去ログ表示

Prev - 2016/07 - Next
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project