Innehållsförteckning:

Pimp My Cam: 14 steg (med bilder)
Pimp My Cam: 14 steg (med bilder)

Video: Pimp My Cam: 14 steg (med bilder)

Video: Pimp My Cam: 14 steg (med bilder)
Video: Was "Pimp My Ride" Totally FAKE??? | Looking Back 2024, November
Anonim
Pimp My Cam
Pimp My Cam

Här kommer det här projektet ifrån.

För ett tag sedan tänkte jag på att filma några tidsförlopp. "Hur?" Frågade jag mig själv? Det första svaret var "Tja.. man filmar bara något och påskyndar det och det är det". Men är det verkligen så enkelt? Först vill jag använda min DSLR för det, och min Nikon D3100 har en tidsgräns på 10 minuter för att filma video. För det andra, även om jag hade en kamera utan tidsbegränsning för att filma video, vad händer om jag vill göra en riktigt lång tidsfördröjning, typ 12 timmar lång? Jag gör en 12 timmar lång 1080p -video. Jag tvivlar på att batteriet skulle hålla så länge och det är inte särskilt praktiskt, eller hur? Okej, korsar "filmande videoidé". Tja, då finns det bilder. Ta ett foto på kameran med ett visst intervall och sluta med hundratals bilder som jag än bearbetar genom programvara för att göra en video..?

Verkade som en okej idé så jag bestämde mig för att testa. Så jag slutade med att vilja göra en enhet som jag kan mata in en tidsperiod på, och baserat på den perioden skulle det stänga av min kamera hela tiden. Och medan vi håller på, varför inte lägga till några andra saker som motion-trigger och så vidare?

Steg 1: Men.. Hur?

Men hur?
Men hur?

HUR? är vår nästa fråga som saknar ett svar. På grund av timing, triggning, sensorer och sådana saker kommer det inte att vara någon överraskning att det första som jag tänkte på naturligtvis var en Arduino. Okej, men ändå måste vi lära oss att aktivera slutaren på vår kamera. Hm.. servo varmlimmad på kameran? Absolut inte, vi vill att detta ska vara tyst och energieffektivt. Energieffektiv - varför? Eftersom jag vill göra det bärbart och sätta i ett batteri i det, kommer jag inte att vara nära en strömkontakt varje gång. Så hur triggar vi det då.. det är faktiskt ganska enkelt.

Nikon visste redan att du kommer att vilja ha en fjärrkontroll och andra tillbehör och de sa "okej, vi ger dem allt det, men vi kommer att göra en speciell port så att vi kan tjäna mer pengar på dessa tillbehör", skäms över dig Nikon. Den porten heter (i mitt fall) MC-DC2, och det billigaste sättet att få tag på den är att köpa en fjärrutlösare på eBay för 2-3 $ och bara använda kabeln.

*Vissa andra kameror, som Canon, har ett enkelt 3,5 mm hörlursuttag för samma användning så att du kan använda lite kabel från gamla högtalare/hörlurar.

Steg 2: Lär dig hur du aktiverar kameran

Image
Image
Sätt att utlösa
Sätt att utlösa

Hur som helst, här är affären, hamnen kommer att ha tre anslutningar som kommer att vara av vårt intresse (mark, fokus och slutare) och du kommer att ha dem på slutet av din kabel på den nyligen köpta fjärrluckan som du just förstörde. Dessa tre anslutningar är viktiga för oss eftersom om vi kortar marken och fokuserar kameran fokus som du trycker på fokusknappen och sedan, medan den anslutningen kvarstår, kan du korta marken och slutaren så tar kameran en bild precis som om du tryckte på slutarknappen på kameran.

Du kan testa detta genom att bokstavligen kortsluta de spänningsförande trådarna på kabelns ände för att identifiera vilken tråd som är vilken. När du väl har gjort det, för enklare identifiering, färgar vi dem så här:

Mark = SVART; Fokus = VIT; Slutare = RÖD.

Okej, nu måste vi lära Arduino att göra detta åt oss.

Steg 3: Sätt att utlösa

Image
Image

Det enklaste vi kan säga åt en Arduino att skicka in i omvärlden är den digitala utsignalen. Denna signal kan antingen vara HIGH (logisk '1') eller LOW (logisk '0'), därav namnet "digital", eller när den omvandlas till dess kärnbetydelse: 5V för en logisk HIGH och 0V för en logisk LOW.

Vad ska vi göra med dessa digitala signaler? Vi kan inte bara ansluta dem till kameran och förvänta oss att kameran vet vad vi vill ha. Som vi har sett måste vi korta anslutningarna på kameran för att den ska reagera, så vi måste använda Arduino digitala signaler för att driva några komponenter som kan kortsluta deras terminaler beroende på den elektriska signalen vi skickar den. *Som jag beskrev det tänker du kanske "Ah, reläer!" men nej nej. Relä skulle göra jobbet men vi har att göra med så små strömmar att vi enkelt kan använda halvledarnas svarta magi.

Den första komponenten som jag ska prova är en optokopplare. Jag har sett dem implementerat mest för detta och det är förmodligen den bästa lösningen. Optokopplare är en elektrisk komponent med vilken du styr utgångskretsen medan ingångskretsen är helt isolerad från den. Detta uppnås genom att sända information med ljus, ingångskretsen tänder en lysdiod och fototransistorn på utgången växlar i enlighet därmed.

Så vi kommer att använda optokopplaren på det här sättet: vi säger till vår Arduino att skicka en digital HIGH på en om det är digitala stift, den signalen är praktiskt taget 5V som driver LED -insidan av optokopplaren och fototransistorn inuti den "kortas" det är utgångsterminaler när det upptäcker det ljuset, och vice versa, det kommer att "lossa" dess terminaler eftersom det inte finns något ljus från lysdioden när vi skickar en digital LOW genom Arduino.

I praktiken betyder detta: en av de digitala stiften på Arduino är ansluten till ANODE -stiftet på optokopplaren, Arduinos GND är ansluten till KATODEN, kamerans GND är ansluten till EMITTER och FOKUS (eller SHUTTER) till COLLECTOR. Se databladet för optokopplaren du använder för att hitta dessa stift på din. Jag använder 4N35 så att du kan följa mitt schema blint om du inte riktigt bryr dig om vad som händer inuti optokopplaren. Naturligtvis behöver vi två av dessa, eftersom vi måste styra både kamerans FOKUS och SLUTA.

Eftersom vi såg hur det fungerar, med en fototransistor på utgången, varför försöker vi inte enbart med en enkel NPN -transistor. Den här gången tar vi den digitala signalen direkt (över ett motstånd) till transistorns bas och ansluter både kamerans och Arduinos GND till sändaren och kamerans fokus/slutare till transistorns kollektor.

Återigen behöver vi två av dessa eftersom vi styr två signaler. Jag använder BC547B och du kan i princip använda vilken NPN som helst för detta eftersom strömmen vi styr är en enda milliamp.

Båda dessa komponenter kommer att fungera, men att välja optokopplare är förmodligen den bättre idén eftersom det är säkrare. Välj endast transistorerna om du vet vad du gör.

Steg 4: Skriva koden för utlösning

Image
Image
Skriva koden för utlösning
Skriva koden för utlösning

Som vi sa tidigare kommer vi att använda de digitala stiften på Arduino för signalering. Arduino kan använda dessa båda för att läsa data från den eller skriva till den så det första vi behöver göra specificerar i funktionen setup () att vi ska använda två av Arduinos digitala stift för utgången så här:

pinMode (FOCUS_PIN, OUTPUT);

pinMode (SHUTTER_PIN, OUTPUT);

där FOCUS_PIN och SHUTTER_PIN antingen kan definieras med "#define NAME value" eller som en int innan setup () -funktionen eftersom du kan ändra stiftet så att det är lättare att ändra värdet på bara en plats istället för hela koden efteråt.

Nästa sak vi ska göra är att skriva en trigger () -funktion som gör just det när det körs. Jag tar bara med en bild med koden. Allt du behöver veta är att först håller vi FOCUS_PIN på HIGH under en viss tid eftersom vi måste vänta tills kameran fokuserar på motivet vi pekar på det och sedan bara ett ögonblick (medan FOCUS_PIN fortfarande är HIGH) sätt SHUTTER_PIN på HIGH bara för att ta bilden.

Jag inkluderade också möjligheten att hoppa över fokuseringen eftersom det inte kommer att behövas om vi fotograferar en tidsfördröjning av något som inte förändrar avståndet från kameran genom tiden.

Steg 5: Klassintervall {};

Image
Image
Manipulera intervallet genom Arduino
Manipulera intervallet genom Arduino

Nu när vi har aktiverat kameran ur vägen måste vi göra detta till en intervallmätare genom att lägga till funktionaliteten för att manipulera tidsperioden mellan två bilder. Bara så att du får bilden av vad vi gör här är några primitiva koder för att demonstrera den funktionalitet vi vill ha:

void loop () {

fördröjning (intervall); trigger (); }

Jag vill kunna ändra detta intervall från, låt oss säga, 5 sekunder ända upp till kanske 20-30 minuter. Och här är problemet, om jag vill ändra det från 5s till 16s eller något däremellan kommer jag att använda 1s -steg, där för var och en av mina begäran om att öka intervallet, skulle intervallet öka med 1s. Det är bra, men vad händer om jag vill gå från 5s till 5min? Det skulle ta mig 295 förfrågningar till det i steg om 1s så jag måste självklart öka inkrementvärdet till något större, och jag måste definiera på vilket exakt intervallvärde (tröskel) för att ändra inkrementet. Jag implementerade detta:

5s-60s: steg om 1s; 60s-300s: steg om 10s; 300s-3600s: 60-talet steg;

men jag skrev den här klassen för att vara justerbar så att du kan definiera dina egna trösklar och steg (allt kommenteras i.h -filen så att du kan veta var du kan ändra vilka värden).

Exemplet jag har gett om att manipulera intervallet görs uppenbarligen på en PC, nu måste vi flytta det till Arduino. Hela klassen, Intervall, läggs in i en rubrikfil som används för att lagra deklarationer och definitioner (inte riktigt, men det kan göras i detta exempel utan att göra någon skada) av vår klass/funktioner. För att introducera denna rubrikfil till vår arduino -kod använder vi "#include" Interval.h "" (filer måste finnas i samma katalog), vilket säkerställer att vi kan använda funktionerna som definieras i rubrikfilen i vår huvudkod.

Steg 6: Manipulera intervallet genom Arduino

Image
Image
Manipulera intervallet genom Arduino
Manipulera intervallet genom Arduino
Manipulera intervallet genom Arduino
Manipulera intervallet genom Arduino

Nu vill vi kunna ändra intervallets värde, antingen öka eller minska det. Så det är två saker så vi använder två digitala signaler som styrs av två knappar. Vi kommer upprepade gånger att läsa värdena på de digitala stiften som vi tilldelade knapparna och analysera dessa värden till funktionen checkButtons (int, int); vilket kommer att öka intervallet om knappen "upp" trycks ned och minska intervallet om knappen "ner". Om båda knapparna trycks in kommer det också att ändra värdet på det variabla fokus som styr om det ska fokuseras vid utlösningen.

En del av koden ((millis () - prevBtnPress)> = debounceTime) används för avstängning. Så som jag skrev det betyder det att jag registrerar det första knapptrycket med booleska variabel btnPressed och kommer ihåg den tid det hände. Än jag väntar en viss tid (debounceTime) och om knappen fortfarande trycks in reagerar jag. Det gör också en "paus" mellan varje annat tryck på knappen så att det undviker flera tryckningar där det inte finns några.

Och slutligen med:

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

prevTrigger = millis (); trigger (); }

Vi kontrollerar först om tiden mellan den sista triggningen (prevTrigger) och den aktuella tiden (millis ()) (allt divideras med en 1000 eftersom den är i millisekunder och intervallet är i sekunder) är lika med eller större än intervallet vi vill, och om det är så kommer vi ihåg den aktuella tiden som den sista gången vi triggade kameran och sedan utlöste den.

Med detta komplett gjorde vi i princip en intervallmätare, men vi är långt ifrån över. Vi ser fortfarande inte intervallmätarens värde. Den visas bara på seriemonitorn och vi kommer inte alltid att vara nära en dator så nu implementerar vi något som visar oss intervallet när vi ändrar det.

Steg 7: Visa intervallet

Image
Image
Visar intervallet
Visar intervallet
Visar intervallet
Visar intervallet
Visar intervallet
Visar intervallet

Det är här vi presenterar displayen. Jag använde den fyrsiffriga modulen som drivs av TM1637 eftersom jag bara behöver använda den för att visa tid och inget annat. Det enklaste sättet att använda dessa moduler gjorda för en Arduino är att använda redan gjorda bibliotek för dem. På Arduino -webbplatsen finns en sida som beskriver TM1673 -chipet och en länk till ett föreslaget bibliotek. Jag laddade ner det här biblioteket och det finns två sätt att introducera dessa bibliotek till Arduino IDE:

  1. från Arduino -programvaran, gå till Skiss> Inkludera bibliotek> Lägg till. ZIP -bibliotek och leta upp zip -filen du just laddade ner
  2. du kan göra vad Arduino gör manuellt och bara packa upp biblioteket i den mapp där Arduino lagrar bibliotek, i Windows: C: / Användare / Användarnamn / Dokument / Arduino / bibliotek \.

När du har inkluderat biblioteket bör du läsa "ReadMe" -filen där du hittar en sammanfattning av vad de olika funktionerna gör. Ibland är det inte tillräckligt, så du vill gå lite djupare och utforska rubrikfilerna där du kan se hur funktionerna implementeras och vad de kräver som inmatningsargument. Och naturligtvis är det bästa sättet att få en uppfattning om vad ett bibliotek kan, det erbjuder vanligtvis ett exempel som du kan köra från Arduino -programvaran genom Arkiv> Exempel> Biblioteknamn> Exempelnamn. Detta bibliotek erbjuder ett exempel som jag rekommenderar att du kör på din skärm bara för att se om din skärm fungerar korrekt och än jag uppmuntrar dig att justera koden du ser i exemplet och se själv vad varje funktion gör och hur displayen reagerar på den. Jag har gjort det och det här är vad jag kom på:

den använder 4 osignerade heltal med 8 bitar för varje siffra (0bB7, B6, B5, B4, B3, B2, B1, B0). Och var och en av dessa bitar B6-B0 används för varje segment av en viss siffra och om biten är 1 lyser segmentet som styrs av den. Dessa heltal lagras i en array som kallas data . Att ställa in dessa bitar på displayen åstadkoms med display.setSegments (data); eller så kan du naturligtvis komma åt någon av siffrorna särskilt och ställa in dem antingen manuellt (data [0] = 0b01111001) eller så kan du använda funktionen encodeDigit (int); och konvertera siffran du skickar den till enligt bitar (data [0] = display.encodeDigit (3));. Bit B7 används endast av den andra siffran, eller data [1], för att aktivera kolon.

Eftersom jag skrev funktionerna i INTERVAL -klasshäxan som jag kan få vissa siffror i intervallet i form av M1M0: S1S0, där M står för minuter och S i sekunder, är det naturligt att jag använder encodeDigitFunction (int); för att visa intervallet så här:

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); }

Nu, när som helst som jag behöver visa intervallet på displayen, kan jag ringa displayInterval () -funktionen.

*Notera "0x80 |…" på data [1]. Den används för att säkerställa att bit B7 för data [1] alltid är 1 så att kolon tänds.

Det sista med displayen, strömförbrukning. Det är kanske inte av stor betydelse eftersom vi inte kommer att behålla det länge, men om du är intresserad av att göra detta ännu mer batterivänligt kan du överväga att sänka skärmens ljusstyrka eftersom den drar 3 gånger mer ström på maximal ljusstyrka än på det lägsta.

Steg 8: Sätta ihop allt

Få alltid att falla på plats
Få alltid att falla på plats

Vi vet hur man aktiverar kameran, hur man manipulerar intervallet och hur man visar samma intervall på en display. Nu behöver vi bara slå samman alla dessa saker. Vi börjar naturligtvis från loop () -funktionen. Vi kommer ständigt att leta efter knapptryckningar och reagera därefter med checkButtons (int, int) och ändra intervallet därefter och visa det ändrade intervallet. Även i loop () kommer vi att ständigt kontrollera om det har gått tillräckligt med tid från den senaste utlösningen eller knapptryckning och ringa trigger () -funktionen om det behövs. För en lägre strömförbrukning stänger vi av skärmen efter en tid.

Jag lade till en tvåfärgad LED, (röd och grön, vanlig katod) som kommer att lysa grönt medan avtryckaren () och den kommer att lysa rött tillsammans med displayen om fokuseringen är på och den kommer att förbli av om fokuseringen är av.

Vi kommer också att migrera till en ännu mindre Arduino, Pro Mini.

Steg 9: Lägga till en sista sak

Lägga till en sista sak
Lägga till en sista sak
Lägga till en sista sak
Lägga till en sista sak
Lägga till en sista sak
Lägga till en sista sak

Hittills har vi bara skapat en intervalometer. Användbart, men vi kan göra det bättre.

Här är vad jag hade i åtanke: Intervalometern gör det som standard UTOM när vi ansluter någon form av extern switch/sensor som sedan stoppar intervallometern och svarar på ingången till switch/sensor. Låt oss kalla det en sensor, det kommer inte nödvändigtvis att vara en sensor som är ansluten men jag kommer att referera till det som det.

För det första, hur upptäcker vi att vi har anslutit sensorn?

Sensorerna som vi kommer att använda/göra kommer alla att behöva tre ledningar som ansluter dem till arduino (Vcc, GND, Signal). Det betyder att vi kan använda ett 3,5 mm ljuduttag som ingångskontakt för sensorn. Och hur löser det vårt problem? Tja, det finns typer av ett 3,5 mm -uttag "med en omkopplare" som har stift som är kortslutna till kontakterna på kontakten om det inte finns någon hankontakt i dem, och de lossnar när det finns en kontakt. Det betyder att vi har informationen baserad på sensorns närvaro. Jag använder neddragningsmotståndet som visas (den digitala stiftet kommer att läsa HÖG utan sensorn och LÅG med sensorn ansluten) i bilden eller så kan du också fästa den på den digitala stiftet på stiftet på kontakten som normalt är ansluten till jord och definiera den digitala stiftet som INPUT_PULLUP, det kommer att fungera åt båda hållen. Så nu måste vi justera vår kod så att den gör allt vi har skrivit hittills bara om sensorn inte är närvarande eller när den digitala stiftkontrollen är HÖG. Jag har också justerat det så att det visar "SENS" på displayen istället för intervallet som är värdelöst i det här läget, men fokuseringen är fortfarande relevant för oss. visar fokusläget genom den röda lysdioden.

Vad gör sensorn egentligen?

Allt du behöver göra är att sätta 5V på sin signalstift när vi vill aktivera kameran. Det betyder att vi behöver en annan digital pin av Arduino som kontrollerar tillståndet för denna pin och när den registrerar HIGH är det bara att ringa trigger () -funktionen så tar kameran en bild. Det enklaste exemplet, och det vi kommer att använda för att testa om detta fungerar, är en enkel knapp med ett neddragbart motstånd. Fäst knappen mellan sensorns Vcc och signalstiftet och lägg till ett motstånd mellan signalstiftet och GND, så kommer signalstiftet att vara på GND när knappen inte trycks in eftersom det inte rinner någon ström genom motståndet, och när knappen trycks ner, vi sätter Signalstiftet direkt på HIGH och Arduino läser det och triggar kameran.

Med detta avslutade vi med att skriva koden.

*Jag skulle vilja notera några problem som jag hade med ljuduttagen jag använde. Medan hanjacket sätts in i kontakten skulle GND och endera av de andra två stiften ibland korta. Detta händer direkt och bara när du sätter i kontakten, men det är fortfarande tillräckligt länge för att Arduino ska registrera en kort så att Arduino bara skulle starta om. Detta händer inte så ofta men kan fortfarande vara en fara och det finns en potential att förstöra Arduino så undvik kontakterna som jag använde.

Steg 10: Innehåller Mess

Innehåller Mess
Innehåller Mess
Innehåller Mess
Innehåller Mess
Innehåller Mess
Innehåller Mess
Innehåller Mess
Innehåller Mess

Du kan se på bilderna att brödbrädan blir stökig och vi är klara så vi måste överföra allt till en perfboard/PCB. Jag gick på PCB eftersom jag tror att jag kommer att göra fler av dessa så att jag på så sätt enkelt kan reproducera dem.

Jag använde Eagle för att designa kretskortet och hittade mönster för alla delar jag använde. Det finns en liten sak i min design som jag önskar att jag inte hade gjort och det är en trådkudde för bildskärmens Vcc. Jag har sett det för sent och ville inte förstöra det jag tidigare designade och gick på det lata sättet att lägga till trådkuddar och senare behöva lägga till tråd till dessa anslutningar istället för kopparspår, så tänk på att om du använder min design.

Arduino -kortet och displayen är av uppenbara skäl anslutna till kretskortet via kvinnliga stifthuvuden istället för att lödas direkt på kretskortet. På så sätt finns det gott om plats för andra komponenter under displayen för andra komponenter som motstånd, transistorer och till och med ljuduttaget.

Jag har satt in mikroknapparna som, enligt designen, bör lödas direkt men du kan också använda hålen för kvinnliga stifthuvuden och ansluta knappar med tråd om du vill ha dem monterade på höljet och inte på kretskortet.

Vi kommer också att sätta in ett annat kvinnligt ljuduttag för att ansluta kabeln som ansluts till kameran. På så sätt blir kortet mer mångsidigt eftersom vi på så sätt kan ansluta till andra kameror med andra kontakter.

Steg 11: Sens0rs

Image
Image
Sens0rs
Sens0rs

Låt oss överväga sätt att implementera sensorn.

Så sensorn kommer att ha matningsspänningen 5V, och den måste kunna ge en digital HIGH på sin signalstift när vi vill aktivera kameran. Det första jag tänkte på är en rörelsesensor, PIR för att vara specifik. Det finns moduler som säljs för Arduino som har den här sensorn på sig och gör precis vad vi vill. De drivs med 5V och har en utgångsstift som de sätter 5V på när de utlöses, vi behöver bara ansluta stiften till ett 3,5 mm ljuduttag och vi kan ansluta direkt till kortet. En sak att notera är dock att den här sensorn behöver tid för att värmas upp och börja fungera ordentligt, så förvänta dig inte att den fungerar ordentligt så snart du ansluter den, ge den lite tid och sedan ställa in den och allt levande kommer in i den intervall kommer att aktivera kameran.

Eftersom vi tänker i riktning mot redan tillverkade Arduino -sensorbrädor kommer en annan att tänka på, ljud. Dessa brädor är vanligtvis gjorda på ett sådant sätt att de har en stift som matar ut analogt värde för ljudet som det tar upp och ett annat, digitalt, som matar ut ett logiskt HÖGT om ljudet det tar upp passerar en viss nivå. Vi kan ställa in denna nivå så att sensorn ignorerar vår röst men registrerar en klapp. På så sätt aktiverar du kameran varje gång du klappar.

Steg 12: PoweeEeEer

PoweeEeEer
PoweeEeEer
PoweeEeEer
PoweeEeEer

Jag tror att det enklaste sättet att driva det här är med en powerbank, och inte externt. Vi behåller funktionaliteten för att ladda vår telefon eller vad som helst och styr det nuvarande flödet till kortet genom en switch. Vi hittar stiften på den utgående USB -kontakten på kretskortet i powerbanken som är GND och Vcc (5V) och lödtrådar direkt på dem och därifrån in i vårt kort.

Steg 13: Kapsling.. Ungefär

Kapsling.. Ungefär
Kapsling.. Ungefär
Kapsling.. Ungefär
Kapsling.. Ungefär
Kapsling.. Ungefär
Kapsling.. Ungefär

Jag kämpade verkligen med det här. När jag fick lådan som jag ville lägga in det befintliga kretskortet insåg jag att det inte finns något bra sätt att passa allt som jag ville och sedan bestämde jag mig för att designa ett nytt kretskort, den här gången med optokopplare. Jag ville placera kretskortet precis under sidan där jag skulle borra hål för vissa komponenter som måste ses/beröras. För att detta ska fungera skulle jag behöva lödda skärmen och Arduino direkt till brädet, utan uttag eller rubriker, och det är där det första problemet ligger. Det var helt hemskt att felsöka någonting eftersom jag inte var redo att lödda det direkt förrän jag testade att allt fungerar, och jag kunde inte riktigt testa något eftersom jag inte kunde löda det och så vidare.. don gör inte det här. Problem numero dos, gör hål på fodralet. Jag antar att jag tog fel mätningar eftersom inget av hålen på höljet var i linje med komponenterna på kretskortet och jag var tvungen att förstora dem och knapparna var för höga på kretskortet och de skulle alltid tryckas när jag satte kortet på plats aaand eftersom jag ville ha ljuduttagen på sidan, var jag tvungen att förstora dessa hål också för att passa uttagen först och sedan sänka kortet för att displayen och knapparna ska komma igenom.. resultatet är fruktansvärt.

Jag gjorde på något sätt de hemska hålen mindre hemska genom att lägga över toppen med lite tunn kartong där jag skar ut mer rimliga hål för komponenterna och.. det är fortfarande hemskt men lättare för ögat tycker jag.

Omdöme, jag föreslår att du gör detta genom att köpa komponenter som monteras på höljet, och inte direkt på kretskortet. På så sätt har du större frihet i placering av komponenterna och mindre platser att göra misstag på.

Steg 14: Fin

Image
Image
Fena
Fena

Jag är klar, men här är några saker som jag skulle ha gjort annorlunda:

Använd 3,5 mm ljuduttag av bättre kvalitet. De jag använde tenderar att kortsluta terminalerna medan du sätter i eller drar ut uttaget vilket resulterar i att antingen kortsluta utbudet och därmed återställa Arduino eller så producerar det bara falska utlösare. Jag har sagt detta i föregående steg men jag säger det igen.. Löd inte Arduino -kortet utan rubriker/uttag, det gör bara någon form av felsökning eller uppladdning av ny kod och så vidare mycket svårare. Jag tror också att det skulle ha varit användbart att ha en LED -signal om att den är på eftersom jag ofta inte kan berätta utan att trycka på knappen eftersom displayen stängs av. Och det sista, en pausfunktion. Jag föreställer mig att det är användbart när du till exempel kopplar in PIR -sensorn, så för att det behöver tid att värma upp, eller bara när du flyttar det vill du inte att det ska aktiveras så att du bara kan pausa allt, men du kan också helt enkelt vända av kameran så.. oavsett.

En annan snygg sak är att kardborre den på stativet eftersom det troligtvis kommer att användas där.

Fråga gärna allt om detta projekt i kommentarerna och jag skulle gärna vilja veta om du bygger det och hur det blev för dig.

Rekommenderad: