Tartalomjegyzék:

Zombi észleli az intelligens biztonsági bagolyt (mély tanulás): 10 lépés (képekkel)
Zombi észleli az intelligens biztonsági bagolyt (mély tanulás): 10 lépés (képekkel)
Anonim

Üdv mindenkinek, üdvözöljük a T3chFlicksben! Ebben a halloweeni bemutatóban megmutatjuk, hogyan tettünk szuper kísérteties csavart egy hétköznapi háztartási klasszikusba: a biztonsági kamerába.

Hogyan?! Készítettünk egy éjjellátó bagolyt, amely képfeldolgozással követi nyomon az embereket. Ja, és döcög, mint az igazi!

Nagyon izgatottak voltunk ettől a projekttől, és azóta várunk rá, mióta az új Raspberry Pi 4 leesett. 4 GB RAM -mal rendelkezik, amely rengeteg igazán izgalmas lehetőség előtt nyitja meg kapuit, beleértve a képfeldolgozást mély tanulási modellekkel valós időben.

Ha Halloweenkor szeretné figyelni a közeledő zombikat, vagy csak ellenőrizze kertjét egész évben, akkor ez az Ön számára. A biztonságnak nem kell unalmasnak lennie ahhoz, hogy hatékony legyen!

Kellékek

Ehhez az építéshez szüksége lesz:

  • Raspberry Pi 4 (4 GB Ram) Amazon
  • Éjjellátó kamera Amazon
  • Micro Servo Amazon
  • Hamis bagoly Amazon
  • Ragasztó Amazon
  • Festék Amazon
  • Csavarok Amazon
  • USB hangszóró Amazon
  • Nagy (5v+) hordozható Amazon tápegység
  • 3D nyomtató Amazon

1. lépés: 1. lépés: Fej lefejezése

1. lépés: Fej lefejezése
1. lépés: Fej lefejezése
1. lépés: Fej lefejezése
1. lépés: Fej lefejezése
1. lépés: Fej lefejezése
1. lépés: Fej lefejezése

a. Húzza le a fejét a bagolyról (néha csak brutálisnak kell lennie) úgy, hogy erősen a fejére húzza, ahol a rugóhoz kapcsolódik.

b. A bagoly feje egy hengerrel csatlakozik a testhez, amely egy nagy rugó tetején ül. Távolítsa el ezt a hengert a csavar eltávolításával.

c. Az imént eltávolított henger két részből áll, egy műanyag pohárból és egy csapágyból, amely benne van. Távolítsa el a csapágyat a hengerről egy csavarhúzóval (vagy hasonló eszközzel).

d. A csavart használva csatlakoztassa a szervót a hengerhez a rugóval.

e. Távolítsa el a rugót a három csavar kicsavarásával, amelyek a testhez rögzítik.

f. Készítsen egy lyukat a bagoly testének tetején, amely elég nagy ahhoz, hogy elférjen néhány vezeték és a kamera kábele. Ehhez fúró és csavarhúzó elegáns kombinációját használtuk.

2. lépés: 2. lépés: Smart hozzáadása

2. lépés: Smart hozzáadása
2. lépés: Smart hozzáadása
2. lépés: Smart hozzáadása
2. lépés: Smart hozzáadása
2. lépés: Smart hozzáadása
2. lépés: Smart hozzáadása

a. Nyomtassa ki 3D -ben a fényképezőgép tokját, és fesse le a bagolyhoz - olcsó akrilfestékeket használtunk. A festés nem létfontosságú lépés, de drámaian javítja az összképet!

b. A bagoly fejjel lefelé fordítva csavarja a fényképezőgép tokjának tetejét a fej belsejébe, ahol a csőr kinyúlik.

c. Helyezze a fényképezőgépet a tokba, és csatlakoztassa a kamera kábelét.

d. Ragassza a szervót a rugó felső paneljére.

e. Csatlakoztassa a hosszú vezetékeket a szervo csapokhoz (5V, Gnd, jel)

f. Vezesse át a kamera kábelét és a szervo vezetékét a rugón és a test tetején lévő lyukon keresztül, hogy azok a bagoly üreges testében legyenek.

3. lépés: 3. lépés: Töltse fel

3. lépés: Töltse fel
3. lépés: Töltse fel
3. lépés: Töltse fel
3. lépés: Töltse fel
3. lépés: Töltse fel
3. lépés: Töltse fel
3. lépés: Töltse fel
3. lépés: Töltse fel

a. Távolítsa el a dugót a bagoly aljáról, és növelje a lyuk méretét a műanyag vágásával. Folytassa a méret növelését, amíg a Raspberry Pi és a hangszóró be nem illeszkedik a bagoly testébe.

b. Miután a lyuk elég nagy ahhoz, hogy minden alkatrész beférjen, húzza ki a bagoly tetején keresztül csatlakoztatott kamera kábelét az alapból, és csatlakoztassa a Raspberry Pi -hez.

c. Hasonlóképpen húzza át a szervo vezetékeket, és csatlakoztassa őket a Raspberry Pi -hez:

  • +5v a szervónál => +5V a Pi -n
  • Gnd szervo => gnd Pi
  • Jelszervó => pin 12 Pi

d. Csatlakoztassa az USB hangszórót a Pi -hez.

e. Helyezze be az SD -kártyát a Pi -be.

f. Power Pi hordozható tápegység használatával.

g. Helyezze a Pi -t, a tápegységet és a hangszórót a bagolyba az alap lyukán keresztül.

4. lépés: 4. lépés: A Pi beállítása

4. lépés: A Pi beállítása
4. lépés: A Pi beállítása

MINDEN KÓD megtalálható a https://github.com/sk-t3ch/cctv-owl oldalon!

a. Töltse le a Raspiant, és töltse fel az SD -kártyára a Balena Etcher segítségével.

b. A pi távoli eléréséhez

  • Adjon hozzá egy ssh nevű fájlt a rendszerindító sd -kártyához
  • Adjon hozzá egy wpa_supplicant.conf nevű fájlt, és adja meg a wifi hitelesítő adatait

    ctrl_interface = DIR =/var/run/wpa_supplicant GROUP = netdev update_config = 1

    network = {ssid = "MySSID" psk = "MyPassword"}

c. Helyezze be az SD -kártyát a pi -be, és próbálja meg elérni az ssh -n keresztül.

5. lépés: 5. lépés: A fej mozgatása

5. lépés: A fej mozgatása
5. lépés: A fej mozgatása

Kódoktató a fej mozgatásához (szervó vezérlése málna pi-vel)

A Pi -n futó szervó vezérléséhez olyan szkriptet fogunk létrehozni, amely vezérli azokat a GPIO -csapokat, amelyekhez a szervó csatlakozik.

a. Csatlakoztassa a szervót a Pi -hez:

  • +5v a szervónál => +5V a Pi -n
  • Gnd szervo => gnd a Pi -n
  • Jelszervó => Pi 12 -es csap

b. Először be kell állítania a gpio csapokat a PWM használatához a szervó jelzőcsapján.

c. Ezután olyan egyszerű, hogy kiválasztja a jelzőcsap működési ciklusát (itt ismertetjük), hogy a szervót 90 fokról 7,5 és 0 fok közötti működési ciklus mellett elmozdítsa, ha a munkaciklus 2,5, és 180 fokra, 12.5

importálja az RPi. GPIO -t GPIO -ként

importálási idő GPIO.setmode (GPIO. BOARD) GPIO.setwarnings (False) GPIO.setup (12, GPIO. OUT) p = GPIO. PWM (12, 50) p.start (7.5) try: míg True: p. ChangeDutyCycle (7.5) # 90 fokos idő. Alvás (1) p. ChangeDutyCycle (2.5) # 0 fokos idő. Alvás (1) p. ChangeDutyCycle (12.5) # 180 fokos idő. Alvás (1), kivéve a KeyboardInterrupt: p.stop () GPIO.cleanup ()

6. lépés: 6. lépés: Felháborodás

6. lépés: Felháborodás
6. lépés: Felháborodás
6. lépés: Felháborodás
6. lépés: Felháborodás

Kódoktatás a bagolycsalás elkészítéséhez (audio lejátszása málna pi-vel)

a. Csatlakoztassa az USB hangszórót.

b. Tölts le egy hangot - kísérteties huzavonát választottunk.

c. Játssza le a hangot a következő parancs futtatásával: omxplayer -o alsa: hw: 1, 0 owl_sound.mp3

[d. Ha ez nem működik, ellenőrizze, hogy a Pi milyen kimenetet használ, és milyen hangerővel az alsamixer paranccsal - a mixer képernyő fogadja, ahol módosíthatja a hangerőt és kiválaszthatja a médiaeszközt. A hang hangerejének növeléséhez hajtsa végre a következő parancsot: omoplayer -o alsa: hw: 1, 0 owl_sound.mp3 --vol 500 Ahhoz, hogy ezt a hangot Python használatával játssza le, tekintse meg tesztszkriptünket.]

alfolyamat importálása

command = "omxplayer -o alsa: hw: 1, 0 owl_sound.mp3 --vol 500" player = alprocess. Popen (command.split (''), stdin = alfolyamat. PIPE, stdout = alprocess. PIPE, stderr = alfolyamat. PIPA)

7. lépés: 7. lépés: A videó streamelése a Pi -ről

7. lépés: A videó streamelése a Pi -ből
7. lépés: A videó streamelése a Pi -ből
7. lépés: A videó streamelése a Pi -ből
7. lépés: A videó streamelése a Pi -ből

Kódoktató egy málna pi kamerás adatfolyam létrehozásához

a. Futtassa a python app.py fájlt, és tekintse meg a helyi hálózaton a https://raspberrypi.local: 5000 címen

b. Ezt a kódot Miguel Grinberg vette át és enyhén módosította. Https://blog.miguelgrinberg.com/post/flask-video-… szépen elmagyarázza, hogyan történik, és az oktatóanyagainak nagyszerű-deffo ellenőrizze őt! Az alapkoncepció az, hogy meneteket és generátorokat használunk a streaming sebesség javítására.

8. lépés: 8. lépés: Testfelismerés

8. lépés: Testfelismerés
8. lépés: Testfelismerés

Testfelismerés kódja (ImageNetSSD videofolyamban, málna pi-vel)

a. Mivel a Raspberry Pi 4 -et használjuk, úgy gondoltuk, hogy a legjobb, ha néhány mély tanulási modellt próbálunk ki rajta az alapvető HaarCascade módszer helyett.

b. Megnéztünk néhány előre kiképzett modellt, például a YOLOv3-at, ami szuperül néz ki. YOLOv3 apró súlyok, amelyek tökéletesek lettek volna a Pi -hez, de nem tudtuk elindítani:(c. Ehelyett a MobileSSD modell mellett döntöttünk, amelyet az openCVs DNN (deep neuron net) modul használatával futtathatunk, amint ezt a kódot megtudtuk: https://heartbeat.fritz.ai/real-time-object-detection-on-raspberry -pi-using-opencv-dnn-98827255fa60 és a képfeldolgozási oktatóanyagok hősétől, Adrian Rosebrock-tól: https://www.pyimagesearch.com/2017/09/11/object-detection-with-deep-learning-and- opencv/

d. Mivel azonban megpróbáljuk ezt a tartalmat streamelni és modelleket futtatni minden képkockán, ez késleltetett, töredezett videót eredményez. Ismét tanultunk Adrian Rosebrock-tól https://www.pyimagesearch.com/2017/10/16/raspberry-pi-deep-learning-object-detection-with-opencv/, és a Python többprocesszoros modul segítségével sorba állítottuk képeinket ahol feldolgozhatók anélkül, hogy a kamera sugárzását annyira elzárnák.

e. Próbálja meg Ön is futtatni a kódot:)

9. lépés: 9. lépés: Zombi értesítések küldése

9. lépés: Zombi értesítések küldése
9. lépés: Zombi értesítések küldése
9. lépés: Zombi értesítések küldése
9. lépés: Zombi értesítések küldése

Az értesítés küldésének kódja (python a telefonra)

a. Úgy döntöttünk, hogy a https://pushed.co értesítési szolgáltatást használjuk.

b. Kaphat egy ingyenes fiókot, letöltheti az alkalmazást, és gyorsan beállíthatja a mobil értesítések küldését. Az értesítéseket egy ilyen python -szkripttel hoztuk létre.

import kérések

payload = {"app_key": "APP_KEY", "app_secret": "APP_SECRET", "target_type": "app", "content": "Bagoly zombit észlelt." } r = kérések.post ("https://api.pushed.co/1/push", adatok = hasznos terhelés)

Ez nagyon egyszerű, és személyre szabhatja értesítési nevét!

10. lépés: Micsoda bunkóság

Micsoda bunkóság!
Micsoda bunkóság!

Reméljük, hogy élvezte a Smart Security Owl projektünket! Ez egy szuper szórakoztató alkotás volt, és sokkal biztonságosabbnak érzem magam, ha tudom, hogy a házunkat megbízható bagolyunk őrzi.

Ha úgy gondolja, hogy ez egy mesés Halloween -kiegészítés lenne az okos otthonához, kérjük, szavazzon ránk az Instructables Halloween versenyen, és szokás szerint ne felejtse el lájkolni, kommentelni és feliratkozni!

Iratkozzon fel levelezőlistánkra!

Ajánlott: