Kazalo:
2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-13 06:58
Časovni zamiki so super! Pomagajo nam pogledati v počasni svet, ki bi ga morda pozabili ceniti. Toda včasih je stalen posnetek s časovnim zamikom dolgočasen ali pa se okoli tega dogaja toliko stvari, da samo en kot ne zadostuje. Začinimo!
V tem navodilu vam bom pokazal, kako sem naredil napravo, ki bo vašemu časovnemu zamiku dodala gibanje. Začnimo!
1. korak: Načrt
Želel sem, da se kamera premika v dveh smereh, to je v vodoravni (X) in navpični (Y) osi. Za to potrebujem dva motorja.
Za obe osi bi morali imeti možnost izbire začetnega in končnega položaja.
Gibanje motorjev bi bilo takšno, da bi se po vsaki fotografiji osi obrnile za 1 stopinjo.
Za tako natančen nadzor bom uporabil servo motorje.
Prav tako bi morali biti sposobni nastaviti časovni interval.
Želel sem, da je prenosni, zato sem se odločil, da ga poganjam z LiPo baterijo, kar pomeni, da bo potrebno polnjenje in ojačevalno vezje.
In nazadnje, možgani, ki bodo vse to nadzirali, bodo Arduino. ATMega328p bo uporabljen kot samostojen mikrokrmilnik.
Šel sem s fotoaparatom GoPro, saj je majhen in z njim je enostavno narediti časovni zamik. Uporabite lahko katero koli drugo majhno kamero ali mobilni telefon.
2. korak: Seznam komponent
1x ATmega328p (z zagonskim nalagalnikom Arduino)
2x servo motor MG995
1x ojačevalni pretvornik MT3608
1x modul za polnjenje baterije TP4056 LiPo
1x stikalo SPDT
1x 16 MHz kristal
2x 22pF kondenzator
2x 10k upor
1x potenciometer (poljubna vrednost)
1x gumb (običajno odprt)
Neobvezno:
3D tiskalnik
3. korak: Oblikovanje tiskanega vezja
Da bi bilo vezje čim manjše, sem šel s tiskanim vezjem. Ploščo lahko jedkate sami doma ali pa dovolite, da strokovnjaki za vas trdo delajo in to sem storil jaz.
Ko vse deluje pravilno, lahko začnemo s postopkom oblikovanja tiskanih vezij. Za oblikovanje sem se odločil EasyEDA, saj tako začetnikom, kot sem jaz, olajša stvari.
Preverite, preverite in preverite! Prepričajte se, da niste ničesar zamudili. Ko ste popolnoma prepričani, kliknite na Ustvari datoteko izdelave, da prenesete datoteke Gerber, ali pa jo neposredno naročite pri JLCPCB za samo 2 USD z uporabo spodnje možnosti.
Ko prejmete/izdelate PCB, je čas, da ga napolnite. Pripravite diagram vezja in začnite spajkati komponente v skladu z oznako svile.
Očistite tiskano vezje po spajkanju z izopropilnim alkoholom, da odstranite ostanke toka.
4. korak: Sestavite stvari skupaj
Ne boste potrebovali elegantnega 3D tiskalnika. Deli se lahko zelo enostavno sestavijo z ustreznim orodjem. Pred kratkim sem dobil 3D tiskalnik in ga z veseljem uporabil v svojem projektu. Našel sem nekaj delov iz Thingiverse.
GoPro nosilec:
Servo hupa:
Spajkajte žice na stikalo za vklop, lonec in potisni gumb z ženskimi glavo in jih povežite z moškimi vodniki na tiskanem vezju.
Prenesite in odprite priloženo datoteko v Arduino IDE in kodo naložite v svoj Arduino. Ko naložite kodo, odstranite IC z plošče Arduino in jo vstavite na tiskano vezje.
/*Avtor: IndoorGeek YouTube: www.youtube.com/IndoorGeek Hvala za prenos. Upam, da vam je projekt všeč. */
#vključi
Servo xServo;
Servo yServo;
int potPin = A0;
int val, xStart, xStop, yStart, yStop; gumb int = 2; brez podpisa dolgo časaInterval;
void setup () {
pinMode (gumb, VHOD); xServo.attach (3); yServo.attach (4); }
void loop () {
xos (); zamuda (1000); xStart = val; yos (); zamuda (1000); yStart = val; xos (); zamuda (1000); xStop = val; yos (); zamuda (1000); yStop = val; setTimeInterval (); zamuda (1000); timelapseStart (); }
void xAxis () {
while (digitalRead (gumb)! = VISOKO) {val = analogRead (A0); val = zemljevid (val, 0, 1023, 0, 180); xServo.write (val); }}
void yAxis () {
while (digitalRead (gumb)! = VISOKO) {val = analogRead (A0); val = zemljevid (val, 0, 1023, 0, 180); yServo.write (val); }}
void setTimeInterval () {// Spremenite časovne intervale glede na nastavitve časovnega zamika fotoaparata
while (digitalRead (gumb)! = VISOKO) {val = analogRead (A0); if (val> = 0 && val = 171 && val = 342 && val = 513 && val = 684 && val = 855 && val <1023) {timeInterval = 60000L; }}}
void timelapseStart () {
brez podpisa dolga lastMillis = 0; xServo.write (xStart); yServo.write (yStart); medtem ko (xStart! = xStop || yStart! = yStop) {if (millis () - lastMillis> timeInterval) {if (xStart xStop) {xServo.write (xStart); lastMillis = millis (); xStart--; } if (yStart xStop) {yServo.write (yStart); lastMillis = millis (); yStart--; }}}}
5. korak: Delo
VKLOPITE glavno stikalo.
Os X bo aktivna. Obrnite lonec v položaj, od koder želite začeti časovni zamik. Za potrditev začetnega položaja pritisnite gumb Izberi. Po tem bo os Y aktivna. Enako storite, da izberete začetni položaj osi Y.
Zgornji postopek ponovite za položaj ustavitve osi X in Y.
S pomočjo lonca izberite časovni interval med vsakim posnetkom. Vrtenje lončka je razdeljeno na 6 delov v intervalih 1 s, 2 s, 5 s, 10 s, 30 s in 60 s. Intervale lahko spremenite v funkciji setTimeInterval (), kot je prikazano na sliki. Za potrditev pritisnite gumb Izberi.
Servomotorji bodo prišli v začetni položaj in se bodo po časovnem intervalu premaknili za 1 stopinjo.
Zaporedje:
- Nastavite začetni položaj osi X
- Nastavite začetni položaj osi Y
- Nastavite položaj zaustavitve osi X
- Nastavite položaj zaustavitve osi Y
- Nastavite časovni interval
6. korak: Nadaljnje nadgradnje
1) Trenutno lahko zaradi 1 posnetka/stopnjo največ fotografij dobimo 180, saj se servomotorji lahko vrtijo od 0 do 180 stopinj. Dodajanje zobnikov bo povečalo ločljivost. Tako bomo imeli več posnetkov in s tem gladke časovne zamike. Z elektroniko sem zelo zadovoljen, z mehanskimi pa ne toliko. Veselimo se, da ga izboljšamo.
2) Potenciometer lahko zamenjate z vrtljivim dajalnikom.
3) Mogoče brezžični nadzor ?!
Veliko se je treba naučiti
7. korak: Uživajte
Hvala, ker ste vztrajali do konca. Upam, da vam je vsem všeč ta projekt in ste se danes naučili kaj novega. Sporočite mi, če ga naredite sami. Naročite se na moj YouTube kanal za več prihajajočih projektov. Še enkrat hvala!