Sadržaj:

Pimp My Cam: 14 koraka (sa slikama)
Pimp My Cam: 14 koraka (sa slikama)

Video: Pimp My Cam: 14 koraka (sa slikama)

Video: Pimp My Cam: 14 koraka (sa slikama)
Video: Красивая история о настоящей любви! Мелодрама НЕЛЮБОВЬ (Домашний). 2024, Novembar
Anonim
Pimp My Cam
Pimp My Cam

Evo odakle ovaj projekat dolazi.

Maloprije sam razmišljao o snimanju nekih vremenskih odstupanja. "Kako?" Pitao sam se? Prvi odgovor je bio "Pa.. samo snimite nešto i ubrzajte i to je to". No, je li zaista tako jednostavno? Prvo, za to želim koristiti svoj DSLR, a moj Nikon D3100 ima vremensko ograničenje od 10 minuta za snimanje videozapisa. Drugo, čak i da imam kameru bez vremenskog ograničenja za snimanje videa, šta ako želim napraviti zaista dugi vremenski odmak, poput 12 sati? Snimam 12 sati dugačak 1080p video. Sumnjam da će baterija izdržati toliko dugo i, nije baš praktično, zar ne? U redu, prelazim "ideju za snimanje videa". Pa, onda postoje slike. Snimanje fotografije kamerom u određenom intervalu i završavanje sa stotinama slika koje zatim obrađujem putem softvera za snimanje videa..?

Činilo se da je to dobra ideja pa sam odlučio pokušati. Tako sam na kraju htio napraviti uređaj u koji mogu unijeti vremenski period, a na osnovu tog perioda on bi stalno aktivirao moju kameru. I dok smo već kod toga, zašto ne bismo dodali neke druge stvari poput pokretača pokreta itd.?

Korak 1: Ali.. Kako?

Ali kako?
Ali kako?

KAKO? je naše sljedeće pitanje na koje nedostaje odgovor. Zbog vremena, okidača, senzora i sličnih stvari neće biti iznenađenje da je prvo što mi je palo na pamet, naravno, Arduino. U redu, ali ipak, moramo naučiti kako aktivirati okidač na našoj kameri. Hm.. servo vruće zalijepljeno za kameru kućišta? Apsolutno ne, želimo da ovo bude tiho i efikasno. Energetski efikasan - zašto? Budući da želim da bude prenosiv i u njega ubacim bateriju, neću svaki put biti blizu utikača za napajanje. Pa kako ćemo onda to pokrenuti.. zapravo je prilično jednostavno.

Nikon je već znao da ćete htjeti daljinski upravljač i drugu dodatnu opremu i rekli su "u redu, dat ćemo im sve to, ali napravit ćemo posebnu luku kako bismo mogli zaraditi više na toj dodatnoj opremi", sram te bilo Nikon. Taj port se (u mom slučaju) zove MC-DC2, a najjeftiniji način da ga dohvatimo je kupnja daljinskog okidača na eBayu za 2-3 dolara i samo korištenje kabela.

*Neke druge kamere, poput Canona, imaju jednostavan priključak za slušalice od 3,5 mm napravljen za istu upotrebu pa možete koristiti neki kabel iz starih zvučnika/slušalica.

Korak 2: Naučite kako aktivirati kameru

Image
Image
Načini aktiviranja
Načini aktiviranja

U svakom slučaju, evo dogovora, luka će imati tri veze koje će nas zanimati (uzemljenje, fokus i okidač), a vi ćete imati one na kraju kabla nedavno kupljenog daljinskog zatvarača koje ste upravo uništili. Te tri veze su nam važne jer ako skratimo uzemljenje i fokus, kamera će se fokusirati baš kao što pritisnete tipku fokusa, a zatim, dok ta veza ostane, možete skratiti uzemljenje i okidač i fotoaparat će snimiti sliku baš kao da ste pritisnuli okidač na fotoaparatu.

To možete isprobati doslovnim skraćivanjem žica pod naponom na kraju kabela kako biste identificirali koja je žica. Nakon što to učinite, radi lakše identifikacije, obojit ćemo ih ovako:

Uzemljenje = CRNO; Fokus = BIJELO; Zatvarač = CRVENI.

U redu, sada moramo naučiti Arduino da to radi umjesto nas.

Korak 3: Načini aktiviranja

Image
Image

Najjednostavnija stvar koju možemo reći Arduinu da pošalje u vanjski svijet je njegov digitalni izlazni signal. Ovaj signal može biti ili VISOK (logičko '1') ili NISKO (logičko '0'), pa otuda i naziv "digitalni", ili kada se pretvori u njegovo jezgro, što znači: 5 V za logičku VISOKU i 0 V za logičku NISKU.

Što nam je činiti s ovim digitalnim signalima? Ne možemo ih jednostavno povezati s kamerom i očekivati da kamera zna šta želimo. Kao što smo vidjeli, moramo skratiti veze na kameri kako bi ona reagirala, pa moramo koristiti digitalne signale Arduina za pogon nekih komponenti koje mogu kratiti svoje terminale ovisno o električnom signalu koji mu šaljemo. *Na način na koji sam to opisao, možda mislite "Ah, releji!" ali ne ne. Relej bi obavio posao, ali imamo posla s tako malim strujama da lako možemo koristiti crnu magiju poluvodiča.

Prva komponenta koju ću isprobati je optička sprega. Vidio sam ih najviše implementiranih za ovo i to je vjerovatno najbolje rješenje. Optocoupler je električna komponenta s kojom upravljate izlaznim krugom dok je ulazni krug potpuno izoliran od njega. To se postiže prenosom informacija svjetlom, na ulaznom krugu svijetli LED dioda, a fototranzistor na izlazu se prema tome uključuje.

Stoga ćemo optički sprežnik koristiti na ovaj način: kažemo našem Arduinu da pošalje digitalni HIGH na jedan ako se radi o digitalnim pinovima, taj signal je praktički 5V koji će pokretati LED unutar optopara, a fototranzistor unutar njega će se "kratko spojiti" to su izlazni terminali kada detektira tu svjetlost, i obrnuto, on će "odvojiti" njegove terminale jer nema svjetla sa LED diode kada šaljemo digitalni LOW kroz Arduino.

Praktično, to znači: jedan od digitalnih pinova Arduina spojen je na ANODE pin optopara, Arduino GND je pričvršćen na CATHODE, GND kamere je spojen na EMITTER, a FOCUS (ili ZATVARAČ) NA SABIRAČ. Pogledajte tehnički list optičke sprege koju koristite da biste pronašli ove pinove na svojoj. Koristim 4N35 tako da možete slijepo slijediti moje sheme ako vam nije stalo do toga što se događa unutar optokaplera. Nepotrebno je reći da će nam trebati dva, jer moramo kontrolirati i FOKUS i OKVIR kamere.

Budući da smo vidjeli kako to funkcionira, s fototranzistorom na izlazu, zašto ne bismo probali samo s jednostavnim NPN tranzistorom. Ovaj put ćemo digitalni signal donijeti izravno (preko otpornika) na bazu tranzistora i spojiti GND kamere i Arduino na odašiljač, a fokus/zatvarač kamere na kolektor tranzistora.

Opet će nam trebati dva ova jer kontroliramo dva signala. Koristim BC547B i u osnovi možete koristiti bilo koji NPN za to jer je struja koju kontroliramo jedan miliamper.

Obje ove komponente će raditi, ali odabir optokaplera vjerovatno je bolja ideja jer je sigurniji. Odaberite tranzistore samo ako znate što radite.

Korak 4: Pisanje koda za aktiviranje

Image
Image
Pisanje koda za okidanje
Pisanje koda za okidanje

Kao što smo već rekli, za signalizaciju ćemo koristiti digitalne pinove Arduina. Arduino može koristiti oboje za čitanje podataka s njega ili zapisivanje na njega, pa prvo što trebamo učiniti navesti u funkciji setup () da ćemo za izlaz koristiti dva Arduinova digitalna pina na sljedeći način:

pinMode (FOCUS_PIN, OUTPUT);

pinMode (SHUTTER_PIN, OUTPUT);

gdje se FOCUS_PIN i SHUTTER_PIN mogu definirati sa "#define NAME value" ili kao int prije funkcije setup () jer biste mogli promijeniti pin tako da je lakše promijeniti vrijednost samo na jednom mjestu, a ne u cijelom kodu kasnije.

Sljedeća stvar koju ćemo učiniti je napisati funkciju trigger () koja će raditi upravo to kada se pokrene. Samo ću priložiti sliku sa kodom. Sve što trebate znati je da prvo držimo FOCUS_PIN na HIGH -u određeno vrijeme jer moramo čekati da se kamera fokusira na predmet na koji ga usmjeravamo, a zatim samo na trenutak (dok je FOCUS_PIN još uvijek visok) postavite SHUTTER_PIN na HIGH samo da snimite sliku.

Uključio sam i mogućnost preskakanja fokusiranja jer neće biti potrebe za tim ako snimamo timelapse nečega što ne mijenja udaljenost od kamere kroz vrijeme.

Korak 5: Interval klase {};

Image
Image
Manipuliranje intervalom putem Arduina
Manipuliranje intervalom putem Arduina

Sada kada smo pokrenuli kameru s puta moramo to pretvoriti u intervalometar dodavanjem funkcionalnosti manipulacije vremenskim periodom između dva snimka. Samo da biste dobili sliku o tome šta radimo, evo nekoliko primitivnih kodova koji demonstriraju funkcionalnost koju želimo:

void loop () {{100} {101}

kašnjenje (interval); trigger (); }

Želim biti u mogućnosti promijeniti ovaj interval od, recimo, 5 sekundi pa sve do možda 20-30 minuta. I evo problema, ako želim promijeniti to sa 5s na 16s ili bilo šta između, koristit ću prirast od 1s, gdje bi se za svaki moj zahtjev za povećanje intervala interval povećavao za 1s. To je sjajno, ali što ako želim prijeći s 5s na 5min? Za to bi mi bilo potrebno 295 zahtjeva u koracima od 1 s, tako da očito moram povećati vrijednost prirasta na nešto veće, i moram definirati na kojoj točno vrijednosti intervala (prag) promijeniti prirast. Implementirao sam ovo:

5s-60s: prirast od 1s; 60s-300s: prirast od 10s; 300s-3600s: prirast od 60s;

ali napisao sam da je ova klasa prilagodljiva tako da možete definirati vlastite pragove i povećanja (sve je komentirano u.h datoteci tako da možete znati gdje promijeniti vrijednosti).

Primjer koji sam naveo o manipulaciji intervalom očito je izveden na računaru, sada ga moramo premjestiti na Arduino. Cijela ova klasa, Interval, smještena je u jednu datoteku zaglavlja koja se koristi za spremanje deklaracija i definicija (ne baš, ali to se može učiniti u ovom primjeru bez ikakve štete) naše klase/funkcija. Za uvođenje ove datoteke zaglavlja u naš arduino kôd koristimo "#include" Interval.h "" (datoteke moraju biti u istom direktoriju), što osigurava da možemo koristiti funkcije definirane u datoteci zaglavlja u našem glavnom kodu.

Korak 6: Manipulacija intervalom putem Arduina

Image
Image
Manipuliranje intervalom putem Arduina
Manipuliranje intervalom putem Arduina
Manipuliranje intervalom putem Arduina
Manipuliranje intervalom putem Arduina

Sada želimo biti u mogućnosti promijeniti vrijednost intervala, ili ga povećati ili smanjiti. Dakle, to su dvije stvari pa ćemo koristiti dva digitalna signala kojima će se upravljati pomoću dva dugmeta. Više puta ćemo čitati vrijednosti na digitalnim pinovima koje smo dodijelili tipkama i raščlaniti te vrijednosti na funkciju checkButtons (int, int); koji će povećati interval ako pritisnete dugme "gore" i smanjiti interval ako dugme "dole". Također, ako se pritisnu oba gumba, promijenit će se vrijednost promjenjivog fokusa koji kontrolira hoće li se fokusirati prilikom aktiviranja.

Dio koda ((millis () - prevBtnPress)> = debounceTime) koristi se za uklanjanje. Način na koji sam to napisao, znači da registriram prvi pritisak na tipku s logičkom varijablom btnPressed i sjećam se vremena kada se to dogodilo. Zatim čekam određeno vrijeme (debounceTime) i ako je dugme još uvijek pritisnuto, reagiram. Takođe pravi "pauzu" između svakog drugog pritiska na dugme kako bi se izbeglo višestruko pritiskanje tamo gde ih nema.

I na kraju, sa:

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

prevTrigger = millis (); trigger (); }

prvo provjeravamo je li vrijeme između zadnjeg aktiviranja (prevTrigger) i trenutnog vremena (millis ()) (sve je podijeljeno s 1000 jer je u milisekundama, a interval je u sekundama) jednako ili veće od intervala želimo, a ako jeste, sjećamo se trenutnog vremena kao zadnji put kada smo aktivirali kameru, a zatim je aktivirali.

S ovim kompletom, u osnovi smo napravili intervalometar, ali daleko smo od kraja. Još uvijek ne vidimo vrijednost intervalometra. Prikazuje se samo na serijskom monitoru i nećemo uvijek biti u blizini računara pa ćemo sada implementirati nešto što će nam pokazati interval dok ga mijenjamo.

Korak 7: Prikaz intervala

Image
Image
Prikaz intervala
Prikaz intervala
Prikaz intervala
Prikaz intervala
Prikaz intervala
Prikaz intervala

Ovdje predstavljamo ekran. Koristio sam četveroznamenkasti modul koji pokreće TM1637 jer ga trebam koristiti samo za prikaz vremena i ništa drugo. Najlakši način za korištenje ovih modula napravljenih za Arduino je korištenje već napravljenih biblioteka za njih. Na web stranici Arduino postoji stranica koja opisuje čip TM1673 i veza do predložene biblioteke. Preuzeo sam ovu biblioteku i postoje dva načina na koje možete uvesti ove biblioteke u Arduino IDE:

  1. iz softvera Arduino idite na Sketch> Include Library> Add. ZIP library i pronađite.zip datoteku koju ste upravo preuzeli
  2. možete učiniti ono što Arduino radi ručno i jednostavno raspakirati biblioteku u mapi u kojoj Arduino skladišti biblioteke, u sustavu Windows: C: / Korisnici / Korisničko ime / Dokumenti / Arduino / biblioteke \.

Nakon što uključite biblioteku, trebali biste pročitati datoteku "ReadMe" u kojoj ćete pronaći sažetak onoga što različite funkcije rade. Ponekad to nije dovoljno pa ćete htjeti ići dublje i istražiti datoteke zaglavlja u kojima možete vidjeti kako su funkcije implementirane i šta im je potrebno kao ulazni argument. I naravno, najbolji način da osjetite za što je biblioteka sposobna obično nudi primjer koji možete pokrenuti iz Arduino softvera putem Datoteka> Primjeri> Ime biblioteke> Primjer imena. Ova biblioteka nudi jedan primjer koji vam preporučujem da pokrenete na ekranu samo da vidite da li vaš ekran radi ispravno, a zatim vas ohrabrujem da prilagodite kôd koji vidite u primjeru i sami se uvjerite u to što svaka funkcija radi i kako zaslon reagira na to. Uradio sam to i evo šta sam shvatio:

koristi 4 cijela broja bez znaka od 8 bita za svaku znamenku (0bB7, B6, B5, B4, B3, B2, B1, B0). Svaki od tih bitova B6-B0 koristi se za svaki segment određene znamenke, a ako je bit 1, svijetli segment kojim upravlja. Ovi cijeli brojevi su pohranjeni u nizu koji se naziva data . Postavljanje ovih bitova na ekran postiže se display.setSegments (data); ili možete prirodno pristupiti bilo kojoj od znamenki, a posebno ih postaviti ili ručno (data [0] = 0b01111001) ili možete koristiti funkciju encodeDigit (int); i pretvorite znamenku u koju je šaljete prema bitima (data [0] = display.encodeDigit (3));. Bit B7 koristi samo druga znamenka ili podatak [1] za aktiviranje debelog crijeva.

Budući da sam napisao funkcije u klasi INTERVAL koje mogu dobiti određene znamenke intervala u obliku M1M0: S1S0, gdje M stoji za minute, a S za sekunde, prirodno je da koristim encodeDigitFunction (int); za prikazivanje intervala ovako:

displayInterval () {

data [0] = display.encodeDigit (interval.getM1 ()); podaci [1] = 0x80 | display.encodeDigit (interval.getM0 ()); data [2] = display.encodeDigit (interval.getS1 ()); data [3] = display.encodeDigit (interval.getS0 ()); display.setSegments (podaci); }

Sada, kad god moram prikazati interval na ekranu, mogu pozvati displayInterval () funkciju.

*Obratite pažnju na "0x80 | …" na podacima [1]. Koristi se za osiguravanje da je bit B7 podataka [1] uvijek 1 tako da se dvotočka svijetli.

Zadnja stvar oko ekrana, potrošnja energije. Možda to nije od velike važnosti jer ga nećemo dugo držati uključenog, ali ako ste zainteresirani da ovo učinite još ugodnijim za baterije, razmislite o smanjenju svjetline zaslona jer troši 3 puta više struje na maksimalnoj svjetlini nego na najnižem.

Korak 8: Sve zajedno

Spajajući sve zajedno
Spajajući sve zajedno

Znamo kako aktivirati kameru, kako manipulirati intervalom i kako prikazati taj isti interval na ekranu. Sada samo trebamo spojiti sve ove stvari zajedno. Počet ćemo, naravno, od funkcije loop (). Neprestano ćemo provjeravati pritiske tipki i u skladu s tim reagirati s checkButtons (int, int) i prema tome mijenjati interval i prikazivati promijenjeni interval. Također u loop () ćemo stalno provjeravati je li prošlo dovoljno vremena od zadnjeg aktiviranja ili pritiska tipke i po potrebi pozvati funkciju trigger (). Radi manje potrošnje energije isključit ćemo zaslon nakon nekog vremena.

Dodao sam dvobojnu LED diodu (crvena i zelena, zajednička katoda) koja će svijetliti zeleno dok je okidač () i svijetlit će crveno zajedno s zaslonom ako je fokusiranje uključeno i ostat će isključeno ako je fokusiranje isključeno.

Također, preći ćemo na još manji Arduino, Pro Mini.

Korak 9: Dodavanje posljednje stvari

Dodavanje jedne posljednje stvari
Dodavanje jedne posljednje stvari
Dodavanje jedne posljednje stvari
Dodavanje jedne posljednje stvari
Dodavanje jedne posljednje stvari
Dodavanje jedne posljednje stvari

Do sada smo stvorili samo Intervalometar. Korisno, ali možemo i bolje.

Evo što sam imao na umu: Intervalometar po zadanom radi osim ako priključimo neku vrstu vanjskog prekidača/senzora koji tada zaustavlja intervalometar i reagira na ulaz prekidača/senzora. Nazovimo to senzorom, on neće nužno biti povezan senzor, ali ja ću ga tako nazvati.

Prvo, kako možemo otkriti da smo priključili senzor?

Svi senzori koje ćemo koristiti/napraviti će trebati tri žice koje ih povezuju s arduinom (Vcc, GND, Signal). To znači da možemo koristiti 3,5 mm audio priključak kao ulaz za senzor. I kako to rješava naš problem? Pa, postoje tipovi utičnice od 3,5 mm "sa prekidačem" koji imaju pinove koji su kratko spojeni na pinove konektora ako u njima nema muškog konektora, a odvajaju se kada postoji konektor. To znači da imamo informacije zasnovane na prisutnosti senzora. Koristit ću otpornik koji se spušta kao što je prikazano (digitalni pin će očitavati HIGH bez senzora, a LOW sa priključenim senzorom) na slici ili ga možete priključiti i na digitalni pin na pin konektora koji je normalno spojen na masu i definirati taj digitalni pin kao INPUT_PULLUP, funkcionirat će u svakom slučaju. Dakle, sada moramo prilagoditi naš kôd tako da radi sve što smo do sada napisali samo ako senzor nije prisutan, ili kada digitalni pin provjerava da je VISOK. Također sam ga dotjerao tako da prikazuje "SENS" na ekranu umjesto intervala koji je beskoristan u ovom načinu rada, ali fokusiranje je i dalje relevantno za nas, zadržat ćemo funkcionalnost naizmjeničnog fokusiranja pritiskom na oba gumba i prikazuje stanje fokusa kroz crvenu LED diodu.

Šta senzor zapravo radi?

Sve što trebate učiniti je staviti 5V na signalni pin kada želimo aktivirati kameru. To znači da će nam trebati još jedan digitalni pin Arduina koji će provjeriti stanje ovog pina i kada registrira HIGH, sve što treba učiniti je pozvati funkciju trigger () i kamera će snimiti sliku. Najjednostavniji primjer i onaj koji ćemo koristiti za provjeru funkcionira li ovo, jednostavno je dugme s padajućim otpornikom. Pričvrstite dugme između Vcc senzora i signalnog pina i dodajte otpornik između signalnog pina i GND, na ovaj način će signalni pin biti na GND kada dugme nije pritisnuto, jer kroz otpornik ne protiče struja, a pritiskom na dugme stavljamo signalni pin direktno na HIGH i Arduino to čita i aktivira kameru.

Ovim smo zaključili pisanje koda.

*Želio bih napomenuti neke probleme koje sam imao sa audio priključnicama koje sam koristio. Prilikom umetanja muške utičnice u konektor, GND i bilo koji od druga dva pina ponekad bi se spojili. To se događa trenutačno i samo dok se priključuje konektor, ali još uvijek je dovoljno dugo da Arduino registrira kratki spoj kako bi se Arduino samo ponovo pokrenuo. To se ne događa tako često, ali i dalje može biti opasnost, a postoji i mogućnost uništenja Arduina, stoga izbjegavajte konektore koje sam koristio.

Korak 10: Suzbijanje nereda

Sadržavajući nered
Sadržavajući nered
Sadržavajući nered
Sadržavajući nered
Sadržavajući nered
Sadržavajući nered
Sadržavajući nered
Sadržavajući nered

Na slikama možete vidjeti da je matična ploča neuredna i gotovi smo pa moramo sve prenijeti na perfboard/PCB. Otišao sam na PCB jer mislim da ću ih proizvoditi više pa ih na ovaj način mogu lako reproducirati.

Koristio sam Eagle za dizajniranje PCB -a i pronašao dizajne za sve dijelove koje sam koristio. Voljela bih da nisam radila jednu sitnicu u svom dizajnu, a to je žičana podloga za Vcc na ekranu. Vidio sam to prekasno i nisam htio pokvariti ono što sam prethodno dizajnirao, pa sam na lijen način dodao žičane jastučiće i kasnije morao dodati žice na ove veze umjesto bakrenih tragova, pa imajte na umu da ako koristite moj dizajn.

Arduino ploča i zaslon su spojeni na PCB putem ženskih pin zaglavlja, a ne iz lemljenja direktno na PCB, iz očiglednih razloga. Na ovaj način ispod ekrana ima dovoljno prostora za ostale komponente za druge komponente, poput otpornika, tranzistora, pa čak i audio priključka.

Stavio sam mikro tipke koje bi, prema dizajnu, trebale biti lemljene izravno, ali možete upotrijebiti i rupe za ženska zaglavlja pinova i spojiti gumbe žicom ako želite da se montiraju na kućište, a ne na PCB.

Takođe ćemo staviti još jedan ženski audio priključak za priključivanje kabla koji povezuje kameru. Na ovaj način ploča postaje svestranija jer ćemo se tako moći povezati s drugim kamerama pomoću drugih konektora.

Korak 11: Sens0rs

Image
Image
Sens0rs
Sens0rs

Razmotrimo načine implementacije senzora.

Dakle, senzor će imati napon napajanja od 5V, i morat će moći omogućiti digitalnu HIGH na svom signalnom pinu kada želimo aktivirati kameru. Prvo što mi je palo na pamet je senzor pokreta, točnije PIR. Za Arduino se prodaju moduli koji na sebi imaju ovaj senzor i rade upravo ono što želimo. Napajaju se na 5V i imaju izlazni pin na koji stavljaju 5V kada se aktiviraju, samo trebamo spojiti njegove pinove na 3,5 mm audio utičnicu i možemo ih priključiti direktno na ploču. Jedna stvar koju treba napomenuti je da je ovom senzoru potrebno vrijeme da se zagrije i počne raditi ispravno, tako da ne očekujte da će raditi ispravno čim ga priključite, dajte mu malo vremena, a zatim ga postavite i sve što je živo ulazi u svoj senzor. domet će aktivirati kameru.

Budući da razmišljamo u smjeru već napravljenih Arduino senzorskih ploča, pada nam na pamet još jedna, zvuk. Ove ploče su obično izrađene tako da imaju jedan pin koji emitira analognu vrijednost zvuka koji prima i drugi, digitalni, koji daje logičku HIGH ako zvuk koji uhvati prelazi određeni nivo. Ovaj nivo možemo postaviti tako da senzor ignorira naš glas, ali registrira pljesak. Na taj način, kad god pljesnete, aktivirate kameru.

Korak 12: PoweeEeEer

PoweeEeEer
PoweeEeEer
PoweeEeEer
PoweeEeEer

Mislim da je najlakši način za napajanje ove stvari pomoću banke energije, a ne eksterno. Zadržat ćemo funkcionalnost punjenja telefona ili bilo čega drugog i kontrolirat ćemo protok struje do ploče putem prekidača. Locirat ćemo pinove izlaznog USB konektora na ploči u banci napajanja koji su GND i Vcc (5V) i lemne žice izravno na njih, a odatle na našu ploču.

Korak 13: Prilog.. Nekako

Prilog.. Nekako
Prilog.. Nekako
Prilog.. Nekako
Prilog.. Nekako
Prilog.. Nekako
Prilog.. Nekako

Zaista sam se borio sa ovim. Kad sam nabavio kutiju u koju sam htio staviti postojeću PCB, shvatio sam da ne postoji lijep način da sve uklopim kako sam htio, a zatim sam odlučio dizajnirati novu PCB, ovaj put s optičkim spregama. Htio sam postaviti PCB odmah ispod stranice na kojoj bih izbušio rupe za određene komponente koje treba vidjeti/dodirnuti. Da bi ovo funkcioniralo, potrebno mi je lemiti ekran i Arduino direktno na ploču, bez utičnica i zaglavlja, i tu leži prvi problem. Bilo je apsolutno užasno riješiti bilo što jer nisam bio spreman odmah to lemiti dok ne provjerim da li sve radi, a nisam mogao ništa testirati jer nisam mogao lemiti i tako dalje. Don ne radi ovo. Problem sa brojevima, pravljenjem rupa na kućištu. Pretpostavljam da sam pogrešno izvršio mjerenja jer nijedna rupa na kućištu nije bila poravnana sa komponentama na PCB -u i morao sam ih povećati, a tipke su bile previsoke na PCB -u i uvijek bi se pritisnule kad bih stavila ploču na mjesto ai budući da sam htio audio priključke sa strane, morao sam povećati i te rupe kako bi prvo odgovarao utičnicama, a zatim spustiti ploču kako bi ekran i tipke mogli proći. ishod je užasan.

Nekako sam učinio užasne rupe manje strašnima prekrivajući vrh tankim kartonom u kojem sam izrezao razumnije rupe za komponente i.. i dalje je strašno, ali mislim da je za oko lakše.

Presuda, predlažem da to učinite kupovinom komponenti koje se montiraju na kućište, a ne direktno na PCB. Na taj način imate više slobode u postavljanju komponenti i manje mjesta na kojima griješite.

Korak 14: Fin

Image
Image
Fin
Fin

Završio sam, ali evo nekih stvari koje bih uradio drugačije:

Koristite kvalitetnije audio priključke od 3,5 mm. Ovi koje sam koristio imaju tendenciju kratkog spoja pri umetanju ili izvlačenju utičnice što rezultira ili kratkim napajanjem, čime se resetira Arduino, ili samo proizvodi lažne okidače. Ovo sam rekao u prethodnom koraku, ali ponovit ću.. nemojte lemiti Arduino ploču bez zaglavlja/utičnice, to samo otežava bilo kakvo rješavanje problema ili postavljanje novog koda i tako dalje. Takođe mislim da bi LED indikacija da je stvar uključena bila korisna jer često ne mogu reći bez pritiska na dugme jer se ekran isključuje. I posljednja stvar, funkcija pauze. Zamišljam da bi to bilo korisno kada, na primjer, kada priključite PIR senzor, jer mu treba vremena da se zagrije, ili samo kad ga pomičete ne želite da se aktivira pa biste mogli sve pauzirati, ali možete i jednostavno uključiti iskljuci kameru pa.. sta god.

Još jedna zgodna stvar je da je pričvrstite čičakom na stativ jer se najvjerojatnije tamo koristi.

U komentarima slobodno pitajte bilo što o ovom projektu i volio bih znati da li ste ga izgradili i kako je za vas ispalo.

Preporučuje se: