Turinys:

„Zombie“aptinka išmaniąją apsaugos pelėdą (gilus mokymasis): 10 žingsnių (su nuotraukomis)
„Zombie“aptinka išmaniąją apsaugos pelėdą (gilus mokymasis): 10 žingsnių (su nuotraukomis)

Video: „Zombie“aptinka išmaniąją apsaugos pelėdą (gilus mokymasis): 10 žingsnių (su nuotraukomis)

Video: „Zombie“aptinka išmaniąją apsaugos pelėdą (gilus mokymasis): 10 žingsnių (su nuotraukomis)
Video: The Light Gate Welcomes Mike Clelland, August 7th, 2023- UFOs 2024, Lapkritis
Anonim

Sveiki visi, sveiki atvykę į „T3chFlicks“! Šioje Helovino pamokoje mes jums parodysime, kaip mes pribloškiame kasdienį buitinį klasiką: apsaugos kamerą.

Kaip ?! Mes sukūrėme naktinio matymo pelėdą, kuri naudoja vaizdų apdorojimą žmonėms sekti. O ir šėlsta, kaip tikra!

Mes labai džiaugiamės šiuo projektu ir laukiame, kol tai padarysime nuo tada, kai iškrito naujasis „Raspberry Pi 4“. Jame yra 4 GB RAM, kuri atveria duris daugybei tikrai įdomių galimybių, įskaitant vaizdų apdorojimą naudojant gilius mokymosi modelius realiuoju laiku.

Jei norite nepastebėti artėjančių zombių Helovino dieną arba tiesiog patikrinti savo sodą likusiais metų laikais, tai kaip tik jums. Saugumas neturi būti nuobodus, kad būtų veiksmingas!

Prekės

Šiai konstrukcijai jums reikės:

  • Raspberry Pi 4 (4 GB RAM) „Amazon“
  • „Amazon“naktinio matymo kamera
  • „Micro Servo Amazon“
  • Netikra pelėda Amazonė
  • Klijai „Amazon“
  • Dažykite „Amazon“
  • Varžtai „Amazon“
  • USB garsiakalbis „Amazon“
  • Didelis (5v+) nešiojamasis „Amazon“maitinimo šaltinis
  • 3D spausdintuvas „Amazon“

1 žingsnis: 1 žingsnis: nuimkite galvą

1 žingsnis: nuimkite galvą
1 žingsnis: nuimkite galvą
1 žingsnis: nuimkite galvą
1 žingsnis: nuimkite galvą
1 žingsnis: nuimkite galvą
1 žingsnis: nuimkite galvą

a. Patraukite galvą nuo pelėdos (kartais tiesiog turite būti žiaurus), stipriai traukdami ant galvos, kur ji prisitvirtina prie spyruoklės.

b. Pelėdos galva prie kūno jungiasi cilindru, esančiu ant didelės spyruoklės. Nuimkite šį cilindrą, išsukdami varžtą.

c. Ką tik išimtas cilindras pagamintas iš dviejų dalių: plastikinio puodelio ir guolio, esančio jo viduje. Atsuktuvu (ar panašiu įrankiu) nuimkite guolį nuo cilindro.

d. Naudodami varžtą, prijungusį cilindrą prie spyruoklės, pritvirtinkite servo prie cilindro.

e. Nuimkite spyruoklę, atsukdami tris varžtus, pritvirtinančius ją prie korpuso.

f. Pelėvos kūno viršuje padarykite skylę, kuri yra pakankamai didelė, kad tilptų kai kurie laidai ir fotoaparato kabelis. Norėdami tai padaryti, naudojome elegantišką grąžto ir atsuktuvo derinį.

2 veiksmas: 2 veiksmas: pridėkite „Smart“

2 veiksmas: pridėkite „Smart“
2 veiksmas: pridėkite „Smart“
2 veiksmas: pridėkite „Smart“
2 veiksmas: pridėkite „Smart“
2 veiksmas: pridėkite „Smart“
2 veiksmas: pridėkite „Smart“

a. 3D spausdinkite fotoaparato dėklą ir dažykite, kad jis atitiktų pelėdą - mes naudojome pigius akrilinius dažus. Tapyba nėra gyvybiškai svarbus žingsnis, tačiau tai žymiai pagerina bendrą vaizdą!

b. Apversdami pelėdos galvą, fotoaparato korpuso viršų įsukite į galvos vidų, kur snapas išsikiša.

c. Įdėkite fotoaparatą į dėklą ir prijunkite fotoaparato kabelį.

d. Klijuokite servo prie viršutinės spyruoklės plokštės.

e. Prijunkite ilgus laidus prie servo kaiščių (5V, Gnd, signalas)

f. Perkelkite kameros kabelį ir servo laidus per spyruoklę ir per skylę, kurią padarėte korpuso viršuje, kad jie būtų tuščiavidurio pelėdos korpuso viduje.

3 žingsnis: 3 žingsnis: užpildykite ją

3 žingsnis: užpildykite ją
3 žingsnis: užpildykite ją
3 žingsnis: užpildykite ją
3 žingsnis: užpildykite ją
3 žingsnis: užpildykite ją
3 žingsnis: užpildykite ją
3 žingsnis: užpildykite ją
3 žingsnis: užpildykite ją

a. Ištraukite kištuką iš pelėdos apačios ir padidinkite šios skylės dydį, supjaustydami plastiką. Toliau didinkite dydį, kol „Raspberry Pi“ir garsiakalbis tilps į pelėdos kūną.

b. Kai skylė bus pakankamai didelė, kad visi komponentai tilptų viduje, ištraukite fotoaparato kabelį, kurį tiekėte per pelėdos viršutinę dalį, iš pagrindo ir prijunkite jį prie „Raspberry Pi“.

c. Panašiai ištraukite servo laidus ir prijunkite juos prie „Raspberry Pi“:

  • +5v ant servo => +5V ant Pi
  • Gnd servo => gnd Pi
  • Signalo servo => kaištis 12 Pi

d. Prijunkite USB garsiakalbį prie „Pi“.

e. Įdėkite SD kortelę į „Pi“.

f. „Power Pi“naudojant nešiojamąjį maitinimo šaltinį.

g. Įkiškite „Pi“, maitinimo šaltinį ir garsiakalbį į pelėdą per pagrindo angą.

4 žingsnis: 4 žingsnis: nustatykite „Pi“

4 žingsnis: nustatykite „Pi“
4 žingsnis: nustatykite „Pi“

VISĄ KODĄ GALITE RASTI

a. Atsisiųskite „Raspian“ir įkelkite jį į savo SD kortelę naudodami „Balena Etcher“.

b. Norėdami pasiekti savo „pi“nuotoliniu būdu

  • Įtraukite failą pavadinimu ssh į įkrovos sd kortelę
  • Pridėkite failą pavadinimu wpa_supplicant.conf ir įveskite „Wi -Fi“prisijungimo duomenis

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

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

c. Įdėkite SD kortelę į pi ir pabandykite pasiekti per ssh.

5 žingsnis: 5 žingsnis: galvos judėjimas

5 žingsnis: galvos judėjimas
5 žingsnis: galvos judėjimas

Galvos perkėlimo kodo pamoka (servo valdymas su aviečių pi)

Norėdami valdyti „Pi“veikiančią servo sistemą, sukursime scenarijų, valdantį GPIO kaiščius, prie kurių prijungtas servo.

a. Prijunkite servo prie Pi:

  • +5v ant servo => +5V ant Pi
  • Gnd servo => gnd ant Pi
  • Signalo servo => 12 kaištis ant Pi

b. Pirmiausia turite nustatyti „gpio“kaiščius, kad servo signalo kaištyje būtų naudojamas PWM.

c. Tada taip paprasta, kaip pasirinkti signalinio kaiščio darbo ciklą (paaiškinta čia), norint perkelti servo nuo 90 laipsnių, kai darbo ciklas yra nuo 7,5 iki 0 laipsnių, kai darbo ciklas yra 2,5, ir iki 180 laipsnių, kai darbo ciklas yra 12.5

importuoti RPi. GPIO kaip GPIO

importo laikas GPIO.setmode (GPIO. BOARD) GPIO.setwarnings (klaidinga) GPIO.setup (12, GPIO. OUT) p = GPIO. PWM (12, 50) p.start (7.5) bandymas: o tiesa: p. ChangeDutyCycle (7.5) # 90 laipsnių laikas. Miego režimas (1) p. ChangeDutyCycle (2.5) # 0 laipsnių laiko. Miego režimas (1) p. ChangeDutyCycle (12.5) # 180 laipsnių laiko miego režimas (1), išskyrus klaviatūrąInterrupt: p.stop () GPIO.cleanup ()

6 veiksmas: 6 žingsnis: sukurkite

6 žingsnis: sukurkite kvapą
6 žingsnis: sukurkite kvapą
6 žingsnis: sukurkite kvapą
6 žingsnis: sukurkite kvapą

„Pelėsių šurmulio“kūrimo pamoka (leidžiant garsą su aviečių pi)

a. Prijunkite USB garsiakalbį.

b. Atsisiųskite garsą - mes pasirinkome baisų šurmulį.

c. Paleiskite garsą vykdydami šią komandą: omxplayer -o alsa: hw: 1, 0 owl_sound.mp3

[d. Jei tai neveikia, patikrinkite, kokią išvestį naudoja „Pi“ir kokiu garsumu, naudodami komandą „alsamixer“- būsite pasveikinti su maišytuvo ekranu, kuriame galėsite pakeisti garsumą ir pasirinkti medijos įrenginį. Jei norite padidinti garso garsumą, atlikite tokią komandą kaip „omxplayer“-o alsa: hw: 1, 0 owl_sound.mp3 --vol 500 Norėdami paleisti šį garsą naudodami „Python“, peržiūrėkite mūsų bandomąjį scenarijų.]

