2010年2月 5日 (金)

iPhoneのマイク入力コネクタ

前回の他のマシンのプレゼン画面を放送したいという目標は達成できたので、次は軽装で済ませたい時にiPhoneからUStream中継をしたりするのに問題となる音声の収録です。プレゼン画面と講演者が入る程度のちょうど良い画角の場所に陣取ると、どうしても音声が遠くなってレベルが低くなってしまいがちです。見る時にヘッドホンをつけてボリューム最大で聞かないといけないってなことになっちゃって困るんですよね。

ということで、ヘッドホンの4極端子に外部マイクつけられないかなぁってのが今回のお題です。30pinコネクタにもラインインがあるというウワサもありますが、充電もしながらじゃないと長時間の収録/放送に堪えないので、30pinコネクタでやるには結構配線数も多くなって嫌なんですよねぇ。前に作ったiPod用コネクタ基板もこの目的には使えませんし、何かと自作の30pinコネクタはトラブルをはらみがちで懲りてるってのもあるので、ヘッドホン端子の方に挑戦です。

とりあえず、手持ちの4極コネクタとiPhoneの付属のヘッドホンを使ってあたりをつけてみると、どうやら先からヘッドホンのL,R,GND,Micとなっているっぽいです。マイク端子には1.5V程度のバイアスがかかっているようです。とりあえずそのままGNDとマイクの端子を2pinの3.5φジャックに繋ぐような変換コネクタを作ってみました。

Sany0006Sany0005

で、早速PC用のコンデンサマイクを繋いで実験してみると音が出ない/めっちゃ遠い状態で全然ダメです。あいたたた、入力インピーダンスがすごく低いのか、マイクアンプがヘッドホン側に入ってるんですねぇ。ってことで、実際に付属ヘッドホンを1.5Vの電源に10kΩでプルアップして波形を見てみると100mVp-pも出て来ます。やっぱしアンプ入りなんだぁ。ってことで、途中にマイクアンプ入れないとダメって事が分かりましたので、基板作んなくっちゃ〜、ってことで今日はオシマイ。

ちなみに、ライン入力をプリアンプでググッとボリューム絞って入れてみたらちゃんとボイスメモで録音できました〜。どうせならレベル調整やライン入力も入れられる基板作るかなぁ。そう言うのだと欲しいって人も出てきますかねぇ?集まるんならちゃんとパターン起こして基板屋さんに頼みますが...

【2010.5.14追記】マイクアンプを作って再挑戦してみました。が、そもそもUstream Broadcasterがヘッドホン端子のマイク入力を使ってくれません。ってことで、この計画はダメっぽいですわぁ。

2010年2月 4日 (木)

Skypeで電話するスクリプト

@himanaiku_kawai さんの「特定の人からメールが着信するとスカイプからケータイに電話かけてくれる機能欲しい。。」というtwittを見て、ちょっと作ってみました。MacならAppleScriptで簡単に実装できんじゃない?と思って調べてみたら、次の1行で済んじゃいました。

tell app "Skype" to send command "CALL echo123" script name "SkypeCall"

echo123のところを目的の電話番号(日本なら+81で始めて最初の0は削除した番号列)に変更すればOKです。あとは、このスクリプトをScript Editorでスクリプトとして保存して、Mail.appなりでフィルタに特定のメールアドレスでAppleScriptが起動するようにルールを設定すれば良いだけですね。が、それだと確かに電話は掛かってくるんですが、無言のイタズラ電話状態なので、なんか寂しいですよねぇ。ってことで、ちゃんと繋がったのを確認して、特定の音声ファイルを再生するようにしてみました。

tell application "Skype"
  copy word 2 of (send command "CALL echo123" script name "SkypeCall") to callid
  repeat
    copy word 4 of (send command "GET CALL " & callid & " STATUS" script name "SkypeCall") to callStatus
    if callStatus is "INPROGRESS" then exit repeat
    if callStatus is in {"REFUSED", "CANCELLED", "FINISHED", "MISSED", "BUSY"} then return
  end repeat
  send command "ALTER CALL " & callid & " SET_INPUT file=" & quote & "/path/to/soundfile.wav" & quote script name "SkypeCall"
 
  tell application "Finder" to delay 30
 
  send command "SET CALL " & callid & " STATUS FINISHED" script name "SkypeCall"
end tell

右がちょっと切れてますので、ソースはScript Editorにペーストしてコンパイルしてからゆっくり眺めてください。

同じく、echo123は適宜電話番号に置き換えてください。さらに/path/to/soundfile.wavを再生する音声ファイルにして、その音声ファイルの長さに合わせてdelayコマンドのパラメータの30秒の部分を修正してください。Skypeが対応している音声ファイルは16k sample/sec、16bitのWavファイルだけしか受け付けてくれないようです。

script nameパラメータは何でも良いんですが、スクリプト内で一貫させておいてください。あと、最初に実行した時にSkypeの方でコマンドを受け付けても良いか聞かれるので、許可してあげてください。

はたしてニーズがあるのかどうか分かりませんけど、せっかく作ったんで公開しておきます。なかなかSkypeのスクリプトも色んな事出来そうなのが分かったので、今後もなんか作るかもしれませんし、興味を持って調べて何かもっと使い手のあるものでも作ってもらえると嬉しいかなと思います。ライセンスはBSDってことで、ご自由にお使いください〜!!

UStream Producerで別のMacの画面を放送

UStream ProducerがPro版とFree版が出て不安定なFlash君無しで中継が出来るのは嬉しいところです。11月からTMUGのUStream録画(中継は回線が不安なので、ブツ切れしないように録画にしている)をやっていて、色々と改善したい点があったりするわけですが、その一つがプレゼン画面をカメラで写さないで、直接スクリーンキャプチャから持ってこれないか?ってところでした。それが出来ると、プレゼン画面やアプリの操作画面をメインにして、プレゼンターの姿を小さくPicture in Pictureで表示できるわけで、とってもリッチで嬉しいわけです。

Pro版を買うほどの事もないので、まずはFree版での実験をして無事成功したので、手順を公開します。

Screencastを選ぶと、Desktop Presenterというソフトが別に立ち上がります。これが鍵ですね。このアプリの本体はUStream Producer.appのパッケージを開くと、Contents/Resourcesの中に入っています。

31 2

予想した通りUStream ProducerとはTCP/IPの7272番ポートで接続するような仕様みたいです。netstatで見てやると*.7272でLISTENしています。

ということで、若干の実験を経てLocalで立ち上がってるDesktop Presenterと区別がつかなければOKなんじゃないかと予想を立てて、別のMacでDesktop Presenterを立ち上げて、さらにsshでport fowardをかけてみたところバッチリ繋がりました。

最初は放送側のMacからssh -Lでプレゼン側のMacに繋いだんですが、これだといちいちプレゼンする人にsshで入れるアカウントを用意してもらわないといけなかったりとややこしい事になるので、ssh -Rでプレゼン側のMacから放送側のMacにport forwardすることに変更しました。これでもtcp的な見た目は同じ事なので無事繋がります。

では、細かい手順を説明して行きましょう。まずはUStream Producerも何も立ち上げない状態から始めます。

  1. まずは放送側のMacにリモートログイン出来るように設定します。システム環境設定の共有でリモートログインのチェックをオンにしてやります。
    3
  2. 次に、放送側とプレゼン側の2台のMacのIPアドレスのうち同じネットワークにあるIPアドレスを調べます。両者が無線LANの同じ基地局で繋がっているのであれば、無線LANのポートに付いているアドレスですね。放送側のアドレスだけで大丈夫です。プレゼン側は繋がらないなどの現象があった場合にトラブルシューティングとして調べればOKです。同じくシステム環境設定のネットワークを選んでEthernetならば左のリストからEtherを選べばアドレスも表示されますが、AirMacの場合は詳細...ボタンを押して更にTCP/IPタブを選んでください。この例の場合は192.168.10.125になります。
    4
  3. さて、次はプレゼン側に移ります。アプリケーションフォルダのユーティリティフォルダに入っているTerminalを立ち上げます。ここに以下のようなコマンドを打ちます。
    ssh -N -R 7272:127.0.0.1:7272 test@192.168.10.125
    ここで、testの部分は放送側のMacにログイン出来るログイン名に適宜置き換えてください。すると、こんな風にPasswordを要求してきますので、放送側のMacのログインパスワードを入力します。この時にキーインしても何も表示されませんので、確実に一気に入力してください。間違えた場合は再度パスワードを要求されます。パスワードの前にAuthenticationがどうのこうのと言ってくる場合もあるかもしれませんが、その場合にはyesと入力してください。
    5
  4. これで、無事繋がっているハズですので、Terminalは放置して、Desktop Presenter.appをプレゼン側のMacにコピーして立ち上げます。プレゼン側のMacのIPアドレスがこの場合は192.168.10.12になっています。
    6
  5. さて、ここでやっとUStream Producerを立ち上げます。適宜ログインを済ませてScreencastボタンからAdd New Screen Recording Shotを選ぶと下にScreencastの選択肢が出てくるはずです。で、その画面はプレゼン側のMacの画面になっているはずです。

ということでいかがでしょう?無事繋がりましたか?あとはUStream Producerの使いこなしの話しになってしまうので、それは他の方にお任せしま〜す。

ちなみに、こうやって一度設定してあげると、sshのコネクションを切っても再接続すれば大丈夫です。ということで、プレゼンする人が変わる時には、再度そちらのマシンからsshコマンドを打ってあげれば良い事になります。もちろん元のプレゼンターからの接続は先に切っておかないといけませんので、前のプレゼンが終わったら固まっているように見えるTerminalでCtrlキーを押しながらcのキーを押します。それでプロンプトが戻ってくるはずですので、切断に成功した事になります。

<2010.2.5追記>Windowsでのプレゼンも放送できた方が嬉しいと思うので、Windowsからもやってみました。同様にssh -Rでの接続(sshはCygwinで入れました)で無事放送できました。他にもPort forward用のソフトはあったと思うので、Cygwinにsshをインストールしてない場合もそう言ったソフトを入れれば良いんじゃないでしょうか。ちなみに、Desktop Presenter.exeはC:\Program Files\Ustream\Ustream Producer\rsrc\に入ってました。

2009年8月22日 (土)

Printwitts

先週の週末に思いつきで、こんなものをでっち上げました。その名もPrintwitts!

Twitterのプリンター直結クライアントってところですかね。A4のプリンターとかじゃなくて、感熱のロール紙に出てくるってのがミソ。たらたらと長い紙に延々印刷されていくのがなんだか楽しいです。印刷時の音でつぶやきがあったのもすぐに分かるので、手元において置けばコンピュータの画面をいじらずにすぐに読めますし、留守中や就寝中にどれだけつぶやきがあったのかも一目瞭然。つぶやきが貯まってても、パシッと切って持っていけば電車の中でも読めちゃいます。

今のところMac上でアプリケーションが動いていて、USB接続のレシートプリンターが印刷していますが、今回はQtとlibusbを使ったので、移植性もバッチリなハズ。

UStreamでライブストリームも流しているので、アクセスしてみてください。内容が読めちゃうと困るので、敢えて画質は酷く落としてあります。内容を知ってれば何となく読めるかもしれないので、自分でつぶやいてそれが印刷される様子が見たいと言う方は、出来れば専用のアカウントでも取ってもらってそのアカウントを教えてください。こちらからフォローすれば、印刷されるはずです。(なお、Twitter APIの呼び出し回数は150回/hrの制限があるので、30秒に1回程度しかアクセスしていませんので、つぶやいてもそんなにリアルタイムではありませんので悪しからず)

