"Arduino Micro" Башта камери: 4 кроки

"Arduino Micro" Башта камери: 4 кроки

Зміст:

Anonim

У мене є камера на полюсі, що я використовую для відеополювання на метеор. Однією з проблем, яку я мав, було переконатися, що вежа знаходиться на вершині. Вона повинна бути дійсно рівною, щоб переконатися, що весь горизонт видно об'єктивом риб'ячого очей на камері.

Я бачив різні маленькі інструменти вирівнювання для веж, але жоден з них не був простим у використанні. Я подумав, що я можу зробити більше, щоб він відповідав моїм потребам!

Також після сильного вітру і штормів. Іноді вежа буде отримувати не-рівень, і я повинен був би принести його вниз і прикріпити моє обладнання для вирівнювання. Що мені потрібно було рішення, яке може бути встановлено на вершині вежі в корпусі камери, що я міг бачити з землі, як я зробив вирівнювання веж.

У мене був Arduino Micro, з яким я грав і деякі датчики з комплекту Parallax BoeBot. у ньому я мав компас і датчик нахилу.

Я вирішив побачити, чи можу я побудувати простий електронний рівень міхура, щоб тримати на башті і погляді з землі, коли мені потрібно було вирівняти камеру.

У моєму додатку я запускаю лінії електропередач до нижньої частини вежі і просто підключити батарею, коли мені потрібно використовувати рівень.

У цій інструкції я хотів би показати вам, як створити простий ардуїно-базований "вирівнюючий міхур"

Постачання:

Крок 1. Необхідні деталі

Частини, необхідні для цього проекту:

1. Arduino Micro

2.Акселерометр 2125

3. Малий макет

4. Кілька довжин дроту.

5. 4 червоні світлодіоди та один зелений світлодіод

Крок 2: Маленька теорія операції.

Трохи про те, як працює датчик нахилу!

Всередині маленької коробки на датчику знаходиться крихітний джерело тепла. на кожній стороні розташовані невеликі теплові датчики, які можуть виявляти тепло, яке генерується посередині блоку. у міру нахилу датчика. Це тепло піднімається до одного з датчиків і, порівнюючи значення, пристрій може відчувати, під яким кутом він нахиляється.

Arduino зчитує ці дані та перетворює їх у вимірювання X Y, яке може бути використано для освітлення світлодіодів для позначення напрямку нахилу.

Крок 3: Підключіть все!

Помістіть Arduino Micro на макет і переконайтеся, що залиште місце для сенсора та світлодіодів.

Ви можете розбити світлодіоди на окрему "дисплей" плату, якщо це необхідно.

Підключіть m2125 до Arduino Micro наступним чином.

Цифровий Pin 2 ----- M2125 pin 5 (білий провід)

Цифровий Pin 3 ----- M2125 pin 2 (оранжевий дріт)

Земля до ----- контактів M2125 3 4 (всі заземлення проводів чорного кольору)

5 вольт до ------ M2125 pin 6 (червоні дроти)

Центрувати (зелений світлодіод) на контакт D5 (синій дріт на схемі)

знизити X (лівий червоний світлодіод) до виводу D8 (фіолетовий дріт на схемі)

верхній X (праве червоне світло) для виведення D7 (коричневий дріт на схемі)

верхній Y (верхній червоний світлодіод) на штифт D6 (жовтий дріт на схемі)

Нижній Y (нижній червоний світлодіод) на штифт D13 (зелений дріт на схемі)

Див

Крок 4: Розкажіть Ardunio Як контролювати датчик

Тепер нам потрібно завантажити ескіз в arduino, щоб він міг контролювати вихід з нашого датчика і повідомляти нам, що це все на рівні!

Цей ескіз, крім висвітлення світлодіодів, також виводить вимірювання X Y до послідовного, якщо ви хочете контролювати дані

Потік надходить у такому форматі: X (xvalue) Y (Yvalue)

IE. X243Y165

кожен рядок закінчується поверненням навантаження.

________________________________________________

// Arduino мікро-візуальний рівень

const int X = 2; // X pin на m2125

const int Y = 3; // Y pin на m2125

void setup () {

// налаштувати серіал

Serial.begin (9600);

// встановити висновки для виведення світлодіодів

для (int i = 5; i <13; i ++) {

pinMode (i, OUTPUT);

}

pinMode (X, INPUT);

pinMode (Y, INPUT);

}

void loop () {

// зчитування в імпульсних даних

int pulseX, pulseY;

int accelerationX, accelerationY;

pulseX = pulseIn (X, HIGH);

pulseY = pulseIn (Y, HIGH);

// відображення даних між 0 і 500

accelerationX = map (pulseX, 3740, 6286, 0, 500);

accelerationY = map (pulseY, 3740, 6370, 0, 500);

if (прискоренняX> 249 і прискоренняX <259 і прискоренняY> 249 і прискоренняY <259) {

digitalWrite (5,30);

}

else {

digitalWrite (5,0);

}

if (accelerationX <249) {

digitalWrite (8,30);

}

else {digitalWrite (8,0);

}

if (accelerationX> 261) {

digitalWrite (7,30);

}

else {digitalWrite (7,0);

}

якщо (прискоренняY <249) {

digitalWrite (13,30);

}

else {digitalWrite (13,0);

}

if (прискоренняY> 261) {

digitalWrite (6,30);

}

else {digitalWrite (6,0);

}

/ / Відправити дані до послідовного випадку, якщо ми хотіли б побачити, що повідомляється і можливе використання ПК пізніше

Serial.print ("X");

Serial.print (accelerationX);

Serial.print ("Y");

Serial.print (прискоренняY);

Serial.println ("");

/ / затримка подачі даних, щоб ми Dont перевищення послідовного

затримка (90);

}