importuoti papildomą procesą

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. PIPE)

7 veiksmas: 7 veiksmas: transliuokite vaizdo įrašą iš „Pi“

7 veiksmas: transliuokite vaizdo įrašą iš „Pi“
7 veiksmas: transliuokite vaizdo įrašą iš „Pi“
7 veiksmas: transliuokite vaizdo įrašą iš „Pi“
7 veiksmas: transliuokite vaizdo įrašą iš „Pi“

Kodo pamoka kuriant aviečių pi kameros srautą

a. Paleiskite „python app.py“ir peržiūrėkite vietiniame tinkle adresu https://raspberrypi.local: 5000

b. Šis kodas buvo paimtas ir šiek tiek pritaikytas iš Miguelio Grinbergo https://blog.miguelgrinberg.com/post/flask-video- … jis puikiai paaiškina, kaip tai daroma, ir jo pamokos yra puikios-patikrinkite jį! Pagrindinė koncepcija yra ta, kad mes naudojame sriegimą ir generatorius, kad pagerintume srautinio perdavimo greitį.

8 veiksmas: 8 veiksmas: kūno aptikimas

8 žingsnis: kūno aptikimas
8 žingsnis: kūno aptikimas

Kūno aptikimo kodas („ImageNetSSD“vaizdo įrašo sraute su aviečių pi)

a. Kadangi mes naudojame „Raspberry Pi 4“, manėme, kad geriausia būtų išbandyti kai kuriuos giluminio mokymosi modelius, o ne pagrindinį „HaarCascade“metodą, kuriuo iki šiol apsiribojome.

b. Mes pažvelgėme į kai kuriuos iš anksto apmokytus modelius, tokius kaip YOLOv3, kuris atrodo labai šauniai. YOLOv3 maži svoriai, kurie būtų puikiai tikę „Pi“, bet negalėjome jo paleisti:(c. Vietoj to, mes pasirinkome „MobileSSD“modelį, kurį galime paleisti naudodami „openCVs“DNN (giliojo nervinio tinklo) modulį, kaip sužinojome iš šio kodo: https://heartbeat.fritz.ai/real-time-object-detection-on-raspberry -pi-using-opencv-dnn-98827255fa60 ir iš vaizdų apdorojimo vadovėlių herojaus Adriano Rosebroko: https://www.pyimagesearch.com/2017/09/11/object-detection-with-deep-learning-and- opencv/

d. Tačiau, kai bandome transliuoti šį turinį ir paleisti modelius kiekviename kadre, gaunamas atsilikęs, suskaidytas vaizdo įrašas. Mes vėl sužinojome iš Adrian Rosebrock https://www.pyimagesearch.com/2017/10/16/raspberry-pi-deep-learning-object-detection-with-opencv/ ir panaudojome „Python“daugiaprocesinį modulį, kad mūsų vaizdai atsidurtų eilėse. kur juos galima apdoroti taip stipriai neužstojant kameros srauto.

e. Pabandykite paleisti kodą patys:)

9 veiksmas: 9 veiksmas: pranešimų apie zombius siuntimas

9 veiksmas: pranešimų apie zombius siuntimas
9 veiksmas: pranešimų apie zombius siuntimas
9 veiksmas: pranešimų apie zombius siuntimas
9 veiksmas: pranešimų apie zombius siuntimas

Pranešimo siuntimo kodas („Python“į telefoną)

a. Mes nusprendėme naudoti https://pushed.co pranešimų paslaugą.

b. Galite gauti nemokamą paskyrą ir atsisiųsti programą ir tikrai greitai nustatyti pranešimus mobiliesiems. Mes sukūrėme pranešimus naudodami tokį „python“scenarijų.

importo užklausų

payload = {"app_key": "APP_KEY", "app_secret": "APP_SECRET", "target_type": "app", "content": "Pelėda aptiko zombį." } r = request.post ("https://api.pushed.co/1/push", duomenys = naudingoji apkrova)

Tai labai paprasta ir galite pritaikyti savo pranešimo pavadinimą!

10 žingsnis: koks šūdas

Koks šūdas!
Koks šūdas!

Tikimės, kad jums patiko mūsų „Smart Security Owl“projektas! Tai buvo labai smagus gaminys, ir aš jaučiuosi daug saugesnis, žinodamas, kad mano namus saugo mūsų patikima pelėda.

Jei manote, kad tai būtų nuostabus Helovino priedas jūsų išmaniesiems namams, balsuokite už mus konkurse „Instructables Halloween“ir, kaip įprasta, nepamirškite pamėgti, komentuoti ir užsiprenumeruoti!

Užsiregistruokite mūsų pašto adresų sąraše!

Rekomenduojamas: