Cuprins:
- Pasul 1: Dar.. Cum?
- Pasul 2: Învățarea modului de declanșare a camerei
- Pasul 3: Moduri de declanșare
- Pasul 4: Scrierea codului pentru declanșare
- Pasul 5: Intervalul clasei {};
- Pasul 6: Manipularea intervalului prin Arduino
- Pasul 7: Afișarea intervalului
- Pasul 8: Puneți totul împreună
- Pasul 9: Adăugarea unui ultim lucru
- Pasul 10: Conținerea mizeriei
- Pasul 11: Sens0rs
- Pasul 12: PoweeEeEer
- Pasul 13: Incintă.. Oare
- Pasul 14: Fin
Video: Pimp My Cam: 14 pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:47
Iată de unde vine acest proiect.
Cu ceva timp în urmă m-am gândit la filmarea unor timelaps-uri. "Cum?" M-am întrebat? Primul răspuns a fost „Ei bine.. doar filmezi ceva și accelerezi și gata”. Dar este chiar atât de simplu? În primul rând, vreau să folosesc DSLR-ul meu pentru asta, iar Nikon D3100 are o limită de timp de 10 minute pentru filmarea videoclipurilor. În al doilea rând, chiar dacă aș avea o cameră fără limită de timp la filmarea videoclipurilor, ce se întâmplă dacă vreau să fac un timelapse foarte lung, cum ar fi 12 ore? Realizez un videoclip 1080p de 12 ore. Mă îndoiesc că bateria va rezista atât de mult și, nu este foarte practic, nu-i așa? Bine, traversând „ideea video de filmare”. Ei bine, atunci sunt poze. A face o fotografie pe cameră la un anumit interval și a sfârși cu sute de imagini pe care le procesez prin software pentru a face un videoclip..?
Părea o idee bună, așa că am decis să-i dau o lovitură. Așa că am ajuns să vreau să fac un dispozitiv în care să pot introduce o perioadă de timp și, pe baza acestei perioade, mi-ar declanșa camera în mod constant. Și, în timp ce ne aflăm, de ce să nu adăugăm alte lucruri, cum ar fi declanșatorul de mișcare și așa mai departe?
Pasul 1: Dar.. Cum?
CUM? este următoarea noastră întrebare căreia îi lipsește un răspuns. Datorită sincronizării, declanșării, senzorilor și astfel de lucruri, nu va fi o surpriză faptul că primul care mi-a venit în minte a fost, desigur, un Arduino. Bine, dar totuși, trebuie să învățăm cum să declanșăm declanșatorul camerei noastre. Hm.. servo lipit la cald de camera corpului? Absolut nu, vrem ca acest lucru să fie silențios și eficient din punct de vedere energetic. Eficiență energetică - de ce? Deoarece vreau să îl fac portabil și să bag o baterie în ea, nu voi fi aproape de o priză de fiecare dată. Deci, cum o declanșăm atunci.. este de fapt destul de simplu.
Nikon știa deja că vei dori o telecomandă și alte accesorii și mi-au spus „bine, le vom oferi toate astea, dar vom face un port special, astfel încât să putem câștiga mai mulți bani pe acele accesorii”, rușine pentru tine Nikon. Portul respectiv (în cazul meu) se numește MC-DC2, iar cel mai ieftin mod de a pune mâna pe el este de a cumpăra un declanșator de la distanță pe eBay pentru 2-3 $ și doar să folosiți cablul.
* Unele alte camere, cum ar fi Canon, au o mufă simplă pentru căști de 3,5 mm, realizată pentru aceeași utilizare, astfel încât să puteți utiliza un cablu de la difuzoare / căști vechi.
Pasul 2: Învățarea modului de declanșare a camerei
Oricum, iată afacerea, portul va avea 3 conexiuni care vor fi de interesul nostru (la sol, focalizare și declanșator) și le veți avea pe capătul cablului dvs. al obturatorului de la distanță recent cumpărat pe care tocmai l-ați distrus. Aceste trei conexiuni sunt importante pentru noi, deoarece dacă scurtăm masa și focalizarea, camera va focaliza la fel cum apăsați butonul de focalizare și apoi, în timp ce conexiunea rămâne, puteți scurta masa și declanșatorul, iar camera va face o fotografie la fel ca și când ai apăsa butonul declanșator de pe cameră.
Puteți testa acest lucru prin scurtcircuitarea firelor sub tensiune de la capătul cablului pentru a identifica care este firul. După ce ați făcut acest lucru, pentru a identifica mai ușor, le vom colora astfel:
Sol = NEGRU; Focus = ALB; Obturator = ROȘU.
Bine, acum trebuie să-l învățăm pe Arduino să facă acest lucru pentru noi.
Pasul 3: Moduri de declanșare
Cel mai simplu lucru pe care îl putem spune unui Arduino să-l trimită în lumea exterioară este semnalul de ieșire digitală. Acest semnal poate fi HIGH (logic '1') sau LOW (logic '0'), de unde denumirea „digital”, sau atunci când este convertit în nucleul său înseamnă: 5V pentru un HIGH logic și 0V pentru un LOW logic.
Ce trebuie să facem cu aceste semnale digitale? Nu putem pur și simplu să le conectăm la cameră și să ne așteptăm ca camera să știe ce vrem. După cum am văzut, trebuie să scurtăm conexiunile camerei pentru ca aceasta să reacționeze, așa că trebuie să folosim semnalele digitale ale Arduino pentru a conduce unele componente care pot scurta terminalele în funcție de aceste semnale electrice pe care le trimitem.. * Așa cum am descris-o, s-ar putea să vă gândiți „Ah, Relee!” dar nu nu. Releul ar face treaba, dar avem de-a face cu curenți atât de mici încât putem folosi cu ușurință magia neagră a semiconductoarelor.
Prima componentă pe care o voi încerca este un optocuplator. Le-am văzut implementate cel mai mult pentru asta și este probabil cea mai bună soluție. Optocuplorul este o componentă electrică cu care controlați circuitul de ieșire în timp ce circuitul de intrare este complet izolat de acesta. Acest lucru se realizează prin transmiterea informațiilor prin lumină, circuitul de intrare aprinde un LED, iar fototranzistorul de pe ieșire comută în consecință.
Deci vom folosi optocuploarea în acest fel: îi spunem Arduino-ului nostru să trimită un HIGH digital pe unul dacă este pin digital, acel semnal este practic de 5V care va conduce LED-ul în interiorul optocuplatorului și fototranzistorul din interiorul acestuia va fi „scurt” are terminale de ieșire atunci când detectează acea lumină și invers, va „detașa” aceste terminale, deoarece nu există lumină de la LED atunci când trimitem un LOW digital prin Arduino.
Practic, acest lucru înseamnă: unul dintre pinii digitali ai Arduino este atașat la pinul ANODE al optocuplatorului, GND-ul Arduino este atașat la CATODĂ, GND-ul camerei este atașat EMITORULUI și FOCUS (sau SHUTTER) la COLECTOR. Consultați fișa tehnică a optocuplorului pe care îl utilizați pentru a găsi acești știfturi pe ale dvs. Folosesc 4N35, astfel încât să puteți urma schema mea orbește dacă nu vă pasă cu adevărat de ceea ce se întâmplă în interiorul optocuplatorului. Inutil să spun că vom avea nevoie de două dintre acestea, deoarece trebuie să controlăm atât FOCUS-ul cât și SHUTTER-ul camerei.
Deoarece am văzut cum funcționează acest lucru, cu un fototranzistor la ieșire, de ce nu îl încercăm numai cu un tranzistor NPN simplu. De data aceasta, vom aduce semnalul digital direct (pe un rezistor) la baza tranzistorului și vom conecta atât camera GND, cât și GND-ul Arduino la emițător și focalizarea / obturatorul camerei la colectorul tranzistorului.
Din nou, vom avea nevoie de două dintre acestea, deoarece controlăm două semnale. Folosesc BC547B și puteți utiliza practic orice NPN pentru acest lucru, deoarece curentul pe care îl controlăm este un singur miliamp.
Ambele componente vor funcționa, dar alegerea optocuplatorului este probabil cea mai bună idee, deoarece este mai sigură. Alegeți tranzistoarele numai dacă știți ce faceți.
Pasul 4: Scrierea codului pentru declanșare
Așa cum am spus mai înainte, vom folosi pinii digitali ai Arduino pentru semnalizare. Arduino le poate folosi atât pentru citirea datelor de pe acesta, fie pentru scrierea acestuia, așa că primul lucru pe care trebuie să-l facem specifică în funcția setup () că vom folosi doi dintre pinii digitali Arduino pentru ieșire astfel:
pinMode (FOCUS_PIN, OUTPUT);
pinMode (SHUTTER_PIN, OUTPUT);
unde FOCUS_PIN și SHUTTER_PIN pot fi definite fie cu „#define NAME value”, fie ca un int înainte de funcția setup (), deoarece s-ar putea să schimbați pinul, astfel încât este mai ușor să schimbați valoarea pe un singur loc, mai degrabă decât pe întregul cod.
Următorul lucru pe care îl vom face este să scriem o funcție trigger () care va face exact asta atunci când este rulată. Voi include doar o poză cu codul. Tot ce trebuie să știți este că mai întâi menținem FOCUS_PIN pe HIGH pentru o anumită perioadă de timp, deoarece trebuie să așteptăm ca camera să se concentreze asupra subiectului pe care îl îndreptăm și apoi doar pentru un moment (în timp ce FOCUS_PIN este încă HIGH)) puneți SHUTTER_PIN pe HIGH doar pentru a face fotografia.
Am inclus, de asemenea, posibilitatea de a sări focalizarea, deoarece nu va fi nevoie de ea dacă filmăm un timelapse de ceva care nu schimbă distanța de la cameră la timp.
Pasul 5: Intervalul clasei {};
Acum, când am declanșat camera, trebuie să transformăm acest lucru într-un intervalometru prin adăugarea funcționalității de manipulare a perioadei de timp dintre două fotografii. Pentru a obține imaginea a ceea ce facem, iată câteva coduri primitive pentru a demonstra funcționalitatea pe care o dorim:
bucla nulă () {
întârziere (interval); trigger (); }
Vreau să pot schimba acest interval de la, să zicem, 5 secunde până la 20-30 de minute. Și iată problema, dacă vreau să o schimb de la 5s la 16s sau ceva între ele, voi folosi incremento de 1s, unde pentru fiecare cerere a mea de a crește intervalul, intervalul ar crește pentru 1s. E grozav, dar dacă vreau să trec de la 5 la 5 minute? Mi-ar lua 295 de cereri până la asta în trepte de 1s, așa că, evident, trebuie să măresc valoarea de creștere la ceva mai mare și trebuie să definesc pe ce valoare exactă a intervalului (pragul) să schimb creșterea. Am implementat acest lucru:
5s-60s: increment de 1s; 60s-300s: increment de 10s; 300s-3600s: increment de 60s;
dar am scris această clasă pentru a fi reglabilă, astfel încât să vă puteți defini propriile praguri și trepte (totul este comentat în fișierul.h, astfel încât să puteți ști unde să modificați ce valori).
Exemplul pe care l-am dat despre manipularea intervalului este evident făcut pe un PC, acum trebuie să-l mutăm pe Arduino. Această întreagă clasă, Interval, este plasată într-un singur fișier de antet care este utilizat pentru a stoca declarațiile și definițiile (nu chiar, dar se poate face în acest exemplu fără a face rău) clasei / funcțiilor noastre. Pentru a introduce acest fișier antet în codul nostru arduino folosim „#include” Interval.h”„ (fișierele trebuie să fie în același director), ceea ce ne asigură că putem folosi funcțiile definite în fișierul antet din codul nostru principal.
Pasul 6: Manipularea intervalului prin Arduino
Acum vrem să putem schimba valoarea intervalului, fie să o creștem, fie să o micșorăm. Deci sunt două lucruri, așa că vom folosi două semnale digitale care vor fi controlate de două butoane. Vom citi în mod repetat valorile pe pinii digitali pe care i-am atribuit butoanelor și vom analiza aceste valori în funcția checkButtons (int, int); care va crește intervalul dacă butonul „sus” este apăsat și va scădea intervalul dacă butonul „jos”. De asemenea, dacă ambele butoane sunt apăsate, va schimba valoarea focalizării variabilei care controlează dacă focalizarea sau nu la declanșare.
O parte din cod ((millis () - prevBtnPress)> = debounceTime) este utilizată pentru debouncing. Modul în care l-am scris, înseamnă că înregistrez primul buton apăsat cu variabila booleană btnPressed și îmi amintesc momentul în care s-a întâmplat. Decât aștept o anumită perioadă de timp (debounceTime) și dacă butonul este încă apăsat, reacționez. De asemenea, face o „pauză” între fiecare apăsare a butonului, astfel încât să evite apăsările multiple în care nu există.
Și în cele din urmă, cu:
if ((millis () - prevTrigger) / 1000> = interval.getVal ()) {
prevTrigger = millis (); trigger (); }
verificăm mai întâi dacă timpul dintre ultima declanșare (prevTrigger) și timpul curent (milis ()) (totul este împărțit la 1000 deoarece este în milisecunde și intervalul este în secunde) este egal sau mai mare decât intervalul vrem și dacă este, ne amintim ora curentă ca ultima dată când am declanșat camera și apoi am declanșat-o.
Odată cu această completare, am făcut practic un intervalometru, dar suntem departe de a fi terminat. Încă nu vedem valoarea intervalometrului. Este afișat doar pe monitorul serial și nu vom fi întotdeauna lângă un computer, așa că acum vom implementa ceva care ne va arăta intervalul pe măsură ce îl schimbăm.
Pasul 7: Afișarea intervalului
Aici introducem afișajul. Am folosit modulul de 4 cifre care este condus de TM1637 pentru că trebuie să-l folosesc doar pentru afișarea timpului și nimic altceva. Cel mai simplu mod de a utiliza aceste module create pentru un Arduino este de a utiliza biblioteci deja create pentru ele. Pe site-ul Arduino există o pagină care descrie cipul TM1673 și un link către o bibliotecă sugerată. Am descărcat această bibliotecă și există două moduri în care puteți introduce aceste biblioteci în IDE-ul Arduino:
- din software-ul Arduino accesați Sketch> Include Library> Add. ZIP library și localizați fișierul.zip pe care tocmai l-ați descărcat
- puteți face ceea ce face Arduino manual și doar dezarhivați biblioteca din folderul în care Arduino stochează bibliotecile, pe Windows: C: / Users / Username / Documents / Arduino / libraries \.
Odată ce ați inclus biblioteca, ar trebui să citiți fișierul „ReadMe” în care veți găsi rezumatul a ceea ce fac diferitele funcții. Uneori, acest lucru nu este suficient, așa că veți dori să mergeți mai adânc și să explorați fișierele antet în care puteți vedea cum sunt implementate funcțiile și ce necesită ca argumente de intrare. Și, bineînțeles, cel mai bun mod de a obține o idee despre ceea ce este capabilă o bibliotecă oferă de obicei un exemplu pe care îl puteți rula din software-ul Arduino prin Fișier> Exemple> Bibliotecă> ExempluNume. Această bibliotecă oferă un exemplu pe care vă recomand să îl rulați pe ecran doar pentru a vedea dacă afișajul dvs. funcționează corect și vă recomand să modificați codul pe care îl vedeți în exemplu și să vedeți singur ce face fiecare funcție și cum reacționează ecranul la aceasta. Am făcut asta și asta mi-am dat seama:
folosește 4 numere întregi nesemnate de 8 biți pentru fiecare cifră (0bB7, B6, B5, B4, B3, B2, B1, B0). Și fiecare dintre acei biți B6-B0 sunt utilizați pentru fiecare segment al unei anumite cifre și dacă bitul este 1, segmentul controlat de acesta se aprinde. Aceste numere întregi sunt stocate într-o matrice numită date . Setarea acestor biți pe afișaj se realizează prin display.setSegments (date); sau puteți accesa în mod natural oricare dintre cifre în special și le puteți seta manual (date [0] = 0b01111001) sau puteți utiliza funcția encodeDigit (int); și convertiți cifra pe care o trimiteți în biți (date [0] = display.encodeDigit (3));. Bitul B7 este utilizat doar de a doua cifră, sau de date [1], pentru activarea colonului.
De vreme ce am scris funcțiile din vrăjitoarea din clasa INTERVAL, pe care le pot obține anumite cifre ale intervalului sub forma M1M0: S1S0, unde M stă minute și S secunde, este firesc să folosesc encodeDigitFunction (int); pentru afișarea intervalului astfel:
displayInterval () {
date [0] = display.encodeDigit (interval.getM1 ()); date [1] = 0x80 | display.encodeDigit (interval.getM0 ()); date [2] = display.encodeDigit (interval.getS1 ()); date [3] = display.encodeDigit (interval.getS0 ()); display.setSegments (date); }
Acum, de fiecare dată când trebuie să afișez Intervalul pe ecran, pot apela funcția displayInterval ().
* Rețineți „0x80 |…” pe date [1]. Este folosit pentru a se asigura că bitul B7 al datelor [1] este întotdeauna 1, astfel încât colonul să se aprindă.
Ultimul lucru despre afișaj, consumul de energie. Este posibil să nu fie de o mare importanță, deoarece nu o vom menține mult timp, dar dacă sunteți interesat să faceți acest lucru și mai prietenos cu bateria, luați în considerare scăderea luminozității afișajului, deoarece acesta atrage de 3 ori mai mult curent pe luminozitatea maximă decât pe cea mai mică.
Pasul 8: Puneți totul împreună
Știm cum să declanșăm camera, cum să manipulăm intervalul și cum să afișăm același interval pe un ecran. Acum trebuie doar să îmbinăm toate aceste lucruri împreună. Vom începe, desigur, de la funcția loop (). Vom verifica în permanență apăsarea butoanelor și vom reacționa în consecință cu butoanele checkButons (int, int) și vom schimba intervalul în consecință și vom afișa intervalul modificat. De asemenea, în buclă () vom verifica în mod constant dacă a trecut suficient timp de la ultima declanșare sau prin apăsarea butonului și vom apela funcția trigger () dacă este necesar. Din motive de consum redus de energie, vom opri afișajul după ceva timp.
Am adăugat un led bicolor, (roșu și verde, catod comun) care se va aprinde verde în timp ce declanșatorul () și se va aprinde roșu împreună cu afișajul dacă focalizarea este activată și va rămâne oprită dacă focalizarea este oprit.
De asemenea, vom migra către un Arduino și mai mic, Pro Mini.
Pasul 9: Adăugarea unui ultim lucru
Până acum.. am creat doar un Intervalometru. Util, dar putem face mai bine.
Iată ce aveam în minte: Intervalometrul o face în mod implicit EXCEPȚIE când atașăm un fel de comutator / senzor extern care apoi oprește intervalometrul și răspunde la intrarea comutatorului / senzorului. Să-i numim senzor, nu va fi neapărat un senzor conectat, dar mă voi referi la asta.
În primul rând, cum detectăm că am atașat senzorul?
Senzorii pe care îi vom folosi / fabrica vor avea nevoie de trei fire care să le conecteze la arduino (Vcc, GND, Signal). Asta înseamnă că putem folosi o mufă audio de 3,5 mm ca mufă de intrare pentru senzor. Și cum rezolvă asta problema noastră? Ei bine, există tipuri de mufe de 3,5 mm „cu întrerupător” care au pini care sunt scurtcircuitați la pinii conectorului dacă nu există conector tată în ele și se detașează când există un conector prezent. Asta înseamnă că avem informațiile bazate pe prezența senzorului. Voi folosi rezistența verticală așa cum se arată (pinul digital va citi HIGH fără senzor și LOW cu senzorul atașat) în imagine sau puteți, de asemenea, să atașați pinul digital la pinul conectorului, care este în mod normal conectat la masă și definiți acel pin digital ca INPUT_PULLUP, acesta va funcționa în orice mod. Deci, acum trebuie să ne modificăm codul, astfel încât să facă tot ce am scris până acum doar dacă senzorul nu este prezent sau când verificarea pinului digital este HIGH. De asemenea, l-am modificat, astfel încât să afișeze „SENS” pe ecran în loc de intervalul care este inutil în acest mod, dar focalizarea este încă relevantă pentru noi, vom păstra funcționalitatea alternării focalizării cu apăsarea ambelor butoane și arătând starea de focalizare prin ledul roșu.
Ce face senzorul de fapt?
Tot ce trebuie să facem este să punem 5V pe pinul de semnal atunci când dorim să declanșăm camera. Asta înseamnă că vom avea nevoie de un alt pin digital al Arduino care să verifice starea acestui pin și când se înregistrează HIGH, tot ce trebuie să facă este să apelați funcția trigger () și camera va face o fotografie. Cel mai simplu exemplu, și cel pe care îl vom folosi pentru a testa dacă funcționează, este un buton simplu cu un rezistor pull-down. Atașați butonul între Vcc al senzorului și pinul de semnal și adăugați un rezistor între pinul de semnal și GND, astfel pinul de semnal va fi pe GND atunci când butonul nu este apăsat, deoarece nu există curent care curge prin rezistor și când butonul este apăsat punem pinul de semnal direct pe HIGH și Arduino citește asta și declanșează camera.
Cu aceasta am încheiat scrierea codului.
* Aș dori să observ câteva probleme pe care le-am avut cu mufele audio pe care le-am folosit. În timp ce introduceți mufa tată în conector, GND și unul dintre ceilalți doi pini s-ar scurta uneori. Acest lucru se întâmplă instantaneu și numai în timp ce introduceți conectorul, dar este încă suficient de lung pentru ca Arduino să înregistreze un scurtcircuit, astfel încât Arduino să repornească. Acest lucru nu se întâmplă atât de des, dar poate fi totuși un pericol și există potențialul de a distruge Arduino, așa că evitați conectorii pe care i-am folosit.
Pasul 10: Conținerea mizeriei
Puteți vedea din imagini că panoul de control devine dezordonat și am terminat, așa că trebuie să transferăm totul pe un panou de perfecționare / PCB. Am optat pentru PCB, deoarece cred că voi face mai multe dintre acestea, astfel încât să le pot reproduce cu ușurință.
Am folosit Eagle pentru proiectarea PCB-ului și am găsit modele pentru toate piesele pe care le-am folosit. Există un lucru minuscul în designul meu pe care mi-aș dori să nu-l fi făcut și care este un tampon de sârmă pentru Vcc-ul afișajului. Am văzut-o prea târziu și nu am vrut să distrug ceea ce am proiectat anterior și am urmat calea leneșă de a adăuga plăcuțe de sârmă și mai târziu de a adăuga sârmă la aceste conexiuni în loc de urme de cupru, așa că aveți în vedere că, dacă utilizați designul meu.
Placa Arduino și afișajul sunt conectate la PCB prin anteturi pin feminine, mai degrabă decât lipite direct pe PCB, din motive aparente. În acest fel, există suficient spațiu pentru alte componente sub afișaj pentru alte componente, cum ar fi rezistențe, tranzistoare și chiar mufa audio.
Am pus butoanele micro care, după proiectare, ar trebui lipite direct, dar ai putea folosi orificiile pentru anteturile pin feminin și să conectezi butoanele cu sârmă dacă vrei să fie montate pe carcasă și nu pe PCB.
De asemenea, vom pune o altă mufă audio feminină pentru a conecta cablul care se conectează la cameră. În acest fel, placa devine mai versatilă, întrucât în acest fel ne vom putea conecta la alte camere cu alți conectori.
Pasul 11: Sens0rs
Să luăm în considerare modalitățile de implementare a senzorului.
Deci, senzorul va avea tensiunea de alimentare de 5V și va trebui să fie capabil să furnizeze un HIGH digital pe pinul său de semnal atunci când dorim să declanșăm camera. Primul lucru care mi-a venit în minte este un senzor de mișcare, PIR să fie specific. Există module vândute pentru Arduino care au acest senzor și fac exact ceea ce ne dorim. Sunt alimentate cu 5V și au un pin de ieșire pe care pun 5V când sunt declanșate, trebuie doar să le conectăm pinii la o mufă audio de 3,5 mm și ne putem conecta direct la placă. Un lucru de reținut este însă că acest senzor are nevoie de timp pentru a se încălzi și pentru a începe să funcționeze corect, așa că nu vă așteptați să funcționeze corect imediat ce îl conectați, acordați-i ceva timp și apoi configurați-l și orice altceva viu intră în gama va declanșa camera.
Din moment ce ne gândim în direcția plăcilor de senzori Arduino deja fabricate, ne vine în minte una, sunetul. Aceste plăci sunt de obicei realizate în așa fel încât să aibă un pin care transmite valoarea analogică a sunetului pe care îl preia și un altul, digital, care scoate un HIGH logic dacă sunetul pe care îl preia traversează un anumit nivel. Putem seta acest nivel astfel încât senzorul să ne ignore vocea, dar să înregistreze o palmă. În acest fel, de fiecare dată când bateți din palme, declanșați camera.
Pasul 12: PoweeEeEer
Cred că cel mai simplu mod de a alimenta acest lucru este cu o bancă de putere și nu extern. Vom păstra funcționalitatea încărcării telefonului sau orice altceva și vom controla fluxul curent către placă printr-un comutator. Vom localiza pinii conectorului USB de ieșire de pe placa de circuit din banca de alimentare, care sunt GND și Vcc (5V) și cablurile de lipit direct pe ele și de acolo în placa noastră.
Pasul 13: Incintă.. Oare
Chiar m-am luptat cu asta. Când am răsucit cutia, am vrut să introduc PCB-ul existent, mi-am dat seama că nu există o modalitate frumoasă de a potrivi totul așa cum am vrut și apoi am decis să proiectez un PCB nou, de data aceasta cu optocuploare. Am vrut să așez PCB-ul chiar sub partea pe care aș face găuri pentru anumite componente care trebuie văzute / atinse. Pentru ca acest lucru să funcționeze, ar trebui să lipesc afișajul și Arduino direct pe placă, fără prize sau anteturi, și acolo se află prima problemă. A fost absolut oribil să depanez orice, deoarece nu eram pregătit să-l lipesc imediat, până când testez că totul funcționează și nu puteam să testez nimic, deoarece nu puteam să-l lipesc și așa mai departe. Nu face asta. Problema cu numărul doi, făcând găuri pe carcasă. Cred că am făcut greșit măsurătorile, deoarece niciuna dintre găurile de pe carcasă nu a fost aliniată cu componentele de pe PCB și a trebuit să le măresc, iar butoanele erau prea înalte pe PCB și ar fi întotdeauna apăsate când așez placa în loc aa și din moment ce am vrut mufele audio pe lateral, a trebuit să măresc și acele găuri pentru a se potrivi mai întâi cu mufele și apoi să cobor tabloul pentru ca ecranul și butoanele să treacă.. rezultatul este teribil.
Am făcut cam orificiile groaznice mai puțin teribile prin suprapunerea vârfului cu niște cartoane subțiri în care am decupat găuri mai rezonabile pentru componente și.. este totuși teribil, dar mai ușor la vedere, cred.
Verdict, vă sugerez să faceți acest lucru cumpărând componente care se montează pe carcasă și nu direct pe PCB. În acest fel, aveți mai multă libertate în plasarea componentelor și mai puține locuri în care să greșiți.
Pasul 14: Fin
Am terminat, dar iată câteva lucruri pe care le-aș fi făcut diferit:
Utilizați mufe audio de 3,5 mm de calitate mai bună. Cele pe care le-am folosit tind să scurtcirculeze terminalele în timp ce introduc sau scoate mufa, ceea ce duce fie la scurtcircuitarea sursei, astfel resetând Arduino, fie doar produce declanșatoare false. Am spus asta în pasul anterior, dar o voi spune din nou.. nu lipiți placa Arduino fără anteturi / soclu, ci doar face orice fel de depanare sau încărcare de cod nou și așa mai departe. De asemenea, cred că ar fi fost util să aibă un led care să semnaleze că este activat, deoarece de multe ori nu pot spune fără să apăs butonul, deoarece ecranul se oprește. Și ultimul lucru, o funcție de pauză. Îmi imaginez că este util când, de exemplu, când conectați senzorul PIR, deoarece are nevoie de timp pentru a se încălzi sau doar când îl mișcați, nu doriți să se declanșeze, astfel încât să puteți întrerupe totul, dar puteți, de asemenea, pur și simplu să rotiți de pe camera deci.. orice.
Un alt lucru îngrijitor este să-l folosești cu velcro pe trepied, deoarece este cel mai probabil să fie folosit acolo.
Simțiți-vă liber să întrebați orice despre acest proiect în comentarii și mi-ar plăcea să știu dacă îl construiți și cum vi s-a dovedit.
Recomandat:
Pimp Lampa LED: 4 pași
Pimp Your LED Lamp: Când cumpărați alimente la supermarketul Lidl din Olanda, soția mea a intrat într-o lampă LED foarte ieftină (2,99 Euro) cu fibre în partea de sus. În această lampă cu LED-uri există trei LED-uri, unul roșu, unul verde și unul albastru care creează un efect simplu, dar frumos
Cum se utilizează pinii GPIO ai unui Raspberry Pi și Avrdude la programul Bit-bang DIMP 2 sau DA PIMP 2: 9 pași
Cum se utilizează pinii GPIO ai unui Raspberry Pi și programul Avrdude la Bit-bang DIMP 2 sau DA PIMP 2: Acestea sunt instrucțiuni pas cu pas despre cum să utilizați un Raspberry Pi și comanda gratuită open-source avrdude la bit-bang -programați un DIMP 2 sau DA PIMP 2. Presupun că sunteți familiarizat cu Raspberry Pi și linia de comandă LINUX. Nu trebuie să
Noțiuni introductive despre ESP32 CAM - Streaming video folosind ESP CAM prin Wifi - Proiectul camerei de securitate ESP32: 8 pași
Noțiuni introductive despre ESP32 CAM | Streaming video folosind ESP CAM prin Wifi | Proiectul camerei de securitate ESP32: Astăzi vom învăța cum să folosim această nouă placă ESP32 CAM și cum o putem codifica și folosi ca o cameră de securitate și să obținem un streaming video prin wifi
Pimp Zombie cu ochi strălucitori: 5 pași (cu imagini)
Pimp Zombie cu ochi strălucitori: Aflați cum să adăugați LED-uri cu efect de ochi strălucitori la o figură existentă. În cazul meu, am folosit o figură de zombie pentru Halloween. Acest lucru este destul de ușor de făcut și nu necesită abilități avansate
Pimp Drive-ul USB: 10 pași (cu imagini)
Pimp Your USB Drive: Îți place să stochezi date. Sigur ca da. Dar când îl scoți pe stradă, oamenii râd de tine! Da, știu, pur și simplu nu te primesc, nu? Poate că trebuie să-i ajuți. Acordați-vă un pic de credit pe stradă, construind un sandbenders-in