いやぁ、実はコレをどっかの記事で見て、ロール紙状の物がたくさん下がってきてる写真だけ見て、これがTwitterだったら面白いじゃん!と思って作ったんですが、これもTwitterだったんですねぇ。ヤレヤレ。と言うことで、タダの二番煎じになっちゃったみたいです。Makeにも載ってたのは気づかなかったのか、もしくは内容をちゃんと読んでなかったのかですねぇ。写真だった気がするので、別のニュースページなんだろうと思います。別にコレとおんなじ物作〜ろう!って言う意識では始めてなかったので、こんなことだったとは... (^^;

<2010.11.30追記>ずっとPrintwittsを気に入ってくれていて、貸りてイベントで使ってくれたりしていたヒマナイヌ川井さんと一緒に商品化することになり、これの後継機種を使ってTLP-80UとTLP-300Uという放送局向けの上位機種を販売開始してます。お問い合わせは、kawai<atmark>himanainu.jp もしくは Twitterで @himanainu_kawai までどうぞ〜

2008年10月 7日 (火)

G1 Skin Portrait版

6

Androidの会の勉強会に参加して来ました。木南さんのプレゼンでemulator用のT Mobile G1のSkinが作られていたのを知りまして、早速会場でダウンロード。江川さんのプレゼンもそこそこに内職してまして、Portrait版のスキンを作ってました。

さすがにボタン位置とかの細かい調整までは時間内にできなかったんで、帰って来てから微調整して、いちおう完成。Background.pngはまだまだ汚いのでもっと巧いPhotoshop使いに修正してもらった方が良いかもしれませんねぇ。

Android SDKはダウンロードだけしてあって、emulatorの起動のさせ方も今日知ったくらいなので(まさかCLUIだったとは...)、Skinの作り方を熟知してるわけでもなんでもありませんが、出来合いのSkinフォルダを見たら自明だったので、標準のHalf VGAのPortraitのSkinとG1のLandscapeからねつ造したPortraitの絵をドッキングさせて作ってみた感じです。

ま、何かの役に立つようであれば使ってみてください。ファイルはこちらからどうぞ。

使い方は以下の参考にさせていただいた「おーしゃんさん」のページの記述に準じます。G1-Lの代わりにG1-Pになってるだけです。PowerとVolumeはキーボードの上あたりに密かに隠してあります。

参考ページ:http://bizpal.jp/ocean.android/00010

2007年12月28日 (金)

ステッピングモータ

最後の書き込みから暫く仕事が入ったり、あんまりハンダ付けと関係ない事をやっていたりして投稿するネタがなかったんですが、別にブレッドボードでやってる事でも良いか...ってことで、今回はPb Freeな話題です。

Front Back

Blank

で、タイトルの通りステッピングモータです。千石電商の3号店(本店横のメカトロのとこ)でコパルの小型ステッピングモータSPG-20が380円で売っていたので回してみました。

ステッピングモータですから、単にDC電源を繋げば回ってくれるわけではありません。サクッと回すために今回はブレッドボードで組んでみました。CPUはこういう軽作業には定番のAT Tiny2313です。秋月で120円で買えますから、PIC16F84なんかよりも遥かにお得です。内蔵ペリフェラルも圧倒的に豊富ですし、スピードも速いですから比較するのも失礼なくらいなんですけどね。なんでこんなに安いんでしょうね。ありがたい事です。

Breadborad 回路的には非常に簡単で、PD0〜PD3にトランジスタのドライバを接続しただけです。1kΩの抵抗でベースに接続しています。誘導性負荷ですから逆流保護のダイオードも必須ですね。今回はちょっと大きめのシリコンダイオードを使ってあります。スイッチは2-2相励磁と、1-2相励磁の切替ができるようにつけてあるものです。励磁に関してはこのページを参考にさせてもらいました。その他は電源が12Vなので、78L05で5Vを作っているくらいですね。

Blank

というわけで、回してみたムービーデータがこちらです。

Quicktime Movie

Windows Media

最初の4回転が最も高速な回転で、1/2のスピードに遷移して行きます。回転の数もスピードに合わせて減って行って、最後1/16と1/32で1/4回転ずつすると、今度は逆転して最高速に戻って4回転するというのを繰り返します。16mmのプーリーを回していますが、低速回転の時には手で押さえても止まらずに結構頑張ってくれます。さすがに高速回転の時にはトルクも落ちるのでかなり止めやすくなりますけどね。別にソースを隠すほどの事もないので、公開しておきます。BSDライセンスで公開するのでご自由にお使いくださいまし。

さて、このモータの端子がJSTのZHコネクタを使ってまして、これが1.5mmピッチの圧着式のコネクタなわけですね。いままではこういう端子の圧着には非常に困っていたわけですが、先日エンジニアからPA-09という精密圧着ペンチがリリースされましたので、それを使って無事圧着しました。

Whole1815

Blank

いちおう写真も載せておきます。2SC1815と比べても、圧着ダイスの細かさが解りますよね。これも千石で4000円ちょっとで買ってきたものです。こないだ西川に行ったら置いてあってそっちの方が安いようなので、今後買われるのでしたらネジの西川で買うのが良いでしょうね。

最近のトラックバック

オヤマ日記飴

jun's Blog in English

Powered by Six Apart

nobi.com (JP)