Indholdsfortegnelse:

Pimp My Cam: 14 trin (med billeder)
Pimp My Cam: 14 trin (med billeder)

Video: Pimp My Cam: 14 trin (med billeder)

Video: Pimp My Cam: 14 trin (med billeder)
Video: Переход. Я нашёл нечто страшное в доме своего дяди. Джеральд Даррелл 2024, November
Anonim
Pimp My Cam
Pimp My Cam

Her er, hvor dette projekt kommer fra.

For et stykke tid siden tænkte jeg på at filme nogle timelapses. "Hvordan?" Spurgte jeg mig selv? Det første svar var "Nå.. man filmer bare noget og fremskynder det og det er det". Men er det virkelig så enkelt? Først vil jeg bruge min DSLR til det, og min Nikon D3100 har en tidsfrist på 10 minutter til videooptagelse. For det andet, selvom jeg havde et kamera uden tidsbegrænsning til optagelse af video, hvad nu hvis jeg vil lave en virkelig lang timelapse, som 12 timer lang? Jeg laver en 12 timer lang 1080p video. Jeg tvivler på, at batteriet ville holde så længe, og det er ikke særlig praktisk, vel? Okay, krydser "optagelse af videoidee". Jamen, så er der billeder. Tag et foto på kameraet med et bestemt interval og ender med hundredvis af billeder, som jeg end behandler gennem software til at lave en video..?

Det virkede som en ok idé, så jeg besluttede mig for at prøve det. Så jeg endte med at ville lave en enhed, som jeg kan indtaste en tidsperiode i, og baseret på den periode ville det udløse mit kamera konstant. Og mens vi er ved det, hvorfor ikke tilføje nogle andre ting som motion-trigger og så videre?

Trin 1: Men.. Hvordan?

Men hvordan?
Men hvordan?

HVORDAN? er vores næste spørgsmål, der mangler et svar. På grund af timing, triggering, sensorer og sådanne ting vil det ikke være nogen overraskelse, at den første, der kom til at tænke på, selvfølgelig var en Arduino. Okay, men alligevel skal vi lære at udløse lukkeren på vores kamera. Hm.. servo varmlimet til kropskameraet? Absolut ikke, vi vil have dette til at være lydløst og strømeffektivt. Energieffektiv - hvorfor? Fordi jeg vil gøre det bærbart og stikke et batteri i det, vil jeg ikke være i nærheden af et strømstik hver gang. Så hvordan udløser vi det så.. det er faktisk ret simpelt.

Nikon vidste allerede, at du vil have en fjernbetjening og andet tilbehør, og de sagde "okay, vi giver dem alt det, men vi laver en særlig port, så vi kan tjene flere penge på det tilbehør", skam dig Nikon. Den port hedder (i mit tilfælde) MC-DC2, og den billigste måde at få fingrene i den er at købe en fjernudløser på eBay for 2-3 $ og bare bruge kablet.

*Nogle andre kameraer, som Canon, har et simpelt 3,5 mm hovedtelefonstik til samme brug, så du kan bruge noget kabel fra gamle højttalere/hovedtelefoner.

Trin 2: Lær at aktivere kameraet

Image
Image
Måder at udløse
Måder at udløse

Anyway, her er aftalen, havnen vil have 3 forbindelser, der vil være af vores interesse (Ground, Focus og Shutter), og du vil have dem på enden af dit kabel af den nykøbte fjernlukker, som du lige har ødelagt. Disse tre forbindelser er vigtige for os, for hvis vi kortslutter jorden og fokuserer kameraet fokus, ligesom du trykker på fokusknappen, og mens forbindelsen forbliver, kan du kortslutte jorden og lukkeren, og kameraet tager et billede ligesom hvis du trykkede på udløserknappen på kameraet.

Du kan teste dette ved bogstaveligt at kortslutte de strømførende ledninger på enden af kablet for at identificere hvilken ledning, der er hvilken. Når du har gjort det, for lettere at identificere, farver vi dem sådan:

Jord = SORT; Fokus = HVID; Lukker = RØD.

Okay, nu skal vi lære Arduinoen at gøre dette for os.

Trin 3: Måder at udløse

Image
Image

Det enkleste, vi kan fortælle en Arduino at sende til den ydre verden, er det digitale udgangssignal. Dette signal kan enten være HIGH (logisk '1') eller LOW (logisk '0'), deraf navnet "digitalt", eller når det konverteres til dets kernebetydning: 5V for et logisk HIGH og 0V for et logisk LOW.

Hvad skal vi med disse digitale signaler? Vi kan ikke bare forbinde dem til kameraet og forvente, at kameraet ved, hvad vi vil. Som vi har set, er vi nødt til at kortslutte forbindelserne på kameraet, for at det kan reagere, så vi er nødt til at bruge Arduino's digitale signaler til at drive nogle komponenter, der kan kortslutte deres terminaler afhængigt af dette elektriske signal, vi sender det. *Som jeg beskrev det, tænkte du måske "Ah, relæer!" men nej nej. Relæ ville gøre jobbet, men vi har at gøre med så små strømme, at vi let kan bruge halvlederes sorte magi.

Den første komponent, jeg vil prøve, er en optokobler. Jeg har set dem implementeret mest til dette, og det er nok den bedste løsning. Optocoupler er en elektrisk komponent, som du styrer udgangskredsløbet med, mens inputkredsløbet er fuldstændigt isoleret fra det. Dette opnås ved at transmittere information med lys, inputkredsløb tænder en LED, og fototransistoren på output skifter i overensstemmelse hermed.

Så vi vil bruge optokobleren på denne måde: Vi fortæller vores Arduino at sende en digital HIGH på en, hvis det er digitale stifter, det signal er praktisk talt 5V, som driver LED'en inde i optokobleren og fototransistoren inde i den vil "kort" det er udgangsterminaler, når det registrerer det lys, og omvendt vil det "løsne" dets terminaler, da der ikke er noget lys fra LED'en, når vi sender en digital LOW gennem Arduino.

Praktisk set betyder dette: en af Arduinos digitale ben er fastgjort til optokoblerens ANODE -stift, Arduinos GND er fastgjort til KATODEN, kameraets GND er fastgjort til EMITTER og FOKUS (eller SHUTTER) til COLLECTOR. Se databladet for optokobleren, du bruger, for at finde disse ben på din. Jeg bruger 4N35, så du kan følge min skematisk blindt, hvis du ikke rigtig er ligeglad med, hvad der sker inde i optokobleren. Det er overflødigt at sige, at vi skal bruge to af disse, da vi skal styre både kameraets FOKUS og SHUTTER.

Da vi så, hvordan det fungerer, med en fototransistor på udgangen, hvorfor prøver vi det ikke udelukkende med en simpel NPN -transistor. Denne gang bringer vi det digitale signal direkte (på tværs af en modstand) til bunden af transistoren og forbinder både kameraets og Arduinos GND til senderen og kameraets fokus/lukker til transistorens samler.

Igen skal vi bruge to af disse, da vi styrer to signaler. Jeg bruger BC547B, og du kan stort set bruge enhver NPN til dette, da den nuværende, vi kontrollerer, er en enkelt milliamp.

Begge disse komponenter vil fungere, men at vælge optokobleren er nok den bedre idé, fordi den er mere sikker. Vælg kun transistorer, hvis du ved, hvad du laver.

Trin 4: Skrivning af koden til udløsning

Image
Image
Skrivning af koden til udløsning
Skrivning af koden til udløsning

Som vi sagde før, bruger vi Arduino's digitale ben til signalering. Arduino kan bruge disse både til at læse data fra det eller skrive til det, så den første ting, vi skal gøre, angiver i setup () -funktionen, at vi vil bruge to af Arduinos digitale pins til output sådan:

pinMode (FOCUS_PIN, OUTPUT);

pinMode (SHUTTER_PIN, OUTPUT);

hvor FOCUS_PIN og SHUTTER_PIN enten kan defineres med "#define NAME -værdi" eller som en int før setup () -funktionen, fordi du måske ændrer nålen, så det er lettere at ændre værdien på kun ét sted i stedet for hele koden bagefter.

Næste ting, vi skal gøre, er at skrive en trigger () -funktion, som gør netop det, når det køres. Jeg vedlægger bare et billede med koden. Alt du behøver at vide er, at vi først holder FOCUS_PIN på HIGH i et bestemt tidsrum, fordi vi skal vente på, at kameraet fokuserer på det emne, vi peger det på, og derefter et øjeblik (mens FOCUS_PIN stadig er HIGH) Sæt SHUTTER_PIN på HIGH bare for at tage billedet.

Jeg inkluderede også muligheden for at springe fokus over, fordi der ikke er behov for det, hvis vi skyder en timelapse af noget, der ikke ændrer dets afstand til kameraet gennem tiden.

Trin 5: Klasseinterval {};

Image
Image
Manipulering af intervallet gennem Arduino
Manipulering af intervallet gennem Arduino

Nu hvor vi har aktiveret kameraet fra den måde, vi skal gøre dette til et intervalometer ved at tilføje funktionaliteten til at manipulere tidsperioden mellem to skud. Bare så du får et billede af, hvad vi laver, er her en primitiv kode for at demonstrere den funktionalitet, vi ønsker:

void loop () {

forsinkelse (interval); udløser(); }

Jeg vil gerne kunne ændre dette interval fra, lad os sige, 5 sekunder helt op til måske 20-30 minutter. Og her er problemet, hvis jeg vil ændre det fra 5s til 16s eller noget derimellem, vil jeg bruge 1s inkrement, hvor for hver af mine anmodninger om at øge intervallet, vil intervallet stige i 1s. Det er fantastisk, men hvad hvis jeg vil gå fra 5s til 5min? Det ville tage mig 295 anmodninger om det i trin på 1 sek., Så jeg er naturligvis nødt til at øge inkrementværdien til noget større, og jeg er nødt til at definere, på hvilken nøjagtig intervalværdi (tærskel) jeg skal ændre inkrementet. Jeg implementerede dette:

5s-60s: 1s trin; 60s-300s: trin på 10s; 300s-3600s: trin på 60'erne;

men jeg skrev denne klasse for at være justerbar, så du kan definere dine egne tærskler og trin (alt er kommenteret i.h -filen, så du kan vide, hvor du kan ændre hvilke værdier).

Det eksempel, jeg har givet på at manipulere intervallet, er naturligvis udført på en pc, nu skal vi flytte det til Arduino. Hele denne klasse, Interval, sættes i en overskriftsfil, der bruges til at gemme deklarationer og definitioner (ikke rigtig, men det kan gøres i dette eksempel uden at gøre nogen skade) af vores klasse/funktioner. For at introducere denne header -fil til vores arduino -kode bruger vi "#include" Interval.h "" (filer skal være i det samme bibliotek), hvilket sikrer, at vi kan bruge de funktioner, der er defineret i header -filen i vores hovedkode.

Trin 6: Manipulering af intervallet gennem Arduino

Image
Image
Manipulering af intervallet gennem Arduino
Manipulering af intervallet gennem Arduino
Manipulering af intervallet gennem Arduino
Manipulering af intervallet gennem Arduino

Nu vil vi være i stand til at ændre værdien af intervallet, enten øge eller reducere det. Så det er to ting, så vi bruger to digitale signaler, der styres af to knapper. Vi vil gentagne gange læse værdierne på de digitale ben, vi tildelte knapperne og analysere disse værdier til funktionskontrolknapperne (int, int); hvilket vil øge intervallet, hvis der trykkes på knappen "op" og reducere intervallet, hvis knappen "ned". Hvis der trykkes på begge knapper, ændrer det også værdien af det variable fokus, der styrer, om der skal fokuseres ved udløsning.

En del af koden ((millis () - prevBtnPress)> = debounceTime) bruges til debouncing. Måden jeg skrev det på, betyder det, at jeg registrerer det første knaptryk med boolsk variabel btnPressed og husker den gang det skete. End jeg venter et vist stykke tid (debounceTime), og hvis der stadig trykkes på knappen, reagerer jeg. Det gør også en "pause" mellem hvert andet tryk på knappen, så det undgår flere tryk, hvor der ikke er nogen.

Og endelig med:

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

prevTrigger = millis (); udløser(); }

Vi kontrollerer først, om tidsrummet mellem den sidste udløser (prevTrigger) og den aktuelle tid (millis ()) (alt er divideret med en 1000, fordi den er i millisekunder, og intervallet er i sekunder) er lig med eller større end intervallet vi vil, og hvis det er det, husker vi det aktuelle tidspunkt som sidste gang vi udløste kameraet og derefter udløste det.

Med denne komplette lavede vi stort set et intervalometer, men vi er langt fra ovre. Vi kan stadig ikke se intervallometerets værdi. Det vises kun på den serielle skærm, og vi vil ikke altid være i nærheden af en computer, så nu implementerer vi noget, der viser os intervallet, når vi ændrer det.

Trin 7: Visning af intervallet

Image
Image
Viser intervallet
Viser intervallet
Viser intervallet
Viser intervallet
Viser intervallet
Viser intervallet

Det er her, vi introducerer displayet. Jeg brugte det firecifrede modul, der er drevet af TM1637, fordi jeg kun skal bruge det til at vise tid og intet andet. Den nemmeste måde at bruge disse moduler til en Arduino er at bruge allerede lavet biblioteker til dem. På Arduino -webstedet er der en side, der beskriver TM1673 -chippen og et link til et foreslået bibliotek. Jeg downloadede dette bibliotek, og der er to måder, du kan introducere disse biblioteker til Arduino IDE:

  1. fra Arduino -softwaren skal du gå til Skitse> Inkluder bibliotek> Tilføj. ZIP -bibliotek og finde.zip -filen, du lige har downloadet
  2. du kan gøre, hvad Arduino gør manuelt og bare pakke biblioteket ud i den mappe, hvor Arduino gemmer biblioteker, på Windows: C: / Brugere / Brugernavn / Dokumenter / Arduino / biblioteker \.

Når du har inkluderet biblioteket, skal du læse "ReadMe" -filen, hvor du finder en oversigt over, hvad de forskellige funktioner gør. Nogle gange er dette ikke nok, så du vil gå lidt dybere og udforske overskriftsfiler, hvor du kan se, hvordan funktionerne implementeres, og hvad de kræver som inputargumenter. Og selvfølgelig er den bedste måde at få en fornemmelse af, hvad et bibliotek er i stand til, det tilbyder normalt et eksempel, som du kan køre fra Arduino -softwaren gennem Filer> Eksempler> Biblioteknavn> Eksempelnavn. Dette bibliotek tilbyder et eksempel, som jeg anbefaler, at du kører på din skærm bare for at se, om din skærm fungerer korrekt, og end jeg opfordrer dig til at justere koden, du ser i eksemplet, og se selv, hvad hver funktion gør, og hvordan displayet reagerer på det. Jeg har gjort det, og det er hvad jeg fandt ud af:

den bruger 4 usignerede heltal med 8 bits for hvert ciffer (0bB7, B6, B5, B4, B3, B2, B1, B0). Og hver af disse bits B6-B0 bruges til hvert segment af et bestemt ciffer, og hvis bit er 1, lyser segmentet, der styres af det. Disse heltal lagres i et array kaldet data . Indstilling af disse bits på displayet opnås ved display.setSegments (data); eller du kan naturligvis få adgang til et hvilket som helst af cifrene især og indstille dem enten manuelt (data [0] = 0b01111001), eller du kan bruge funktionen encodeDigit (int); og konverter det ciffer, du sender det til, i henhold til bits (data [0] = display.encodeDigit (3));. Bit B7 bruges kun af det andet ciffer, eller data [1], til aktivering af tyktarmen.

Da jeg skrev funktionerne i INTERVAL -klasseheksen, som jeg kan få visse cifre i intervallet i form af M1M0: S1S0, hvor M står for minutter og S i sekunder, er det naturligt, at jeg bruger encodeDigitFunction (int); for at vise intervallet sådan:

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

Når som helst jeg har brug for at vise intervallet på displayet, kan jeg kalde funktionen displayInterval ().

*Bemærk "0x80 |…" på dataene [1]. Det bruges til at sikre, at bit B7 i dataene [1] altid er 1, så tyktarmen lyser.

Sidste ting om displayet, strømforbrug. Det er måske ikke af stor betydning, da vi ikke beholder det i lang tid, men hvis du er interesseret i at gøre dette endnu mere batteri venligt, så overvej at sænke skærmens lysstyrke, da det trækker 3 gange mere strøm på den maksimale lysstyrke end på det laveste.

Trin 8: Sæt det hele sammen

Samler det hele
Samler det hele

Vi ved, hvordan man aktiverer kameraet, hvordan man manipulerer intervallet, og hvordan man viser det samme interval på et display. Nu mangler vi bare at flette alle disse ting sammen. Vi starter naturligvis fra loop () -funktionen. Vi vil konstant kontrollere, om der trykkes på knapper og reagere i overensstemmelse hermed med checkButtons (int, int) og ændre intervallet i overensstemmelse hermed og vise det ændrede interval. Også i loop () kontrollerer vi konstant, om der er gået nok tid fra den sidste udløser, eller tryk på knappen og ring til trigger () -funktionen, hvis det er nødvendigt. Af hensyn til lavere strømforbrug slukker vi skærmen efter noget tid.

Jeg tilføjede en tofarvet LED, (rød og grøn, almindelig katode), som lyser grønt, mens aftrækkeren (), og den lyser rødt sammen med displayet, hvis fokuseringen er tændt, og den forbliver slukket, hvis fokuseringen er af.

Vi vandrer også til en endnu mindre Arduino, Pro Mini.

Trin 9: Tilføjelse af en sidste ting

Tilføjelse af en sidste ting
Tilføjelse af en sidste ting
Tilføjelse af en sidste ting
Tilføjelse af en sidste ting
Tilføjelse af en sidste ting
Tilføjelse af en sidste ting

Indtil videre har vi kun oprettet et intervalometer. Nyttigt, men vi kan gøre det bedre.

Her er hvad jeg havde i tankerne: Intervalometeret gør det som standard UNDTAGELSE, når vi tilslutter en form for ekstern switch/sensor, som derefter stopper intervalometeret og reagerer på kontakten/sensorens input. Lad os kalde det en sensor, det vil ikke nødvendigvis være en sensor, der er forbundet, men jeg vil referere til det som det.

For det første, hvordan opdager vi, at vi har tilsluttet sensoren?

De sensorer, vi bruger/fremstiller, har alle brug for tre ledninger, der forbinder dem med arduinoen (Vcc, GND, Signal). Det betyder, at vi kan bruge et 3,5 mm lydstik som indgangsstik til sensoren. Og hvordan løser det vores problem? Tja, der er typer af et 3,5 mm stik "med en switch", der har stifter, der er kortsluttet til stikkene på stikket, hvis der ikke er noget hanstik i dem, og de løsnes, når der er et stik til stede. Det betyder, at vi har oplysningerne baseret på sensorens tilstedeværelse. Jeg bruger pull-down modstanden som vist (den digitale pin vil læse HIGH uden sensoren og LOW med sensoren tilsluttet) i billedet, eller du kan også vedhæfte den digitale pin til pin på stikket, som normalt er forbundet til jorden og definere den digitale pin som INPUT_PULLUP, vil den fungere begge veje. Så nu skal vi justere vores kode, så den gør alt, hvad vi har skrevet indtil nu, kun hvis sensoren ikke er til stede, eller når den digitale pin -kontrol er HØJ. Jeg har også justeret det, så det viser "SENS" på displayet i stedet for det interval, der er ubrugeligt i denne tilstand, men fokuseringen er stadig relevant for os, vi beholder funktionaliteten med at skifte fokus med tryk på begge knapper og viser fokusstatus gennem den røde LED.

Hvad gør sensoren egentlig?

Alt det skal gøre er at sætte 5V på sin Signal pin, når vi vil udløse kameraet. Det betyder, at vi skal bruge en anden digital pin af Arduino, der kontrollerer denne pin -tilstand, og når den registrerer HIGH, er alt, hvad den skal gøre, at ringe til trigger () -funktionen, og kameraet tager et billede. Det nemmeste eksempel, og det vi vil bruge til at teste, om dette virker, er en simpel knap med en pull-down modstand. Vedhæft knappen mellem sensorens Vcc og signalstiften, og tilføj en modstand mellem signalstift og GND, på denne måde vil signalstiften være på GND, når der ikke trykkes på knappen, da der ikke strømmer strøm gennem modstanden, og når der trykkes på knappen, vi sætter Signal pin direkte på HIGH og Arduino læser det og udløser kameraet.

Hermed sluttede vi med at skrive koden.

*Jeg vil gerne bemærke nogle problemer, jeg havde med de lydstik, jeg brugte. Mens hanstikket indsættes i stikket, ville GND og en af de to andre ben undertiden kortslutte. Dette sker øjeblikkeligt og kun mens stikket sættes i, men det er stadig længe nok til at Arduino registrerer en kort, så Arduino bare ville genstarte. Dette sker ikke så ofte, men kan stadig være en fare, og der er et potentiale for at ødelægge Arduino, så undgå de stik, jeg brugte.

Trin 10: Indeholder rod

Indeholder rodet
Indeholder rodet
Indeholder rodet
Indeholder rodet
Indeholder rodet
Indeholder rodet
Indeholder rodet
Indeholder rodet

Du kan se på billederne, at brødbrættet bliver rodet, og vi er færdige, så vi skal overføre alt til et perfboard/PCB. Jeg gik til PCB, fordi jeg tror, jeg kommer til at lave flere af disse, så på denne måde kan jeg nemt gengive dem.

Jeg brugte Eagle til at designe printkortet og fandt designs til alle de dele, jeg brugte. Der er en lille ting i mit design, som jeg ville ønske, at jeg ikke havde gjort, og det er en wire pad til Vcc på skærmen. Jeg har set det for sent og ville ikke ødelægge det, jeg tidligere har designet og gik på den dovne måde at tilføje trådpuder og senere skulle tilføje ledning til disse forbindelser i stedet for kobberspor, så husk at hvis du bruger mit design.

Arduino -kortet og displayet er af tilsyneladende årsager forbundet til printkortet via hun -pin -overskrifter i stedet for at blive loddet direkte på printet. På denne måde er der masser af plads til andre komponenter under displayet til andre komponenter som modstande, transistorer og endda lydstikket.

Jeg har sat mikro -trykknapperne, som ifølge designet skulle loddes direkte, men du kan også bruge hullerne til hunstifter og tilslutte knapper med ledning, hvis du vil have dem monteret på kabinettet og ikke på printet.

Vi sætter også et andet kvindeligt lydstik til stikket i kablet, der tilsluttes kameraet. På denne måde bliver kortet mere alsidigt, da vi på den måde kan oprette forbindelse til andre kameraer med andre stik.

Trin 11: Sens0rs

Image
Image
Sens0rs
Sens0rs

Lad os overveje måder at implementere sensoren på.

Så sensoren vil have forsyningsspændingen på 5V, og den skal kunne levere en digital HIGH på sin signalpind, når vi vil udløse kameraet. Det første, jeg tænkte på, er en bevægelsessensor, PIR for at være specifik. Der sælges moduler til Arduino, som har denne sensor på sig og gør, hvad vi vil. De er tændt for 5V og har en udgangsstift, som de sætter 5V på, når de udløses, vi skal bare slutte stifterne til et 3,5 mm lydstik, og vi kan tilslutte det direkte til kortet. En ting at bemærke er dog, at denne sensor har brug for tid til at varme op og begynde at fungere ordentligt, så forvent ikke, at den fungerer korrekt, så snart du tilslutter den, giv den lidt tid og derefter sætter den op, og hvad der er levende, går ind i dens rækkevidde vil udløse kameraet.

Da vi tænker i retning af allerede lavet Arduino -sensorbrætter, kommer en anden til at tænke på, lyd. Disse tavler er normalt lavet på en sådan måde, at de har en pin, der udsender den analoge værdi af den lyd, den opfanger, og en anden, digital, der udsender et logisk HØJT, hvis lyden, den opfanger, krydser et bestemt niveau. Vi kan indstille dette niveau, så sensoren ignorerer vores stemme, men registrerer et klap. På den måde udløser du kameraet, hver gang du klapper.

Trin 12: PoweeEeEer

PoweeEeEer
PoweeEeEer
PoweeEeEer
PoweeEeEer

Jeg tror, at den nemmeste måde at drive denne ting på er med en powerbank, og ikke eksternt. Vi beholder funktionaliteten med at oplade vores telefon eller hvad som helst og styrer den aktuelle strøm til kortet via en switch. Vi finder benene på output -USB -stikket på printkortet i powerbanken, som er GND og Vcc (5V) og loddetråde direkte på dem og derfra ind i vores kort.

Trin 13: Kapsling.. Kinda

Kabinet.. Lidt
Kabinet.. Lidt
Kabinet.. Lidt
Kabinet.. Lidt
Kabinet.. Lidt
Kabinet.. Lidt

Jeg kæmpede virkelig med dette. Da jeg bøjede kassen, jeg ville lægge det eksisterende printkort i, indså jeg, at der ikke er nogen god måde at passe alt på, som jeg ville, og så besluttede jeg mig for at designe et nyt printkort, denne gang med optokoblere. Jeg ville placere printkortet lige under den side, hvorpå jeg ville bore huller til visse komponenter, der skal ses/røres. For at dette skulle fungere, skulle jeg lodde skærmen og Arduino direkte til brættet uden stikkontakter eller overskrifter, og det er her det første problem ligger. Det var helt forfærdeligt at fejlfinde noget, da jeg ikke var klar til at lodde det med det samme, indtil jeg testede, at alt fungerer, og jeg kunne ikke rigtig teste noget, da jeg ikke kunne lodde det og så videre. Don gør ikke dette. Problem numero dos, at lave huller på sagen. Jeg antager, at jeg tog målinger forkert, fordi ingen af hullerne på sagen var justeret til komponenterne på printkortet, og jeg var nødt til at forstørre dem, og knapperne var for høje på printet, og de ville altid blive trykket på, når jeg satte tavlen på plads aaand siden jeg ville have lydstikkene på siden, var jeg også nødt til at forstørre disse huller for at passe til stikkene først og derefter sænke tavlen for at displayet og knapperne skulle komme igennem.. resultatet er forfærdeligt.

Jeg gjorde på en måde de frygtelige huller mindre forfærdelige ved at lægge toppen med noget tyndt karton, hvor jeg skar mere rimelige huller til komponenterne og.. det er stadig frygteligt, men lettere for øjet synes jeg.

Bedømmelse, jeg foreslår, at du gør dette ved at købe komponenter, der monteres på kabinettet, og ikke direkte på printkortet. På den måde har du mere frihed i placeringen af komponenterne og færre steder at lave fejl på.

Trin 14: Fin

Image
Image
Fin
Fin

Jeg er færdig, men her er nogle ting, som jeg ville have gjort anderledes:

Brug 3,5 mm lydstik af bedre kvalitet. Dem, jeg brugte, har en tendens til at kortslutte terminalerne, mens du indsætter eller trækker stikket ud, hvilket resulterer i enten at kortslutte forsyningen og dermed nulstille Arduino, eller det producerer bare falske udløsere. Jeg har sagt dette i det forrige trin, men jeg vil sige det igen.. ikke lodde Arduino -kortet uden headers/socket, det gør bare enhver form for fejlfinding eller upload af ny kode og så videre meget sværere. Jeg tror også, at det ville have været nyttigt at have en LED -signal om, at tingen er tændt, fordi jeg ofte ikke kan fortælle det uden at trykke på knappen, da displayet slukker. Og det sidste, en pause -funktion. Jeg forestiller mig, at det er nyttigt, når du f.eks. Tilslutter PIR -sensoren, så fordi det har brug for tid til at varme op, eller bare når du flytter det rundt, du ikke vil have det til at udløse, så du bare kan sætte alt på pause, men du kan også bare dreje fra kameraet så.. uanset.

En anden pæn ting er at velcro det på stativet, da det sandsynligvis vil blive brugt der.

Spørg gerne noget om dette projekt i kommentarerne, og jeg vil meget gerne vide, om du bygger det, og hvordan det blev for dig.

Anbefalede: