Sommario:

Gufo di sicurezza intelligente che rileva zombie (apprendimento approfondito): 10 passaggi (con immagini)
Gufo di sicurezza intelligente che rileva zombie (apprendimento approfondito): 10 passaggi (con immagini)

Video: Gufo di sicurezza intelligente che rileva zombie (apprendimento approfondito): 10 passaggi (con immagini)

Video: Gufo di sicurezza intelligente che rileva zombie (apprendimento approfondito): 10 passaggi (con immagini)
Video: A Dark Balance | Critical Role | Campaign 3, Episode 38 2024, Dicembre
Anonim

Ciao a tutti, benvenuti su T3chFlicks! In questo tutorial di Halloween, ti mostreremo come abbiamo dato una svolta super spettrale a un banale classico domestico: la telecamera di sicurezza.

Come?! Abbiamo realizzato un gufo per la visione notturna che utilizza l'elaborazione delle immagini per tracciare le persone. Oh, e fa schifo, proprio come la cosa reale!

Siamo stati super entusiasti di questo progetto e non vedevamo l'ora di farlo da quando è uscito il nuovo Raspberry Pi 4. Ha 4 GB di RAM, che apre le porte a un sacco di possibilità davvero entusiasmanti, inclusa l'elaborazione di immagini con modelli di deep learning in tempo reale.

Se vuoi tenere d'occhio gli zombi che si avvicinano ad Halloween, o semplicemente controllare il tuo giardino il resto dell'anno, questo è quello che fa per te. La sicurezza non deve essere noiosa per essere efficace!

Forniture

Per questa build, avrai bisogno di:

  • Raspberry Pi 4 (4GB Ram) Amazon
  • Telecamera per visione notturna Amazon
  • Micro Servo Amazon
  • Amazzone del gufo finto
  • Colla Amazon
  • Dipingi Amazon
  • Viti Amazon
  • Altoparlante USB Amazon
  • Alimentatore portatile di grandi dimensioni (5v+) Amazon
  • Stampante 3D Amazon

Passaggio 1: Passaggio 1: Decapitare

Passaggio 1: decapitare
Passaggio 1: decapitare
Passaggio 1: decapitare
Passaggio 1: decapitare
Passaggio 1: decapitare
Passaggio 1: decapitare

un. Togli la testa dal gufo (a volte devi solo essere brutale) tirando forte sulla sua testa dove si attacca alla molla.

B. La testa del gufo si collega al corpo tramite un cilindro che si trova sopra una grande molla. Rimuovere questo cilindro svitando la vite.

C. Il cilindro che hai appena rimosso è composto da due parti, una tazza di plastica e un cuscinetto che si trova al suo interno. Rimuovere il cuscinetto dal cilindro utilizzando un cacciavite (o strumento simile).

D. Utilizzando la vite che collegava il cilindro alla molla, fissare il servo al cilindro.

e. Rimuovere la molla svitando le tre viti che la fissano al corpo.

F. Fai un buco nella parte superiore del corpo del gufo che è abbastanza grande da contenere alcuni fili e il cavo della fotocamera. Abbiamo usato una combinazione poco elegante di un trapano e un cacciavite per farlo.

Passaggio 2: Passaggio 2: Aggiungi Smart

Passaggio 2: aggiungi Smart
Passaggio 2: aggiungi Smart
Passaggio 2: aggiungi Smart
Passaggio 2: aggiungi Smart
Passaggio 2: aggiungi Smart
Passaggio 2: aggiungi Smart

un. Stampa in 3D la custodia della fotocamera e dipingila in modo che corrisponda al gufo: abbiamo usato alcuni colori acrilici economici. La pittura non è un passaggio fondamentale, ma migliora notevolmente l'aspetto generale!

B. Con la testa del gufo capovolta, avvita la parte superiore della custodia della fotocamera all'interno della sua testa, dove sporge il becco.

C. Metti la fotocamera nella custodia e collega il cavo della fotocamera.

D. Incolla il servo sul pannello superiore della molla.

e. Collegare i cavi lunghi ai pin del servo (5V, Gnd, signal)

F. Fai passare il cavo della fotocamera e i fili per il servo attraverso la molla e attraverso il foro che hai praticato nella parte superiore del corpo in modo che siano all'interno del corpo cavo del gufo.

