Përmbajtje:

Pimp My Cam: 14 hapa (me fotografi)
Pimp My Cam: 14 hapa (me fotografi)

Video: Pimp My Cam: 14 hapa (me fotografi)

Video: Pimp My Cam: 14 hapa (me fotografi)
Video: ЛЮБОВЬ С ДОСТАВКОЙ НА ДОМ (2020). Романтическая комедия. Хит 2024, Nëntor
Anonim
Pimp My Cam
Pimp My Cam

Ja nga vjen ky projekt.

Pak kohë më parë mendova të filmoja disa afate kohore. "Si?" Pyeta veten? Përgjigja e parë ishte "Epo.. ju thjesht filmoni diçka dhe shpejtoni atë dhe kjo është ajo". Por a është vërtet kaq e thjeshtë? Së pari, unë dua të përdor DSLR -në time për këtë, dhe Nikon D3100 im ka një afat kohor prej 10 min për xhirimin e videos. Së dyti, edhe sikur të kisha një aparat fotografik pa kufi kohor në xhirimin e videove, çfarë të bëj nëse dua të bëj një kohë të vërtetë të gjatë, si 12 orë të gjata? Unë bëj një video 12 orë të gjatë 1080p. Unë dyshoj se bateria do të zgjasë kaq gjatë dhe, nuk është shumë praktike, apo jo? Mirë, duke kaluar "idenë e filmimit të videos". Epo, atëherë ka fotografi. Marrja e një fotografie në kamerë në një interval të caktuar dhe përfundimi me qindra imazhe të cilat unë i përpunoj përmes softuerit për të bërë një video..?

Duket si një ide e mirë kështu që vendosa t'i jepja një goditje. Kështu përfundova me dëshirën për të bërë një pajisje në të cilën mund të fut një periudhë kohore, dhe bazuar në atë periudhë do të aktivizonte kamerën time vazhdimisht. Dhe ndërkohë që jemi gati, pse të mos shtojmë disa gjëra të tjera si lëvizja-shkas dhe kështu me radhë?

Hapi 1: Por.. Si?

Por.. Si?
Por.. Si?

SI? është pyetja jonë e radhës që mungon një përgjigje. Për shkak të kohës, nxitjes, sensorëve dhe gjërave të tilla nuk do të jetë befasi që e para që erdhi në mendje ishte, natyrisht, një Arduino. Në rregull, por gjithsesi, ne duhet të mësojmë se si të aktivizojmë qepenin në kamerën tonë. Hm.. servo nxehtë ngjitur në kamerën e trupit? Absolutisht jo, ne duam që kjo të jetë e heshtur dhe efikase në fuqi. Efikas në energji - pse? Për shkak se dua ta bëj atë të lëvizshëm dhe të fus një bateri në të, nuk do të jem pranë një prize elektrike çdo herë. Pra, si ta shkaktojmë atë.. është në të vërtetë shumë e thjeshtë.

Nikon tashmë e dinte që ju do të dëshironi një telekomandë dhe pajisje të tjera dhe ata thanë "në rregull, ne do t'i japim të gjitha ato, por ne do të bëjmë një port të veçantë që të mund të fitojmë më shumë para për ato pajisje", turp për ty Nikon Me Ky port (në rastin tim) quhet MC-DC2, dhe mënyra më e lirë për ta kapur atë është të blini një lëshim qepenje në distancë në eBay për 2-3 dollarë dhe thjesht të përdorni kabllon.

*Disa kamera të tjera, si Canon, kanë një prizë kufje të thjeshtë 3.5 mm të bërë për të njëjtin përdorim, kështu që ju mund të përdorni disa kabllo nga altoparlantët/kufjet e vjetra.

Hapi 2: Mësoni si të aktivizoni kamerën

Image
Image
Mënyrat për të shkaktuar
Mënyrat për të shkaktuar

Gjithsesi, këtu është marrëveshja, porti do të ketë 3 lidhje që do të jenë me interesin tonë (Ground, Focus dhe Shutter) dhe ju do t'i keni ato në fund të kabllit tuaj të qepenit të sapo blerë të telekomandës që sapo keni shkatërruar. Ato tre lidhje janë të rëndësishme për ne sepse nëse shkurtojmë Ground dhe Focus kamera do të fokusohet ashtu siç jeni duke shtypur butonin e fokusit dhe pastaj, ndërsa kjo lidhje mbetet, ju mund të shkurtoni Tokën dhe Shkrehësin dhe kamera do të bëjë një fotografi njësoj sikur të keni shtypur butonin e qepenit në kamerë.

Ju mund ta provoni këtë duke shkurtuar fjalë për fjalë telat e drejtpërdrejtë në fund të kabllit për të identifikuar se cili tel është cili. Pasi ta keni bërë këtë, për hir të identifikimit më të lehtë, ne do t'i ngjyrosim ato kështu:

Tokë = E ZI; Fokus = E BARDH; Qepen = KUQ.

Mirë, tani duhet të mësojmë Arduino -n ta bëjë këtë për ne.

Hapi 3: Mënyrat për të shkaktuar

Image
Image

Gjëja më e thjeshtë që mund t'i themi një Arduino të dërgojë në botën e jashtme është sinjali i daljes dixhitale. Ky sinjal mund të jetë I LART ((logjik '1') ose I LART ((logjik '0'), prandaj emri "dixhital", ose kur shndërrohet në kuptimin e tij kryesor: 5V për një LART logjike dhe 0V për një LOW të ulët logjik.

Çfarë duhet të bëjmë me këto sinjale dixhitale? Ne nuk mund t'i lidhim thjesht me kamerën dhe të presim që kamera të dijë se çfarë duam. Siç e kemi parë, ne duhet të shkurtojmë lidhjet në kamerë në mënyrë që ajo të reagojë, kështu që ne duhet të përdorim sinjalet dixhitale të Arduino për të drejtuar disa përbërës që mund të shkurtojnë terminalet e tyre në varësi të këtyre sinjaleve elektrike që i dërgojmë Me *Siç e përshkrova, ju mund të mendoni "Ah, Relays!" por jo jo Rele do të bënte punën, por ne po merremi me rryma kaq të vogla saqë lehtë mund të përdorim magjinë e zezë të gjysmëpërçuesve.

Komponenti i parë që do të provoj është një optocoupler. Unë i kam parë ata të zbatohen më së shumti për këtë dhe është ndoshta zgjidhja më e mirë. Optocoupler është një komponent elektrik me të cilin kontrolloni qarkun e daljes ndërsa qarku i hyrjes është plotësisht i izoluar prej tij. Kjo arrihet duke transmetuar informacion nga drita, qarku i hyrjes ndriçon një LED dhe fototransistori në dalje ndizet në përputhje me rrethanat.

Pra, ne do të përdorim optokouplerin në këtë mënyrë: ne i themi Arduino -s tonë të dërgojë një HIGH dixhitale në një nëse është kunja dixhitale, ai sinjal është praktikisht 5V i cili do të drejtojë LED -in brenda optokouplerit dhe fototransistori brenda tij do të "shkurtohet" janë terminalet e daljes kur zbulon atë dritë, dhe anasjelltas, ajo do të "shkëpusë" terminalet e saj pasi nuk ka dritë nga LED kur dërgojmë një LOW dixhital përmes Arduino.

Praktikisht, kjo do të thotë: njëra nga kunjat dixhitale të Arduino është ngjitur në kunjin ANODE të optokouplerit, GND e Arduino është ngjitur në CATHODE, GND e kamerës është ngjitur në EMITTER dhe FOKUS (ose SHUTTER) në Koleksionist. Referojuni fletës së të dhënave të optokouplerit që po përdorni për të gjetur këto kunja në tuajat. Unë jam duke përdorur 4N35 kështu që ju mund të ndiqni verbërisht skemën time nëse nuk ju intereson vërtet se çfarë ndodh brenda optokiftëzuesit. Eshtë e panevojshme të thuhet, ne do të kemi nevojë për dy nga këto, pasi ne kemi nevojë të kontrollojmë FOKUSIN dhe kamerën e kamerës.

Meqenëse pamë se si funksionon, me një fototransistor në dalje, pse të mos e provojmë vetëm me një transistor të thjeshtë NPN. Këtë herë, ne do ta sjellim sinjalin dixhital drejtpërdrejt (përmes një rezistori) në bazën e tranzistorit dhe do t'i lidhim si GND të kamerës ashtu edhe atë të Arduino me emetuesin dhe fokusin/qepenin e kamerës me kolektorin e transistorit.

Përsëri, do të na duhen dy prej tyre pasi po kontrollojmë dy sinjale. Unë jam duke përdorur BC547B dhe ju në thelb mund të përdorni çdo NPN për këtë pasi rryma që ne po kontrollojmë është një miliamp i vetëm.

Të dy këta përbërës do të funksionojnë, por zgjedhja e optokouplerit është ndoshta ideja më e mirë sepse është më e sigurt. Zgjidhni transistorët vetëm nëse e dini se çfarë po bëni.

Hapi 4: Shkrimi i Kodit për Shkaktimin

Image
Image
Shkrimi i Kodit për Nxitjen
Shkrimi i Kodit për Nxitjen

Siç kemi thënë më parë, ne do të përdorim kunjat dixhitale të Arduino për sinjalizim. Arduino mund t'i përdorë këto të dyja për të lexuar të dhëna prej tij, ose për t'i shkruar në të, kështu që gjëja e parë që duhet të bëjmë duhet të specifikojë në funksionin e konfigurimit () që ne do të përdorim dy kunjat dixhitale të Arduino -s për daljen si kjo:

pinMode (FOCUS_PIN, OUTPUT);

pinMode (SHUTTER_PIN, OUTPUT);

ku FOCUS_PIN dhe SHUTTER_PIN ose mund të përkufizohen me "#define NAME value" ose si int para funksionit setup () sepse mund të ndryshoni kunjin kështu që është më e lehtë të ndryshoni vlerën vetëm në një vend dhe jo në të gjithë kodin më pas.

Gjëja tjetër që do të bëjmë është të shkruajmë një funksion (triger) () i cili do ta bëjë këtë vetëm kur të ekzekutohet. Unë vetëm do të përfshijë një fotografi me kodin. E tëra çfarë ju duhet të dini është që së pari ne e mbajmë FOCUS_PIN -in në HIGH për një periudhë të caktuar kohe, sepse duhet të presim që kamera të fokusohet në subjektin në të cilin po e drejtojmë dhe pastaj vetëm për një moment (ndërsa FOCUS_PIN është ende LART) vendosni SHUTTER_PIN në HIGH vetëm për të bërë fotografinë.

Kam përfshirë gjithashtu aftësinë për të kapërcyer fokusimin sepse nuk do të ketë nevojë për të nëse po xhirojmë një timelapse të diçkaje që nuk ndryshon distancën e saj nga kamera me kalimin e kohës.

Hapi 5: Intervali i klasës {};

Image
Image
Manipulimi i intervalit përmes Arduino
Manipulimi i intervalit përmes Arduino

Tani që e kemi nxjerrë kamerën jashtë rrugës, duhet ta bëjmë këtë në një intervalometër duke shtuar funksionalitetin e manipulimit të periudhës kohore midis dy shkrepjeve. Vetëm për të marrë fotografinë e asaj që ne po bëjmë këtu është një kod primitiv për të demonstruar funksionalitetin që duam:

lak void () {

vonesë (interval); shkas (); }

Unë dua të jem në gjendje ta ndryshoj këtë interval nga, le të themi, 5 sekonda deri në 20-30 minuta. Dhe këtu është problemi, nëse dua ta ndryshoj nga 5s në 16s ose ndonjë gjë në mes unë do të përdor një rritje 1s, ku për secilën nga kërkesat e mia për të rritur intervalin, intervali do të rritet për 1s. Kjo është e mrekullueshme, por çfarë nëse dua të kaloj nga 5 në 5 minuta? Do të më duheshin 295 kërkesa për atë në rritje 1s, kështu që padyshim që duhet të rris vlerën e rritjes në diçka më të madhe, dhe duhet të përcaktoj se në cilën vlerë të saktë të intervalit (pragu) për të ndryshuar rritjen. Unë e zbatova këtë:

5s-60s: rritje 1s; 60s-300s: rritje 10s; Vitet 300-3600: rritje e viteve 60;

por unë e shkrova këtë klasë të jetë e rregullueshme, kështu që ju mund të përcaktoni pragjet dhe shtesat tuaja (gjithçka komentohet në skedarin.h, në mënyrë që të dini se ku të ndryshoni cilat vlera).

Shembulli që kam dhënë për manipulimin e intervalit është bërë qartë në një kompjuter, tani ne duhet ta zhvendosim atë në Arduino. E gjithë kjo klasë, Intervali, futet brenda një skedari të titullit i cili përdoret për të ruajtur deklaratat dhe përkufizimet (jo në të vërtetë, por mund të bëhet në këtë shembull pa bërë ndonjë dëm) të klasës/funksioneve tona. Për ta futur këtë skedar të kokës në kodin tonë arduino ne përdorim "#include" Interval.h "" (skedarët duhet të jenë në të njëjtin drejtori), gjë që siguron që ne të mund të përdorim funksionet e përcaktuara në skedarin e kokës në kodin tonë kryesor.

Hapi 6: Manipulimi i intervalit përmes Arduino

Image
Image
Manipulimi i intervalit përmes Arduino
Manipulimi i intervalit përmes Arduino
Manipulimi i intervalit përmes Arduino
Manipulimi i intervalit përmes Arduino

Tani ne duam të jemi në gjendje të ndryshojmë vlerën e intervalit, ose ta rrisim ose ulim atë. Pra, këto janë dy gjëra, kështu që ne do të përdorim dy sinjale dixhitale të cilat do të kontrollohen nga dy butona. Ne do të lexojmë në mënyrë të përsëritur vlerat në kunjat dixhitale që i kemi caktuar butonave dhe do t'i analizojmë ato vlera në funksionin checkButtons (int, int); e cila do të rrisë intervalin nëse shtypet butoni "lart" dhe do të zvogëlojë intervalin nëse butoni "poshtë". Gjithashtu, nëse shtypen të dy butonat do të ndryshojë vlerën e fokusit të ndryshueshëm i cili kontrollon nëse do të fokusohet ose jo kur aktivizohet.

Një pjesë e kodit ((millis () - prevBtnPress)> = debounceTime) përdoret për debouncing. Mënyra se si e shkrova, do të thotë që regjistroj shtypjen e parë të butonit me ndryshore boolean btnPressed dhe mbaj mend kohën kur ndodhi. Se unë pres për një kohë të caktuar (debounceTime) dhe nëse butoni është ende i shtypur unë reagoj. Gjithashtu bën një "pauzë" midis çdo shtypjeje tjetër të butonit, në mënyrë që të shmangë shtypjet e shumta kur nuk ka asnjë.

Dhe së fundi, me:

if ((millis () - prevTrigger) / 1000> = interval.getVal ()) {

prevTrigger = millis (); shkas (); }

ne së pari kontrollojmë nëse sasia e kohës midis nxitjes së fundit (prevTrigger) dhe kohës aktuale (millis ()) (gjithçka ndahet me një 1000 sepse është në milisekonda dhe intervali është në sekonda) është e barabartë ose më e madhe se intervali ne duam, dhe nëse është, ne e kujtojmë kohën aktuale si herën e fundit që e aktivizuam kamerën dhe më pas e aktivizuam atë.

Me këtë të plotë, ne në thelb kemi bërë një intervalometër, por ne jemi shumë larg nga mbarimi. Ende nuk e shohim vlerën e intervalometrit. Shfaqet vetëm në Monitor Serial dhe ne nuk do të jemi gjithmonë pranë një kompjuteri, kështu që tani ne do të zbatojmë diçka që do të na tregojë intervalin kur e ndryshojmë.

Hapi 7: Shfaqja e intervalit

Image
Image
Shfaqja e Intervalit
Shfaqja e Intervalit
Shfaqja e Intervalit
Shfaqja e Intervalit
Shfaqja e Intervalit
Shfaqja e Intervalit

Këtu prezantojmë ekranin. Kam përdorur modulin 4 shifror i cili drejtohet nga TM1637 sepse më duhet ta përdor vetëm për të shfaqur kohën dhe asgjë tjetër. Mënyra më e lehtë për të përdorur këto module të krijuara për një Arduino është përdorimi i bibliotekave të bëra tashmë për to. Në faqen Arduino ka një faqe që përshkruan çipin TM1673 dhe një lidhje me një bibliotekë të sugjeruar. Kam shkarkuar këtë bibliotekë dhe ka dy mënyra se si mund t'i prezantoni këto biblioteka me Arduino IDE:

  1. nga programi Arduino shkoni te Sketch> Include Library> Add. ZIP bibliotekë dhe gjeni skedarin.zip që sapo shkarkuat
  2. mund të bëni atë që bën Arduino me dorë dhe thjesht shpaketoni bibliotekën në dosjen në të cilën Arduino ruan bibliotekat, në Windows: C: / Users / Username / Documents / Arduino / libraries \.

Pasi të keni përfshirë bibliotekën, duhet të lexoni skedarin "ReadMe" në të cilin do të gjeni përmbledhjen e asaj që bëjnë funksionet e ndryshme. Ndonjëherë kjo nuk është e mjaftueshme kështu që ju do të dëshironi të shkoni pak më thellë dhe të eksploroni skedarët e kokës në të cilat mund të shihni se si zbatohen funksionet dhe çfarë kërkojnë ato si argumente hyrëse. Dhe sigurisht mënyra më e mirë për të kuptuar se çfarë është në gjendje të bëjë një bibliotekë zakonisht ofron një shembull të cilin mund ta përdorni nga programi Arduino përmes File> Examples> LibraryName> NameName. Kjo bibliotekë ofron një shembull të cilin ju rekomandoj ta përdorni në ekranin tuaj vetëm për të parë nëse ekrani juaj po funksionon siç duhet dhe më pas ju inkurajoj që të ndryshoni kodin që shihni në shembull dhe të shihni vetë se çfarë bën secili funksion dhe si reagon ekrani ajo Unë e kam bërë këtë dhe kjo është ajo që kuptova:

përdor 4 numra të plotë të panënshkruar prej 8 bitësh për secilën shifër (0bB7, B6, B5, B4, B3, B2, B1, B0). Dhe secila prej atyre bitëve B6-B0 përdoret për secilin segment të një shifre të caktuar dhe nëse bit është 1, segmenti i kontrolluar prej tij ndizet. Këto numra të plotë ruhen në një grup të quajtur të dhëna . Vendosja e këtyre bitave në ekran realizohet me shfaqjen.setSegmente (të dhëna); ose mund të hyni natyrshëm në ndonjë nga shifrat veçanërisht dhe t'i vendosni ato me dorë (të dhëna [0] = 0b01111001) ose mund të përdorni funksionin encodeDigit (int); dhe shndërroni shifrën që e dërgoni në bit (të dhënat [0] = display.encodeDigit (3));. Bit B7 përdoret vetëm nga shifra e dytë, ose të dhënat [1], për aktivizimin e zorrës së trashë.

Meqenëse kam shkruar funksionet në klasën e magjistares INTERVAL të cilat mund të marr shifra të caktuara të intervalit në formën e M1M0: S1S0, ku M qëndron për minuta dhe S për sekonda, është e natyrshme që të përdor kodiminDigitFunction (int); për shfaqjen e intervalit si më poshtë:

displayInterval () {

të dhëna [0] = display.encodeDigit (interval.getM1 ()); të dhëna [1] = 0x80 | display.encodeDigit (interval.getM0 ()); të dhëna [2] = display.encodeDigit (interval.getS1 ()); të dhëna [3] = display.encodeDigit (interval.getS0 ()); display.setSegmente (të dhëna); }

Tani, në çdo kohë që më duhet për të shfaqur Intervalin në ekran, mund të thërras funksionin displayInterval ().

*Vini re "0x80 | …" në të dhënat [1]. Përdoret për të siguruar që biti B7 i të dhënave [1] të jetë gjithmonë 1, kështu që zorra e trashë ndizet.

Gjëja e fundit në lidhje me ekranin, konsumi i energjisë. Mund të mos ketë një rëndësi të madhe pasi ne nuk do ta mbajmë atë për një kohë të gjatë, por nëse jeni të interesuar ta bëni këtë edhe më miqësore me baterinë, atëherë konsideroni të ulni shkëlqimin e ekranit pasi ai tërheq 3 herë më shumë rrymë në shkëlqimin maksimal sesa në më të ultën.

Hapi 8: Vendosja e të gjitha së bashku

Vendosja e të gjitha së bashku
Vendosja e të gjitha së bashku

Ne e dimë se si ta aktivizojmë kamerën, si ta manipulojmë intervalin dhe si ta shfaqim të njëjtin interval në një ekran. Tani ne vetëm duhet t'i bashkojmë të gjitha këto gjëra së bashku. Ne do të fillojmë, natyrisht, nga funksioni loop (). Ne do të kontrollojmë vazhdimisht për shtypjet e butonave dhe do të reagojmë në përputhje me rrethanat me butonat e kontrollit (int, int) dhe do të ndryshojmë intervalin në përputhje me rrethanat dhe do të shfaqim intervalin e ndryshuar. Gjithashtu në lakun () ne do të kontrollojmë vazhdimisht nëse ka kaluar kohë e mjaftueshme nga ndezja e fundit ose shtypni butonin dhe thërrisni funksionin shkaktues () nëse është e nevojshme. Për hir të konsumit më të ulët të energjisë, ne do ta fikim ekranin pas njëfarë kohe.

Shtova një led me dy ngjyra, (E kuqe dhe e gjelbër, katodë e zakonshme) e cila do të ndizet jeshile ndërsa këmbëzimi () dhe do të ndizet e kuqe së bashku me ekranin nëse fokusimi është aktiv dhe do të qëndrojë jashtë nëse fokusimi është fikur

Gjithashtu, ne do të migrojmë në një Arduino edhe më të vogël, Pro Mini.

Hapi 9: Shtimi i një gjëje të fundit

Shtimi i një gjëje të fundit
Shtimi i një gjëje të fundit
Shtimi i një gjëje të fundit
Shtimi i një gjëje të fundit
Shtimi i një gjëje të fundit
Shtimi i një gjëje të fundit

Deri tani.. ne kemi krijuar vetëm një Intervalometër. E dobishme, por ne mund të bëjmë më mirë.

Ja çfarë kisha në mendje: Intervalometri e bën atë si parazgjedhje PCERVEÇ kur bashkojmë një lloj ndërprerës/sensor të jashtëm i cili më pas ndalon intervalometrin dhe i përgjigjet hyrjes së çelësit/sensorit. Le ta quajmë atë një sensor, nuk do të jetë domosdoshmërisht një sensor që është i lidhur, por unë do t'i referohem asaj ashtu.

Së pari, si e zbulojmë se e kemi bashkuar sensorin?

Sensorët që do të përdorim/prodhojmë do të kenë nevojë për tre tela që i lidhin ato me arduino (Vcc, GND, Signal). Kjo do të thotë që ne mund të përdorim një fole audio 3.5 mm si një prizë hyrëse për sensorin. Dhe si e zgjidh kjo problemin tonë? Epo, ka lloje të një prize 3.5 mm "me një ndërprerës" të cilat kanë kunja që shkurtohen në kunjat e lidhësit nëse nuk ka lidhës mashkullor në to, dhe ato shkëputen kur ka një lidhës të pranishëm. Kjo do të thotë që ne kemi informacionin bazuar në praninë e sensorit. Unë do të përdor rezistencën tërheqëse siç tregohet (kunja dixhitale do të lexojë LART HIGH pa sensorin, dhe LOW me sensorin e bashkangjitur) në figurë ose gjithashtu mund t'i bashkëngjiteni pinit dixhital pinit të lidhësit i cili normalisht është lidhur me tokën dhe përcaktoni atë pin dixhital si INPUT_PULLUP, do të funksionojë në çdo mënyrë. Pra, tani ne duhet të rregullojmë kodin tonë, kështu që ai bën gjithçka që kemi shkruar deri më tani vetëm nëse sensori nuk është i pranishëm, ose kur pin -i dixhital kontrollon atë që është LART. Unë gjithashtu e ndryshova atë në mënyrë që të shfaqë "SENS" në ekran në vend të intervalit që është i padobishëm në këtë mënyrë, por fokusimi është akoma i rëndësishëm për ne, ne do të mbajmë funksionalitetin e alternimit të fokusimit me shtypjen e të dy butonave dhe duke treguar gjendjen e fokusit përmes led të kuq.

Çfarë bën në të vërtetë sensori?

E tëra çfarë duhet të bëjë është të vendosim 5V në kunjin e saj të Sinjalit kur duam të aktivizojmë kamerën. Kjo do të thotë që ne do të kemi nevojë për një kunj tjetër dixhital të Arduino që kontrollon gjendjen e këtij kunji dhe kur të regjistrohet LART HIGH, gjithçka që duhet të bëjë është të thërrasë funksionin e shkaktuesit () dhe kamera do të bëjë një fotografi. Shembulli më i lehtë, dhe ai që do të përdorim për të testuar nëse funksionon, është një buton i thjeshtë me një rezistencë tërheqëse. Bashkangjitni butonin midis Vcc të sensorit dhe kunjit të sinjalit dhe shtoni një rezistencë midis kunjit të sinjalit dhe GND, në këtë mënyrë kunja e sinjalit do të jetë në GND kur butoni nuk shtypet pasi nuk ka rrymë që rrjedh nëpër rezistencë dhe kur butoni shtypet ne vendosim pinin e Sinjalit direkt në HIGH dhe Arduino e lexon atë dhe ndez kamerën.

Me këtë përfunduam shkrimin e kodit.

*Unë do të doja të shënoja disa probleme që kisha me prizat audio që kam përdorur. Ndërsa futni folenë mashkullore në lidhës, GND dhe secila nga dy kunjat e tjerë ndonjëherë do të shkurtohen. Kjo ndodh menjëherë dhe vetëm kur vendosni lidhësin, por është ende mjaft e gjatë që Arduino të regjistrojë një shkurtim, kështu që Arduino thjesht do të rifillonte. Kjo nuk ndodh aq shpesh, por ende mund të jetë një rrezik dhe ekziston një potencial për të shkatërruar Arduino, kështu që shmangni lidhësit që kam përdorur.

Hapi 10: Përmbajtja e rrëmujës

Përmbajnë rrëmujë
Përmbajnë rrëmujë
Përmbajnë rrëmujë
Përmbajnë rrëmujë
Përmbajnë rrëmujë
Përmbajnë rrëmujë
Përmbajnë rrëmujë
Përmbajnë rrëmujë

Ju mund të shihni nga imazhet se pjata e bukës po bëhet e çrregullt dhe ne kemi mbaruar, kështu që ne kemi nevojë për të transferuar gjithçka në një dërrasë dyshe/PCB. Unë shkova për PCB sepse mendoj se do të bëj më shumë prej tyre kështu që në këtë mënyrë mund t'i riprodhoj me lehtësi.

Kam përdorur Eagle për hartimin e PCB dhe kam gjetur modele për të gjitha pjesët që kam përdorur. Ekziston një gjë e vogël në dizajnin tim që do të doja të mos e kisha bërë dhe kjo është një jastëk teli për Vcc të ekranit. Unë e kam parë atë shumë vonë dhe nuk doja të shkatërroja atë që kam projektuar më parë dhe shkova në mënyrën dembele të shtimit të jastëkëve të telit dhe më vonë duhej të shtoja tela në këto lidhje në vend të gjurmëve të bakrit, kështu që mos harroni nëse përdorni modelin tim Me

Bordi Arduino dhe ekrani janë të lidhur me PCB përmes titujve të femrave të pinit në vend që të ngjiten direkt në PCB, për arsye të dukshme. Në këtë mënyrë ka shumë hapësirë për komponentët e tjerë nën ekran për komponentët e tjerë si rezistorët, transistorët dhe madje edhe folenë audio.

Unë kam vënë butonat mikro shtytës të cilët, sipas modelit, duhet të ngjiten direkt, por gjithashtu mund të përdorni vrimat për titujt e femrave dhe lidhni butonat me tela nëse dëshironi që ato të montohen në rrethim dhe jo në PCB.

Ne gjithashtu do të vendosim një fole tjetër audio femërore për të lidhur kabllon që lidhet me kamerën. Në këtë mënyrë bordi bëhet më i gjithanshëm pasi në atë mënyrë ne do të jemi në gjendje të lidhemi me kamera të tjera me lidhje të tjera.

Hapi 11: Sens0rs

Image
Image
Sens0rs
Sens0rs

Le të shqyrtojmë mënyrat e zbatimit të sensorit.

Pra, sensori do të ketë tensionin e furnizimit prej 5V, dhe do të duhet të jetë në gjendje të sigurojë një HIGH dixhitale në sinjalin e sinjalit kur të duam të aktivizojmë kamerën. Gjëja e parë që më erdhi në mendje është një sensor lëvizjeje, PIR të jetë specifik. Ka module të shitura për Arduino të cilat kanë këtë sensor mbi to dhe bëjnë atë që duam. Ato mundësohen nga 5V dhe kanë një kunj dalës mbi të cilin vendosin 5V kur aktivizohen, na duhet vetëm t'i lidhim kunjat e tij me një fole audio 3.5 mm dhe mund të futemi menjëherë në tabelë. Një gjë që duhet vënë në dukje është se këtij sensori i duhet kohë që të nxehet dhe të fillojë të funksionojë siç duhet, kështu që mos prisni që ai të funksionojë siç duhet sapo ta lidhni, jepini pak kohë dhe më pas vendoseni dhe çfarëdo të gjalle që hyn në të diapazoni do të aktivizojë kamerën.

Meqenëse ne po mendojmë në drejtimin e tabelave të sensorëve Arduino të bëra tashmë në mendje vjen një tjetër, tingulli. Këto dërrasa zakonisht bëhen në atë mënyrë që të kenë një kunj që nxjerr vlerën analoge të zërit që merr dhe një tjetër, atë dixhital, që nxjerr një LART logical logjike nëse tingulli që merr kapërcen një nivel të caktuar. Ne mund ta vendosim këtë nivel të tillë që sensori të injorojë zërin tonë, por të regjistrojë një duartrokitje. Në atë mënyrë, sa herë që duartrokitni, aktivizoni kamerën.

Hapi 12: PoweeEeEer

PoweeEeEer
PoweeEeEer
PoweeEeEer
PoweeEeEer

Unë mendoj se mënyra më e lehtë për të fuqizuar këtë gjë është me një bankë energjie, dhe jo nga jashtë. Ne do të mbajmë funksionalitetin e karikimit të telefonit tonë ose çfarëdo tjetër dhe do të kontrollojmë rrjedhën aktuale në tabelë përmes një çelësi. Ne do t'i gjejmë kunjat e lidhësit USB dalës në tabelën e qarkut në bankën e energjisë të cilat janë tela GND dhe Vcc (5V) dhe Solder drejtpërdrejt mbi to dhe prej andej në bordin tonë.

Hapi 13: Rrethimi.. Kinda

Rrethimi.. Kinda
Rrethimi.. Kinda
Rrethimi.. Kinda
Rrethimi.. Kinda
Rrethimi.. Kinda
Rrethimi.. Kinda

Unë vërtet luftova me këtë. Kur mblodha kutinë në të cilën doja të fusja PCB -në ekzistuese, kuptova se nuk ka mënyrë të mirë për të përshtatur gjithçka ashtu siç doja dhe më pas vendosa të krijoj një PCB të re, këtë herë me optocouplers. Doja të vendosja PCB -në nën anën në të cilën do të shpoja vrima për përbërës të caktuar që duhen parë/prekur. Që kjo të funksionojë, do të më duhej të lidhja ekranin dhe Arduino drejtpërdrejt në tabelë, pa priza ose kokë, dhe aty qëndron problemi i parë. Ishte absolutisht e tmerrshme të zgjidhësh ndonjë problem pasi nuk isha gati ta bashkoja menjëherë derisa të provoja se gjithçka po funksionon dhe nuk mund të provoja asgjë me të vërtetë pasi nuk mund ta lidhja atë dhe kështu me radhë.. don mos e bej kete. Problem numero dos, duke bërë vrima në kasë. Unë mendoj se kam bërë matje të gabuara sepse asnjë nga vrimat në kuti nuk ishte e lidhur me komponentët në PCB dhe më duhej t'i zmadhoja ato dhe butonat ishin shumë të lartë në PCB dhe ato gjithmonë do të shtypeshin kur ta vendosja tabelën në vend dhe meqenëse doja prizat audio në anën tjetër, më duhej t'i zmadhoja ato vrima për t'i përshtatur së pari prizave dhe pastaj ta ulja tabelën që ekrani dhe butonat të dilnin.. rezultati është i tmerrshëm.

Unë disi i bëra vrimat e tmerrshme më pak të tmerrshme duke e veshur pjesën e sipërme me një karton të hollë në të cilin kam prerë vrima më të arsyeshme për përbërësit dhe.. është akoma e tmerrshme, por më e lehtë për syrin mendoj.

Vendimi, unë ju sugjeroj ta bëni këtë duke blerë përbërës që ngjiten në rrethim, dhe jo drejtpërdrejt në PCB. Në atë mënyrë ju keni më shumë liri në vendosjen e përbërësve dhe më pak vende për të bërë gabime.

Hapi 14: Fin

Image
Image
Fin
Fin

Unë kam mbaruar, por këtu janë disa gjëra që do të kisha bërë ndryshe:

Përdorni priza audio me cilësi më të mirë 3.5 mm. Ato që kam përdorur kanë tendencë të shkurtojnë terminalet gjatë futjes ose tërheqjes së prizës, gjë që rezulton ose në shkurtimin e furnizimit duke rifilluar kështu Arduino ose thjesht prodhon shkasë të rremë. E kam thënë këtë në hapin e mëparshëm, por do ta them përsëri.. mos e lidhni bordin Arduino pa kokë/prizë, thjesht e bën çdo lloj zgjidhjeje të problemeve ose ngarkimin e kodit të ri e kështu me radhë shumë më të vështirë. Unë gjithashtu mendoj se të kesh një sinjalizim led se gjëja është e ndezur do të kishte qenë e dobishme sepse shpesh nuk mund ta them pa shtypur butonin pasi ekrani fiket. Dhe gjëja e fundit, një funksion pauzë. Unë imagjinoj se është e dobishme kur, për shembull, kur lidhni sensorin PIR, sepse i duhet kohë të nxehet, ose thjesht kur e lëvizni përreth nuk dëshironi që ajo të aktivizohet, kështu që thjesht mund të ndaloni gjithçka, por gjithashtu mund të ktheheni jashtë kamerës kështu.. çfarëdo.

Një gjë tjetër e pastër është ta përdorni Velcro në trekëmbësh pasi ka shumë të ngjarë të përdoret atje.

Mos ngurroni të pyesni gjithçka për këtë projekt në komente dhe do të doja të dija nëse e ndërtuat dhe si doli për ju.

Recommended: