2012年11月20日火曜日

CNZ1023 (フォトインタラプタ) + Arduino

 

フォトインタラプタ、あるいはフォトセンサなどと呼ばれるセンシングデバイスをArduinoで使う実験です。このデバイスは、LEDとフォトトランジスタを一体化したパッケージになっており、物体が近傍を通過することでLEDの光がフォトトランジスタで受光されたり、あるいは遮られたりする、その状態変化を電気信号として出力します。

LEDとフォトトランジスタが向かい合わせになっていて、その間を通過する物体を検知するタイプを「通過型」、LEDとフォトトランジスタが同じ面を向いていて、物体が反射するLEDの光を検知するタイプ「反射型」といいます。今回使ったのは「通過型」のCNZ1023、秋月で10個入り300円50個入り800円で手に入るお安いパーツです。

接続は下図のとおり。outはArduinoのDigial 2pinに接続しています。

 

まずは普通にポーリングで信号を取るコード。センサの間隙に紙とかキャッシュカードを入れると、シリアルに出てくる値が変わります。実用的にはDigital inを使うことが多いと思いますが、単純なセンサの実験としては、Analog inで値をとってみるのも面白いです。


次に割り込みを使うコード。
  • 物体が入る → 光が遮られる → フォトトランジスタがOFF → 出力がfallする
  • 物体が出る → 光が届く → フォトトランジスタがON → 出力がriseする
この二つを取っています。

2012年11月7日水曜日

Processing で Webカメラが使えないとき

ProcessingでUSBにつないだWebカメラを使おうと思って、どっかからコードスニペットを拾ってきて、「動かねー!」ってなってるとき。
だいたい「Processing カメラ」とかで検索して「WinVDIGを入れろ」とか「バージョンは1.0.1にしろ」だとか「problem connecting video output to video renderer って出る」とか・・・
なんですけど、ちょっとストップ。
実はこれら、みんなProcessing 1.x系のtipsです。2.0からWebカメラの使い方が変わってるので、上のような情報はスルーしてください。
1.xだったら、Webカメラを使うときは

というように書いていましたが、
2.0からは

という風になります。

2012年9月10日月曜日

[Processing] ちょっとしたテキスト素材



Arduinoがらみのこともやりたいんですが、なかなか時間がないので、先日ちょっと必要が生じて作ったProcessingのコードをメモっておきます。

楽曲のタイトルを表示させるためのループVJ素材です。Lightestとかで合成するといい感じになります。

コードは突貫なのでいろいろ汚いのはご容赦ということで。


2012年8月3日金曜日

TLC5940 + Arduino



Arduinoでは、LEDを点灯するときPWM出力で簡単に輝度を制御することができます。PWM出力ピンはArduino UNOあたりだと6個ほどあるわけですが、ピン1本にLEDを1個ずつつけていたら、貴重なピンの無駄遣いです。

マイコンを使ってたくさんのLEDを点灯する回路ではマトリックス方式が有名ですが、制御回路とラッチを組み合わせて、一つひとつ輝度値を書き込んでいく、なんて方法もあります。

そんなことを考えながら千石電商を探していて見つけたのが、TLC5940というPWM制御IC。ArduinoのPWM Shieldに使われていたり、ARDUINO PLAYGROUNDに記事があったり、その界隈では名の知れたデバイスなんだなぁ、と思っていたら、ちゃんとライブラリがあるんですね。

というわけで実験。

(1) ライブラリのインストール

こちらからダウンロード。
解凍したフォルダをArduinoのインストールフォルダの下のlibrariesの下へ置く。

(2) 回路

接続は下図のような感じで。
またFritzing使って描きました。TLC5940のパーツは登録されてなかったので、ICをインスペクターによる編集で、ピン数追加とピン名付加を行いました。



4.7kΩの並列は2kΩの代わりです。
LEDは基板に並べられるだけ並べて12個です。

(3) プログラム

12個のLEDを端から順番に点灯させるようにします。点灯したLEDはすぐに消えずに、徐々に暗くして残像のような効果を残してみます。

OSTA71A1DのようなフルカラーLEDと組み合わせても面白そうです。注意すべき点は、アノードコモンを選ぶ必要がある点です。
デイジーチェーン接続もできてチャンネルたくさん増やせるし、PWM制御自体、LED点灯に用途を限るものではありません。夢が広がります。