Passaggio 3: Passaggio 3: riempila

Passaggio 3: riempila
Passaggio 3: riempila
Passaggio 3: riempila
Passaggio 3: riempila
Passaggio 3: riempila
Passaggio 3: riempila
Passaggio 3: riempila
Passaggio 3: riempila

un. Rimuovere il tappo dal fondo del gufo e aumentare le dimensioni di questo foro tagliando la plastica. Continua ad aumentare le dimensioni fino a quando il Raspberry Pi e l'altoparlante possono adattarsi al corpo del gufo.

B. Una volta che il foro è abbastanza grande da contenere tutti i componenti, tira fuori dalla base il cavo della fotocamera che hai fatto passare attraverso la parte superiore del gufo e collegalo al Raspberry Pi.

C. Allo stesso modo, tira i cavi del servo e collegali al Raspberry Pi:

  • +5V su servo => +5V su Pi
  • Gnd servo => massa Pi
  • Segnale servo => pin 12 Pi

D. Collega l'altoparlante USB al Pi.

e. Inserisci la scheda SD nel Pi.

F. Power Pi utilizzando un alimentatore portatile.

G. Inserisci il Pi, l'alimentatore e l'altoparlante nel gufo attraverso il foro nella base.

Passaggio 4: Passaggio 4: impostare il Pi

Passaggio 4: imposta il Pi
Passaggio 4: imposta il Pi

TUTTO IL CODICE PUO' ESSERE TROVATO SU https://github.com/sk-t3ch/cctv-owl !

un. Scarica Raspian e caricalo sulla tua scheda SD utilizzando Balena Etcher.

B. Per accedere al tuo pi da remoto

  • Aggiungi un file chiamato ssh alla tua scheda SD di avvio
  • Aggiungi un file chiamato wpa_supplicant.conf e inserisci le tue credenziali wifi

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

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

C. Inserisci la scheda SD nel pi e prova un accesso tramite ssh.

Passaggio 5: Passaggio 5: spostare la testa

Passaggio 5: spostare la testa
Passaggio 5: spostare la testa

Tutorial codice per muovere la testa (controllare un servo con un raspberry pi)

Per controllare un servo in esecuzione sul Pi creeremo uno script che controlla i pin GPIO a cui è collegato il servo.

un. Collega il servo al Pi:

  • +5V su servo => +5V su Pi
  • Gnd servo => massa su Pi
  • Segnale servo => pin 12 su Pi

B. È necessario prima impostare i pin gpio per utilizzare PWM sul pin del segnale del servo.

C. Quindi, è semplice come selezionare il ciclo di lavoro (spiegato qui) del pin del segnale per spostare il servo da 90 gradi con un ciclo di lavoro da 7,5 a 0 gradi quando il ciclo di lavoro è 2,5 e a 180 gradi con un ciclo di lavoro di 12,5

importa RPi. GPIO come GPIO

import time GPIO.setmode(GPIO. BOARD) GPIO.setwarnings(False) GPIO.setup(12, GPIO. OUT) p = GPIO. PWM(12, 50) p.start(7.5) try: while True: p. ChangeDutyCycle (7.5) # 90 gradi time.sleep(1) p. ChangeDutyCycle(2.5) # 0 gradi time.sleep(1) p. ChangeDutyCycle(12.5) # 180 gradi time.sleep(1) eccetto KeyboardInterrupt: p.stop() GPIO.cleanup()

Passaggio 6: Passaggio 6: renderlo divertente

Passaggio 6: renderlo divertente
Passaggio 6: renderlo divertente
Passaggio 6: renderlo divertente
Passaggio 6: renderlo divertente

Tutorial sul codice per creare il grido del gufo (riproduzione dell'audio con un raspberry pi)

un. Collega l'altoparlante USB.

B. Scarica un suono: abbiamo scelto un grido spettrale.

C. Riproduci il suono eseguendo questo comando: omxplayer -o alsa:hw:1, 0 owl_sound.mp3

[D. Se questo non funziona, controlla quale output sta utilizzando il tuo Pi e a quale volume utilizzando il comando alsamixer: verrai accolto con la schermata del mixer in cui puoi modificare il volume e selezionare il tuo dispositivo multimediale. Per aumentare il volume del tuo suono, esegui il comando come questo omxplayer -o alsa:hw:1, 0 owl_sound.mp3 --vol 500 Per riprodurre questo suono usando Python, dai un'occhiata al nostro script di prova.]

sottoprocesso di importazione

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

Passaggio 7: Passaggio 7: eseguire lo streaming del video dal Pi

Passaggio 7: trasmetti in streaming il video dal Pi
Passaggio 7: trasmetti in streaming il video dal Pi
Passaggio 7: trasmetti in streaming il video dal Pi
Passaggio 7: trasmetti in streaming il video dal Pi

Tutorial sul codice per creare un flusso di fotocamera Raspberry Pi

un. Esegui python app.py e visualizza sulla tua rete locale su

B. Questo codice è stato preso e leggermente adattato da Miguel Grinberg https://blog.miguelgrinberg.com/post/flask-video-… spiega bene come è fatto e i suoi tutorial sono fantastici - sicuramente dai un'occhiata! Il concetto di base è che utilizziamo thread e generatori per migliorare la velocità di streaming.

Passaggio 8: Passaggio 8: rilevamento del corpo

Passaggio 8: rilevamento del corpo
Passaggio 8: rilevamento del corpo

Codice per il rilevamento del corpo (ImageNetSSD su un flusso video con raspberry pi)

un. Dato che stiamo usando il Raspberry Pi 4, abbiamo pensato che fosse meglio provare alcuni modelli di deep learning su di esso invece del metodo di base HaarCascade a cui siamo stati limitati finora.

B. Abbiamo dato un'occhiata ad alcuni dei modelli pre-addestrati là fuori, come YOLOv3 che sembra super cool. YOLOv3 piccoli pesi, che sarebbero stati perfetti per il Pi, ma non siamo riusciti a farlo funzionare:(C. Invece, abbiamo optato per il modello MobileSSD che possiamo eseguire utilizzando il modulo DNN (deep neural net) openCVs, come abbiamo appreso da questo codice: https://heartbeat.fritz.ai/real-time-object-detection-on-raspberry -pi-using-opencv-dnn-98827255fa60 e dall'eroe dei tutorial sull'elaborazione delle immagini, Adrian Rosebrock: https://www.pyimagesearch.com/2017/09/11/object-detection-with-deep-learning-and- opencv/

D. Tuttavia, poiché stiamo cercando di trasmettere in streaming questo contenuto ed eseguire modelli su ogni fotogramma, questo si traduce in un video ritardato e frammentato. Abbiamo imparato di nuovo da Adrian Rosebrock https://www.pyimagesearch.com/2017/10/16/raspberry-pi-deep-learning-object-detection-with-opencv/ e abbiamo usato il modulo multiprocessore Python per mettere le nostre immagini in coda dove possono essere elaborati senza bloccare così pesantemente il flusso della telecamera.

e. Prova a eseguire tu stesso il codice:)

Passaggio 9: Passaggio 9: invio di notifiche di zombi

Passaggio 9: invio di notifiche di zombi
Passaggio 9: invio di notifiche di zombi
Passaggio 9: invio di notifiche sugli zombi
Passaggio 9: invio di notifiche sugli zombi

Codice per inviare una notifica (python al telefono)

un. Abbiamo deciso di utilizzare il servizio di notifica

B. Puoi ottenere un account gratuito e scaricare l'app e iniziare subito a creare notifiche mobili. Abbiamo creato le notifiche utilizzando uno script Python come questo.

richieste di importazione

payload = { "app_key": "APP_KEY", "app_secret": "APP_SECRET", "target_type": "app", "content": "Owl ha rilevato uno zombi." } r = request.post("https://api.pusshed.co/1/push", data=payload)

È semplicissimo e puoi personalizzare il nome della tua notifica!

Passaggio 10: che spasso

Che spasso!
Che spasso!

Ci auguriamo che il nostro progetto Smart Security Owl ti sia piaciuto! Questa è stata una creazione super divertente e mi sento molto più al sicuro sapendo che la mia casa è sorvegliata dal nostro fidato gufo.

Se pensi che questa sarebbe una favolosa aggiunta di Halloween alla tua casa intelligente, vota per noi nel concorso di Halloween di Instructables e, come al solito, ricorda di mettere mi piace, commentare e iscriverti!

Iscriviti alla nostra mailing list!

Consigliato: