Innholdsfortegnelse:
- Trinn 1: Men.. Hvordan?
- Trinn 2: Lær hvordan du aktiverer kameraet
- Trinn 3: Måter å utløse
- Trinn 4: Skrive koden for utløsning
- Trinn 5: Klasseintervall {};
- Trinn 6: Manipulere intervallet gjennom Arduino
- Trinn 7: Viser intervallet
- Trinn 8: Sett alt sammen
- Trinn 9: Legge til en siste ting
- Trinn 10: Inneholder rotet
- Trinn 11: Sens0rs
- Trinn 12: PoweeEeEer
- Trinn 13: Vedlegg.. Litt
- Trinn 14: Fin
Video: Pimp My Cam: 14 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:26
Her er hvor dette prosjektet kommer fra.
For en stund tilbake tenkte jeg på å filme noen tidsforsinkelser. "Hvordan?" Spurte jeg meg selv? Det første svaret var "Vel.. du filmer bare noe og fremskynder det og det er det". Men er det virkelig så enkelt? Først vil jeg bruke DSLR -en min til det, og Nikon D3100 har en tidsfrist på 10 minutter for videoopptak. For det andre, selv om jeg hadde et kamera uten tidsbegrensning på filming av video, hva om jeg vil gjøre en virkelig lang tidsforløp, som 12 timer lang? Jeg lager en 12 timer lang 1080p video. Jeg tviler på at batteriet vil vare så lenge, og det er ikke veldig praktisk, er det? Greit, krysser "filming videoidee". Vel, så er det bilder. Tar et bilde på kameraet med et bestemt intervall og ender opp med hundrevis av bilder som jeg behandler gjennom programvare for å lage en video..?
Virket som en grei idé, så jeg bestemte meg for å prøve det. Så jeg endte opp med å ønske å lage en enhet som jeg kan legge inn en tidsperiode i, og basert på den perioden ville det utløse kameraet mitt hele tiden. Og mens vi er i gang, hvorfor ikke legge til noen andre ting som motion-trigger og så videre?
Trinn 1: Men.. Hvordan?
HVORDAN? er vårt neste spørsmål som mangler svar. På grunn av timing, utløsere, sensorer og slike ting vil det ikke være noen overraskelse at den første som kom til å tenke, selvfølgelig var en Arduino. Greit, men likevel må vi lære å utløse lukkeren på kameraet vårt. Hm.. servo varmlimt til kroppskameraet? Absolutt ikke, vi vil at dette skal være stille og energieffektivt. Strømeffektiv - hvorfor? Fordi jeg vil gjøre den bærbar og sette et batteri i den, vil jeg ikke være i nærheten av en strømkontakt hver gang. Så hvordan utløser vi det da.. det er faktisk ganske enkelt.
Nikon visste allerede at du kommer til å ønske deg en fjernkontroll og annet tilbehør, og de sa "ok, vi gir dem alt det, men vi skal lage en spesiell port så vi kan tjene mer penger på det tilbehøret", skam deg Nikon. Den porten (i mitt tilfelle) heter MC-DC2, og den billigste måten å få tak i den er å kjøpe en ekstern lukker på eBay for 2-3 $ og bare bruke kabelen.
*Noen andre kameraer, som Canon, har en enkel 3,5 mm hodetelefonkontakt laget for samme bruk, slik at du kan bruke litt kabel fra gamle høyttalere/hodetelefoner.
Trinn 2: Lær hvordan du aktiverer kameraet
Uansett, her er avtalen, porten vil ha 3 tilkoblinger som vil være av vår interesse (bakken, fokus og lukker), og du vil ha dem på enden av kabelen til den nylig kjøpte fjernkontrollen du nettopp ødela. Disse tre tilkoblingene er viktige for oss, for hvis vi korte bakken og fokusere, fokuserer kameraet akkurat som du trykker på fokusknappen, og mens forbindelsen forblir, kan du korte bakken og lukkeren, og kameraet tar et bilde akkurat som om du trykket på lukkerknappen på kameraet.
Du kan teste dette ut ved å bokstavelig talt kortere strømførende ledninger på enden av kabelen for å identifisere hvilken ledning som er hvilken. Når du har gjort det, for lettere å identifisere, fargelegger vi dem slik:
Bakken = SVART; Fokus = HVIT; Lukker = RØD.
Ok, nå må vi lære Arduino å gjøre dette for oss.
Trinn 3: Måter å utløse
Det enkleste vi kan fortelle en Arduino å sende til den ytre verden er det digitale utgangssignalet. Dette signalet kan enten være HIGH (logisk '1') eller LOW (logisk '0'), derav navnet "digitalt", eller når det konverteres til kjernebetegnelsen: 5V for et logisk HIGH, og 0V for et logisk LOW.
Hva skal vi gjøre med disse digitale signalene? Vi kan ikke bare koble dem til kameraet og forvente at kameraet vet hva vi vil. Som vi har sett, må vi koble tilkoblingene på kameraet for at det skal reagere, så vi må bruke de digitale signalene til Arduino for å drive noen komponenter som kan kortslutte terminalene, avhengig av dette elektriske signalet vi sender det. *Slik jeg beskrev det, tenker du kanskje "Ah, Relays!" men nei nei. Stafett ville gjort jobben, men vi har å gjøre med så små strømmer at vi enkelt kan bruke den svarte magien til halvledere.
Den første komponenten jeg skal prøve er en optokobler. Jeg har sett dem implementert mest for dette, og det er sannsynligvis den beste løsningen. Optokobler er en elektrisk komponent som du styrer utgangskretsen med mens inngangskretsen er fullstendig isolert fra den. Dette oppnås ved å overføre informasjon med lys, inngangskretsen tenner en LED, og fototransistoren på utgangen bytter deretter.
Så vi vil bruke optokobleren på denne måten: Vi forteller Arduinoen vår om å sende en digital HIGH på en hvis det er digitale pinner, det signalet er praktisk talt 5V som vil drive LED -en inne i optokobleren og fototransistoren inne i den vil "kort" det er utgangsterminaler når det oppdager det lyset, og omvendt, det vil "løsne" terminalene siden det ikke er noe lys fra LED -en når vi sender en digital LOW gjennom Arduino.
Praktisk sett betyr dette: en av de digitale pinnene på Arduino er festet til ANODE -pinnen på optokobleren, Arduinos GND er festet til KATODEN, kameraets GND er festet til EMITTER og FOCUS (eller SHUTTER) til COLLECTOR. Se databladet til optokobleren du bruker for å finne disse pinnene på din. Jeg bruker 4N35, slik at du kan følge skjemaet mitt blindt hvis du ikke bryr deg om hva som skjer inne i optokobleren. Unødvendig å si trenger vi to av disse, siden vi må kontrollere både kameraets FOKUS og LUKKER.
Siden vi så hvordan det fungerer, med en fototransistor på utgangen, hvorfor prøver vi det ikke bare med en enkel NPN -transistor. Denne gangen tar vi det digitale signalet direkte (over en motstand) til bunnen av transistoren og kobler både kameraets og Arduinos GND til senderen og kameraets fokus/lukker til transistorens kollektor.
Igjen, vi trenger to av disse siden vi styrer to signaler. Jeg bruker BC547B, og du kan i utgangspunktet bruke hvilken som helst NPN for dette siden strømmen vi kontrollerer er en milliampere.
Begge disse komponentene vil fungere, men å velge optokobleren er sannsynligvis den bedre ideen fordi den er tryggere. Velg transistorer bare hvis du vet hva du gjør.
Trinn 4: Skrive koden for utløsning
Som vi sa før, bruker vi de digitale pinnene til Arduino for signalering. Arduino kan bruke disse både til å lese data fra den, eller skrive til den, så det første vi må gjøre spesifiserer i setup () -funksjonen at vi skal bruke to av Arduinos digitale pins for utgangen slik:
pinMode (FOCUS_PIN, OUTPUT);
pinMode (SHUTTER_PIN, OUTPUT);
hvor FOCUS_PIN og SHUTTER_PIN enten kan defineres med "#define NAME -verdi" eller som en int før setup () -funksjonen fordi du kan endre pinnen, så det er lettere å endre verdien på bare ett sted i stedet for hele koden etterpå.
Det neste vi skal gjøre er å skrive en trigger () -funksjon som vil gjøre nettopp det når det kjøres. Jeg vil bare legge til et bilde med koden. Alt du trenger å vite er at først holder vi FOCUS_PIN på HIGH i en viss periode fordi vi må vente på at kameraet fokuserer på motivet vi peker det på og deretter et øyeblikk (mens FOCUS_PIN fortsatt er HØY) Sett SHUTTER_PIN på HIGH bare for å ta bildet.
Jeg inkluderte også muligheten til å hoppe over fokuseringen fordi det ikke vil være behov for det hvis vi fotograferer en timelapse av noe som ikke endrer avstanden fra kameraet gjennom tiden.
Trinn 5: Klasseintervall {};
Nå som vi har utløst kameraet, må vi gjøre dette til et intervallometer ved å legge til funksjonaliteten for å manipulere tidsperioden mellom to bilder. Bare slik at du får et bilde av hva vi gjør, her er noen primitive koder for å demonstrere funksjonaliteten vi ønsker:
void loop () {
forsinkelse (intervall); avtrekker(); }
Jeg vil kunne endre dette intervallet fra, la oss si, 5 sekunder helt opp til kanskje 20-30 minutter. Og her er problemet, hvis jeg vil endre det fra 5s til 16s eller noe i mellom, vil jeg bruke 1s -trinn, der for hver av mine forespørsler om å øke intervallet, vil intervallet øke i 1s. Det er flott, men hva om jeg vil gå fra 5 til 5 minutter? Det ville ta meg 295 forespørsler om det i trinn på 1 sek, så jeg må åpenbart øke inkrementverdien til noe større, og jeg må definere hvilken eksakt intervallverdi (terskel) som skal endres. Jeg implementerte dette:
5s-60s: 1s trinn; 60s-300s: 10s increment; 300s-3600s: 60s increment;
men jeg skrev denne klassen for å være justerbar, slik at du kan definere dine egne terskler og trinn (alt er kommentert i.h -filen, slik at du kan vite hvor du skal endre hvilke verdier).
Eksemplet jeg har gitt på å manipulere intervallet er åpenbart gjort på en PC, nå må vi flytte det til Arduino. Hele denne klassen, Intervall, er plassert i en topptekstfil som brukes til å lagre deklarasjoner og definisjoner (egentlig ikke, men det kan gjøres i dette eksemplet uten å skade) i klassen/funksjonene våre. For å introdusere denne overskriftsfilen til vår arduino -kode bruker vi "#include" Interval.h "" (filene må være i samme katalog), som sørger for at vi kan bruke funksjonene som er definert i toppteksten i hovedkoden.
Trinn 6: Manipulere intervallet gjennom Arduino
Nå ønsker vi å kunne endre verdien på intervallet, enten øke eller redusere det. Så det er to ting, så vi bruker to digitale signaler som styres av to knapper. Vi vil gjentatte ganger lese verdiene på de digitale pinnene vi tilordnet knappene og analysere disse verdiene til funksjonskontrollknappene (int, int); som vil øke intervallet hvis knappen "opp" trykkes og redusere intervallet hvis knappen "ned". Hvis du trykker på begge knappene, vil det også endre verdien av det variable fokuset som styrer om det skal fokuseres eller ikke når det utløses.
En del av koden ((millis () - prevBtnPress)> = debounceTime) brukes til debouncing. Slik jeg skrev det, betyr det at jeg registrerer det første knappetrykket med boolsk variabel btnPressed og husker tiden det skjedde. Enn jeg venter en viss tid (debounceTime), og hvis knappen fremdeles er trykket, reagerer jeg. Det gjør også en "pause" mellom hvert annet trykk på knappen, så det unngår flere trykk der det ikke er noen.
Og til slutt, med:
if ((millis () - prevTrigger) / 1000> = interval.getVal ()) {
prevTrigger = millis (); avtrekker(); }
Vi sjekker først om tiden mellom den siste utløseren (prevTrigger) og den nåværende tiden (millis ()) (alt er delt med en 1000 fordi den er i millisekunder og intervallet er i sekunder) er lik eller større enn intervallet vi vil, og hvis det er det, husker vi den nåværende tiden som den siste gangen vi utløste kameraet og deretter utløste det.
Med denne komplette laget vi i utgangspunktet et intervallometer, men vi er langt fra over. Vi ser fremdeles ikke verdien av intervallometeret. Den vises bare på den serielle skjermen, og vi vil ikke alltid være i nærheten av en datamaskin, så nå implementerer vi noe som viser oss intervallet når vi endrer det.
Trinn 7: Viser intervallet
Det er her vi presenterer displayet. Jeg brukte den firesifrede modulen som er drevet av TM1637 fordi jeg bare trenger å bruke den for å vise tid og ingenting annet. Den enkleste måten å bruke disse modulene laget for en Arduino er å bruke allerede laget biblioteker for dem. På Arduino -siden er det en side som beskriver TM1673 -brikken og en lenke til et foreslått bibliotek. Jeg lastet ned dette biblioteket, og det er to måter du kan introdusere disse bibliotekene til Arduino IDE:
- fra Arduino -programvaren, gå til Skisse> Inkluder bibliotek> Legg til. ZIP -bibliotek og finn.zip -filen du nettopp lastet ned
- du kan gjøre det Arduino gjør manuelt og bare pakke ut biblioteket i mappen der Arduino lagrer biblioteker, på Windows: C: / Users / Brukernavn / Documents / Arduino / libraries \.
Når du har inkludert biblioteket, bør du lese "ReadMe" -filen der du finner sammendraget av hva de forskjellige funksjonene gjør. Noen ganger er dette ikke nok, så du vil gå litt dypere og utforske toppfilene der du kan se hvordan funksjonene er implementert og hva de krever som inputargumenter. Og selvfølgelig er den beste måten å få en følelse av hva et bibliotek er i stand til, vanligvis et eksempel som du kan kjøre fra Arduino -programvaren gjennom Fil> Eksempler> Biblioteknavn> Eksempelnavn. Dette biblioteket tilbyr et eksempel som jeg anbefaler at du kjører på skjermen bare for å se om skjermen din fungerer som den skal, og jeg oppfordrer deg til å justere koden du ser i eksemplet og se hva hver funksjon gjør og hvordan skjermen reagerer på den. Jeg har gjort det, og dette er hva jeg fant ut:
den bruker 4 usignerte heltall på 8 bits for hvert siffer (0bB7, B6, B5, B4, B3, B2, B1, B0). Og hver av disse bitene B6-B0 brukes for hvert segment av et bestemt siffer, og hvis biten er 1, lyser segmentet som kontrolleres av den. Disse heltallene er lagret i en matrise kalt data . Å sette disse bitene på skjermen oppnås av display.setSegments (data); eller du kan naturligvis få tilgang til noen av sifrene spesielt og angi dem enten manuelt (data [0] = 0b01111001) eller du kan bruke funksjonen encodeDigit (int); og konverter sifferet du sender det til i henhold til bits (data [0] = display.encodeDigit (3));. Bit B7 brukes bare av det andre sifferet, eller data [1], for å aktivere kolon.
Siden jeg skrev funksjonene i heksen INTERVAL som jeg kan få visse sifre i intervallet i form av M1M0: S1S0, hvor M står for minutter og S i sekunder, er det naturlig at jeg bruker encodDigitFunction (int); for å vise intervallet slik:
displayInterval () {
data [0] = display.encodeDigit (interval.getM1 ()); data [1] = 0x80 | display.encodeDigit (interval.getM0 ()); data [2] = display.encodeDigit (interval.getS1 ()); data [3] = display.encodeDigit (interval.getS0 ()); display.setSegments (data); }
Hver gang jeg trenger å vise intervallet på skjermen, kan jeg ringe displayInterval () -funksjonen.
*Legg merke til "0x80 |…" på dataene [1]. Den brukes til å sikre at bit B7 til dataene [1] alltid er 1, slik at tykktarmen lyser.
Det siste med displayet, strømforbruk. Det er kanskje ikke av stor betydning siden vi ikke kommer til å beholde det lenge, men hvis du er interessert i å gjøre dette enda mer batterivennlig, bør du vurdere å senke lysstyrken på skjermen siden den trekker mer strøm på maksimal lysstyrke enn på det laveste.
Trinn 8: Sett alt sammen
Vi vet hvordan vi utløser kameraet, hvordan vi manipulerer intervallet og hvordan vi viser det samme intervallet på en skjerm. Nå trenger vi bare å slå sammen alle disse tingene. Vi starter selvfølgelig fra loop () -funksjonen. Vi vil hele tiden se etter knappetrykk og reagere deretter med checkButtons (int, int) og endre intervallet tilsvarende og vise det endrede intervallet. Også i loop () sjekker vi hele tiden om det har gått nok tid fra den siste utløseren eller knappetrykk og ring utløser () -funksjonen om nødvendig. Av hensyn til lavere strømforbruk slår vi av skjermen etter en stund.
Jeg la til en tofarget led, (rød og grønn, vanlig katode) som lyser grønt mens utløseren (), og den lyser rødt sammen med displayet hvis fokuseringen er på, og den vil forbli av hvis fokuseringen er av.
Vi flytter også til en enda mindre Arduino, Pro Mini.
Trinn 9: Legge til en siste ting
Så langt.. Vi har bare laget et intervalometer. Nyttig, men vi kan gjøre det bedre.
Her er hva jeg hadde i tankene: Intervalometeret gjør det som standard UNNTAK når vi kobler til en slags ekstern bryter/sensor som deretter stopper intervallometeret og reagerer på inngangen til bryteren/sensoren. La oss kalle det en sensor, det vil ikke nødvendigvis være en sensor som er koblet til, men jeg vil referere til det som det.
For det første, hvordan oppdager vi at vi har festet sensoren?
Sensorene vi bruker/lager trenger alle tre ledninger som kobler dem til arduinoen (Vcc, GND, Signal). Det betyr at vi kan bruke en 3,5 mm lydkontakt som inngangskontakt for sensoren. Og hvordan løser det problemet vårt? Vel, det er typer en 3,5 mm jack "med en bryter" som har pinner som er kortsluttet til pinnene på kontakten hvis det ikke er noen hannkontakt i dem, og de løsner når det er en kontakt tilstede. Det betyr at vi har informasjonen basert på sensorens tilstedeværelse. Jeg bruker nedtrekksmotstanden som vist (den digitale pinnen vil lese HØY uten sensoren og LAV med sensoren festet) i bildet, eller du kan også feste den til den digitale pinnen til pinnen på kontakten som normalt er koblet til bakken og definere den digitale pinnen som INPUT_PULLUP, vil den fungere begge veier. Så nå må vi justere koden vår, så den gjør alt vi har skrevet så langt bare hvis sensoren ikke er tilstede, eller når den digitale pin -kontrollen er HØY. Jeg har også justert den slik at den viser "SENS" på displayet i stedet for intervallet som er ubrukelig i denne modusen, men fokuseringen er fortsatt relevant for oss. Vi beholder funksjonaliteten til å veksle fokusering med et trykk på begge knapper og viser fokusstilstanden gjennom den røde lysdioden.
Hva gjør sensoren egentlig?
Alt du trenger å gjøre er å sette 5V på signalpinnen når vi vil utløse kameraet. Det betyr at vi trenger en annen digital pin av Arduino som sjekker tilstanden til denne pinnen, og når den registrerer HIGH, er det bare å ringe trigger () -funksjonen, og kameraet tar et bilde. Det enkleste eksemplet, og det vi vil bruke til å teste om dette fungerer, er en enkel knapp med nedtrekksmotstand. Fest knappen mellom Vcc på sensoren og signalpinnen og legg til en motstand mellom signalpinnen og GND, på denne måten vil signalpinnen være på GND når knappen ikke trykkes, siden det ikke er strøm som strømmer gjennom motstanden, og når Når du trykker på knappen, setter vi signalpinnen direkte på HIGH, og Arduino leser det og utløser kameraet.
Med dette avsluttet vi å skrive koden.
*Jeg vil merke noen problemer jeg hadde med lydkontaktene jeg brukte. Mens du setter den mannlige kontakten inn i kontakten, ville GND og en av de to andre pinnene noen ganger kortsluttes. Dette skjer umiddelbart og bare mens du setter inn kontakten, men det er fortsatt lenge nok til at Arduino kan registrere en kort slik at Arduino bare ville starte på nytt. Dette skjer ikke så ofte, men kan fortsatt være en fare, og det er potensial for å ødelegge Arduino, så unngå kontaktene jeg brukte.
Trinn 10: Inneholder rotet
Du kan se på bildene at brødbrettet blir rotete, og vi er ferdige, så vi må overføre alt til et perfboard/PCB. Jeg gikk på PCB fordi jeg tror jeg kommer til å lage flere av disse, så på denne måten kan jeg enkelt reprodusere dem.
Jeg brukte Eagle til å designe PCB og fant design for alle delene jeg brukte. Det er en liten ting i designet mitt som jeg skulle ønske jeg ikke hadde gjort, og det er en wire pad for Vcc på displayet. Jeg har sett det for sent, og ville ikke ødelegge det jeg tidligere designet og gikk på den late måten å legge til wire -pads og senere måtte legge til wire til disse tilkoblingene i stedet for kobberspor, så husk at hvis du bruker min design.
Arduino -kortet og skjermen er koblet til kretskortet via kvinnelige pinhoder i stedet for å bli loddet direkte på kretskortet, av åpenbare årsaker. På denne måten er det god plass til andre komponenter under displayet for andre komponenter som motstander, transistorer og til og med lydkontakten.
Jeg har satt inn mikroknappene som etter designet skal loddes direkte, men du kan også bruke hullene til kvinnelige pinnehoder og koble til knapper med ledning hvis du vil ha dem montert på kabinettet og ikke på kretskortet.
Vi vil også sette en annen kvinnelig lydkontakt for å koble til kabelen som er koblet til kameraet. På denne måten blir kortet mer allsidig siden den måten vil vi kunne koble til andre kameraer med andre kontakter.
Trinn 11: Sens0rs
La oss vurdere måter å implementere sensoren på.
Så sensoren vil ha forsyningsspenningen på 5V, og den må kunne levere en digital HIGH på signalpinnen når vi vil utløse kameraet. Det første jeg tenkte på er en bevegelsessensor, PIR for å være spesifikk. Det selges moduler for Arduino som har denne sensoren på seg og gjør akkurat det vi vil. De er slått på 5V og har en utgangspinne som de setter 5V på når de utløses. Vi trenger bare å koble pinnene til en 3,5 mm lydkontakt, og vi kan plugge rett inn i brettet. En ting å merke seg er at denne sensoren trenger tid til å varme opp og begynne å fungere skikkelig, så ikke forvent at den skal fungere skikkelig så snart du kobler den til, gi den litt tid og deretter sette den opp og alt det levende kommer inn i den rekkevidde vil utløse kameraet.
Siden vi tenker i retning av allerede laget Arduino -sensorbrett, kommer en annen til å tenke på lyd. Disse brettene er vanligvis laget på en slik måte at de har en pinne som sender ut analog verdi av lyden den plukker opp og en annen, digital, som sender ut en logisk HØY hvis lyden den fanger krysser et visst nivå. Vi kan sette dette nivået slik at sensoren ignorerer stemmen vår, men registrerer et klapp. På den måten, hver gang du klapper, trigger du kameraet.
Trinn 12: PoweeEeEer
Jeg tror at den enkleste måten å drive denne tingen på er med en powerbank, og ikke eksternt. Vi beholder funksjonaliteten til å lade telefonen eller hva som helst og kontrollere den nåværende strømmen til kortet gjennom en bryter. Vi finner pinnene på USB -utgangen på uttaket på kretskortet i strømbanken, som er GND og Vcc (5V) og loddetråder direkte på dem og derfra inn i kortet vårt.
Trinn 13: Vedlegg.. Litt
Jeg slet virkelig med dette. Da jeg fikk boksen jeg ønsket å sette den eksisterende PCB -en i, innså jeg at det ikke er noen fin måte å passe alt som jeg ønsket, og da bestemte jeg meg for å designe en ny PCB, denne gangen med optokoblere. Jeg ønsket å plassere kretskortet rett under siden hvor jeg skulle bore hull for visse komponenter som må sees/berøres. For at dette skal fungere, må jeg lodde skjermen og Arduino direkte til brettet, uten stikkontakter eller hoder, og det er der det første problemet ligger. Det var helt fryktelig å feilsøke noe siden jeg ikke var klar til å lodde det med en gang før jeg testet ut at alt fungerer, og jeg kunne egentlig ikke teste noe siden jeg ikke kunne lodde det og så videre. Don ikke gjør dette. Problem numero dos, å lage hull på saken. Jeg antar at jeg tok feil målinger fordi ingen av hullene på saken var på linje med komponentene på kretskortet og jeg måtte forstørre dem og knappene var for høye på kretskortet, og de ville alltid bli trykket når jeg satte brettet på plass aaand siden jeg ville ha lydkontaktene på siden, måtte jeg også forstørre hullene for å passe til kontaktene først og deretter senke brettet for at displayet og knappene skulle komme gjennom.. resultatet er forferdelig.
Jeg gjorde de forferdelige hullene litt forferdelige ved å legge toppen med litt tynn papp der jeg skar ut mer rimelige hull for komponentene og.. det er fremdeles forferdelig, men lettere for øyet synes jeg.
Bedømmelse, jeg foreslår at du gjør dette ved å kjøpe komponenter som monteres på kabinettet, og ikke direkte på kretskortet. På den måten har du større frihet i plassering av komponentene og færre steder å gjøre feil på.
Trinn 14: Fin
Jeg er ferdig, men her er noen ting jeg ville ha gjort annerledes:
Bruk 3,5 mm lydkontakter av bedre kvalitet. De jeg brukte har en tendens til å kortslutte terminalene mens du setter inn eller trekker ut kontakten, noe som resulterer i enten å kortere forsyningen og dermed tilbakestille Arduino eller den bare produserer falske utløsere. Jeg har sagt dette i forrige trinn, men jeg sier det igjen.. ikke lodd Arduino -kortet uten hoder/sokkel, det gjør bare noen form for feilsøking eller opplasting av ny kode og så videre mye vanskeligere. Jeg tror også at det ville ha vært nyttig å ha en LED -signal om at tingen er på, fordi jeg ofte ikke kan fortelle uten å trykke på knappen siden skjermen slås av. Og det siste, en pause -funksjon. Jeg ser for meg at det er nyttig når du for eksempel kobler til PIR -sensoren, så fordi den trenger tid til å bli varm, eller bare når du flytter den, vil du ikke at den skal utløses, så du kan sette alt på pause, men du kan også bare snu av kameraet så.. uansett.
En annen fin ting er å borrelåse den på stativet siden den mest sannsynlig vil bli brukt der.
Spør gjerne noe om dette prosjektet i kommentarene, og jeg vil gjerne vite om du bygger det og hvordan det ble for deg.
Anbefalt:
ESP32-CAM Case System og 3D Printer Cam: 10 trinn (med bilder)
ESP32-CAM Case System og 3D Printer Cam: Jeg var på utkikk etter å bytte ut kameraet på min 3D-skriver med noe lite, enkelt og funksjonelt …. og billig. Noen få Google-søk førte meg til ESP32-Cam-modulen. Du kan finne dem for mindre enn $ 10, liker mye mindre, og de fungerer veldig bra
Ta og send bilder med ESP32-Cam ved hjelp av ESP8266 WeMos D1 R1 Wifi-prosessor med Uno: 7 trinn
Ta og send bilder med ESP32-Cam ved hjelp av ESP8266 WeMos D1 R1 Wifi-prosessor med Uno: Ta bilde med ESP32-Cam (OV2640) ved hjelp av ESP8266 WeMos D1 R1 WiFI-prosessor med Uno og send det til e-post, lagre det på Google Drive og send det til Whatsapp ved bruk av Twilio. Krav: ESP8266 WeMos D1 R1 WiFI -prosessor med Uno (https: // protosupplies
Komme i gang med ESP32 CAM - Streaming av video ved bruk av ESP CAM over Wifi - ESP32 sikkerhetskamera -prosjekt: 8 trinn
Komme i gang med ESP32 CAM | Streaming av video ved bruk av ESP CAM over Wifi | ESP32 Security Camera Project: I dag lærer vi hvordan du bruker dette nye ESP32 CAM -kortet og hvordan vi kan kode det og bruke det som et sikkerhetskamera og få en streaming video over wifi
Pimp Zombie med glødende øyne: 5 trinn (med bilder)
Pimp Zombie med glødende øyne: Lær hvordan du legger LEDer med glødende øyneeffekt til en eksisterende figur. I mitt tilfelle brukte jeg en zombiefigur til Halloween. Dette er ganske enkelt å gjøre og krever ingen avanserte ferdigheter
Pimp USB -stasjonen din: 10 trinn (med bilder)
Pimp USB -stasjonen: Du liker å lagre data. Selvfølgelig gjør du det. Men når du tar det ut på gata, ler folk av deg! Ja, jeg vet, de skjønner deg ikke, ikke sant? Kanskje du må hjelpe dem. Gi deg selv en liten street cred ved å bygge en sandbender-in