ADXL345 для обнаружения внезапных и значительных изменений ускорения
Я работаю над школьным проектом по разработке датчика удара, когда объект, содержащий ADXL345, падает на землю.
Я использовал сенсорный тест Adafruit ADXL345 из библиотеки, но не знаю, как его запрограммировать так, чтобы показания появлялись только при резком и значительном изменении ускорения в любом направлении x/y/z.
Есть советы, как это сделать?
@taupi, 👍-1
Обсуждение1 ответ
Создайте корпус для Arduino и датчика таким образом, чтобы можно оставить подключенным USB-кабель, соединяющий Arduino с компьютером. Затем запустите приведенный в качестве примера скетч для тестирования сенсора с библиотеки и просмотрите (или, что еще лучше, запишите) данные об ускорении.
Теперь переверните корпус, встряхните его, ударьте по нему, бросьте на заземление... все это время контролируя выход датчика. Я рекомендую вам постройте кривые ускорения: это должно прояснить ситуацию. Что Вы видеть? Можете ли вы сказать разницу между падением корпуса на пол и другие формы тряски, просто глядя на выходные данные? Как отличить? Это величина ускорения или это скорость изменения? Если вы думаете, что скорость изменения больше релевантно, затем измените скетч, чтобы также распечатать эту скорость изменение. В любом случае, можете ли вы найти порог величины (или скорости изменения) ускорения, которое можно было бы использовать для различения падение и другие формы движения? Если да, запишите это.
Я задаю все вышеперечисленные вопросы, чтобы показать вам путь к решению вашей проблема. Цель состоит не только в том, чтобы вы сделали всю работу: я не есть ответы на эти вопросы, и вам действительно придется делать все эту работу самостоятельно.
Вы должны быть в состоянии придумать критерий формы: объект отбрасывается, если такая функция измеренного ускорения выше чем такой порог. Функция, вероятно, будет либо евклидовой норма ускорения или евклидова норма его производной по времени (I не могу сказать, что лучше). Теперь закодируйте функцию в своем скетче, затем вы можете написать что-то вроде:
if (computed_criterion >= drop_threshold) {
signal_that_the_object_has_been_dropped();
}
- Не нашел датчик отпечатков пальцев :( Arduino Mega 2560 Adafruit Fingerprint Sensor
- Почему Adafruit motor shield не крутит моторы?
- Какие компоненты мне нужны маленького GPS-трекера
- Статус выхода 1 ожидаемое первичное выражение перед ']' Arduino
- Есть ли функция Adafruit для инвертирования цветов моего экрана для языка Arduino?
- Библиотека программных материалов для плат SAMD
- В чем разница между выводами SCLK и CLK?
- Попытка понять постоянную скорость AccelStepper
так же, как вы закодировали бы его так, чтобы чтение появлялось только при нажатии кнопки, @jsotola