https://github.com/matrix278/arduinoslider
Our practice work in team with @FilipsP, @WagOne
https://github.com/matrix278/arduinoslider
arduino-slider arduino-uno
Last synced: 7 months ago
JSON representation
Our practice work in team with @FilipsP, @WagOne
- Host: GitHub
- URL: https://github.com/matrix278/arduinoslider
- Owner: Matrix278
- Created: 2018-10-17T12:17:07.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2018-11-19T15:02:45.000Z (over 7 years ago)
- Last Synced: 2025-04-10T22:49:33.563Z (about 1 year ago)
- Topics: arduino-slider, arduino-uno
- Language: C++
- Homepage:
- Size: 106 KB
- Stars: 3
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Arduino Slider
# Схема устройства

# Описание оборудования
На рельсе установлена тележка с камерой. Тележка перемещается по рельсу с помощью мотора M1. На тележке установлен потенциометр P1. Потенциометр подключен к колесу таким образом, что полный оборот ротора потенциометра соответствует полному пробегу тележки по рельсу. При нахождении тележки в крайне правом положении потенциометр установлен в максимальное значение. При нахождении тележки в крейне левом положении потенциометр установлен в минимальное значение.
На рельсе также установлены датчики крайне правого (DR) и крайне левого (DL) положения. Датчики срабатывают на прикосновение к тележке и посылают системе данные о произошедшем факте.
Тележка имеет длину L
Система снабжена цифровым дисплеем, для контроля выполняния работы
# Электрическая схема

# Задачи
# Задача 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 имеет среднее и крайние положения.
- Нахождение ручки RC1 в среднем положении эквивалентно нулевой скорости тележки
- Нахождение ручки RC1 в крайнем положении соответствует максимальной скорости движения в этом направлении
- В переменную state записать “task9”
# Задача 10. Индикация скорости движения тележки
- На экране отобразить надпись “V=” и значение скорости перемещения тележки
- Скорость перемещения тележки определить исходя из нескольких замеров значений, полученных от потенциометра, за промежуток времени
# Задача 11. Индикация положения тележки
- На экране отобразить надпись “X=” и значение положения тележки относительно одного из краев
- Данные положения получить от потенциометра
- Минимальное значение потенциометра соответствует надписи “X=0”
- Максимальное значение потенциометра соответствует надписи “X=100”
# Задача 12. Индикация направления движения
- При движении тележки влево на экране отображать надпись “<<“
- При движении талежки вправо на экране отображать надпись “>>”
- Направление движения тележки получать на основании нескольких замеров значений, полученных от потенциометра, за промежуток времени
# Задача 13. Индикация ускорения тележки
- При движении тележки в режиме “разгон”, “торможение” и “переменное движение” на экране отображать надпись “A=” и значение ускорения
- При равномерном движении отображать “A=0”
- Ускорение вычислять на основании нескольких замеров значений, полученных от потенциометра, за промежуток времени
# Задача 14. Индикация режима работы
- На экране выводить надпись “R=” и далее режим работы слайдера
- Режимы работы слайдера получать на основании значений переменной state
- Режимы имеют следующие названия
- task1:”toEdge”
- task2:”adgeToEdge”
- task3:”pingPong”
- task4:”toNearEdge”
- task5:”toCenter”
- task6:”delta”
- task7:”accMotion”
- task8:”decMotion”
- task9:”varMotion”
# Задача 15. Тестирование подвижной части
- Находясь в произвольном положении тележка должна двигаться вправо до крайнего положения на рельсе, до активации соответствующего датчика
- При активации датчика крайне правого положения, необходимо проверить показания потенциометра. Данные должны соответствовать его максимальному значению.
- Далее тележка должна переместиться в крайне левое положение на рельсе доактивации датчика крайне левого положения
- При активации датчика крайне левого положения программа должна проверить показания потенциометра. Данные должны соответствовать его минимальному значению.
- Если обе проверки прошли успешно, то на экране показать надписть “Motion Test Ok”, в противном случае показать на экране надпись “Motion Test Error”
# Задача 16. Тестирование датчков
- Находясь в произвольном положении тележка должна двигаться вправо до крайнего положения на рельсе
- Программа должна постоянно считывать данные с потенциометра
- Если при достижении потенциометром его максимального значения (то есть значения больше не увеличиваются) программа не получила сигнал от датчика крайне правого положения, то программа должна остановить мотор тележки и выдать на экран сообщение “Right Button Err”
- Если до достижения потенциометром его максимального значения программа получила сигнал от датчика крайне правого положения, то программа должна остановить мотор тележки и вывести на экран сообщение “Right Button Ok”.
- Те же самые действия должны быть проведены для движения влево и датчика крайне левого положения.