- Как да се изгради сензор за наклон?
- Тестване на здравето и корекция на параметри
- Какво ви е необходимо, за да стартирате програмата?
Помогнете на развитието на сайта, споделяйки статията с приятели!
Много смартфони могат да задоволят собствениците си с набор от функции, реализирани от вградения акселерометър. Което е електромеханично устройство, което улавя всички промени в работното тяло в пространството. Принципът на действие се основава на измерване на ускорението на движението на инерционната маса вътре в акселерометъра. Въз основа на това работи автоматичен екран, който коригира картината в съответствие с позицията на телефона, брояч на стъпки, приложение за откриване на препятствия, редица приложения за фитнес и др.
Чрез използването на микроконтролер Arduino можете самостоятелно да проектирате сензор за наклон у дома.
За това ви е необходимо:
- ADXL335 акселерометър;
- Дъска Arduino Uno;
- Дисплей за показване на посоката на наклона (в този случай използваме LED версия).
На фигурата по-долу е показана практическа реализация на Arduino сензор за наклон:
Този пример описва инсталирането на акселерометър ADXL335, произведен от Analog Devices, който се свързва със съответните щифтове на микроконтролер Arduino Uno и сигналите от микроконтролера се прехвърлят на дисплея. За да се събере такава схема, е удобно да се използва фабричната прототипна платка, въпреки че сензорът за наклон може да функционира перфектно на всяка друга равна повърхност, която ще използвате като основа. Основната задача е да се приложи основният принцип на сензора, който е показан на блоковата схема по-долу.
Предимството на този модел е инсталирането на Arduino Uno, тъй като този микроконтролер е най-добрият вариант за електронни устройства, контролирани от сигнали от платката. Програмирането и използването му в схемата са достъпни за масите благодарение на простото адаптиране към стандартния компютърен софтуер и възможността за самонастройване и след това корекции в работата им. Следователно, тази опция е идеална както за професионални дизайнери, така и за фенове в областта на роботиката и електронното моделиране.
За да приложи сензора за накланяне, Arduino Uno е избран с причина, той се сглобява на базата на чипа ATmega328 и включва 14 цифрови изхода, 6 аналогови, USB конектор за свързване към програмиращи устройства, ICSP конектор, вход за захранване и е снабден с нулиране на данни или функция за нулиране. Тази платка разполага и с 16 MHz кристален осцилатор, проектиран да поддържа стабилна работа на целия микроконтролер.
Въпреки впечатляващия обем от елементи, Arduino Uno има сравнително малък размер и е сравнително лесен за работа. За да направите това, трябва да свържете платката към компютъра чрез USB вход, за да настроите работните параметри и да ги включите през батерията или чрез адаптера. Програмирането и по-нататъшната работа се извършват в работната среда на Arduino.
Как да се изгради сензор за наклон?
Свързването на акселерометъра към микроконтролера се извършва по следния принцип:
- ST щифтът се свързва към щифта на платката Arduino A0;
- Изходът на преместванията по оста Z е свързан с щифта на платката Arduino A1;
- Изходът на преместванията по оста Y е свързан към щифта на платката Arduino A2;
- Изходът на преместванията по оста Х е свързан към щифта на платката Arduino A3;
- Щифтът GND се свързва с щифта на платката Arduino A4;
- VCC щифтът се свързва с щифта на платката Arduino A5.
След това от Arduino микроконтролера е свързан към дисплея, в тази ситуация, състояща се от група светодиоди. За да се свържат от дъската, се правят изходи от 8 до 12 и 5V захранващ щифт, които се разпределят по логиката на веригата, както следва:
- Pin 5V е обща точка на свързване;
- Осмата е свързана със светодиода, който сигнализира за наклон надясно;
- Деветата е свързана със светодиода, което показва, че сензорът е в центъра на стабилна позиция (за да е различен, правим го в червено, но това не е критично);
- Десетата е свързана със светодиода, сигнализиращ движението на сензора обратно;
- Единадесетият е свързан със светодиода, който сигнализира за наклон наляво;
- Дванадесетият се свързва със светодиода, който сигнализира, че сензорът се накланя напред.
При промяна на позицията на акселерометъра в пространството ще се движи инерционната маса. В резултат на това движение инерционната маса ще доведе до затваряне на контактите и ще даде подходящ сигнал от едно от заключенията. След това, този сигнал ще бъде обработен от микроконтролера Arduino и ще се преобразува в захранващо напрежение към определен светодиод или група светодиоди. На този принцип сензорът за наклон е базиран на Arduino.
В допълнение към горния метод за сглобяване на датчик на макет, можете просто да го приложите на PCB. Пример за такава дъска е показан на фигурата по-долу.
Проверката на точността на връзката се извършва в контролните точки, показани на фигура 3. Напрежението в тях трябва да съответства на данните от таблицата.
Таблица: Нива на напрежение в точките на изпитване
Точка на фигурата | Точково напрежение, V |
T0 | 0 |
T1 | 5 |
T2 | По-ниска, отколкото в t3 |
T3 | По-висока от T2 |
Тестване на здравето и корекция на параметри
След електрическото свързване на елементите на сензора за накланяне програмата се изтегля на устройството чрез компютър, за което се нуждаете:
- Свържете микроконтролера към компютъра чрез USB адаптер;
- Изтеглете програмата (test.ino) от компютъра до Arduino UNO;
- След това отворете софтуерната среда на Arduino, която показва изходния код от съответните акселерометри;
- Нулирайте данните и отбележете числените промени на трите оси (X, Y, Z), които се появяват, когато сензорът е наклонен наляво, надясно.
Ако не сте доволни от позицията, в която светодиодът започва да свети, можете да го коригирате. За да промените ъгъла на наклона, при който датчикът сигнализира за промяна в положението, ще ви е необходимо:
- Оставайки в софтуерната среда на Arduino, започнете да накланяте сензора наляво, когато ъгълът на наклона достигне точката, в която светодиодът трябва да светне, проверете за себе си - това ще бъде стойността на кода „A_max“, лимита на изключване на LED, когато сензорът се движи назад;
- За да регулирате ъгъла на наклона надясно, повторете същата операция, наклонете го до желания ъгъл, маркирайте цифровата стойност за себе си - това ще бъде стойността на кода „A_min“, същата стойност ще спре да гори при връщане в неутралната позиция на сензора;
- Тези стойности трябва да се променят в тялото на програмата tiltdetection.ino, за която се стартира Arduino IDE, предварително записаните данни се въвеждат в линиите “A_max” и “A_min” (Фигура 5);
- След това запазете направените промени и презаредите коригираната програма на микроконтролера.
Сега устройството ще работи с по-наклонен за вас ъгъл. Ето пример за регулиране на ъгъла на движение на сензора наляво и надясно. Но ако желаете, можете да направите същите манипулации, за да промените ъгъла на наклона напред-назад, когато преминавате през които светодиодите ще светнат и изгаснат.
Какво ви е необходимо, за да стартирате програмата?
Тъй като микроконтролерът е програмиран специално за Ардуино IDE платформата, не е необходимо да имате допълнителни езици за програмиране и специални умения за работа с тях, просто свържете Arduino към компютъра. Заслужава да се отбележи, че чипът ATmega328 в Arduino Uno първоначално съдържа предварително инсталиран механизъм за зареждане. Това ви позволява да програмирате устройството без никакви хардуерни програмисти и взаимодействието на софтуерната среда на компютъра и чипа се осъществява чрез протокола STK500.
За да работите със софтуера на микроконтролера, трябва да отидете в менюто „Инструменти“, след това да изберете „Карти“ и да инсталирате Arduino Uno (ако използвате друг модел, инсталирайте го). След това, през Arduino IDE, програмирайте платката към логиката на сензора за накланяне и можете да започнете да използвате готовото устройство. Също така е възможно да се програмира Arduino чрез протокола ICSP, но този метод е по-подходящ за опитни програмисти, а не за начинаещи, затова е много по-лесно да се използва стандартния метод.
Изходен код на програмата:
Сензор за наклон на Arduino (3, 4 KB, изтеглен: 30)