Cuprins:
- Pasul 1: Codul
- Pasul 2: Electronica
- Pasul 3: Construcție: aparat de fotografiat și iluminator IR
- Pasul 4: Construcție: conducte de apă
- Pasul 5: Construcție: Servo de vizare
- Pasul 6: Construcție: Montarea surselor de alimentare, a ventilatorului, a Raspberry Pi și a Proto-plăcii
- Pasul 7: Construcție: placa Proto
- Pasul 8: Construcție: cameră Raspberry Pi
- Pasul 9: Lista pieselor
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:45
Căprioarele care mănâncă trandafiri m-au motivat să construiesc un blaster de apă care urmărește ținta pentru a ajuta la descurajarea creaturilor vorace … Acest blaster de apă folosește detectarea mișcării pe bază de video pentru a viza un servo și a declanșa scurte explozii de apă către țintă. Acesta trage numai după ce o țintă dobândită este staționară timp de câteva secunde (întârzierea poate fi ajustată în cod). Nu-mi pasă dacă căprioarele sunt doar pe jos, dar dacă se opresc pentru o gustare, sploosh!
Iată un videoclip cu mine care testează blasterul de apă:
Water blaster-ul este o cutie autonomă care poate fi conectată de la distanță (prin Wi-Fi / VNC) de pe orice computer din rețeaua dvs. pentru a monitoriza ceea ce face. Face o fotografie de fiecare dată când este declanșată, astfel încât să puteți vedea mai târziu ce se explodează.
Am folosit un Raspberry Pi, o cameră NoIR, un iluminator IR, un servo liniar standard și o supapă de apă pentru a crea acest blaster de apă zi / noapte, care urmărește ținta. Codul este scris în Python și împrumută mult din exemplele de cod de procesare a imaginilor cv2 ale lui Adrian Rosebrock. Puteți vedea cum scrie la:
www.pyimagesearch.com/2015/06/01/home-surv…
Întrucât urmăresc ținte relativ mari, de la sol (cerbi), problema mea este oarecum simplificată. Am nevoie doar de vizare orizontală, astfel încât să reușesc să folosesc un singur servo. Așteptarea cerbului să stea în picioare mă ajută să elimin o mulțime de factori declanșatori falși. Aceasta este încercarea mea de rev-0 și am găsit câteva lucruri pe care le-aș modifica dacă aș construi alta. Am notat aceste lucruri în redactarea detaliată care urmează.
Pasul 1: Codul
Blasterul de apă folosește Raspberry Pi 3 pentru procesare. Pentru captarea video, o cameră NoIR Raspberry Pi este utilizată împreună cu un iluminator IR pentru video de noapte. Pachetul OpenCV / cv2 Python este utilizat pentru a captura și procesa informații despre imagine și pentru a calcula coordonatele țintă. Biblioteca pigpio este utilizată pentru a controla gpio pentru o operare stabilă a servo-ului. Utilizarea pachetului obișnuit RPi. GPIO a dus la un servo tremurat. NOTĂ: Când utilizați biblioteca pigpio, trebuie să rulați demonul pigpio. Adăugați acest lucru la fișierul de pornire /etc/rc.local al lui Pi pentru pigpio lib și interfața camerei Raspberry Pi:
/etc/rc.local# Configurați / dev / video0 pentru a vă conecta la Raspberry Pi, interfață integrată a camerei, modprobe bcm2835-v4l2 # Porniți daemonul pigpio pentru biblioteca de control Raspberry Pi IO
Consultați https://pypi.python.org/pypi/pigpi pentru mai multe detalii.
Codul sursă se numește: water_blaster.py și este atașat mai jos.
Declinare de responsabilitate: Sunt nou în codificarea Python, așa că nu o tratați ca pe un model grozav de stil de codare Python!
Algoritmul de bază este după cum urmează:
- Prindeți un cadru de referință video inițial. Acesta va fi folosit pentru a compara împotriva pentru a detecta mișcarea.
- Apucați un alt cadru.
- Convertiți cadrul în scară de gri, dimensionați-l, estompați-l.
- Calculați diferența față de cadrul de referință
- Filtrează diferențele mici, obține coordonatele celei mai mari diferențe.
- Setați un cronometru. Dacă coordonata țintă nu se schimbă timp de câteva secunde, atunci faceți o fotografie a ceea ce urmează să tragem și declanșați supapa de apă pentru o explozie de apă. Măturați servo-ul înainte și înapoi cu câteva grade pentru o explozie de „pușcă”.
- Dacă primim trei declanșatoare prea repede, dezactivăm fotografierea, întrerupem puțin, apoi actualizăm cadrul de referință, deoarece putem trage la o lumină de umbră sau verandă care tocmai a fost aprinsă …
- La fiecare câteva minute actualizați cadrul de referință pentru a ține cont de schimbările de frecvență joasă (răsăritul / apusul soarelui, mutarea acoperișului etc.)
Folosesc doar un mecanism de vizare orizontală, dar multe servomotoare pan / tilt sunt disponibile pe eBay și ar fi ușor să adăugați un alt servo pentru controlul vizării verticale dacă doriți o direcționare mai precisă.
Am configurat Raspberry Pi pentru a rula ca un server VNC, apoi mă conectez la acesta prin VNC de pe laptopul meu pentru a porni programul și a monitoriza videoclipurile și jurnalele. cd în directorul în care stocați water_blaster.py și îl rulați tastând:
./python water_blaster.py
Se va deschide o fereastră de monitorizare video, va începe un fișier jurnal numit „./log_[date[_[time] și va crea un subdirector numit„ trigger_pictures”unde sunt stocate fișierele-j.webp
Iată câteva note despre configurarea VNC pe Raspberry Pi:
Prima dată când am configurat Raspberry Pi, am folosit un monitor extern / tastatură / mouse pentru a configura lucrurile. Acolo am activat serverul VNC la configurația RasPi (Raspberry Logo / Preferences / Raspberry Pi Configuration / Interfaces / Check VNC option). Apoi, când pornește, vă permite să vă conectați la afișajul său: 0 prin client VNC (cu aceleași acreditări ca utilizatorul implicit „pi”).
În modul fără cap este implicit un afișaj cu rezoluție foarte mică (deoarece nu detectează niciun afișaj), pentru al forța la o rezoluție mai mare, adăugați acest lucru la /boot/config.txt și reporniți:
# Utilizați dacă aveți afișaj # hdmi_ignore_edid = 0xa5000080hdmi_group = 2 # 1400x1050 w / 60Hz # hdmi_mode = 42 # 1356x768 w / 60Hzhdmi_mode = 39
Iată câteva informații suplimentare:
Pasul 2: Electronica
Cerințele electronice pentru blasterul de apă sunt minime folosind Raspberry Pi 3 gpio pentru a conduce un servo, o supapă de apă și un iluminator IR prin tampoane de tranzistor discrete (construite pe o placă proto mică). O cameră NoIR standard se conectează direct la Raspberry Pi.
Numele schemei este: water_blaster_schematic.pdf și este atașat mai jos.
Am folosit o sursă dedicată de 5v / 2,5A pentru Raspberry Pi și o sursă de 12v / 1A pentru acționarea iluminatorului IR și a supapei de apă. Alimentarea de 12v acționează, de asemenea, un regulator de 5v pentru a furniza energie servo-ului de 5v. Acest lucru a fost făcut pentru a menține puterea de control a motorului „zgomotoasă” izolată de sursa de alimentare Raspberry Pi 5v. Alimentarea de 12v / 1A s-a dovedit a fi chiar la limita sa (de fapt puțin mai mare odată ce am adăugat ventilatorul). Codul oprește iluminatorul IR înainte de a alimenta releul supapei de apă pentru a menține consumul de curent în intervalul … Ar fi mai bine dacă ați utiliza o sursă de alimentare de 1,5 A. Asigurați-vă că conectați terminalele de masă ale tuturor surselor de alimentare împreună.
Modulul camerei este o versiune standard NoIR care se conectează direct la Raspberry Pi. Este o camă Raspberry Pi cu filtrul IR deja eliminat, permițând utilizarea acestuia cu un iluminator IR pentru înregistrarea videoclipurilor nocturne.
Servo-ul utilizat este un servo liniar de 5v de dimensiuni standard, cu cuplu de 3-4 kg-cm.
Iluminatorul IR a fost un inel cu 48 de leduri cu cost redus pe care l-am găsit pe eBay pentru aproximativ 4 USD. Nu este foarte puternic și poate lumina doar până la aproximativ 15 metri. Dacă aveți un buget suplimentar, obținerea unui iluminator mai puternic ar fi o bună îmbunătățire.
Am adăugat un „debug-switch” la gpio23. Codul verifică starea comutatorului și, dacă este apăsat, va dezactiva releul supapei de apă pentru testarea la foc uscat. M-am gândit să fac mai multe cu acel comutator, dar nu am ajuns să-l folosesc deloc. L-aș elimina și codul care îl caută …
Pasul 3: Construcție: aparat de fotografiat și iluminator IR
Am folosit o cutie de muniție din plastic Harbor Freight ca o incintă. În principal, aveam nevoie de ceva rezistent la apă, deoarece o mulțime de apă pulverizată / scurgeri este inevitabilă. Există o mulțime de găuri / decupaje, dar sunt acoperite de copertine, plastic transparent sau sunt găurite sub consoluri pentru a vărsa apă. În spate, ar fi trebuit să folosesc o cutie metalică cu radiatoare atașate intern la componentele de mare putere. Făcând asta, cred că aș fi putut evita adăugarea ventilatorului. Cutia de plastic era prea izolantă și permitea creșterii prea mari a temperaturii interioare.
O mică fereastră a fost tăiată la capăt pentru ca camera să poată fi văzută, iar iluminatorul IR a fost montat într-o carcasă veche de lentile din plastic pe care o aveam așezată în jur.
Pasul 4: Construcție: conducte de apă
Admisia de apă este conductată într-o supapă de apă de 12v care este conectată la un tub de vinil de Ø”ID x 3/8” OD. Acest lucru, la rândul său, este conectat la o țeavă ghimpată de ¼”la conectorul fit de fixare ¾ și lipit la un capac de apă din PVC de ¾” cu o gaură de 1/16”forată pentru fluxul de apă. Am vrut să mențin releul supapei de apă departe de intemperii, astfel încât să fie montat în cutie. Există pericolul că pot avea o scurgere, dar am făcut găuri de scurgere în partea de jos a cutiei și am montat dispozitivele electronice la înălțime pentru a minimiza șansele de deteriorare potențială a apei electronice, dacă se întâmplă acest lucru. Un plan mai puțin estetic, dar mai sigur, ar fi montarea supapei pe exterior și rularea firelor releului de 12v în interior. Discul din plastic transparent peste servo a fost un mod convenabil de a monta capătul furtunului și împiedică scurgerea apei în jos pe servo. Ventilatorul a fost un gând ulterior, deoarece cutia se încălzea prea mult. Am construit o mică copertină peste ea pentru a împiedica apa să se strecoare.
Pasul 5: Construcție: Servo de vizare
O gaură este tăiată în partea superioară a cutiei, iar servo-țintire este montat și sigilat cu siliciu pentru a menține apa.
Pasul 6: Construcție: Montarea surselor de alimentare, a ventilatorului, a Raspberry Pi și a Proto-plăcii
Cele două surse de alimentare (5v și 12v) sunt conectate la un singur cablu de alimentare care iese din partea laterală a cutiei. Raspberry Pi și o placă proto sunt montate pe partea laterală a cutiei, lângă partea superioară. Observați găurile de scurgere găurite în partea inferioară și găurile de aerisire găurite de-a lungul marginii superioare. Ventilatorul este montat vizavi de Raspberry Pi. Nu există comutator de pornire / oprire, deoarece nu vreau să încurajez oprirea Raspberry Pi fără o comandă oficială „sudo shutdown now” (adică nu doresc ca oprirea să fie prea ușoară).
Pasul 7: Construcție: placa Proto
Placa proto conține un regulator de 5V, capac de filtrare, tranzistoare de putere (care acționează servo și supapa de apă) și un comutator de depanare.
Pasul 8: Construcție: cameră Raspberry Pi
Camera Raspberry Pi se conectează direct la Raspberry Pi prin cablul cu bandă și este montată pe placa de plastic transparentă care acoperă decupajul de vizualizare din partea din față a cutiei.
Pasul 9: Lista pieselor
Proiectul a ajuns să coste aproximativ 120 de dolari. Cea mai mare parte a costului proiectului este Raspberry Pi, cameră, servo și surse de alimentare. Am găsit cele mai multe piese de pe eBay sau Amazon și piesele de instalații sanitare la magazinul de hardware local.
- Raspberry Pi 3 (Amazon) 38 USD
- Camera NoIR (eBay) 30 USD
- Servo analogic 5v (cuplu de 4 kg-cm) (eBay) 10 USD
- Sursă de alimentare de perete 5v / 2.4A (eBay) 8 USD
- Supapă de apă de 12v ½”(EBay) 5 USD
- Tuburi, cuplaje pentru țevi (Osh) 5 USD
- Cutie de muniție din plastic (transport maritim) 5 USD
- Sursă de alimentare de perete 12v / 1,5A (eBay) 5 USD
- Iluminator IR (eBay) 4 USD
- Diverse Componente (rezistențe, comutatoare, diodă) 2 USD
- Ventilator CPU (eBay) 2 USD
- Proto Board, Standoffs, Șuruburi (eBay) 2 USD
- (2) Tranzistori de putere (2n5296) (EBay) 1 $
- Regulator 5v (LM7805) (EBay) 1 USD
- Plastic transparent 3/32”(Coș de plastic divers pentru robinet) 1 $
- Cablu de alimentare (Osh) 1 $
Magazine / site-uri de unde am cumpărat articole:
- Alice1101983 Site eBay:
- 2bevoque EBay Site:
- Transport maritim
- Hardware pentru livrare de livadă
- Amazon
- Atingeți Plastic
Recomandat:
Bubble Blaster: 7 pași
Bubble Blaster: în acest instructable veți învăța cum să faceți un bubble blaster. Aceasta se bazează pe flautul cu bule. Nu uitați să votați pentru acest instructabil, sper să vă placă
Sistem auto de iluminare auto: 4 pași
Sistem auto de iluminare auto: hei băieți, mașina modernă vine cu sistem automat de iluminare auto, ceea ce înseamnă că farurile se aprind și se sting automat depinde de lumina ambientală, astfel încât atunci când se întunecă sau când conduceți în tanel, luminile se vor aprinde automat. chiar m-am gândit să schimb
Bluetooth activat Nerf Blaster: 7 pași
Bluetooth activat Nerf Blaster: M-am simțit inspirat de proiectul lui Colin Furze și am decis să fac propria versiune pentru Remix Challenge. Designul pe care l-am folosit este similar, dar mai amator, și are un modul Bluetooth care permite controlul turelei de pe telefonul meu. Acesta este
Rainbow Blaster: 8 pași (cu imagini)
Rainbow Blaster: Rainbow Blaster Am avut ideea să fac un dispozitiv de mână pentru a „stropi” pulberea Holi. După un pic de experimentare, sa născut Rainbow Blaster! Dispozitivul este format din 5 sticle de dozare din plastic, care au în interiorul lor tuburi de sifon (paie)
ESP-12 Infra Red Blaster: 7 pași
ESP-12 Infra Red Blaster: Blaster de telecomandă Infra Red folosind esp8266 Transmite codurile de telecomandă primite de pe Web care acceptă mai multe dispozitive de ieșire. Construit într-o pagină web simplă, în principal pentru testare. Utilizarea normală se face prin mesaje POST care pot proveni din pagini web sau din IFTT