Sisukord:

Näotuvastuspeegel salajase sektsiooniga: 15 sammu (piltidega)
Näotuvastuspeegel salajase sektsiooniga: 15 sammu (piltidega)

Video: Näotuvastuspeegel salajase sektsiooniga: 15 sammu (piltidega)

Video: Näotuvastuspeegel salajase sektsiooniga: 15 sammu (piltidega)
Video: The Light Gate Welcomes Dr. Irena McCammon Scott PhD., July 10th, 2023 2024, November
Anonim
Näotuvastuspeegel salajase sektsiooniga
Näotuvastuspeegel salajase sektsiooniga
Näotuvastuspeegel salajase sektsiooniga
Näotuvastuspeegel salajase sektsiooniga
Näotuvastuspeegel salajase sektsiooniga
Näotuvastuspeegel salajase sektsiooniga

Mind on alati huvitanud lugude, filmide jms kasutatud alatasa loovad salajased sektsioonid. Niisiis, kui nägin salajase sektsiooni võistlust, otsustasin selle ideega ise katsetada ja teha tavalise välimusega peegli, mis avab salajase sahtli, kui õige inimene seda vaatab.

Kasutades Raspberry Pi-d, mõningaid teadmisi pythoni programmeerimisest ja 8. klassi poeklassi, saame luua selle imelise seadme, et peita nähtavale nähtavad objektid, millele pääseb juurde ainult õigel kasutajal.

Tahaksin eriliselt tänada neid inimesi/platvorme, kust ka oma teabe ja ressursid sain:

TeCoEd - Youtube'i kanal

Emmet ettevõttest PiMyLifeUp

MJRoBot saidil Hackster.io (profiil)

Gaven MacDonald - Youtube'i kanal

Tucker Shannon saidil Thingiverse (profiil)

Tarvikud

Raami tarvikud:

  • Puitplaat (selle plaadi mõõtmed olid 42 "7,5" 5/16 ")
  • Pliiatsi pildiraam (klaasiga)
  • Pihustusvärv
  • Ühesuunaline peegeldav liim
  • Klaasipuhastusvahend ja kalts
  • MDF puit

Näotuvastustarbed:

  • Vaarika Pi (kasutasin Pi 3 B+, kuid on ka teisi võimalusi)
  • Kaamera moodul
  • Sammumootor

Tööriistad:

  • Laua saag
  • Jig Saw
  • LiivapaberPuu
  • GlueTape
  • Mõõda
  • Käärid
  • Pihustuspudel
  • 3D printer
  • Super liim

Samm: karbiraami lõikamine

Lõiked karbiraami jaoks
Lõiked karbiraami jaoks
Lõiked karbiraami jaoks
Lõiked karbiraami jaoks
Lõiked karbiraami jaoks
Lõiked karbiraami jaoks
Lõiked karbiraami jaoks
Lõiked karbiraami jaoks

Pildiraami ostsin kasutatud asjade poest. Lihtsalt hoiatuseks, veenduge, et raami moodustavad plangud oleksid vähemalt 1 1/2 tolli laiad. Nii saate liimida sellele muid puitlaudu, kus on piisavalt ruumi töötamiseks. Veenduge ka, et klaas oleks raam on täiesti selge. Ostsin kogemata jäätunud ja siis pidin ostma teise raami ainult läbipaistva klaasi jaoks. Kuna minu raami kasutatakse, võivad karbiraami mõõtmed erineda.

  • Asetage raam portree suunas. Mõõda raamil olevate klaasiaugu külgede pikad küljed (LS), lisades ½”nii ülalt kui ka alt. (st lisage klaasiaugu mõõtmise pikale küljele tolli. Salvestage see ja märgistage LSM (Long Side Measurement).
  • Samamoodi mõõtke augu ülemine külg ja lisage veel 1”. Salvestage see ja märkige SSM (lühikese külje mõõtmine).
  • Võtke oma plaat ja lõigake lauasaega kaks LSM x 2”ja kaks SSM x 2”.
  • Võtke üks LSM -i lõikudest ja mõõtke 2 "x1" ristkülik, mis on alt 1 "ja ½" vasakult ja paremalt küljelt (nagu näidatud joonisel 3).
  • Ava lõikamiseks kasutage pusle. Seejärel kasutage servade lihvimiseks liivapaberit.

2. samm: sahtli lõikamine

Lõiked sahtli jaoks
Lõiked sahtli jaoks
Lõiked sahtli jaoks
Lõiked sahtli jaoks
Lõiked sahtli jaoks
Lõiked sahtli jaoks
Lõiked sahtli jaoks
Lõiked sahtli jaoks

Nüüd hakkame sahtlit ehitama (ka salajane sahtel).

  • Lõika välja kaks 4 x 1 tolli külge, 3 x 1 tolli (tagumine serv), 4 x 1 x (esiserv) ja 4 tolli x 3 tolli (platvorm).
  • Liimige esimene 4”x 1” külg mööda platvormi 4”külge. Panin paar volditud paberit platvormi külje alla, nii et see oli veidi üles tõstetud, nii et see ei lohistaks auku, mille ma LS -plaadist välja lõikasin. Seadke 30 minutiks kuivama.
  • Sarnaselt liimige 3 x 1 tolli mööda platvormi 3 ″ serva. Seadke 30 minutiks kuivama. Seejärel liimige teine 4”x 1” külg esimese vastasküljele. Seadke 30 minutiks kuivama.
  • Pange esiserv praegu kõrvale. See on viimane asi, mis sahtli külge liimitakse.
  • Kui olete lõpetanud, kontrollige, kas see sobib LSM -plaadile puslega auku. Kui ei, siis lihvige auku, kuni sahtel hõlpsasti sisse ja välja libiseb ning takistus puudub.

3. samm: raami kokku panemine

Raami kokku panemine
Raami kokku panemine
Raami kokku panemine
Raami kokku panemine
Raami kokku panemine
Raami kokku panemine

Kui kõik osad on valmis, saame hakata kogu raami kokku panema.

  • Liimige LSM -plaat klaasist ava keskele, ½”mõlemal küljel. Veenduge, et see oleks liimitud ½ tolli kaugusel (nagu näidatud pildil 1). Seadke 30 minutiks kuivama.
  • Liimige esimene SSM -plaat, mille serv puudutab äsja liimitud LSM -plaadi sisekülge. (Kasutage joonlauda, et see oleks otse liimitud). Seadke 30 minutiks kuivama.
  • Võtke teine LSM -i külg ja liimige sarnaselt esimesele. Veenduge, et see oleks avast ½ tolli kaugusel ja et äsja kinnitatud SSM oleks plaadi siseküljele liimitud. Seadke 30 minutiks kuivama.
  • Liimige viimane SSM ülemisele servale. Kuna teil on mõlemal küljel kaks LSM -i, olenevalt sellest, kui otse need kinnitasite, peate võib -olla SSM -i küljed maha lihvima, et veenduda selle sobivuses (minu lõikamine on mõnikord välja lülitatud). Seadke 30 minutiks kuivama.
  • Mõõtke väike ruum sahtli põhja ja raami vahel. Lõigake selle mõõtmega MDF -puidust tükk 4 "võrra. Soovite selle tüki sahtli lähedale asetada, kuid ei puuduta seda. See on mõeldud sahtli toetamiseks minimaalse hõõrdumisega.
  • Kui kõik on tehtud, värvisin raami pihustiga, nii et kõik tükid sobiksid kokku.

4. samm: peegli jaoks

Peegli jaoks
Peegli jaoks
Peegli jaoks
Peegli jaoks
Peegli jaoks
Peegli jaoks
Peegli jaoks
Peegli jaoks

Amazonist ostetud ühepoolne kileliim oli umbes 10 dollarit. On parema kvaliteediga, mis on huvi korral veidi kallim. See, mida ma kasutan, peegeldab, kuid võite öelda, et see pole tavaline peegel, mida näeksite kodus. Kallimad pakuvad teile sellist välimust.

  • Puhastage klaasi mõlemalt poolt klaasipuhastusvahendiga.
  • Rullige ühesuunaline liim lahti ja asetage klaas peale. Lõika liim välja nii, et klaasi mõlemal küljel oleks vähemalt ½ tolli.
  • Pange klaas kõrvale ja märkige selle üks pool veega. Seejärel eemaldage plastkate ühepoolse liimi küljest ja piserdage värskelt avatud külg veega.
  • Asetage klaasi märg külg liimi märjale poolele. Laske istuda 30 minutit.
  • Pöörake ümber ja kasutage pöidlaga, et tasandada mullid liimi ja klaasi vahel. Seejärel lõigake liigne liim servade ümber.

Samm: installige Raspbian Stretch

Kuna ma olin esimest korda Raspberry Pi keskkonda süvenenud, hakkasin otsima juhiseid OS -i installimiseks. Lõpuks leidsin Youtube'ist TeCoEdilt lihtsa õpetuse, mis läbis Stretchi SD -kaardile installimise protsessi (koos üsna armsa sissejuhatusega). Siin on selle õpetuse link:

Põhimõtteliselt peate tegema ainult järgmist:

  • Vormindage SD -kaart, valides oma Drive >> Drive Tools >> Format. Laadige alla Raspian Stretchi ZIP-fail (leiate siit:
  • Välk OS -i pilt SD -kaardile. TeCoEd kasutas selle lõpuleviimiseks Win32 Disk Imagerit. Lõpuks installisin balenaEtcheri, mis tundus natuke lihtsam. (Siin on balenaEtcheri allalaadimislink:
  • Kui olete balenaEtcheris, valige „Flash from File” ja valige varem alla laaditud ZIP -fail. Seejärel valige soovitud SD -kaart (kui seda automaatselt ei valita). Seejärel vajutage mahlast välgunuppu ja oodake, kuni maagia juhtub.

Pärast SD -kaardile installimist saate selle sisestada Raspberry Pi -sse ja läbida üldine Pi seadistusprotsess.

Samm: installige OpenCV

Nüüd aga näotuvastusele orienteeritud osade juurde. Nägude äratundmiseks peame alla laadima OpenCV raamatukogu, mis sisaldab tohutul hulgal tööriistu arvutinägemisega töötamiseks.

OpenCV installimine oli minu jaoks kõige raskem osa tarkvara aspektist. Kuid pärast arvukate juhiste järgimist leidsin lõpuks Emmeti õpetuse PiMyLifeUpist, mis tegi triki, mille leiate siit:

Ma ei käi neid samme läbi, sest teile sobib paremini nende linkide järgimine (antud selgituste ja võimalusega hõlpsamini otse saidilt kopeerida ja kleepida).

Samm 7: Kaamera lubamine/testimine

Luba/testige kaamerat
Luba/testige kaamerat
Luba/testige kaamerat
Luba/testige kaamerat

Pärast OpenCV installimist lõpetati ülejäänud teekond, kasutades MJRoBoti õpetust saidil Hackster.io, mille leiate siit:

Enne alustamist tahaksin teile meelde tuletada, et ma ei ole nende skriptide algne looja, kuid muutsin lõpuks nende osi.

Alustuseks peaksime katsetama kaamerat, et veenduda, kas suudame ekraanile videot jäädvustada. Proovisin umbes tund aega käivitada MJRoBoti 3. etapis esitatud skripti. Nagu elus oleks, peame tegelikult lubama Raspberry Pi kaamera (selgub, et võib olla hea mõte lugeda juhiseid … mmm ei). Nii et pärast kaamera ühendamist õige pordiga toimige järgmiselt.

  • Avage käsuterminal ja tippige sudo raspi-config
  • Valige „Luba kaamera” (see võib leida seadmete valiku alt)
  • Vajutage "Enter"
  • Minge jaotisse „Lõpeta” ja teil palutakse taaskäivitada

Seejärel järgige neid samme.

  • Minge Vaarika peamenüüsse (üleval vasakul)
  • Eelistused
  • Vaarika Pi konfiguratsioon
  • Liidesed
  • Seejärel valige kaameras „Lubatud”
  • Siis "OK"

Nüüd peaksite kaamera skriinimiseks MJRoBoti õpetusest selle skripti edukalt käivitama (pidage meeles, et kogu see kood ja põhjalikum kirjeldus on toodud ülaltoodud lingil MJRoboti õpetusele):

import numpy np -na

import cv2 cap = cv2. VideoCapture (0) cap.set (3, 640) # set Width cap.set (4, 480) # set Kõrgus samas (True): ret, frame = cap.read () frame = cv2. flip (raam, -1) # Pööra kaamera vertikaalselt hall = cv2.cvtColor (raam, cv2. COLOR_BGR2GRAY) cv2.imshow ('raam', raam) cv2.imshow ('hall', hall) k = cv2.waitKey (30) & 0xff, kui k == 27: # murda korkist väljumiseks vajutage ESC. Release () cv2.destroyAllWindows ()

Eelmine kood peaks kuvama kahte akent, ühe värvilise ja teise halltoonides. Kui olete nii kaugele jõudnud, arvan, et väärite kena võileiba.

8. samm: andmete ja koolitusandmete kogumine

Andmete kogumine ja koolitusandmed
Andmete kogumine ja koolitusandmed
Andmete kogumine ja koolitusandmed
Andmete kogumine ja koolitusandmed
Andmete kogumine ja koolitusandmed
Andmete kogumine ja koolitusandmed

Esitatud õpetuses süveneb autor peatselt esitatava koodi protsessidesse palju põhjalikumalt, kuid kuna need on juhised selle peegli valmistamiseks, ei süvene ma ajalukku ega keerulisse mehaanikasse. Siiski soovitan teil kuu aega oma elust lugeda neid kahte asja, sest need võivad teie meelt hästi teenida.

Enne selle toimimist saame käivitada veel umbes kolm skripti. Esimene on andmete kogumiseks, teine nende koolitamiseks ja viimane on tegelikult äratundmiseks. Andmete kogumiseks on vaja tegelikke näopilte teha ja koolituseks kindlasse kohta salvestada. Selle koodi looja tegi selle tegemise väga lihtsaks, seega soovitan peavalu vältimiseks järgida neid juhiseid.

Avage käsurida ja tehke uus kataloog, nimetades selle millekski lõbusaks (helistasin oma FaceRecile)

mkdir FaceRec

Nüüd muutke kataloog FaceReciks ja tehke alamkataloogile kindlasti andmekogum

cd FaceRec

mkdir andmekogum

Sel ajal saame teha ka teise alamkataloogi nimega treener

mkdir treener

Nüüd saate käivitada ja järgida esimese skripti juhiseid, mis salvestavad kasutaja pilte. (Lihtsalt head -up, sisestage kindlasti kasutajatunnus kas 1, 2, 3 jne.)

import cv2import os cam = cv2. VideoCapture (0) cam.set (3, 640) # video laiuse määramine cam.set (4, 480) # video kõrguse määramine face_detector = cv2. CascadeClassifier ('haarcascade_frontalface_default.xml') # Iga isik, sisestage üks numbriline näo ID face_id = sisend ('\ n sisestage kasutaja ID lõpp vajutage ==>') print ("\ n [INFO] Näo jäädvustamise initsialiseerimine. Vaadake kaamerat ja oodake…") # Individuaalse proovide võtmise nägude loendamine count = 0 samas (True): ret, img = cam.read () img = cv2.flip (img, -1) # flip videopilt vertikaalselt hall = cv2.cvtColor (img, cv2. COLOR_BGR2GRAY) näod = face_detector.detectMultiScale (hall, 1,3, 5) (x, y, w, h) nägudel: cv2. ristkülik (img, (x, y), (x+w, y+h), (255, 0, 0), 2) count + = 1 # Salvesta tehtud pilt andmekogumite kausta cv2.imwrite ("andmestik/kasutaja." + Str (näo_id) + '.' + Str (loend) + ".jpg", hall [y: y +h, x: x+w]) cv2.imshow ('pilt', img) k = cv2.waitKey (100) & 0xff # Videost väljumiseks vajutage 'ESC', kui k == 27: break elif count> = 30: # Võtke 30 näoproovi ja peatage video k print ("\ n [INFO] Programmist väljumine ja puhastustööd") cam.release () cv2.destroyAllWindows ()

Sel hetkel veenduge, et olete Pi -le padja paigaldanud. Kui ei, käivitage käsk:

pip paigaldada padi

Pärast selle lõpetamist saate käivitada koolitusskripti (teine skript), mis pakub teile sujuvalt.yaml -faili, mida kasutatakse lõplikus skriptis

import cv2import numpy np -na PIL -i importimisest Pildi importimine os # Näopildi andmebaasi tee = 'andmestiku' äratundja = cv2.face. LBPHFaceRecognizer_create () detektor = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml"); # funktsioon piltide ja siltide andmete saamiseks: PIL_img = Image.open (imagePath).convert ('L') # teisenda see halltoonideks img_numpy = np.array (PIL_img, 'uint8') id = int (os.path.split (imagePath) [-1]. split (".") [1]) näod = detektor.detectMultiScale (img_numpy) (x, y, w, h) nägudel: faceSamples.append (img_numpy [y: y+h, x: x+w]) ids.append (id) return faceSamples, ids print ("\ n [INFO] Treenib nägusid. See võtab paar sekundit. Oota…") näod, ids = getImagesAndLabels (tee) tunnistaja.train (näod, np.array (id)) # Salvestage mudel treenerisse/treener.yml tunnistaja.write ('treener/koolitaja.yml') # tunnistaja.save () töötas Macis, kuid mitte Pi -s # Printige koolitatud nägude arv ja lõpetage programmi printimine ("\ n [INFO] {0} nägu on koolitatud. Programmist väljumine".format (len (np.unique (ids))))

Selle skriptikomplekti juures on lahe see, et süsteemi saab sisestada mitu nägu, mis tähendab, et soovi korral pääsevad mitmed inimesed peegli sisemusse.

Allpool on allalaadimiseks saadaval andmete kogumise skript ja koolitusskript.

9. samm: näo äratundmise aeg

Näo äratundmise aeg
Näo äratundmise aeg
Näo äratundmise aeg
Näo äratundmise aeg

Lõpuks saame käivitada äratundja skripti. Sellele skriptile lisati rohkem koodi, et muuta mootoriprotsess funktsionaalseks, nii et selgitan neid osi veidi põhjalikumalt. Ma jagan selle osadeks, kuid panen kogu skripti sammu lõppu, kui see on see, mida te taga ajate.

Alustuseks importime kõik vajalikud moodulid ja seadistame GPIO -režiimi GPIO. BCM

import numpy np -na

import os import aeg import RPi. GPIO kui GPIO GPIO.setwarnings (vale) GPIO.setmode (GPIO. BCM)

See järgmine nimekiri nimega ControlPin on numbrimassiiv, mis tähistab meie samm -mootori jaoks kasutatavaid väljundnööpe.

ControlPin = [14, 15, 18, 23]

For-loop määrab need tihvtid väljunditeks ja seejärel veendub, et need on välja lülitatud. Mul on siin veel mingi kood, et lasta sahtel nupuvajutusega sulgeda, kuid otsustasin selle asemel kasutada taimerit.

GPIO.seadistus (ControlPin , GPIO. OUT)

GPIO.väljund (ControlPin , 0) GPIO.setup (2, GPIO. IN, pull_up_down = GPIO. PUD_DOWN)

Järgmised kaks muutujat on järjestused, mida kasutame mootori juhtimiseks. Ma õppisin seda teavet Gaven MacDonaldi imelisest videost, mida soovitan tungivalt vaadata, kuna ta süveneb mitte ainult koodi, vaid ka tegeliku mootori osas (leiate siit: https://www.youtube.com/embed/Dc16mKFA7Fo). Sisuliselt kordatakse iga jada tulevaste funktsioonide openComp ja closeComp pesastatud for-loopide abil. Kui vaatate tähelepanelikult, on seq2 täpselt vastupidine seq1 -le. Jah, sa arvasid. Üks on mõeldud mootori edasiliikumiseks ja teine tagurpidi.

seq1 =

seq2 =

Alates funktsioonist openComp loome for-loop, mis kordub 1024 korda. MacDonaldsi video kohaselt tagaks 512 iteratsiooni mootori täieliku pöörlemise ja leidsin, et umbes kaks pööret oli hea pikkus, kuid seda saab reguleerida sõltuvalt inimese suurusest. Järgmine tsükkel koosneb kaheksast iteratsioonist, et võtta arvesse järjestustes seq1 ja seq2 leitud 8 massiivi. Ja lõpuks, viimane kordusring kordab neli korda nelja elemendi kohta, mida leidub igas neist massiividest, ning 4 GPIO-tihvti, millega meie mootor on ühendatud. Siin olev joon valib GPIO tihvti ja lülitab selle siis sisse või välja, sõltuvalt sellest, milline iteratsioon see on sisse lülitatud. Järgnev rida annab puhveraja, et meie mootor üldse ei pöörleks. Pärast mootori pöörlemist sahtli väljaviimiseks magab see enne edasiliikumist 5 sekundit. Seda aega saab siin reguleerida või lubada kommenteeritava koodi, mis võimaldab kasutada nuppu, et edastada skripti, mitte taimerit.

i vahemikus (1024):

vahemikus (8): pooltapp (2) == GPIO. LOW: vaheaeg; "" time.sleep (5)

Funktsioon closeComp töötab sarnaselt. Pärast mootori tagasiliikumist seadsin meie viimased GPIO tihvtid madalaks, et veenduda, et me ei raiska energiat, ja lisan enne jätkamist veel kolm sekundit aega.

i vahemikus (1024):

vahemikus (8) poole sammu jaoks: tsooni vahemikus (4): GPIO.output (ControlPin [pin], seq2 [halfstep] [pin]) time.sleep (.001) print ("Compartment Closed") GPIO.output (ControlPin [0], 0) GPIO.väljund (ControlPin [3], 0) time.sleep (3)

Suure osa järgmisest osast kasutatakse kaamera seadistamiseks ja näotuvastuse alustamiseks. Jällegi käsitlevad MKRoBoti juhised osi rohkem, kuid praegu näitan lihtsalt peegli jaoks kasutatud osi.

Kõigepealt muutsin nimekirjade nimesid nii, et minu nimi oleks registris, mille määrasin andmete kogumise ajal (minu puhul 1). Ja siis määrasin ülejäänud väärtused väärtusele Puudub, kuna mul polnud andmestikus enam nägusid.

names = ['puudub', 'Daniel', 'pole', 'pole', 'pole', 'pole']

Meie viimased koodiridad on rakendatud thicc for-loop'i. Lõin muutuja, et salvestada usaldus täisarvuna (intConfidence), enne kui muutuja usaldus muutub stringiks. Seejärel kasutan if-lauset, et kontrollida, kas usaldus on suurem kui 30 ja kas id (millist inimest arvuti tuvastab, antud juhul “Daniel”) on minu nimega võrdne. Kui see on kinnitatud, kutsutakse üles funktsioon openComp, mis (nagu eespool selgitatud) liigutab mootorit, käivitub 5 sekundi pärast ja seejärel jätkab sulgemistComp, mis liigutab mootorit vastupidises suunas ja teeb enne puhastusringi jätkamist mõningast puhastust.

kui enesekindlus> 30 ja id == 'Daniel':

openComp () closeComp ()

Viga, mille ma siit leidsin, on see, et mõnikord pärast closeCompi tagasipöördumist kood jätkub, kuid tingimuslik if-lause leitakse olevat jälle tõene, justkui loeks see puhvris olevat videovoogu. Kuigi see ei juhtu iga kord, kui ma pole veel leidnud viisi, kuidas seda kunagi juhtuda, nii et kui kellelgi on ideid, andke mulle kommentaarides teada.

Siin on kogu skript ühes kohas (ja selle all on allalaaditav):

import cv2

import numpy np -na import import os impordi aeg import RPi. GPIO GPIO -na GPIO.setwarnings (vale) GPIO.setmode (GPIO. BCM) ControlPin = [14, 15, 18, 23] i vahemikus (4): GPIO.setup (ControlPin , GPIO. OUT) GPIO.väljund (ControlPin , 0) GPIO.seadistus (2, GPIO. IN, pull_up_down = GPIO. PUD_DOWN) seq1 =

Samm: Pi paigaldamine ja mootori ühendamine

Pi paigaldamine ja mootori ühendamine
Pi paigaldamine ja mootori ühendamine
Pi paigaldamine ja mootori ühendamine
Pi paigaldamine ja mootori ühendamine
Pi paigaldamine ja mootori ühendamine
Pi paigaldamine ja mootori ühendamine

Raspberry Pi paigaldamine raamile oli üsna lihtne. Ma kujundasin väikese 90-kraadise küünarnuki, mille ühel küljel oli auk ja teine külg oli täiesti tasane. Pärast 3D -printimist saab neist kaks kinnitada kruvidega Raspberry Pi külge selle kinnitusavade külge (kasutasin kahte auku GPIO tihvtide mõlemal küljel).

Seejärel hakkasin 3D -trükitud küünarnukkide vastaskülgedel kasutama superliimi, et liimida Pi vahetult raami sahtli kohal. Pärast liimi kuivamist lasin Pi lihtsalt ja mugavalt kahe kruviga asendisse eemaldada või asendada. Mul on küünarnuki.stl allpool lingitud.

Nüüd ühendage lihtsalt mootorijuht PI -ga, kasutades IN1, IN2, IN3, IN4, ühendades vastavalt GPIO 14, 15, 18, 23. Lõpuks ühendage kontrollerplaadi 5v ja maanduspoldid Pi 5v väljundi ja maanduspistikutega.

Siin on viide Pi's Pinoutile viitamiseks:

11. samm: kaamera paigaldamine

Kaamera paigaldamine
Kaamera paigaldamine
Kaamera paigaldamine
Kaamera paigaldamine
Kaamera paigaldamine
Kaamera paigaldamine

Kaamera paigaldamine oli pisut vähem vastupidav kui Pi, kuid meetod sai töö tehtud. Pärast õhukese tala kujundamist ja printimist, mille mõlemas otsas oli 2 auku, kinnitasin tala selle kinnitusava kaudu Rasberry Pi külge. Seejärel kinnitage kaamera teise kruviga tala vastasküljele. Ta-da! See näeb välja päris kärbes.

12. samm: sahtli liigutamismehhanismi loomine ja paigaldamine

Sahtli liigutamise mehhanismi loomine ja paigaldamine
Sahtli liigutamise mehhanismi loomine ja paigaldamine
Sahtli liigutamise mehhanismi loomine ja paigaldamine
Sahtli liigutamise mehhanismi loomine ja paigaldamine
Sahtli liigutamise mehhanismi loomine ja paigaldamine
Sahtli liigutamise mehhanismi loomine ja paigaldamine

See samm tehti lihtsaks tänu tegijate kogukonna alati heatahtlikele kingitustele. Pärast kiiret otsingut Thingiverse'is suutsin leida TucksProjects'i loodud lineaarse ajami (leitud siit: https://www.thingiverse.com/thing:2987762). Ei jäänud muud üle, kui see SD -kaardile laksutada ja lasta printeril tööd teha.

Lõpuks läksin Fusion 360 -sse ja muutsin kannust, kuna mu mootori võll oli TucksProjects'i pakutava jaoks liiga suur. Selle jaoks on mul allpool.stl. Pärast printimise lõppu peame selle lihtsalt kokku panema, asetades kannuse mootori võllile, seejärel kinnitades mootori ja korpuse küljed 2 kruviga (enne sulgemist veenduge, et asetate riiuli vahele). Lõpuks pidin rackist tolli ära lõikama, et see mahuks sahtli ja raami vahele.

Nüüd jääb üle ainult mehhanismi raami ja sahtli külge kinnitamine. "KUIDAS KASUTADA?" te küsite … jah, öelge seda minuga: superliim. Nagu ülaltoodud piltidel näidatud, asetage mehhanism lihtsalt raami põhja vastu ja lükake see vastu puutükki, millel sahtel libiseb. Siinkohal on ülioluline püüda riiul/mehhanism raamiga võimalikult paralleelselt asetada, nii et mehhanismi liigutamisel lükkaks see sahtlit otse, mitte nurga all. Pärast liimi kuivamist asetage resti servale veel natuke liimi ja liigutage sahtel oma kohale ning laske sellel kuivada. Kui see on valmis, on meil tugev mehhanism oma salajase sahtli sisse ja välja libistamiseks.

13. samm: papi lisamine peegli taha

Papi lisamine peegli taha
Papi lisamine peegli taha
Papi lisamine peegli taha
Papi lisamine peegli taha
Papi lisamine peegli taha
Papi lisamine peegli taha

Selleks, et see kahesuunaline kile peeglitaolisem välja näeks, leidsin, et meie eesmärki täidab hästi papi paigutamine klaasi taha. Kasutatav papp on raamiga kaasas, kuid iga sobivaks lõigatud tükk töötab. See tagab ka selle, et kaamera LED -ilt, mootorikontrollerilt või teisel pool peeglit olevast Pi -näidikust ei paista valgust. Kui kõik on paigas, märkige pliiatsiga papp, kus kaamera asub. Seejärel lõigake habemenuga ristkülik nii, et kaamera saaks paigas olles läbi vaadata.

14. samm: lõpliku tüki panemine

Viimase tüki panemine
Viimase tüki panemine
Viimase tüki panemine
Viimase tüki panemine

Viimane asi, mida teha, on panna varem kõrvale pandud sahtli esiosa. Liigutage mootorit nii, et sahtel jääb välja. Seejärel liimige esiosa nii, et sahtlitükk oleks keskel (kõikidel külgedel peaks olema veidi riputamist. Seejärel saate selle lihtsalt seinale riputada.

15. samm: lõpp

Finaal
Finaal
Finaal
Finaal

Siin see on! On mitmeid parandusi, mida saaks teha, näiteks selle nupu lisamine, mõne parema kahesuunalise kile ostmine ja selle vea parandamine koodis, kuid kokkuvõttes saab see töö tehtud: see näeb välja nagu peegel, tunneb ära etteantud kasutaja nägu ja see avab selle väikese väikese sahtli. Nagu alati, tahaksin kuulda teie mõtteid, küsimusi ja mälestusi allpool kommentaarides.

Üldine hinnang: 10/10

Kommentaarid: #ei prooviks uuesti … kui ma ei saaks seda juhendatavat järgida;)

Salajase sektsiooni väljakutse
Salajase sektsiooni väljakutse
Salajase sektsiooni väljakutse
Salajase sektsiooni väljakutse

Peaauhind salajase väljakutse väljakutses

Soovitan: