Поворотна вебкамера, контролювана Arduino

Обертова веб-камера, контролювана Arduino

У цій статті розповідається про те, як встановити веб-камеру на сервопривід, встановлений в каркас з конструктора, та керувати нею за допомогою Arduino.

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

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

Платформа

Каркас з конструктора

Ми використали старий конструктор, який я купив у комісійній крамниці для побудови каркасу. Ми побудували каркас і закріпили його на основі.

Каркас з конструктора

З'єднання з валом сервоприводу

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

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

Кріплення вала

Кріплення вала

Монтаж веб-камери

Веб-камера
Я використав веб-камеру компанії Logitech.
Напевно, буде корисно зняти з неї противагу, щоб зробити її легшою, але це не моя веб-камера, а з офісу, тому я не став цього робити.

arduino47-6.jpg

Розподіл ваги
Я додав 2 товсті прокладки, щоб уникнути тиску вала на камеру. Вони зміщують вагу камери на весь каркас з вала сервоприводу.

Кріплення вебкамери

Монтаж веб-камери
Кріпильний елемент веб-камери складається з кола з отвором, що збігається з валом по центру. Це дозволяє забезпечити тягу між валом і колом.
Деякий простір створюється за рахунок прокладки, яка запобігає натисненню на вал.  

Кріплення веб-камери

Проблеми:
- Камера не закріплена в каркасі, і вона буде падати, якщо її максимально нахилити.
- Отвори в конструкторі над сервоприводом великі й дозволяють сервоприводу робити значні горизонтальні рухи через навантаження.
- Вертючий момент камери викликає надмірне обертання, що, в свою чергу, деформує  сервопривід. Я хочу спробувати виправити це шляхом обертання камери на 1 градус назад після періоду безперервного руху, але я надаю перевагу механічним рішенням. Можливо, це можна виправити шляхом додавання передачі та встановлення веб-камери на окремий вал з ремінним приводом?
- ... Або використати більш потужний сервопривід.

Електроніка

Підключення сервоприводів і світлодіодів
Сервопривід має 3 дроти:
- GND
- +5V
- Сигнал
Я використав 9 контакт для керування сервоприводом.
Світлодіод підключений до +5В і GND з резистором на лінії +5В і буде світитися при подачі живлення.

Світлодіод

Підключення джойстика
У мене був старий зламаний моїм сином джойстик від PS3.
Мені допомогли статті від Finnio і jhoffnun, щоб зрозуміти, як працює джойстик і його електроніка.

Джойстик

Макетна плата

Керування сервоприводом

Arduino
Програму для Arduino, як і всі файли проекту, можна скачати нижче або взяти на github.
Програма дозволяє керувати веб-камерою за допомогою USB і джойстика.
Можна використовувати модем-контроль / емулятор терміналу додатків, таких як Minicom або Putty для зв'язку з USB-портом.

Установка по центру:
- Програма буде встановлювати сервопривід на 90 градусів при запуску.
- І при натисканні "m"

Поворот вліво і вправо
- Коли джойстик переміщується в горизонтальній площині.
- Вліво при натисканні 'F'
- Вправо при натисканні "J"

Node.js
Крім того, ми реалізували веб-сервер у node.js, щоб полегшити контроль над arducam.
Інструкцію можна знайти на сайті gihub проекту.

Можливі покращення:
- Забезпечити поворот камери кнопками зі стрілками.
- Зробити поворот на 1 градус  назад для полегшення навантаження на сервопривід, що виникає при обертовому моменті у важких веб-камерах.

Оригінал статті

Прикріплені файли:
Top