Электронный компонент:Набор Grove Starter Kit for BeagleBone Green
Черновик |
Набор Grove Starter Kit for BeagleBone Green[1]
Набор Grove Starter Kit for BeagleBone Green – это набор начального уровня для мейкеров, собирающих проекты на базе BBG. Этот комплект, помимо прочего, включает в себя датчики (к примеру, температурный), преобразователь (АЦП), индикаторы (зуммер и RGB-светодиод) и даже дисплей (OLED-экран с диагональю 0.96 дюйма). Все эти устройства выполнены в виде Grove-модулей (т.е. плат, оснащенных базовым компонентом и Grove-портом для подключения к BBG, Grove-кейпу или другому Grove-модулю).
Купить комплект можно по этой ссылке.
Варианты использования
Вот несколько проектов, сделанных при помощи BBG и деталей из этого комплекта:
Компоненты
Эта глава расскажет о компонентах, входящих в комплект Grove Starter Kit for BeagleBone Green.
Grove-модуль с четырьмя Grove-портами (I2C)
Этот Grove-модуль позволяет расширить BBG-проект несколькими дополнительными Grove-модулями с интерфейсом I2C. В частности, благодаря вот этому кабелю к BBG можно подключить до 7 дополнительных I2C-устройств.
Более подробно об этом Grove-модуле можно почитать тут.
Grove-модуль с кнопкой
Это новая версия Grove-модуля с одной отдельной кнопкой, оснащенной стягивающим резистором. Ее можно использовать в BBG-проектах в качестве источника цифрового сигнала. Сигнал, генерируемый кнопкой, идет через контакт D1. Контакт D2 на этом Grove-модуле не используется.
Схема кнопки выглядит следующим образом:
Grove-модуль с АЦП (I2C)
Это Grove-модуль с 12-битным АЦП на базе ADC121C021. Интерфейс – I2C. Это устройство обеспечивает постоянное эталонное напряжение, что позволяет повысить точность данных, считываемых с аналогового датчика. Поскольку I2C-адрес АЦП можно поменять, одновременно можно использовать до девяти АЦП. Кроме того, этот модуль умеет автоматически переходить в спящий режим, что значительно снижает его энергопотребление.
Более подробно об этом Grove-модуле можно почитать тут.
Grove-модуль с температурным датчиком
Этот Grove-модуль использует термистор, с помощью которого определяет окружающую температуру. Чем ниже температура, тем выше сопротивление термистора. Диапазон определяемой температуры – между -40˚C и +125˚C. Точность составляет +/- 1.5˚C. Этот модуль следует подключать к порту J2 на Grove-модуле с АЦП (I2C).
Более подробно об этом модуле можно прочесть тут.
Grove-модуль с датчиком звука
Этот Grove-модуль умеет определять громкость звука в окружающем пространстве. Главный компонент – это простой микрофон, состоящий из электретного микрофона и усилителя LM358. Выходные данные являются аналоговыми, поэтому этот модуль нужно подключать к порту J2 на Grove-модуле с АЦП (I2C).
Более подробно об этом модуле можно прочесть тут.
Grove-модуль с 3-осевым цифровым акселерометром (+/- 16g)
Это цифровой акселерометр высокого разрешения (3.9mg/LSB) и большим диапазоном измеряемых значений (+/- 16g). В основе модуля лежит чип ADXL345. Этот Grove-модуль можно использовать в проектах, где требуется измерение свободного падения, поскольку он достаточно прочен, чтобы выдержать удар силой 10000g. С другой стороны, этот модуль достаточно чувствителен, чтобы определять одиночные и двойные нажатия. Он хорош в определении движений и жестов, благодаря чему он хорошо подходит для робототехнических проектов.
Более подробно об этом Grove-модуле можно почитать тут.
Grove-модуль с реле
Это Grove-модуль с цифровым нормально-разомкнутым переключателем, управляющим реле, которое способно переключиться на ток с гораздо более высокими показателями, чем у платы BBG. Если подать значение HIGH, светодиод на модуле загорится, а реле замкнется, тем самым пропуская ток. Этот Grove-модуль способен поднять показатели тока до 250 вольт и 10 ампер.
Внимание: Работая с высоким напряжением, будьте максимально осторожны. Если сомневаетесь в том, что делаете, лучше обратитесь к профессионалу (к электрику, имеющему соответствующую лицензию).
Схема реле:
Grove-модуль с зуммером
Этот Grove-модуль можно подключать к цифровым и аналоговым контактам BBG. Если подключить его к цифровым контактам, то при получении значения HIGH он будет издавать однотонный звук, а если к аналоговым ШИМ-контактам, то при получении разных значений ШИМ будет издавать разные ноты и эффекты.
Схема Grove-модуля с зуммером:
Grove-модуль с RGB-светодиодом
Этот Grove-модуль основан на P9813, чипе для управления светодиодами с тремя драйверами постоянного тока и поддержкой 256 уровней яркости. Передача данных происходит по двум линиям (DATA и CLK), а регенератор тактовых сигналов позволяет увеличить дальность передачи данных.
Более подробно об этом Grove-модуле можно почитать тут.
Grove-модуль с 0.96-дюймовым OLED-дисплеем
Это модуль, оснащенный OLED-дисплеем с разрешением 96х96 точек, чипом-драйвером SSD1327 и 4-контактым Grove-портом с интерфейсом I2C. Если сравнивать OLED-дисплеи с LCD-дисплеями, то первые обладают самоизлучением, менее толстой «рамкой», более высокими яркостью и коэффициентами контрастности, более широкими углом обзора и температурным диапазоном, а также пониженным энергопотреблением.
Более подробно об этом Grove-модуле можно прочесть тут.
Демо-проект: Мигание светодиодом с помощью кнопки
Для редактирования программ на BBG можно воспользоваться IDE Cloud9. Чтобы ознакомиться с тем, как работает эта IDE, давайте создадим простой проект для мигания одним из программируемых светодиодов BBG.
Если вы используете IDE Cloud9 в первый раз, то сначала ознакомьтесь с этой статьей.
- Шаг 1: Настройте Grove-порт с интерфейсом UART так, чтобы его контакты стали GPIO-контактами. О том, как это сделать, читайте тут.
- Шаг 2: Кликните на «+» в правом верхнем углу, чтобы создать новый файл.
- Шаг 3: Скопируйте и вставьте код ниже в новую вкладку:
import time
import Adafruit_BBIO.GPIO as GPIO
# Примечание: Используйте P9_22(UART2_RXD) как GPIO-контакт.
# Подключите Grove-модуль с кнопкой к Grove-порту (UART) на BBG.
Button = "P9_22" # GPIO P9_22
GPIO.setup(Button, GPIO.IN)
if __name__== '__main__':
while True:
if GPIO.input(Button):
print "Button is pressed." # "Кнопка нажата."
time.sleep(1)
else:
print "Button is unstuck." # "Кнопка отпущена."
time.sleep(1)
- Шаг 4: Сохраните файл, кликнув на иконку с диском, и дайте файлу название с расширением «*.py».
- Шаг 5: Запустите код.
Примечание: Использование других Grove-модулей происходит похожим образом.