акселлерометр.как его использовать

акселлерометр.как его использовать



Вступление

В этом эксперименте вы рассмотрите пример использования акселерометра, позволяющего сделать чувствительный сигнал о движении из micro: bit. Расширяющий пример, сочетающий использование акселерометра с micro: bit для измерения ориентации micro: bit и использования это контролировать угол сервопривода. 

Необходимые запчасти

Вам понадобятся:



Акселерометр - это датчик, который измеряет силы гравитации, воздействующие на него во всех трех измерениях осей X, Y и Z микросхемы.



Акселерометр может не только измерять силы, воздействующие на микросхему и объект, на котором находится микросхема, но он также может обнаруживать шаги, сотрясения и другие движения, которые имеют определенный паттерн. Кроме того, вы можете использовать акселерометр, чтобы просто определить ориентацию устройства. Вы когда-нибудь задумывались, как ваш телефон узнает, когда вы поворачиваете его из портретного в альбомное? Это все из-за акселерометра в телефоне!

В качестве примера использования акселерометра давайте сделаем проект:

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

Если вы сейчас попытаетесь переместить микробит, то все светодиоды загорятся, указывая на то, что сработала сигнализация. Положите микробит и затем нажмите кнопку A, чтобы установить будильник снова.

Вот версия для MAKECODE


  здесь можно открыть программу в редакторе .

программа работает так:

Блок  включения  запускается при первом запуске программы после включения или сброса микробита. Это устанавливает переменную  z (ускорение по оси Z) в ноль. Он также устанавливает логическую (true или false) переменную ( alarm triggered) в false. Переменная  alarm triggered будет использоваться для указания другим частям программы, что сработала сигнализация.

forever Цикл будет работать снова и снова , и состоит из трех частей, каждая часть будучи  ifthen блок.

Первый  ifthen блок проверяет нажатие кнопки A, и если кнопка A нажата, он отображает символ треугольника, ждет две секунды (2000 миллисекунд), а затем считывает ускорение по оси z в переменную  z. Наконец это очищает экран.

Второе условие if / then в  forever блоке проверяет текущее ускорение по оси z по значению, сохраненному в переменной,  z и, если оно меньше, чем сохраненное чтение, с полем 30, оно устанавливает значение переменной  alarm triggered true.

Последняя часть кода определяет, что происходит, когда  alarm triggered переменная равна true. Если сработала сигнализация,   на дисплее будет отображаться символ креста, в противном случае дисплей будет очищен. alarm triggered Переменная будет оставаться верной , пока кнопка A не будет нажата снова.

MicroPython

Вот версия кода для сигнализации движения MicroPython.

  1. from microbit import *
  2.  
  3. z = 0
  4. alarm_triggered = False
  5.  
  6. while True:
  7. if button_a.was_pressed():
  8. # Wait for 2 seconds while the alarm is armed
  9. display.show(Image.TRIANGLE)
  10. sleep(2000)
  11. z = accelerometer.get_z() # take a reading while still
  12. alarm_triggered = False # the alarm is now armed
  13. # Check to see if acceleration on z axis changed by 30
  14. if accelerometer.get_z() < z – 30:
  15. alarm_triggered = True
  16. if alarm_triggered:
  17. display.show(Image.NO) # display a cross
  18. else:
  19. display.clear()


Код представляет собой почти построчную копию кода блоков JavaScript, но переведен на Python.

сейчас попробуем управлять серво мотором с помощью микробит

подключение

сделайте схему подключения как на картинке

серво подключение





создайте программу


альтернативный текст

открыть в редакторе здесь

ускорение

acceleration Блок может быть найден в группе входных блоков. Этот блок возвращает силу притяжения силы тяжести на определенной оси микро: бит (X, Y или Z) и представляет это значение в виде диапазона чисел от -1023 до 1023. В этом случае мы измеряем ось X, которая это поперечный наклон микро: бит. Если вы наклоните микро: бит полностью влево, вы получите значение -1023, а вправо - 1023.

карта

map Блок выглядит устрашающе, но это один из самых полезных блоков в MakeCode. map Блок принимает заданную переменную , которая имеет известный диапазон - в этом случае -1023 до 1023 - и «карты» или масштабируется диапазон, значение для другого заданного диапазона. Заданный диапазон, который мы хотим, составляет от 15 до 165, что является хорошим  безопасным  диапазоном вращения для сервопривода. Итак, в конце -1023 заканчивается равным 0, а 1023 заканчивается как 165 от  map блока.

Что вы должны увидеть

В начале программы сервопривод должен переместиться на 90 градусов, а затем отреагировать на ориентацию микробита. Если вы держите микробит в горизонтальном положении, сервопривод станет на 90 градусов. Затем, если вы наклоните микробит влево, сервопривод переместится на угол 15 градусов. Если вы переместите микробит вправо, сервопривод переместится в сторону 165 градусов.





Report Page