Всех приветствую!
Работаю инженером по КИП и А. Часто долго отсутствую дома, и когда дома меня нет, а в общедомовой чат пишут, что у кого протечка этажом выше, то становится тревожно. Для этих целей решил собрать некоего сторожа на колесах, управляемого через интернет, с установленной на борту камерой для осмотра “владений” пока меня нет дома.
В программировании прямо сказать слабоват, но в целом считаю себя довольно способным человеком)) особенно в аппаратной части и части сборки электрической схемы.
И так входные данные:
Есть веб - камера от xiaomi с вращением 360 градусов - она главный элемент системы. Имеет внутри корпуса два шаговых униполярных электродвигателя с 5 выводами для вращения вокруг вертикальной оси и для поднятия объектива вверх и вниз. На выводы двигателей последовательно подаются импульсы до 5 в в зависимости от направления вращения, например при вращении по часовой стрелке сначала на 1, потом на второй, потом на 3 и т.д., при вращении против часовой стрелки, сначала на 3, затем на 2, затем на 1. У камеры есть свое приложение, которое освобождает от необходимости использовать какие-то другие программы для управления машинкой.
Есть китайская машинка на радиоуправлении с двумя обычными бесколлекторными движками (достаточно мощными), один из которых для движения вперед и назад, другой соответственно влево и вправо. (да да, без сервопривода, просто через редуктор). Направление вращения меняется тупо изменением полярности на двигателе.
Есть ардуино нано на Atmega 328p
Есть модуль из 4 пятивольтовых реле.
Идея такая: считывать последовательность импульсов, которые выдают мозги камеры через аналоговые входы ардуино нано и выдавать их на выходы для управления пятивольтовыми реле, которые будут менять полярность на безколлекторных двигателях машинки по типу реверсивного пускателя.
Не могу сообразить какой принцип использовать в скетче для считывания именно последовательности импульсов? К примеру если импульс сначала на А0, затем на А1, затем на А2, то включить D2 - это движение вперед. А если А2, затем А1, затем А0, то включить D3, это будет вдижение назад. Лево право - аналогично
Было бы просто, если бы не одно но. А как управлять? Нужно писать приложение на андроид, арендовать сервер? Смысл именно использовать для управление стандартное приложение Xiaomi. Для меня проще адаптировать аппаратную часть под программную, чем наоборот
я уже вычислил, что импульсы при прямом вращении выдаются последовательно от 1 к последнему в колодке, и при обратном вращении от последнего к первому, при желании можно осциллографом вычислить, но у меня его нет, поэтому опытным путем
импульсы выдаются кратковременно, т.е. если на А0 - 5 вольт, то на А1 в этот момент - 0 вольт и на А2 - 0 вольт. Далее на А0 - 0 вольт, то на А1 в этот момент - 5 вольт и на А2 - 0 вольт ну и так далее. А при обратном вращении последовательность начинается с А2
Вам придётся изыскать ещё один канал управления или отказаться от заднего хода, т.к. надо либо ехать либо крутить камерой, а одновременно - обматеритесь
Видел я проект гайвера, у него поворот по другому принципу осуществляется. за счет разности частоты вращения двигателя левого и правого колес. К тому же по его коду я так и не понял как он фиксировал последовательность импульсов от мозгов камеры. Поэтому, собственно, и задаю здесь вопрос