
Мой опыт управления длиной актуатора постоянного тока
16 декабря 2022 г.Все началось с того, что мы заказали актуатор с энкодером из Китая для проекта. Но что-то пошло не так, и через месяц мы получили актуаторы без энкодера.
Нужно было срочно доделывать код проекта, но управлять приводами без энкодеров было бы невозможно. Для проекта нужно знать длину вылета штока, а для этого нужно знать количество оборотов двигателя. Поэтому мы решили потратить один день и сделать свой энкодер для приводов. Сначала думали поставить многооборотный потенциометр.
Но поворотов может быть очень много, а такого энкодера у нас под рукой не было.
Затем мы захотели использовать такой кодировщик, как EC11,
но у таких энкодеров очень маленький ресурс работы. И в итоге выбрали вариант: из двух цифровых датчиков Холла SS443A и магнитов.
Датчик Холла SS443A выдает логический ВЫСОКИЙ уровень на одной полярности магнитов и логический НИЗКИЙ уровень на другой полярности и сохраняет это значение даже при удалении магнита. Если кратко: Берем два датчика холла и ставим их под углом 45 градусов друг к другу. К оси мотора приклеиваем два магнита, с разными полюсами, и при вращении мотора каждый датчик включается и выключается по очереди.
Если каждый датчик включался и выключался по одному разу, то был один оборот двигателя. С двумя датчиками мы можем считать четверть оборота.
А зная последовательность включения и выключения датчиков, мы можем определить направление вращения.
Мы разобрали привод, чтобы найти место для установки магнитов.
Места там не было, а магниты приклеить не получалось, так как все было замаслено жиром. Тогда мы решили выкинуть оригинальную крышку актуатора, в которую будет встроена шестеренка с магнитами и два датчика холла. Шестерня будет ведомой, и мы поместим шестерню на отдельную ось. И шестерня будет крутиться без нагрузки от ведущей шестерни двигателя. Мы взяли два магнита диаметром 5мм и толщиной 4мм. В SolidWorks с помощью плагина «GearTrax» нарисовали шестерню нужного размера и нарисовали крышку корпуса привода с 6-контактным разъемом GX16.
Мы распечатали корпус на 3D-принтере из пластика PETG и с 3-й попытки получили работающий механизм. На все это вместе с 3D-печатью ушло около 11 часов.
Осталось только написать код для расчета длины удлинения стержня. Для теста мы взяли плату Arduino MEGA 2560; есть шесть контактов с аппаратными прерываниями. Можно сделать код без перерывов, но если хотя бы один импульс (четверть оборота) будет пропущен, то погрешность будет 1,6мм, а это уже много для нашей задачи. Тесты показали, что без перерывов ошибка может накапливаться до больших значений при активном использовании. Поэтому мы используем два контакта прерывания для каждого привода. 1 контакт = 1 датчик Холла.
Код, в итоге, получился довольно простым, но я решил оставить его здесь как шпаргалку на будущее, а может еще кому пригодится:
const byte M1_HALL1_pin = 20; //connect pintout Hall sensor 1
const byte M1_HALL2_pin = 21; //connect pintout Hall sensor 2
const byte M1_HALL1_pin_interupt = 3; //Interrupt pin3 match Pin20 Arduino Mega
const byte M1_HALL2_pin_interupt = 2; //Interrupt pin2 match Pin21 Arduino Mega
volatile byte M1_HALL_cur_state = B00; //Current state hall sensors. If Hall1 and Hall2 is LOW then variable value is B00
volatile byte M1_HALL_last_state = B00; //Last state hall sensors. If Hall1 is HIGH and Hall2 is LOW then variable value is B10
volatile long countPulsesM1 = 0; //Counter
/*
Arrays dirUpM1 and dirDownM1 have directions of rotation.
*/
byte dirUpM1[] = {1,3,0,2}; //01 11 00 10
byte dirDownM1[] = {2,0,3,1}; //10 00 11 01
void setup(void){
attachInterrupt(M1_HALL1_pin_interupt, countRotationInteruptsM1, CHANGE);
attachInterrupt(M1_HALL2_pin_interupt, countRotationInteruptsM1, CHANGE);
//Be sure to pullup the pins to avoid noises
pinMode(M1_HALL1_pin, INPUT_PULLUP);
pinMode(M1_HALL2_pin, INPUT_PULLUP);
Serial.begin(9600);
}
void loop(void){
Serial.println(countPulsesM1);
}
void countRotationInteruptsM1(){
//Present cur status of hall sensor as binary number
M1_HALL_cur_state = digitalRead(M1_HALL1_pin); //Read HALL1 state (for example: if HALL1 is HIGH then value is B01)
M1_HALL_cur_state = M1_HALL_cur_state << 1; //Shift the bit to make room for the second value (for example: value is B10)
M1_HALL_cur_state += digitalRead(M1_HALL2_pin); //Read HALL2 state and ADD it to HALL1 value (for example: if HALL2 is HIGH too, then value is B11)
//If in an array dirUpM1 of sequences, the previous value is followed by the current, means the actuator moves up
if(dirUpM1[M1_HALL_cur_state] == M1_HALL_last_state){
countPulsesM1++;
//else the actuator moves up
} else if(dirDownM1[M1_HALL_cur_state] == M1_HALL_last_state){
countPulsesM1--;
if(countPulsesM1 < 0){
countPulsesM1 = 0;
}
}
}
Массивы dirUpM1 и dirDownM1 имеют направления вращения. По мере вращения шестерни датчики Холла будут включаться и выключаться один за другим.
Например:
- сначала HALL1 и HALL2 имеют НИЗКИЙ уровень. Это можно записать как двоичный код B00
- тогда HALL1 – НИЗКИЙ, а HALL2 – ВЫСОКИЙ. Это можно записать как двоичный код B01
- тогда HALL1 и HALL2 имеют значение HIGH. Это можно записать как двоичный код B11
- тогда HALL1 – ВЫСОКИЙ, а HALL2 – НИЗКИЙ. Это можно записать как двоичный код B10
- а затем цикл повторяется
Это можно представить в виде комбинации: 00 - 01 01 - 11 11 - 10 10–00
Если вы преобразуете двоичные числа в десятичные, это будет выглядеть так: 0 - 1 1 - 3 3 - 2 2–0
Теперь представим его в виде массива:
обрД[0] = 1;
обрД[1] = 3;
обрД[3] = 2;
обрД[2] = 0;
И наконец: byte dirUpM1[] = {1,3,0,2};
Если вдруг изменится подключение датчиков холла, массив с направлением можно «обучить»:
void setDerectionUp(){
if(M1_HALL_cur_state != M1_HALL_last_state){
dirUpM1[M1_HALL_last_state] = M1_HALL_cur_state;
M1_HALL_last_state=M1_HALL_cur_state;
}
if(M2_HALL_cur_state != M2_HALL_last_state){
dirUpM2[M2_HALL_last_state] = M2_HALL_cur_state;
M2_HALL_last_state=M2_HALL_cur_state;
}
}
ПС: Заводской актуатор с энкодером стоит: $41. Актуатор без энкодера + самодельный энкодер стоит: 26$ + 4$ = 30$
Оригинал
Recent Post
-
Многоязычный пользовательский интерфейс Nextion + Arduino
20 декабря 2022 г. -
Дешумирование сигнала с помощью автоматических кодировщиков
16 мая 2022 г. -
Как я разработал классическую игру в понг на плате Arduino
16 апреля 2022 г. -
Как создать игру Arduino Starship, управляемую джойстиком и компьютером
1 апреля 2022 г. -
Интегрируйте своего Telegram-бота с реальным миром через микроконтроллер ESP32/ESP8266 Arduino
21 марта 2022 г.
Categories
- Python
- blockchain
- web
- hackernoon
- вычисления
- вычислительные компоненты
- цифровой дом
- игры
- аудио
- домашний кинотеатр
- Интернет
- Мобильные вычисления
- сеть
- фотосъемка видео
- портативные устройства
- программного обеспечения
- телефон и связь
- телевидение
- видео
- мир технологий
- умные гиды
- облако
- искусственный интеллект
- се
- Samsung
- умные города
- digitaltrends
- отели
- Startups
- Venture
- Crypto
- Apps
- безопасность
- техника и работа
- cxo
- мобильность
- разработчик
- 5г
- майкрософт
- инновации
- Права и свободы
- Законодательство и право
- Политика и общество
- Космическая промышленность
- Информационные технологии
- Технологии
- Образование
- Научные исследования
- Автомобильная промышленность
- Программная инженерия
- IT и технологии
- Веб-разработка
- Программирование
- Автоматизация
- Карьерный рост
- Программирование и анализ данных
- Трудоустройство
- Политика
- Искусственный интеллект
- ИТ-технологии
- Программное обеспечение
- Экологическая политика
- Образование и рынок труда
- Политика и право
- Microsoft Teams и SharePoint
- Информационная безопасность
- Кибербезопасность
- Налоги
- Образование и карьера
- Интернет и технологии
- Технологии, Государственные услуги
- Политика и технологии
- Разработка программного обеспечения
- Разработка ПО
- Машинное обучение
- Налогообложение, технологии, открытый исходный код
- Финансы и налоги
- Технологии, Интернет, Экология
- Интернет, безопасность
- Технологии и политика
- Операционные системы
- Профессиональная разработка
- Технологии, Безопасность
- Интернет и общество
- Финансовая индустрия
- Налоговый учёт
- Общественное здравоохранение
- Технологическая отрасль
- Юриспруденция
- Технологии и государство
- Здоровье и фитнес
- IT-инфраструктура
- Технологии и ИИ
- Здравоохранение
- IT
- Технологии, Экономика
- Музыка и технологии
- Здоровье и питание
- IT и безопасность
- Бизнес и предпринимательство
- Технологии, Программное обеспечение
- Технологии и инновации
- Технологии, данные, этика
- Технологии и Интернет
- Технологии и SaaS
- Медицина и здравоохранение
- Онлайн-видеосервисы
- Финансы и технологии
- Чтение и саморазвитие
- Экономика и бизнес
- Безопасность данных
- Удаленная работа
- Авиация и технологии
- Технологии, Игры
- Энергетика
- Социальные сети, безопасность, технологии
- Саморазвитие
- Безопасность информации
- Бизнес и карьера
- Технологии и отношения
- Игровая индустрия
- Компьютерная индустрия
- Математика, Искусственный интеллект
- Наука и технологии
- Технологии и безопасность
- Технологии, Удаленная работа, Бизнес
- Видеоигры
- Технологии, Искусственный интеллект, Этика
- Технологии, социальные сети, 6G
- Технологии, Программирование, AI, Разработка ПО
- Программирование, Разработка ПО, Технологии
- Животные
- Технологии, Искусственный интеллект
- Программирование, карьера, технологии, обучение
- Бизнес и технологии
- Технологии, Безопасность данных
- Астрономия и физика
- Продуктивность, личное развитие
- Медиа и Технологии
- Программирование и Искусственный Интеллект
- Социальные сети
- Политика и экономика
- Технологии, Медицина, Искусственный интеллект
- Технологии и управление
- Космос и астрономия
- Общество и политика
- Космические исследования
- Веб-дизайн
- Искусственный интеллект и безопасность данных
- Технологии, Безопасность, Конфиденциальность
- Экологическая проблема
- Технологии, Погода
- Авиация
- Транспортная сфера
- Технологии и бизнес
- Игровая промышленность
- Телевидение и реклама
- Аналитика данных
- Технологии и кибербезопасность
- Маркетинг
- Технологии и гаджеты
- Технологии, Авиация, Инновации
- Финансы и инвестиции
- Технологии и общество
- Рыночный анализ
- Космология
- Данные и бизнес
- IT и программирование
- Технологии и право
- Программирование и разработка
- Астрофизика
- Медицинские технологии
- Авиационная промышленность
- Технологии и искусственный интеллект
- Генетическая инженерия
- Бизнес и инвестиции
- Компьютерная промышленность
- Психология и социология
- Образование и технологии
- Рынок труда
- Технологии, Стартапы
- Технологии, Приватность, Чтение
- Маркетинг и продажи
- Виртуальная реальность
- Технологии, Смартфоны, Маркетинг
- Технологии, Бизнес, Личностный рост
- Экологические проблемы
- Экономика и технологии
- IT и карьера
- Интернет и безопасность
- Разработка и технологии
- Биотехнологии
- Интернет-магазины, кибербезопасность
- Финансы
- Безопасность и технологии
- Экономика
- Защита данных
- Data Science
- Карьера и работа
- Финансовый успех, мошенничество, маркетинг
- Безопасность
- Экология
- Космическая индустрия
- Программирование, Python, Обучение
- Технологии искусственного интеллекта
- Технологии, Дизайн, iOS
- Программирование, DevOps, Kubernetes
- Социальные сети и пропаганда
- Корпоративная этика
- Управление IT-инфраструктурой
- Здоровье и медицина
- Медицина
- Медицинская промышленность
- Разработка и дизайн
- Искусственный интеллект, Диагностика систем
- Образование и психология
- Технологии, Автомобильная промышленность
- Автомобили и путешествия
- Астрономия и космология
- Программирование и технологии
- IT, работа в офисе, эмоциональный интеллект
- Компьютерная техника
- Здоровье и благополучие
- Управление персоналом
- Политика и управление
- Бизнес и экономика
- Социальные сети, Пропаганда, Информационная безопасность
- Технологии и автоматизация
- Геймдизайн
- Экология и технологии
- CRM-системы, IT-инфраструктура
- Права человека
- Цифровая цензура, свобода слова, технологии
- Технологии, Искусственный интеллект, Работа
- Наука о данных
- Астрономия, Наука
- Интернет и цифровые технологии
- Технологии, управление
- Интернет и связь
- Технологии и конфиденциальность
- Интернет и свобода слова
- Психология и социальные науки
- Книги и литература
- Работа и карьера
- Финансовые технологии
- Психология и саморазвитие
- IT, программирование, сети
- Технологии, Видеоигры
- Экология и энергетика
- Космонавтика
- Медицина и технологии
- Игры и развлечения
- Музыкальная индустрия
- Логистика и складирование
- Бизнес и финансы
- Экология и окружающая среда
- Правозащита
- Социальные сети и дезинформация
- Технологии и рынок труда
- Технологии, Искусственный интеллект, Рынок труда
- Технологии и будущее
- Медицина и здоровье
- Социальные медиа
- Экология, политика, общество
- Экономика и Финансы
- Разработка игр
- Пропаганда и дезинформация
- Медицинские исследования
- Онлайн-знакомства
- Политика и СМИ
- Энергетика и электромобили
- Климатические изменения
- Технологии, Рынок труда
- IT и управление данными
- Безопасность и кибербезопасность
- Интернет-технологии
- Психология и личностное развитие
- Технологии, Мессенджеры
- Цифровые технологии
- Здоровье и самосовершенствование
- Технологии и AI
- Технологии и спорт
- IT, Разработка программного обеспечения
- Экология и климат
- Космос и технологии
- Юридическая сфера
- Безопасность в интернете
- Программирование, Искусственный Интеллект, Качество ПО
- Технологии и мессенджеры
- Социальная справедливость
- Технологическая индустрия
- Личностное развитие, Time-менеджмент, Психология
- Бизнес и менеджмент
- Технологии, Микросхемы, Автономные системы
- Фриланс и предпринимательство
- Социальные сети и искусственный интеллект
- Криминальные дела
- Социальные сети, Маркетинг
- Энергетика и экология
- Технологии, Искусственный Интеллект, Полиция
- Программирование, Искусственный интеллект, Рынок труда
- Социальные сети, дезинформация, анализ данных
- Потребительские права
- Образование и наука
- Технологии и правосудие
- Технологии, Безопасность, Автомобили
- Энергетика и окружающая среда
- Личностное развитие
- Технологии и экономика
- Медиа и коммуникации
- Миграция и иммиграция
- Личностный рост
- Налоговая система
- Медиа и телевидение
- Интернет и телекоммуникации
- Технологии, Кибербезопасность
- Здоровье
- Социальные сети и карьера
- Политика и инфраструктура
- Предпринимательство
- Промышленность программного обеспечения
- СМИ и коммуникации
- Медиа и Общество
- Медицина и генетика
- Веб-разработка и дизайн
- Технологии, процессоры
- IT-индустрия
- Кинопроизводство и технологии
- Транспорт
- Текстовый анализ
- Технологии, дизайн интерфейсов
- Офисные приложения
- Технологии, Онлайн-сервисы
- Медицина и биотехнологии
- Общество и технологии
- Экономика и рынок труда
- Искусственный интеллект, программирование, аналитика
- Технологии, следствие
- Сетевые технологии
- Технологии и веб-разработка
- Программирование, Обучение, Практика
- Коммуникации и ИТ
- Технологии, Карьера, Экономика
- Технологии и транспорт
- Здравоохранение и медицина
- Технологии, Государственное управление
- IT-безопасность
- IT и разработка
- Финансы и экономика
- Социальные сети, Общество, Сообщества
- IT-разработка
- СМИ и политика
- Конфиденциальность и безопасность
- Экономика и политика
- Технологии и общественная жизнь
- Бизнес и этика
- Безопасность и защита информации
- Технологии, бизнес
- Интернет и цензура
- Государственное регулирование
- Игры, Технологии
- Технологии и оптимизация
- Технологии ИИ и машинного обучения
- Технологии, IT, карьера
- IT и программное обеспечение
- Право и преступность
- Криминал и Правоохранительные Органы
- Технологии и энергетика
- Нефтяная промышленность
- Социальные конфликты
- Преступность и безопасность
- Таможенная очистка
- Медиа и журналистика
- Технологии и разработка приложений
- Телекоммуникации
- Консалтинг и управление
- Управление человеческими ресурсами
- Онлайн-контент
- Психология и психотерапия
- Морская отрасль
- Психология и технологии
- Социальные проблемы
- Маркетинг и реклама
- Политика и власть
- Экономика и торговля
- Карьера и развитие
- Продуктивность и Управление Временем
- Технологии, Искусственный интеллект, Реклама
- Окружающая среда
- Здоровье и технологии
- Бытовая химия
- Правовая информация
- Юстиция
- Технологии и экология
- Социальные сети и безопасность
- Базы данных
- Политика и государственное управление
- Интернет и социальные сети
- Индустрия IT
- Технологии и программное обеспечение
- История и искусственный интеллект
- Рестораны и обслуживание
- Технологии и программирование
- Социология
- Телевидение и СМИ
- Психология
- Политика и бизнес
- Мобильные устройства
- Технологии и развлечения
- Экология и охрана окружающей среды
- Маркетинг и брендинг
- Медицинская индустрия
- Кибербезопасность и технологии
- Социальные сети и политика
- Развлечения
- ИТ и автоматизация
- Криптовалюты и блокчейн
- История и идеология
- Медицина и политика
- Личная жизнь миллиардеров
- Образование и Политика
- Туризм и отдых
- Психология и искусственный интеллект
- Удаленная работа и производительность
- Выживание
- Управление командами
- Разработка
- Международная торговля
- Корпоративная ответственность
- Социальные сети и общество
- Управление серверами
- Индустрия компьютерных игр
- Политика и климат
- Онлайн-игры
- Медицинская отрасль
- Искусственный интеллект и технологии
- Религия и мораль
- Путешествия
- Социальные сети и информация
- Технологии и медиа
- Технологии и свобода
- Электронная коммерция
- Бизнес и управление
- Психическое здоровье и технологии
- Технологии и устойчивое развитие
- Технологии и социальные сети
- Профессии
- Экономика и промышленность
- Технологии и трудоустройство
- Иммиграционная политика
- Продуктивность и фокус
- Технологии и робототехника
- Свобода слова
- Психология и власть
- Социальные сети и онлайн-платформы
- Технологии и Права Человека
- СМИ и журналистика
- Окружающая среда и здоровье
- Технологии и сервисы
- Индустрия игр
- Программирование и ИИ
- Медиа и пропаганда
- Социальная сфера
- Социальные сети и общественное мнение
- Поп-культура
- Сервисы потокового вещания
- Рынок развлечений
- Социальные медиа и политика
- Технологии и информация
- Медиа и развлечения
- Квантовая криптография
- Искусственный интеллект в индустрии развлечений
- Технологии и коммуникация
- Индустрия программирования
- Финансовая безопасность
- Международные отношения
- Бизнес и лидерство
- Технологические новости и аналитика
- Программное обеспечение и технологии
- Предпринимательство и малый бизнес
- Политика и общественный контроль
- Здравоохранение и политика
- Управление персоналом и эффективность разработки
- Технологии и ИТ‑управление
- Свобода слова и дезинформация
- Веб-дизайн и разработка
- Веб‑разработка и карьера
- Культура и общество
- Цифровые права и свобода слова
- Безопасность и искусственный интеллект
- Технологии и искусство
- Мобильные приложения
- Продуктивность
- Космические технологии и безопасность
- Технологические тренды и экономика
- Безопасность и конфиденциальность
- Продуктивность и личная эффективность
- Веб‑скрейпинг и автоматизация
- Политика и социальные сети
- Политика и безопасность
- Медиа и информационное пространство
- Медицина и Психология
- Интернет‑культура и медиа
- Технологии и разработка
- Сociety
- Развитие интеллекта и профессиональные навыки
- Linux, программирование