Так. Порылся в закромах, порисовал схемы.
В итоге решил разделить свою часть установки на 2 части:
1) Блок интерфейса. Назначение - обрабатывает пользовательский ввод и отсылает сигналы блоку управления двигателем.
Состоит из:
- Плата управления (arduino nano)
- Кнопки выбора режима (быстро, медленно, случайно, программа)
- Индикаторы выбранного режима (светодиоды)
- Блок беспроводного передатчика
- Датчик подъема винтовки
- Блок чтения данных SD карта)
принцип работы:
1) Пользователь выбирает один из режимов (нажимает кнопку), при этом загарается соотвествующий светодиод
2) Поднимает винтовку (срабатывает датчик подъема винтовки)
3) По факту срабатывания датчика подъема винтовки запускается таймер и через 4 секунды отправляет через беспроводной передатчик сигнал в соответствии с выбранным режимом
2) Блок управления двигателем. Принимает сигналы и в зависимости от входящих сигналов выдает различные режимы двигателю.
Состоит из:
- Плата управления (arduino uno)
- Шилд управления двигателем
- Беспроводной приемник
- Датчики концевиков
Принцип работы:
1) По беспроводному интерфейсу приходит сигнал на старт одного из режимов (быстро / медленно)
2) В зависимости от положений датчиков концевиков выбирается направление вращения двигателя
3) Подается команда на вращение двигателя с нужной частотой (быстрый / медленный прогон)
4) По сигналу датчика концевика двигатель останавливается.
Надо составить список покупок исходя из необходимых / имеющихся деталей:
Arduino UNO - 1шт (Есть)
Arduino nano - 1шт (Куплено, в пути из китая)
Кнопки - 4шт (Есть)
Светодиоды - 4шт (Есть)
Беспроводной передатчик - 1шт (Есть)
Беспроводной приемник - 1шт (Есть)
Кардридер - 1шт (Куплено, в пути из китая)
Драйвер ШД - 1шт (Куплено, в пути из китая)
Датчик подема винтовки 1шт - ???
Датчик концевика - 2 шт - ???
Как видим, не хватает нескольких деталей, с ними нужно разобраться.
Для датчика подъема винтовки хорошо бы использовать что-то вроде этого, если там индуктивная схема:
Прелесть в том, что там есть цифровой выход, то есть я в коде могу однозначно определить изменение сигнала с этого датчика
По какому принципу будем выдирать датчики концевиков - не знаю, Грюнхерцу виднее, у меня только одно настоятельное пожелание: чтобы там был цифровой выход, чтобы можно было просто сказать - есть сигнал на входе (выходе датчика), или нет. Ну как кнопка (нажата/разомкнута)
Предлагаю определяться с оставшимися компонентами и заказывать уже, им еще ехать к нам. С тем, что есть я на днях начну кодить. Хотя без некоторых вещей кое-какие вещи не закодишь (например, не закодишь управление двигателем, пока не придет драйвер для него)