忍者ブログ

設備のマニアどっとこむ

設備、電子工作、DIYのブログ!

02/09

Sat

2019

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

最近家の庭の野良猫がひどい。 ベビーカーに放尿するわ、コケ庭は荒らすわで困っていた。
以前の記事「庭に来る猫対策」で、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という画像を保存することができます。


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



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







拍手[0回]

PR

01/27

Sun

2019

ラズパイでQRコードリーダーの作成

QRコードって、携帯アプリとか空港とかで使うイメージなのですが、カメラさえあれば割とあっさりラズパイでできました。

今回OpenCVとpyzbarを使っています。

このサイトを参考にしました。OpenCVのインストールについてはこちら参考にしてください。

OpenCVさえインストールできればさほど難しくないと思います。

QRコードを認識するpyzberのインストールをします。

 sudo pip install pyzbar

以下サンプルのソースコードです。
import cv2
from pyzbar.pyzbar import decode


cap = cv2.VideoCapture(0)

cap.set(cv2.CAP_PROP_FPS, 30)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1280)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 720)

while True:
ret, frame = cap.read()

gray = cv2.cvtColor(frame, cv2.COLOR_RGBA2GRAY)
data = decode(gray)
for symbol in data:
if symbol.type == "QRCODE":
print(data[0][0].decode("utf-8", "ignore"))

if cv2.waitKey(1) == 27:
break

cap.release()
cv2.destroyAllWindows()

python3で動かない場合はターミナルからsudo python ***.pyといった具合にpython2で動作させてください。


うまくいくとこんなコードをカメラが認識します。



このブログのURLがでてきました!!
・・・うまく使えば、QRコードで動作する電子錠とかつくれるかな??

QRコード自体はこちらのぺージで作成できます。

https://qr.quel.jp/?fbclid=IwAR2LqvnugdQ2gKPl2QSiCNJtj4B1KZ_XwD-qfODJGqZ2G79hBmOWPG2qqY4




ラズパイとWEBカメラ…  あとはオープンソースなのでQRリーダーはこんなに安くできるんですね。




拍手[0回]

01/03

Thu

2019

ラズパイでマイニングマシンを遠隔リブートして再開する方法

あけましておめでとうございます。みなさんマイニングやってますか? 最近ビットコイン暴落一直線でビビッてます。

はじめたころは1ビットコインあたり80万ぐらいだったのが今や40万程度… 完全に赤字です。 でも冬場は暖房になるのでしぶとくやってます涙  

今回は盛り上がっている(?)マイニングを遠隔でリブートして再開する方法をお教えしたいと思います。これでいままでトラブルがあったときは奥さんに再起動をお願いしていたのですが、これからは自分でできそうです。 もうこの状況では止めといたいいのかもしれませんが、まあ…聞くだけ聞いてってください。

まずラズパイの方ですが、こちらはBlynkで遠隔で接点を出せるようにしておいてください
→やり方はこちら

遠隔でラズパイの出力が出せる様になったら今度はSSRリレーを取り付けます。
DC3V以上で動作するものならなんでもいいと思います。
例えばこちら



SSRリレーの2次側はマザーボードのRESETのところへ接続します。


これで遠隔でラズパイからPCのリブートができるようになりました。

ただ再起動ができてもマイニングが立ち上がらないといけないのでその設定をしなければなりません。

①起動時にNiceHashを起動するようにする。
  • Windows ロゴ キー  + R キーを押し、「shell:startup」と入力して [OK] を選択します。これにより、"スタートアップ" フォルダーが開きます。
  • ファイルの場所からアプリのショートカットをコピーして、"スタートアップ" フォルダーに貼り付けます。
これだけです。NiceHashのショートカットをスタートアップフォルダに格納してください。

②自動でNiceHashがマイニングを始めるようにする。





NiceHashのCONFIGURE画面でAutostart miningを選択します。(これだけです)

ここまで設定しておけばBlynkで遠隔リブートすれば勝手にマイニングが継続できます。
奥さんにヘンなお願いする必要もなくなりました!!

ここで注意ておきたいのは、ラズパイ電源をマイニングマシンのUSBからとっていた場合、1回しかリブートできないのでは??と思っていたのですが、なぜかラズパイは停止せず何度もリブートできます。 なんどもやることはないと思いますが… Blynkのコマンドを毎回打つ必要がなくなり便利(?)です。

もはやDMMも撤退するマイニング事業ですが、参考になりましたでしょうか?
ここで関係ないですが、冬場にめっちゃ効くのど飴を紹介したいと思います。
ではでは










拍手[0回]

12/16

Sun

2018

slackにRaspberry piから画像を自動投稿する方法

最近出張が多くて家を開ける機会が多いです。出張先で家の様子をラズパイで確認する方法を考えました。



↓OpenCVで撮影してslackで画像を投稿するプログラムを組んでます。
import RPi.GPIO as GPIO
import sys
import cv2
import time
import requests
TOKEN = 'xoxp-******'
CHANNEL = '*******'
GPIO.setmode(GPIO.BCM)  
GPIO.setup(27,GPIO.OUT) 
GPIO.setup(17,GPIO.IN)  
while True:
    if GPIO.input(17) == GPIO.HIGH:
        
        cc = cv2.VideoCapture(0)
        rr, img = cc.read()
        time.sleep(8)
        cv2.imwrite('pic.jpg', img)
        files = {'file': open("/home/pi/pic.jpg", 'rb')}
        param = {
          'token':TOKEN,
          'channels':CHANNEL,
          'filename':"filename",
          'initial_comment': "initial_comment",
          'title': "title"
        }
        requests.post(url="https://slack.com/api/files.upload",params=param, files=files)
        
    else:
        GPIO.output(27,GPIO.LOW)
        
GPIO.cleanup() 

OpenCVのインストールはこちらを参考にしてください。
実はこのままでは自動では撮影しません。17ピンの入力がHIGHの条件つきとなります。

Blinkで17ピンを遠隔操作すればシャッターのタイミングを操作できます。詳しくはここ撮りっぱなしでよければ if GPIO.input(17) == GPIO.LOW: にしておけばいいと思います。


応用すれば自走式カメラを遠隔で操作できる・・・かも。













拍手[0回]

12/09

Sun

2018

Raspberry pi3B+でBluetooth接続

ラズパイでBluetoothイヤホンを使ってみました。




持ち運びにはタッチパネル、キーボード、マウス、モバイルバッテリーでいいのですが、少し作業中さみしいところ。 Bluetoothを接続してみました。

↓参考にしたページはこちら
http://belial6.hateblo.jp/entry/2017/06/30/003546?fbclid=IwAR0BA5X6hm2pHJXmVPO1--44gIQ23KJoP87hgdYldM_CsltwfszHvPHLyCw



このままやってもらえればできますが、なかなか大変でした。家のBluetooth機器が多いとMACアドレスだけではいったいどれなんだか・・。


無事ペアリングが成功するとYOUTUBEの音が確認できます。

あんまりラズパイで音楽聞く人いないと思いますが、参考になればと思います。








拍手[0回]

翻訳(Translate)

AD

シェアしてね

プロフィール

HN:
アルティメット雅史
性別:
男性
自己紹介:
製油所、データセンター、化学工場を渡り歩いた設備のマニア
最近はarduino,Raspberry pi等の電子工作にハマる。
取得資格は電験3種、消防設備士甲4、2級ボイラー技士、危険物乙4、電工2種、技術士補(電気・電子)、エネ電、フォークリフトほか

カウンター

お問い合わせ

忍者アクセスランキング

Copyright © 設備のマニアどっとこむ : All rights reserved

TemplateDesign by KARMA7

忍者ブログ [PR]