気の向くままに辿るIT/ICT
webzoit.netウェブサイトホームページ
IoT・電子工作

Arduinoで『鳥さんトリあえず距離トリたい装置』を作る

ウェブ造ホーム前へ次へ
サイト内検索
カスタム検索
Arduinoって?

Arduinoで『鳥さんトリあえず距離トリたい装置』を作る

Arduinoで『鳥さんトリあえず距離トリたい装置』を作る

2017/04/11

 Arduinoを使って鳥避け(除け)装置『鳥さんトリあえず距離トリたい』を作るページ。

 ベランダにヒヨドリからカラスまで鳥たちがよく遊びに来てくれ、とても、かわいいし、生態系上、食物連鎖上、致し方ないのだが、極小菜園の花や実を全部食べられたり、カーテンを開けるとガラス越しに間近にカラスと対面することが度々あると、ちょっと照れる?から関係を見直す?ためにも、もうちょっと距離をおいて冷却期間?をとりたい。

 鳥避けは、Arduinoを使ったIoT・電子工作を1ヶ月前に始めようと思うに至った理由の1つでもあり、調べてみると鳥に限らず、鳥獣は、音に驚くのは人間も同じでわかるが、なぜか青色LEDを嫌うらしい、また、カラスなど鳥は体内磁石を持っており、天候によっては外部の磁石で体内磁石が狂って方向音痴になったりもするらしいが、巣を作られているわけではないので磁石は意味ないか。。。

 キーは、音、青色LED、磁石か。。。

 ということで、まず、検証時、マイコンには、Amazonマーケットプレイス激安店HiLetgoのArduino UNO R3互換機を使い、ブレッドボード上に焦電(PIR/人体感知/人感)センサーHC-SR501で検知したら複数(とりあえず5個)の青色LEDがランダムに点灯する部分を作ってみた。

 どうも青いLED、色がうまく映らないな。。。(ちなみに自身初のYouTubeアップロード。)

 センサーの感度は、写真上部HC-SR501の上側にあるオレンジ色の左側のポテンショメータで最長範囲3m〜7m、右側のポテンショメータで持続時間を調整可能とのことで今回のバルコニーの場合は、3mあれば十分そうだ。

const int pir = 2;
const int led1 = 13;
const int led2 = 12;
const int led3 = 11;
const int led4 = 10;
const int led5 = 9;
const int led_pins[] = {led1, led2, led3, led4, led5};
const int num_of_led_pins = sizeof(led_pins) / sizeof(led_pins[0]);
 
void setup() {
 pinMode(pir, INPUT);
 Serial.begin(9600);
 for (int i = 0; i < num_of_led_pins; i++) {
  pinMode(led_pins[i], OUTPUT);
 }
}
 
void loop() {
 int led_light = led_pins[random(num_of_led_pins)];
 
 if(digitalRead(pir)) {
   digitalWrite(led_light, HIGH);
   delay(100);
   digitalWrite(led_light, LOW);
 }
}

 作ったと言っても回路は、220Ωの抵抗と青色LEDを連ね、抵抗にプラス、LEDのカソードにマイナス、焦電センサーのOUTを任意のデジタル入力ピン、VCC、GNDをそれぞれプラス、マイナスにつないだだけ、スケッチも人感センサーが届いたので遊んだと趣向を凝らしたLチカ4桁7セグメントLEDで始めるArduinoの融合であり、ほぼそのまま使わせて頂いた(感謝)。

 とりあえずは、実装時には、Pro Miniを使い、フクロウがいるわけでもないので暗くなったら機能させないように後日届く予定の光センサーを加えて、ユニバーサルボードにハンダ付け、電池で動かし、100円ショップあたりでクリアケースを調達、これに収めようと思っているが、まずは、ブレッドボードのまま試し、別途、Liveカメラ(Raspberry Pi/Raspbian+USBカメラ+motion)で日中撮っておいてLEDだけで十分か否か見極めてから実装したいところ。

 ということでPro Miniに置き換え、400穴ブレッドボードと電池ボックスとスリム化して仮設置して(ただ、置いて)みているが、洗濯物を干したりすれば人にも反応してしまうものの、鳥がベランダ付近を飛んでいるとLEDもちゃんと光り、機能している様子、たまたまなのか、近くの木々は相変わらず賑やかなものの、目視できる限りにおいては、今のところベランダへの飛来はなく、カラスとのお見合いもない(会えなきゃ会えないで寂しい!?)。

 ここまでの想定における費用は、個数・金額不問で送料無料の激安互換機ほかを使っている為、Pro Miniが265円、人体(・鳥獣)感知焦電・赤外線センサー145円、光センサー(フォトレジスタ)は単品でも安いが2000円の37センサーキットにあるものを使うと単純計算で50円ちょっと仮に60円として、LEDは3mmx100個130円(5mmx100個でも330円)だから5個使うとして1.3x5=約7円(3.3x5=約17円)、ユニバーサルボードは50mmx70mmx10枚で135円(70mmx90mmx5枚で260円)、1枚まるまる使うにしても約14円(52円)、人件費や器具使用、配線コードや微量なはんだほか雑費は無視するとして約491円〜539円+ケース+電池ボックス+電池、設置場所によってはプラス部材費。

