Awesome
Модуль MicroPython для управления однооборотным магнитным энкодером AS5600 от AMS OSRAM
AS5600, в дальнейшем энкодер, это простой в программировании магнитный датчик положения с 12-битным аналоговым или ШИМ-выходом высокого разрешения. Эта бесконтактная система измеряет абсолютный угол диаметрально намагниченного осевого магнита. Энкодер предназначен для применения в бесконтактных потенциометрах, а его конструкция исключает влияние любых однородных внешних рассеянных магнитных полей. Стандартный интерфейс I²C поддерживает простая настройка параметров без необходимости использования программатора.
Угловой диапазон
По умолчанию выходные данные представляют собой диапазон от 0 до 360 градусов. Также возможно определить меньший диапазон выходного сигнала, установив угол начального положения и угол конечного положения.
Применения
Применения AS5600 идеально подходит для бесконтактных потенциометров, бесконтактных ручек, педалей, радиоуправляемых сервоприводов и других решений для измерения углового положения.
Адрес датчика
Контроллер доступен по адресу 0x36 на шине I2C. Адрес фиксирован, изменению не подлежит!
Питание
Напряжение питания AS5600 от 3,3 В до 5,0 В!
Шина I2C
Просто подключите контакты (VCC, GND, SDA, SCL) платы энкодера к соответствующим контактам MicroPython платы, ESP или любой другой с залитой прошивкой MicroPython!
Загрузка ПО в плату
Загрузите прошивку micropython на плату NANO(ESP и т. д.), а затем файлы: main.py, as5600mod.py и папку sensor_pack_2 полностью! Затем откройте main.py в своей IDE и запустите/выполните его.
Картинки
Плата AS5600
Среда разработки
Конструктив
Для использования датчика необходима спроектировать и изготовить конструктив для него! Я делал все из подручных материалов, быстро, только чтобы проверить работу моего кода и датчика! Попробуйте поискать на thingiverse! Можно ввести в строке браузера 'конструктив для as5600'. Успехов в творчестве!
Зазор между магнитом и микросхемой датчика
По документации от 0.5 до 1.5 мм. Ориентируйтесь на величину, возвращаемую свойством gain. Оно не должно превышать половины(!) от своего предельного значения, которое составляет 128 и 255 для напряжений питания 3.3 и 5 Вольт соответственно. При этом поля mag_detected и max_gain_ovf, именованного кортежа status_as5600, должны быть в True и False соответственно.