Obsah:

Zrkadlo na rozpoznávanie tváre s tajným oddelením: 15 krokov (s obrázkami)
Zrkadlo na rozpoznávanie tváre s tajným oddelením: 15 krokov (s obrázkami)
Anonim
Zrkadlo na rozpoznávanie tváre s tajným oddelením
Zrkadlo na rozpoznávanie tváre s tajným oddelením
Zrkadlo na rozpoznávanie tváre s tajným oddelením
Zrkadlo na rozpoznávanie tváre s tajným oddelením
Zrkadlo na rozpoznávanie tváre s tajným oddelením
Zrkadlo na rozpoznávanie tváre s tajným oddelením

Vždy ma fascinovali stále kreatívne tajné priehradky používané v príbehoch, filmoch a podobne. Keď som teda videl súťaž o tajné oddelenie, rozhodol som sa s touto myšlienkou experimentovať a vytvoriť obyčajné zrkadlo, ktoré otvára tajnú bočnú zásuvku, keď sa do nej pozrie správna osoba.

Použitím Raspberry Pi, niektorých znalostí programovania v pythone a triedy obchodu 8. triedy dokážeme vytvoriť toto spiffy zariadenie na skrytie predmetov na očiach, ku ktorým bude mať prístup iba správny používateľ.

Osobitne by som sa chcel poďakovať týmto ľuďom/platformám, od ktorých som získal aj svoje informácie a zdroje:

TeCoEd - kanál YouTube

Emmet z PiMyLifeUp

MJRoBot na Hackster.io (profil)

Gaven MacDonald - kanál YouTube

Tucker Shannon na Thingiverse (profil)

Zásoby

Rámový materiál:

  • Drevená doska (Rozmery tejto dosky boli 42 x 7,5 palcov x 5/16 palcov)
  • Rám na ceruzku (so sklom)
  • Farba v spreji
  • Jednosmerné reflexné lepidlo
  • Čistič skla a handra
  • MDF drevo

Dodávky na rozpoznávanie tváre:

  • Raspberry Pi (použil som Pi 3 B+, ale existujú aj ďalšie možnosti)
  • Kamerový modul
  • Krokový motor

Náradie:

  • Stolová píla
  • Jig Saw
  • Brúsny papier Drevo
  • GlueTape
  • Odmerať
  • Nožnice
  • Sprejová Flaška
  • 3D tlačiareň
  • Super lepidlo

Krok 1: Rezy pre rámček škatule

Rezy pre rámček škatule
Rezy pre rámček škatule
Rezy pre rámček škatule
Rezy pre rámček škatule
Rezy pre rámček škatule
Rezy pre rámček škatule
Rezy pre rámček škatule
Rezy pre rámček škatule

Kúpil som rám obrazu v obchode z druhej ruky. Len varovanie, uistite sa, že dosky, ktoré tvoria rám, sú široké najmenej 1 1/2 palca. Je to tak, aby ste naň mohli prilepiť ďalšie dosky z dreva s dostatočným priestorom na prácu. Uistite sa tiež, že sklo v rám je úplne jasný. Kúpil som si omylom matný a potom som si musel kúpiť ďalší rám iba na číre sklo. Pretože sa používa môj rám, rozmery rámčeka sa môžu líšiť.

  • Položte rámček na výšku. Zmerajte dlhé strany (LS) strany skleneného otvoru na ráme s ďalším ½”v hornej aj spodnej časti. (t.j. pridajte palec k dlhej strane merania sklenených otvorov. Zaznamenajte to a označte LSM (Long Side Measurement).
  • Podobne zmerajte hornú stranu otvoru a pridajte ďalší 1”. Zaznamenajte to a označte SSM (Short Side Measurement).
  • Vezmite si dosku a stolnou pílou rozrežte dva LSM x 2”a dva SSM x 2”.
  • Vezmite jeden z rezov LSM a zmerajte obdĺžnik 2”x1”, ktorý je 1”zospodu a 1/2” z ľavej a pravej strany (ako je znázornené na obrázku 3).
  • Pomocou skladačky vyrežte otvor. Potom brúsnym papierom obrúste okraje.

Krok 2: Rezy do zásuvky

Strihy do zásuvky
Strihy do zásuvky
Strihy do zásuvky
Strihy do zásuvky
Strihy do zásuvky
Strihy do zásuvky
Strihy do zásuvky
Strihy do zásuvky

Teraz začneme stavať zásuvku (alias tajný priestor).

  • Vystrihnite dve strany 4 palce x 1 palca, 3 palce x 1 palec (zadný okraj), 4 palce x 1 palec (predný okraj) a 4 palce x 3 palce (platforma).
  • Prilepte prvú stranu 4”x 1” pozdĺž 4”strany plošiny. Pod stranu platformy som položil pár založených papierov, aby boli mierne nadvihnuté, a tak sa neťahalo do otvoru, ktorý som vystrihol v doske LS. Nechajte schnúť 30 minút.
  • Podobne prilepte 3 ⅜”x 1” pozdĺž 3 ⅜”okraja platformy. Nechajte schnúť 30 minút. Potom prilepte druhú stranu 4”x 1” na opačnú stranu prvej. Nechajte schnúť 30 minút.
  • Predný okraj zatiaľ odložte. Bude to posledná vec prilepená na zásuvke.
  • Po dokončení skontrolujte, či sa zmestí do otvoru, ktorý ste vyrezali do dosky LSM. Ak nie, obrúste dieru, kým sa zásuvka ľahko nezasunie dovnútra a von a nedôjde k ťahaniu.

Krok 3: Spojenie rámu dohromady

Spojenie rámu
Spojenie rámu
Spojenie rámu
Spojenie rámu
Spojenie rámu
Spojenie rámu

Keď sú všetky diely kompletné, môžeme začať montovať celý rám.

  • Prilepte dosku LSM vycentrovanú skleneným otvorom s ½”na každej strane. Uistite sa, že je prilepený ½ palca od otvoru (ako je znázornené na obrázku 1). Nechajte schnúť 30 minút.
  • Prilepte prvú dosku SSM tak, aby sa okraj dotýkal vnútornej strany práve prilepenej dosky LSM. (Pomocou pravítka sa uistite, že je nalepené rovno). Nechajte schnúť 30 minút.
  • Vezmite druhú stranu LSM a lepte podobne ako prvú. Uistite sa, že je vzdialený ½ palca od otvoru a že SSM, ktorý bol práve pripevnený, je nalepený na vnútornú stranu dosky. Nechajte schnúť 30 minút.
  • Prilepte posledný SSM na horný okraj. Pretože máte dve LSM na oboch stranách, v závislosti od toho, ako ste ich pripevnili rovno, bude možno potrebné strany SSM obrúsiť, aby ste sa presvedčili, že to sedí (moje rezanie je niekedy vypnuté). Nechajte schnúť 30 minút.
  • Zmerajte malý priestor medzi spodkom zásuvky a rámom. Odrežte kus dreva MDF s týmto meraním o 4 ". Chcete, aby bol tento kus blízko zásuvky, ale nedotýkal sa jej. Je určený na podporu zásuvky s minimálnym trením.
  • Keď je všetko hotové, nastriekal som rám tak, aby sa všetky diely zhodovali.

Krok 4: Pre zrkadlo

Pre zrkadlo
Pre zrkadlo
Pre zrkadlo
Pre zrkadlo
Pre zrkadlo
Pre zrkadlo
Pre zrkadlo
Pre zrkadlo

Jednosmerné filmové lepidlo, ktoré som kúpil od Amazonu, stálo okolo 10 dolárov. Existujú kvalitnejšie, ktoré sú v prípade záujmu o niečo drahšie. Ten, ktorý používam, odráža, ale môžete povedať, že to nie je bežné zrkadlo, ktoré by ste videli v domácnosti. Drahšie vám ten vzhľad dodajú.

  • Vyčistite sklo čistiacim prostriedkom na sklo na oboch stranách.
  • Rozviňte jednosmerné lepidlo a položte sklo na vrch. Vystrihnite lepidlo tak, aby na každej strane skla bol prebytok najmenej ½ palca.
  • Pohár odložte a jednu stranu navlhčite vodou. Potom odlepte plastový povlak z jednosmerného lepidla a nastriekanú stranu postriekajte vodou.
  • Položte mokrú stranu skla na mokrú stranu lepidla. Necháme 30 minút odstáť.
  • Prevráťte a palcom vyrovnajte všetky bubliny medzi lepidlom a sklom. Potom odrežte prebytočné lepidlo z okrajov.

Krok 5: Nainštalujte Raspbian Stretch

Toto je môj prvý ponor do prostredia Raspberry Pi a začal som hľadať pokyny, ako nainštalovať operačný systém. Nakoniec som na Youtube od TeCoEd našiel jednoduchý návod, ktorý prešiel procesom inštalácie Stretch na SD kartu (aj s celkom milým úvodom). Tu je odkaz na tento návod:

V zásade všetko, čo musíte urobiť, je:

  • Naformátujte kartu SD výberom položky Drive >> Drive Tools >> Format. Stiahnite si súbor ZIP pre Raspian Stretch (nájdete ho tu:
  • Flashujte obrázok OS na SD kartu. Na dokončenie tohto kroku spoločnosť TeCoEd použila program Win32 Disk Imager. Nakoniec som nainštaloval balenaEtcher, ktorý sa mi zdal trochu jednoduchší. (Tu je odkaz na stiahnutie balenaEtcher:
  • Akonáhle ste v balenaEtcher, zvoľte „Flash zo súboru“a zvoľte predtým stiahnutý súbor ZIP. Ďalej vyberte požadovanú kartu SD (ak nie je vybratá automaticky). Potom stlačte tlačidlo šťavnatého blesku a počkajte, kým sa kúzlo stane.

Po inštalácii na kartu SD ju môžete vložiť do Raspberry Pi a prejsť všeobecným procesom nastavenia Pi.

Krok 6: Nainštalujte OpenCV

Teraz k častiam orientovaným na rozpoznávanie tváre. Aby sme mohli rozpoznávať tváre, musíme si stiahnuť knižnicu OpenCV, ktorá obsahuje obrovské množstvo nástrojov na prácu s počítačovým videním.

Inštalácia OpenCV bola pre mňa najnáročnejšia časť softvérového aspektu. Ale po nasledovaní mnohých pokynov som nakoniec našiel návod od Emmeta z PiMyLifeUp, ktorý urobil trik, ktorý nájdete tu:

Tieto kroky neprechádzam, pretože vám bude lepšie vyhovovať ich dodržiavanie z odkazu (s uvedenými vysvetleniami a schopnosťou jednoduchšie kopírovať a vkladať priamo z webu).

Krok 7: Zapnite/vyskúšajte fotoaparát

Zapnite/vyskúšajte fotoaparát
Zapnite/vyskúšajte fotoaparát
Zapnite/vyskúšajte fotoaparát
Zapnite/vyskúšajte fotoaparát

Po inštalácii OpenCV bol zvyšok mojej cesty dokončený pomocou tutoriálu od MJRoBot na Hackster.io, ktorý nájdete tu:

Predtým, ako začneme, by som vám chcel pripomenúť, že nie som pôvodným tvorcom týchto skriptov, ale nakoniec som zmenil ich časti.

Na začiatok by sme mali fotoaparát otestovať, aby sme sa presvedčili, že dokážeme zachytiť video na obrazovku. Strávil som asi hodinu pokusom o spustenie skriptu poskytnutého v kroku 3 MJRoBot. Ako to život chce, v skutočnosti potrebujeme povoliť kameru na Raspberry Pi (ukazuje sa, že by bolo vhodné prečítať si poskytnuté pokyny … mmm nah). Po pripojení fotoaparátu k správnemu portu postupujte takto:

  • Otvorte príkazový terminál a zadajte príkaz sudo raspi-config
  • Vyberte „Povoliť kameru“(toto sa nachádza pod možnosťou zariadení)
  • Kliknite na „Enter“
  • Prejdite na „Dokončiť“a budete vyzvaní na reštartovanie

Potom postupujte podľa týchto krokov:

  • Prejdite do hlavnej ponuky Raspberry (vľavo hore)
  • Predvoľby
  • Konfigurácia Raspberry Pi
  • Rozhrania
  • Potom vo fotoaparáte vyberte „Povolené“
  • Potom „OK“

Teraz by ste mali byť schopní úspešne spustiť tento skript z tutoriálu MJRoBot na otestovanie kamery (pamätajte, že celý tento kód a podrobnejší popis nájdete v uvedenom odkaze na tutoriál MJRobot):

import numpy ako np

import cv2 cap = cv2. VideoCapture (0) cap.set (3, 640) # set Width cap.set (4, 480) # set Height while (True): ret, frame = cap.read () frame = cv2. flip (rám, -1) # Prevrátiť fotoaparát vertikálne sivo = cv2.cvtColor (rám, cv2. COLOR_BGR2GRAY) cv2.imshow ('rám', rámček) cv2.imshow ('sivý', sivý) k = cv2.waitKey (30) & 0xff, ak k == 27: # stlačením 'ESC' ukončíte prestávku cap.release () cv2.destroyAllWindows ()

Predchádzajúci kód by mal zobrazovať dve okná, jedno farebné a druhé v odtieňoch sivej. Ak ste sa dostali tak ďaleko, myslím si, že si zaslúžite pekný sendvič.

Krok 8: Zhromažďovanie údajov a školenia

Zhromažďovanie údajov a školenia
Zhromažďovanie údajov a školenia
Zhromažďovanie údajov a školenia
Zhromažďovanie údajov a školenia
Zhromažďovanie údajov a školenia
Zhromažďovanie údajov a školenia

V poskytnutom návode sa autor podrobnejšie zaoberá procesmi kódu, ktoré budú čoskoro poskytnuté, ale keďže ide o pokyny o tom, ako bolo toto zrkadlo vytvorené, nepôjdem do hĺbky o histórii ani o komplikovanej mechanike. Odporúčam však, aby ste si mesiac života prečítali o týchto dvoch veciach, pretože môžu dobre poslúžiť vašej mysli.

Kým to všetko dokážeme spustiť, musíme spustiť ešte asi tri skripty. Prvá slúži na zber údajov, druhá na ich školenie a posledná slúži na rozpoznanie. Zhromažďovanie údajov vyžaduje, aby boli nasnímané skutočné fotografie tváre a uložené na konkrétnom mieste na školenie. Tvorca tohto kódu veľmi zjednodušil všetky tieto činnosti, a preto odporúčam postupovať podľa týchto pokynov, aby ste sa vyhli bolestiam hlavy.

Otvorte príkazový riadok a vytvorte nový adresár s názvom niečo zábavné (nazval som svoj FaceRec)

mkdir FaceRec

Teraz zmeňte adresár na FaceRec a vytvorte podadresár, ktorý ho určite pomenuje ako množinu údajov

cd FaceRec

súbor údajov mkdir

Keď sme pri tom, môžeme tiež vytvoriť druhý podadresár s názvom tréner

tréner mkdir

Teraz môžete spustiť a postupovať podľa pokynov prvého skriptu, ktorý zachytí obrázky používateľa. (Len hlavu hore, zadajte ID používateľa buď ako 1, 2, 3 atď.)

import cv2import os cam = cv2. VideoCapture (0) cam.set (3, 640) # set video width cam.set (4, 480) # set video height face_detector = cv2. CascadeClassifier ('haarcascade_frontalface_default.xml') # For each osoba, zadajte jedno číselné ID tváre face_id = vstup ('\ n zadajte ID užívateľa koniec stlačte ==>')) vytlačte ("\ n [INFO] Inicializuje sa snímanie tváre. Pozrite sa do kamery a počkajte …") # Inicializujte individuálne vzorkovanie počtu tvárí count = 0 while (True): ret, img = cam.read () img = cv2.flip (img, -1) # flip video image vertically grey = cv2.cvtColor (img, cv2. COLOR_BGR2GRAY) faces = face_detector.detectMultiScale (sivá, 1,3, 5) pre (x, y, w, h) v tvárach: cv2.rectangle (obr., (x, y), (x+w, y+h), (255, 0, 0), 2) count + = 1 # Uložte nasnímaný obrázok do priečinka množín údajov cv2.imwrite ("množina údajov/používateľ." + Str (face_id) + '.' + Str (počet) + ".jpg", sivý [y: y +h, x: ×: # Odoberte 30 ukážok tváre a zastavte prehrávanie videa k vytlačiť ("\ n [INFO] Ukončiť program a vyčistiť veci") cam.release () cv2.destroyAllWindows ()

V tomto mieste sa uistite, že ste na Pi nainštalovali vankúš. Ak nie, spustite príkaz:

pip inštalovať vankúš

Po dokončení môžete spustiť školiaci skript (druhý skript), ktorý vám bezproblémovo poskytne súbor.yaml, ktorý sa použije vo finálnom skripte

import cv2import numpy as np from PIL import Image import os # Path for face image database path = 'dataset' recognitionnizer = cv2.face. LBPHFaceRecognizer_create () detector = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml"); # funkcia na získanie obrázkov a údajov štítkov def getImagesAndLabels (cesta): imagePaths = [os.path.join (cesta, f) pre f v os.listdir (cesta)] faceSamples = ids = pre imagePath v imagePaths: PIL_img = Image.open (imagePath).convert ('L') # konvertujte ho na stupne šedej img_numpy = np.array (PIL_img, 'uint8') id = int (os.path.split (imagePath) [-1]. rozdelené (".") [1]) tváre = detector.detectMultiScale (img_numpy) pre (x, y, w, h) v tvárach: faceSamples.append (img_numpy [y: y+h, x: x+w]) ids.append (id) return faceSamples, ids print ("\ n [INFO] Tréningové tváre. Bude to trvať niekoľko sekúnd. Počkajte …") tváre, ids = getImagesAndLabels (cesta) rozpoznávač.train (tváre, np.array (ids)) # Uložte model do súboru trainer/trainer.yml recognitionnizer.write ('trainer/trainer.yml') # ("\ n [INFO] {0} trénované tváre. Ukončujúci program".format (len (np.unique (ids))))

Na tejto sérii skriptov je skvelé, že je možné do systému zadať viacero tvárí, čo znamená, že viacerí jednotlivci majú v prípade potreby prístup k vnútornostiam zrkadla.

Dole nižšie mám k dispozícii na stiahnutie skript Data Capture a školiaci skript.

Krok 9: Čas rozpoznania tváre

Čas rozpoznania tváre
Čas rozpoznania tváre
Čas rozpoznania tváre
Čas rozpoznania tváre

Nakoniec môžeme spustiť skript rozpoznávania. Do tohto skriptu bol pridaný ďalší kód, aby bol motorický proces funkčný, takže tieto časti vysvetlím trochu dôkladnejšie. Rozdelím to na sekcie, ale ak to je to, o čo vám ide, na konci kroku dám celý skript.

Začneme importom všetkých potrebných modulov a potom nastavením režimu GPIO na GPIO. BCM

import numpy ako np

import os import time import RPi. GPIO as GPIO GPIO.setwarnings (False) GPIO.setmode (GPIO. BCM)

Tento ďalší zoznam s názvom ControlPin je pole čísel, ktoré predstavujú výstupné piny, ktoré budú použité pre náš krokový motor.

ControlPin = [14, 15, 18, 23]

For-loop nastaví tieto piny ako výstupy a potom sa uistí, že sú vypnuté. Stále tu mám nejaký kód, aby som mohol zásuvku zavrieť stlačením tlačidla, ale namiesto toho som sa rozhodol použiť časovač.

GPIO.setup (ControlPin , GPIO. OUT)

GPIO.output (ControlPin , 0) GPIO.setup (2, GPIO. IN, pull_up_down = GPIO. PUD_DOWN)

Nasledujúce dve premenné sú sekvencie, ktoré použijeme na pohon motora. Tieto informácie som sa dozvedel z nádherného videa od Gavena MacDonalda, ktoré vrelo odporúčam sledovať, pretože sa zaoberá nielen kódom, ale aj skutočným motorom (nájdete ho tu: https://www.youtube.com/embed/Dc16mKFA7Fo). V podstate bude každá sekvencia iterovaná pomocou vnorených slučiek for-loops v nadchádzajúcich funkciách openComp a closeComp. Ak sa pozriete pozorne, seq2 je presným opakom seq1. Áno, uhádli ste. Jeden slúži na pohyb motora dopredu a druhý na spätný chod.

seq1 =

seq2 =

Počnúc našou funkciou openComp vytvoríme slučku for-loop, ktorá bude iterovať 1024-krát. Podľa videa MacDonald’s by iterácie 512 poskytovali úplné otáčanie motora a zistil som, že asi dve otáčky boli dobrou dĺžkou, ale toto je možné upraviť v závislosti od veľkosti jednotlivca. Ďalšia slučka for-loop sa skladá z 8 iterácií, aby sa zohľadnilo 8 polí nachádzajúcich sa v seq1 a seq2. A nakoniec, posledná slučka opakuje štyrikrát pre štyri položky, ktoré sa nachádzajú v každom z týchto polí, ako aj pre 4 piny GPIO, ku ktorým máme pripojený motor. Nasledujúci riadok vyberie kolík GPIO a potom ho zapne alebo vypne v závislosti od zapnutej iterácie. Riadok po poskytuje určitý čas vyrovnávacej pamäte, aby sa náš motor vôbec neotáčal. Potom, čo sa motor otočí, aby vysunul zásuvku, spí 5 sekúnd, než sa pohne ďalej. Tento čas je možné nastaviť tu alebo môžete povoliť komentovaný kód, ktorý umožňuje použitie tlačidla dopredu so skriptom, a nie pomocou časovača.

pre i v rozsahu (1024):

pre polovičný krok v rozsahu (8): pre kolík v rozsahu (4): GPIO.output (ControlPin [pin], seq1 [halfstep] [pin]) time.sleep (.001) '' 'while True: if GPIO.input (2) == GPIO. LOW: prestávka; '' 'time.sleep (5)

Funkcia closeComp funguje podobným spôsobom. Potom, čo sa motor vráti späť, nastavím naše posledné GPIO piny na minimum, aby sme sa presvedčili, že nemrháme energiou, a potom pridám ďalšie tri sekundy času, než sa pohnem ďalej.

pre i v rozsahu (1024):

pre polovičný krok v rozsahu (8): pre kolík v rozsahu (4): GPIO.output (ControlPin [pin], seq2 [halfstep] [pin]) time.sleep (.001) print ("Compartment Closed") GPIO.output (ControlPin [0], 0) GPIO.output (ControlPin [3], 0) time.sleep (3)

Väčšina ďalšej časti sa používa na nastavenie fotoaparátu a spustenie rozpoznávania tváre. Pokyny MKRoBot opäť prechádzajú do častí, ale zatiaľ len ukazujem diely použité pre zrkadlo.

Najprv som zmenil názvy zoznamov, aby sa moje meno nachádzalo v indexe, ktorý som mu priradil pri zbere údajov (v mojom prípade 1). A potom som nastavil ostatné hodnoty na Žiadne, pretože som už v súbore údajov nemal žiadne tváre.

names = ['None', 'Daniel', 'None', 'None', 'None', 'None']

Naše posledných niekoľko riadkov kódu je implementovaných v slučke thicc for-loop. Predtým, ako sa spoľahlivosť premennej zmení na reťazec, vytvoril som premennú na uloženie dôvery ako celého čísla (intConfidence). Potom pomocou príkazu if skontrolujem, či je spoľahlivosť väčšia ako 30 a či sa id (ktorá osoba počítač zisťuje, v tomto prípade „Daniel“) rovná môjmu menu. Potom, čo sa to potvrdí, sa nazýva funkcia openComp, ktorá (ako bolo vysvetlené vyššie) pohybuje motorom, spustí sa po 5 sekundách a potom pristúpi k zatvoreniu Comp, ktorý pohybuje motorom v opačnom smere a vykoná určité čistenie, než bude pokračovať v slučke thicc.

if intConfidence> 30 and id == 'Daniel':

openComp () closeComp ()

Chyba, ktorú som tu našiel, je, že niekedy po tom, čo sa closeComp vráti, kód pokračuje, ale podmienené vyhlásenie if sa opäť považuje za pravdivé, ako keby čítalo video kanál, ktorý je stále vo vyrovnávacej pamäti. Aj keď sa to nestane zakaždým, ešte musím nájsť spôsob, ako zaistiť, aby sa to nikdy nestalo, takže ak má niekto nejaké nápady, dajte mi vedieť v komentároch.

Tu je celý skript na jednom mieste (a hneď pod ním je tento súbor na stiahnutie):

import cv2

import numpy as np import os import time import RPi. GPIO as GPIO GPIO.setwarnings (False) GPIO.setmode (GPIO. BCM) ControlPin = [14, 15, 18, 23] for i in range (4): GPIO.setup (ControlPin , GPIO. OUT) GPIO.output (ControlPin , 0) GPIO.setup (2, GPIO. IN, pull_up_down = GPIO. PUD_DOWN) seq1 =

Krok 10: Montáž Pi a pripojenie motora

Montáž Pi a pripojenie motora
Montáž Pi a pripojenie motora
Montáž Pi a pripojenie motora
Montáž Pi a pripojenie motora
Montáž Pi a pripojenie motora
Montáž Pi a pripojenie motora

Montáž Raspberry Pi na rám bola pomerne jednoduchá. Navrhol som malý 90-stupňový lakeť s jednou tvárou s dierou a druhou stranou úplne plochou. Po 3D tlači dve z nich môžu byť pripevnené skrutkami k Raspberry Pi v jeho montážnych otvoroch (použil som dva otvory na každej strane kolíkov GPIO).

Potom som použil super lepidlo na protiľahlé strany 3D vytlačených lakťov na prilepenie Pi tesne nad zásuvkou na ráme. Potom, čo som nechal lepidlo zaschnúť, som mohol jednoducho a pohodlne vybrať alebo vymeniť Pi na miesto iba pomocou dvoch skrutiek.. Stl pre lakeť mám prepojený nižšie.

Teraz jednoducho pripojte ovládač motora k PI pomocou vstupov IN1, IN2, IN3, IN4 k GPIO 14, 15, 18, 23. Nakoniec pripojte 5v a uzemňovací kolík dosky ovládača k 5v výstupnému a uzemňovaciemu kolíku Pi.

Tu je odkaz na odkaz Pi's Pinout, ktorý by ste mohli použiť:

Krok 11: Montáž fotoaparátu

Montáž kamery
Montáž kamery
Montáž kamery
Montáž kamery
Montáž kamery
Montáž kamery

Upevnenie kamery bolo o niečo menej robustné ako Pi, ale metóda túto prácu zvládla. Po navrhnutí a vytlačení tenkého lúča s 2 otvormi na každom konci som pripevnil lúč k Rasberry Pi cez jeho montážny otvor. Potom už len pomocou ďalšej skrutky pripevnite kameru na opačný koniec lúča. Ta-da! Vyzerá to pekne lietať.

Krok 12: Vytvorenie a namontovanie mechanizmu posúvania zásuvky

Vytvorenie a montáž mechanizmu posúvania zásuvky
Vytvorenie a montáž mechanizmu posúvania zásuvky
Vytvorenie a montáž mechanizmu posúvania zásuvky
Vytvorenie a montáž mechanizmu posúvania zásuvky
Vytvorenie a montáž mechanizmu posúvania zásuvky
Vytvorenie a montáž mechanizmu posúvania zásuvky

Tento krok bol ľahký vďaka vždy dobrotivým darom komunity tvorcov. Po rýchlom vyhľadávaní na Thingiverse som našiel lineárny pohon vytvorený spoločnosťou TucksProjects (nájdete ho tu: https://www.thingiverse.com/thing:2987762). Neostávalo nič iné, než ho natlačiť na kartu SD a nechať tlačiareň pracovať.

Nakoniec som prešiel do Fusion 360 a upravil som ostrohu, pretože hriadeľ môjho motora bol príliš veľký na ten, ktorý poskytol TucksProjects. Na to mám nižšie uvedené.stl. Keď je tlač hotová, stačí ju zostaviť umiestnením podpery na hriadeľ motora a potom prichytením strán motora a krytu 2 skrutkami (uistite sa, že pred zatvorením vložíte stojan medzi ne). Nakoniec som musel odrezať palec zo stojana tak, aby sa zmestil medzi zásuvku a rám.

Teraz už zostáva len pripevniť mechanizmus k rámu a zásuvke. "ČO BUDEME ROBIŤ?" pýtate sa … áno, povedzte to so mnou: Super Glue. Ako je znázornené na vyššie uvedených obrázkoch, mechanizmus jednoducho priložte k spodnej časti rámu a zatlačte ho nahor proti kusu dreva, po ktorom sa zásuvka nasúva. Tu je životne dôležité, aby ste sa pokúsili dostať stojan/mechanizmus čo najviac rovnobežne s rámom, aby pri pohybe mechanizmu tlačil zásuvku rovno a nie šikmo. Potom, čo lepidlo zaschne, naneste na okraj regálu ešte trochu lepidla, zásuvku presuňte na miesto a nechajte uschnúť. Akonáhle budete hotoví, máme robustný mechanizmus na zasúvanie našej tajnej zásuvky dovnútra a von.

Krok 13: Pridanie lepenky za zrkadlo

Pridanie lepenky za zrkadlo
Pridanie lepenky za zrkadlo
Pridanie lepenky za zrkadlo
Pridanie lepenky za zrkadlo
Pridanie lepenky za zrkadlo
Pridanie lepenky za zrkadlo

Aby tento obojsmerný film vyzeral viac zrkadlovo, zistil som, že nášmu účelu dobre slúži na umiestnenie kartónu za sklo. Použitá lepenka je tá, ktorá bola dodaná s rámom, ale akýkoľvek kus narezaný na mieru bude fungovať. To tiež zaisťuje žiadne svetlo z LED diódy kamery, ovládača motora alebo Pi na druhej strane zrkadla. Keď je všetko na svojom mieste, pomocou ceruzky označte, kde je fotoaparát na kartóne. Potom pomocou holiaceho strojčeka odstrihnite obdĺžnik, aby kamera mohla prekuknúť, keď je na svojom mieste.

Krok 14: Nasadenie posledného dielu

Nasadenie finálneho dielu
Nasadenie finálneho dielu
Nasadenie finálneho dielu
Nasadenie finálneho dielu

Posledná vec, ktorú musíte urobiť, je dať na prednú časť zásuvky, ktorá bola predtým odložená. Posuňte motor tak, aby zásuvka trčala. Potom prilepte prednú časť tak, aby bol kus zásuvky vycentrovaný (na všetkých stranách by malo byť trochu zavesené. Potom ho môžete zavesiť na stenu.

Krok 15: Finále

Finále
Finále
Finále
Finále

Tu to máte! Existuje niekoľko vylepšení, ktoré je možné vykonať, napríklad pridaním tohto tlačidla, nákupom lepšieho obojsmerného filmu a opravou tejto chyby v kóde, ale celkovo to prácu dokončí: vyzerá to ako zrkadlo, rozpoznáva vopred určené používateľova tvár a otvorí sa tak roztomilá malá zásuvka. Ako vždy, rád by som si v nižšie uvedených komentároch vypočul vaše myšlienky, otázky a spomienky.

Celkové hodnotenie: 10/10

Komentáre: #CouldNotTryAgain … pokiaľ by som sa nemohol riadiť týmto návodom;)

Tajná kompartmentová výzva
Tajná kompartmentová výzva
Tajná kompartmentová výzva
Tajná kompartmentová výzva

Veľká cena v súťaži Secret Compartment Challenge

Odporúča: