Obsah:

Pimp My Cam: 14 krokov (s obrázkami)
Pimp My Cam: 14 krokov (s obrázkami)

Video: Pimp My Cam: 14 krokov (s obrázkami)

Video: Pimp My Cam: 14 krokov (s obrázkami)
Video: Генри Лукас и Оттис Тул — «Руки смерти» 2024, November
Anonim
Pimp My Cam
Pimp My Cam

Tu pochádza tento projekt.

Pred nejakým časom som premýšľal o natočení nejakých časových intervalov. „Ako?“Pýtal som sa sám seba? Prvá odpoveď bola „No.. jednoducho niečo natočíte a urýchlite a je to“. Je to však skutočne také jednoduché? Najprv na to chcem použiť svoju digitálnu zrkadlovku a môj fotoaparát Nikon D3100 má na filmovanie videa časový limit 10 minút. Za druhé, aj keby som mal fotoaparát bez časového obmedzenia na natáčanie videa, čo keď chcem urobiť skutočne dlhý timelapse, napríklad 12 hodín? Vytváram 12 -hodinové video s rozlíšením 1080p. Pochybujem, že by batéria vydržala tak dlho a nie je to príliš praktické, že? Dobre, kríženie sa s „myšlienkou natáčania videa“. Potom sú tu obrázky. Fotografovanie v určitom intervale na fotoaparáte a nakoniec stovky fotografií, ktoré potom pomocou softvéru spracujem na vytvorenie videa..?

Vyzeralo to ako dobrý nápad, tak som sa rozhodol to skúsiť. Nakoniec som skončil s tým, že chcem vyrobiť zariadenie, do ktorého môžem zadať časové obdobie, a na základe tohto obdobia by neustále spúšťalo môj fotoaparát. A keď už sme pri tom, prečo nepridať ďalšie veci, ako napríklad spúšťač pohybu a podobne?

Krok 1: Ale.. Ako?

Ale ako?
Ale ako?

AKO? je naša ďalšia otázka, na ktorú chýba odpoveď. Vzhľadom na načasovanie, spúšťanie, senzory a podobné veci nebude žiadnym prekvapením, že prvé, čo mi prišlo na rozum, bolo samozrejme Arduino. Dobre, ale napriek tomu sa musíme naučiť, ako spustiť spúšť na fotoaparáte. Hm.. servo horúce nalepené na kamere tela? Rozhodne nie, chceme, aby to bolo tiché a energeticky efektívne. Energeticky úsporné - prečo? Pretože chcem, aby bol prenosný a vložil doň batériu, nebudem vždy blízko napájacej zásuvky. Ako to teda spustíme.. je to vlastne celkom jednoduché.

Spoločnosť Nikon už vedela, že budete chcieť diaľkové ovládanie a ďalšie príslušenstvo, a povedali: „Dobre, dáme im to všetko, ale vyrobíme špeciálny port, aby sme na tomto príslušenstve mohli zarobiť viac peňazí“, hanba vám, spoločnosť Nikon.. Tento port sa nazýva (v mojom prípade) MC-DC2 a najlacnejší spôsob, ako ho dostať do rúk, je kúpiť si diaľkovú spúšť na eBay za 2 až 3 doláre a použiť iba kábel.

*Niektoré iné fotoaparáty, ako napríklad Canon, majú jednoduchý 3,5 mm konektor pre slúchadlá vyrobený na rovnaké použitie, takže môžete použiť kábel zo starých reproduktorov/slúchadiel.

Krok 2: Naučte sa spúšťať fotoaparát

Image
Image
Spôsoby spustenia
Spôsoby spustenia

Každopádne, tu je dohoda, port bude mať 3 spojenia, ktoré nás budú zaujímať (uzemnenie, zaostrenie a uzávierka) a vy ich budete mať na konci kábla novo zakúpenej diaľkovej uzávierky, ktorý ste práve zničili. Tieto tri pripojenia sú pre nás dôležité, pretože ak skrátime uzemnenie a zaostrenie, fotoaparát zaostrí rovnako, ako keď stlačíte tlačidlo zaostrenia, a potom, kým toto spojenie zostane, môžete skrátiť uzemnenie a spúšť a fotoaparát nasníma obrázok. rovnako ako keby ste stlačili tlačidlo spúšte na fotoaparáte.

Môžete to vyskúšať tak, že doslova skratujete živé vodiče na konci kábla, aby ste zistili, ktorý vodič je ktorý. Akonáhle to urobíte, kvôli jednoduchšej identifikácii ich vyfarbíme takto:

Ground = ČIERNA; Zaostrenie = Biela; Uzávierka = ČERVENÁ.

Dobre, teraz musíme naučiť Arduino, aby to urobil za nás.

Krok 3: Spôsoby spustenia

Image
Image

Najjednoduchšia vec, ktorú môžeme Arduinu povedať, aby ho poslala do vonkajšieho sveta, je jeho digitálny výstupný signál. Tento signál môže byť buď VYSOKÝ (logický „1“) alebo LOW (logický „0“), odtiaľ pochádza názov „digitálny“, alebo keď sa prevedie na jeho hlavný význam: 5 V pre logický VYSOKÝ a 0 V pre logický NÍZKY.

Čo máme robiť s týmito digitálnymi signálmi? Nemôžeme ich jednoducho pripojiť k fotoaparátu a očakávať, že fotoaparát bude vedieť, čo chceme. Ako sme videli, musíme skrátiť pripojenia na kamere, aby reagovala, takže musíme použiť digitálne signály Arduina na pohon niektorých komponentov, ktoré môžu skratovať svoje svorky v závislosti od tohto elektrického signálu, ktorý mu pošleme.. *Ako som to popísal, možno si myslíte „Ach, relé!“ale nie nie Relé by to zvládlo, ale máme do činenia s tak malými prúdmi, že môžeme ľahko použiť čiernu mágiu polovodičov.

Prvá súčasť, ktorú vyskúšam, je optočlen. Videl som ich na to implementovať najviac a je to asi najlepšie riešenie. Optočlen je elektrická súčiastka, pomocou ktorej ovládate výstupný obvod, zatiaľ čo vstupný obvod je od neho úplne izolovaný. To sa dosiahne prenosom informácií svetlom, vstupný obvod rozsvieti LED diódu a fototranzistor na výstupe sa zodpovedajúcim spôsobom prepne.

Použijeme teda optočlen takto: povieme nášmu Arduinu, aby odoslal digitálny HIGH na jednom, ak sú to digitálne piny, tento signál je prakticky 5 V, ktorý bude poháňať LED vo vnútri optočlenu a fototranzistor v ňom bude „krátky“. sú to výstupné terminály, keď detekuje toto svetlo, a naopak, „odpojí“ich terminály, pretože keď pošleme digitálne LOW cez Arduino, z LED diódy nie je žiadne svetlo.

Prakticky to znamená: jeden z digitálnych kolíkov Arduina je pripevnený k kolíku ANODE optočlena, GND Arduina je pripojený k CATHODE, GND fotoaparátu je pripojený k EMITTERU a FOCUS (alebo SHUTTER) k ZBIERKU. Tieto piny nájdete na svojom technickom liste optočlena, ktorý používate. Používam 4N35, takže môžete slepo nasledovať moju schému, ak vás skutočne nezaujíma, čo sa deje vo vnútri optočlena. Netreba dodávať, že budeme potrebovať dve z nich, pretože musíme ovládať FOCUS a SPÚŠŤ fotoaparátu.

Keď sme videli, ako to funguje, s fototranzistorom na výstupe, prečo to neskúsiť výlučne s jednoduchým NPN tranzistorom. Tentoraz privedieme digitálny signál priamo (cez odpor) na základňu tranzistora a prepojíme GND fotoaparátu a Arduina s emitorom a zaostrovaním/uzávierkou fotoaparátu s kolektorom tranzistora.

Opäť budeme potrebovať dva z nich, pretože ovládame dva signály. Používam BC547B a v zásade na to môžete použiť akékoľvek NPN, pretože prúd, ktorý ovládame, je jeden miliampér.

Obe tieto komponenty budú fungovať, ale výber optočlena je pravdepodobne lepší nápad, pretože je bezpečnejší. Tranzistory si vyberte iba vtedy, ak viete, čo robíte.

Krok 4: Napísanie kódu na spustenie

Image
Image
Písanie kódu na spustenie
Písanie kódu na spustenie

Ako sme už povedali, na signalizáciu použijeme digitálne piny Arduina. Arduino ich môže použiť na čítanie údajov z neho alebo na zápis do neho, takže prvá vec, ktorú musíme urobiť, je vo funkcii setup () špecifikovať, že na výstup použijeme dva digitálne piny Arduina takto:

pinMode (FOCUS_PIN, OUTPUT);

pinMode (SHUTTER_PIN, OUTPUT);

kde FOCUS_PIN a SHUTTER_PIN je možné definovať buď pomocou „#define NAME value“, alebo ako int pred funkciou setup (), pretože môžete zmeniť pin, takže je jednoduchšie zmeniť hodnotu iba na jednom mieste, nie potom celý kód.

Ďalšia vec, ktorú urobíme, je napísať funkciu trigger (), ktorá to po spustení urobí. K kódu vložím iba obrázok. Všetko, čo potrebujete vedieť, je, že najskôr držíme FOCUS_PIN na HIGH po určitú dobu, pretože musíme počkať, kým sa fotoaparát zameria na predmet, na ktorý naň smerujeme, a potom len na chvíľu (zatiaľ čo FOCUS_PIN je stále VYSOKÝ) dajte SHUTTER_PIN na HIGH, aby ste urobili fotografiu.

Zahrnul som aj možnosť preskočiť zaostrovanie, pretože to nebude potrebné, ak snímame časový odstup niečoho, čo nemení svoju vzdialenosť od fotoaparátu v čase.

Krok 5: Interval triedy {};

Image
Image
Manipulácia s intervalom prostredníctvom Arduina
Manipulácia s intervalom prostredníctvom Arduina

Teraz, keď sme spustili kameru z cesty, musíme z nej urobiť intervalometer pridaním funkcie manipulácie s časovým obdobím medzi dvoma zábermi. Aby ste získali predstavu o tom, čo robíme, uvádzame primitívny kód na demonštráciu požadovanej funkčnosti:

prázdna slučka () {

oneskorenie (interval); spúšťač (); }

Chcem byť schopný zmeniť tento interval z, povedzme, 5 sekúnd až na možno 20-30 minút. A tu je problém, ak to chcem zmeniť z 5 s na 16 s alebo čokoľvek medzi tým, použijem 1 s prírastok, kde pri každej mojej požiadavke na zvýšenie intervalu sa interval zvýši o 1 s. To je skvelé, ale čo keď chcem ísť od 5 s do 5 min? Trvalo by mi to 295 požiadaviek v prírastkoch po 1 s, takže zrejme potrebujem zvýšiť hodnotu prírastku na niečo väčšie a musím definovať, na ktorej presnej hodnote intervalu (prahu) prírastok zmeniť. Implementoval som toto:

5 s-60 s: prírastok 1 s; 60. až 300 s: prírastok 10 s; 300 s-3600 s: prírastok 60 s;

ale túto triedu som napísal, aby bola nastaviteľná, aby ste si mohli definovať svoje vlastné prahy a prírastky (všetko je komentované v súbore.h, aby ste vedeli, kde ktoré hodnoty zmeniť).

Príklad, ktorý som uviedol pri manipulácii s intervalom, sa očividne robí na počítači PC, teraz ho musíme presunúť do Arduina. Celá táto trieda, Interval, je vložená do jedného hlavičkového súboru, ktorý sa používa na ukladanie deklarácií a definícií (nie v skutočnosti, ale v tomto prípade sa to dá urobiť bez poškodenia) našich tried/funkcií. Na zavedenie tohto hlavičkového súboru do nášho kódu arduino používame „#include“Interval.h ““(súbory musia byť v rovnakom adresári), čo zaisťuje, že môžeme v našom hlavnom kóde používať funkcie definované v hlavičkovom súbore.

Krok 6: Manipulácia s intervalom prostredníctvom Arduina

Image
Image
Manipulácia s intervalom prostredníctvom Arduina
Manipulácia s intervalom prostredníctvom Arduina
Manipulácia s intervalom prostredníctvom Arduina
Manipulácia s intervalom prostredníctvom Arduina

Teraz chceme byť schopní zmeniť hodnotu intervalu, buď ju zvýšiť alebo znížiť. To sú teda dve veci, takže použijeme dva digitálne signály, ktoré budú ovládané dvoma tlačidlami. Budeme opakovane čítať hodnoty na digitálnych kolíkoch, ktoré sme priradili tlačidlám, a tieto hodnoty analyzujeme na funkciu checkButtons (int, int); čo zvýši interval, ak je stlačené tlačidlo „hore“, a skráti interval, ak je tlačidlo „dole“. Po stlačení oboch tlačidiel sa zmení aj hodnota premenlivého zaostrenia, ktoré určuje, či sa má pri spustení zaostrovať alebo nie.

Časť kódu ((millis () - prevBtnPress)> = debounceTime) sa používa na odstraňovanie debountingu. Ako som to napísal, znamená to, že zaregistrujem prvé stlačenie tlačidla s booleovskou premennou btnPressed a zapamätám si čas, kedy sa to stalo. Potom počkám určitý čas (debounceTime) a ak je tlačidlo stále stlačené, reagujem. Tiež to robí „prestávku“medzi každým ďalším stlačením tlačidla, takže sa vyhnete viacnásobnému stlačeniu tam, kde žiadne nie sú.

A nakoniec s:

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

prevTrigger = millis (); spúšťač (); }

najskôr skontrolujeme, či je časový interval medzi posledným spustením (predchádzajúcim spustením) a aktuálnym časom (milis ()) (všetko je delené číslicou 1000, pretože je v milisekundách a interval je v sekundách) rovný alebo väčší ako interval chceme, a ak je, pamätáme si aktuálny čas ako poslednýkrát, kedy sme spustili kameru a potom ju spustili.

S týmto kompletným dielom sme v podstate urobili intervalometer, ale zďaleka nekončíme. Stále nevidíme hodnotu intervalometra. Je zobrazený iba na sériovom monitore a nebudeme vždy blízko počítača, takže teraz implementujeme niečo, čo nám ukáže interval, ako ho zmeníme.

Krok 7: Zobrazenie intervalu

Image
Image
Zobrazenie intervalu
Zobrazenie intervalu
Zobrazenie intervalu
Zobrazenie intervalu
Zobrazenie intervalu
Zobrazenie intervalu

Tu predstavujeme displej. Použil som 4 -miestny modul, ktorý poháňa TM1637, pretože ho musím používať iba na zobrazenie času a ničoho iného. Najjednoduchší spôsob, ako používať tieto moduly určené pre Arduino, je použiť pre ne už pripravené knižnice. Na webe Arduino je stránka popisujúca čip TM1673 a odkaz na navrhovanú knižnicu. Stiahol som si túto knižnicu a existujú dva spôsoby, ako môžete tieto knižnice zaviesť do Arduino IDE:

  1. v softvéri Arduino prejdite na položku Skica> Zahrnúť knižnicu> Pridať knižnicu. ZIP a vyhľadajte súbor.zip, ktorý ste práve stiahli
  2. Môžete robiť to, čo Arduino robí ručne, a jednoducho rozbaliť knižnicu v priečinku, do ktorého Arduino ukladá knižnice, v systéme Windows: C: / Users / Používateľské meno / Dokumenty / Arduino / knižnice \.

Po zahrnutí knižnice by ste si mali prečítať súbor „ReadMe“, v ktorom nájdete zhrnutie toho, čo rôzne funkcie robia. Niekedy to nestačí, takže budete chcieť ísť trochu hlbšie a preskúmať hlavičkové súbory, v ktorých uvidíte, ako sú funkcie implementované a čo vyžadujú ako vstupné argumenty. A samozrejme najlepší spôsob, ako získať predstavu o tom, čo je knižnica schopná, zvyčajne ponúka príklad, ktorý môžete spustiť zo softvéru Arduino cez Súbor> Príklady> Názov knižnice> PríkladNázoru. Táto knižnica ponúka jeden príklad, ktorý vám odporúčam spustiť na displeji, aby ste zistili, či váš displej funguje správne, a potom vám odporúčam vyladiť kód, ktorý vidíte v príklade, a sami sa presvedčíte, čo jednotlivé funkcie robia a ako displej reaguje. to. Urobil som to a zistil som toto:

na každú číslicu používa 4 celé čísla bez znamienka, 8 bitov (0bB7, B6, B5, B4, B3, B2, B1, B0). A každý z týchto bitov B6-B0 sa používa pre každý segment určitej číslice a ak je bit 1, rozsvieti sa ním riadený segment. Tieto celé čísla sú uložené v poli nazývanom data . Nastavenie týchto bitov na displej sa vykonáva pomocou display.setSegmenty (údaje); alebo môžete prirodzene pristupovať k akejkoľvek číslici zvlášť a nastaviť ju buď ručne (údaje [0] = 0b01111001), alebo môžete použiť funkciu encodeDigit (int); a číslicu, ktorú mu pošlete, preveďte na zodpovedajúce bity (údaje [0] = display.encodeDigit (3));. Bit B7 používa iba druhá číslica alebo údaje [1] na aktiváciu dvojbodky.

Keďže som v triede INTERVAL napísal funkcie, ktoré dokážu získať určité číslice intervalu vo forme M1M0: S1S0, kde M znamená minúty a S sekundy, je prirodzené, že používam encodeDigitFunction (int); na zobrazenie intervalu takto:

displayInterval () {

data [0] = display.encodeDigit (interval.getM1 ()); údaje [1] = 0x80 | display.encodeDigit (interval.getM0 ()); data [2] = display.encodeDigit (interval.getS1 ()); data [3] = display.encodeDigit (interval.getS0 ()); display.setSegmenty (údaje); }

Teraz, kedykoľvek potrebujem zobraziť interval na displeji, môžem zavolať funkciu displayInterval ().

*Poznamenajte si údaj „0x80 | …“k údajom [1]. Používa sa na zabezpečenie toho, aby bit B7 údajov [1] bol vždy 1, takže sa dvojbodka rozsvieti.

Posledná vec na displeji, spotreba energie. Možno to nebude mať veľký význam, pretože to dlho nenecháme zapnuté, ale ak vás zaujíma, aby to bolo ešte šetrnejšie k batérii, zvážte zníženie jasu displeja, pretože pri maximálnom jase čerpá 3 -krát viac prúdu. než na najnižšom.

Krok 8: Dajte to všetko dohromady

Dávať to všetko dokopy
Dávať to všetko dokopy

Vieme, ako spustiť kameru, ako manipulovať s intervalom a ako ten istý interval zobraziť na displeji. Teraz musíme všetky tieto veci zlúčiť. Začneme, samozrejme, od funkcie loop (). Neustále kontrolujeme stlačenie tlačidiel a podľa toho reagujeme pomocou kontrolných tlačidiel (int, int) a podľa toho zmeníme interval a zobrazíme zmenený interval. Tiež v slučke () budeme neustále kontrolovať, či uplynul posledný čas od posledného spustenia alebo stlačenia tlačidla a v prípade potreby zavolať funkciu trigger (). V záujme nižšej spotreby energie displej po určitom čase vypneme.

Pridal som dvojfarebnú LED diódu (červená a zelená, spoločná katóda), ktorá sa rozsvieti na zeleno, kým je spúšť (), a rozsvieti sa červeno spolu s displejom, ak je zapnuté zaostrovanie, a zostane vypnuté, ak je zaostrovanie zapnuté vypnuté.

Tiež budeme migrovať na ešte menšie Arduino, Pro Mini.

Krok 9: Pridanie poslednej veci

Pridanie poslednej veci
Pridanie poslednej veci
Pridanie poslednej veci
Pridanie poslednej veci
Pridanie poslednej veci
Pridanie poslednej veci

Zatiaľ sme vytvorili iba intervalometer. Užitočné, ale môžeme to urobiť lepšie.

Tu je to, čo som mal na mysli: Intervalometer to robí štandardne, OKREM, keď pripojíme nejaký externý spínač/snímač, ktorý potom zastaví intervalometer a reaguje na vstup spínača/senzora. Nazvime to senzor, nemusí to byť nevyhnutne snímač, ktorý je pripojený, ale budem to takto označovať.

Po prvé, ako zistíme, že sme pripojili snímač?

Senzory, ktoré použijeme/vyrobíme, budú potrebovať tri vodiče, ktoré ich spoja s arduino (Vcc, GND, Signal). To znamená, že ako vstupný konektor pre snímač môžeme použiť 3,5 mm zvukový konektor. A ako to vyrieši náš problém? Existujú typy 3,5 mm konektora „s prepínačom“, ktoré majú kolíky skratované na kolíky konektora, ak v nich nie je žiadny konektor samca, a odpojia sa, ak je k dispozícii konektor. To znamená, že máme informácie založené na prítomnosti senzora. Na obrázku použijem sťahovací odpor, ako je znázornené (digitálny kolík bude na obrázku HIGH bez snímača a LOW s pripojeným snímačom) alebo sa môžete tiež pripojiť k digitálnemu kolíku a kolíku konektora, ktorý je normálne pripojený k zemi a definujúci tento digitálny pin ako INPUT_PULLUP, bude fungovať tak či onak. Teraz teda musíme náš kód vyladiť tak, aby robil všetko, čo sme doteraz napísali, iba ak nie je prítomný snímač alebo keď je kontrola digitálneho kolíka VYSOKÁ. Tiež som to vyladil, aby na displeji namiesto intervalu, ktorý je v tomto režime zbytočný, zobrazoval „SENS“, ale zaostrovanie je pre nás stále relevantné, ponecháme funkčnosť striedania zaostrovania stlačením oboch tlačidiel a ukazujúci stav zaostrenia pomocou červenej diódy.

Čo vlastne senzor robí?

Keď chceme spustiť kameru, stačí zapojiť 5V na signálny kolík. To znamená, že budeme potrebovať ďalší digitálny pin Arduina, ktorý bude kontrolovať stav tohto pinu, a keď sa zaregistruje HIGH, stačí zavolať funkciu trigger () a fotoaparát nasníma obrázok. Najľahším príkladom a testom, či to funguje, je jednoduché tlačidlo so sťahovacím odporom. Pripojte tlačidlo medzi Vcc snímača a signálny kolík a pridajte odpor medzi signálny kolík a GND, týmto spôsobom bude signálny kolík na GND, keď tlačidlo nie je stlačené, pretože cez odpor neprúdi žiadny prúd a keď tlačidlo je stlačené, dáme signálny kolík priamo na HIGH a Arduino to prečíta a spustí kameru.

Tým sme skončili s písaním kódu.

*Chcel by som poznamenať niektoré problémy, ktoré som mal s používanými zvukovými konektormi. Pri zasúvaní konektora samca do konektora sa niekedy skratuje GND a jeden z ďalších dvoch pinov. Stáva sa to okamžite a iba pri zapojení konektora, ale stále je to dosť dlhé na to, aby si Arduino zaregistroval skrat, takže sa Arduino len reštartuje. Nestáva sa to tak často, ale stále to môže predstavovať nebezpečenstvo a existuje riziko zničenia Arduina, preto sa vyhnite konektorom, ktoré som použil.

Krok 10: Obsahovanie neporiadku

Obsahujúci neporiadok
Obsahujúci neporiadok
Obsahujúci neporiadok
Obsahujúci neporiadok
Obsahujúci neporiadok
Obsahujúci neporiadok
Obsahujúci neporiadok
Obsahujúci neporiadok

Z obrázkov môžete vidieť, že doska na pečenie sa stáva neporiadnou a skončili sme, takže musíme všetko preniesť na perfboard/PCB. Vybral som si PCB, pretože si myslím, že ich vyrobím viac, aby som ich mohol takto jednoducho reprodukovať.

Na návrh DPS som použil Eagle a našiel som návrhy pre všetky diely, ktoré som použil. V mojom návrhu je jedna malá vec, ktorú by som si želal, aby som neurobil, a to je drôtená podložka pre Vcc displeja. Videl som to príliš neskoro a nechcel som pokaziť to, čo som predtým navrhol, a išiel som lenivým spôsobom pridávania drôtených podložiek a neskoršieho pridávania drôtu do týchto spojov namiesto medených stôp, takže nezabúdajte, že ak používate môj dizajn.

Doska Arduino a displej sú k PCB zo zrejmých dôvodov spájané skôr ako s kolíkovými konektormi, a nie spájkované priamo na PCB. Takto je pod displejom dostatok miesta pre ďalšie komponenty, ako sú rezistory, tranzistory a dokonca aj zvukový konektor.

Vložil som mikro tlačidlá, ktoré by sa podľa konštrukcie mali spájkovať priamo, ale môžete tiež použiť otvory pre hlavičky kolíkov a prepojiť tlačidlá drôtom, ak ich chcete namontovať na kryt a nie na dosku plošných spojov.

Tiež zapojíme ďalší ženský zvukový konektor na zapojenie kábla, ktorý sa pripája k fotoaparátu. Doska sa tak stane univerzálnejšou, pretože sa tak budeme môcť pripojiť k iným kamerám s inými konektormi.

Krok 11: Sens0rs

Image
Image
Sens0rs
Sens0rs

Uvažujme o spôsoboch implementácie senzora.

Senzor bude mať teda napájacie napätie 5V a keď chceme spustiť kameru, bude musieť byť schopný poskytnúť digitálny HIGH na svojom signálnom kolíku. Prvá vec, ktorá mi prišla na myseľ, je snímač pohybu, konkrétne PIR. Predávajú sa moduly pre Arduino, ktoré majú na sebe tento senzor a robia presne to, čo chceme. Sú napájané 5 V a majú výstupný kolík, na ktorý pri spustení pripájajú 5 V, stačí pripojiť jeho kolíky k 3,5 mm zvukovému konektoru a môžeme ho zapojiť priamo do dosky. Je však potrebné poznamenať, že tento snímač potrebuje čas na zahriatie a správnu funkciu, takže nečakajte, že bude správne fungovať hneď, ako ho zapojíte, dajte mu chvíľu času a potom ho nastavte a čokoľvek živé sa do neho zapojí. rozsah spustí kameru.

Pretože uvažujeme v smere už vyrobených senzorových dosiek Arduino, prichádza na rad ďalší, zvuk. Tieto dosky sú zvyčajne vyrobené tak, že majú jeden pin, ktorý vydáva analógovú hodnotu zvuku, ktorý zachytáva, a druhý digitálny, ktorý vydáva logický VYSOKÝ, ak zvuk, ktorý zachytáva, prekročí určitú úroveň. Túto úroveň môžeme nastaviť tak, aby senzor ignoroval náš hlas, ale zaregistroval tlesknutie. Tak pri každom tlesknutí spustíte fotoaparát.

Krok 12: PoweeEeEer

PoweeEeEer
PoweeEeEer
PoweeEeEer
PoweeEeEer

Myslím si, že najľahší spôsob napájania tejto veci je powerbanka, a nie externe. Ponecháme si funkčnosť nabíjania telefónu alebo čohokoľvek a budeme ovládať prúdový tok na dosku prepínačom. Na napájacej banke nájdeme na výstupnom obvode piny výstupného konektora USB, ktorými sú GND a Vcc (5V) a spájkovacie vodiče priamo na ne a odtiaľ do našej dosky.

Krok 13: Príloha.. Trochu

Príloha.. Trochu
Príloha.. Trochu
Príloha.. Trochu
Príloha.. Trochu
Príloha.. Trochu
Príloha.. Trochu

S týmto som naozaj bojoval. Keď som do krabice chcel vložiť existujúcu DPS, uvedomil som si, že neexistuje žiadny pekný spôsob, ako prispôsobiť všetko tak, ako som chcel, a potom som sa rozhodol navrhnúť novú DPS, tentoraz s optočlenmi. Chcel som umiestniť DPS priamo pod stranu, na ktorej by som vyvŕtal otvory pre určité komponenty, ktoré je potrebné vidieť/dotknúť sa. Aby to fungovalo, potreboval by som spájkovať displej a Arduino priamo na dosku, bez zásuviek alebo záhlaví, a v tom spočíva prvý problém. Riešenie akéhokoľvek problému bolo úplne hrozné, pretože som nebol pripravený ihneď ho spájkovať, kým neskúsim, že všetko funguje, a nemohol som skutočne nič otestovať, pretože som to nemohol spájkovať a podobne. Don nerob to Problém numero dos, vytváranie dier na puzdre. Myslím, že som zle vykonal merania, pretože žiadny z otvorov v puzdre nebol zarovnaný s komponentmi na doske plošných spojov a musel som ich zväčšiť a tlačidlá boli na doske plošných spojov príliš vysoké a vždy, keď som dosku nasadil, boli stlačené. aa keďže som chcel, aby boli audio konektory na boku, musel som tiež zväčšiť tieto otvory, aby sa do nich najskôr zmestili konektory, a potom spustiť dosku, aby prešiel displej a tlačidlá.. výsledok je hrozný.

Hrozné diery som trochu urobil tak strašnými, že som vrchnú časť prekryl nejakou tenkou lepenkou, v ktorej som vyrezal rozumnejšie otvory pre súčiastky a.. je to stále hrozné, ale podľa mňa jednoduchšie.

Verdikt, navrhujem, aby ste to urobili kúpou komponentov, ktoré sa montujú do krytu, a nie priamo na dosku plošných spojov. Vďaka tomu budete mať väčšiu voľnosť pri umiestňovaní komponentov a menej miest na chybovanie.

Krok 14: Fin

Image
Image
Fin
Fin

Končím, ale tu sú niektoré veci, ktoré by som urobil inak:

Používajte kvalitnejšie 3,5 mm zvukové konektory. Tie, ktoré som použil, majú tendenciu skratovať svorky pri vkladaní alebo vyťahovaní konektora, čo má za následok buď skrátenie napájania, čím sa resetuje Arduino, alebo to iba vytvára falošné spúšťače. Povedal som to v predchádzajúcom kroku, ale poviem to znova.. nepájkujte dosku Arduino bez záhlaví/zásuviek, iba to sťažuje akékoľvek riešenie problémov alebo nahrávanie nového kódu a podobne. Tiež si myslím, že by bolo užitočné mať LED diódu signalizujúcu, že je vec zapnutá, pretože často nedokážem zistiť bez stlačenia tlačidla, pretože displej sa vypne. A posledná vec, funkcia pozastavenia. Považujem za užitočné, keď napríklad pri zapojení PIR senzora, pretože potrebuje čas na zahriatie, alebo keď ho premiestňujete, nechcete, aby sa spustil, aby ste mohli všetko pozastaviť, ale môžete tiež jednoducho otočiť mimo kameru, takže.. čokoľvek.

Ďalšou úhľadnou vecou je suchý zips na statíve, pretože sa tam pravdepodobne použije.

Neváhajte sa na čokoľvek o tomto projekte opýtať v komentároch a rád by som vedel, či ho staviate a ako to pre vás dopadlo.

Odporúča: