Мазмұны:

Менің камерам: 14 қадам (суреттермен)
Менің камерам: 14 қадам (суреттермен)

Бейне: Менің камерам: 14 қадам (суреттермен)

Бейне: Менің камерам: 14 қадам (суреттермен)
Бейне: Өлді деп жерлемек болған еді. Бірақ Алланың қалауымен тірілген Бала 2024, Қараша
Anonim
Менің камерамды сіміріңіз
Менің камерамды сіміріңіз

Міне, бұл жоба қайдан келеді.

Біраз уақыт бұрын мен уақыт белдеулерін түсіру туралы ойладым. «Қалай?» Мен өзімнен сұрадым ба? Бірінші жауап: «Сіз бірдеңе түсіріп, оны жылдамдатыңыз, бәрі де осында». Бірақ бұл шынымен де қарапайым ма? Біріншіден, мен бұл үшін DSLR қолданғым келеді, ал менің Nikon D3100 -де бейне түсіру үшін 10 минут уақыт бар. Екіншіден, менде бейнекамера түсіруге уақыт шектеусіз камера болса да, мен 12 сағаттық уақыт сияқты шынымен де ұзақ уақытты жасағым келсе ше? Мен 12 сағаттық 1080p бейне түсіремін. Мен батареяның ұзақ қызмет ететініне күмәнданамын, және бұл өте практикалық емес пе? Жарайды, «бейне идеяны түсіру». Жақсы, онда суреттер бар. Белгілі бір уақыт аралығында камераға фотосурет түсіру мен бейне жасау үшін бағдарламалық қамтамасыз ету арқылы өңдейтін жүздеген суреттермен аяқталу..?

Жақсы идея сияқты көрінді, сондықтан мен оны жіберуді шештім. Осылайша мен уақыт аралығын енгізе алатын құрылғы жасағым келді және сол уақытқа байланысты ол менің камерамды үнемі іске қосады. Біз дайын болған кезде, неге қозғалтқыш сияқты басқа заттарды қоспасқа?

1 -қадам: Бірақ.. Қалай?

Бірақ қалай?
Бірақ қалай?

ҚАЛАЙ? бұл біздің жауапсыз қалған келесі сұрағымыз. Уақыт, триггер, датчиктер және басқа да нәрселерге байланысты, біріншіден, әрине, Arduino ойлағаны таңқаларлық емес. Жарайды, бірақ соған қарамастан біз камерамыздағы ысырманы қалай іске қосуды үйренуіміз керек. Хм.. корпус камерасына ыстық желімделген? Жоқ, біз бұл үнсіз және қуатты үнемдеуді қалаймыз. Қуатты үнемдеу - неге? Мен оны портативті етіп салып, оған батареяны салғым келетіндіктен, мен әрқашан штепсель жанында болмаймын. Сонымен, біз оны қалай іске қосамыз … бұл өте қарапайым.

Nikon сізге қашықтан басқару пульті мен басқа керек -жарақтарды алғыңыз келетінін білді, олар: «Жарайды, біз оларға бәрін береміз, бірақ біз арнайы порт жасаймыз, сол аксессуарлардан көбірек ақша табамыз», - деп ұялдыңыз Nikon. Бұл порт (менің жағдайда) MC-DC2 деп аталады, және қол жеткізудің ең арзан әдісі-eBay-де қашықтан ысырманы 2-3 долларға сатып алу және кабельді пайдалану.

*Кейбір басқа камераларда, мысалы, Canon, 3,5 мм қарапайым құлаққап ұясы бар, сондықтан сіз ескі динамиктерден/құлаққаптардан кабельді қолдана аласыз.

2 -қадам: камераны іске қосуды үйреніңіз

Image
Image
Іске қосу жолдары
Іске қосу жолдары

Қалай болғанда да, міне, мәміле, портта бізді қызықтыратын 3 байланыс болады (жер, фокус және ысырма) және сізде жаңадан сатып алынған қашықтан ысырманың кабелінің соңында сізде болады. Бұл үш байланыс біз үшін маңызды, өйткені егер біз Жерді және Фокусты қысқартсақ, камера фокустау түймесін басқандай фокусталады, содан кейін байланыс үзілсе де, Жер мен Ысырманы қысқартуға болады, ал камера суретке түсіреді. дәл камерадағы ысырма түймесін басқандай.

Сіз оны сымның қайсысы екенін анықтау үшін кабельдің ұшындағы сымдарды қысқарту арқылы тексере аласыз. Сіз мұны жасағаннан кейін, анықтауды жеңілдету үшін біз оларды келесідей бояймыз:

Жер = ҚАРА; Фокус = АҚ; Ысырма = ҚЫЗЫЛ.

Жарайды, енді біз Arduino -ға мұны бізге үйретуіміз керек.

3 -қадам: Іске қосу жолдары

Image
Image

Arduino -ға сыртқы әлемге жіберуге болатын ең қарапайым нәрсе - бұл цифрлық шығыс сигналы. Бұл сигнал ЖОҒАРЫ (логикалық '1') немесе ЛОУ (логикалық '0') болуы мүмкін, сондықтан «цифрлық» атауы, немесе оның негізгі мағынасына айналдырылғанда: логикалық ЖОҒАРЫ үшін 5В, логикалық ЛОУ үшін 0В.

Бұл цифрлық сигналдармен не істеуіміз керек? Біз оларды жай ғана камераға қосып, камерадан біздің не қалайтынымызды білетінін күтуге болмайды. Көріп отырғанымыздай, камераның реакцияға түсуі үшін қосылымдарды қысқарту керек, сондықтан біз жіберетін электр сигналына байланысты олардың терминалдарын қысқарта алатын кейбір компоненттерді басқару үшін Arduino цифрлық сигналдарын қолдануымыз керек.. *Мен қалай суреттеген болсам, сіз «Ах, эстафеталар!» бірақ жоқ жоқ. Эстафета бұл жұмысты орындайды, бірақ біз жартылай өткізгіштердің қара магиясын оңай қолдана алатын шағын токтармен айналысамыз.

Мен тырысатын бірінші компонент - оптикалық қосқыш. Мен олардың бұл үшін ең көп қолданылғанын көрдім және бұл ең жақсы шешім. Optocoupler - бұл электрлік компонент, оның көмегімен сіз шығыс тізбегін басқарасыз, ал кіріс схемасы одан толық оқшауланған. Ақпаратты жарықпен жіберу арқылы қол жеткізіледі, кіріс тізбегі светодиоды қосады, сәйкесінше шығыс қосқыштарындағы фототранзистор.

Біз оптикалық қосқышты осылай қолданамыз: біз Arduino -ға цифрлық түйреуіштер бар болса, оған бірлікке цифрлық ЖОҒАРЫ жіберуін айтамыз, бұл сигнал іс жүзінде 5В, ол оптикалық қосқыштың ішіндегі жарықдиодты және оның ішіндегі фототранзисторды «қысқа» етеді. ол жарықты анықтаған кезде оның шығыс терминалдары, және керісінше, ол терминалдарды «ажыратады», өйткені біз Arduino арқылы сандық LOW жіберген кезде жарық диодты жарық жоқ.

Іс жүзінде бұл дегеніміз: Arduino цифрлық түйреуіштерінің бірі оптикалық қосқыштың ANODE түйреуішіне, Arduino GND CATHODE -ге, камераның GND -і эмитентке және фокусқа (немесе SHUTTER) коллекторға бекітілген. Бұл түйреуіштерді өзіңізден табу үшін сіз қолданатын оптикалық қосқыштың мәліметтер парағына жүгініңіз. Мен 4N35 қолданамын, сондықтан сіз оптикалық қосқыштың ішінде не болып жатқанына мән бермесеңіз, менің схемамды соқыр түрде орындауға болады. Бізге бұлардың екеуі қажет болады деп айтудың қажеті жоқ, өйткені бізге камераның ФОКУСЫ мен ЫСЫМЫН басқару қажет.

Біз бұл қалай жұмыс істейтінін көргендіктен, шығысындағы фототранзистормен, неге біз оны қарапайым NPN транзисторымен ғана сынап көрмейміз. Бұл жолы біз цифрлық сигналды тікелей (резистор арқылы) транзистордың негізіне жеткіземіз және камераның да, Arduino -ның GND -ін де эмитентке және камераның фокусын/ысырмасын транзистордың коллекторына қосамыз.

Тағы да, бізге олардың екеуі қажет, өйткені біз екі сигналды басқарамыз. Мен BC547B қолданамын және сіз бұл үшін кез келген NPN қолдана аласыз, өйткені біз бақылайтын ток бір миллиамп.

Бұл компоненттердің екеуі де жұмыс істейді, бірақ оптикалық қосқышты таңдау жақсы болар, себебі ол қауіпсіз. Егер сіз не істеп жатқаныңызды білсеңіз ғана транзисторларды таңдаңыз.

4 -қадам: Іске қосу кодын жазу

Image
Image
Триггерлік кодты жазу
Триггерлік кодты жазу

Жоғарыда айтқанымыздай, біз сигнал беру үшін Arduino цифрлық түйреуіштерін қолданамыз. Arduino бұны екеуін де деректерді оқу үшін немесе жазу үшін қолдана алады, сондықтан біз алдымен Arduino сандық түйреуіштерінің екеуін шығыс үшін қолданатын setup () функциясында көрсетуіміз керек:

pinMode (FOCUS_PIN, OUTPUT);

pinMode (SHUTTER_PIN, OUTPUT);

мұндағы FOCUS_PIN мен SHUTTER_PIN «#АТЫҢ АТАУ мәнімен» немесе int («) функциясының алдында int ретінде анықталуы мүмкін, себебі сіз түйреуішті өзгерте аласыз, сондықтан мәнді бүкіл кодқа емес, бір нүктеге өзгерту оңай.

Келесі нәрсе - іске қосылған кезде дәл осылай істейтін trigger () функциясын жазу. Мен жай ғана коды бар суретті қосамын. Сіз білуіңіз керек, алдымен біз FOCUS_PIN -ді белгілі бір уақыт бойы ЖОҒАРЫ ұстап тұрамыз, себебі біз камераның назар аударып отырған объектіге назар аударуын күтеміз, содан кейін бір сәтке ғана (FOCUS_PIN әлі жоғары болса да)) суретке түсіру үшін SHUTTER_PIN кодын HIGH қойыңыз.

Мен сонымен қатар фокустауды өткізіп жіберу мүмкіндігін енгіздім, өйткені егер біз уақыт өте келе камерадан қашықтығын өзгертпейтін нәрсенің таймапсын түсіретін болсақ, оның қажеті болмайды.

5 -қадам: сынып аралығы {};

Image
Image
Arduino арқылы интервалды манипуляциялау
Arduino арқылы интервалды манипуляциялау

Енді біз камераны екі кадр арасындағы уақыт кезеңін басқару функциясын қосу арқылы интервалометрге айналдыру керек жолдан шығардық. Біз не істеп жатқанымыздың суретін алу үшін, біз қалаған функционалдылықты көрсету үшін бірнеше қарапайым кодты аламыз:

void loop () {

кідіріс (интервал); триггер (); }

Мен бұл аралықты 5 секундтан 20-30 минутқа дейін өзгерте аламын. Мәселе мынада, егер мен оны 5 -тен 16 -ға дейін өзгерткім келсе немесе олардың арасындағы кез келген нәрсені 1с -ке көбейтуді қолданатын боламын, онда менің сұранымның әрқайсысы аралықты ұлғайту үшін интервал 1с -қа артады. Бұл керемет, бірақ мен 5 секундтан 5 минутқа дейін барғым келсе ше? Бұл маған 1 секундтық қадаммен 295 сұранысты қажет етеді, сондықтан мен өсу мәнін үлкен нәрсеге дейін көбейтуім керек және мен нақты интервалдық мәнге (шекті) қадамды өзгерту керектігін анықтауым керек. Мен мұны іске асырдым:

5-60-шы жылдар: 1-ші қадам; 60s-300s: 10s қадамы; 300s-3600s: 60s қадамы;

бірақ мен бұл сыныпты реттелетін етіп жаздым, осылайша сіз өзіңіздің табалдырықтарыңыз бен қадамдарыңызды анықтай аласыз (барлығы.h файлында түсіндірілген, осылайша сіз қай мәндерді өзгерту керектігін біле аласыз).

Мен берген интервалды манипуляциялау туралы мысал компьютерде жасалғаны анық, енді оны Arduino -ға көшіру керек. Бұл бүкіл класс, Interval, біздің сыныптың/функциялардың декларациялары мен анықтамаларын сақтау үшін пайдаланылатын бір тақырыптық файлдың ішінде орналасқан (шын мәнінде емес, бірақ бұл мысалда оны зиян келтірместен жасауға болады). Бұл тақырып файлын arduino кодымен таныстыру үшін біз «#include» Interval.h «» қолданамыз (файлдар бір каталогта болуы керек), бұл біздің негізгі кодтағы тақырып файлында анықталған функцияларды қолдана алатындығымызға сенімді.

6 -қадам: Arduino арқылы интервалды манипуляциялау

Image
Image
Arduino арқылы интервалды манипуляциялау
Arduino арқылы интервалды манипуляциялау
Arduino арқылы интервалды манипуляциялау
Arduino арқылы интервалды манипуляциялау

Енді біз интервалдың мәнін өзгерте аламыз, не көбейтеміз, не азайтамыз. Бұл екі нәрсе, сондықтан біз екі түймемен басқарылатын екі сандық сигналды қолданамыз. Біз түймелерге тағайындалған сандық түйреуіштердегі мәндерді бірнеше рет оқимыз және сол мәндерді checkButtons (int, int) функциясына талдаймыз; егер «жоғары» батырмасы басылса, интервал ұлғаяды, ал «төмен» батырмасы аралықты төмендетеді. Сондай -ақ, егер екі түйме де басылса, ол іске қосылған кезде фокустауды немесе алмауды басқаратын айнымалы фокустың мәнін өзгертеді.

Кодтың бір бөлігі ((millis () - prevBtnPress)> = debounceTime) есептен шығару үшін қолданылады. Мен оны қалай жазғаным, btnPressed логикалық айнымалысы бар бірінші түймені тіркеуді және оның болған уақытын есте сақтауды білдіреді. Мен белгілі бір уақытты күтемін (debounceTime) және егер түйме әлі басылса, мен жауап беремін. Ол сонымен қатар түймені әр басу арасында «кідіріс» жасайды, сондықтан ол жоқ жерде бірнеше рет басуды болдырмайды.

Және, ақырында, мыналармен:

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

prevTrigger = millis (); триггер (); }

біз алдымен соңғы триггер (prevTrigger) мен ағымдағы уақыт (миллис ()) арасындағы уақыттың мөлшерін тексереміз (барлығы 1000 -ға бөлінеді, себебі ол миллисекундта және интервал секундпен есептеледі) интервалға тең немесе үлкен Біз қалаймыз, егер біз дәл қазіргі уақытты камераны соңғы рет іске қосқан кезде еске түсіреміз, содан кейін оны іске қосамыз.

Осының арқасында біз интервалометр құрдық, бірақ біз әлі аяқтаған жоқпыз. Біз интервалометрдің мәнін әлі де көрмейміз. Ол тек сериялық мониторда көрсетіледі және біз әрқашан компьютердің жанында бола бермейміз, сондықтан біз оны өзгерткен кезде интервалды көрсететін нәрсені қолданамыз.

7 -қадам: аралықты көрсету

Image
Image
Аралықты көрсету
Аралықты көрсету
Аралықты көрсету
Аралықты көрсету
Аралықты көрсету
Аралықты көрсету

Бұл жерде біз дисплеймен таныстырамыз. Мен TM1637 басқаратын 4 таңбалы модульді қолдандым, себебі мен оны тек уақытты көрсету үшін пайдалануым керек, басқа ештеңе жоқ. Arduino үшін жасалған бұл модульдерді қолданудың ең оңай жолы - олар үшін дайын кітапханаларды пайдалану. Arduino сайтында TM1673 чипін сипаттайтын бет және ұсынылған кітапханаға сілтеме бар. Мен бұл кітапхананы жүктедім және бұл кітапханаларды Arduino IDE -мен таныстырудың екі әдісі бар:

  1. Arduino бағдарламалық жасақтамасынан Sketch> Кітапхананы қосу>. ZIP кітапханасын қосу тармағына өтіп, жаңа жүктелген.zip файлын табыңыз.
  2. Сіз Arduino қолмен жасай алатын нәрсені жасай аласыз және Windows жүйесінде Arduino кітапханалар сақталатын қалтадағы кітапхананы аша аласыз: C: / Users / Username / Documents / Arduino / librarys \.

Кітапхананы енгізгеннен кейін сіз «ReadMe» файлын оқуыңыз керек, онда сіз әр түрлі функциялардың қысқаша мазмұнын таба аласыз. Кейде бұл жеткіліксіз, сондықтан сіз біршама тереңірек барып, тақырыптардың файлдарын зерттегіңіз келеді, онда сіз функциялардың қалай орындалатынын және кіріс аргументі ретінде не қажет екенін көре аласыз. Және, әрине, кітапхананың қабілеттілігін сезінудің ең жақсы жолы, әдетте, Arduino бағдарламалық жасақтамасынан Файл> Мысалдар> LibraryName> ExampleName арқылы іске қосуға болатын мысалды ұсынады. Бұл кітапхана сіздің дисплейіңіздің дұрыс жұмыс істеп тұрғанын білу үшін дисплейде іске қосуды ұсынатын бір мысалды ұсынады, ал мен сізге мысалда көрсетілген кодты түзетуге және әр функцияның не істейтінін және дисплейдің қалай әрекет ететінін өзіңіз көруге кеңес беремін. ол Мен осылай жасадым және мен түсіндім:

ол әр цифр үшін 8 биттен тұратын 4 белгісіз бүтін сандарды қолданады (0bB7, B6, B5, B4, B3, B2, B1, B0). Және В6-В0 разрядтарының әрқайсысы белгілі бір цифрдың әрбір сегменті үшін қолданылады, ал егер бит 1 болса, онда басқарылатын сегмент жанады. Бұл бүтін сандар data деп аталатын массивте сақталады. Бұл биттерді дисплейге орнату display.setSegments (data) арқылы жүзеге асады; немесе кез келген цифрға табиғи түрде қол жеткізуге және оларды қолмен орнатуға болады (деректер [0] = 0b01111001) немесе encodeDigit (int) функциясын қолдануға болады; және оны жіберетін цифрды биттерге түрлендіріңіз (data [0] = display.encodeDigit (3));. В7 биті қос нүктені қосу үшін тек екінші цифрмен немесе деректермен [1] қолданылады.

Мен интерфейстің белгілі бір цифрларын M1M0 түрінде алуға болатын INTERVAL класының сиқыршысында функцияларды жазғандықтан, онда M минут және S секундтарда тұрады, сондықтан encodeDigitFunction (int) қолданамын; интервалды келесідей көрсету үшін:

displayInterval () {

деректер [0] = display.encodeDigit (interval.getM1 ()); деректер [1] = 0x80 | display.encodeDigit (interval.getM0 ()); деректер [2] = display.encodeDigit (interval.getS1 ()); деректер [3] = display.encodeDigit (interval.getS0 ()); display.setSegments (деректер); }

Енді дисплейде интервалды көрсету қажет болған кезде мен displayInterval () функциясын шақыра аламын.

*Деректердегі «0x80 |…» белгісін [1] ескеріңіз. Ол деректердің [1] B7 битінің әрқашан 1 болуын қамтамасыз ету үшін қолданылады, осылайша қос нүкте жанады.

Дисплей туралы соңғы нәрсе, қуат тұтыну. Бұл маңызды емес болуы мүмкін, өйткені біз оны ұзақ уақыт бойы ұстамаймыз, бірақ егер сіз оны батареямен жұмыс жасауды қызықтыратын болсаңыз, дисплейдің жарықтығын төмендетіңіз, себебі ол максималды жарықтыққа 3 есе көп ток әкеледі. ең төменге қарағанда.

8 -қадам: Барлығын біріктіру

Барлығын біріктіру
Барлығын біріктіру

Біз камераны қалай іске қосу керектігін, аралықты қалай басқаруға болатынын және сол аралықты дисплейде қалай көрсету керектігін білеміз. Енді біз осының бәрін біріктіруіміз керек. Біз, әрине, loop () функциясынан бастаймыз. Біз үнемі түймелердің басылуын тексереміз және сәйкесінше checkButtons (int, int) арқылы әрекет етеміз және интервалды сәйкесінше өзгертеміз және өзгертілген аралықты көрсетеміз. Сондай -ақ, циклда () біз соңғы іске қосудан немесе түймені басудан жеткілікті уақыт өткенін үнемі тексеріп отырамыз және қажет болған жағдайда trigger () функциясын шақырамыз. Қуатты аз тұтыну үшін дисплейді біраз уақыттан кейін өшіреміз.

Мен қос түсті светодиодты (Қызыл және Жасыл, жалпы катод) қостым, ол триггер () кезінде жасыл болып жанады, егер ол фокусталса, ол дисплеймен бірге қызыл болып жанады, ал фокустау өшірулі болады. өшірулі

Сонымен қатар, біз одан да кішірек Arduino, Pro Mini -ге көшетін боламыз.

9 -қадам: Соңғы нәрсені қосыңыз

Соңғы нәрсені қосу
Соңғы нәрсені қосу
Соңғы нәрсені қосу
Соңғы нәрсені қосу
Соңғы нәрсені қосу
Соңғы нәрсені қосу

Әзірге.. біз тек интервалометр құрдық. Пайдалы, бірақ біз жақсырақ жасай аламыз.

Мен мынаны ойладым: интервалометр біз сыртқы қосқышты/сенсорды қосқанда, интервалометрді тоқтатып, қосқыштың/сенсордың кірісіне жауап бергенде ғана ӘДЕБИ бойынша жасайды. Оны сенсор деп атайық, ол міндетті түрде қосылған сенсор емес, бірақ мен оны осылай атаймын.

Біріншіден, сенсорды орнатқанымызды қалай анықтауға болады?

Біз қолданатын/жасайтын сенсорларға ардуиноға қосатын үш сым қажет болады (Vcc, GND, Signal). Бұл 3,5 мм аудио ұяны сенсорға кіріс ұясы ретінде қолдануға болатынын білдіреді. Және бұл біздің проблеманы қалай шешеді? Егер қосқыш жоқ болса, коннектордың түйреуіштеріне қысылған түйреуіштері бар 3,5 мм «қосқышы бар» ұяның түрлері бар және олар коннектор болған кезде ажыратылады. Бұл сенсордың болуына негізделген ақпаратқа ие екенімізді білдіреді. Мен суретте көрсетілгендей тартылатын резисторды қолданамын (цифрлық түйреуіш сенсорсыз ЖОҒАРЫ болады, ал сенсор бекітілгенде LOW төмен болады) немесе сіз цифрлық түйреуішті әдетте коннектордың түйреуішіне бекіте аласыз. жерге қосылған және INPUT_PULLUP деп сандық түйреуішті анықтаңыз, ол кез келген жағдайда жұмыс істейді. Енді біз кодты түзетуіміз керек, сондықтан сенсор болмаған кезде немесе цифрлық түйреуішті тексеру жоғары болса ғана осы уақытқа дейін жазғанымыздың бәрін жасайды. Мен оны да түзеттім, сондықтан дисплейде бұл режимде пайдасыз интервалдың орнына «SENS» көрсетіледі, бірақ фокустау біз үшін әлі де маңызды, біз фокусты екі түймені басу арқылы ауыстыру функциясын сақтайтын боламыз. қызыл фокус арқылы фокус күйін көрсетеді.

Сенсор шынымен не істейді?

Біз камераны іске қосқымыз келген кезде сигнал сигналына 5В қосу керек. Бұл бізге түйреуіштің күйін тексеретін Arduino -ның тағы бір цифрлық түйреуішін қажет ететінін білдіреді және ол HIGH тіркелген кезде, trigger () функциясын шақыру жеткілікті, ал камера суретке түсіреді. Ең қарапайым мысал, және бұл жұмыс істейтінін тексеру үшін біз төмен түсетін резисторы бар қарапайым түйме. Сенсордың Vcc пен сигналдың түйреуіші арасындағы түймені бекітіңіз және сигналдың түйреуіші мен GND арасындағы резисторды қосыңыз, осылайша түйме басылмаған кезде сигнал түйрегіші GND болады, өйткені резистор арқылы ток өтпейді. батырмасы басылады, біз сигналдың түйреуішін HIGH -ге тікелей қоямыз және Arduino оны оқиды және камераны іске қосады.

Осымен біз кодты жазуды аяқтадық.

*Мен қолданған аудио ұяшықтармен байланысты кейбір мәселелерді атап өткім келеді. Еркек ұяны қосқышқа қосқанда, GND және басқа екі түйреуіштің біреуі кейде қысқа болады. Бұл бірден және тек коннекторды қосқанда болады, бірақ Arduino қысқа тіркеуге жеткілікті ұзақ, сондықтан Arduino қайта іске қосылады. Бұл жиі болмайды, бірақ әлі де қауіпті болуы мүмкін және Arduino -ны бұзу мүмкіндігі бар, сондықтан мен қолданған қосқыштардан аулақ болыңыз.

10 -қадам: Хабарламаны қамту

Хабарламаның құрамында
Хабарламаның құрамында
Хабарламаның құрамында
Хабарламаның құрамында
Хабарламаның құрамында
Хабарламаның құрамында
Хабарламаның құрамында
Хабарламаның құрамында

Сіз суреттерден тақтаның бүлініп жатқанын көре аласыз және біз мұны аяқтадық, сондықтан бәрін перфордалық тақтаға/ПХД -ге ауыстыру керек. Мен ПХД -ге бардым, өйткені мен оларды көбейтемін деп ойлаймын, осылайша мен оларды оңай шығарамын.

Мен ПХД жасау үшін Eagle қолдандым және мен қолданған барлық бөлшектердің дизайнын таптым. Менің дизайнымда мен жасамаған бір кішкентай нәрсе бар - бұл дисплейдің Vcc сымдық жастықшасы. Мен мұны тым кеш көрдім, мен бұрын жобалаған нәрсені бүлдіргім келмеді, сымдық жастықшаларды қосудың жалқау әдісімен жүрдім, кейіннен мыс іздерінің орнына осы қосылыстарға сым қосуға тура келді, егер сіз шахтаның дизайнын қолдансаңыз..

Белгілі себептермен Arduino тақтасы мен дисплей ПХД -ге тікелей ПХД -ге дәнекерлеуге емес, аналық түйреуіштер арқылы қосылады. Осылайша, дисплей астында резисторлар, транзисторлар және тіпті аудио ұясы сияқты басқа компоненттер үшін басқа компоненттер үшін көп орын бар.

Мен микро түймелерді қойдым, олар конструкциясы бойынша тікелей дәнекерленуі керек, бірақ егер сіз түйреуіштерді PCB -ге емес, корпусқа орнатқыңыз келсе, түйреуіштер үшін тесіктерді қолдана аласыз және түймені сыммен байланыстыра аласыз.

Сондай -ақ, камераға қосылатын кабельді қосу үшін тағы бір әйел дыбыс ұясын саламыз. Осылайша тақта әмбебап болады, осылайша біз басқа камераларға басқа коннекторлармен қосыла аламыз.

11 -қадам: Sens0rs

Image
Image
Sens0rs
Sens0rs

Сенсорды іске асыру жолдарын қарастырайық.

Осылайша, сенсор 5В кернеуге ие болады, және біз камераны іске қосқымыз келген кезде оның сигналдық түйреуішінде жоғары сандық ЖЖҚ қамтамасыз ете алады. Менің ойыма келген бірінші нәрсе - бұл қозғалыс сенсоры, нақты болу үшін PIR. Arduino үшін сатылатын модульдер бар, оларда сенсоры бар және біз қалаған нәрсені жасайды. Олар 5В қуатымен жұмыс істейді және олар іске қосылған кезде 5В қосатын шығыс түйреуішке ие, біз оның түйреуіштерін 3,5 мм аудио ұясына жалғауымыз керек, біз оны тікелей тақтаға қосамыз. Айта кету керек, бұл сенсорға қыздыру мен дұрыс жұмыс істеу үшін уақыт қажет, сондықтан оны розеткаға қосқаннан кейін оның дұрыс жұмыс істейтінін күтпеңіз, оған біраз уақыт беріңіз, содан кейін оны орнатыңыз, ал тірі кез келген нәрсе оның ішіне кіреді. диапазоны камераны іске қосады.

Біз қазірдің өзінде дайын Arduino сенсорлық тақталары туралы ойлап отырғандықтан, тағы біреуі есте қалады. Бұл тақталар әдетте олар қабылдайтын дыбыстың аналогтық мәнін шығаратын бір түйреуішке ие болады, ал егер дыбыс белгілі бір деңгейден өтсе, логикалық ЖОҒАРЫ шығатын басқа сандық. Біз сенсор біздің дауысымызды елемейтін, бірақ шапалақты тіркейтін деңгейге қоя аламыз. Осылайша, сіз кез келген уақытта шапалақтаған кезде камераны іске қосасыз.

12 -қадам: PoweeEeEer

PoweeEeEer
PoweeEeEer
PoweeEeEer
PoweeEeEer

Менің ойымша, бұл нәрсені сырттан емес, қуат банкімен қамтамасыз ету. Біз телефонды немесе кез келген нәрсені зарядтау функциясын сақтаймыз және қосқыш арқылы тақтаға ағымды басқарамыз. Біз шығыс USB коннекторының түйреуіштерін GND және Vcc (5V) қоректендіру тақтасында және дәнекерлеу сымдары арқылы олардың тақтасына орналастырамыз.

13 -қадам: қоршау.. Қалай

Қоршау.. Мейлі
Қоршау.. Мейлі
Қоршау.. Мейлі
Қоршау.. Мейлі
Қоршау.. Мейлі
Қоршау.. Мейлі

Мен бұнымен шынымен күрестім. Қолданыстағы ПХД -ді салғым келетін қорапшаға кіргенде, мен бәрін қалағанымша орналастырудың жақсы әдісі жоқ екенін түсіндім, содан кейін мен жаңа ПХД -ны конструкциялауды шештім, бұл жолы оптикалық қосқыштармен. Мен ПХД -ны көруге/ұстауға қажет кейбір компоненттерге тесіктер бұрғылайтын жақтың астына қойғым келді. Бұл жұмыс істеуі үшін мен дисплей мен Arduino -ны тікелей тақтаға, розеткаларсыз немесе тақырыптарсыз дәнекерлеуім керек еді, және бірінші мәселе осында. Кез келген нәрсенің ақауларын жою өте қорқынышты болды, өйткені мен оны дәнекерлеуге дайын болмадым, бәрі жұмыс істейтінін тексермейінше, мен ештеңені тексере алмадым, өйткені мен оны дәнекерлей алмадым және т.б. мұны жасама. Проблема нөмірлері, корпуста тесіктер жасау. Менің ойымша, мен өлшемдерді қате қабылдадым, себебі корпустағы саңылаулардың ешқайсысы ПХД компоненттеріне сәйкес келмеді, мен оларды үлкейтуге тура келді және ПХД -да түймелер тым жоғары болды, мен тақтаны орнына қойған кезде олар әрқашан басылатын болады. ааа мен аудио ұяшықтардың бүйірінде болуын қалағандықтан, алдымен тесіктерге сәйкес келу үшін сол тесіктерді үлкейтуге тура келді, содан кейін дисплей мен түймелердің өтуі үшін тақтаны төмендету керек болды … нәтижесі қорқынышты.

Мен қорқынышты тесіктерді аздап қорқынышты етіп жасадым, олардың үстіңгі жағын жіңішке картонмен қаптап қойдым, онда мен компоненттер үшін ақылға қонымды тесіктерді кесіп алдым, бірақ бұл менің ойымша, қорқынышты, бірақ оңай.

Шешім, мен мұны ПХД -ге емес, корпусқа бекітілген компоненттерді сатып алу арқылы жасауды ұсынамын. Осылайша сіз компоненттерді орналастыруда көбірек еркіндікке ие боласыз және қателесетін орындар аз болады.

14 -қадам: фин

Image
Image
Фин
Фин

Мен аяқтадым, бірақ мен басқаша жасаған болар едім:

3,5 мм жоғары сапалы аудио ұяларды пайдаланыңыз. Мен қолданғандар ұяны салғанда немесе алып тастағанда терминалдарды қысқартады, нәтижесінде қорғаныс қысқарады, осылайша Arduino қалпына келтіріледі немесе жалған триггерлер пайда болады. Мен мұны алдыңғы қадамда айтқанмын, бірақ мен тағы да айтамын.. Arduino тақтасын тақырыпсыз/розеткасыз дәнекерлемеңіз, ол кез келген ақаулықтарды жоюды немесе жаңа кодты жүктеуді қиындатады. Сондай -ақ, менің ойымша, бұл заттың қосылғанын көрсететін сигналды беру пайдалы болар еді, себебі мен дисплей өшкеннен бері түймені баспай айта алмаймын. Және соңғы нәрсе - кідірту функциясы. Менің ойымша, бұл пайдалы болады деп ойлаймын, мысалы, PIR сенсорын қосқанда, оны қыздыру үшін уақыт қажет, немесе оны жылжытқанда оны іске қосқыңыз келмейді, сондықтан сіз бәрін тоқтата аласыз, бірақ сіз жай ғана бұрыла аласыз. камерадан сосын.. бәрібір.

Тағы бір ұқыпты нәрсе - штативте Velcro, себебі ол сол жерде қолданылады.

Түсініктемелерде осы жоба туралы кез келген нәрсені сұраудан тартынбаңыз, егер сіз оны салсаңыз және ол сізге қалай болғанын білгім келеді.

Ұсынылған: