openFrameworksとEnttec DMX USB Proを使ってDMX送信するにはKyle McDonaldの開発したofxDmxがあるのでとても重宝していたのだが、実はofxDmxは送信のみで受信ができない。
Develop
All posts in this category.
ofxFlowToolsは流体映像を生成するopenFrameworksの強力なアドオンだ。様々なパラメータを調整することで、粘りのある流体から墨汁のようなものまでかなり幅広い表現を実現することができる。
すでにPIC24(CCSコンパイラ)用に移植したDMX受信プログラムをXC16コンパイラ用に修正した。回路図(下図をクリックして拡大)は前回の記事とほぼ同じだが、PWM出力のピンが異なる。この回路はバイオメタル制御用に開発したので定電流源IC(TICx)やFET(Qx)なども追加している。
これまで8bit PIC(PIC16FシリーズやPIC18Fシリーズ)を使ってDMX受信を行ってきたが、制御系を一新する意味で16bit PIC(24FJ64GA002)で設計し直すことにした。8bit PICと16bit PICでは異なる部分が多かったがなんとか移植に成功した。
ArduinoやPICでは処理が追いつかなくなったのでARMベースのデバイスを実験。まずはRaspberry PI。私の目的であるOSC受信を行うためにはpyOSCという選択肢もあるが、最近openFrameworksでいろいろプログラムしているので、Raspberry PIでも動くのではと思ったら、普通に公式サポートしてますね。サイトの通りにインストールして問題なく動作。下図は、polygonExampleの動作実験。
Arduino UNO R3とWIZ820ioの接続に関しては、スイッチサイエンスのサイトの通りで問題ないが、Leonardoになってからは接続方法をかえる必要がある。UNOからLeonardoの仕様の変更点はココを参照。基本的な情報はスイッチサイエンスのサイトにまかせて、ここでは変更点のみ記載する。
以前の記事でArduinoを使ってEthernet ShieldとTLC5940NTを使う方法を書きましたが、その改良版でもあります。結局Arduino1つで2つのハードウェアSPIは不可能なので、Arduinoを2つ使ってArduino同士はI2Cで交信する方法に落ち着きました。I2Cの速度がボトルネックにはなりそうなのでまだ要実験。やはりI2Cの速度がボトルネックで7CH程度でちらつきが起こった。やはりArduinoではEthernetとTLC5940を同時に運用するには無理があるようだ。次はRaspberry PIやmbedを使ってみる。(2013.9)
これまではPICオンリーでしたが、やっとArduinoに手を出し始めました。それで早速問題発生。Arduino UNO R3とEthernetシールドとTLC5940を使ってみようとしてArduinoの仕様を確認せずにやっていたら、UDP通信とTLC5940がどうしても両立しない。と、思っていたら海外に対処方法がありました。以下にまとめます。
私の作品のHimawari、plant、Tentaclesでは、電圧のPWM制御により形状記憶合金の熱制御を行っている。この多chの電圧のPWM制御のためにはマイクロコンピュータのPIC(Microchip Technology Inc.)で開発したデバイスを用いている。
openFrameworksを使ってみた。今までちょっと腰が引けてたのだが、少し余裕ができたので触ってみた。感想は予想以上に使いやすい。プログラムの作業感はProcessingとほとんど変わらない?上に、実行速度が格段に早く、基本がC++なので逆に自由度が高い。