(金)iPhoneのマイク入力コネクタ前回の他のマシンのプレゼン画面を放送したいという目標は達成できたので、次は軽装で済ませたい時にiPhoneからUStream中継をしたりするのに問題となる音声の収録です。プレゼン画面と講演者が入る程度のちょうど良い画角の場所に陣取ると、どうしても音声が遠くなってレベルが低くなってしまいがちです。見る時にヘッドホンをつけてボリューム最大で聞かないといけないってなことになっちゃって困るんですよね。いうことで、ヘッドホンの4極端子に外部マイクつけられないかなぁってのが今回のお題です。30pinコネクタにもラインインがあるというウワサもありますが、充電もしながらじゃないと長時間の収録/放送に堪えないので、30pinコネクタでやるには結構配線数も多くなって嫌なんですよねぇ。前に作ったiPod用コネクタ基板もこの目的には使えませんし、何かと自作の30pinコネクタはトラブルをはらみがちで懲りてるってのもあるので、ヘッドホン端子の方に挑戦です。手持ちの4極コネクタとiPhoneの付属のヘッドホンを使ってあたりをつけてみると、どうやら先からヘッドホンのL,R,GND,Micとなっているっぽいです。マイク端子には1.5V程度のバイアスがかかっているようです。そのままGNDとマイクの端子を2pinの3.5φジャックに繋ぐような変換コネクタを作ってみました。PC用のコンデンサマイクを繋いで実験してみると音が出ない/めっちゃ遠い状態で全然ダメです。あいたたた、入力インピーダンスがすごく低いのか、マイクアンプがヘッドホン側に入ってるんですねぇ。ことで、実際に付属ヘッドホンを1.5Vの電源に10kΩでプルアップして波形を見てみると100mVp-pも出て来ます。ことで、途中にマイクアンプ入れないとダメって事が分かりましたので、基板作んなくっちゃ〜、ってことで今日はオシマイ。ちなみに、ライン入力をプリアンプでググッとボリューム絞って入れてみたらちゃんとボイスメモで録音できました〜。レベル調整やライン入力も入れられる基板作るかなぁ。言うのだと欲しいって人も出てきますかねぇ?集まるんならちゃんとパターン起こして基板屋さんに頼みますが...【2010.5.14追記】マイクアンプを作って再挑戦してみました。Broadcasterがヘッドホン端子のマイク入力を使ってくれません。ことで、この計画はダメっぽいですわぁ。さんの「特定の人からメールが着信するとスカイプからケータイに電話かけてくれる機能欲しい。」というtwittを見て、ちょっと作ってみました。MacならAppleScriptで簡単に実装できんじゃない?と思って調べてみたら、次の1行で済んじゃいました。"SkypeCall"echo123のところを目的の電話番号(日本なら+81で始めて最初の0は削除した番号列)に変更すればOKです。Editorでスクリプトとして保存して、Mail.appなりでフィルタに特定のメールアドレスでAppleScriptが起動するようにルールを設定すれば良いだけですね。それだと確かに電話は掛かってくるんですが、無言のイタズラ電話状態なので、なんか寂しいですよねぇ。ことで、ちゃんと繋がったのを確認して、特定の音声ファイルを再生するようにしてみました。Editorにペーストしてコンパイルしてからゆっくり眺めてください。echo123は適宜電話番号に置き換えてください。/path/to/soundfile.wavを再生する音声ファイルにして、その音声ファイルの長さに合わせてdelayコマンドのパラメータの30秒の部分を修正してください。sample/sec、16bitのWavファイルだけしか受け付けてくれないようです。nameパラメータは何でも良いんですが、スクリプト内で一貫させておいてください。あと、最初に実行した時にSkypeの方でコマンドを受け付けても良いか聞かれるので、許可してあげてください。ニーズがあるのかどうか分かりませんけど、せっかく作ったんで公開しておきます。Skypeのスクリプトも色んな事出来そうなのが分かったので、今後もなんか作るかもしれませんし、興味を持って調べて何かもっと使い手のあるものでも作ってもらえると嬉しいかなと思います。ProducerがPro版とFree版が出て不安定なFlash君無しで中継が出来るのは嬉しいところです。11月からTMUGのUStream録画(中継は回線が不安なので、ブツ切れしないように録画にしている)をやっていて、色々と改善したい点があったりするわけですが、その一つがプレゼン画面をカメラで写さないで、直接スクリーンキャプチャから持ってこれないか?ってところでした。Pictureで表示できるわけで、とってもリッチで嬉しいわけです。Pro版を買うほどの事もないので、まずはFree版での実験をして無事成功したので、手順を公開します。Presenterというソフトが別に立ち上がります。Producer.appのパッケージを開くと、Contents/Resourcesの中に入っています。ProducerとはTCP/IPの7272番ポートで接続するような仕様みたいです。netstatで見てやると*.7272でLISTENしています。fowardをかけてみたところバッチリ繋がりました。forwardすることに変更しました。これでもtcp的な見た目は同じ事なので無事繋がります。細かい手順を説明して行きましょう。Producerも何も立ち上げない状態から始めます。放送側のMacにリモートログイン出来るように設定します。システム環境設定の共有でリモートログインのチェックをオンにしてやります。次に、放送側とプレゼン側の2台のMacのIPアドレスのうち同じネットワークにあるIPアドレスを調べます。両者が無線LANの同じ基地局で繋がっているのであれば、無線LANのポートに付いているアドレスですね。放送側のアドレスだけで大丈夫です。プレゼン側は繋がらないなどの現象があった場合にトラブルシューティングとして調べればOKです。システム環境設定のネットワークを選んでEthernetならば左のリストからEtherを選べばアドレスも表示されますが、AirMacの場合は詳細...ボタンを押して更にTCP/IPタブを選んでください。この例の場合は192.168.10.125になります。次はプレゼン側に移ります。アプリケーションフォルダのユーティリティフォルダに入っているTerminalを立ち上げます。ここに以下のようなコマンドを打ちます。test@192.168.10.125ここで、testの部分は放送側のMacにログイン出来るログイン名に適宜置き換えてください。すると、こんな風にPasswordを要求してきますので、放送側のMacのログインパスワードを入力します。この時にキーインしても何も表示されませんので、確実に一気に入力してください。間違えた場合は再度パスワードを要求されます。パスワードの前にAuthenticationがどうのこうのと言ってくる場合もあるかもしれませんが、その場合にはyesと入力してください。Presenter.appをプレゼン側のMacにコピーして立ち上げます。プレゼン側のMacのIPアドレスがこの場合は192.168.10.12になっています。Producerを立ち上げます。Shotを選ぶと下にScreencastの選択肢が出てくるはずです。その画面はプレゼン側のMacの画面になっているはずです。Producerの使いこなしの話しになってしまうので、それは他の方にお任せしま〜す。ちなみに、こうやって一度設定してあげると、sshのコネクションを切っても再接続すれば大丈夫です。いうことで、プレゼンする人が変わる時には、再度そちらのマシンからsshコマンドを打ってあげれば良い事になります。元のプレゼンターからの接続は先に切っておかないといけませんので、前のプレゼンが終わったら固まっているように見えるTerminalでCtrlキーを押しながらcのキーを押します。それでプロンプトが戻ってくるはずですので、切断に成功した事になります。<2010.2.5追記>Windowsでのプレゼンも放送できた方が嬉しいと思うので、Windowsからもやってみました。-Rでの接続(sshはCygwinで入れました)で無事放送できました。forward用のソフトはあったと思うので、Cygwinにsshをインストールしてない場合もそう言ったソフトを入れれば良いんじゃないでしょうか。Producer\rsrc\に入ってました。(土)Printwitts先週の週末に思いつきで、こんなものをでっち上げました。その名もPrintwitts!Twitterのプリンター直結クライアントってところですかね。A4のプリンターとかじゃなくて、感熱のロール紙に出てくるってのがミソ。長い紙に延々印刷されていくのがなんだか楽しいです。印刷時の音でつぶやきがあったのもすぐに分かるので、手元において置けばコンピュータの画面をいじらずにすぐに読めますし、留守中や就寝中にどれだけつぶやきがあったのかも一目瞭然。つぶやきが貯まってても、パシッと切って持っていけば電車の中でも読めちゃいます。今のところMac上でアプリケーションが動いていて、USB接続のレシートプリンターが印刷していますが、今回はQtとlibusbを使ったので、移植性もバッチリなハズ。UStreamでライブストリームも流しているので、アクセスしてみてください。内容が読めちゃうと困るので、敢えて画質は酷く落としてあります。内容を知ってれば何となく読めるかもしれないので、自分でつぶやいてそれが印刷される様子が見たいと言う方は、出来れば専用のアカウントでも取ってもらってそのアカウントを教えてください。こちらからフォローすれば、印刷されるはずです。APIの呼び出し回数は150回/hrの制限があるので、30秒に1回程度しかアクセスしていませんので、つぶやいてもそんなにリアルタイムではありませんので悪しからず)いやぁ、実はコレをどっかの記事で見て、ロール紙状の物がたくさん下がってきてる写真だけ見て、これがTwitterだったら面白いじゃん!と思って作ったんですが、これもTwitterだったんですねぇ。言うことで、タダの二番煎じになっちゃったみたいです。Makeにも載ってたのは気づかなかったのか、もしくは内容をちゃんと読んでなかったのかですねぇ。写真だった気がするので、別のニュースページなんだろうと思います。(^^;<2010.11.30追記>ずっとPrintwittsを気に入ってくれていて、貸りてイベントで使ってくれたりしていたヒマナイヌ川井さんと一緒に商品化することになり、これの後継機種を使ってTLP-80UとTLP-300Uという放送局向けの上位機種を販売開始してます。Portrait版Androidの会の勉強会に参加して来ました。G1のSkinが作られていたのを知りまして、早速会場でダウンロード。江川さんのプレゼンもそこそこに内職してまして、Portrait版のスキンを作ってました。ボタン位置とかの細かい調整までは時間内にできなかったんで、帰って来てから微調整して、いちおう完成。Background.pngはまだまだ汚いのでもっと巧いPhotoshop使いに修正してもらった方が良いかもしれませんねぇ。VGAのPortraitのSkinとG1のLandscapeからねつ造したPortraitの絵をドッキングさせて作ってみた感じです。ま、何かの役に立つようであれば使ってみてください。ファイルはこちらからどうぞ。使い方は以下の参考にさせていただいた「おーしゃんさん」のページの記述に準じます。G1-Lの代わりにG1-Pになってるだけです。PowerとVolumeはキーボードの上あたりに密かに隠してあります。タイトルの通りステッピングモータです。千石電商の3号店(本店横のメカトロのとこ)でコパルの小型ステッピングモータSPG-20が380円で売っていたので回してみました。ステッピングモータですから、単にDC電源を繋げば回ってくれるわけではありません。回すために今回はブレッドボードで組んでみました。Tiny2313です。秋月で120円で買えますから、PIC16F84なんかよりも遥かにお得です。内蔵ペリフェラルも圧倒的に豊富ですし、スピードも速いですから比較するのも失礼なくらいなんですけどね。なんでこんなに安いんでしょうね。回路的には非常に簡単で、PD0〜PD3にトランジスタのドライバを接続しただけです。1kΩの抵抗でベースに接続しています。誘導性負荷ですから逆流保護のダイオードも必須ですね。今回はちょっと大きめのシリコンダイオードを使ってあります。スイッチは2-2相励磁と、1-2相励磁の切替ができるようにつけてあるものです。励磁に関してはこのページを参考にさせてもらいました。その他は電源が12Vなので、78L05で5Vを作っているくらいですね。いうわけで、回してみたムービーデータがこちらです。Media最初の4回転が最も高速な回転で、1/2のスピードに遷移して行きます。回転の数もスピードに合わせて減って行って、最後1/16と1/32で1/4回転ずつすると、今度は逆転して最高速に戻って4回転するというのを繰り返します。16mmのプーリーを回していますが、低速回転の時には手で押さえても止まらずに結構頑張ってくれます。高速回転の時にはトルクも落ちるのでかなり止めやすくなりますけどね。別にソースを隠すほどの事もないので、公開しておきます。BSDライセンスで公開するのでご自由にお使いくださいまし。このモータの端子がJSTのZHコネクタを使ってまして、これが1.5mmピッチの圧着式のコネクタなわけですね。いままではこういう端子の圧着には非常に困っていたわけですが、先日エンジニアからPA-09という精密圧着ペンチがリリースされましたので、それを使って無事圧着しました。いちおう写真も載せておきます。2SC1815と比べても、圧着ダイスの細かさが解りますよね。これも千石で4000円ちょっとで買ってきたものです。こないだ西川に行ったら置いてあってそっちの方が安いようなので、今後買われるのでしたらネジの西川で買うのが良いでしょうね。