忍者ブログ

設備のマニアどっとこむ

IoT開発、設備・DIYのブログ!

ラズパイで庭の野良猫退治

最近家の庭の野良猫がひどい。 ベビーカーに放尿するわ、コケ庭は荒らすわで困っていた。
以前の記事「庭に来る猫対策」で、OpenCVで猫の顔を特定するというのをやったんだけど、猫の顔をカメラで認識するだけで特にその後はアクションしていなかった。

今回はもう一歩すすんで猫対策をしてみようと思う。猫を認識したら水をかけてみることにした。

そもそも猫に水なんてかけていいのかな? 虐待にならないか心配なので区のホームページを見てみた。

http://www.city.ota.tokyo.jp/seikatsu/hoken/pet_dog_cat/aigo/hun.html

虐待にならない範囲であれば水はかけてもいいらしい。

ラズパイでは5Vか3.3Vしか使えないのでUSB出力からポンプで水を出すことにした。




ラズパイでUSBをON、OFするのには以下のコマンドでできる。

sudo hub-ctrl -b 1 -d 2 -P 2 -p 0

最後のpのあとの数字を0にするとOFF、1にするとONになる。

sudo hub-ctrl -b 1 -d 2 -P 2 -p 1

あとでpythonで使用するためとりあえずシェルスクリプトにしておきます。

usbon.shがON
usb.shがOFF  

これを呼び出してUSBをON、OFFしていきます。 ここで気を付けなければいけないのですが、OpenCVでUSBカメラを使用すれば当然USBをOFFしたときにフリーズしてしまうのです。
(個別にUSBポートをOFFするのは断念してしまった・・。)

そこで今回、夜間使用することもあってか赤外線カメラを使用することにした。
USBではなく、ラズパイカメラ用のケーブルを使うのでUSBを気にせず使えます。


ラズパイとモバイルバッテリーをくっつけるとこんな感じです。


ラズパイカメラを使うにはpicameraのインストールが必要です。

pip install picamera

↓夜の庭でも画像はばっちり。


続いてコードです。


猫の学習モデルはこちらの記事を参考にしてください。
この行でフルパス指定してください →  '/home/pi/opencv-3.1.0/data/haarcascades/cascade.xml'


import numpy as np
import sys
from picamera.array import PiRGBArray
from picamera import PiCamera
import cv2
import time
import os
FRAME_W = 800
FRAME_H = 800
os.system('sudo sh usb.sh')
cascPath = '/home/pi/opencv-3.1.0/data/haarcascades/cascade.xml'
faceCascade = cv2.CascadeClassifier(cascPath)
camera = PiCamera()
camera.resolution = (FRAME_W, FRAME_H)
camera.framerate = 32
rawCapture = PiRGBArray(camera, size=(FRAME_W, FRAME_H))
time.sleep(0.1)
for image in camera.capture_continuous(rawCapture, format="bgr", use_video_port=True):
    frame = image.array
    
    
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    gray = cv2.equalizeHist( gray )
    
    faces = faceCascade.detectMultiScale(gray, 1.1, 3, 0, (10, 10))
    
    
    for (x, y, w, h) in faces:
        
        cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2)
        os.system('sudo sh usbon.sh')
        time.sleep(3)
        os.system('sudo sh usb.sh')
        cv2.imwrite('cat2.jpg', frame)
        
    frame = cv2.resize(frame, (800,800))
   
    cv2.imshow('Video', frame)
    key = cv2.waitKey(1) & 0xFF
    rawCapture.truncate(0)
    if key == ord("q"):
        break
cv2.destroyAllWindows()

猫のフレームを検知した場合、あらかじめ作ったシェルスクリプトでポンプをON、OFFしています。 ついでにcv2.imwrite('cat.jpg', frame)でcat.jpgという画像を保存することができます。


これで猫がきたら・・・。



チョロチョロチョロ・・・。






share

  • 新築の建売住宅買ったよ
    1新築の建売住宅買ったよあけましておめでとうございます。今年もよろしくお願いします。 年末バタバタと住宅を購入してました。 最近はプログラミングの記事ばかりでしたが、一応自分の設備を手に入れた!というところで 建売住宅の記...2025-01-04 00:55
  •  ATOMS3R カメラキットで簡単無線webカメラ
    2 ATOMS3R カメラキットで簡単無線webカメラ先日M5stackコンテストに参加しました。スイッチサイエンスさん主催で作った作品をProtoPediaに応募しました。 →応募作品について 入賞はできませんでしたが、毎回豪華な参加賞がもらえます。...2024-09-29 05:16
  • ENS160+AHT21基板で二酸化炭素濃度計をつくった話
    3ENS160+AHT21基板で二酸化炭素濃度計をつくった話ラズパイでさまざまなセンサーを取り扱ってきましたが、CO2センサーはやってていなかったので買ってみました。 CCS811が主流みたいですが、後続版?のENS160の基板を購入しています。 https...2024-07-15 03:41
  • chatgptのapiをラズパイで叩く
    4chatgptのapiをラズパイで叩く最近gpt4oが出たみたいで今までやってなかったchatgptのapiを叩いてみることにしました。 ラズパイだと簡単に… てわけでもなかったです。 まずはopenAIのアカウントを作成し、APIキー...2024-05-19 08:44
  • ラズパイ5でスケボー少年を検知する
    5ラズパイ5でスケボー少年を検知するラズパイ5用のケースと電源をやっと買いました。 ケース  電源 ↑Amazonリンクなんですが、最近は画像が貼れません… ケースはファンがついていてかっこいいですね… 起動時とCPU温度が高いときに...2024-04-06 01:39
  • ラズパイ5が5V5Aじゃなくても動いた話
    6ラズパイ5が5V5Aじゃなくても動いた話ラズパイ5やっと手に入れました。4GBバージョン。スイッチサイエンスで11,770円でした。 久々のセットアップですがいままでと変わりませんでした。 マイクロSDカードをPCにつなぎにラズパイOSを...2024-02-23 14:03
  • AIでゴルフスコア100切りがいつになるか予測する。
    7AIでゴルフスコア100切りがいつになるか予測する。そろそろラズパイ5が出るというのに最近ゴルフばっかりやってあまり電子工作はやっていませんでした。 すごい下手だったのですが最近ようやく普通にまわれるようになってきました。 そこでいままでの経緯をちょ...2023-10-01 11:30
  • Tiktokライブのギフトといいねでラズパイを操作する
    8Tiktokライブのギフトといいねでラズパイを操作するTwitterやslackのAPIはよく叩くのですが、TiktokのAPIはまだだったのでやってみました。 ライブ中にいいねやギフトがきたらLEDを光らせます。 @ultimatemasashi #...2023-08-10 14:09
  • arduino uno r4でゴルフボール押し出し機を作った話
    9arduino uno r4でゴルフボール押し出し機を作った話arduino uno r4でまた何かつくってみました。   @ultimatemasashi #ヒカキンボイス #arduino #ゴルフ #パター #golftiktok ♬ オリジナル楽曲 -...2023-07-29 01:47
  • arduino uno r4で時間になったら自動でキーボード入力する
    10arduino uno r4で時間になったら自動でキーボード入力するarduino uno r4買ってみたのですが、やっぱりwi-fi繋ぎたいなぁということで、イーサネットシールドとWi-Fiルーターつけてみました r3で使ってたものなんですが問題なく接続、動作しま...2023-07-08 06:50

拍手[1回]

PR

コメント

翻訳(Translate)

プロフィール

HN:
佐々木 雅史
性別:
男性
自己紹介:
2021年 ラズパイ、M5stackを用いたIoT開発を専門で受注するアルティメンテを設立。代表を務める。
・2020年ラズパイコンテスト優良賞受賞
・設備系資格多数(電験3種、消防設備士甲4、2級ボイラー技士、危険物乙4、電工2種、技術士補(電気・電子)、エネ電、フォークリフトなど)

AD

カレンダー

03 2025/04 05
S M T W T F S
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30