В данной статье описана библиотека MRAA, которая позволяет существенно упростить работу с различными типами устройств с помощью:
- аналоговый вход;
- цифровой ввод и вывод;
- широтно-импульсная модуляция (ШИМ);
- двухпроводная шина I2C;
- Универсальный асинхронный приёмопередатчик (UART);
- прерывается при изменении уровня входного сигнала.
Вместо примеров с полными программами мы рассмотрим небольшие фрагменты на языке C, которые покажут основные принципы работы MRAA API. Чтобы получить дополнительную информацию из этой статьи, вы должны знать следующее:
- Легко освоить ОС Linux и язык C;
- иметь базовые знания цифровой электроники и использования GPIO (вход/выход общего назначения – входы и выходы общего назначения);
- иметь документацию на используемые вами устройства.
1. Обзор MRAA MRAA (произносится «у-ра») — это низкоуровневая библиотека, написанная на C. Она предназначена для абстрагирования деталей, связанных с доступом и управлением вводом-выводом на такой платформе, как Intel Galileo или Intel Edison, путем введения одного небольшого API. .
.
- MRAA действует как переходный уровень для базовых возможностей ввода-вывода портов (GPIO) в Linux. Несмотря на то, что Linux предлагает достаточно богатую инфраструктуру для управления GPIO, а типичные команды для работы с GPIO являются стандартными, использовать их все равно может быть сложно.
- Каждая платформа уникальна.
Каждый из них имеет разные возможности, чистые контакты и типы GPIO. Например, пин может не поддерживать одну и ту же функциональность на двух разных платформах.
Пин может не существовать на этой платформе.
Кроме того, способ его настройки может зависеть от многих факторов.
Например, использование контакта в одном режиме может помешать работе другого контакта в другом режиме или вообще запретить его использование.
А поскольку библиотека MRAA позволяет создавать платформонезависимый код, это упрощает разработку.
- Следует помнить, что хотя MRAA можно использовать для написания независимого от платформы кода, ответственность за обеспечение устойчивости кода к ограничениям всех платформ, на которых он может выполняться, по-прежнему лежит на разработчике.
1.1 Загрузка библиотеки MRAA и документации по API
Пакет MRAA уже установлен на Intel Galileo и Intel Edison и может быть подключен к вашему коду, как показано ниже.
Последний исходный код также можно загрузить из репозитория Intel.
Документация по API доступна по адресу http://iotdk.intel.com/docs/master/mraa/
1.2 Названия контактов GPIO
В этой статье есть различные пины.Аппаратные контакты обычно обозначаются номером.
Номер контакта также может начинаться с буквы «D» для цифрового типа и с буквы «А» для аналогового типа.
Например, «D0» будет указывать на цифровой контакт №0, а «A3» — на аналоговый входной контакт №3. Вывод также можно указать как GPIO6, т.е.
это вывод GPIO под номером 6, без указания его типа «D» или «A», т.е.
он может быть как цифровым, так и аналоговым.
1.3 Подключение библиотеки
При компиляции свяжите библиотеку командой –lmraa, например:gcc -g blink.c -o blink -lmraa
1.4 Использование MRAA
Прежде чем писать код, имейте в виду следующее.
1. При запуске программы MRAA необходимо инициализировать следующим образом: mraa_result_t rv;
rv = mraa_init();
if (rv != MRAA_SUCCESS)
Теги: #iot #DIY или Сделай сам #i2c #uart #ADC #shim #galileo #intel edison #edison #ADC #intel galileo #pwm #mraa
-
Динозавры
19 Oct, 24 -
Верните Свое Время
19 Oct, 24 -
Возникающие Технологии Мобильных Телефонов
19 Oct, 24 -
Колония. Глава 18: Важная Находка
19 Oct, 24 -
Встреча По Системному Анализу, 10/12
19 Oct, 24