Sadržaj:
- Korak 1: Ali.. Kako?
- Korak 2: Naučite kako aktivirati kameru
- Korak 3: Načini aktiviranja
- Korak 4: Pisanje koda za aktiviranje
- Korak 5: Interval klase {};
- Korak 6: Manipulacija intervalom putem Arduina
- Korak 7: Prikaz intervala
- Korak 8: Sve spojite
- Korak 9: Dodavanje posljednje stvari
- Korak 10: Zadržavanje nereda
- 11. korak: Sens0rs
- Korak 12: PoweeEeEer
- Korak 13: Prilog.. Nekako
- Korak 14: Fin
Video: Pimp My Cam: 14 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:38
Evo odakle ovaj projekt dolazi.
Neko sam vrijeme razmišljao o snimanju nekih vremenskih odmaka. "Kako?" Pitao sam se? Prvi odgovor bio je "Pa.. samo snimite nešto i ubrzajte i to je to". No je li doista 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, što ako želim napraviti zaista dug vremenski odmak, poput 12 sati? Snimim 12 sati dugačak 1080p video. Sumnjam da bi baterija izdržala toliko dugo i nije baš praktična, zar ne? U redu, križanje "ideje za snimanje videa". Pa, onda postoje slike. Snimanje fotografije na fotoaparatu u određenom intervalu i završavanje sa stotinama slika koje zatim obrađujem putem softvera kako bih napravio video..?
Činilo se da je to dobra ideja pa sam odlučio pokušati. Tako da sam na kraju htio napraviti uređaj u koji mogu unijeti vremensko razdoblje, a na temelju tog razdoblja stalno bi aktivirao moju kameru. I dok smo već kod toga, zašto ne bismo dodali neke druge stvari poput pokretača pokreta i tako dalje?
Korak 1: 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 tijela? Apsolutno ne, želimo da ovo bude tiho i energetski učinkovito. Energetski učinkovit - zašto? Budući da ga želim učiniti prijenosnim i u njega staviti bateriju, neću svaki put biti u blizini utičnice. Pa kako ćemo onda to pokrenuti.. zapravo je prilično jednostavno.
Nikon je već znao da ćete htjeti daljinski upravljač i drugu dodatnu opremu, a oni su rekli "u redu, dat ćemo im sve to, ali napravit ćemo posebnu luku kako bismo mogli više zaraditi 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 jednostavnu utičnicu za slušalice od 3,5 mm napravljenu za istu upotrebu pa možete koristiti neki kabel iz starih zvučnika/slušalica.
Korak 2: Naučite kako aktivirati kameru
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 kabela novo kupljenog daljinskog zatvarača koje ste upravo uništili. Te su nam tri veze važne jer ako skratimo uzemljenje i fokus, fotoaparat će se fokusirati baš kao što pritisnete gumb za izoštravanje, a zatim, dok ta veza ostane, možete skratiti uzemljenje i okidač, a 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 to žica. Nakon što to učinite, radi lakše identifikacije, obojat ćemo ih ovako:
Uzemljenje = CRNO; Fokus = BIJELO; Zatvarač = CRVENI.
U redu, sada moramo naučiti Arduino da to učini umjesto nas.
Korak 3: Načini aktiviranja
Najjednostavnija stvar koju možemo reći Arduinu da pošalje u vanjski svijet je njegov digitalni izlazni signal. Ovaj signal može biti VISOKI (logički '1') ili NISKI (logički '0'), otuda naziv "digitalni", ili kada se pretvori u jezgru, što znači: 5 V za logičku VISOKU i 0 V za logičku NISKU.
Što ćemo s tim digitalnim signalima? Ne možemo ih jednostavno povezati s kamerom i očekivati da kamera zna što želimo. Kao što smo vidjeli, moramo prekratiti veze na kameri kako bi ona reagirala, pa moramo koristiti digitalne signale Arduina za pogon nekih komponenti koje mogu kratiti njihove stezaljke 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 upotrijebiti crnu magiju poluvodiča.
Prva komponenta koju ću isprobati je optička sprega. Vidio sam ih najviše implementiranih za ovo i to je vjerojatno 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 prijenosom informacija svjetlom, ulazni krug pali LED diodu, a fototransistor 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, "odvojit" će svoje terminale budući da nema svjetla od LED -a kada šaljemo digitalni NISKI kroz Arduino.
Praktično, to znači: jedan od digitalnih pinova Arduina pričvršćen je na ANODE pin optoelementa, Arduino GND je pričvršćen na KATODU, GND fotoaparata je spojen na EMITTER, a FOCUS (ili OKVIR) NA SABIRAČ. Pogledajte tehnički list optičke sprege koju koristite da biste pronašli ove igle na svojoj. Koristim 4N35 tako da možete slijepo slijediti moje sheme ako vas zapravo ne zanima što se događa unutar optokaplera. Nepotrebno je reći da će nam trebati dva takva, 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 tranzistorima. Ovoga puta dovest ćemo digitalni signal izravno (preko otpornika) na bazu tranzistora i spojiti i kameru i Arduino GND na odašiljač i fokus/zatvarač kamere na kolektor tranzistora.
Opet ćemo trebati dva ova jer kontroliramo dva signala. Ja koristim BC547B i za to možete u osnovi koristiti bilo koji NPN, budući da je struja koju kontroliramo jedan miliamper.
Obje ove komponente će raditi, ali odabir optokaplera vjerojatno je bolja ideja jer je sigurniji. Odaberite tranzistore samo ako znate što radite.
Korak 4: Pisanje koda za aktiviranje
Kao što smo već rekli, za signalizaciju ćemo koristiti digitalne pinove Arduina. Arduino ih može koristiti za čitanje podataka s njega ili za pisanje, pa prvo što trebamo učiniti navesti u funkciji setup () da ćemo za izlaz koristiti dva od Arduinovih digitalnih pinova:
pinMode (FOCUS_PIN, OUTPUT);
pinMode (SHUTTER_PIN, OUTPUT);
gdje se FOCUS_PIN i SHUTTER_PIN mogu definirati s "#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 za snimanje fotografije.
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 fotoaparata kroz vrijeme.
Korak 5: Interval klase {};
Sada kada smo pokrenuli kameru s puta moramo to pretvoriti u intervalometar dodavanjem funkcionalnosti manipuliranja vremenskim razdobljem između dva snimka. Samo da biste dobili sliku o tome što radimo, evo nekoliko primitivnih kodova koji pokazuju funkcionalnost koju želimo:
void loop () {{100} {101}
kašnjenje (interval); okidač(); }
Želim biti u mogućnosti promijeniti ovaj interval od, recimo, 5 sekundi pa sve do možda 20-30 minuta. I tu je problem, ako ga želim promijeniti s 5s na 16s ili bilo što između, koristit ću prirast od 1s, gdje bi se za svaki moj zahtjev za povećanje intervala interval povećao 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 pa 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 kako biste znali gdje promijeniti koje vrijednosti).
Primjer manipulacije intervalom koji sam naveo očito je izveden na računalu, sada ga moramo premjestiti na Arduino. Cijela ova klasa, Interval, smještena je unutar jedne datoteke 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
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 s dvije tipke. Više puta ćemo čitati vrijednosti na digitalnim pinovima koje smo dodijelili gumbima i raščlaniti te vrijednosti na funkciju checkButtons (int, int); što će povećati interval ako se pritisne tipka "gore" i smanjiti interval ako gumb "dolje". Također, ako se pritisnu obje tipke, promijenit će se vrijednost promjenjivog fokusa koje kontrolira hoće li se fokusirati prilikom aktiviranja.
Dio koda ((millis () - prevBtnPress)> = debounceTime) koristi se za debouncing. 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 gumb još uvijek pritisnut, reagiram. Također pravi "pauzu" između svakog drugog pritiska gumba kako bi se izbjeglo višestruko pritiskanje tamo gdje ih nema.
I na kraju, sa:
if ((millis () - prevTrigger) / 1000> = interval.getVal ()) {
prevTrigger = millis (); okidač(); }
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 jest, sjećamo se trenutnog vremena kao posljednjeg puta 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čunala pa ćemo sada implementirati nešto što će nam pokazati interval dok ga mijenjamo.
Korak 7: Prikaz intervala
Ovdje predstavljamo zaslon. Koristio sam 4 -znamenkasti modul koji pokreće TM1637 jer ga moram koristiti samo za prikaz vremena i ništa drugo. Najjednostavniji način korištenja ovih modula napravljenih za Arduino je korištenje već napravljenih knjižnica za njih. Na web stranici Arduino nalazi se stranica koja opisuje čip TM1673 i veza do predložene biblioteke. Preuzeo sam ovu knjižnicu i postoje dva načina na koje možete uvesti te knjižnice u Arduino IDE:
- iz softvera Arduino idite na Sketch> Include Library> Add. ZIP library i pronađite.zip datoteku koju ste upravo preuzeli
- možete učiniti ono što Arduino radi ručno i jednostavno raspakirati biblioteku u mapi u kojoj Arduino pohranjuje knjižnice, u sustavu Windows: C: / Korisnici / Korisničko ime / Dokumenti / Arduino / knjižnice \.
Nakon što uključite knjižnicu, 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 otići dublje i istražiti datoteke zaglavlja u kojima možete vidjeti kako su funkcije implementirane i što im je potrebno kao ulazni argument. I naravno, najbolji način da osjetite za što je knjižnica sposobna obično nudi primjer koji možete pokrenuti iz softvera Arduino putem Datoteka> Primjeri> Ime biblioteke> Primjer imena. Ova biblioteka nudi jedan primjer koji vam preporučujem da pokrenete na zaslonu samo da vidite da li vaš zaslon radi ispravno, a zatim vas potičem da prilagodite kôd koji vidite u primjeru i sami se uvjerite u to što svaka funkcija radi i kako zaslon reagira na to. Učinio sam to i ovo sam shvatio:
za svaku znamenku koristi 4 bezznačna cijela broja od 8 bita (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. Ti su cijeli brojevi pohranjeni u nizu koji se naziva data . Postavljanje ovih bitova na zaslon postiže se display.setSegments (data); ili možete prirodno pristupiti bilo kojoj od znamenki, a posebno ih postaviti ili ručno (podaci [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 za 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 ()); podaci [2] = display.encodeDigit (interval.getS1 ()); podaci [3] = display.encodeDigit (interval.getS0 ()); display.setSegmenti (podaci); }
Sada, kad god moram prikazati interval na zaslonu, mogu pozvati funkciju displayInterval ().
*Zabilježite "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 zaslona, potrošnja energije. Možda to neće biti 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žoj.
Korak 8: Sve spojite
Znamo kako aktivirati kameru, kako manipulirati intervalom i kako prikazati taj isti interval na zaslonu. Sada samo trebamo spojiti sve ove stvari zajedno. Počet ćemo, naravno, od funkcije loop (). Neprestano ćemo provjeravati pritiskanje gumba i u skladu s tim reagirati s checkButtons (int, int) i prema tome mijenjati interval i prikazivati promijenjeni interval. Također ćemo u loop () neprestano provjeravati je li prošlo dovoljno vremena od zadnjeg aktiviranja ili pritiska tipke te 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
Do sada smo stvorili samo Intervalometar. Korisno, ali možemo i bolje.
Evo što sam imao na umu: Intervalometar radi po zadanom, OSIM kad priključimo neku vanjsku sklopku/senzor 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/izraditi trebaju sve 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 vrste utičnice od 3,5 mm "sa prekidačem" koje imaju pinove koji su kratko spojeni na pinove konektora ako u njima nema muškog priključka, a odvajaju se kad postoji konektor. To znači da imamo podatke na temelju prisutnosti senzora. Upotrijebit ću otpornik na dolje kako je prikazano (digitalni pin će očitavati VISOKO bez senzora, a NIZO 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, on će raditi 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 pa prikazuje "SENS" na zaslonu umjesto intervala koji je beskoristan u ovom načinu rada, ali fokusiranje je i dalje relevantno za nas, zadržat ćemo funkcionalnost izmjenjivanja fokusiranja pritiskom na obje tipke i prikazuje stanje fokusa kroz crvenu LED diodu.
Što 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 upotrijebiti za provjeru funkcionira li ovo, jednostavan je gumb s padajućim otpornikom. Pričvrstite gumb između Vcc senzora i signalnog pina i dodajte otpornik između signalnog pina i GND -a, na ovaj način signalni pin će biti na GND -u kada gumb nije pritisnut jer nema struje koja teče kroz otpornik, a kada pritiskom na gumb stavljamo signalni pin izravno na HIGH i Arduino to čita i aktivira kameru.
Time smo zaključili pisanje koda.
*Želio bih primijetiti neke probleme koje sam imao s 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 odmah i samo tijekom stavljanja konektora, 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: Zadržavanje nereda
Na slikama možete vidjeti da je ploča postala neuredna i gotovi smo pa moramo sve prenijeti na ploču/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 projektiranje PCB -a i pronašao dizajne za sve dijelove koje sam koristio. Voljela bih da nisam učinila jednu sitnicu u svom dizajnu, a to je žičana podloga za Vcc zaslona. Vidio sam to prekasno i nisam želio pokvariti ono što sam prethodno dizajnirao, a na lijen način sam 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 spojeni su na PCB putem ženskih pin zaglavlja, umjesto da su iz očiglednih razloga lemljeni izravno na PCB. Na taj način ispod zaslona ima dovoljno prostora za ostale komponente za ostale komponente, poput otpornika, tranzistora, pa čak i audio priključnice.
Stavio sam mikro tipke koje bi, prema dizajnu, trebale biti izravno lemljene, ali možete upotrijebiti i rupe za ženska pin zaglavlja i spojiti gumbe žicom ako želite da se montiraju na kućište, a ne na PCB.
Također ćemo staviti još jedan ženski audio priključak za priključivanje kabela koji se povezuje s kamerom. Na taj način ploča postaje svestranija jer ćemo se na taj način moći povezati s drugim kamerama s drugim konektorima.
11. korak: Sens0rs
Razmotrimo načine implementacije senzora.
Dakle, senzor će imati opskrbni napon od 5V, a morat će moći osigurati 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 kad se aktiviraju, samo moramo priključiti njegove pinove na 3,5 mm audio utičnicu i možemo ih priključiti izravno na ploču. Jedna stvar koju treba napomenuti je da je ovom senzoru potrebno vrijeme da se zagrije i počne raditi ispravno, stoga 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đenu razinu. Tu razinu možemo postaviti tako da senzor ignorira naš glas, ali registrira pljesak. Na taj način, kad god pljesnete, aktivirate kameru.
Korak 12: PoweeEeEer
Mislim da je najlakši način za napajanje ove stvari pomoću banke energije, a ne izvana. 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čici u bloku napajanja koji su GND i Vcc (5V) i žice za lemljenje izravno na njih, a odatle na našu ploču.
Korak 13: Prilog.. Nekako
Zaista sam se borio s ovim. Kad sam nabavio kutiju u koju sam želio staviti postojeću PCB, shvatio sam da nema lijepog načina da sve uklopim kako sam htio, a zatim sam odlučio dizajnirati novu PCB, ovaj put s optičkim spojnicama. 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 je lemiti zaslon i Arduino izravno na ploču, bez utičnica ili zaglavlja, i tu leži prvi problem. Bilo je apsolutno užasno riješiti bilo što jer nisam bio spreman odmah ga lemiti dok ne provjerim da li sve radi, a nisam mogao ništa testirati jer ga nisam mogao lemiti i tako dalje. Don ne radi ovo. Problem numero dos, stvaranje rupa na kućištu. Pretpostavljam da sam pogriješio u mjerenjima jer nijedna rupa na kućištu nije bila poravnana sa komponentama na PCB -u i morala sam ih povećati, a gumbi su bili previsoki na PCB -u i uvijek bi se pritisnuli kad bih stavila ploču na mjesto aa budući da sam želio audio priključnice sa strane, morao sam povećati i te rupe tako da prvo stanu u utičnice, a zatim spustiti ploču kako bi zaslon i gumbi mogli proći. ishod je užasan.
Nekako sam učinio užasne rupe manje strašnima prekrivši gornji dio tankim kartonom u kojemu sam izrezao razumnije rupe za komponente i.. i dalje je užasno, ali mislim da je lakše za oko.
Presuda, predlažem da to učinite kupnjom komponenti koje se montiraju na kućište, a ne izravno na PCB. Na taj način imate više slobode u postavljanju komponenti i manje mjesta na kojima griješite.
Korak 14: Fin
Završio sam, ali evo nekih stvari koje bih učinio drugačije:
Koristite kvalitetnije audio priključke od 3,5 mm. Ovi koje sam koristio imaju tendenciju kratkog spoja prilikom umetanja ili izvlačenja 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 se.. 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đer mislim da bi LED indikacija da je stvar uključena bila korisna jer često ne mogu reći bez pritiska na tipku jer se zaslon isključuje. I posljednja stvar, funkcija pauze. Zamišljam da bi to bilo korisno kada, na primjer, kad 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 jednostavno uključiti van kamere pa.. svejedno.
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 jeste li ga izgradili i kako je za vas ispalo.
Preporučeni:
Kako koristiti Raspberry Pi GPIO pinove i Avrdude za Bit-bang program DIMP 2 ili DA PIMP 2: 9 koraka
Kako koristiti Raspberry Pi GPIO pinove i Avrdude za Bit-bang program DIMP 2 ili DA PIMP 2: Ovo su korak-po-korak upute o tome kako koristiti Raspberry Pi i besplatna naredba otvorenog koda avrdude za bit-bang -programirajte DIMP 2 ili DA PIMP 2. Pretpostavljam da ste upoznati sa svojim Raspberry Pi -om i LINUX naredbenim retkom. Ne morate
Pimp My Wreck: 9 koraka
Pimp My Wreck: Uvod Pozdrav svima! Mi smo dva studenta informatike iz IDC -a, a mi se kao studenti zadovoljavamo osrednjim vozilima (barem dok se ne zaposlimo). Do tada imamo strast nadograditi svoje olupine kako bismo se barem osjećali smireno s onim što imamo
Sustav kućišta ESP32-CAM i Cam za 3D pisač: 10 koraka (sa slikama)
Sustav kućišta ESP32-CAM i Cam za 3D pisač: Htio sam zamijeniti kameru na svom 3-D pisaču nečim malim, jednostavnim i funkcionalnim … i jeftino. Nekoliko Google pretraživanja dovelo me do modula ESP32-Cam. Možete ih pronaći po cijeni manjoj od 10 USD, a daleko manje i vrlo su dobre
Početak rada s ESP32 CAM - Streaming videa putem ESP CAM -a putem Wi -Fi -ja. Projekt sigurnosne kamere ESP32: 8 koraka
Početak rada s ESP32 CAM | Streaming videa putem ESP CAM -a putem Wi -Fi -ja. Projekt sigurnosne kamere ESP32: Danas ćemo naučiti kako koristiti ovu novu ESP32 CAM ploču i kako je možemo kodirati i koristiti kao sigurnosnu kameru te dobiti streaming video putem WiFi -ja
Cam Cam: 18 koraka (sa slikama)
Food Cam: Ovaj projekt inspiriran je projektom kamere za hranu koji je izradio MIT Media Lab. Ovaj projekt dio je fakultetske usluge Coding For Good na UWCSEA East u Singapuru. Cilj ovog projekta je smanjiti količinu hrane koju naša zajednica rasipa za