- Компоненте потребне:
- Објашњење:
- Објашњење кола:
- Објашњење програмирања:
- Дизајн кола и ПЦБ-а користећи ЕасиЕДА:
- Израчунавање и наручивање узорака на мрежи:
Земљотрес је непредвидива природна катастрофа која наноси штету животима и имовини. То се дешава изненада и не можемо то зауставити, али из тога можемо бити упозорени. У данашње време постоји много технологија које се могу користити за откривање малих подрхтавања и удараца, тако да можемо предузети мере пред неке веће вибрације у земљи. Овде користимо акцелерометар АДКСЛ335 за откривање вибрација пре земљотреса. Акцелерометар АДКСЛ335 изузетно је осетљив на тресење и вибрације заједно са све три осе. Овде градимо детектор земљотреса заснован на Ардуину помоћу акцелерометра.
Ми овде градимо овај детектор земљотреса као Ардуино штит на ПЦБ-у, а такође ћемо приказати и графикон вибрација на рачунару користећи Обраду.
Компоненте потребне:
- Ардуино УНО
- Акцелерометар АДКСЛ335
- ЛЦД 16к2
- Зујалица
- БЦ547 транзистор
- 1к отпорници
- 10К ПОТ
- ЛЕД
- Напајање 9в / 12в
- Берг штапићи мушко / женско
Акцелерометар:
Пин Опис акцелерометра:
- Вцц напајање од 5 волти требало би да се повеже на овај пин.
- Кс-ОУТ Овај пин даје аналогни излаз у к смеру
- И-ОУТ Овај пин даје аналогни излаз у правцу и
- З-ОУТ Овај пин даје аналогни излаз у правцу з
- ГНД Гроунд
- СТ Овај пин се користи за подешавање осетљивости сензора
Такође проверите наше друге пројекте помоћу акцелерометра:
- Пинг Понг игра користећи Ардуино
- Робот под контролом гестова заснован на акцелерометру.
- Систем за узбуњивање незгода на бази Ардуина који користи ГПС, ГСМ и акцелерометар
Објашњење:
Рад овог детектора земљотреса је једноставан. Као што смо раније поменули да смо акцелерометар користили за откривање земљотресних вибрација дуж било које од три осе, тако да акцелерометар кад год се појаве вибрације осети те вибрације и претвори их у еквивалентну АДЦ вредност. Затим ове вредности АДЦ чита Ардуино и приказује их на ЛЦД екрану од 16к2. Ове вредности смо такође приказали на Графу користећи Процессинг. Сазнајте више о акцелерометру пролазећи кроз остале наше пројекте акцелерометра овде.
Прво морамо калибрисати акцелерометар узимајући узорке околних вибрација кад год се Ардуино укључи. Затим треба да одузмемо те узорке вредности од стварних очитавања да бисмо добили стварна очитавања. Ова калибрација је потребна како не би приказивала упозорења у погледу својих нормалних околних вибрација. Након проналаска стварних очитавања, Ардуино упоређује ове вредности са унапред дефинисаним максималним и минималним вредностима. Ако Ардуино открије да су вредности промена веће или мање од унапред дефинисаних вредности било које осе у оба смера (негативна и позитивна), тада Ардуино покреће зујалицу и приказује статус упозорења преко ЛЦД-а 16к2 и такође укључене ЛЕД диоде. Осетљивост детектора земљотреса можемо прилагодити променом унапред дефинисаних вредности у Ардуино коду.
Демонстрациони видео и Ардуино код дати су на крају чланка.
Објашњење кола:
Круг овог земљотресног детектора Ардуино Схиелд ПЦБје такође једноставно. У овом пројекту користили смо Ардуино који чита аналогни напон акцелерометра и претвара их у дигиталне вредности. Ардуино такође покреће зујалицу, ЛЕД, 16к2 ЛЦД и израчунава и упоређује вредности и предузима одговарајуће мере. Следећи део је акцелерометар који открива вибрације земље и генерише аналогне напоне у 3 осе (Кс, И и З). ЛЦД се користи за приказ промене вредности Кс, И и З осе, а такође приказује и поруку упозорења преко ње. Овај ЛЦД је повезан са Ардуином у 4-битном режиму. РС, ГНД и ЕН пинови су директно повезани са 9, ГНД и 8 пинова Ардуина, а остатак од 4 пина података ЛЦД-а, наиме Д4, Д5, Д6 и Д7, су директно повезани са дигиталним пином 7, 6, 5 и 4 Ардуина. Зујалица је повезана на пин 12 Ардуина преко НПН БЦ547 транзистора. 10к пот се такође користи за контролу осветљености ЛЦД екрана.
Објашњење програмирања:
У овом детектору земљотреса Ардуино Схиелд направили смо два кода: један за Ардуино да детектује земљотрес и други за обраду ИДЕ за цртање вибрација земљотреса преко графикона на рачунару. Оба кода ћемо научити један по један:
Ардуино код:
Пре свега, баждарамо акцелерометар с обзиром на његову површину за постављање, тако да неће приказивати упозорења у погледу својих нормалних околних вибрација. У овој калибрацији узимамо неке узорке, а затим их узимамо у просеку и складиштимо у променљивој.
за (инт и = 0; и
Сад кад год акцелерометар одреди очитавања, одузећемо те узорке вредности очитавања тако да може занемарити вибрације околине.
инт валуе1 = аналогРеад (к); // читање к оут инт валуе2 = аналогРеад (и); // читање и вредности инт валуе3 = аналогРеад (з); // читање з из инт кВалуе = ксампле-валуе1; // проналажење промене у к инт иВалуе = исампле-валуе2; // проналажење промене у и инт зВалуе = зсампле-валуе3; // проналажење промене у з / * приказујући промену вредности к, и и з осе преко лцд * / лцд.сетЦурсор (0,1); лцд.принт (зВалуе); лцд.сетЦурсор (6,1); лцд.принт (иВалуе); лцд.сетЦурсор (12,1); лцд.принт (зВалуе); кашњење (100)
Затим Ардуино упоређује те калибрисане (одузете) вредности са унапред дефинисаним ограничењима. И предузмите мере у складу с тим. Ако су вредности веће од предефинисаних вредности, тада ће се огласити звучни сигнал и приказати графикон вибрација на рачунару помоћу Обрада.
/ * упоређивање промене са унапред дефинисаним ограничењима * / иф (кВалуе <минВал - кВалуе> макВал - иВалуе <минВал - иВалуе> макВал - зВалуе <минВал - зВалуе> макВал) {иф (буз == 0) старт = милис (); // старт тајмера буз = 1; // активирано зујање / лед заставица} елсе иф (буз == 1) // активирано застава зујања, а затим упозорење на земљотрес {лцд.сетЦурсор (0,0); лцд.принт („Упозорење о земљотресу“); иф (миллис ()> = старт + бузТиме) буз = 0; }
Обрада кода:
Испод је приложен код за обраду, који можете преузети са доњег линка:
Код за обраду детектора земљотреса
Дизајнирали смо графикон користећи Процессинг (Обрада) за вибрације земљотреса, у којем смо дефинисали величину прозора, јединице, величину фонта, позадину, читање и приказивање серијских портова, отварање изабраног серијског порта итд.
// подесимо величину прозора: и величину фонта ф6 = цреатеФонт ("Ариал", 6, тачно); ф8 = цреатеФонт ("Ариал", 8, тачно); ф10 = цреатеФонт ("Ариал", 10, тачно); ф12 = цреатеФонт ("Ариал", 12, тачно); ф24 = цреатеФонт ("Ариал", 24, тачно); величина (1200, 700); // Попис свих расположивих серијских портова принтлн (Сериал.лист ()); миПорт = нови серијски (ово, "ЦОМ43", 9600); принтлн (миПорт); миПорт.буфферУнтил ('\ н'); позадина (80)
У доњој функцији добили смо податке са серијског порта и издвојили потребне податке, а затим их мапирали са величином графикона.
// издвајање свих потребних вредности све три осе: инт л1 = инСтринг.индекОф ("к =") + 2; Стринг темп1 = инСтринг.субстринг (л1, л1 + 3); л1 = инСтринг.индекОф ("и =") + 2; Стринг темп2 = инСтринг.субстринг (л1, л1 + 3); л1 = инСтринг.индекОф ("з =") + 2; Стринг темп3 = инСтринг.субстринг (л1, л1 + 3); // мапирање вредности к, и и з са димензијама графикона флоат инБите1 = флоат (темп1 + (цхар) 9); инБите1 = мапа (инБите1, -80,80, 0, висина-80); флоат инБите2 = флоат (темп2 + (цхар) 9); инБите2 = мапа (инБите2, -80,80, 0, висина-80); флоат инБите3 = флоат (темп3 + (цхар) 9); инБите3 = мапа (инБите3, -80,80, 0, висина-80); флоат к = мапа (кПос, 0,1120,40, ширина-40);
Након тога смо уцртали јединични простор, максимум и мин ограничења, вредности к, и и з-осе.
// цртање прозора графикона, јединица строкеВеигхт (2); мождани удар (175); Линија (0,0,0,100); тектФонт (ф24); попунити (0,00,255); тектАлигн (ДЕСНО); кмаргин („ЕартхКуаке Грапх Би Цирцуит Дигест“, 200.100); попунити (100); потезна тежина (100); линија (1050,80,1200,80);………………
Након тога графички наришемо вредности помоћу 3 различите боје као што су Плава за вредност к оси, зелена за и осу и з је представљена црвеном бојом.
мождани удар (0,0,255); иф (и1 == 0) и1 = хеигхт-инБите1-схифт; линија (к, и1, к + 2, схифт-хеигхт-инБите1); и1 = висина-уБите1-схифт; мождани удар (0,255,0); иф (и2 == 0) и2 = хеигхт-инБите2-схифт; линија (к, и2, к + 2, схифт-хеигхт-инБите2); и2 = висина-уБите2-схифт; мождани удар (255,0,0); иф (и2 == 0) и3 = хеигхт-инБите3-схифт; линија (к, и3, к + 2, схифт-хеигхт-инБите3); и3 = висина-уБите3-померању;
Такође сазнајте више о обради кроз друге наше процесе обраде.
Дизајн кола и ПЦБ-а користећи ЕасиЕДА:
ЕасиЕДА није само решење на једном месту за шематско хватање, симулацију кола и дизајн ПЦБ-а, они такође нуде јефтину услугу проналажења прототипа и компонената ПЦБ-а. Недавно су покренули услугу снабдевања компонентама где имају велику залиху електронских компонената и корисници могу да наруче потребне компоненте заједно са наруџбом ПЦБ-а.
Док дизајнирате своје склопове и ПЦБ-ове, такође можете учинити своје дизајне кола и ПЦБ-а јавним, тако да их други корисници могу копирати или уредити и од тога имати користи, такође смо учинили јавним читав свој распоред кола и ПЦБ-а за овај штитник индикатора земљотреса за Ардуино УНО, погледајте доњу везу:
хттпс://еасиеда.цом/цирцуитдигест/ЕартхКуаке_Детецтор-380ц29е583б14де8б407д06аб0ббф70ф
Испод је Снимак горњег слоја изгледа ПЦБ-а од ЕасиЕДА-е, можете видети било који слој (горњи, доњи, горњи део, дно итд.) ПЦБ-а избором слоја из прозора „Слојеви“.
Приказ фотографија на ПЦБ такође можете видети помоћу ЕасиЕДА-е:
Израчунавање и наручивање узорака на мрежи:
Након завршетка дизајна ПЦБ-а, можете кликнути на икону излаза за производњу , која ће вас одвести на страницу за наручивање ПЦБ-а. Овде можете прегледати ПЦБ у програму Гербер Виевер или преузети Гербер датотеке са ПЦБ-а. Овде можете одабрати број ПЦБ-а које желите да наручите, колико слојева бакра вам треба, дебљину ПЦБ-а, тежину бакра, па чак и боју ПЦБ-а. Након што одаберете све опције, кликните на „Спреми у корпу“ и довршите наруџбину. Недавно су знатно смањили стопе ПЦБ-а, а сада можете наручити 10 ком двослојних ПЦБ-а величине 10 цм к 10 цм за само 2 долара.
Ево ПЦБ-а које сам добио од ЕасиЕДА-е:
Испод су слике завршног штита након лемљења компонената на ПЦБ: