INHOUDSOPGAWE:

Pimp My Cam: 14 stappe (met foto's)
Pimp My Cam: 14 stappe (met foto's)

Video: Pimp My Cam: 14 stappe (met foto's)

Video: Pimp My Cam: 14 stappe (met foto's)
Video: НОЧЬ В СТРАШНОМ ДОМЕ С ДЕМОНОМ / НЕ СТОИЛО СЮДА ПРИХОДИТЬ 2024, November
Anonim
Pimp My Cam
Pimp My Cam

Dit is waar hierdie projek vandaan kom.

'N Rukkie terug het ek daaraan gedink om 'n paar tydsverloop te neem. "Hoe?" Het ek myself afgevra? Die eerste antwoord was "Wel.. jy film net iets en bespoedig dit en dit is dit". Maar is dit regtig so eenvoudig? Eerstens wil ek my DSLR daarvoor gebruik, en my Nikon D3100 het 'n tydsbeperking van 10 minute om video te verfilm. Tweedens, as ek 'n kamera gehad het wat geen tydsbeperking gehad het om video te verfilm nie, wat as ek 'n baie lang tydsverloop wil hê, soos 12 uur lank? Ek maak 'n 12 uur lange 1080p video. Ek twyfel of die battery so lank sal hou, en dit is nie baie prakties nie, of hoe? Goed, kruising van 'filmidee'. Wel, dan is daar foto's. Met 'n sekere interval 'n foto op die kamera neem en eindig met honderde beelde wat ek dan deur sagteware verwerk om 'n video te maak..?

Lyk soos 'n goeie idee, so ek het besluit om dit te probeer. Daarom wou ek 'n toestel maak waarop ek 'n tydsperiode kan invoer, en op grond van die tydperk sal dit my kamera voortdurend aktiveer. En terwyl ons besig is, waarom sou u nie nog ander dinge byvoeg nie, soos motion-trigger en so meer?

Stap 1: Maar.. Hoe?

Maar hoe?
Maar hoe?

HOE? is ons volgende vraag wat 'n antwoord ontbreek. As gevolg van tydsberekening, sneller, sensors en sulke dinge, sal dit nie verbasend wees dat die eerste een wat natuurlik in gedagte was, natuurlik 'n Arduino was nie. Goed, maar tog moet ons leer hoe om die sluiter op ons kamera te aktiveer. Hm.. servo warm vasgeplak aan die liggaamskamera? Absoluut nie, ons wil hê dat dit stil en energie -effektief moet wees. Kragdoeltreffend - hoekom? Omdat ek dit draagbaar wil maak en 'n battery daarin wil steek, sal ek nie elke keer naby 'n kragprop wees nie. So hoe kan ons dit dan aktiveer.. dit is eintlik redelik eenvoudig.

Nikon het reeds geweet dat u 'n afstandsbediening en ander bykomstighede wil hê, en hulle het gesê "oké, ons gee dit alles, maar ons sal 'n spesiale poort maak, sodat ons meer geld kan verdien met die bykomstighede", jammer vir jou Nikon. Die poort word (in my geval) MC-DC2 genoem, en die goedkoopste manier om dit in die hande te kry, is deur 'n afstandsbediening op eBay vir 2-3 $ op eBay te koop en net die kabel te gebruik.

*Sommige ander kameras, soos Canon, het 'n eenvoudige 3,5 mm -koptelefoonaansluiting vir dieselfde gebruik, sodat u 'n kabel van ou luidsprekers/koptelefoon kan gebruik.

Stap 2: leer hoe om die kamera te aktiveer

Image
Image
Maniere om te aktiveer
Maniere om te aktiveer

In elk geval, hier is die ooreenkoms: die hawe het drie verbindings wat van ons belang sal wees (grond, fokus en sluiter), en u sal dit aan die einde van u kabel van die nuutgekoopte afstandsbediening wat u pas vernietig het, hê. Die drie verbindings is vir ons belangrik, want as ons die grond kort en fokus, fokus die kamera net soos u op die fokusknoppie druk, en terwyl die verbinding bly, kan u die grond en sluiter kortmaak en die kamera neem 'n foto net asof jy die ontspanknop op die kamera gedruk het.

U kan dit toets deur die stroomdrade aan die einde van die kabel letterlik te kort om te bepaal watter draad is. Sodra u dit gedoen het, om dit makliker te identifiseer, kleur ons hulle so in:

Grond = SWART; Fokus = WIT; Sluiter = ROOI.

Goed, nou moet ons die Arduino leer om dit vir ons te doen.

Stap 3: Maniere om te aktiveer

Image
Image

Die eenvoudigste ding wat ons vir 'n Arduino kan vertel om na die buitenste wêreld te stuur, is die digitale uitsetsignaal. Hierdie sein kan óf HOOG (logies '1') óf LAAG (logies '0') wees, vandaar die naam "digitaal", of as dit omgeskakel word na die kernbetekenis: 5V vir 'n logiese HOOG, en 0V vir 'n logiese LAAG.

Wat moet ons met hierdie digitale seine doen? Ons kan hulle nie net aan die kamera koppel nie en van die kamera verwag om te weet wat ons wil hê. Soos ons gesien het, moet ons die verbindings op die kamera kortmaak sodat dit kan reageer, dus moet ons die digitale seine van die Arduino gebruik om 'n paar komponente aan te dryf wat hul terminale kan kort, afhangende van hierdie elektriese sein wat ons dit stuur. *Soos ek dit beskryf het, dink u miskien: "Ag, aflosse!" maar nee nee. Relay sou die werk doen, maar ons het te doen met sulke klein strome dat ons die swart magie van halfgeleiers maklik kan gebruik.

Die eerste komponent wat ek sal probeer, is 'n optokoppelaar. Ek het gesien hoe hulle die meeste hiervoor geïmplementeer is, en dit is waarskynlik die beste oplossing. Optokoppelaar is 'n elektriese komponent waarmee u die uitsetkring beheer terwyl die ingangskring heeltemal daarvan geïsoleer is. Dit word bereik deur inligting deur lig oor te dra, die ingangskring brand 'n LED, en die fototransistor op die uitset skakel dienooreenkomstig.

Dus gebruik ons die optokoppelaar op hierdie manier: ons sê vir ons Arduino om 'n digitale HIGH op een te stuur as dit digitale penne is, die sein is feitlik 5V wat die LED binne -in die optokoppelaar aandryf en die fototransistor binne -in 'kort'. dit is uitsetterminale wanneer dit die lig opspoor, en omgekeerd, dit sal die terminale "losmaak", aangesien daar geen lig van die LED is as ons 'n digitale LAAG deur die Arduino stuur nie.

Prakties beteken dit: een van die digitale penne van die Arduino is aan die ANODE -pen van die optokoppelaar geheg, die GNU van Arduino is aan die KATOOD geheg, die kamera se GND is aan die EMITTER gekoppel en FOCUS (of SHUTTER) aan die COLLECTOR. Raadpleeg die gegewensblad van die optokoppelaar wat u gebruik om hierdie penne op u s'n te vind. Ek gebruik 4N35, sodat u my skema blindelings kan volg as u nie regtig omgee vir wat binne -in die optokoppelaar gebeur nie. Nodeloos om te sê, ons benodig twee hiervan, aangesien ons beide die FOKUS en SLUIT van die kamera moet beheer.

Aangesien ons gesien het hoe dit werk, met 'n fototransistor op die uitgang, waarom probeer ons dit dan nie slegs met 'n eenvoudige NPN -transistor nie? Hierdie keer bring ons die digitale sein direk (oor 'n weerstand) na die basis van die transistor en verbind beide die kamera's en die Arduino se GND met die sender en die fokus/sluiter van die kamera aan die versamelaar van die transistor.

Weereens het ons twee hiervan nodig, aangesien ons twee seine beheer. Ek gebruik die BC547B en u kan basies enige NPN hiervoor gebruik, aangesien die stroom wat ons beheer 'n enkele milliamp is.

Albei hierdie komponente sal werk, maar die keuse van die optokoppelaar is waarskynlik die beter idee, want dit is veiliger. Kies slegs die transistors as u weet wat u doen.

Stap 4: Skryf die kode vir sneller

Image
Image
Skryf die kode vir sneller
Skryf die kode vir sneller

Soos ons vroeër gesê het, gebruik ons die digitale penne van die Arduino vir sein. Die Arduino kan dit beide gebruik om data daaruit te lees of daaraan te skryf, sodat die eerste ding wat ons moet doen spesifiseer in die opset () -funksie dat ons twee van Arduino se digitale penne vir die uitset sal gebruik:

pinMode (FOCUS_PIN, OUTPUT);

pinMode (SHUTTER_PIN, OUTPUT);

waar FOCUS_PIN en SHUTTER_PIN gedefinieer kan word met '#define NAME -waarde' of as 'n int voor die setup () -funksie, omdat u die speld kan verander, sodat dit makliker is om die waarde op slegs een plek te verander eerder as die hele kode daarna.

Die volgende ding wat ons sal doen is om 'n sneller () -funksie te skryf, wat presies dit sal doen wanneer dit uitgevoer word. Ek sal net 'n foto met die kode insluit. Al wat u moet weet, is dat ons eers die FOCUS_PIN vir 'n sekere tyd op HIGH hou, want ons moet wag totdat die kamera fokus op die onderwerp waarop ons dit wys en dan net 'n oomblik (terwyl FOCUS_PIN nog steeds HOOG is)) plaas die SHUTTER_PIN op HIGH net om die foto te neem.

Ek het ook die moontlikheid ingesluit om die fokus te verslaan, want dit is nie nodig as ons 'n tydsverloop neem van iets wat nie die afstand van die kamera deur die tyd verander nie.

Stap 5: Klasinterval {};

Image
Image
Manipuleer die interval deur Arduino
Manipuleer die interval deur Arduino

Noudat ons die kamera uit die weg geruim het, moet ons dit 'n intervalmeter maak deur die funksie by te voeg om die tydsperiode tussen twee skote te manipuleer. Net sodat u die prentjie kry van wat ons doen, hier is 'n paar primitiewe kode om die funksionaliteit wat ons wil hê aan te toon:

leemte -lus () {

vertraging (interval); sneller (); }

Ek wil hierdie interval kan verander van, laat ons sê, 5 sekondes tot 20-30 minute. En hier is die probleem: as ek dit van 5s na 16s wil verander, of iets tussenin, sal ek 1s -inkremente gebruik, waar ek vir elke van my versoek om die interval te verhoog, die interval met 1s sal toeneem. Dit is wonderlik, maar wat as ek van 5 tot 5 minute wil gaan? Dit sal my 295 versoeke daartoe neem in stappe van 1 sekondes, dus moet ek die toenamewaarde natuurlik verhoog tot iets groter, en ek moet definieer op watter presiese intervalwaarde (drempel) die toename moet verander. Ek het dit geïmplementeer:

5s-60s: 1s inkrement; 60s-300s: 10s inkrement; 300s-3600s: inkrement van 60s;

maar ek het hierdie klas geskryf om verstelbaar te wees, sodat u u eie drempels en inkremente kan definieer (alles word in die.h -lêer opgemerk, sodat u kan weet waar u watter waardes moet verander).

Die voorbeeld wat ek gegee het om die interval te manipuleer, is duidelik op 'n rekenaar gedoen, nou moet ons dit na die Arduino skuif. Hierdie hele klas, Interval, word in 'n koptekstlêer geplaas wat gebruik word om verklarings en definisies (nie regtig nie, maar dit kan in hierdie voorbeeld gedoen word sonder om skade aan te doen) van ons klas/funksies. Om hierdie koplêer aan ons arduino -kode bekend te stel, gebruik ons die "#include" Interval.h "" (lêers moet in dieselfde gids wees), wat verseker dat ons die funksies wat in die koptekstlêer in ons hoofkode gedefinieer is, kan gebruik.

Stap 6: Manipuleer die interval deur middel van Arduino

Image
Image
Manipuleer die interval deur Arduino
Manipuleer die interval deur Arduino
Manipuleer die interval deur Arduino
Manipuleer die interval deur Arduino

Nou wil ons die waarde van die interval kan verander, óf verhoog of verlaag. Dit is twee dinge, dus gebruik ons twee digitale seine wat deur twee knoppies beheer word. Ons sal herhaaldelik die waardes op die digitale penne wat ons aan die knoppies toegeken het, lees en die waardes ontleed aan die funksie checkButtons (int, int); wat die interval sal verhoog as die knoppie "omhoog" gedruk word en die interval verminder as die knoppie "af". As beide knoppies ingedruk word, verander dit ook die waarde van die veranderlike fokus wat bepaal of daar gefokus moet word wanneer dit geaktiveer word.

'N Gedeelte van die kode ((millis () - prevBtnPress)> = debounceTime) word gebruik om te ontbloot. Soos ek dit geskryf het, beteken dit dat ek die eerste druk op die knoppie registreer met die booleaanse veranderlike btnPressed en onthou hoe dit gebeur het. Dan wag ek 'n sekere tyd (debounceTime) en as die knoppie nog ingedruk word, reageer ek. Dit maak ook 'n "pouse" tussen elke ander druk op die knoppie, sodat dit veelvoudige druk vermy waar daar geen is nie.

En laastens, met:

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

prevTrigger = millis (); sneller (); }

ons kyk eerstens of die tydsduur tussen die laaste ontsteking (prevTrigger) en die huidige tyd (millis ()) (alles gedeel is deur 'n 1000 omdat dit in millisekondes is en die interval in sekondes is) gelyk is aan of groter is as die interval ons wil, en as dit is, onthou ons die huidige tyd as die laaste keer dat ons die kamera geaktiveer het en dit dan geaktiveer het.

Met hierdie voltooiing het ons basies 'n intervalometer gemaak, maar ons is nog lank nie verby nie. Ons sien nog steeds nie die waarde van die intervalometer nie. Dit word slegs op die seriële monitor vertoon en ons sal nie altyd naby 'n rekenaar wees nie, so nou implementeer ons iets wat ons die interval sal wys terwyl ons dit verander.

Stap 7: Vertoon die interval

Image
Image
Vertoon die interval
Vertoon die interval
Vertoon die interval
Vertoon die interval
Vertoon die interval
Vertoon die interval

Dit is waar ons die vertoning voorstel. Ek het die 4 -syfer -module gebruik wat deur TM1637 aangedryf word, want ek hoef dit slegs te gebruik om tyd te wys en niks anders nie. Die maklikste manier om hierdie modules vir 'n Arduino te gebruik, is om reeds gemaakte biblioteke daarvoor te gebruik. Op die Arduino -webwerf is daar 'n bladsy wat die TM1673 -chip beskryf en 'n skakel na 'n voorgestelde biblioteek. Ek het hierdie biblioteek afgelaai en daar is twee maniere waarop u hierdie biblioteke aan die Arduino IDE kan voorstel:

  1. Gaan vanaf die Arduino -sagteware na Skets> Sluit biblioteek in> Voeg. ZIP -biblioteek by en soek die.zip -lêer wat u pas afgelaai het
  2. u kan doen wat die Arduino handmatig doen en die biblioteek net uitpak in die gids waarin die Arduino biblioteke stoor, op Windows: C: / Gebruikers / Gebruikersnaam / Dokumente / Arduino / biblioteke \.

Nadat u die biblioteek ingesluit het, moet u die "ReadMe" -lêer lees waarin u 'n opsomming vind van wat die verskillende funksies doen. Soms is dit nie genoeg nie, sodat u 'n bietjie dieper wil gaan en die koplêers wil ondersoek waarin u kan sien hoe die funksies geïmplementeer word en wat dit as invoerargumente benodig. En natuurlik is die beste manier om 'n idee te kry van wat 'n biblioteek in staat is, gewoonlik 'n voorbeeld wat u vanaf die Arduino -sagteware kan gebruik deur File> Voorbeelde> Biblioteeknaam> Voorbeeldnaam. Hierdie biblioteek bied een voorbeeld wat ek aanbeveel dat u op u skerm laat loop net om te sien of u skerm behoorlik werk, en ek moedig u aan om die kode wat u in die voorbeeld sien, aan te pas en self te sien wat elke funksie doen en hoe die skerm reageer. Dit. Ek het dit gedoen en dit is wat ek agtergekom het:

dit gebruik 4 ongetekende heelgetalle van 8 bisse vir elke syfer (0bB7, B6, B5, B4, B3, B2, B1, B0). En elkeen van die bisse B6-B0 word gebruik vir elke segment van 'n sekere syfer en as die bit 1 is, brand die segment wat daardeur beheer word. Hierdie heelgetalle word gestoor in 'n skikking genaamd data . Om hierdie stukkies op die skerm te plaas, word bereik deur display.setSegments (data); of u het natuurlik toegang tot enige van die syfers, veral met die hand (data [0] = 0b01111001) of u kan die funksie encodeDigit (int) gebruik; en omskep die syfer waarin u dit stuur volgens stukkies (data [0] = display.encodeDigit (3));. Bit B7 word slegs deur die tweede syfer, of data [1], gebruik om die dubbelpunt te aktiveer.

Aangesien ek die funksies in die INTERVAL -klasheks geskryf het, waarmee ek sekere syfers van die interval kan kry in die vorm van M1M0: S1S0, waar M vir minute staan en S vir sekondes, is dit natuurlik dat ek die encodeDigitFunction (int) gebruik; om die interval so te vertoon:

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

Ek kan die funksie displayInterval () bel, elke keer as ek die interval op die skerm moet vertoon.

*Let op die "0x80 | …" op die data [1]. Dit word gebruik om te verseker dat die bietjie B7 van die data [1] altyd 1 is sodat die dubbelpunt brand.

Laaste ding oor die skerm, kragverbruik. Dit is miskien nie van groot belang nie, want ons hou dit nie lank aan nie, maar as u belangstel om dit nog batteryfriendeliker te maak, oorweeg dit dan om die helderheid van die skerm te verlaag, aangesien dit 3 keer meer stroom op die maksimum helderheid trek. as op die laagste.

Stap 8: Alles saamvoeg

Om alles bymekaar te sit
Om alles bymekaar te sit

Ons weet hoe om die kamera te aktiveer, hoe om die interval te manipuleer en hoe om dieselfde interval op 'n skerm te vertoon. Nou moet ons al hierdie dinge saamvoeg. Ons begin natuurlik met die loop () -funksie. Ons sal voortdurend kyk of knoppies ingedruk word en dienooreenkomstig reageer met die tjekknoppies (int, int) en die interval dienooreenkomstig verander en die gewysigde interval vertoon. Ons kyk ook voortdurend of daar genoeg tyd verloop het na die laaste sneller of druk op die knoppie en skakel die sneller () -funksie indien nodig. Ter wille van 'n laer kragverbruik skakel ons die skerm na 'n geruime tyd uit.

Ek het 'n tweekleurige LED (rooi en groen, gewone katode) bygevoeg, wat groen sal brand terwyl die sneller () en saam met die skerm rooi sal brand as die fokus is, en dit bly af as die fokus is af.

Ons migreer ook na 'n nog kleiner Arduino, Pro Mini.

Stap 9: Voeg 'n laaste ding by

Voeg 'n laaste ding by
Voeg 'n laaste ding by
Voeg 'n laaste ding by
Voeg 'n laaste ding by
Voeg 'n laaste ding by
Voeg 'n laaste ding by

Tot dusver.. het ons slegs 'n intervalometer geskep. Nuttig, maar ons kan beter doen.

Hier is wat ek in gedagte gehad het: die intervalometer doen dit standaard, behalwe as ons 'n soort eksterne skakelaar/sensor aansluit, wat dan die intervalmeter stop en reageer op die insette van die skakelaar/sensor. Kom ons noem dit 'n sensor; dit sal nie noodwendig 'n sensor wees wat verbind is nie, maar ek sal dit so noem.

Eerstens, hoe kan ons agterkom dat ons die sensor aangebring het?

Die sensors wat ons sal gebruik/maak, benodig almal drie drade wat hulle met die arduino verbind (Vcc, GND, Signal). Dit beteken dat ons 'n 3,5 mm -klankaansluiting kan gebruik as 'n ingangsaansluiting vir die sensor. En hoe los dit ons probleem op? Daar is 'n 3,5 mm -aansluiting "met 'n skakelaar" wat penne bevat wat aan die penne van die aansluiting vasgekoppel is as daar geen manlike aansluiting is nie, en hulle word losgemaak as daar 'n aansluiting is. Dit beteken dat ons die inligting het wat gebaseer is op die teenwoordigheid van die sensor. Ek gebruik die aftrekweerstand soos getoon (die digitale pen sal HOOG lees sonder die sensor, en LAAG met die sensor daarby) in die prent, of u kan ook aan die digitale pen vasmaak aan die pen van die aansluiting gekoppel aan die grond en definieer die digitale pen as INPUT_PULLUP, dit werk in elk geval. So nou moet ons ons kode aanpas, sodat dit alles wat ons tot dusver geskryf het, net kan doen as die sensor nie teenwoordig is nie, of as die digitale pen kontroleer dat dit HOOG is. Ek het dit ook aangepas sodat dit 'SENS' op die skerm toon in plaas van die interval wat nutteloos is in hierdie modus, maar die fokus is nog steeds relevant vir ons. toon die fokusstatus deur die rooi led.

Wat doen die sensor eintlik?

Al wat u hoef te doen is om 5V op die seinpen te sit wanneer ons die kamera wil aktiveer. Dit beteken dat ons nog 'n digitale pen van die Arduino nodig het om die toestand van hierdie pen te kontroleer, en as dit HOOG registreer, is dit net nodig om die sneller () -funksie te skakel, en die kamera maak 'n foto. Die maklikste voorbeeld, en die een wat ons sal gebruik om te toets of dit werk, is 'n eenvoudige knoppie met 'n aftrekweerstand. Bevestig die knoppie tussen die Vcc van die sensor en die seinpen en voeg 'n weerstand tussen die seinpen en die GND by; sodoende sal die seinpen op GND wees as die knoppie nie ingedruk word nie, aangesien daar geen stroom deur die weerstand vloei nie, en wanneer as u op die knoppie druk, plaas ons die seinpen direk op HIGH en die Arduino lees dit en aktiveer die kamera.

Hiermee het ons die skryf van die kode voltooi.

*Ek wil kennis neem van 'n paar probleme wat ek gehad het met die klankaansluitings wat ek gebruik het. Terwyl die manlike aansluiting in die aansluiting geplaas word, sou die GND en een van die ander twee penne soms kortkom. Dit gebeur onmiddellik en slegs tydens die aansluiting, maar dit is nog lank genoeg dat Arduino 'n kort tydjie registreer sodat die Arduino net weer kan begin. Dit gebeur nie so gereeld nie, maar kan steeds 'n gevaar wees, en die Arduino kan vernietig word, so vermy die verbindings wat ek gebruik het.

Stap 10: Bevat die gemors

Bevat die gemors
Bevat die gemors
Bevat die gemors
Bevat die gemors
Bevat die gemors
Bevat die gemors
Bevat die gemors
Bevat die gemors

U kan op die beelde sien dat die broodbord rommelig raak en ons is klaar, dus moet ons alles na 'n perfboard/PCB oorplaas. Ek het vir PCB gegaan, want ek dink ek gaan meer hiervan maak, sodat ek dit maklik kan reproduseer.

Ek het Eagle gebruik vir die ontwerp van die PCB en ontwerpe gevind vir al die onderdele wat ek gebruik het. Daar is een klein ding in my ontwerp wat ek wens ek nie gedoen het nie, en dit is 'n draadkussing vir die Vcc van die skerm. Ek het dit te laat gesien en wou nie wat ek voorheen ontwerp het, verwoes nie, en ek het lui gegaan om draadblokkies by te voeg en later draad by hierdie verbindings te voeg in plaas van koperspore..

Die Arduino -bord en die skerm word om oënskynlike redes met die PCB verbind deur middel van pin -koppe, eerder as om direk op die PCB gesoldeer te word. Op hierdie manier is daar genoeg ruimte vir ander komponente onder die skerm vir ander komponente soos weerstande, transistors en selfs die klankaansluiting.

Ek het die mikro -drukknoppies geplaas, wat volgens die ontwerp direk gesoldeer moet word, maar u kan ook die gate vir vroulike penkoppe gebruik en knoppies met draad verbind as u dit op die omhulsel wil plaas en nie op die PCB nie.

Ons sal ook 'n ander vroulike klankaansluiting plaas om die kabel wat met die kamera verbind is, aan te sluit. Op hierdie manier word die bord meer veelsydig, aangesien ons op hierdie manier met ander kameras kan koppel met ander verbindings.

Stap 11: Sens0rs

Image
Image
Sens0rs
Sens0rs

Kom ons kyk na maniere om die sensor te implementeer.

Die sensor het dus 'n voedingsspanning van 5V, en hy moet 'n digitale HIGH op die seinpen kan verskaf wanneer ons die kamera wil aktiveer. Die eerste ding wat by my opgekom het, is 'n bewegingsensor, spesifiek PIR. Daar word modules vir Arduino verkoop wat hierdie sensor bevat en doen wat ons wil. Hulle is aangeskakel op 5V en het 'n uitsetpen waarop hulle 5V sit wanneer hulle geaktiveer word. Ons hoef net die penne aan 'n 3,5 mm -klankaansluiting te koppel, en ons kan direk in die bord aansluit. Een ding om op te let, is dat hierdie sensor tyd nodig het om op te warm en behoorlik te begin werk, dus moenie verwag dat dit behoorlik sal werk sodra u dit aansluit nie, gee dit 'n rukkie en stel dit dan op, en alles wat lewendig is, kan dit binnedring. reeks sal die kamera aktiveer.

Aangesien ons dink in die rigting van reeds gemaakte Arduino -sensorborde, kom 'n ander een na vore, klank. Hierdie borde word gewoonlik so gemaak dat hulle een pen het wat die analoogwaarde van die klank wat dit opneem, en 'n ander digitale, wat 'n logiese HOOGTE lewer, as die geluid wat dit optel 'n sekere vlak oorskry. Ons kan hierdie vlak so stel dat die sensor ons stem ignoreer, maar 'n klap registreer. Op hierdie manier aktiveer u die kamera elke keer as u klap.

Stap 12: PoweeEeEer

PoweeEeEer
PoweeEeEer
PoweeEeEer
PoweeEeEer

Ek dink dat die maklikste manier om hierdie ding aan te dryf, is met 'n kragbank, en nie ekstern nie. Ons behou die funksionaliteit om ons telefoon of wat ook al te laai, en beheer die stroom na die bord deur middel van 'n skakelaar. Ons vind die penne van die uitvoer -USB -aansluiting op die printplaat in die kragbank, wat GND en Vcc (5V) en soldeerdrade direk daarop en daarvandaan in ons bord plaas.

Stap 13: Omhulsel.. Nogal

Omhulsel.. Nogal
Omhulsel.. Nogal
Omhulsel.. Nogal
Omhulsel.. Nogal
Omhulsel.. Nogal
Omhulsel.. Nogal

Ek het regtig hiermee gesukkel. Toe ek die boks kry waarin ek die bestaande PCB wou sit, het ek besef dat daar nie 'n goeie manier is om alles te pas soos ek wil nie, en toe besluit ek om 'n nuwe PCB te ontwerp, hierdie keer met optokoppelaars. Ek wou die PCB reg onder die kant plaas waarop ek gate sou boor vir sekere komponente wat gesien moet word/aangeraak moet word. Om dit te laat werk, moet ek die skerm en Arduino direk aan die bord soldeer, sonder voetstukke of kopstukke, en dit is waar die eerste probleem lê. Dit was absoluut aaklig om iets op te los, aangesien ek nie dadelik gereed was om dit te soldeer totdat ek uitvind dat alles werk nie, en ek kon niks uitprobeer nie, aangesien ek dit nie kon soldeer nie, ens. moenie dit doen nie. Probleem numero dos, maak gate op die omhulsel. Ek neem aan dat ek die metings verkeerd geneem het, want nie een van die gate op die omhulsel was in lyn met die komponente op die printplaat nie, en ek moes dit vergroot en die knoppies was te hoog op die printplaat en dit sou altyd ingedruk word as ek die bord op sy plek sit. Aangesien ek die audio -aansluitings aan die kant wou hê, moes ek ook die gate vergroot om eers by die aansluitings te pas en dan die bord te laat sak sodat die skerm en knoppies deurkom.

Ek het die verskriklike gate nogal minder vreeslik gemaak deur die bokant met 'n dun karton te bedek waarin ek meer redelike gate vir die komponente uitgesny het en dit is nog steeds vreeslik, maar makliker vir die oog dink ek.

Uitspraak, ek stel voor dat u dit doen deur komponente te koop wat aan die omhulsel gemonteer word, en nie direk op die printplaat nie. Op hierdie manier het u meer vryheid om die komponente te plaas en minder plekke om foute te maak.

Stap 14: Fin

Image
Image
Fin
Fin

Ek is klaar, maar hier is 'n paar dinge wat ek anders sou gedoen het:

Gebruik 3,5 mm -klankaansluitings van beter gehalte. Diegene wat ek gebruik het, is geneig om die terminale kort te maak terwyl ek die domkrag insteek of uittrek, wat lei tot 'n kortsluiting van die voorraad en sodoende die Arduino herstel, of dit veroorsaak net vals snellers. Ek het dit in die vorige stap gesê, maar ek sal dit weer sê.. moenie die Arduino -bord soldeer sonder kopstukke nie; dit maak net enige probleemoplossing of die oplaai van nuwe kode, ensovoorts baie moeiliker. Ek dink ook dat 'n LED -aanduiding dat die ding aan is, nuttig sou gewees het, omdat ek dikwels nie kan sien sonder om op die knoppie te druk nie, aangesien die skerm uitskakel. En die laaste ding, 'n pouse -funksie. Ek verbeel my dat dit handig is as u byvoorbeeld die PIR -sensor aansluit, omdat dit tyd nodig het om op te warm, of as u dit nie wil laat beweeg nie, sodat u alles kan onderbreek, maar u kan ook eenvoudig draai van die kamera af so.. wat ook al.

Nog 'n aangename ding is om dit op die driepoot te klitten, aangesien dit waarskynlik daar gebruik kan word.

Vra gerus enigiets oor hierdie projek in die kommentaar, en ek sal graag wil weet of u dit gebou het en hoe dit vir u uitgedraai het.

Aanbeveel: