Каталог

Справочник по API

С целью упрощения использования, были созданы программные интерфейсы (API) для библиотек, абстрагирующие низкоуровневые взаимодействия с датчиками. Данная страница содержит описание соответствующих библиотек для Pytrack, Pysense и Pyscan. Глава включает в себя подробную информацию о различных методах и классах, доступных для каждого из датчиков.

Обратите внимание, что в эти библиотеки еженедельно добавляются дополнительные функции. Если требуемая функция недоступна, вы можете отправить запрос в репозиторий Libraries GitHub.

Содержание плат

  • Pytrack: LIS2HH12, Quectel L76-L GNSS
  • Pysense: LIS2HH12, LTR-329ALS-01, MPL31152A, Si7006A20
  • Pyscan: LIS2HH12, LTR-329ALS-01, MFRC6300

 


3-осевой акселерометр LIS2HH12

Плата: Pytrack / Pysense / Pyscan

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

Конструкторы

class LIS2HH12(pysense = None, sda = ‘P22’, scl = ‘P21’)

Создает объект LIS2HH12, который будет возвращать значения для ускорения, крена, тангажа и рыскания. Конструктор должен быть передан Pytrack / Pysense / Pyscan или объекту I2C для успешной инициализации.

Методы

LIS2HH12.acceleration()

Считывает ускорение из LIS2HH12. Возвращает значение типа кортеж (tuple) с показателями ускорения по трем осям X,Y,Z (G).

LIS2HH12.roll()

Считывает текущий угол крена из LIS2HH12. Возвращает значение типа float в диапазоне от -180° до 180°.

LIS2HH12.pitch()

Считывает текущий угол тангажа из LIS2HH12. Возвращает значение типа float в диапазоне от -90° до 90°. Как только плата отклонится за пределы этого диапазона, значения будут повторяться. Это связано с отсутствием измерений рыскания, из-за чего невозможно узнать точную ориентацию платы.

 


GPS с ГЛОНАСС Quectel L76-L GNSS

Плата: Pytrack

GPS с ГЛОНАСС, который обеспечивает выходные данные долготы / широты, скорости и другой информации о местонахождении.

Конструкторы

class L76GNSS(pytrack = None, sda = ‘P22’, scl = ‘P21’, timeout = None)

Создает объект L76GNSS, который будет возвращать значения долготы и широты. Конструктор должен быть передан Pytrack или объекту I2C для успешной инициализации. Задайте в параметре timeout интервал времени в секундах, в течение которого GPS будет выполнять обнаружение координат. Если к моменту истечения времени timeout координаты не обнаружены, метод coordinates возвратит значение (None, None).

Методы

L76GNSS.coordinates (debug = False)

Считывает долготу и широту из L76GNSS. Возвращает значение типа кортеж (tuple) с долготой и широтой. Параметр debug, установленный в значение True, позволяет выводить из GPS подробную отладочную информацию.

 


Цифровой датчик внешней освещенности LTR-329ALS-01

Плата: Pysense / Pyscan

Двойнов датчик освещенности, который обеспечивает выходные данные о внешнем уровне освещенности в люксах. Обратитесь к документации LTR-329ALS-01 для получения дополнительной информации о длинах волн обоих датчиков.

Конструкторы

class LTR329ALS01(pysense = None, sda = ‘P22’, scl = ‘P21’, gain = ALS_GAIN_1X, integration = ALS_INT_100, rate = ALS_RATE_500)

Создает объект LTR329ALS01, который будет возвращать значения для света в люксах. Конструктор должен быть передан Pysense / Pyscan или объекту I2C для успешной инициализации.

Методы

LTR329ALS01.light()

Считывает уровни освещенности обоих датчиков LTR329ALS01. Возвращает значение типа кортеж (tuple) с двумя значениями уровней освещенности в люксах.

Аргументы

Следующие аргументы могут быть переданы в конструктор.

  • Усиление: ALS_GAIN_1X, ALS_GAIN_2X, ALS_GAIN_4X, ALS_GAIN_8X, ALS_GAIN_48X, ALS_GAIN_96X
  • Интеграция: ALS_INT_50, ALS_INT_100, ALS_INT_150, ALS_INT_200, ALS_INT_250, ALS_INT_300, ALS_INT_350, ALS_INT_400
  • Скорость: ALS_RATE_50, ALS_RATE_100, ALS_RATE_200, ALS_RATE_500, ALS_RATE_1000, ALS_RATE_2000

 


Датчик влажности и температуры SI7006A20

Плата: Pysense

Датчик влажности и температуры обеспечивает вывод значения относительной влажности и внешней температуры.

Конструкторы

class SI7006A20(pysense = None, sda = ‘P22’, scl = ‘P21’)

Создает объект SI7006A20, который будет возвращать значения влажности (%) и температуры (°C). Конструктор должен быть передан Pysense или объекту I2C для успешной инициализации.

Методы

SI7006A20.humidity()

Считывает относительную влажность из SI7006A20. Возвращает значение типа float с относительной влажностью в процентах.

SI7006A20.temperature()

Считывает внешнюю температуру из SI7006A20. Возвращает значение типа float с температурой.

 


Датчик барометрического давления с высотомером MPL3115A2

Плата: Pysense

Датчик барометрического давления обеспечивает показания давления и высоты, также имеет дополнительный датчик температуры. Отклиброванный диапазон давления: 50-110 (кПа). Откалиброванный диапазон температуры: -40°С...+85°С

Конструкторы

class MPL3115A2(pysense = None, sda = ‘P22’, scl = ‘P21’, mode = PRESSURE)

Создает объект MPL3115A2, который будет возвращать значения давления (Па), высоты (м) и температуры (°C). Конструктор должен быть передан Pysense или объекту I2C для успешной инициализации.

Методы

MPL3115A2.pressure()

Считывает атмосферное давление из MPL3115A2. Возвращает значение типа float с давлением в (Па).

MPL3115A2.altitude()

Считывает высоту из MPL3115A2. Возвращает значение типа float с высотой в (м).

MPL3115A2.temperature()

Считывает температуру из MPL3115A2. Возвращает значение типа float с температурой в (°C).

Аргументы

Следующие аргументы могут быть переданы в конструктор.

  • mode: pressure, altitude

 


Библиотека NFC MFRC6300

Плата: Pyscan

Конструкторы

class MFRC630(pyscan=None, sda=‘P22’, scl=‘P21’, timeout=None, debug=False)

Создает объект MFRC630. Конструктор должен быть передан Pyscan или объекту I2C для успешной инициализации.

Методы

MFRC630.mfrc630_cmd_init()

Инициализирует MFRC630 с некоторыми настройками

MFRC630.mfrc630_cmd_reset()

Перезагружает устройство. Останавливает текущую активную команду и сбрасывает устройство.

MFRC630.mfrc630_cmd_idle()

Устанавливает устройство в режим ожидания. Останавливает текущую активную команду и возвращается в режим ожидания.

MFRC630.mfrc630_cmd_load_key(key)

Загружает предоставленный ключ в буфер ключей.

  • key - массив, который содержит ключ MIFARE. Длина ключа всегда составляет 6 байтов

MFRC630.mfrc630_MF_read_block(block_address, dest)

Считывает блок памяти с аутентифицированной карты. Пробует прочитать блок памяти из карты с соответствующими таймаутами и проверкой ошибок.

  • block_address - блок для чтения
  • dest - массив, в который нужно записать 16 байтов, прочитанных с карты

Возвращает количество полученных байтов или 0 в случае ошибки.

MFRC630.mfrc630_MF_auth(uid, key_type, block)

Выполняет процедуру аутентификации MIFARE. Эта функция является высокоуровневым враппером для команды проверки подлинности MIFARE. Результат аутентификации проверяется на успешность выполнения проверки. Ключ должен быть загружен в буфер ключей с помощью MFRC630.mfrc630_cmd_load_key(key).

После окончания аутентификации, проверка подлинности ДОЛЖНА быть остановлена вручную вызовом метода mfrc630_MF_deauth() или отключением бита Crypto1 ON в регистре состояния.

  • key_type - ключ MIFARE A или B (MFRC630_MF_AUTH_KEY_A или MFRC630_MF_AUTH_KEY_B) для использования
  • block - блок для аутентификации
  • uid - процедура требует, чтобы первые четыре байта UID карты аутентифицировались

Возвращает 0 в случае сбоя, ненулевое число в случае успеха.

MFRC630.mfrc630_MF_deauth()

Отключает MIFARE аутентификацию. Отключает бит Crypto1 из регистра состояния, чтобы отключить шифрование.

MFRC630.mfrc630_iso14443a_WUPA_REQA(instruction)

Отправляет WUPA и REQA. Возвращает байт ответа. Ответ на запрос А байт (ATQA) или 0 в случае отсутствия ответа.

  • instruction: MFRC630_ISO14443_CMD_WUPA, MFRC630_ISO14443_CMD_REQA

MFRC630.mfrc630_iso14443a_select(UID)

Выполняет процедуру SELECT для обнаружения UID карты. Выполняет процедуру SELECT, как описано в ISO14443A, - определяет UID карты: если присутствует несколько карт, возникает коллизия, которая обрабатывается в соответствии с нормой.

  • uid: UID карты будет сохранен в этом массиве.

Возвращает длину UID в байтах (4, 7, 10) или 0 в случае сбоя.

MFRC630.print_debug(MSG)

Печатает отладочные сообщения, если DEBUG включен.

MFRC630.format_block(block, lenght)

Печатает содержимое block с length

MFRC630.mfrc630_format_block(data, len)

Преобразует data в шестнадцатеричный формат.

  • data - массив для форматирования
  • len - количество байтов для форматирования

MFRC630.mfrc630_print_block(data, len)

Печатает байты из массива data в шестнадцатеричном формате, разделенные пробелами, используя метод mfrc630_format_block.

  • data - массив для печати
  • len - количество байтов для печати

 


Спящий режим

Глава описывает различные методы для режимов Сна и Пробуждения, встроенные в библиотеки Pytrack и Pysense. И Pytrack, и Pysense имеют одинаковые методы, однако, для каждого их них, должен быть создан экземпляр соответствующего класса: pytrack или pysense.

Пример быстрого использования

Следующий пример также доступен в разделе "Примеры режимов Сон и Пробуждение" библиотек PyCom в репозитории GitHub.

#импорт Pytrack
from pysense import Pysense
from LIS2HH12 import LIS2HH12
import time

#py = Pytrack()
py = Pysense()

# отображает код причины и время сна в секундах
# возможные значения причин:
# WAKE_REASON_ACCELEROMETER = 1
# WAKE_REASON_PUSH_BUTTON = 2
# WAKE_REASON_TIMER = 4
# WAKE_REASON_INT_PIN = 8

print("Wakeup reason: " + str(py.get_wake_reason()))
print("Approximate sleep remaining: " + str(py.get_sleep_remaining()) + " sec")
time.sleep(0.5)

py.setup_int_pin_wake_up(False)

acc = LIS2HH12()

py.setup_int_wake_up(True, True)
acc.enable_activity_interrupt(2000, 200)
py.setup_sleep(300)
py.go_to_sleep()

Методы

pytrack.get_sleep_remaining()

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

pytrack.get_wake_reason()

Возвращает последнюю причину пробуждения. Возможные значения:

# WAKE_REASON_ACCELEROMETER = 1 # Определение активности / бездействия акселерометра
# WAKE_REASON_PUSH_BUTTON = 2   # Кнопка сброса Pytrack / Pysense
# WAKE_REASON_TIMER = 4         # Нормальное завершение интервала сна
# WAKE_REASON_INT_PIN = 8       # INT контакт

Примечание: WAKE_REASON_INT_PIN можно использовать, если переключен вывод PIC_RC1 (вывод №6 в блоке дополнительных внешних контактов общего назначения).

Как и в предыдущем примере, этот метод должен вызываться в начале скрипта, чтобы выяснить причину сброса (пробуждения).

pytrack.go_to_sleep([GPS = True])

Переводит плату в спящий режим на время, которое должно быть предварительно установлено с помощью pytrack.setup_sleep(timout_sec). Необязательный логический параметр устанавливает состояние GPS во время сна.

Код MicroPython, следующий за этой функцией, не выполняется, потому что Пробуждение перезапускает MicroPython.

pytrack.setup_int_wake_up([rising, falling])

Задает в качестве источника пробуждения контакт INT акселерометра (PIC - RA5). Логические параметры будут указывать, что передний фронт rising (обнаружение активности) и / или задний фронт falling (обнаружение бездействия) настроены.

Акселерометр (класс LIS2HH12) также должен быть настроен на определенный порог ускорения и продолжительность. Фрагмент кода:

from pytrack import Pytrack
from LIS2HH12 import LIS2HH12

py = Pytrack ()
acc = LIS2HH12 ()

# разрешить прерывание активности, а также неактивности, используя обработчик обратного вызова по умолчанию
py.setup_int_wake_up (True, True)

# установка порога ускорения на 2000mG (2G) и минимальной длительности на 200мс
acc.enable_activity_interrupt (2000, 200)

pytrack.setup_int_pin_wake_up([rising_edge = True])

Задает в качестве источника пробуждения контакт INT (PIC - RC1, вывод №6 в блоке дополнительных внешних контактов общего назначения). Должен быть установлен либо передний, либо задний фронт. По умолчанию это передний фронт.

pytrack.setup_sleep(time_seconds)

Устанавливает интервал сна, указанный в секундах. Фактический сон будет запущен вызовом метода go_to_sleep().

Предупреждение: запуск через repl вызова setup_sleep() приведет к зависанию / падению repl. Это не относится к скриптам, загруженным на плату.

footer shadow
Контакты

г. Москва, Пятницкое ш. д. 18, пав. 566

zakaz@compacttool.ru

8-495-752-55-22

compacttool logoadaptive site

accepted payment systems

Информация представленная на данном информационном ресурсе преследует исключительно рекламные цели и не является договором-офертой !

© Все права защищены 2015 - 2024г https://compacttool.ru