Tartalomjegyzék:

Pimp My Cam: 14 lépés (képekkel)
Pimp My Cam: 14 lépés (képekkel)

Videó: Pimp My Cam: 14 lépés (képekkel)

Videó: Pimp My Cam: 14 lépés (képekkel)
Videó: The interior atmosphere light belt #LED 2024, November
Anonim
Pimp My Cam
Pimp My Cam

Innen származik ez a projekt.

Nemrég azon gondolkoztam, hogy forgatok egy kis időt. "Hogyan?" Kérdeztem magamtól? Az első válasz az volt, hogy "hát.. csak filmezel valamit, és felgyorsítod, és ennyi". De tényleg ilyen egyszerű? Először is a DSLR -t szeretném használni erre, és a Nikon D3100 -asom 10 perces időkorlátot tartalmaz a videó forgatására. Másodszor, még ha fényképezőgépem is lenne, nincs időkorlát a videofelvételek készítésére, mi van akkor, ha valóban hosszú timelapse -t szeretnék készíteni, például 12 órát? 12 órás 1080p videót készítek. Kétlem, hogy az akkumulátor ennyi ideig bírná, és nem túl praktikus, igaz? Rendben, keresztezve a "forgatási videóötletet". Nos, akkor vannak képek. Fényképezés a fényképezőgépen bizonyos időközönként, és végül több száz kép, amit aztán szoftveren keresztül feldolgozok, hogy videót készítsek..?

Jó ötletnek tűnt, ezért úgy döntöttem, hogy kipróbálom. Így végül olyan eszközt szerettem volna készíteni, amelybe be tudok írni egy időszakot, és az adott időszak alapján folyamatosan beindítja a fényképezőgépemet. És ha már itt tartunk, miért ne adhatna hozzá más dolgokat, például a mozgásindítót és így tovább?

1. lépés: De.. Hogyan?

De hogyan?
De hogyan?

HOGYAN? ez a következő kérdésünk, amire nincs válasz. Az időzítés, az indítás, az érzékelők és az ilyesmi miatt nem lesz meglepő, hogy az első, ami eszembe jutott, természetesen egy Arduino volt. Rendben, de mégis meg kell tanulnunk, hogyan kell kiváltani a zárat a fényképezőgépünkön. Hm.. szervo forró ragasztva a test kamerájához? Abszolút nem, szeretnénk, ha ez csendes és energiahatékony lenne. Energiatakarékos - miért? Mivel hordozhatóvá akarom tenni, és akkumulátort akarok belehelyezni, nem leszek mindig hálózati csatlakozó közelében. Akkor hogyan indítsuk el.. valójában nagyon egyszerű.

A Nikon már tudta, hogy távirányítót és egyéb kiegészítőket szeretne, és azt mondták: "Rendben, mindent megadunk nekik, de készítünk egy speciális portot, hogy több pénzt tudjunk keresni ezekkel a tartozékokkal", szégyen Nikon. Ezt a portot (az én esetemben) MC-DC2-nek hívják, és a legolcsóbb módja annak, hogy a kezünkbe vegyük, ha megvásárolunk egy távoli redőnyt az eBay-en 2-3 dollárért, és csak használjuk a kábelt.

*Néhány más fényképezőgép, például a Canon, rendelkezik egy egyszerű, 3,5 mm -es fejhallgató -csatlakozóval, amely ugyanarra a célra készült, így használhat néhány kábelt a régi hangszórókból/fejhallgatókból.

2. lépés: A kamera bekapcsolásának elsajátítása

Image
Image
Útmutatók a kiváltáshoz
Útmutatók a kiváltáshoz

Mindenesetre, itt az üzlet, a portnak 3 kapcsolata lesz, amelyek az érdeklődésünkre fognak számítani (Ground, Focus és Shutter), és ezek az újonnan vásárolt távvezérlő kábelének végén vannak, amelyeket éppen elpusztított. Ez a három kapcsolat fontos számunkra, mert ha lezárjuk a talajt és a fókuszt, a fényképezőgép úgy fókuszál, mint a fókusz gombot, majd amíg ez a kapcsolat megmarad, lezárhatja a talajt és a zárat, és a fényképezőgép lefényképezi mintha megnyomná a fényképezőgép exponáló gombját.

Ezt úgy tesztelheti, hogy szó szerint rövidre zárja a feszültség alatt álló vezetékeket a kábel végén, hogy azonosítsa, melyik vezeték melyik. Ha ezt megtette, a könnyebb azonosítás érdekében az alábbiak szerint színezzük őket:

Föld = FEKETE; Fókusz = FEHÉR; Zár = PIROS.

Rendben, most meg kell tanítanunk az Arduino -t, hogy ezt tegye meg helyettünk.

3. lépés: Az aktiválás módja

Image
Image

A legegyszerűbb dolog, amit mondhatunk egy Arduino -nak, hogy küldje el a külvilágba, az a digitális kimeneti jel. Ez a jel lehet HIGH (logikai '1') vagy LOW (logikai '0'), innen a "digitális" elnevezés, vagy az alapértelmezetté alakítva: 5V logikai HIGH és 0V logikai LOW esetén.

Mit kezdjünk ezekkel a digitális jelekkel? Nem egyszerűen csak csatlakoztathatjuk őket a fényképezőgéphez, és elvárhatjuk, hogy a kamera tudja, mit akarunk. Amint láttuk, le kell zárni a fényképezőgép csatlakozóit, hogy reagálhasson, ezért az Arduino digitális jeleit használva kell vezérelnünk néhány olyan komponenst, amelyek rövidre zárhatják a termináljaikat attól függően, hogy milyen elektromos jelet küldünk.. *Ahogy leírtam, talán azt gondolod, hogy "Ah, relék!" de nem nem. A relé elvégezné a munkát, de olyan kis áramokkal van dolgunk, hogy könnyen ki tudjuk használni a félvezetők fekete mágiáját.

Az első komponens, amit kipróbálok, egy optocsatoló. Láttam őket a legtöbbet megvalósítani erre, és talán ez a legjobb megoldás. Az optocsatoló egy elektromos alkatrész, amellyel a kimeneti áramkört vezérelheti, miközben a bemeneti áramkör teljesen el van szigetelve tőle. Ezt úgy érik el, hogy fényen keresztül továbbítják az információt, a bemeneti áramkör LED -et világít, és a kimeneten lévő fototranzisztor ennek megfelelően kapcsol.

Tehát az optocsatolót így fogjuk használni: azt mondjuk az Arduino -nknak, hogy küldjön digitális HIGH -t egyre, ha digitális tüskékről van szó, ez a jel gyakorlatilag 5 V, ami az optocsatoló belsejében lévő LED -et és a benne lévő fototranzisztor „rövidre zárja” ez a kimeneti terminál, amikor észleli ezt a fényt, és fordítva, "leválasztja" a terminálokat, mivel nincs fény a LED -ről, amikor digitális LOW -t küldünk az Arduino -n keresztül.

Gyakorlatilag ez azt jelenti: az Arduino egyik digitális csapja az optocsatoló ANODE csapjához van csatlakoztatva, Arduino GND -je a CATHODE -hez, a kamera GND -je az EMITTER -hez, a FOCUS (vagy ZÁRÓ) a GYŰJTŐhöz. Tekintse meg az Ön által használt optocsatoló adatlapján ezeket a csapokat. A 4N35 -öt használom, így vakon követheti a vázlatomat, ha nem igazán érdekli, mi történik az optocsatolóban. Mondanom sem kell, hogy kettőre lesz szükségünk, mivel a fényképezőgép FÓKUSZÁT és ZÁRJÁT is szabályoznunk kell.

Mivel láttuk, hogyan működik ez, egy fototranzisztorral a kimeneten, miért nem próbáljuk ki egy egyszerű NPN tranzisztorral. Ezúttal a digitális jelet közvetlenül (egy ellenálláson keresztül) a tranzisztor bázisára visszük, és a fényképezőgépet és az Arduino GND -jét az emitterhez, a fényképezőgép fókuszát/redőnyét pedig a tranzisztor kollektorához kapcsoljuk.

Ismét kettőre lesz szükségünk, mivel két jelet irányítunk. A BC547B -t használom, és alapvetően bármilyen NPN -t használhat erre, mivel az általunk irányított áram egyetlen milliamper.

Mindkét komponens működni fog, de valószínűleg az optocsatoló választása a jobb ötlet, mert biztonságosabb. Csak akkor válassza a tranzisztorokat, ha tudja, mit csinál.

4. lépés: Az aktiválási kód írása

Image
Image
Az aktiválási kód írása
Az aktiválási kód írása

Amint azt korábban mondtuk, az Arduino digitális csapjait használjuk a jelzéshez. Az Arduino mindkettőt használhatja adatok olvasására vagy írására, így az első dolog, amit meg kell tennünk, a setup () függvényben határozza meg, hogy az Arduino két digitális tűjét használjuk a kimenethez, így:

pinMode (FOCUS_PIN, OUTPUT);

pinMode (SHUTTER_PIN, OUTPUT);

ahol a FOCUS_PIN és a SHUTTER_PIN vagy a "#define NAME value" értékkel definiálható, vagy int a setup () függvény előtt, mert előfordulhat, hogy megváltoztatja a PIN -kódot, így könnyebb csak egy helyen megváltoztatni az értéket, nem pedig a teljes kódot.

A következő dolog, amit meg kell tennünk, egy trigger () függvény írása, amely futás közben is ezt fogja tenni. Csatolok egy képet a kóddal. Csak annyit kell tudnia, hogy először egy bizonyos ideig tartjuk a FOCUS_PIN -t HIGH -on, mert meg kell várnunk, amíg a kamera a tárgyra fókuszál, amelyre mutatunk, majd csak egy pillanatra (míg a FOCUS_PIN még mindig HIGH) tegye a SHUTTER_PIN -t HIGH -ra csak a kép elkészítéséhez.

Azt is belefoglaltam, hogy kihagyhatom a fókuszálást, mert nem lesz rá szükség, ha időzítést készítünk olyasmiről, amely nem változtatja meg a távolságot a kamerától az idő múlásával.

5. lépés: Osztályintervallum {};

Image
Image
Az intervallum manipulálása Arduino -n keresztül
Az intervallum manipulálása Arduino -n keresztül

Most, hogy kiváltottuk a kamerát az útból, ezt intervallummérővé kell tennünk azáltal, hogy hozzáadjuk a két felvétel közötti időszak manipulálásának funkcionalitását. Csak hogy képet kapjon arról, amit csinálunk, itt van néhány primitív kód, amely bemutatja a kívánt funkcionalitást:

void loop () {

késleltetés (intervallum); trigger (); }

Szeretném megváltoztatni ezt az intervallumot mondjuk 5 másodperctől egészen 20-30 percig. És itt van a probléma, ha 5 -ről 16 -ra akarom változtatni, vagy bármi közbe, akkor 1 -es lépést használok, ahol minden egyes intervallum -növelési kérésem esetén az intervallum 1 másodpercig nő. Ez nagyszerű, de mi van, ha 5 -ről 5 percre akarok menni? 295 kérésre lenne szükségem 1 mp -es lépésekben, így nyilvánvalóan nagyobbra kell emelnem a növekmény értékét, és meg kell határoznom, hogy pontosan melyik intervallumértéken (küszöbön) kell változtatni. Ezt megvalósítottam:

5–60-as évek: 1 mp-es lépésekben; 60-as és 300-as évek: 10 másodperces lépésekben; 300–3600-as évek: 60 másodperces lépésekben;

de azért írtam ezt az osztályt, hogy állítható legyen, így definiálhatja a saját küszöbértékét és lépéseit (a.h fájlban minden megjegyzésben van, így tudhatja, hogy hol módosíthatja az értékeket).

Az intervallum manipulálásának példája nyilvánvalóan PC -n történik, most át kell helyeznünk az Arduino -ra. Ez az egész osztály, az Interval, egy fejlécfájlba kerül, amelyet az osztályunk/funkcióink deklarációinak és definícióinak tárolására használnak (nem igazán, de ebben a példában meg lehet tenni anélkül, hogy kárt okoznánk). Ennek a fejlécfájlnak az arduino kódunkba való bevezetéséhez az "#include" Interval.h "" -t használjuk (a fájloknak ugyanabban a könyvtárban kell lenniük), ami biztosítja, hogy a fejkódfájlban meghatározott funkciókat használhatjuk a fő kódunkban.

6. lépés: Az intervallum manipulálása Arduino -n keresztül

Image
Image
Az intervallum manipulálása Arduino -n keresztül
Az intervallum manipulálása Arduino -n keresztül
Az intervallum manipulálása Arduino -n keresztül
Az intervallum manipulálása Arduino -n keresztül

Most szeretnénk változtatni az intervallum értékén, növelni vagy csökkenteni. Ez tehát két dolog, ezért két digitális jelet fogunk használni, amelyeket két gombbal lehet vezérelni. Ismételten leolvassuk a gombokhoz rendelt digitális csapok értékeit, és elemezzük ezeket az értékeket a checkButtons (int, int) függvényben; amely növeli az intervallumot, ha a "fel" gombot megnyomja, és csökkenti az intervallumot, ha a "le" gombot. Továbbá, ha mindkét gombot megnyomja, akkor megváltozik a változó fókusz értéke, amely szabályozza, hogy fókuszáljon -e az aktiváláskor.

A kód egy része ((millis () - prevBtnPress)> = debounceTime) a visszavonáshoz használatos. Ahogy írtam, ez azt jelenti, hogy regisztrálom az első gombnyomást a btnPressed logikai változóval, és emlékszem az időpontra. Aztán várok egy bizonyos ideig (debounceTime), és ha a gombot még mindig megnyomom, reagálok. Ezenkívül "szünetet" tesz a gomb minden más megnyomása között, így elkerülhető a többszörös megnyomás ott, ahol nincs.

És végül a következővel:

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

prevTrigger = millis (); trigger (); }

először azt ellenőrizzük, hogy az utolsó aktiválás (prevTrigger) és az aktuális idő (millis ()) közötti idő (minden osztva 1000 -gyel, mert ezredmásodpercben van, és az intervallum másodpercben van) egyenlő vagy nagyobb, mint az intervallum szeretnénk, és ha igen, akkor emlékezünk az aktuális időre, amikor utoljára aktiváltuk a kamerát, majd aktiváltuk.

Ezzel a kompletttel alapvetően intervallométert készítettünk, de még messze nem vagyunk a végétől. Még mindig nem látjuk az intervallométer értékét. Ez csak a soros monitoron jelenik meg, és nem leszünk mindig a számítógép közelében, ezért most végrehajtunk valamit, amely megmutatja nekünk az intervallumot, amikor megváltoztatjuk.

7. lépés: Az intervallum megjelenítése

Image
Image
Az intervallum megjelenítése
Az intervallum megjelenítése
Az intervallum megjelenítése
Az intervallum megjelenítése
Az intervallum megjelenítése
Az intervallum megjelenítése

Itt mutatjuk be a kijelzőt. A 4 számjegyű modult használtam, amelyet a TM1637 hajt, mert csak az idő megjelenítésére kell használnom, semmi másra. Ezeknek az Arduino számára készített moduloknak a legegyszerűbb módja a már elkészített könyvtárak használata. Az Arduino webhelyen van egy oldal, amely leírja a TM1673 chipet, és egy link a javasolt könyvtárhoz. Letöltöttem ezt a könyvtárat, és kétféle módon vezetheti be ezeket a könyvtárakat az Arduino IDE -hez:

  1. az Arduino szoftverből lépjen a Vázlat> Könyvtár beillesztése>. ZIP könyvtár hozzáadása elemre, és keresse meg az imént letöltött.zip fájlt
  2. megteheti, amit az Arduino manuálisan, és egyszerűen kicsomagolja a könyvtárat abban a mappában, amelyben az Arduino könyvtárakat tárol, Windows rendszeren: C: / Users / User / Documents / Arduino / libraries \.

Miután hozzáadta a könyvtárat, olvassa el a "ReadMe" fájlt, amelyben megtalálja a különböző funkciók összefoglalóját. Néha ez nem elég, ezért érdemes egy kicsit mélyebbre menni, és felfedezni a fejlécfájlokat, amelyekben láthatja, hogyan valósítják meg a funkciókat, és mit igényelnek bemeneti argumentumként. Természetesen a legjobb módja annak, hogy megtapasztaljuk, mire képes egy könyvtár, általában egy példát kínál, amelyet az Arduino szoftverből futtathat a Fájl> Példák> Könyvtárnév> Példanév segítségével. Ez a könyvtár kínál egy példát, amelyet javaslom, hogy futtassa a kijelzőjén, csak hogy lássa, a kijelző megfelelően működik -e, és azt javaslom, hogy módosítsa a példában látható kódot, és győződjön meg arról, hogy az egyes funkciók mit csinálnak, és hogyan reagálnak a kijelzőre azt. Én ezt tettem, és erre jutottam:

4 előjeles, 8 bites egész számot használ minden számjegyhez (0bB7, B6, B5, B4, B3, B2, B1, B0). A B6-B0 bitek mindegyike egy bizonyos számjegy minden szegmenséhez használható, és ha a bit 1, akkor az általa vezérelt szegmens világít. Ezeket az egész számokat az adat nevű tömb tárolja. Ezen bitek beállítása a kijelzőre a display.setSegments (adatok); vagy természetesen természetesen hozzáférhet bármelyik számjegyhez, és manuálisan is beállíthatja (data [0] = 0b01111001), vagy használhatja az encodeDigit (int) függvényt; és konvertálja az elküldött számjegyet bitek szerint (data [0] = display.encodeDigit (3));. A B7 bitet csak a második számjegy vagy adatok [1] használják a vastagbél aktiválásához.

Mivel az INTERVAL osztály boszorkányban írtam azokat a függvényeket, amelyekben az intervallum egyes számjegyeit M1M0 formában kaphatom meg: S1S0, ahol M percet, S másodpercet jelent, természetes, hogy az encodeDigitFunction (int) kódot használom; az intervallum megjelenítéséhez így:

displayInterval () {

adatok [0] = display.encodeDigit (intervallum.getM1 ()); adatok [1] = 0x80 | display.encodeDigit (intervallum.getM0 ()); adatok [2] = display.encodeDigit (interval.getS1 ()); adatok [3] = display.encodeDigit (interval.getS0 ()); display.setSegments (adatok); }

Most, amikor megjelenítenem kell az intervallumot a kijelzőn, meghívhatom a displayInterval () függvényt.

*Jegyezze meg a "0x80 |…" adatot [1]. Arra szolgál, hogy az adatok [1] B7 bitje mindig 1 legyen, így a kettőspont világít.

Utolsó dolog a kijelzővel, az energiafogyasztással kapcsolatban. Lehet, hogy nincs nagy jelentősége, mivel sokáig nem tartjuk bekapcsolva, de ha szeretné, hogy ez még akkumulátorbarátabb legyen, akkor fontolja meg a kijelző fényerejének csökkentését, mivel háromszoros áramot vesz fel a maximális fényerőn mint a legalacsonyabb.

8. lépés: Összerakás

Összerakni
Összerakni

Tudjuk, hogyan kell aktiválni a kamerát, hogyan lehet manipulálni az intervallumot, és hogyan kell megjeleníteni ugyanazt az intervallumot a kijelzőn. Most már csak egyesítenünk kell ezeket a dolgokat. Természetesen a loop () függvényből indulunk ki. Folyamatosan ellenőrizzük a gombnyomásokat, és ennek megfelelően reagálunk a checkButtons (int, int) gombokkal, és ennek megfelelően módosítjuk az intervallumot, és megjelenítjük a megváltozott intervallumot. Szintén a ciklusban () folyamatosan ellenőrizni fogjuk, hogy eltelt -e elegendő idő az utolsó aktiválás vagy gombnyomás óta, és szükség esetén hívjuk meg a trigger () függvényt. Az alacsonyabb energiafogyasztás érdekében egy idő után kikapcsoljuk a kijelzőt.

Hozzáadtam egy kétszínű LED-et (piros és zöld, közös katód), amely zölden világít a ravasz () mellett, és pirosan világít a kijelzővel együtt, ha az élességállítás be van kapcsolva, és kikapcsol, ha az élességállítás ki.

Továbbá egy még kisebb Arduino -ba, a Pro Mini -be vándorolunk.

9. lépés: Egy utolsó dolog hozzáadása

Egy utolsó dolog hozzáadása
Egy utolsó dolog hozzáadása
Egy utolsó dolog hozzáadása
Egy utolsó dolog hozzáadása
Egy utolsó dolog hozzáadása
Egy utolsó dolog hozzáadása

Eddig csak intervallométert hoztunk létre. Hasznos, de jobbak lehetünk.

Erre gondoltam: az intervallométer alapértelmezés szerint ezt teszi, kivéve, ha valamilyen külső kapcsolót/érzékelőt csatlakoztatunk, amely leállítja az intervallométert, és reagál a kapcsoló/érzékelő bemenetére. Nevezzük érzékelőnek, ez nem feltétlenül csatlakoztatott érzékelő, de úgy fogok hivatkozni rá.

Először is, hogyan észleljük, hogy csatlakoztattuk az érzékelőt?

Az általunk használt/gyártott érzékelőknek három vezetékre lesz szükségük, amelyek összekötik őket az arduino -val (Vcc, GND, Signal). Ez azt jelenti, hogy 3,5 mm -es audio jack -et használhatunk az érzékelő bemeneti aljzataként. És ez hogyan oldja meg a problémánkat? Nos, vannak 3,5 mm -es "kapcsolóval ellátott" jack típusok, amelyeknek vannak olyan csapjai, amelyek rövidre vannak zárva a csatlakozó csapjaihoz, ha nincs bennük dugó, és leválnak, ha csatlakozó van jelen. Ez azt jelenti, hogy az érzékelő jelenlétén alapuló információkkal rendelkezünk. A lefelé húzható ellenállást az ábrán látható módon fogom használni (a digitális tű HIGH feliratot mutat az érzékelő nélkül, és LOW-ot, ha az érzékelő csatlakoztatva van) a képen, vagy a digitális csaphoz is csatlakoztathatja a csatlakozó tüskéjét, amely általában csatlakoztassa a földhöz, és határozza meg ezt a digitális tűt INPUT_PULLUP -ként, akkor mindkét módon működni fog. Tehát most módosítanunk kell a kódunkat, hogy csak akkor tegye meg mindazt, amit eddig írtunk, ha az érzékelő nincs jelen, vagy amikor a digitális tű ellenőrzése MAGAS. Azt is módosítottam, hogy az "SENS" felirat jelenjen meg a kijelzőn az intervallum helyett, amely ebben az üzemmódban használhatatlan, de a fókuszálás továbbra is releváns számunkra, és megtartjuk azt a funkciót, hogy a fókuszálás mindkét gomb megnyomásával váltakozik. a fókuszállapotot mutatja a piros led.

Mit csinál valójában az érzékelő?

Mindössze annyit kell tennie, hogy 5V -ot tesz rá a jelzőtűre, amikor be akarjuk kapcsolni a kamerát. Ez azt jelenti, hogy szükségünk lesz az Arduino egy másik digitális tűjére, amely ellenőrzi ennek a tűnek az állapotát, és amikor regisztrálja a HIGH -t, mindössze annyit kell tennie, hogy meghívja a trigger () funkciót, és a fényképezőgép képet készít. A legegyszerűbb példa, és ezt fogjuk használni annak tesztelésére, hogy ez működik-e, egy egyszerű gomb lehúzható ellenállással. Csatlakoztassa a gombot az érzékelő Vcc és a jelzőcsap közé, és adjon hozzá egy ellenállást a jelzőtű és a GND közé, így a jelzőcsap a GND -n lesz, amikor a gombot nem nyomja meg, mivel nincs áram az ellenálláson, és amikor a gombot megnyomva közvetlenül a HIGH -ra tesszük a Signal pin -t, és az Arduino ezt kiolvassa, és aktiválja a kamerát.

Ezzel befejeztük a kód megírását.

*Szeretnék megjegyezni néhány problémát, amelyeket a használt audiocsatlakozókkal kapcsolatban tapasztaltam. Miközben a dugaszolóaljzatot a csatlakozóba helyezi, a GND és a másik két érintkező közül valamelyik rövidre záródhat. Ez azonnal és csak a csatlakozó behelyezése közben történik, de még mindig elég hosszú ahhoz, hogy az Arduino rövidet regisztráljon, így az Arduino csak újraindul. Ez nem gyakran fordul elő, de továbbra is veszélyt jelenthet, és fennáll az Arduino tönkretételének lehetősége, ezért kerülje az általam használt csatlakozókat.

10. lépés: Tartalmazza a Mess

A Messet tartalmazza
A Messet tartalmazza
A Messet tartalmazza
A Messet tartalmazza
A Messet tartalmazza
A Messet tartalmazza
A Messet tartalmazza
A Messet tartalmazza

A képeken látható, hogy a kenyértábla rendetlenné válik, és készen vagyunk, ezért mindent át kell vinnünk egy parfüm/PCB lapra. A PCB -t választottam, mert azt hiszem, többet fogok készíteni ezekből, így könnyen reprodukálhatom őket.

Az Eagle -t használtam a NYÁK tervezéséhez, és megtaláltam az összes használt alkatrész tervét. Van egy apró dolog a tervezésemben, amit bárcsak ne tettem volna meg, ez egy huzalpárna a kijelző Vcc -jéhez. Túl későn láttam, és nem akartam tönkretenni azt, amit korábban terveztem, és a lusta módot választottam, hogy drótpárnákat adtam hozzá, és később vezetéket kellett hozzáadnom ezekhez a kapcsolatokhoz a réznyomok helyett, ne feledje, hogy ha az enyém kialakítását használja.

Az Arduino kártya és a kijelző nyilvánvaló okokból nem a közvetlenül a NYÁK -ra forrasztva, hanem a hüvelyes csatlakozón keresztül csatlakozik a NYÁK -hoz. Így a kijelző alatt rengeteg hely áll rendelkezésre más alkatrészek számára, mint például ellenállások, tranzisztorok és még az audiocsatlakozó is.

Felhelyeztem a mikro nyomógombokat, amelyeket a tervezés szerint közvetlenül forrasztani kell, de használhatja a lyukakat is a női csapok fejléceihez, és csatlakoztathatja a gombokat vezetékkel, ha azt szeretné, hogy a házra szereljék, és ne a NYÁK -ra.

Egy másik női audiocsatlakozót is elhelyezünk a fényképezőgéphez csatlakoztatott kábel csatlakoztatásához. Így a tábla sokoldalúbbá válik, mivel így más csatlakozók segítségével csatlakozhatunk más kamerákhoz.

11. lépés: Érzékelők

Image
Image
Érzékelők
Érzékelők

Fontoljuk meg az érzékelő megvalósításának módjait.

Tehát az érzékelő tápfeszültsége 5V lesz, és képesnek kell lennie arra, hogy digitális HIGH -t biztosítson a jelzőcsapján, amikor be akarjuk kapcsolni a kamerát. Az első dolog, ami eszembe jutott, egy mozgásérzékelő, pontosabban PIR. Vannak olyan modulok az Arduino számára, amelyeken ez az érzékelő található, és azt teszik, amit akarunk. Tápellátásuk 5 V, és van egy kimeneti tüskéjük, amelyre 5 V -ot tesznek, amikor aktiválják őket, csak csatlakoztatni kell a csatlakozókat a 3,5 mm -es audio aljzathoz, és közvetlenül csatlakoztathatjuk a kártyához. Egy dolgot azonban meg kell jegyezni, hogy ennek az érzékelőnek időre van szüksége, hogy felmelegedjen és megfelelően működjön, ezért ne várja el, hogy megfelelően fog működni, amint csatlakoztatja, adjon neki egy kis időt, majd állítsa be, és bármi, ami él, belép tartomány aktiválja a kamerát.

Mivel a már elkészített Arduino szenzorlapok irányába gondolunk, egy másik jut eszembe, a hang. Ezeket a táblákat általában úgy készítik el, hogy van egy tűjük, amely az általa felvett hang analóg értékét adja ki, és egy másik, digitális, amely logikai HIGH -t ad ki, ha a felvett hang átlép egy bizonyos szintet. Ezt a szintet úgy állíthatjuk be, hogy az érzékelő figyelmen kívül hagyja a hangunkat, de tapsot regisztrál. Így bármikor tapsolva elindítja a kamerát.

12. lépés: PoweeEeEer

PoweeEeEer
PoweeEeEer
PoweeEeEer
PoweeEeEer

Úgy gondolom, hogy a legegyszerűbb módja ennek a dolognak az áramellátása az erőbank, és nem külső. Fenntartjuk azt a funkciót, hogy feltöltjük a telefonunkat vagy bármit, és egy kapcsolón keresztül irányítjuk a tábla áramlását. Megkeressük a kimeneti USB -csatlakozó csapjait a tápegység áramköri lapján, amelyek GND és Vcc (5V), valamint forrasztóvezetékek közvetlenül rájuk, és onnan a táblánkba.

13. lépés: Zárás.. Kinda

Kerítés.. Kicsit
Kerítés.. Kicsit
Kerítés.. Kicsit
Kerítés.. Kicsit
Kerítés.. Kicsit
Kerítés.. Kicsit

Tényleg küzdöttem ezzel. Amikor megkaptam a dobozt, ahová a meglévő NYÁK -ot akartam elhelyezni, rájöttem, hogy nincs szép módja annak, hogy minden a kívánt módon illeszkedjen, majd úgy döntöttem, hogy új NYÁK -t tervezek, ezúttal optocsatolókkal. A NYÁK -ot közvetlenül az oldal alá akartam helyezni, amelyen lyukakat fúrok bizonyos alkatrészekhez, amelyeket látni kell/meg kell érinteni. Ahhoz, hogy ez működjön, a kijelzőt és az Arduino -t közvetlenül a táblához kell forrasztanom, foglalatok vagy fejlécek nélkül, és ez az első probléma. Teljesen szörnyű volt bármi hibaelhárítása, mivel nem voltam kész azonnal forrasztani, amíg ki nem teszteltem, hogy minden működik, és nem igazán tudtam kipróbálni semmit, mivel nem tudtam forrasztani stb. ne tedd ezt. Probléma numero dos, lyukak készítése a tokon. Azt hiszem, rosszul mértem a méréseket, mert a házon lévő lyukak egyike sem volt igazítva a NYÁK alkatrészeihez, és ki kellett nagyítanom őket, és a gombok túl magasak voltak a NYÁK -on, és mindig megnyomták, amikor a táblát a helyére tettem. és mivel az audió aljzatokat akartam oldalra helyezni, ezeket a lyukakat is ki kellett nagyítanom, hogy először illeszkedjenek az aljzatokhoz, majd le kell engedni a táblát, hogy a kijelző és a gombok átjussanak.. az eredmény szörnyű.

Kicsit kevésbé szörnyűvé tettem a szörnyű lyukakat azzal, hogy vékony kartonpapírral borítottam be a tetejét, amelyben ésszerűbb lyukakat vágtam ki az alkatrészekhez, és még mindig szörnyű, de szerintem könnyebb a szememnek.

Ítélet, azt javaslom, hogy ezt úgy tegye meg, hogy olyan alkatrészeket vásárol, amelyek a házra szerelhetők, és nem közvetlenül a NYÁK -ra. Így nagyobb szabadságot kap az alkatrészek elhelyezésében, és kevesebb helyen hibázhat.

14. lépés: Fin

Image
Image
Uszony
Uszony

Végeztem, de van néhány dolog, amit másképp csináltam volna:

Használjon jobb minőségű 3,5 mm -es audiocsatlakozókat. Az általam használt hajlamosak rövidre zárni a csatlakozókat, miközben behelyezik vagy kihúzzák az aljzatot, ami azt eredményezi, hogy az ellátás rövidre zár, így visszaállítja az Arduino -t, vagy csak hamis triggereket termel. Ezt már az előző lépésben elmondtam, de megismétlem.. ne forrasztja az Arduino táblát fejléc/foglalat nélkül, ez csak megnehezíti a hibaelhárítást vagy az új kód feltöltését, és így tovább. Azt is gondolom, hogy hasznos lenne egy led jelzés, hogy a dolog be van kapcsolva, mert gyakran nem tudom megmondani a gomb megnyomása nélkül, mivel a kijelző kikapcsol. És az utolsó dolog, egy szünet funkció. Úgy gondolom, hogy hasznos lehet, ha például a PIR -érzékelő csatlakoztatásakor, mert időre van szüksége, hogy felmelegedjen, vagy csak amikor mozgatja, nem szeretné, hogy elinduljon, így egyszerűen szüneteltethet mindent, de egyszerűen ki a kamerából úgy.. mindegy.

Egy másik ügyes dolog, ha tépőzárral rögzíti az állványon, mivel valószínűleg ott használják.

Nyugodtan kérdezzen bármit erről a projektről a megjegyzésekben, és szeretném tudni, hogy megépítette -e, és hogyan alakult az Ön számára.

Ajánlott: