Дополнить Arduino проект функционалом акселерометра

Цена договорная
15 марта 2024, 17:27 • 7 откликов • 63 просмотра
Имеется открытый проект наручных часов написанный в arduino ide под микроконтроллер Atmega168p. (будет здорово если скетч не выйдет за рамки памяти 168р, но если никак то рассмотрю вариант с 328р.)

Гитхаб с исходником (версия noRTC): https://github.com/radon-lab/METRO_LL_clock/tree/m...


Задача внедрить в схему акселерометр, научить просыпаться часы по жесту руки, встряхиванием и/или двойным постукиванием по часам, так же переписать измеритель напряжения аккумулятора на внешний делитель напряжения (пин А3). Оставить возможность отключить функционал акселерометра прямо в скетче как это сделано с фоторезистором (команда USE_LIGHT_SENS в config).


акселерометр LSM6DS3, он имеет встроенную функцию детекции двойного постукивания, но не очень популярен в ардуино среде, так что если не получится можно рассмотреть вариант замены на MPU 6050 или другие. подключение акселерометра по шине i2c, пин прерывания с акселерометра приходит на пин PD3 атмеги. Так же не забыть перекинуть анод сегмента g с PD3 на PD1.


Внести в уже имеющееся меню настроек 2 новых пункта, вкл/выкл просыпание по акселерометру и настройку чувствительности (в виде нескольких ступеней), отображение настроек на семисегментном дисплее в таком же виде как и другие пункты меню.


Так как проект портативный нужно следить за энергопотреблением, использовать сон когда только возможно, просыпаться по прерыванию с акселерометра.

Все железо уже в наличии, надо будет протестировать оптимальные значения ускорений, или заложить в конфиг диапазон значений чтобы даже я справился с их корректировкой.



Файлы