2016年6月30日木曜日

電動水鉄砲で猫よけを作る方法


「猫がおしっこをする場所があるので何とかしたい」という声があったので、電動水鉄砲とセンサで猫よけを作ってみました。
面白かったので、作り方を紹介します。

なお、材料費だけで5000円位するので、下記のような超音波タイプで事足りるのであれば、そちらをお勧めします。


トゲトゲも効果があると思います。


この記事ではUSBポートが付いていないProMiniを使っていますが、micro USBポートが付いていてプログラムを書き込みやすいProMicroを使って回路を組みました。
こちらの方が小さくまとまって良いと思うので、実作を検討される方はこちらもご参照ください。

猫よけ水鉄砲用回路ProMicro利用版

材料



道具

  • 電動ドリル + 歯6.5mm、4mm
  • ハンダゴテ + ハンダ
  • ワイヤストリッパー
  • ラジオペンチ
  • ドライバー
  • テスター
  • 糸ノコ

作り方

水鉄砲の改造

ネジ9本を外して、分解します。


銃口部分は接着されていたので、こじ開けました。


外装を開きました。


トリガーでスイッチを押すことで、電池の+とモーターを接続する仕組みになっていました。


電池の+-、スイッチのモーター側に接続するワイヤを20cm位それぞれ準備します。


プラスチックが溶けるのを防ぐために、電池の端子はケースから外してハンダ付けしました。


ハンダ付けできたら、端子を元に戻します。


どこからワイヤを引き出そうかと考えていた所、外装の穴を塞いでいたパーツを発見したため、そのパーツを取り外して穴を確保しました。
まるで改造用に準備されたかのような穴です。


本体上部にセンサを設置するため、上部に出っ張っている標準器を組み立てる前に取り外します。
センサの設置場所については、本体下部の方が見た目は良くなるのですが、水が垂れて故障しそうなので上部にしました。


穴からワイヤを引き出しつつ、外装を閉じます。


閉じました。


+-の接触による短絡(ショート)を防ぐために赤と黒の配線をピンヘッダにハンダ付けしました。


水鉄砲の改造は以上です。

回路の作成

このような回路にしました。


実際に組み立てるとこうなりました。


それぞれ説明していきます。

電源

スイッチがONになると、回路に6Vと3.3Vを供給します。


Arduino

3.3VとGNDを接続します。
また、モータ制御にD10を、センサ値の読み取りにD11、D12を使用します。


水鉄砲(モーター制御)

フォトカプラとリレーを組み合わせて、ArduinoのD10からの信号によって水鉄砲を動作させます。
フォトカプラ保護のために、1KΩの抵抗を接続しています。


ややこしいので、リレー単体や、Arduinoとフォトカプラなど、部分的に動作確認しながら回路を作るのが良いと思います。

センサ

猫と人を区別するために、人感センサを上下に設置し、下のセンサだけが反応した時に猫が来たと判断します。
D11で上向きのセンサ、D12で下向きのセンサの値をそれぞれ読み取ります。


プログラムの作成・書き込み

このような振る舞いをさせます。

  1. 5秒毎にセンサの値を取得
  2. 下のセンサにだけ反応があった場合、2秒間水鉄砲を発射

cat_watcher
#define MOTOR_PIN       10
#define UP_SENSOR_PIN   11
#define DOWN_SENSOR_PIN 12
#define LED_PIN         13

boolean up_sensor_val   = LOW;
boolean down_sensor_val = LOW;

void setup() {
  // Serial.begin(9600);
  pinMode(MOTOR_PIN,       OUTPUT);
  pinMode(UP_SENSOR_PIN,   INPUT);
  pinMode(DOWN_SENSOR_PIN, INPUT);
  pinMode(LED_PIN,         OUTPUT);
}

void loop() {
  digitalWrite(LED_PIN, HIGH);
  up_sensor_val   = digitalRead(UP_SENSOR_PIN);
  down_sensor_val = digitalRead(DOWN_SENSOR_PIN);
  // Serial.println(up_sensor_val);
  // Serial.println(down_sensor_val);
  delay(10);
  digitalWrite(LED_PIN, LOW);

  if ( up_sensor_val   == LOW &&
       down_sensor_val == HIGH ) {
    // Serial.println("ON!");
    digitalWrite(MOTOR_PIN, HIGH);
    delay(2000);
    digitalWrite(MOTOR_PIN, LOW);
    delay(3000);
  } else {
    // Serial.println("OFF");
    digitalWrite(MOTOR_PIN, LOW);
    delay(5000);
  }

}


組み立て

回路を入れるケースは、センサを出す部分を糸ノコで切り取ります。


