Taula de continguts:

Seguiment automàtic de Water Blaster: 9 passos
Seguiment automàtic de Water Blaster: 9 passos

Vídeo: Seguiment automàtic de Water Blaster: 9 passos

Vídeo: Seguiment automàtic de Water Blaster: 9 passos
Vídeo: Беслан. Помни / Beslan. Remember (english & español subs) 2024, Desembre
Anonim
Seguiment automàtic de Water Blaster
Seguiment automàtic de Water Blaster

Un cérvol menjador de roses em va motivar a construir un blaster d’aigua que seguís objectius per ajudar a dissuadir les voraces criatures … Aquest blaster d’aigua utilitza la detecció de moviment basada en vídeo per dirigir un servo i provocar breus esclats d’aigua cap a l’objectiu. Dispara només després que un objectiu adquirit estigui parat durant uns segons (el retard es pot ajustar al codi). No m’importa si els cérvols només passegen, però si paren a berenar, sploosh!

Aquí teniu un vídeo de la meva prova de la bombadora d’aigua:

El water blaster és una caixa autònoma que es pot connectar remotament (mitjançant wi-fi / VNC) des de qualsevol ordinador de la vostra xarxa per controlar el que fa. Es fa una fotografia cada vegada que s’activa per poder veure després què s’estava esclatant.

Vaig utilitzar un Raspberry Pi, una càmera NoIR, un il·luminador IR, un servo lineal estàndard i una vàlvula d’aigua per crear aquest blaster d’aigua de seguiment de dia / nit. El codi està escrit en Python i manlleva en gran mesura dels exemples de codi de processament d’imatges cv2 d’Adrian Rosebrock. Podeu veure la seva redacció a:

www.pyimagesearch.com/2015/06/01/home-surv…

Com que busco objectius relativament grans, basats en el terreny (cérvols), el meu problema està una mica simplificat. Només necessito apuntar horitzontalment per poder sortir només amb un servo. Esperar que els cérvols s’aturin m’ajuda a eliminar molts desencadenants falsos. Aquest és el meu intent de rev-0 i he trobat algunes coses que modificaria si en construís un altre. He observat aquestes coses a la redacció detallada que segueix.

Pas 1: el codi

El bufador d’aigua utilitza el Raspberry Pi 3 per al processament. Per capturar vídeo, s’utilitza una càmera NoIR Raspberry Pi juntament amb un il·luminador IR per a vídeo nocturn. El paquet OpenCV / cv2 Python s’utilitza per capturar i processar informació d’imatges i calcular coordenades de destinació. La biblioteca pigpio s’utilitza per controlar el gpio per a un funcionament estable del servo. L’ús del paquet normal RPi. GPIO va donar lloc a un servo inestable. NOTA: Quan utilitzeu la biblioteca pigpio, heu d'executar el dimoni pigpio. Afegiu-lo al fitxer d'inici /etc/rc.local de Pi per a la versió de pigpio lib i la interfície de la càmera Raspberry Pi:

/etc/rc.local# Configureu / dev / video0 per enllaçar a la interfície de la càmera integrada amb Raspberry Pi: modem sonda bcm2835-v4l2 # Inicieu el dimoni pigpio per a la biblioteca de control Raspberry Pi IO

Consulteu https://pypi.python.org/pypi/pigpi per obtenir més informació.

El codi font s’anomena water_blaster.py i s’adjunta a continuació.

Descàrrec de responsabilitat: sóc nou en la codificació de Python, així que no el tracteu com un model fantàstic d'estil de codificació de Python.

L’algorisme bàsic és el següent:

  • Agafa un marc de referència de vídeo inicial. S’utilitzarà per comparar contra per detectar moviments.
  • Agafa un altre marc.
  • Convertiu el marc a escala de grisos, modifiqueu-lo i desenfoqueu-lo.
  • Calculeu la diferència respecte del marc de referència
  • Filtra les petites diferències i obtén les coordenades de la diferència més gran.
  • Estableix un temporitzador. Si la coordenada objectiu no canvia durant uns segons, feu una foto del que estem a punt de disparar i activeu la vàlvula d’aigua per a una explosió d’aigua. Escombrar el servo cap endavant i cap enrere uns quants graus per a una explosió de "escopeta".
  • Si aconseguim tres activadors massa ràpidament, inhabilitem la presa, posem en pausa una mica i, a continuació, actualitzem el marc de referència ja que és possible que estiguem disparant a una ombra o llum del porxo que s’acaba d’encendre …
  • Actualitzeu el marc de referència cada pocs minuts per tenir en compte els canvis de baixa freqüència (la sortida del sol / la posta, la nuvolositat, etc.)

Només faig servir un mecanisme d’objectiu horitzontal, però hi ha molts servomuntatges panoràmics / inclinables disponibles a eBay i seria fàcil afegir un altre servo per controlar l’objectiu vertical si es volgués una orientació més precisa.

He configurat el Raspberry Pi perquè s’executi com a servidor VNC i, a continuació, hi connecto mitjançant VNC des del portàtil per iniciar el programa i supervisar el vídeo i els registres. cd al directori on emmagatzemeu water_blaster.py i executeu-lo escrivint:

./python water_blaster.py

Obrirà una finestra de monitor de vídeo, iniciarà un fitxer de registre anomenat "./log_[date]_[time] i crearà un subdirector anomenat" trigger_pictures "on s'emmagatzemen els fitxers-j.webp

Aquí teniu algunes notes sobre com configurar VNC al vostre Raspberry Pi:

La primera vegada que vaig configurar el Raspberry Pi, vaig utilitzar un monitor / teclat / ratolí extern per configurar les coses. Allà vaig habilitar el servidor VNC a la configuració del RasPi (logotip de Raspberry / Preferències / Configuració de Raspberry Pi / Interfícies / opció Comprova VNC). Després, quan arrenca, us permet connectar-vos a la pantalla: 0 mitjançant el client VNC (amb les mateixes credencials que l'usuari per defecte "pi").

En mode sense cap per defecte a una pantalla de resolució molt petita (ja que no detecta cap pantalla), per forçar-la a una resolució més gran, afegiu-la a /boot/config.txt i reinicieu:

# Utilitzeu si teniu pantalla # hdmi_ignore_edid = 0xa5000080hdmi_group = 2 # 1400x1050 w / 60Hz # hdmi_mode = 42 # 1356x768 w / 60Hzhdmi_mode = 39

Aquí hi ha més informació:

Pas 2: l'electrònica

Els requisits d’electrònica d’explosió d’aigua són mínims si s’utilitza el Raspberry Pi 3 gpio per accionar un servo, una vàlvula d’aigua i un il·luminador IR mitjançant tampons de transistors discrets (construïts sobre una petita placa proto). Una càmera NoIR estàndard es connecta directament al Raspberry Pi.

El nom de l’esquema és: water_blaster_schematic.pdf i s’adjunta a continuació.

Vaig utilitzar un subministrament dedicat de 5v / 2,5A per al Raspberry Pi i un subministrament de 12v / 1A per conduir l’il·luminador IR i la vàlvula d’aigua. El subministrament de 12v també acciona un regulador de 5v per subministrar energia al servo de 5v. Això es va fer per mantenir la potència de control del motor "sorollosa" aïllada del subministrament de Raspberry Pi 5v. El subministrament de 12v / 1A va resultar just al límit (en realitat, una mica més d’un cop afegit el ventilador). El codi apaga l’il·luminador IR abans d’engegar el relé de la vàlvula d’aigua per mantenir el consum de corrent dins del rang … Seria millor si feu servir un subministrament d’1,5 A. Assegureu-vos de connectar els terminals de terra de totes les fonts d’alimentació.

El mòdul de càmera és una versió NoIR estàndard que es connecta directament al Raspberry Pi. Es tracta d’una càmera de Raspberry Pi amb el filtre IR ja eliminat que permet utilitzar-lo amb un il·luminador IR per fer vídeos nocturns.

El servo utilitzat és un servo lineal de 5v de mida estàndard amb un parell de 3-4 kg-cm.

L’il·luminador IR era un anell de 48 leds de baix cost que vaig trobar a eBay per uns 4 dòlars. No és súper fort i només pot il·luminar fins a uns 15 peus. Si teniu un pressupost addicional, aconseguir un il·luminador més fort seria una bona millora.

He afegit un "debug-switch" a gpio23. El codi comprova l'estat del commutador i, si es prem, es desactivarà el relé de la vàlvula d'aigua per a proves de foc sec. Vaig pensar que faria més amb aquest commutador, però no el vaig acabar fent servir. L’eliminaria i el codi que la busca …

Pas 3: Construcció: càmera i il·luminador IR

Construcció: càmera i il·luminador IR
Construcció: càmera i il·luminador IR

Vaig utilitzar una caixa de municions de plàstic Harbor Freight com a tancament. Principalment necessitava quelcom resistent a l’aigua, ja que molta aigua / ruixat d’aigua és inevitable. Hi ha molts forats / retalls, però estan coberts per tendals, plàstic transparent o es perforen sota voladissos per vessar aigua. A la vista posterior, hauria d'haver utilitzat una caixa metàl·lica amb dissipadors de calor connectats internament als components d'alta potència. Fent això crec que hauria pogut evitar afegir el ventilador. La caixa de plàstic era massa aïllant i permetia que la temperatura interior augmentés massa.

Es va tallar una finestra petita al final perquè la càmera pogués veure-la i l’il·luminador IR es va muntar dins d’una antiga caixa de lents de plàstic que tenia al voltant.

Pas 4: Construcció: canonades d’aigua

Construcció: canonades d’aigua
Construcció: canonades d’aigua
Construcció: canonades d’aigua
Construcció: canonades d’aigua

L’entrada d’aigua es condueix a una vàlvula d’aigua de 12v que es connecta a un tub de vinil de Ø ID”ID x 3/8” OD. Això, al seu torn, està connectat a un tub de pues de ¼”per connectar-se amb un ajust de PVC ¾ i enganxat a un tap d’aigua de PVC de ¾” amb un forat de 1/16”forat per al corrent d’aigua. Volia mantenir el relé de la vàlvula d’aigua fora de la intempèrie perquè estigués muntat dins de la caixa. Hi ha el perill que pugui tenir una fuita, però he perforat forats de drenatge a la part inferior de la caixa i he muntat l'electrònica fins a minimitzar la possibilitat de danys per l'aigua a l'electrònica si això passa. Un pla menys estèticament agradable, però més segur, seria muntar la vàlvula a l’exterior i fer passar els cables del relé de 12v a l’interior. El disc de plàstic transparent sobre el servo era una manera convenient de muntar l'extrem de la mànega i evita que l'aigua caigui cap al servo. El ventilador era un pensament posterior, ja que la caixa s’escalfava massa. Vaig construir un petit tendal sobre ell per evitar que gotejés aigua.

Pas 5: Construcció: Servo amb l'objectiu

Construcció: Servo amb l'objectiu
Construcció: Servo amb l'objectiu

Es talla un forat a la part superior de la caixa i es munta el servo de punteria i es tanca amb silici per evitar que surti aigua.

Pas 6: Construcció: muntatge de les fonts d'alimentació, del ventilador, del Raspberry Pi i de la placa de prototips

Construcció: muntatge de les fonts d’alimentació, del ventilador, del Raspberry Pi i de la placa de prototips
Construcció: muntatge de les fonts d’alimentació, del ventilador, del Raspberry Pi i de la placa de prototips

Les dues fonts d'alimentació (5v i 12v) es connecten a un sol cable d'alimentació que surt del lateral de la caixa. El Raspberry Pi i una placa proto es munten al costat de la caixa, a prop de la part superior. Fixeu-vos en els forats de desguàs foradats a la part inferior i els forats de ventilació perforats al llarg de la vora superior. El ventilador està muntat davant del Raspberry Pi. No hi ha cap interruptor d’encès / apagat, ja que no vull animar a apagar el Raspberry Pi sense una ordre formal “sudo shutdown now” (és a dir, no vull que l’apagada sigui massa fàcil).

Pas 7: Construcció: la Junta Proto

Construcció: la Junta Proto
Construcció: la Junta Proto

La placa proto conté un regulador de 5 V, tap de filtre, transistors de potència (que accionen el servo i la vàlvula d’aigua) i un commutador de depuració.

Pas 8: construcció: càmera Raspberry Pi

Construcció: Càmera Raspberry Pi
Construcció: Càmera Raspberry Pi

La càmera Raspberry Pi es connecta directament al Raspberry Pi mitjançant el cable de cinta i es munta a la placa de plàstic transparent que cobreix el retall de visualització a la part frontal de la caixa.

Pas 9: llista de peces

El projecte va acabar costant uns 120 dòlars. La major part del cost del projecte és el Raspberry Pi, la càmera, el servo i les fonts d’alimentació. He trobat la majoria de les peces a eBay o Amazon i les peces de fontaneria a la ferreteria local.

  • Raspberry Pi 3 (Amazon) 38 dòlars
  • Càmera NoIR (eBay) 30 dòlars
  • Servo analògic de 5 v (parell de 4 kg-cm) (eBay) 10 dòlars
  • Font d'alimentació de paret de 5 v / 2,4 A (eBay) 8 dòlars
  • Vàlvula d'aigua de 12v ½ "(eBay) 5 $
  • Tubs, acoblaments de canonades (Osh) 5 $
  • Caixa de munició de plàstic (càrrega portuària) 5 $
  • Font d'alimentació de paret de 12v / 1,5A (eBay) 5 $
  • Il·luminador IR (eBay) 4 $
  • Misc. Components (resistències, interruptors, díode) 2 $
  • Ventilador de CPU (eBay) 2 $
  • Proto Board, separacions, cargols (eBay) 2 $
  • (2) Transistors de potència (2n5296) (eBay) $ 1
  • Regulador de 5v (LM7805) (eBay) 1 $
  • Plàstic transparent de 3/32 "(tap de diversos plàstics de tap) 1 $
  • Cable d'alimentació (Osh) 1 $

Botigues / llocs on he comprat articles:

  • Lloc Alice1101983 EBay:
  • Lloc de 2bevoque EBay:
  • Càrrega portuària
  • Maquinari de subministrament d'horts
  • Amazon
  • Toqueu Plàstics

Recomanat: