Задание “arduino slider mk-3”
Схема устройства
Описание оборудования
Рельс имеет длину L (модификации: 3м, 2м, 1м)
На рельсе установлена тележка с камерой. Тележка перемещается по рельсу с помощью мотора E1, который управляется через драйвер шагового двигателя SMD. На тележке установлен датчик оборотов RC1. Ротор датчика оборотов присоединен к колесу.
На тележке также установлены расстояния для определения крайне правого (ESR) и крайне левого (ESL) положения. Датчики определяют расстояние до ограничителей, которые находятся на торцах рельса.
Система снабжена LCD дисплеем M1, для контроля выполняния работы и режимов, а также LED матрицей M2, для отображения режимов при работе в условиях с ярким освещением.
Для управления устройством испольщуется матрица кнопок IN1 и пульт дистанционного управления, подключаемый через инфракрасный датчик IR.
в началоПеречень оборудования
ARDUINO MEGA 2560 – совместимый компьютер
Модули
Модуль управления шаговым мотором L298N [MD]
Драйвер шагового двигателя L298N
Подключение:
- IN1: 4
- IN2: 5
- IN3: 6
- IN4: 7
Датчик расстояния 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
Дополнительно:
Проверка оборудования
Этапы проверки модуля
- Составить тест-план и тест-кейсы
- Собрать все необходимые библиотеки
- Написать код
- Загрузить код на тестовом компьютере
- Проверить ход выполнения кода
- Проверка модуля 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”.
- Те же самые действия должны быть проведены для движения влево и датчика крайне левого положения.