HiLetgo Pro Mini互換機 ATmega328P 5V 16MHz

HiLetgo 人体赤外線感応モジュール HC-SR501

HiLetgo 感光性センサー/光抵抗体モジュール 4ピン

HiLetgo LED 3mm 5種x20個(100個)

HiLetgo ベークライトDIYプロトタイプボード PCBユニバーサルブレッドボード 5x7cm(10枚)

 青色LEDは3.3Vだと微妙なので5V程度使うと仮定、この回路なら整流ダイオードは不要としてトランジスタ(アソートセット170個265円、仮に1個2円)を使えば、電池は1.5V(トランジスタの選定次第で充電池1.25Vでも可)の単3や単4x2本か3VのCR2302ボタン電池x1個、それ用の電池ボックスで済むと思われ、CR2302は100均で2個100円でもあるので50円、今回買ったCR2302用フタ付き電池ボックスは5個300円、1個60円、ということでこれらを使うと仮定すると約112円プラスで603円〜651円+ケース(あれば小さなフタ付きクリアボックスがベスト?)代+設置場所によって部材費と、これだけなら1000円以内に収まりそう。

 LEDだけでいければ、音は使うまでもないが、必要なら以下のように想定している。

 やはり、後日届く予定の37種類のセンサーキットには、マイクロフォンモジュールやアクティブブザー、パッシブブザーもあるので、今時点、できるのか否か不明だが、メロディだと近所迷惑だろうから鳥の声をそのままオウム返しが賢明と思うが、音については、それから考えたい。(SDカードを使う必要ある?もしくはラズパイZeroの方が無難?)

 磁石については、営巣しているわけではないし、方向音痴にさせるのも気の毒なので今のところ使うつもりはない。

 夏場は輻射熱含め、暑さのあまり日除け(農業用遮熱)シートはするようになったものの、鳥除けネットは一年中となると、ちょっと目障りな気がするし、間違ってひっかかって羽を傷めたらかわいそう(なんてことはないか?)なので少なくとも今は考えない方向で。

 当初、屋外使用を想定しているので太陽光はもちろん、蛍光灯でも充電できる程度のソーラーパネルと電気積層コンデンサかリチウムイオン電池などを使って自家発電・蓄電、なんなら二次電池も載せて放置しておけるようにした方がよいかなと思ったが、よく考えてみたら、自然放電は別として常時ONじゃないわけだから電源は電池で十分か。

あれ?鳥が。。。

2017/04/22

 あれから3〜4日ほど試作品を外に置いた際、近くにたくさんいるものの、全く鳥がベランダまで来ない、ただ、その後、置くのをやめてみてもベランダまでは来ない。。。家に来るのに飽きたのか?効き目があったのか?よくわからない。。。

再動作確認

// Func flg
const int sigWork = 6;
// Input Pin of PIR Sensor
const int pir = 2;
// LED Pins
const int led1 = 13;
const int led2 = 12;
const int led3 = 11;
const int led4 = 10;
const int led5 = 9;
const int led_pins[] = {led1, led2, led3, led4, led5};
const int num_of_led_pins = sizeof(led_pins) / sizeof(led_pins[0]);
 
void setup() {
 pinMode(pir, INPUT);
 pinMode(sigWork, INPUT);
 for (int i = 0; i < num_of_led_pins; i++) {
  pinMode(led_pins[i], OUTPUT);
 }
}
 
void loop() {
 int led_light = led_pins[random(num_of_led_pins)];
 
 if(!digitalRead(sigWork)) {
  if(digitalRead(pir)) {
    digitalWrite(led_light, HIGH);
    delay(100);
    digitalWrite(led_light, LOW);
  }
 }
}
2017/06/04

 鳥達のさえずり大合唱は相変わらずで心安らぐも、あれ以来、ベランダに鳥はすっかり来なくなって放置していた、この装置、場所を移動したりした際などに配線が変わってしまったのか、なんとなく電池をつないでみると、なぜか動かず、再確認しつつ、Pro MiniのLEDが慌ただしくなってきたのでマルチメータで電圧を測ると4.7V程度と5VのPro Miniに対し不足気味、しばしば電池ボックスごと他の検証で使うことも多々、というわけで電池も交換、というか、これが原因だったっぽい。

 ついでに37センサーキットにあったCDSを使ったフォトレジスタモジュールも追加、そのままだと暗くなると機能してしまうので逆に暗くなると機能しなくなるようにスケッチに追記・編集してみた。

 こんな感じだから今のところ、基板実装するほどでもなく、400穴ハーフサイズのブレッドボードのまま、微妙な位置関係からフォトレジスタはミニブレッドボードに追加、あと先の動画から言うとUNOからPro Miniに置き換えたものとなっている。

 動画は、フォトレジスタモジュールを手のひらで覆うと機能しない様子を撮ったものも、微妙に薄暗くて見えづらいが、自作アームスタンドの上段にSR501 PIR・赤外線検知センサー、中段が白い400穴ブレッドボード上のPro Mini、5つの青色LED、その下が白いミニブレッドボード上のフォトレジスタモジュール、下奥が単3x4の電池ボックス。

 ちょっと大きくなってしまうが、100均あたりで10cm四方程度のケースがあれば、それに収めることで一応、試作品完成と言えるだろう。