С целью упрощения использования, были созданы программные интерфейсы (API) для библиотек, абстрагирующие низкоуровневые взаимодействия с датчиками. Данная страница содержит описание соответствующих библиотек для Pytrack, Pysense и Pyscan. Глава включает в себя подробную информацию о различных методах и классах, доступных для каждого из датчиков.
Обратите внимание, что в эти библиотеки еженедельно добавляются дополнительные функции. Если требуемая функция недоступна, вы можете отправить запрос в репозиторий Libraries GitHub.
Содержание плат
Плата: 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°. Как только плата отклонится за пределы этого диапазона, значения будут повторяться. Это связано с отсутствием измерений рыскания, из-за чего невозможно узнать точную ориентацию платы.
Плата: 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 для получения дополнительной информации о длинах волн обоих датчиков.
Конструкторы
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) с двумя значениями уровней освещенности в люксах.
Аргументы
Следующие аргументы могут быть переданы в конструктор.
Плата: Pysense
Датчик влажности и температуры обеспечивает вывод значения относительной влажности и внешней температуры.
Конструкторы
class SI7006A20(pysense = None, sda = ‘P22’, scl = ‘P21’)
Создает объект SI7006A20, который будет возвращать значения влажности (%) и температуры (°C). Конструктор должен быть передан Pysense или объекту I2C для успешной инициализации.
Методы
SI7006A20.humidity()
Считывает относительную влажность из SI7006A20. Возвращает значение типа float с относительной влажностью в процентах.
SI7006A20.temperature()
Считывает внешнюю температуру из SI7006A20. Возвращает значение типа float с температурой.
Плата: 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).
Аргументы
Следующие аргументы могут быть переданы в конструктор.
Плата: 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)
Загружает предоставленный ключ в буфер ключей.
MFRC630.mfrc630_MF_read_block(block_address, dest)
Считывает блок памяти с аутентифицированной карты. Пробует прочитать блок памяти из карты с соответствующими таймаутами и проверкой ошибок.
Возвращает количество полученных байтов или 0 в случае ошибки.
MFRC630.mfrc630_MF_auth(uid, key_type, block)
Выполняет процедуру аутентификации MIFARE. Эта функция является высокоуровневым враппером для команды проверки подлинности MIFARE. Результат аутентификации проверяется на успешность выполнения проверки. Ключ должен быть загружен в буфер ключей с помощью MFRC630.mfrc630_cmd_load_key(key).
После окончания аутентификации, проверка подлинности ДОЛЖНА быть остановлена вручную вызовом метода mfrc630_MF_deauth() или отключением бита Crypto1 ON в регистре состояния.
Возвращает 0 в случае сбоя, ненулевое число в случае успеха.
MFRC630.mfrc630_MF_deauth()
Отключает MIFARE аутентификацию. Отключает бит Crypto1 из регистра состояния, чтобы отключить шифрование.
MFRC630.mfrc630_iso14443a_WUPA_REQA(instruction)
Отправляет WUPA и REQA. Возвращает байт ответа. Ответ на запрос А байт (ATQA) или 0 в случае отсутствия ответа.
MFRC630.mfrc630_iso14443a_select(UID)
Выполняет процедуру SELECT для обнаружения UID карты. Выполняет процедуру SELECT, как описано в ISO14443A, - определяет 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 в шестнадцатеричный формат.
MFRC630.mfrc630_print_block(data, len)
Печатает байты из массива data в шестнадцатеричном формате, разделенные пробелами, используя метод mfrc630_format_block.
Глава описывает различные методы для режимов Сна и Пробуждения, встроенные в библиотеки 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. Это не относится к скриптам, загруженным на плату.
г. Москва, Пятницкое ш. д. 18, пав. 566
zakaz@compacttool.ru
8-495-752-55-22
Информация представленная на данном информационном ресурсе преследует исключительно рекламные цели и не является договором-офертой !
© Все права защищены 2015 - 2024г https://compacttool.ru