Friday, July 30, 2010

DMXの絶縁

DMXの絶縁についてメモしておきます。
自作でDMX機器を作るには、「RS485」という通信を行います。この通信を行うには、トランシーバになるICが必要で、マイコンからはこのトランシーバ経由で送受信を行います。代表的なICには、「MAX485」などがありますが、絶縁はされていません。

絶縁とはどういうことかといいますと、たとえば、外部に接続したDMX機器が何らかの原因でショートして壊れたとします。ショートするということは、グランドと電源がつながってしまったりすることなので、このとき通信ケーブル経由で他の機器にも、影響が及んでしまいます。これを防ぐ方法が絶縁です。

DMXのRS485通信には、「プラスの信号/マイナスの信号/グランド」の3つの線が必要です。これを絶縁するということは、「グランドを外界と切り離す」ことになります。

簡単に絶縁するには、マイコンに使う電源と、MAX485などのトランシーバICに使う電源を別にしてあげることで、はやい話、ACアダプタを2つ使えば絶縁できます。

でも、でっかくなりますし、ケーブルも増えてしまいます。

そこで、絶縁対応のトランシーバICを使います。でもこれだけではまだダメで、「コイル」か「トランス」が必要になります。入手が簡単なものは、これまた大きくなってしまいますので、RS485の絶縁のためのコイルを使います。

こちらで入手できて、確認できたものは、以下の組み合わせです。
3.3Vのマイコンを使ったので、3.3V動作できる条件です。

MAX3535E(正確には、MAX3535ECWI+を使用)
782485/35C(PDFへリンク。いきなり数字から始まる型番。MURATA製のRS485絶縁用コイル)
※ちなみに、「782482/35C」っていう「485」が「482」になっただけの、見た目もほぼ同じコイルがあります。間違って買ってしまった・・。みなさんもご注意。

さらに、コイルから電圧を取り出すためのダイオードが必要になります。見落としがちだったのですが、ダイオードなら汎用のものが在庫あるしと思い、これを使っていましたが動作が不安定でした。結論から言うと、「ショットキーバリアダイオード」が必要です。

汎用ダイオードでは、コイルの電圧が上がらず(本来なら3.3Vになるはずが2.89V付近)、MAX3535がとても不安定になりました。データシートによると3Vから動き出すので、それが原因でしょう。6台作ったうちの3台はきちんと動き、2台はハンダを温め直して動作するようになり、残り1台は全然動かない。で、動いてた2台が次の日には動かない・・。というような不安定さ。動くものがあるので、汎用ダイオードは疑わず、ひたすら表面実装のハンダを見直していたのですが、ショットキーバリアに変更したら、全て完全動作!

ショットキーバリアダイオードは、スイッチング速度が速いそうだ。

そんなわけで、DMXの絶縁、部品の種類もポイントです。

ハードとソフトの開発案件にUSBキーボードはいかが?(2)

Flashとデバイスを同時に開発するような場合、一般的にはFlashとデバイスを通信させて作ります。ですが、Flashの場合、デバイスとの通信は直接ではなく、間接的にサーバを介してしか通信できません。つまり、Flashの側でもデバイスと通信できるスキルが必要になり、Flashを作り込む場合も常に通信処理を気にしていなければなりません。

今回は実験的に、Flashとデバイスの同時開発の案件で、USBキーボードとして機能するデバイス+キー入力で動くFlashコンテンツを作りました。

結論から言うと、デバイスからFlashへの一方向の入力装置としてなら、この方法もアリです。Flash作業との切り分けがしやすく、細かい修正はありましたがメールでのやり取りで終わりました。納品先でのセットアップ作業も、USBの抜き差しだけで、起動する順番などがないのもメリットでした。

ひとつだけ、キーボードのNumLockで(テンキー付きキーボードか、テンキーなしキーボードか)、小さなトラブルがありましたが、テンキー部分は使わないことにして解決できました。

キーボードのキーでいろんな処理をするには、キーの数が足りるのか?、と思うかもしれませんが、たとえば、デバイスのボタンを押したら、”「A」>「スペース」>「Enter」の順にUSBキーボードを押したことにする”ということもできます。

外界からFlashへ信号を送り続けるのも、USBキーボードでできそうです。「A000」〜「A999」のように、「A」をヘッダにしたりして。

USBキーボードを自作するのは、ちょっと敷居が高いのですが、Flashの細かい調整を考えるとこちらのほうが楽かもしれませんね。

ちなみに、納品先ではセットアップが簡単なことが意外に気に入られました。USBを差せば動くので、違う部署の方にもプレゼンできたりしたそうです。

ハードとソフトの開発案件にUSBキーボードはいかが?(1)

PIC18F2550でUSB HIDキーボードを作ったことがあります。技術習得のために作ってみただけで何に使うかはあまり意識してませんでした。いま、PSoCでUSB HIDキーボードを作ってます。

FlashやProcessingなどの画面のGUIと、それを操作するデバイスを作る案件で、今回USB HID キーボードにしてみました。従来なら、シリアル通信するデバイスを作って、FlashやProcessingとやり取りさせるのですが、Flashでシリアル通信をするのは面倒だったり、シリアル通信のプロトコル仕様を決定してからFlashやProcessingで作っていくような作業になります。

こうなると、完全に分業することはできいし、開発にも時間がかかってしまいます。FlashやProcessingも通信させる処理を行うので管理が面倒ですし、マシンに負荷をかけることもあります。

そこでUSBキーボードにしたわけですが、FlashやProcessingではキーボードでシミュレーションやデバックができ、デバイスではどのキーを押すのか・どう押すのか(押したままにするのか、いったんキーを離して押すことにするのかなど)なども、デバイス側でどうにでもできます。入力のみの場合に限られますが、ひとつのいい方法だと思います。

PSoCのタッチセンサ感度の確認

Cypressからダウンロードできる、MultiChartというアプリ(シリアル通信で、センサーの状態をチェックできるツール)を使って、タッチセンサの状態をチェック。デバッグのときだけ必要なので、ユーザモジュールを使って、すぐに準備できて、すぐに消去できるのが気に入っています。しかも、MultiChartアプリが意外と軽くてスムーズ。色の変更とか、グラフを3Dにしたりもできます。

上の画像のグラフは、1つのセンサだけをチェックしていて、軽くタッチした(指が軽く乗っている)とき、ぐっと押さえるようにタッチしたとき、指が近づいたとき、などの確認です。これだけ、ビジュアルでわかりやすく確認できると安心。

AN2397(アプリケーションノート2397)からダウンロードできます。

Wednesday, May 19, 2010

PSoCでタッチセンサを「SmartSense」に移行するとき

こんにちは、マスラックスの久世です。PSoCの従来のタッチセンシング技術から「SmartSense」に変更するとき、PSoCのチップ自体も変更になりますが、周辺回路も少し変更になります。そのドキュメントがありましたのでメモしておきます。

CapSense® Migration to CY8C20xx6A from CY8C21x34 and CY8C20x34
--

「SmartSense」ってのがあるのはわかったんだけど、じゃ具体的にどうするんだよーって思ってたら、ちゃんとありました。回路が少し変更になります。

抵抗とコンデンサが必要だったのが、コンデンサのみになりました。コンデンサは「2nF」となっています。単位換算すると、「0.002uF」または「2000pF」。

PSoCのタッチセンシング「SmartSense」

こんにちは、マスラックスの久世です。PSoCでタッチセンシングするのにいくつか方法がありますが、「 SmartSense 」という便利なセンシング技術があります。これは、タッチの感度を自動的に調整してくれるもので、わかりやすいムービーがあります。


僕が便利だと思ったところの解説はつづきから。

MIDI-INのフォトカプラ

こんにちは、マスラックスの久世です。MIDI−INデバイスをつくったときのフォトカプラのお話です。

マイコンでMIDI信号を受け取る(MIDI-IN)には、フォトカプラを使います。こうすることでつなぐ機器を絶縁することができて、不慮の電気ノイズ、具体的には自作のデバイスでミスして電気が逆流してたり、どこかがショートしたことで全部が壊れてしまったりすることを、できるだけ防ぐことができます。

このフォトカプラは、何でもいいというわけではなく、高速にオンオフしても波形のレスポンスがいいことがポイントです。マスラックスでいつも使用するフォトカプラは「TLP513」です。他にもいくつか使えるものはありますが、入手しやすいのでこれにしています。

比較的安価で一般的なフォトカプラ「TLP521-1」との違いはつづきから。

Monday, May 17, 2010

タッチセンシング

こんにちは、マスラックスの久世です。

僕はこれまで、PICを中心に扱ってきました。「マイコンってどれも同じでしょ(MacかWindowsかみたいな)」って思ってたのですが、最近タッチセンサをリサーチしていて、PICにもタッチセンサソリューションはありますが、他のAVRやPSoCのタッチセンサソリューションのほうが便利そうな気がしたので、少しPICを離れてまずはAVRをやってみました。

AVRの次にPSoCもやってみました。最終的にPSoCを使うことにしたのですが、詳細はつづきから。

ごあいさつ

ここではマスラックスが関わらせていただいたお仕事や、それにまつわるメモを紹介していきます。マスラックスのお仕事は「デザイナーやアーティスト、それを目指す学生のためのエンジニア」です。と言っても全然わからないと思います。。少し変わった案件のお仕事をさせていただいているので、ひとことでは言えない仕事内容を具体的に解説しながら、みなさまへ伝わりやすくしていきたいと思っております。どうぞよろしくお願いいたします。