Arduino 6) トラッキングセンサーを使ってみる。
2016.12.03
トラッキングセンサーを使ってみます。
どこまでの接近に使えるんでしょうかね?

LCDもつなげているので5Vはブレッドボードなどを使って分岐
KY-033トラッキングセンサーの配線
G ----- ArduinoのGNDへ
V+ ----- Arduinoの5Vへ
S ----- ArduinoのD2へ


海外で既に出回っているコードを流用し、
自分流に変更。



結果



指だと触れるところまでいかないとダメ。
シルバーの金属であれば、およそ2cmで反応。
鏡の場合は、およそ3cmくらいで反応。
黒のものは全く反応しない。

使いどころが難しいセンサーだわ。
中華リングライトの弱点みつけたり
2016.11.29
先日買った中華リングライトについての追記
前にテストしたカメラは、
物撮り用として部屋に置いている
Nikon D40 + AF-S DX Zoom-Nikkor 18-55mm f/3.5-5.6G ED II
でした。

今回仕事用に使っている愛機の
Nikon D800 + AF-S NIKKOR 24-70mm f/2.8G ED
に付けてテストしたところ、残念な結果に・・・

↓24mm F2.8で撮影


そりゃぁもう壮大にケラレてますねw
ま、D800だとトリミング出来るだけの画素があるので使えないって程ではないですが・・・

参考までに60mmのマクロで使ってみると
Nikon D800
+ Ai AF Micro-Nikkor 60mm f/2.8D




ケラレてませんね。
マクロレンズだと被写体に纏わり付いたホコリも写しちゃってます(;´Д`)
60mmマクロでフルサイズ撮影ができれば、24-70でマクロ撮影することは余りないので、
ウチでは取り合えず問題はなさそう。

広角レンズしか持ち合わせていない人や、フルサイズで
AF-S NIKKOR 28-300mm f/3.5-5.6G ED VR
のような便利ズーム一本で勝負してる人は要注意かも。
APS-Cの人は迷いなく買って損はないわ。
Arduino 5) タイマー処理を考える。
2016.11.28
タイマー処理は特定の周期でプログラムを実行させたいときにとても便利な機能です。
単純に待ち時間を設けたいだけならdelay()を指定するだけでいいのですのが、
プログラムが複雑になってくるとコードが汚くなるだけでなく、
正確なタイミングでコードを走らせることも難しくなっていきます。

そこでタイマーによるインタラプト処理を試してみました。

MsTimer2.zip
http://playground.arduino.cc/Main/MsTimer2



このコードを作るに当たって、ちょっと悩みました。
LCDの表示をtimercount()内に記述しても実行されないのです。
なぜかスルーされます。
loop()内に書くことで上手く表示されました。
追求すると沼にハマりそうなので、ここはそういう物という理解でいきます。



ただ、Windows系のプログラムに慣れてしまうと、これだけではちょっと物足りないですね。
できれば、タイマーを複数同時に走らせたいところ。
そこで調べてみると、複数同時に動かせるライブラリがあるようですね。
マルチタスクが実装されていないArduinoでどのように実現しているのでしょう?

Metro-Arduino-Wiring-master.zip
http://playground.arduino.cc/Code/Metro

2つ同時に動くタイマーを記述してみました。
どこまで正確に時を刻んでいるかは謎ですが、うまく機能しているようです。





でも、求めている物が微妙にちがう。
このライブラリは割り込みが起きたときのフラグを保持して
loop()内で判別して処理するというもの。
こうなるとloop()内に重い処理を書いてしまうと、
正確な時間を刻むことは難しい。
一長一短ですねぇ。
結局は最初に実験したMsTimer2.hを駆使し、
コーディングでなんとかするしか無さそうです。

先人のソースコードを沢山読み解けば
もっといい書き方があるのかもしれませんが・・・
2016.11.28 22:15 | 固定リンク | Arduino

- CafeNote -