Задание «arduino slider mk-3»

Схема устройства

Описание оборудования

Рельс имеет длину L (3 метра)

На рельсе установлена тележка с камерой. Тележка перемещается по рельсу с помощью мотора E1, который управляется через драйвер шагового двигателя SMD. На тележке установлен датчик оборотов RC1. Ротор датчика оборотов присоединен к колесу.

На тележке также установлены расстояния для определения крайне правого (ESR) и крайне левого (ESL) положения. Датчики определяют расстояние до ограничителей, которые находятся на торцах рельса.

Система снабжена LCD дисплеем M1, для контроля выполняния работы и режимов, а также LED матрицей M2, для отображения режимов при работе в условиях с ярким освещением.

Для управления устройством испольщуется матрица кнопок IN1 и пульт дистанционного управления, подключаемый через инфракрасный датчик IR.

в начало

Перечень оборудования

ARDUINO MEGA 2560 — совместимый компьютер

Модули

Шаговый двигатель NEMA 17 [E1]

Описание

Подключение:

Подключен к MD


Модуль управления шаговым мотором L298N [MD]

Драйвер шагового двигателя L298N

Подключение:
  • IN1: 4
  • IN2: 5
  • IN3: 6
  • IN4: 7


Датчик угла поворота KY-040 аналог [RC1]

  1. Статья
  2. Статья
  3. Статья
  4. Статья
Подключение:
  • CLK: 11
  • DT: 12
  • SW: 13

Датчик расстояния HC-SR04 [ESL, ESR]

Статья

Подключение:

ESR:

  • Trig: 39
  • Echo: 41

ESL:

  • Trig: 43
  • Echo: 45

LCD1602 Display & I2C Serial Interface Adapter [M1]

Статья

Программа перекодирования изображения

Подключение:
  • SDA: 20 (SDA)
  • SCL: 21 (SCL)

Мембранная клавиатура 4х4 [IN1]

Статья

Подключение:
  • Ряды (rows)
    • Pin 1: 37
    • Pin 2: 35
    • Pin 3: 33
    • Pin 4: 31
  • Колонки (columns)
    • Pin 5: 29
    • Pin 6: 27
    • Pin 7: 25
    • Pin 8: 23

MAX7219 Dot led matrix MCU control LED Display module [M2]

Статья

Подключение:
  • DIN: 8
  • SC: 9
  • CLK: 10
Дополнительно:

Кодирование рисунка


Infrared IR Wireless Remote Control [IR]

  1. Статья
  2. Статья
Подключение:
  • S: 47

HC-06 ZS-040 [BT]

  1. Статья
  2. Статья
Подключение:
  • TXD: 0 
  • RXD: 1

Активный звуковой модуль (зуммер)
KY-012 [ZM]

Статья

Подключение:

S:49


в начало

Проверка оборудования

Этапы проверки модуля
  1. Составить тест-план и тест-кейсы
  2. Собрать все необходимые библиотеки
  3. Написать код
  4. Загрузить код на тестовом компьютере
  5. Проверить ход выполнения кода
  • Проверка модуля MD.
  • Проверка модуля RC1.
  • Проверка модуля ESL.
  • Проверка модуля ESR.
  • Проверка модуля M1.
  • Проверка модуля M2.
  • Проверка модуля IN1.
  • Проверка модуля IR.
  • Проверка модуля BT.
  • Проверка модуля ZM.

Задачи

1. Создание программного модуля взаимодействия с устройством (ORB)

1.1. Перечислить все возможные и необходимые для работы системы действия и выходные параметры, которые будет выполнять выбранный аппаратный модуль

1.2. Перечислить все возможные и необходимые для работы системы действия и входные параметры

1.3. Установить взаимосвязь между входными и выходными параметрами

1.4. создать функцию, которая будет при получении определенных входных параметров, выдавать соответствующие выходные данные или выполнять соответствующие действия

z=function(x,y)
где x,y — входные параметры или действия, необходимые для работы программно-аппаратного модуля
z — результат работы программно-аппаратного модуля в виде значений и действий

Задачи (предыдущая версия)

Задача 1.  Движение к краю

  • Тележка должна двигаться вправо/влево до тех пор, пока не активирует датчик правого/левого края.
  • Активация датчика долна привести к полной остановке тележки.
  • Функция управления должна получать направление движения в качестве входного параметра.
  • В переменную state записать «task1»

Задача 2. Движение от края до края

  • Находясь в крайнем положении двигаться по рельсу до противоположного края рельса
  • Функция управления должна получать в качестве параметра скорость движения тележки
  • Направление движение функция должна выбирать согласно данным, полученным с датчика угла поворота
  • В переменную state записать «task2»

Задача 3. «Пинг-понг»

  • Находясь в произвольном положении тележка должна двигаться до правого/левого датчика  края рельса.
  • При активации датчика крайнего положения тележка должна с той же скоростью двигаться в противоположном направлении
  • Функция управления должна получать в качестве параметра скорость и направление движения
  • В переменную state записать «task3»

Задача 4. Движение к ближайшему краю

  • Находясь в произвольном положении тележка должна по информации с датчиков расстояния определить собственное положение на рельсе
  • Получив информацию о собственном положении на рельсе определить направление движения к ближайшему краю
  • Двигаться в сторону ближайшего края до активации соответствующего датчика и остановиться
  • Функция управления должна получать в качестве параметра скорость движения
  • В переменную state записать «task4»

Задача 5. Центровка

  • Находясь в произвольном положении тележка должна по информации с датчиков расстояния определить собственное положение на рельсе
  • Получив информацию о собственном положении на рельсе определить направление движения к центру рельса
  • Двигаться в сторону центра рельса до его достижения и остановиться на нем
  • В качестве входного параметра управляющая функция должна получать скорость движения
  • В переменную state записать «task5»

Задача 6. Дельта

  • Находясь в центре рельса тележка отъезжает от него на указанное расстояние D вправо/влево со скоростью V1
  • Переместившись на указанное расстояние тележка меняет направление движения на противоположное
  • Тележка перемещается на расстояниe 2*D со скоростью V2
  • Тележка меняет направление на противоположное и перемещается на расстояние D со скоростью V1 (вернуться в исходное положение)
  • Функция управления в качестве входных параметров должна получать скорость V1, V2 и расстояние D
  • В переменную state записать «task6»

Задача 7. Разгон

  • Тележка находится в крайнем правом/левом положении
  • Тележка начинает равноускоренное движение в противоположную сторону с ускорением A
  • Направление движения тележка выбирает согласно данным, полученным от датчиков расстояния
  • Переместившись в противоположную часть рельса и активировав датчик крайне правого/левого положения тележка останавливается
  • Функция управления должна получать в качестве входного параметра ускорение A
  • В переменную state записать «task7»

Задача 8. Торможение

  • Тележка находится в крайнем правом/левом положении
  • Тележка начинает равнозамедленное движение в противоположную сторону с ускорением A
  • Направление движения тележка выбирает согласно данным, полученным от датчиков расстояния
  • Переместившись в противоположную часть рельса и активировав датчик крайне правого/левого положения тележка останавливается
  • Если ускорение задано таким, что тележка не доезжает до противоположного края рельса, то тележка останавливается в том месте, где её скорость будет нулевой
  • Функция управления должна получать в качестве входного параметра ускорение A
  • В переменную state записать «task8»

Задача 9. Переменное движение тележки

  • Находясь в произвольном положении тележка должна двигаться со скоростью, соответствующей среднему возможному значению.
  • Нахождение ручки RC1 в среднем положении эквивалентно нулевой скорости тележки
  • Нахождение ручки  RC1 в крайнем положении соответствует максимальной скорости движения в этом направлении
  • В переменную state записать «task9»

Задача 10. Установка тележки на заданную координату

  • Находясь в произвольном положении тележка проводит замер рабочей длины рельс
  • На экране выводится надпись с просьбой ввести реальную рабочую длину в метрах
  • На экране выводится надпись с просьбой ввести необходимую координату и сторону, откуда ее следует отсчитывать
  • Тележка перемещается на указанную координату

Задача 15. Тестирование подвижной части

  • Находясь в произвольном положении тележка должна двигаться вправо до крайнего положения на рельсе, до активации соответствующего датчика
  • При активации датчика крайне правого положения, необходимо проверить показания датчика угла поворота . Данные должны соответствовать его максимальному значению.
  • Далее тележка должна переместиться в крайне левое положение на рельсе до активации датчика крайне левого положения
  • При активации датчика крайне левого положения программа должна проверить показания датчика угла поворота. Данные должны соответствовать его минимальному значению.
  • Если обе проверки прошли успешно, то на экране показать надписть «Motion Test Ok», в противном случае показать на экране надпись «Motion Test Error»

Задача 16. Тестирование датчков

  • Находясь в произвольном положении тележка должна двигаться вправо до крайнего положения на рельсе
  • Программа должна постоянно считывать данные с датчика угла поворота
  • Если при показании датчиком угла поворота постоянного значения (то есть значения больше не увеличиваются и не уменьшается) программа не получила сигнал от датчика крайне правого положения, то программа должна остановить мотор тележки и выдать на экран сообщение «Right Button Err»
  • Если программа получила сигнал от датчика крайне правого положения, то программа должна остановить мотор тележки и вывести на экран сообщение «Right Button Ok».
  • Те же самые действия должны быть проведены для движения влево и датчика крайне левого положения.