Просьба строго не судить, т.к. это моя первая, но надеюсь далеко не последняя, статья. Хотя это и есть по сути перевод статьи расположенной здесь, но перевод всё же не дословный, я постарался внести некоторые уточнения и исправления где, на мой взгляд, это требовалось. Обсуждение статьи и программирования на Python с использованием функций акселерометра на форуме. В конце статьи я приложил исходники примеров приведенных в самой статье.
Сегодня я расскажу как можно использовать функции акселерометра, а точнее его датчиков, в Ваших программах на Python, для этого мы воспользуемся модулем sensor. Акселерометр имеет сенсор, или другими словами просто датчик, поворота и сенсор ускорения.
Итак начнем..
Импортируем модули e32 и sensor:
Смотрим какие сенсоры нам доступны:
Получаем идентификатор и категорию сенсора ускорения, например так:
id=sensors["AccSensor"]["id"]
cat=sensors["AccSensor"]["category"]
Определим функцию которая будет вызываться при событиях сенсора. Ей будет передаваться один аргумент который мы и используем внутри функции (вместо точек поставьте пробелы) :
..print value
Теперь давайте получим объект сенсора ускорения:
Установим фильтр событий на фильтрацию событий сенсора ускорения (чтобы фиксировались только соответствующие события) :
#Если Вы хотите получать данные низкого уровня, то устанавливайте sensor.EventFilter() как базовый фильтр событий для класса
senobj.set_event_filter(sensor.OrientationEventFilter())
Подключимся к сенсору:
Подождем 15 секунд:
Теперь отключимся от него:
На этом пока всё. Ниже приведен полный листинг кода для датчика ускорения:
sensors=sensor.sensors()
id=sensors["AccSensor"]["id"]
cat=sensors["AccSensor"]["category"]
def printout(value):
..print value#Вместо точек поставьте пробелы
senobj=sensor.Sensor(id, cat)
senobj.set_event_filter(sensor.OrientationEventFilter())
senobj.connect(printout)
e32.ao_sleep(15)
senobj.disconnect()
И код для датчика поворота:
sensors=sensor.sensors()
id=sensors["RotSensor"]["id"]
cat=sensors["RotSensor"]["category"]
def printout(value):
..print value#Вместо точек поставьте пробелы
senobj=sensor.Sensor(id, cat)
senobj.set_event_filter(sensor.RotEventFilter())
senobj.connect(printout)
e32.ao_sleep(15)
senobj.disconnect()
Продолжение следует..
Прикрепленный файл: 2570_ac_samples.zip
А что такое "сенсор ускорения"?
0 ответить