センサと反対の面に電動ドリルで6.4mmと4mmの穴を開け、スイッチと配線を設置します。


センサはダンボールとビニルテープで固定しました。
写真はテープを貼る前の様子です。


ケースのフタを閉じ、ネジを閉めます。


水鉄砲にケースを固定し、ワイヤを接続します。


水鉄砲とケースの間に隙間があったため、ダンボールを挟みました。


上部のセンサ反応領域はビニルテープなどを貼って調節してください。


電池を入れてスイッチをONにすれば、動くはずです。

動作確認

設置しました。


動作の様子はこちらです。


背の低いものが近づくと動作します。


背の高いものが近づいても動作しません。


たまに誤動作します。


以上です。
不明点があれば、コメントや問い合わせフォームでご連絡ください。
この情報が何かの役に立てば嬉しいです。

参考

人感センサーが届いたので遊んだ

変更履歴

2018.01.10
材料の紹介に、Arduino Pro Miniへの書き込み方法のリンクを追加しました。
2019.05.12
ProMicroを利用して回路を作成したので、その記事の紹介を冒頭に追加しました。
電動水鉄砲のリンク先が売り切れになっていたため、在庫があるリンクに変更しました。
2019.06.23
作詞に利用したレギュレータの 取扱いが終わっていたので、代替品のリンクを追加しました。
猫よけ対策品として、トゲトゲのシートの紹介を追加しました。

11 件のコメント :

うぃりす さんのコメント...

これ、面白いですね!
作ってみようかな(^.^)

Asuki Kono さんのコメント...

面白がってもらえて嬉しいです。
お試しくださいな。

Unknown さんのコメント...

こんにちは。素晴らしいアイデアですね。真似をさせていただこうとしておりますが下センサーの感度を調整する方法ありますか? 自宅通路の構造上どうしても2m以下では反応させたくありません。 可変抵抗(?Ω)を入れて現場に合わせた調整ができればと思っています。 ご指南いただけると嬉しいです。

Asuki Kono さんのコメント...


こんにちは。
興味を持ってもらえて嬉しいです。

人感センサに抵抗を入れれば、期待される出力になるかは分かりません。
人感センサに比べると認識範囲が直線状になりますが、距離で判定したいのでしたら超音波センサを使うのはいかがでしょう?

別の提案として、水鉄砲とセンサを分けて設置するのはどうでしょうか?
自分の作った装置は水鉄砲とセンサを一体化させていますが、配線を伸ばしてセンサを遠くに置いておけば、その位置から対象物を認識する装置ができるとおもいます。

参考になれば嬉しいです。

TK さんのコメント...

無駄にハイテクな水鉄砲で面白い。
水鉄砲の音が迫力があって笑えました。

Asuki Kono さんのコメント...

楽しんでもらえたようで良かったです。

K Sakimura さんのコメント...

こんにちは。電子工作工作の超超初心者です。
猫のフン被害に困っており、このページにたどり着いて自分でも作ってみようと思っています。

ただこれまで電子工作に触れたこともなく、先日Arduinoのスターターキットを購入してLチカから勉強しているような段階で、掲載されている回路図を見てマネしようと思ってもよく分からない点があります。

というわけで大変初歩的な質問で申し訳ないのですが、レギュレータの左にある2つのパーツは何でしょうか?またこのパーツが必要な理由も教えていただけると大変嬉しいです。

Asuki Kono さんのコメント...

興味を持ってコメントしていただきありがとうございます。

レギュレータの横にあるのは、レギュレータに同梱されていたコンデンサ2種類です。
同梱されていたので部品表に載せていませんでした。

しかしながら、そのレギュレータの取扱は秋月電子で終了していたので、下記の部品で大体できます。
3.3V 500mA NJU7223F33
コンデンサ 0.1uf

疑問は解決しましたか?

Asuki Kono さんのコメント...

この記事ではPriMiniを利用していますが、別の記事でProMicroを利用した回路の作り方を紹介しています。
その記事だとレギュレータはProMicroに搭載されているものを利用しているので、先ほど共有した部品は不要です。
良かったらこちらもご覧ください。

猫よけ水鉄砲用回路ProMicro利用版

K Sakimura さんのコメント...

大変迅速にお返事くださりありがとうございます!!お返事遅くなってしまって申し訳ありませんでした。わざわざ代替部品まで教えていただいて感謝感謝です。またPromicro版の情報もありがとうございます。
何とか水鉄砲完成に向けて頑張ってみたいと思います。

Asuki Kono さんのコメント...

情報が助けになれば嬉しいです。
思っているものが作れると良いですね。