В этой статье мы расскажем о новом конструкторе Ардуино для начинающих Grove Arduino Begginer Kit от компании Seeed Studio. Этот набор позволяет быстро собирать проекты с LCD экраном, светодиодами, датчиками температуры, света, наклона и другими сенсорами, которые легко и надежно соединяются друг с другом благодаря коннекторам Grove. Поэтому конструктор может быть интересен и начинающим, и опытным пользователям.
Содержание
О компании Seeed Studio
Китайская фирма Seeed Studio является крупным производителем и поставщиком продукции для интернета вещей IoT. Компания предлагает широкий ассортимент готовых платформ и модулей собственной разработки, причем многие из этих модулей изначально рассчитаны на использование в так называемых “интеллектуальных системах”. Широко известны шилды Seeed для голосовых помощников, модули компьютерного зрения, связи, систем позиционирования для многих платформ: Arduino, Raspberry Pi, BeegleBone и других. Ссылки вы найдете в конце статьи.
В ассортименте компании есть также огромное количество самых разнообразных датчиков и электронных компонентов. В отличие от большинства китайских производителей модули Seeed предлагает продукцию гораздо лучше как по качеству, хотя и по более высоким ценам. Все предлагаемые модули и платформы могут изготавливаться по индивидуальному заказу под определенные задачи.
Компания была основана в Китае, главный офис расположен в городе Шэньчжэнь. Филиалы фирмы расположены в США (открылся в 2015 году) и Японии (с 2017 года). Судя по сайту, основная миссия Seeed Studio – стать глобальной интеграционной платформой в мире для реализации глобальных современных технологий. Следует отметить, что компания уже сотрудничает с такими крупными вендорами, как Microsoft, с которой они развивают решения, упрощающие повсеместной распространение элементов “интернета вещей”.
Описание набора
К нам на обзор приехала одна из последних разработок компании – набор Grove Beginner Kit для Arduino. Как следует из названия, комплект в первую очередь адресован начинающим изучать электронику. Конструктор не требует сложного соединения деталей и пайки, поэтому может использоваться в учебных целях даже для самых маленьких учеников. Для начала работы потребуется только сам набор, кабель USB и компьютер с Arduino IDE. В качестве платы Ардуино выступает собственный модуль Seeeduino Lotus (ее описание – далее в этой статье).
Конструктор представляет собой набор из модулей, датчиков, переключателей, дисплеев и других элементов для создания проектов. В комплекте прилагается руководство пользователя с 8 уроками и двумя проектами для Ардуино (естественно, на английском). Но в нашем наборе такой инструкции не оказалось.
Все элементы конструкции соединяются благодаря коннекторам типа Grove. Это довольно редкий тип разъемов, причем стоимость проводов для него неоправданно высока. Но взамен мы получаем надежное и компактное соединение деталей, что очень важно как для начальных, так и и для профессиональных проектов. Чуть ниже мы расскажем о Grove более подробно.
К основным компонентам набора относятся 8 модулей. Давайте рассмотрим их подробнее.
LCD экран Grove LCD
Модуль представляет собой стандартный LCD дисплей 1602, 16-символьный жидкокристаллический дисплей с двумя строками. В нашем случае подсветка голубая (белые символы). Для связи с платой используется интерфейс I2C, что позволяет уменьшить количество выводов с 10 до 2 для удобства работы в сложных проектов. I2C разъем также выполнен в формфакторе Grove. Работа с ЖК-дисплеем подробно описывалась в статье, посвященное экрану LCD 1602.
Grove – 3-Axis Digital Accelerometer
3-осевой цифровой акселерометр 3-Axis Digital Accelerometer. Модуль является ключевой частью таких проектов, как выбор ориентации, определение жестов и обнаружение движения. Этот трехосевой цифровой акселерометр основан на модуле низкого энергопотребления Freescale, MMA7660FC, на котором можно настроить частоту выборок в секунду. Это оптимальный вариант для задач, не требующих большого диапазона измерений. Отличается долговечностью и экономичностью.
Подключение осуществляется с помощью аналогового, цифрового, UART и I2C интерфейсов. Программирование производится в среде разработки Arduino IDE. Для работы предварительно нужно установить драйвер на компьютер, который можно загрузить на официальном сайте.
Grove DHT11
Старый добрый датчик температуры и влажности DHT11. Емкостной сенсорный элемент измеряет относительную влажность, а температура измеряется термистором с отрицательным температурным коэффициентом (NTC). Модуль обладает высокой степенью надежности и стабильностью в течение продолжительного времени. Важно отметить, что датчик не является очень точным (в реальных проектах погрешность бывает и более 2 градусов!) и не работает при отрицательных температурах.
Grove Buzzer
Модуль с пьезо-зуммером Grove – Buzzer. С помощью данного элемента можно воспроизводить звук высокого тона (при подсоединении к цифровому пину), если логический уровень высокий. В ином случае звуки воспроизводятся разного тона в зависимости от частоты, генерируемой с аналогового ШИМ вывода.
Grove Tilt Switch
Модуль представляет собой датчик наклона. Это капсула с металлическим шариком внутри, который перекатывается и замыкает/размыкает цепь. В итоге выдает простой цифровой сигнал – ноль или единицу в зависимости от стороны наклона.
Grove Chainable RGB LED
Модуль RGB-светодиода. Работает на базе чипа P9813, который является драйвером светодиодов. Чип обеспечивает работу 3 драйверов постоянного тока, на выходе можно получить 256 оттенков. Он связывается с MCU при помощи двухпроводной линии. Модуль сквозной и может использоваться для добавления дополнительных модулей Grove – цепочки Chainable RGB LED. Встроенный усилитель увеличивает дальность передачи. Этот модуль может использоваться для любых проектов со светодиодами.
Grove Light Sensor
Модуль с датчиком света Light Sensor. Включает в себя фоторезистор для определения интенсивности света. Сопротивление фоторезистора уменьшается при увеличении интенсивности света. Микросхема с двумя операционными усилителями LM358 на плате создает напряжение, соответствующее интенсивности света, которое рассчитано на основе значения сопротивления. Выходной сигнал является аналоговым значением. Он напрямую зависит от яркости света.
Grove Line Finder
Этот модуль часто используется для создания робота, передвигающегося по линии. Он имеет инфракрасный светодиод и фототранзистор, чувствительный к ИК-излучению. Модуль возвращает цифровой сигнал, соответствующий “темной” или “светлой” линии. На борту имеется небольшой резистор для настройки уровня срабатывания.
Провода Grove
8 соединительных проводов с коннекторами типа Grove. Благодаря им производится соединение компонентов и монтаж проекта. Будьте внимательными и не теряйте эти провода, они большая редкость даже в популярных интернет-магазинах.
Дополнительные фотографии
Видео
Посмотрите, как все это выглядит вместе.
Разъемы и коннекторы Grove
Соединения типа Grove используются сейчас несколькими поставщиками электронных компонентов. В отличие от обычных макетных плат, они более надежны за счет механизма жесткой фиксации, хотя и занимают дополнительное место на плате. В то же время они меньше по размеру традиционных RJ45, что позволяет делать более компактные устройства.
На самом деле модульная система Grove – это целая платформа. Решения на ее основе состоят из основного блока и различных модулей со стандартными разъемами. Базовый блок представляет собой процессор, обеспечивающий связь между модулями, а также отвечающий за прием, обработку и вывод полученной информации с датчиков. Каждый модуль выполняет свою задачу. Он может быть как обычной кнопкой, так и представлять собой сложную систему, включающую в себя несколько датчиков, регуляторов и других элементов.
На модуле Grove есть 4 контакта разных цветов:
- контакт 1 – желтый (например, SCL на соединителе Grove I2C);
- контакт 2 – белый (например, SDA на Grove I2C);
- контакт 3 – красный VCC на всех Grove;
- контакт 4 – черный GND на всех Grove.
Выделяют 4 основных типа интерфейса модулей Grove. К ним относятся цифровой, аналоговый, UART и I2C.
Цифровой Grove состоит из четырех стандартных линий. Две сигнальные линии обычно называются D0 и D1. Большинство модулей используют только D0, но в некоторых проектах задействованы обе линии (например, для подключения светодиодного дисплея Grove).
Распиновка следующая:
- pin1 — Dn, первичный цифровой вход / выход.
- pin2 — Dn + 1, вторичный цифровой вход / выход.
- pin3 — VCC, питание 5 В / 3,3 В.
- pin4 — GND, земля.
Аналоговый Grove состоит из четырех стандартных линий. Две сигнальные линии называются A0 и A1.
Распиновка:
- pin1 —An, первичный аналоговый вход;
- PIN2 — + 1, вторичный аналоговый вход;
- pin3 — VCC, питание;
- pin4 — GND, земля.
Модуль Grove UART является специализированной версией цифрового модуля Grove. Он использует как контакт 1, так и контакт 2 для последовательного ввода и передачи данных. Контакт 1 – это линия RX, контакт 2 – это линия TX.
Распиновка:
- pin1 — RX, серийный прием;
- PIN2 — TX, последовательная передача;
- pin3 — VCC, питание;
- pin4 — GND, земля.
Существует множество типов датчиков I2C Grove. Большинство из них – устройства с питанием 5 В / 3,3 В.
Соединитель Grove I2C имеет стандартную компоновку. Контакт 1 – это сигнал SCL, а контакт 2 – это сигнал SDA. Питание и заземление такие же, как и у других модулей.
Распиновка:
- pin1— SCL;
- PIN2 — SDA;
- pin3 — VCC;
- pin4 — GND.
С помощью соединителей Grove можно собрать разные блоки в одну конструкцию без использования сложного соединения вроде перемычек или припоя по принципу конструктора. Это упрощает процесс сбора и расширяет возможности для экспериментов. Для работы с Grove нужно иметь базовые знания в электронике.
Описание платы Seeeduino Lotus
Seeeduino Lotus – это еще один вариант платы Arduino Uno на базе микроконтроллеров ATMEGA328. Она представляет собой комбинацию из чипа Atmel ATMEGA328P-MU, CH340 и обвязки в виде Grove разъемов для всех стандартных выводов. В версии v1.1 чип CH340 был заменен на CP2102N, что упростило использование платы для пользователей Windows и iOS.
Seeeduino Lotus имеет 14 цифровых вводов и выводов. 6 пинов могут использоваться как ШИМ. Также есть 7 аналоговых пинов, разъем micro USB, разъем ICSP, 12 подключений Grove, кнопка сброса.
Есть разные версии платы. К ним относятся:
- 0. Первый релиз произведен в 2014 году. Работает только с ОС Windows.
- 1. Релиз – в 2016 году. Работает как с Windows, так и с операционной системой Mac.
Плата применяется в проектах IoT, системе «Умный дом», в робототехнике, игрушках, а также в учебных целях.
Характеристики:
- Полная совместимость с Arduino UNO.
- Наличие 12 разъемов Grove.
- 14 цифровых входов/выходов.
- Рабочее напряжение 5 В.
- Рабочий ток – 40А.
- 32 КБ флеш-памяти.
- EEPROM 1 Кб.
- Тактовая частота 16 МГц.
На плате Seeeduino Lotus есть следующие разъемы и порты:
- LED D13. Светодиод, расположенный на 13 выводе платы, может использоваться в качестве индикатора в программах.
- Порт USB и micro USB. Применяется для подсоединения к компьютеру, смартфону, подачи питания.
- Кнопка сброса reset. Размещена на боковой части для сброса платы в отличие от Ардуино, на которых Reset устанавливается в верхней части.
- Разъемы питания, аналоговые контакты. Применяются для подключения различных компонентов к плате без дополнительного макетирования.
- Соединители Grove SeeedStudio с датчиками и другими устройствами, которые могут использоваться как аналоговое, цифровое, I2C или UART подключение.
- Используется для ATmega328P, размещено в стандартном положении пина ICSP / SPI. Также есть пины MISO, SCK, MOSI, которые размещены как на Arduino Uno на цифровых контактах 12, 13, 11.
- USB 2 Uart. Применяются для взаимодействия с другими устройствами UART – например, для вспомогательной платы USB2UART.
Используется разъем MicroUSB, что повышает компактность и совместимость со стандартными источниками питания.
Подключение и настройка Seeeduino Lotus
Для программирования платы Seeeduino можно использовать привычную всем среду Arduino IDE. Т.к. на борту у нас обычный микроконтроллер ATMEGA328, то в меню “Платы” можно выбрать обычную Arduino/Genuino Uno. Но у поставщика есть свои пакеты и библиотеки поддержки программирования для набора, рекомендуем установить их.
Подключение платы
Для загрузки поддержки платы требуется добавить источник в менеджеры плат. Для этого откройте Настройки (Файл – Настройки) и введите следующую строчку в поле “Дополнительные ссылки для Менеджера Плат” (несколько ссылок можно перечислять через запятую).
После этого мы переходим в Менеджер плат (Инструменты – Плата – Менеджер плат), находим элемент Seeeduino AVR и загружаем модуль поддержки этой платы.
После завершения загрузки нам остается перейти в меню Инструменты – Плата и выбрать из списка плату Seeeduino Lotus.
Все, можно приступать к программированию. Некоторые полезные примеры появились в соответствующем разделе меню Файл – Примеры.
Библиотеки для работы с Seeeduino Begginer Kit
Вы можете загрузить необходимые библиотеки на нашем сайте:
Библиотека для работы с LCD экраном.
Библиотека для работы с RGB-светодиодом.
Библиотека для работы с Акселерометром.
Пример проекта – мигающий светодиод
Самый первый и самый простой пример. Загрузите скетч маячка (Файл – Примеры – Basiс – Blink) и убедитесь, что традиции не нарушены – светодиод на плате, подключенный к 13 пину, исправно и дружественно мигает вам!
Пример проекта – секундомер на экране
Давайте попробуем поработать с самым важным для многих проектов элементом – экраном. Выведем приветственное слово и счетчик секунд, прошедших с момента включения.
Пример Blink на Seeeduino
Схема подключения
Для проекта нужно подключить модуль LCD дисплея 1602 к порту i2c платы Seeeduino. Мы используем Grove провода, здесь невозможно ошибиться с полярностью, главное, не сломать контакт от нетерпения.
Пример скетча
Нам потребуется подключить библиотеку rgb_lcd. Если вы не знаете как это делать, то можете посмотреть статью, рассказывающую, как подключать библиотеки к Ардуино. Найти и скачать библиотеку можно на нашем сайте или на GitHub. У нас на сайте есть отдельная статья, в которой описана работа с Arduino LCD экраном 1602.
//Подключаем необходимую библиотеку #include "rgb_lcd.h" // Создаем объект для работы с экраном rgb_lcd lcd; void setup() { // Настраиваем экран lcd.begin(16, 2); // Пишем приветствие lcd.print("Arduino Master"); delay(1000); } void loop() { // Перемещаемся в первую позицию второй строки lcd.setCursor(0, 1); // Пишем количество секунд, прошедших с момента старта lcd.print(millis()/1000); delay(100); }
Пример проекта – погодная станция
Давайте рассмотрим простой проект метеостанции с датчиком температуры и влажности DHT11 и экраном LCD 1602. Для работы нам понадобятся соответствующие Grove модули DHT11 и LCD.
Схема подключения
При наличии удобных разъемов собрать схему не представляет никакого труда. В данном случае датчик DHT подключаем к пину 2, экран – к выводу I2C.
Пример скетча
Программа для проекта будет довольно простой для тех, кто уже работал с датчиком DHT и экраном. Получаем значение и выводим на дисплей. Не забудьте подключить библиотеку rgb_lcd, как в предыдущем примере.
#include <DHT.h> #include <rgb_lcd.h> #define DHTPIN 2 #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE); rgb_lcd lcd; void setup() { //initialise the dht sensor dht.begin(); //initialise the lcd screen; //set up the lcd's number of columns and rows: lcd.begin(16, 2); //wait for 2s delay(2000); } void loop() { //store the humidity value to h int h = dht.readHumidity(); //store the temperature value to t(in Celsius) int t = dht.readTemperature(); //set the LCD cursor to column 0, line 0 lcd.setCursor(0, 0); //Print text temperature: to the LCD lcd.print("Temperature:"); //set the LCD cursor to column 12, line 0 lcd.setCursor(12, 0); //Print temperature value t to the LCD lcd.print(t); //set the LCD cursor to column 14, line 0 lcd.setCursor(14, 0); //Print temperature º is character 223 on lookup table lcd.write(223); //Print C to the LCD lcd.print("C"); //set the LCD cursor to column 0, line 1 lcd.setCursor(0, 1); //Print text Humidity: to the LCD lcd.print("Humidity: "); //set the LCD cursor to column 10, line 1 lcd.setCursor(10, 1); //Print humidity value h to the LCD lcd.print(h); //set the LCD cursor to column 12, line 1 lcd.setCursor(12, 1); //Print sign % to the LCD lcd.print("%"); }
При желании вы можете разместить все элементы в удобном корпусе и сделать полноценную информативную (пустm и не стопроцентно точную) погодную станцию.
Где купить и полезные ссылки
Купить Grove Begginer Kit можно на сайте интернет-магазина: https://www.seeedstudio.com/Grove-Beginner-Kit-for-Arduino-p-2895.html
Основной сайт производителя: https://www.seeedstudio.com/
Ссылка на документацию и учебные материалы: http://wiki.seeedstudio.com/Grove_Beginner_Kit_for_Arduino/
Ссылка на документацию по Seeeduino Lotus: http://wiki.seeedstudio.com/Seeeduino_Lotus/
Обратите внимание, что у Seeed Studio есть еще несколько наборов с похожими названиями Starer Kit для разных платформ, не перепутайте.
Выводы
В данной статье мы привели описание нового очень интересного набора для Ардуино – Seed Grove Begginer Kit for Arduino. По сравнению с другими подобными конструкторами здесь нет макетных плат и “россыпи” электронных компонентов. Используется оригинальная Arduino-совместимая плата, выполняющая также роль платы расширения для датчиков. Благодаря удобным коннектором Grove все элементы быстро соединяются, формируя нужную конфигурацию и так же быстро разбираются.
Следует отметить, что быстрый монтаж схемы очень пригодится на тех занятиях, где акцент делается именно на обучении программированию. Обычно в таких ситуациях не хочется тратить время на монтаж, ученики могут быстро собрать готовую конфигурацию и приступить к написанию программы. Поэтому этот конструктор наряду с другими готовыми учебными платами – отличный вариант.
Из минусов набора хочется отметить достаточно редкий тип коннекторов и проводов Grove, которые со временем придется докупать. Безусловно, их можно заказать у производителя и на нескольких сайтах в интернете, но стоимость их будет выше, чем у у привычных аналогов.
В целом же конструктор выглядит очень удачным приобретением и одним из самых комфортных способов приступить в погружение необъятного мира электроники и программирования.