г. Москва, ул.Новороссийская, дом 21, к.64. м.Люблино,ПН-ПТ с 10.00 до 19.30 и СБ с 12.00 до 16.00
+7(985) 997-37-74
11.07.2016

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

11.07.2016

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

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

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

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

Работу мы начали сразу же как получили ТЗ от Сергея:

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

2. По нажатой(постоянно) кнопке: 2.1. дать сигнал на переключение реле 1 и 2( и держать) 2.2. повернуть серво на 90 град. Удерживать и переключенные реле и серво на 90град. пока кнопка нажата. Скорость поворота сервы 90 град. в течении 2 секунд. Одно реле будет выполнять функцию замыкания двух внешних контактов, а другое размыкания.
3. При отпускании кнопки : 3.1.ОЖИДАНИЕ 5 СЕК., 3.2. затем серво повернуть на 0 град. 3.3. По достижении сервы 0 град. дать команду на переключение обоих реле в исходное состояние. Серво должна повернуться медленно, в течении 4 сек. т.е. её скорость 90град. за 4 секунды.
4. Режим ожидания нажатия кнопки и повтора алгоритма 2 и 3.

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

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

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

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

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

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

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

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

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

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

  6. Реле – 1шт.

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

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

 

 

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

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

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



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

Итак, код был проверен на тестовой модели.

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

 

 

Установка и тестирование

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

 

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