Satura rādītājs:

Zombijs, kas atklāj viedo drošības pūci (dziļa mācīšanās): 10 soļi (ar attēliem)
Zombijs, kas atklāj viedo drošības pūci (dziļa mācīšanās): 10 soļi (ar attēliem)

Video: Zombijs, kas atklāj viedo drošības pūci (dziļa mācīšanās): 10 soļi (ar attēliem)

Video: Zombijs, kas atklāj viedo drošības pūci (dziļa mācīšanās): 10 soļi (ar attēliem)
Video: NANDO pied. Edavārdi - Fizikas skolotājs (Official video) 2024, Novembris
Anonim

Sveiki visiem, laipni lūdzam T3chFlicks! Šajā Helovīna apmācībā mēs jums parādīsim, kā mēs ikdienišķai mājsaimniecības klasikai - drošības kamerai - piešķiram super spokainu vērpjot.

Kā ?! Mēs esam izveidojuši nakts redzamības pūci, kas izmanto attēlu apstrādi, lai izsekotu cilvēkus. Ak, un tas kūsā, gluži kā īstais!

Mēs esam ļoti satraukti par šo projektu, un mēs to gaidījām, kopš jaunā Raspberry Pi 4 izlaišanas. Tam ir 4 GB RAM, kas paver durvis daudzām aizraujošām iespējām, ieskaitot attēlu apstrādi ar dziļiem mācību modeļiem reālā laikā.

Ja vēlaties Helovīna laikā sekot līdzi zombiju tuvošanai vai vienkārši pārbaudīt savu dārzu visu atlikušo gadu, šis ir tas priekš jums. Drošībai nav jābūt garlaicīgai, lai tā būtu efektīva!

Piegādes

Šai konstrukcijai jums būs nepieciešams:

  • Raspberry Pi 4 (4 GB Ram) Amazon
  • Nakts redzamības kamera Amazon
  • Mikroservo Amazon
  • Viltus pūce Amazon
  • Līme Amazon
  • Krāsojiet Amazon
  • Skrūves Amazon
  • USB skaļrunis Amazon
  • Liels (5v+) portatīvais barošanas bloks Amazon
  • 3D printeris Amazon

1. darbība: 1. darbība: noņemiet galvu

1. solis: noņemiet galvu
1. solis: noņemiet galvu
1. solis: noņemiet galvu
1. solis: noņemiet galvu
1. solis: noņemiet galvu
1. solis: noņemiet galvu

a. Izvelciet galvu no pūces (dažreiz jums vienkārši jābūt nežēlīgam), stipri pavelkot uz galvas, kur tā piestiprinās pie atsperes.

b. Pūces galva savienojas ar ķermeni ar cilindru, kas atrodas uz lielas atsperes. Noņemiet šo cilindru, noņemot skrūvi.

c. Tikko noņemtais cilindrs ir izgatavots no divām daļām - plastmasas krūzes un gultņa, kas atrodas tā iekšpusē. Noņemiet gultni no cilindra, izmantojot skrūvgriezi (vai līdzīgu instrumentu).

d. Izmantojot skrūvi, kas savienoja cilindru ar atsperi, piestipriniet servo pie cilindra.

e. Noņemiet atsperi, atskrūvējot trīs skrūves, kas to nostiprina pie korpusa.

f. Pūces ķermeņa augšdaļā izveidojiet caurumu, kas ir pietiekami liels, lai ietilptu daži vadi un kameras kabelis. Lai to izdarītu, mēs izmantojām urbja un skrūvgrieža kombināciju.

2. darbība: 2. darbība: pievienojiet Smart

2. darbība: pievienojiet Smart
2. darbība: pievienojiet Smart
2. darbība: pievienojiet Smart
2. darbība: pievienojiet Smart
2. darbība: pievienojiet Smart
2. darbība: pievienojiet Smart

a. 3D izdrukājiet kameras korpusu un krāsojiet to, lai tas atbilstu pūcei - mēs izmantojām dažas lētas akrila krāsas. Gleznošana nav būtisks solis, bet tas ievērojami uzlabo kopējo izskatu!

b. Ar pūces galvu otrādi ieskrūvējiet kameras korpusa augšpusi galvas iekšpusē, kur knābis izvirzīts.

c. Ievietojiet kameru korpusā un pievienojiet kameras kabeli.

d. Līmējiet servo pie atsperes augšējā paneļa.

e. Pievienojiet garus vadus pie servo tapām (5V, Gnd, signāls)

f. Izvadiet kameras kabeli un servo vadus caur atsperi un caurumu, ko izveidojāt korpusa augšdaļā, lai tie būtu pūces dobajā korpusā.

3. darbība: 3. darbība: piepildiet viņu

3. solis: aizpildiet viņu
3. solis: aizpildiet viņu
3. solis: aizpildiet viņu
3. solis: aizpildiet viņu
3. solis: piepildiet viņu
3. solis: piepildiet viņu
3. solis: aizpildiet viņu
3. solis: aizpildiet viņu

a. Noņemiet spraudni no pūces dibena un palieliniet šī cauruma izmēru, sagriežot plastmasu. Turpiniet palielināt izmēru, līdz Raspberry Pi un skaļrunis var ietilpt pūces ķermenī.

b. Kad caurums ir pietiekami liels, lai visas sastāvdaļas ietilptu iekšā, izvelciet no pamatnes kameras kabeli, ko barojāt caur pūces augšdaļu, un pievienojiet to Raspberry Pi.

c. Līdzīgi izvelciet servo vadus un pievienojiet tos Raspberry Pi:

  • +5v uz servo => +5V uz Pi
  • Gnd servo => gnd Pi
  • Signāla servo => pin 12 Pi

d. Pievienojiet USB skaļruni Pi.

e. Ievietojiet SD karti Pi.

f. Power Pi, izmantojot pārnēsājamu barošanas avotu.

g. Ievietojiet Pi, barošanas avotu un skaļruni pūcē caur caurumu pamatnē.

4. darbība: 4. darbība: iestatiet Pi

4. solis: iestatiet Pi
4. solis: iestatiet Pi

VISU KODU var atrast vietnē

a. Lejupielādējiet Raspian un augšupielādējiet to savā SD kartē, izmantojot Balena Etcher.

b. Lai piekļūtu savam pi attālināti

  • Pievienojiet sāknēšanas SD kartei failu ar nosaukumu ssh
  • Pievienojiet failu ar nosaukumu wpa_supplicant.conf un ievietojiet savus wifi akreditācijas datus

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

    tīkls = {ssid = "MySSID" psk = "MyPassword"}

c. Ievietojiet SD karti pi un mēģiniet piekļūt, izmantojot ssh.

5. solis: 5. solis: galvas pārvietošana

5. solis: galvas pārvietošana
5. solis: galvas pārvietošana

Koda apmācība galvas pārvietošanai (servo vadīšana ar aveņu pi)

Lai kontrolētu servo, kas darbojas Pi, mēs izveidosim skriptu, kas kontrolē GPIO tapas, kurām servo ir pievienots.

a. Pievienojiet servo Pi:

  • +5v uz servo => +5V uz Pi
  • Gnd servo => gnd uz Pi
  • Signāla servo => pin 12 uz Pi

b. Vispirms jāiestata gpio tapas, lai servo signāla tapā izmantotu PWM.

c. Tad ir tik vienkārši, kā izvēlēties signāla tapas darba ciklu (paskaidrots šeit), lai pārvietotu servo no 90 grādiem ar darba ciklu no 7,5 līdz 0 grādiem, ja darba cikls ir 2,5, un līdz 180 grādiem ar darba ciklu 12.5

importēt RPi. GPIO kā GPIO

importēšanas laiks 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 grādu laiks.miega (1) p. ChangeDutyCycle (2.5) # 0 grādu laika.miega (1) p. ChangeDutyCycle (12.5) # 180 grādu laiks.gulēšana (1), izņemot tastatūruInterrupt: p.stop () GPIO.cleanup ()

6. darbība: 6. darbība

6. darbība
6. darbība
6. darbība
6. darbība

Koda apmācība pūces aplaupīšanai (audio atskaņošana ar aveņu pi)

a. Pievienojiet USB skaļruni.

b. Lejupielādējiet skaņu - mēs izvēlējāmies spooky haot.

c. Atskaņojiet skaņu, izpildot šo komandu: omxplayer -o alsa: hw: 1, 0 owl_sound.mp3

[d. Ja tas nedarbojas, pārbaudiet, kādu izvadi izmanto jūsu Pi, un ar kādu skaļumu, izmantojot komandu alsamixer - jūs tiksit sveicināts ar maisītāja ekrānu, kurā varēsit mainīt skaļumu un izvēlēties multivides ierīci. Lai palielinātu skaņas skaļumu, izpildiet šādu komandu kā omxplayer -o alsa: hw: 1, 0 owl_sound.mp3 --vol 500 Lai atskaņotu šo skaņu, izmantojot Python, apskatiet mūsu testa skriptu.]

importēt apakšprocesu

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

7. darbība: 7. darbība: straumējiet video no Pi

7. solis: straumējiet video no Pi
7. solis: straumējiet video no Pi
7. solis: straumējiet video no Pi
7. solis: straumējiet video no Pi

Koda apmācība, veidojot aveņu pi kameras straumi

a. Palaidiet python app.py un skatiet vietējā tīklā vietnē https://raspberrypi.local: 5000

b. Šis kods tika ņemts un nedaudz pielāgots no Migela Grinberga. Https://blog.miguelgrinberg.com/post/flask-video-… viņš labi izskaidro, kā tas tiek darīts, un viņa apmācības ir lieliskas-pārbaudiet viņu! Pamatkoncepcija ir tāda, ka mēs izmantojam pavedienus un ģeneratorus, lai uzlabotu straumēšanas ātrumu.

8. darbība: 8. darbība: ķermeņa noteikšana

8. darbība: ķermeņa noteikšana
8. darbība: ķermeņa noteikšana

Ķermeņa noteikšanas kods (ImageNetSSD video straumē ar aveņu pi)

a. Tā kā mēs izmantojam Raspberry Pi 4, mēs uzskatījām, ka vislabāk ir izmēģināt dažus dziļas mācīšanās modeļus, nevis pamata HaarCascade metodi, ar kuru līdz šim esam aprobežojušies.

b. Mēs apskatījām dažus iepriekš apmācītus modeļus, piemēram, YOLOv3, kas izskatās ļoti forši. YOLOv3 sīki svari, kas būtu ideāli piemēroti Pi, bet mēs nevarējām to palaist:(c. Tā vietā mēs izvēlējāmies MobileSSD modeli, kuru varam palaist, izmantojot openCVs DNN (dziļo neironu tīklu) moduli, kā mēs uzzinājām no šī koda: https://heartbeat.fritz.ai/real-time-object-detection-on-raspberry -pi-using-opencv-dnn-98827255fa60 un no attēlu apstrādes apmācību varoņa Adrian Rosebrock: https://www.pyimagesearch.com/2017/09/11/object-detection-with-deep-learning-and- opencv/

d. Tomēr, tā kā mēs cenšamies straumēt šo saturu un rādīt modeļus katrā kadrā, tiek iegūts aizkavēts, sadrumstalots video. Mēs atkal mācījāmies no Adrian Rosebrock https://www.pyimagesearch.com/2017/10/16/raspberry-pi-deep-learning-object-detection-with-opencv/ un izmantojām Python daudzapstrādes moduli, lai ievietotu mūsu attēlus rindās kur tos var apstrādāt, tik stipri nebloķējot kameras plūsmu.

e. Mēģiniet palaist kodu pats:)

9. darbība: 9. darbība: paziņojumu par zombiju sūtīšana

9. darbība: paziņojumu par zombijiem sūtīšana
9. darbība: paziņojumu par zombijiem sūtīšana
9. darbība: paziņojumu par zombijiem sūtīšana
9. darbība: paziņojumu par zombijiem sūtīšana

Paziņojuma nosūtīšanas kods (python uz tālruni)

a. Mēs nolēmām izmantot https://pushed.co paziņojumu pakalpojumu.

b. Jūs varat iegūt bezmaksas kontu un lejupielādēt lietotni un patiešām ātri izveidot paziņojumus mobilajām ierīcēm. Mēs izveidojām paziņojumus, izmantojot šādu pitona skriptu.

importēšanas pieprasījumus

payload = {"app_key": "APP_KEY", "app_secret": "APP_SECRET", "target_type": "app", "content": "Pūce ir konstatējusi zombiju." } r = request.post ("https://api.pushed.co/1/push", dati = lietderīgā slodze)

Tas ir ļoti vienkārši, un jūs varat pielāgot paziņojuma nosaukumu!

10. solis: Kāds āksts

Kāds āksts!
Kāds āksts!

Mēs ceram, ka jums patika mūsu viedās drošības pūces projekts! Šis ir bijis ļoti jautrs veidojums, un es jūtos daudz drošāk, zinot, ka manu māju sargā mūsu uzticamā pūce.

Ja jūs domājat, ka tas būtu pasakains Helovīna papildinājums jūsu viedajai mājai, lūdzu, balsojiet par mums konkursā Instructables Halloween un, kā parasti, lūdzu, atcerieties atzīmēt Patīk, komentēt un abonēt!

Reģistrējieties mūsu adresātu sarakstam!

Ieteicams: