Подобрать микросхему АЦП и написать код для МК STM32
1. Подобрать отладочную плату с МК STM32:
Прошивка через внешний программатор
USB порт на плате
Интерфейс USART x3
Возможные варианты:
STM32F411CEU6 Black Pill
Blue Pill STM32 Cortex M3
2. Подобрать микросхему АЦП с характеристиками:
АЦП 24 бита
Коэффициент усиления 64 +
SPS 2500 Hz +
Возможность обработки показателей аналогового тензодатчика (DYLY104 или подобного):
Output sensivity 2mv/V
Impedance 350 om
Voltage 5-15V
Точность считывания не ниже +-1 кг, скорость обработки данных не ниже 2500 Гц
Возможные варианты:
CS5532 - необходима проверка на совместимость
3. Разработка принципиальной схемы для подключения 3-х датчиков к МК с использованием выбранной микросхемы АЦП
4. Изготовление и сборка модуля с микросхемами АЦП для тестирования (МК и модуль имеют проводное соединение)
5. Написание кода для МК под следующие задачи:
5.1. Обработка значений с 3-х тензодатчиков со скоростью не ниже 2500 Гц
Функции:
- getvalue - получение значения с одного выбранного датчика. Функция циклична, выполняется непрерывно
- zeroize - обнуление. Текущее значение массы груза записывается в переменную МК, далее при последующих вызовах функции getvalue из значения с датчика вычитается масса груза. Функция вызывается при получении соответствующей команды от ПК
- calibration - калибровка датчика. Нужна для перевода полученных значений с датчика в килограммы (определение нулевой точки массы и сопоставление значения с датчика с реальной массой груза).
Алгоритм: Функция вызывается при получении соответствующей команды от ПК, в это время на датчике нет груза. Текущее значение записывается в переменную как нулевая точка для отсчета. В это время обработка данных со всех датчиков и оправка значений на ПК приостанавливается. К датчику прикрепляется груз с известной массой и значение отправляется на плату. Изменение в диапазоне значений с датчика необходимо разделить на массу груза, тем самым получив соотношение 1 кг реальной массы к единицам с датчика. Это чисто называется коэффициентом калибровки (индивидуальное для каждого датчика). На это число нужно делить в дальнейшем все полученные значения с датчика. Коэффициенты калибровки должны храниться сохраняться при отключении платы от питания
Передача значений на ПК через UART виде строки "a b c " Передача значений на ПК через UART виде строки "a b c " где а,b,с - значения с датчиков, любые числа в диапазоне от -999999 до +999999 (кг). После каждого числа ставится пробел. Отправка строки каждый раз происходит с новой строки.
5.2. Прием и обработка платой команд от ПК:
"1 1 " - 1-номер датчика (1 или 2 или 3), 1 - команда "обнуление". После выполнения команды плата должна отправить в ответ "ок "
"1 2 " - 1-номер датчика (1 или 2 или 3), 2 - команда "калибровка". Плата сохраняет во временную переменную текущее значение с датчика (без учета значения обнуления), отправляет в ответ "ок " и ожидает значения массы груза. После получения массы и расчета коэффициента плата возвращается с циклу считывания данных с датчиков и их отправки на ПК. При получении массы груза = 999999, калибровка отменятся.
"1 3" - отправка в ответ на ПК коэффициента калибровки выбранного датчика.
5.3 Добавление передачи данных на модуль ESP8266 (WIFI) и Bluetooth по UART или I2C. Обмен данных происходит по аналогичному передачи данных на ПК алгоритму.
6. Написание кода для ESP (WiFi модуль).
6.1 WiFI - создание точки доступа или подключение к текущей сети
веб страница для пользователя:
- вывод 3-х значений с датчиков (скорость обновления данных должна быть выше 2000 Гц)
- кнопки обнуления для каждого из датчиков
- возможность отключить вывода значений с определенных датчиков
- калибровка датчиков - отдельная кнопка на каждый датчик, после нажатия необходимо ввести массу груза (алгоритм работы аналогичный алгоритму передачи по UART)
- выбор единиц измерения (kg, kN, lb,). Значения с платы всегда поступают в килограммах, при смене единиц измерения значения должны пересчитываться в другие единицы измерения.
- По умолчанию WiFI модуль создает сеть "NAME" c паролем 00000000. На пользовательской странице должна быть предусмотрена возможность смены пароля, пароль хранится в энергонезависимой памяти.
- На пользовательской странице должен быть переключатель режима WIFI, во втором режиме пользователь вводит на веб странице логин и пароль существующей wifi сети. После сохранения модуль подключается к ней. В случае ошибки подключения в течение 30 секунд плата переходит автоматически в первый режим (раздача точки WiFI "NAME" )