Satura rādītājs:

Pimp My Cam: 14 soļi (ar attēliem)
Pimp My Cam: 14 soļi (ar attēliem)

Video: Pimp My Cam: 14 soļi (ar attēliem)

Video: Pimp My Cam: 14 soļi (ar attēliem)
Video: Штукатурка стен - самое полное видео! Переделка хрущевки от А до Я. #5 2024, Novembris
Anonim
Pimp My Cam
Pimp My Cam

Lūk, no kurienes nāk šis projekts.

Kādu laiku atpakaļ es domāju par dažu laika intervālu filmēšanu. - Kā? Es sev jautāju? Pirmā atbilde bija "Nu.. tu vienkārši kaut ko filmē un paātrini, un viss". Bet vai tas tiešām ir tik vienkārši? Pirmkārt, es vēlos tam izmantot savu DSLR, un manam Nikon D3100 ir 10 minūšu laika ierobežojums video filmēšanai. Otrkārt, pat ja man būtu kamera bez laika ierobežojuma video filmēšanai, ko darīt, ja es vēlos uztaisīt patiesi ilgu laika periodu, piemēram, 12 stundas? Es izveidoju 12 stundu garu 1080p video. Es šaubos, vai akumulators kalpos tik ilgi, un tas nav ļoti praktiski, vai ne? Labi, šķērsojot "filmēšanas video ideju". Nu, tad ir bildes. Fotografēšana kamerā ar noteiktu intervālu un galu galā simtiem attēlu, kurus es pēc tam apstrādāju, izmantojot programmatūru, lai izveidotu video..?

Šķita laba ideja, tāpēc nolēmu to izmēģināt. Tāpēc es beidzot vēlējos izveidot ierīci, kurā var ievadīt laika periodu, un, pamatojoties uz šo periodu, tā pastāvīgi iedarbinātu manu kameru. Un, kamēr mēs esam pie tā, kāpēc gan nepievienot citas lietas, piemēram, kustību ierosinātāju un tā tālāk?

1. solis: Bet.. Kā?

Bet kā?
Bet kā?

KĀ? ir mūsu nākamais jautājums, uz kuru trūkst atbildes. Laika, iedarbināšanas, sensoru un tamlīdzīgu lietu dēļ nebūs pārsteigums, ka pirmais, kas ienāca prātā, protams, bija Arduino. Labi, bet tomēr mums jāiemācās aktivizēt kameras aizvaru. Hm.. servo karsti pielīmēts pie ķermeņa kameras? Pilnīgi nē, mēs vēlamies, lai tas būtu kluss un energoefektīvs. Energoefektīva - kāpēc? Tā kā es vēlos to padarīt pārnēsājamu un tajā ievietoju akumulatoru, es katru reizi nebūšu strāvas kontaktdakšas tuvumā. Tātad, kā mēs to iedarbinām, tad patiesībā tas ir diezgan vienkārši.

Nikon jau zināja, ka jūs vēlēsities tālvadības pulti un citus piederumus, un viņi teica: "Labi, mēs viņiem visu to atdosim, bet mēs izveidosim īpašu portu, lai mēs varētu nopelnīt vairāk par šiem piederumiem", kauns par jums Nikon. Šo portu (manā gadījumā) sauc par MC-DC2, un lētākais veids, kā to iegūt, ir nopirkt tālvadības aizvara atbrīvošanu eBay par 2-3 ASV dolāriem un vienkārši izmantot kabeli.

*Dažām citām kamerām, piemēram, Canon, ir vienkārša 3,5 mm austiņu ligzda, kas paredzēta tam pašam lietojumam, lai jūs varētu izmantot kādu kabeli no veciem skaļruņiem/austiņām.

2. darbība: iemācieties aktivizēt kameru

Image
Image
Veidi, kā aktivizēt
Veidi, kā aktivizēt

Jebkurā gadījumā, šeit ir darījums, ostai būs 3 savienojumi, kas mūs interesēs (Ground, Focus un Shutter), un tie būs tikko nopostītā tālvadības aizvara kabeļa galā. Šie trīs savienojumi mums ir svarīgi, jo, ja mēs saīsināsim zemi un fokusu, kamera fokusēsies tāpat kā jūs nospiežat fokusa pogu, un, kamēr šis savienojums saglabājas, jūs varat saīsināt zemi un aizvaru, un kamera uzņems attēlu gluži tā, it kā jūs nospiestu kameras aizvara pogu.

To var pārbaudīt, burtiski saīsinot dzīvos vadus kabeļa galā, lai noteiktu, kurš vads ir. Kad esat to izdarījis, lai vieglāk identificētu, mēs tos krāsosim šādi:

Zeme = MELNA; Fokuss = BALTS; Aizvars = SARKANS.

Labi, tagad mums jāiemāca Arduino to darīt mūsu vietā.

3. darbība: aktivizēšanas veidi

Image
Image

Vienkāršākais, ko mēs varam pateikt Arduino nosūtīt ārpasaulē, ir tā digitālais izejas signāls. Šis signāls var būt HIGH (loģisks '1') vai LOW (loģisks '0'), līdz ar to nosaukums "digitāls", vai, pārvēršot to par galveno nozīmi: 5V loģiskam HIGH un 0V loģiskam LOW.

Ko mums darīt ar šiem digitālajiem signāliem? Mēs nevaram vienkārši savienot tos ar kameru un gaidīt, ka kamera zinās, ko mēs vēlamies. Kā redzējām, mums ir jāsaīsina kameras savienojumi, lai tā reaģētu, tāpēc mums ir jāizmanto Arduino digitālie signāli, lai vadītu dažus komponentus, kas var saīsināt terminālus atkarībā no šī elektriskā signāla, ko mēs tam nosūtām. *Kā es to aprakstīju, jūs, iespējams, domājat "Ak, releji!" bet nē nē. Relejs darītu šo darbu, bet mēs saskaramies ar tik mazām strāvām, ka mēs varam viegli izmantot pusvadītāju melno burvību.

Pirmā sastāvdaļa, ko izmēģināšu, ir optronis. Esmu redzējis, ka viņi to visvairāk īsteno, un tas, iespējams, ir labākais risinājums. Optocoupler ir elektriskā sastāvdaļa, ar kuru jūs kontrolējat izejas ķēdi, kamēr ieejas ķēde ir pilnībā izolēta no tā. Tas tiek panākts, pārraidot informāciju ar gaismu, ievades ķēde iedegas gaismas diode, un fototransistors uz izejas attiecīgi pārslēdzas.

Tāpēc mēs izmantosim optronu šādā veidā: mēs sakām mūsu Arduino, lai tas nosūta digitālu HIGH uz vienu, ja tas ir digitālās tapas, šis signāls ir praktiski 5 V, kas vadīs gaismas diodi optrona iekšpusē un fototransistoru tā iekšpusē būs "īss" tas ir izvades termināļi, kad tas atklāj šo gaismu, un otrādi, tas "atvienos" tā spailes, jo no gaismas diodes nav gaismas, kad mēs nosūtām digitālo LOW caur Arduino.

Praktiski tas nozīmē: viena no Arduino digitālajām tapām ir pievienota optrona ANODE tapai, Arduino GND ir piestiprināta pie KATODA, kameras GND ir piestiprināta pie EMITTER un FOCUS (vai SHUTTER) pie KOLEKTORA. Lai atrastu šīs tapas, skatiet izmantotā optrona datu lapu. Es izmantoju 4N35, lai jūs varētu akli sekot manai shēmai, ja jums patiešām nerūp, kas notiek optronā. Lieki piebilst, ka mums būs nepieciešami divi no tiem, jo mums ir jākontrolē gan kameras fokuss, gan aizvars.

Tā kā mēs redzējām, kā tas darbojas, ja izejā ir fototransistors, kāpēc gan neizmēģināt to tikai ar vienkāršu NPN tranzistoru. Šoreiz mēs digitālo signālu tieši (pāri rezistoram) nogādāsim tranzistora pamatnē un savienosim gan kameras, gan Arduino GND ar emitētāju un kameras fokusu/aizvaru tranzistora kolektoram.

Atkal mums būs nepieciešami divi no tiem, jo mēs kontrolējam divus signālus. Es izmantoju BC547B, un šim nolūkam jūs galvenokārt varat izmantot jebkuru NPN, jo pašreizējais, ko mēs kontrolējam, ir viens miliamprs.

Abas šīs sastāvdaļas darbosies, taču, iespējams, labāka ideja ir izvēlēties optronu, jo tas ir drošāk. Izvēlieties tranzistorus tikai tad, ja zināt, ko darāt.

4. solis: aktivizēšanas koda rakstīšana

Image
Image
Aktivizēšanas koda rakstīšana
Aktivizēšanas koda rakstīšana

Kā jau teicām iepriekš, signalizācijai izmantosim Arduino digitālās tapas. Arduino var tos izmantot gan datu nolasīšanai, gan rakstīšanai uz to, tāpēc pirmā lieta, kas mums jādara, iestatīšanas () funkcijā jānorāda, ka izejai mēs izmantosim divas no Arduino digitālajām tapām:

pinMode (FOCUS_PIN, OUTPUT);

pinMode (SHUTTER_PIN, OUTPUT);

kur FOCUS_PIN un SHUTTER_PIN var definēt ar "#define NAME value" vai kā int pirms iestatīšanas () funkcijas, jo jūs varētu nomainīt tapu, lai pēc tam būtu vieglāk mainīt vērtību tikai vienā vietā, nevis visā kodā.

Nākamā lieta, ko mēs darīsim, ir uzrakstīt sprūda () funkciju, kas to darīs tikai tad, kad tā tiks palaista. Es tikai ievietošu attēlu ar kodu. Viss, kas jums jāzina, ir tas, ka vispirms mēs FOCUS_PIN uz noteiktu laiku turēsim HIGH, jo mums jāgaida, kamēr kamera fokusēsies uz objektu, uz kuru mēs to norādām, un pēc tam tikai uz brīdi (kamēr FOCUS_PIN joprojām ir HIGH) ievietojiet SHUTTER_PIN uz HIGH, lai uzņemtu attēlu.

Es iekļāvu arī iespēju izlaist fokusēšanu, jo tas nebūs vajadzīgs, ja mēs uzņemsim laika intervālu ar kaut ko tādu, kas nemaina tā attālumu no kameras laika gaitā.

5. darbība: klases intervāls {};

Image
Image
Manipulēšana ar intervālu caur Arduino
Manipulēšana ar intervālu caur Arduino

Tagad, kad mēs esam aktivizējuši kameru no tā, kas mums jāizveido par intervālometru, pievienojot funkcionalitāti, lai manipulētu ar laika periodu starp diviem kadriem. Lai jūs varētu gūt priekšstatu par to, ko mēs darām, šeit ir daži primitīvi kodi, lai parādītu vēlamo funkcionalitāti:

void loop () {

kavēšanās (intervāls); sprūda (); }

Es vēlos, lai varētu mainīt šo intervālu no, teiksim, 5 sekundēm līdz pat 20-30 minūtēm. Un šeit ir problēma, ja es vēlos to mainīt no 5 sekundēm uz 16 sekundēm vai kaut ko starp tiem, es izmantošu 1 s pieaugumu, kur katram manam pieprasījumam palielināt intervālu intervāls palielināsies par 1 s. Tas ir lieliski, bet ko darīt, ja es vēlos pāriet no 5 sekundēm uz 5 minūtēm? Man būtu nepieciešami 295 pieprasījumi ar 1 s soli, tāpēc acīmredzot man ir jāpalielina pieauguma vērtība līdz kaut kam lielākam, un man ir jādefinē, kurā precīzā intervāla vērtībā (slieksnī) mainīt pieaugumu. Es to īstenoju:

5s-60s: 1s pieaugums; 60.-300. gadi: palielinājums par 10 sekundēm; 300.-3600. gads: 60 sek. Solis;

bet es uzrakstīju šo klasi kā regulējamu, lai jūs varētu noteikt savus sliekšņus un palielinājumus (viss ir komentēts.h failā, lai jūs varētu zināt, kur mainīt, kuras vērtības).

Manis sniegtais piemērs, kā manipulēt ar intervālu, acīmredzot tiek veikts personālajā datorā, tagad mums tas jāpārvieto uz Arduino. Visa šī klase, intervāls, ir ievietota vienā galvenes failā, ko izmanto mūsu klases/funkciju deklarāciju un definīciju glabāšanai (ne īsti, bet to var izdarīt šajā piemērā, nekaitējot). Lai ievadītu šo galvenes failu mūsu arduino kodā, mēs izmantojam "#include" Interval.h "" (failiem jābūt vienā direktorijā), kas nodrošina, ka mēs varam izmantot galvenes failā definētās funkcijas mūsu galvenajā kodā.

6. solis: manipulējiet ar intervālu caur Arduino

Image
Image
Manipulēšana ar intervālu caur Arduino
Manipulēšana ar intervālu caur Arduino
Manipulēšana ar intervālu caur Arduino
Manipulēšana ar intervālu caur Arduino

Tagad mēs vēlamies spēt mainīt intervāla vērtību, to palielināt vai samazināt. Tātad tās ir divas lietas, tāpēc mēs izmantosim divus digitālos signālus, kurus kontrolēs divas pogas. Mēs atkārtoti lasīsim vērtības uz digitālajām tapām, kuras mēs piešķīrām pogām, un parsēsim šīs vērtības funkciju checkButtons (int, int); kas palielinās intervālu, ja tiek nospiesta poga "uz augšu", un samazina intervālu, ja poga "uz leju". Turklāt, nospiežot abas pogas, tiks mainīta mainīgā fokusa vērtība, kas nosaka, vai aktivizēt, vai nefokusēties.

Daļa koda ((milis () - prevBtnPress)> = debounceTime) tiek izmantota atcelšanai. Tas, kā es to uzrakstīju, nozīmē, ka es reģistrēju pirmo pogas nospiešanu ar Būla mainīgo btnPressed un atceros laiku, kad tas notika. Es gaidu noteiktu laiku (debounceTime), un, ja poga joprojām tiek nospiesta, es reaģēju. Tas arī padara "pauzi" starp katru otro pogas nospiešanu, lai izvairītos no vairākkārtējas nospiešanas tur, kur tā netiek veikta.

Un visbeidzot, ar:

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

prevTrigger = milis (); sprūda (); }

vispirms pārbaudām, vai laiks starp pēdējo aktivizēšanu (prevTrigger) un pašreizējo laiku (milis ()) (viss ir dalīts ar 1000, jo tas ir milisekundēs un intervāls ir sekundēs) ir vienāds vai lielāks par intervālu mēs vēlamies, un, ja tā ir, mēs atceramies pašreizējo laiku kā pēdējo reizi, kad iedarbinājām kameru, un pēc tam to iedarbinājām.

Ar šo pabeigto mēs būtībā izveidojām intervometru, bet mēs vēl neesam beigušies. Mēs joprojām neredzam intervalometra vērtību. Tas tiek parādīts tikai sērijas monitorā, un mēs vienmēr neatradīsimies pie datora, tāpēc tagad mēs ieviesīsim kaut ko tādu, kas parādīs intervālu, kad to mainīsim.

7. solis: intervāla parādīšana

Image
Image
Intervāla parādīšana
Intervāla parādīšana
Intervāla parādīšana
Intervāla parādīšana
Intervāla parādīšana
Intervāla parādīšana

Šeit mēs iepazīstinām ar displeju. Es izmantoju četrciparu moduli, kuru vada TM1637, jo man tas jāizmanto tikai laika rādīšanai un nekas cits. Vienkāršākais veids, kā izmantot šos Arduino veidotos moduļus, ir izmantot tiem jau izveidotas bibliotēkas. Arduino vietnē ir lapa, kurā aprakstīta mikroshēma TM1673, un saite uz ieteikto bibliotēku. Es lejupielādēju šo bibliotēku, un ir divas iespējas, kā šīs bibliotēkas iepazīstināt ar Arduino IDE:

  1. no Arduino programmatūras dodieties uz Skice> Iekļaut bibliotēku> Pievienot. ZIP bibliotēku un atrodiet tikko lejupielādēto.zip failu
  2. jūs varat darīt to, ko Arduino dara manuāli, un vienkārši izpakot bibliotēku mapē, kurā Arduino glabā bibliotēkas, operētājsistēmā Windows: C: / Lietotāji / Lietotājvārds / Dokumenti / Arduino / bibliotēkas \.

Kad esat iekļāvis bibliotēku, izlasiet failu "ReadMe", kurā atradīsit dažādu funkciju kopsavilkumu. Dažreiz ar to nepietiek, tāpēc jūs vēlaties iedziļināties un izpētīt galvenes failus, kuros varat redzēt, kā funkcijas tiek ieviestas un kas tām ir nepieciešami kā ievades argumenti. Un, protams, labākais veids, kā uzzināt, ko bibliotēka spēj, parasti piedāvā piemēru, kuru varat palaist no Arduino programmatūras, izmantojot Fails> Piemēri> Bibliotēkas nosaukums> Piemēra nosaukums. Šī bibliotēka piedāvā vienu piemēru, kuru es iesaku palaist displejā, lai redzētu, vai displejs darbojas pareizi, un es iesaku jums pielāgot piemērā redzamo kodu un pārliecināties, ko katra funkcija dara un kā displejs reaģē to. Es to esmu darījis, un es sapratu:

tas izmanto 4 neparakstītus veselus skaitļus ar 8 bitiem katram ciparam (0bB7, B6, B5, B4, B3, B2, B1, B0). Un katrs no šiem bitiem B6-B0 tiek izmantots katram noteiktā cipara segmentam, un, ja bits ir 1, iedegas tā kontrolētais segments. Šie veseli skaitļi tiek glabāti masīvā ar nosaukumu data . Šo bitu iestatīšanu displejā veic displejs.setSegments (dati); vai arī jūs varat dabiski piekļūt kādam no cipariem un tos iestatīt manuāli (dati [0] = 0b01111001), vai arī varat izmantot funkciju encodeDigit (int); un konvertējiet nosūtīto ciparu bitos (dati [0] = display.encodeDigit (3));. Bitu B7 izmanto tikai otrais cipars jeb dati [1], lai aktivizētu kolu.

Tā kā es rakstīju funkcijas INTERVAL klases raganā, ko es varu iegūt noteiktus intervāla ciparus M1M0 formā: S1S0, kur M apzīmē minūtes un S sekundes, ir dabiski, ka es izmantoju encodeDigitFunction (int); lai parādītu intervālu šādi:

displayInterval () {

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

Tagad jebkurā laikā, kad displejā jāparāda intervāls, es varu izsaukt funkciju displayInterval ().

*Pievērsiet uzmanību datiem "1x80 |…" [1]. To izmanto, lai nodrošinātu, ka datu bits B7 [1] vienmēr ir 1, tāpēc iedegas kols.

Pēdējā lieta par displeju, enerģijas patēriņu. Tam, iespējams, nav lielas nozīmes, jo mēs to ilgi neturēsim, bet, ja vēlaties, lai tas būtu vēl draudzīgāks akumulatoram, apsveriet iespēju samazināt displeja spilgtumu, jo maksimālais spilgtums patērē trīs reizes lielāku strāvu nekā zemākajā.

8. solis: salieciet to visu kopā

Visu saliekot kopā
Visu saliekot kopā

Mēs zinām, kā iedarbināt kameru, kā manipulēt ar intervālu un kā to pašu intervālu parādīt displejā. Tagad mums vienkārši jāapvieno visas šīs lietas kopā. Mēs, protams, sāksim no cilpas () funkcijas. Mēs pastāvīgi pārbaudīsim, vai nav nospiesta poga, un attiecīgi reaģēsim ar atzīmēšanas pogām (int, int), attiecīgi mainīsim intervālu un parādīsim mainīto intervālu. Arī ciklā () mēs pastāvīgi pārbaudīsim, vai ir pagājis pietiekami daudz laika no pēdējās palaišanas vai pogas nospiešanas, un, ja nepieciešams, izsauksim sprūda () funkciju. Lai samazinātu enerģijas patēriņu, pēc kāda laika mēs izslēgsim displeju.

Es pievienoju divkrāsainu gaismas diodi (sarkans un zaļš, parasts katods), kas iedegsies zaļā krāsā, kamēr tiks iedarbināts (), un līdz ar displeju iedegsies sarkanā krāsā, ja fokusēšana ir ieslēgta, un tā paliks izslēgta, ja fokusēšana ir ieslēgta izslēgts.

Mēs arī migrēsim uz vēl mazāku Arduino Pro Mini.

9. darbība. Pēdējās lietas pievienošana

Pēdējās lietas pievienošana
Pēdējās lietas pievienošana
Pēdējās lietas pievienošana
Pēdējās lietas pievienošana
Pēdējās lietas pievienošana
Pēdējās lietas pievienošana

Līdz šim mēs esam izveidojuši tikai intervālometru. Noderīgi, bet mēs varam darīt labāk.

Lūk, kas man bija prātā: intervālometrs to dara pēc noklusējuma, IZŅEMOT, kad mēs pievienojam kaut kādu ārēju slēdzi/sensoru, kas pēc tam pārtrauc intervāla mērītāju un reaģē uz slēdža/sensora ievadi. Sauksim to par sensoru, tas noteikti nav savienots sensors, bet es to uz to attiecināšu.

Pirmkārt, kā noteikt, ka sensors ir pievienots?

Visiem izmantotajiem/izgatavotajiem sensoriem būs nepieciešami trīs vadi, kas tos savieno ar arduino (Vcc, GND, Signal). Tas nozīmē, ka mēs varam izmantot 3,5 mm audio ligzdu kā sensora ieejas ligzdu. Un kā tas atrisina mūsu problēmu? Ir daži 3,5 mm ligzdas veidi ar slēdzi, kuriem ir tapas, kas ir saīsinātas līdz savienotāja tapām, ja tajās nav vīriešu savienotāja, un tās atvienojas, ja ir savienotājs. Tas nozīmē, ka mums ir informācija, kas balstīta uz sensora klātbūtni. Es izmantošu nolaižamo rezistoru, kā parādīts attēlā (ciparu tapas rādīs HIGH bez sensora un LOW ar pievienotu sensoru) attēlā, vai arī jūs varētu pievienot digitālo tapu savienotāja tapai, kas parasti ir savienots ar zemi un definējiet šo ciparu tapu kā INPUT_PULLUP, tā darbosies jebkurā gadījumā. Tagad mums ir jāpielāgo savs kods, lai tas izdarītu visu, ko līdz šim esam rakstījuši, tikai tad, ja sensora nav vai ja digitālā tapas pārbaude ir AUGSTA. Es to arī pielāgoju, lai displejā tiktu parādīts "SENS", nevis intervāls, kas šajā režīmā ir bezjēdzīgs, taču fokusēšana mums joprojām ir aktuāla, mēs saglabāsim fokusēšanas maiņas funkcionalitāti, nospiežot abas pogas un parādot fokusa stāvokli caur sarkano gaismas diodi.

Ko īsti dara sensors?

Viss, kas tam jādara, ir uzlikt signāla tapu 5V, kad vēlamies iedarbināt kameru. Tas nozīmē, ka mums būs nepieciešama cita Arduino digitālā tapa, lai pārbaudītu šīs tapas stāvokli un, reģistrējot HIGH, viss, kas tam jādara, ir izsaukt sprūda () funkciju, un kamera uzņems attēlu. Vienkāršākais piemērs, ko mēs izmantosim, lai pārbaudītu, vai tas darbojas, ir vienkārša poga ar nolaižamu rezistoru. Pievienojiet pogu starp sensora Vcc un signāla tapu un pievienojiet rezistoru starp signāla tapu un GND, tādējādi signāla tapa būs uz GND, kad poga netiks nospiesta, jo caur rezistoru neplūst strāva un nospiežot pogu, mēs uzliekam signāla tapu tieši uz HIGH, un Arduino to nolasa un iedarbina kameru.

Ar to mēs beidzām rakstīt kodu.

*Es vēlos atzīmēt dažas problēmas, kas man radās ar izmantotajām audio ligzdām. Ievietojot savienotājā ārējo ligzdu, GND un viena no pārējām divām tapām dažkārt varētu būt īss. Tas notiek uzreiz un tikai savienotāja ievietošanas laikā, taču tas joprojām ir pietiekami ilgs laiks, lai Arduino reģistrētu īso, lai Arduino vienkārši restartētos. Tas nenotiek tik bieži, bet joprojām var būt bīstams, un pastāv iespēja iznīcināt Arduino, tāpēc izvairieties no savienotājiem, kurus izmantoju.

10. solis: saturot jucekli

Satur Mesu
Satur Mesu
Satur Mesu
Satur Mesu
Satur Mesu
Satur Mesu
Satur Mesu
Satur Mesu

No attēliem var redzēt, ka maizes dēlis kļūst netīrs, un mēs esam pabeiguši, tāpēc mums viss ir jāpārnes uz perforētu plāksni/PCB. Es izvēlējos PCB, jo es domāju, ka gatavošu vairāk tādu, lai šādā veidā es varētu tos viegli reproducēt.

Es izmantoju Eagle, lai izstrādātu PCB, un atradu dizainu visām izmantotajām detaļām. Manā dizainā ir viena niecīga lieta, ko es vēlos, lai es nebūtu darījis, un tas ir stiepļu paliktnis displeja Vcc. Esmu to redzējis pārāk vēlu un negribēju sabojāt to, ko iepriekš izstrādāju, un gāju slinki, pievienojot stiepļu spilventiņus un vēlāk pievienojot vadus šiem savienojumiem, nevis vara pēdas, tāpēc ņemiet vērā, ka, ja izmantojat raktuvju dizainu.

Arduino dēlis un displejs acīmredzamu iemeslu dēļ ir savienoti ar PCB, izmantojot sieviešu tapas, nevis lodēti tieši uz PCB. Tādā veidā zem displeja ir daudz vietas citiem komponentiem citiem komponentiem, piemēram, rezistoriem, tranzistoriem un pat audio ligzdai.

Esmu ievietojis mikro spiedpogas, kurām pēc konstrukcijas vajadzētu būt tieši pielodētām, bet jūs varat arī izmantot caurumus sieviešu tapu galviņām un savienot pogas ar vadu, ja vēlaties tās uzstādīt uz korpusa, nevis uz PCB.

Mēs ievietosim arī citu sieviešu audio ligzdu, lai pievienotu kabeli, kas savienojas ar kameru. Šādā veidā tāfele kļūst daudzpusīgāka, jo tādā veidā mēs varēsim izveidot savienojumu ar citām kamerām, izmantojot citus savienotājus.

11. darbība: sensori

Image
Image
Sensori
Sensori

Apsvērsim sensora ieviešanas veidus.

Tātad sensora barošanas spriegums būs 5 V, un, kad mēs vēlamies iedarbināt kameru, tā signāla tapai būs jāspēj nodrošināt ciparu HIGH. Pirmā lieta, kas man ienāca prātā, ir kustības sensors, konkrēti - PIR. Arduino tiek pārdoti moduļi, kuriem ir šis sensors, un tie dara tieši to, ko mēs vēlamies. Tie tiek darbināti ar 5 V spriegumu, un tiem ir izejas tapa, uz kuras viņi ievieto 5 V, kad tie tiek aktivizēti, mums vienkārši jāpievieno tās tapas 3,5 mm audio ligzdai, un mēs varam pieslēgt tieši pie tāfeles. Viena lieta, kas jāņem vērā, ir tāda, ka šim sensoram ir nepieciešams laiks, lai tas uzsildītos un sāktu pareizi darboties, tāpēc negaidiet, ka tas darbosies pareizi, tiklīdz to pievienosit, dodiet tam kādu laiku un pēc tam iestatiet to, un viss, kas tajā atrodas, diapazons aktivizēs kameru.

Tā kā mēs domājam jau izveidoto Arduino sensoru dēļu virzienā, prātā nāk vēl viena skaņa. Šīs plāksnes parasti ir izgatavotas tā, lai tām būtu viena tapa, kas izvada uztvertās skaņas analogo vērtību, un otra, digitālā, kas izvada loģisku HIGH, ja skaņa, ko tā uztver, šķērso noteiktu līmeni. Mēs varam iestatīt šo līmeni tā, lai sensors ignorētu mūsu balsi, bet reģistrētu aplausi. Tādā veidā ikreiz, kad jūs aplaudējat, jūs iedarbināt kameru.

12. solis: PoweeEeEer

PoweeEeEer
PoweeEeEer
PoweeEeEer
PoweeEeEer

Es domāju, ka vienkāršākais veids, kā šo lietu darbināt, ir ar enerģijas banku, nevis no ārpuses. Mēs saglabāsim tālruņa vai jebkura cita tālruņa uzlādes funkcionalitāti un kontrolēsim pašreizējo plūsmu uz plāksni, izmantojot slēdzi. Mēs atradīsim izejas USB savienotāja tapas uz strāvas bankas shēmas plates, kas ir GND un Vcc (5V), un lodēšanas vadi tieši uz tiem un no turienes mūsu panelī.

13. solis: norobežojums.. Kaut kā

Korpuss.. Kaut kā
Korpuss.. Kaut kā
Korpuss.. Kaut kā
Korpuss.. Kaut kā
Korpuss.. Kaut kā
Korpuss.. Kaut kā

Es tiešām cīnījos ar šo. Kad es atrāvu kārbu, kurā vēlējos ievietot esošo PCB, es sapratu, ka nav jauku veidu, kā visu ievietot tā, kā es vēlējos, un tad es nolēmu izveidot jaunu PCB, šoreiz ar optroniem. Es gribēju novietot PCB tieši zem tās malas, kurā es urbšu caurumus noteiktām sastāvdaļām, kuras ir jāredz/jāpieskaras. Lai tas darbotos, man vajadzētu lodēt displeju un Arduino tieši pie tāfeles, bez kontaktligzdām vai galvenēm, un tieši šeit slēpjas pirmā problēma. Bija absolūti šausmīgi kaut ko novērst, jo es nebiju gatavs to uzreiz pielodēt, kamēr nepārbaudīju, vai viss darbojas, un es nevarēju neko pārbaudīt, jo nevarēju to pielodēt un tā tālāk. nedari šo. Problēma numero dos, izveidojot caurumus uz korpusa. Es domāju, ka mērījumus veicu nepareizi, jo neviens no korpusa caurumiem nebija saskaņots ar PCB sastāvdaļām, un man tie bija jāpalielina, un pogas bija pārāk augstas uz PCB, un tās vienmēr tiks nospiestas, kad es ievietoju plāksni vietā aa un, tā kā es gribēju audio ligzdas sānos, man arī bija jāpalielina šie caurumi, lai tie vispirms ietilptu ligzdās, un pēc tam nolaidiet dēli, lai displejs un pogas tiktu cauri.. rezultāts ir briesmīgs.

Es padarīju briesmīgos caurumus mazāk briesmīgus, pārklājot augšpusi ar plānu kartonu, kurā es izgriezu saprātīgākus caurumus sastāvdaļām un.. tas joprojām ir briesmīgi, bet manuprāt vieglāk.

Spriedums, es iesaku jums to izdarīt, pērkot komponentus, kas piestiprināti pie korpusa, nevis tieši uz PCB. Tādā veidā jums ir lielāka brīvība komponentu izvietošanā un mazāk iespēju kļūdīties.

14. darbība. Fin

Image
Image
Fin
Fin

Esmu pabeidzis, bet šeit ir dažas lietas, ko es darītu citādi:

Izmantojiet labākas kvalitātes 3,5 mm audio ligzdas. Tie, kurus es izmantoju, mēdz saīsināt spailes, ievietojot vai izvelkot domkratu, kā rezultātā vai nu tiek saīsināts piegāde, tādējādi atiestatot Arduino, vai arī tas vienkārši rada viltus sprūda. Es to teicu iepriekšējā solī, bet es to atkārtošu.. nelodējiet Arduino plati bez galvenēm/ligzdas, tas tikai padara jebkādu problēmu novēršanu vai jauna koda augšupielādi daudz grūtāku. Es arī domāju, ka būtu bijis lietderīgi vadīt signālu, ka šī lieta ir ieslēgta, jo bieži vien es nevaru pateikt, nenospiežot pogu, jo displejs izslēdzas. Un pēdējā lieta - pauzes funkcija. Es domāju, ka tas ir noderīgi, piemēram, pievienojot PIR sensoru, tāpēc, ka tam ir nepieciešams laiks, lai tas uzsilst, vai vienkārši pārvietojoties apkārt, jūs nevēlaties, lai tas iedarbinātos, lai jūs varētu visu apturēt, bet varat arī vienkārši pagriezt izslēgts no kameras tā.. vienalga.

Vēl viena glīta lieta ir velcro to uz statīva, jo tas, visticamāk, tiks izmantots tur.

Jūtieties brīvi jautāt kaut ko par šo projektu komentāros, un es labprāt uzzinātu, vai jūs to veidojat un kā tas jums izdevās.

Ieteicams: