logo
+7 (495) 997-37-74
Москва, ул.Международная, 15
11.07.2016

Камера заднего вида автомобиля на Arduino

11.07.2016

История проекта началась с увлечённого техническим творчеством покупателя нашего интернет-магазина по имени Сергей. Он решил освоить платформу Arduino сам и привлечь своих детей к новым технологиям.

Чтобы сделать процесс интереснее и заинтересовать своих детей, им был придуман проект управления камерой заднего вида машины с помощью Arduino микроконтроллера. Во время посещения нашего офиса Сергей рассказал нам свою идею.

Так как мы люди тоже вдохновленные возможностями Arduino и у нас есть опыт работы с этими контроллерами, то мы ему предложили решение и подобрали все необходимые компоненты.

Прошло некоторое время с момента покупки Arduino компонентов в нашем интернет-магазине и Сергей попросил помочь ему с программированием. Помогли, написали код программы и разъяснили принцип её работы, чтобы он при необходимости смог самостоятельно внести изменения в программу.

ТЗ от Сергея:

1. Загрузка ардуино, режим ожидания, серво 0 градусов.

2. По нажатой (постоянно) кнопке: дать сигнал на переключение реле 1 и 2 (и удерживать), повернуть серво на 90 градусов. Удерживать и переключенные реле и серво на 90 градусов пока нажата кнопка. Скорость поворота сервы на 90 градусов в течение 2 секунд. Одно реле будет выполнять функцию замыкания двух внешних контактов, а другое - размыкания.

3. При отпускании кнопки : ожидание 5 секунд, затем серво повернуть на 0 градусов. По достижении сервы 0 градусов дать команду на переключение обоих реле в исходное состояние. Серво должна повернуться медленно, в течении 4 сек. т.е. её скорость 90 градусов за 4 секунды.

4. Режим ожидания нажатия кнопки и повтора алгоритма 2 и 3.

Роль кнопки будет выполнять внешнее автомобильное реле по сигналу лампы заднего хода. При выключении зажигания ардуино будет обесточиваться. 

Задача интересная!

Сразу встает вопрос реализации многозадачности с помощью таймеров, так как надо управлять одновременно и сервоприводом и реле. При этом сервопривод должен поворачиваться плавно (необходимо реализовать возможность настройки скорости).

Еще один момент, который заставил подумать немного – это плавный возврат сервопривода в положение «0» при включении Arduino. Чтобы это реализовать необходимо запоминать положение сервопривода и записывать это значение в энергонезависимую память. Мы воспользовались штатными возможностями EEPROM в микроконтроллере.

В прототипе проекта использовались:

1. ElemikUNOR3 (микроконтроллер с программой)

2. Сервопривод MG995 (цифровой сервопривод для поворота камеры)

3. Тактовая кнопка (инициация действий)

4. Резисторы 10 кОм (1 резистор в роли подтягивающего резистора для кнопки и 1 резистор в роли подтягивающего резистора для сервопривода)

5. Макетная плата на 170 пинов

6. Реле

7. Провод «папа-папа» (15 шт.)

Для тестирования программы мы собрали модель проекта по схеме, нарисованной ниже:

 

Комментарии к схеме:

Сигнальный вывод сервопривода подтягивается к +5 В для того, чтобы избежать резких рывков при старте микроконтроллера.

Реле устроено таким образом, что переключение осуществляется при подаче «0» на сигнальный вывод.

Код скетча можно скачать ниже по ссылке. В коде есть все необходимые комментарии.

Итак, код был проверен на тестовой модели. Далее схема и программа были переданы Сергею. Он уже собрал рабочий аппарат и установил его в машину. Что из этого вышло можно посмотреть ниже.

 

 

Проверка работоспособности:

По нашему мнению, просто отлично!