Программа
Смысл проекта такой же как и с bluetooth. Плата должна получить от нас сигнал и установить реле в нужное состояние. Тогда подключенное к реле оборудование включится или выключится соответственно.
Используем пример из библиотеки Ethernet.
Откроем скетч из Меню File -> Examples -> Ethernet -> WebServer
Здесь используются библиотеки <SPI.h> и <Ethernet.h>
Вы можете задать mac адрес и ip адрес для вашей платы. Ip адрес должен подходить для вашей локальной сети. HTTP сервер будет работать на 80 порту как обычно. А реле подключим к 7 пину.
В функции setup() настраиваем все необходимые функции для работы через интернет. И раскомментируем строку Ethernet.init(10);
Настроим пин для реле на вывод и выключим его.
Теперь разберемся с циклом loop(). Каждый раз, когда к серверу подключается новый клиент, мы должны передать ему веб страницу с необходимой информацией. Используем монитор последовательного порта для отладки программы. Информацию от клиента мы будем получать через http заголовки и для этого считаем всю информацию, которую мы можем получить при соединении к серверу.
Таким образом мы получили строку, в которой будет вся имеющаяся информация. В том числе о хосте, рефферере и данных о браузере. Из-за того, что данные в рефферере и хосте будут дублироваться, а нам нужна только строка хоста, уберем лишнюю информацию.
Теперь мы можемиспользовать информацию о состоянии реле и сформировать нужную веб страницу для пользователя.
В итоге получим кнопку со ссылкой на включение реле, если реле выключено. И наоборот, на выключение, если свет включен в настоящий момент.
Примеры работы для Iskra JS
-
GET-запрос по URL-адресу в Интернете.
// Настраиваем соединение с Ethernet Shield по протоколу SPI. SPI2.setup({baud 3200000, mosi B15, miso B14, sck B13}); var eth = require('WIZnet').connect(SPI2, P10); // Подключаем модуль http. var http = require('http'); // Получаем и выводим IP-адрес от DHCP-сервера eth.setIP(); print(eth.getIP()); // Производим запрос к сайту http.get('http://amperka.ru', function(res) { res.on('data', function(data) { print(data); }); });
-
HTTP-сервер на порту 8080.
// Настраиваем соединение с Ethernet Shield по протоколу SPI. SPI2.setup({baud 3200000, mosi B15, miso B14, sck B13}); var eth = require('WIZnet').connect(SPI2, P10); // Получаем и выводим IP-адрес от DHCP-сервера eth.setIP(); print(eth.getIP()); require("http").createServer(function (req, res) { res.writeHead(200, {'Content-Type' 'text/plain'}); res.write('Hello World'); res.end(); }).listen(8080);
Кнопки LCD Keypad Shield
На плате присутствуют пять управляющих кнопок, работа с которыми ведется через один аналоговый пин A0. В шилде использован достаточно распространенный способ простого кодирования сигнала, при котором каждая кнопка формирует определенное значение напряжения, которое после АЦП преобразуется в соответствующее значение от 0 до 1023. Таким образом, мы можем передавать информацию о нажатии разных кнопок через один пин, считывая его при помощи функции analogRead();
Значения уровня сигнала на пине A0 в зависимости от выбранной кнопки:
Нажатие кнопки | Значение на аналоговом пине |
RIGHT | 0-100 |
UP | 100-200 |
DOWN | 200-400 |
LEFT | 400-600 |
SELECT | 600-800 |
Клавиша не нажата | 800-1023 |
Пример скетча работы с кнопками LCD Keypad Shield:
int keyAnalog = analogRead(A0); if (keyAnalog < 100) { // Значение меньше 100 – нажата кнопка right // Выполняем какое-то действие для кнопки вправо. } else if (keyAnalog < 200) { // Значение больше 100 (иначе мы бы вошли в предыдущий блок результата сравнения, но меньше 200 – нажата кнопка UP // Выполняем какое-то действие для кнопки вверх } else if (keyAnalog < 400) { // Значение больше 200, но меньше 400 – нажата кнопка DOWN // Выполняем действие для кнопки вниз } else if (keyAnalog < 600) { // Значение больше 400, но меньше 600 – нажата кнопка LEFT // Выполняем действие для кнопки влево } else if (keyAnalog < 800) { // Значение больше 600, но меньше 800 – нажата кнопка SELECT // Выполняем действие для кнопки выбора пункта меню } else { // Все остальные значения (до 1023) будут означать, что нажатий не было }
В выбранном методе кодирования есть два главных недостатка:
- Нельзя отслеживать одновременное нажатие нескольких кнопок;
- Возможные искажения сигнала могут привести к ложным срабатываниям.
Нужно учитывать эти ограничения, выбирая этот шлд в своих проектах, если вы планируете использовать устройство в системах с большим количеством помех, которые могут искажать сигнал на входе A0, из-за чего АЦП может сформировать ошибочное значение и скетч в результате выполнит другие инструкции.
Описание пинов и распиновка платы Arduino Nano
На рисунке показаны номера и назначения контактов Arduino Nano (вид со стороны, на которой расположен микроконтроллер Atmega328):
Каждый из 14 цифровых контактов Nano может быть настроен как вход или выход с помощью функций pinMode (), digitalWrite () и digitalRead (). Контакты работают при 5 В. Каждый вывод имеет подтягивающий резистор 20-50 кОм и может выдерживать до 40 мА. Некоторые пины имеют специальные функции:
- Последовательная шина: 0 (RX) и 1 (TX). Контакты используются для приема (RX) и передачи (TX) данных TTL. Эти контакты подключаются к соответствующим контактам последовательного чипа FTDI USB to TTL.
- Внешнее прерывание: 2 и 3. Эти выводы могут быть настроены на запуск прерывания по наименьшему значению, по нарастающему или спадающему фронту или при изменении значения. Подробнее см. Функцию attachInterrupt().
- ШИМ: 3, 5, 6, 9, 10 и 11. Любой вывод обеспечивает 8-битный ШИМ с помощью функции analogWrite().
- SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Эти контакты используются для связи SPI, которая, хотя и поддерживается оборудованием, не включена в язык Arduino.
- Светодиод: 13. Встроенный светодиод, подключенный к цифровому выводу 13. Если вывод имеет высокий потенциал, светодиод горит.
Платформа Nano имеет 8 аналоговых входов, каждый с разрешением 10 бит (т. Е. Может принимать 1024 различных значения). Стандартно контакты имеют диапазон до 5 В относительно земли, однако верхний предел можно изменить с помощью функции analogReference (). Некоторые пины имеют дополнительные функции:
I2C: A4 (SDA) и A5 (SCL). Связь I2C (TWI) осуществляется через контакты. Для создания используется библиотека Wire.
Дополнительная пара штифтов платформы:
- AREF. Опорное напряжение для аналоговых входов. Используется с analogReference().
- Сброс настроек. Низкий уровень сигнала на выводе перезапускает микроконтроллер. Обычно он используется для подключения кнопки сброса на плате расширения, которая предотвращает доступ к кнопке на самой плате Arduino.
Расшифровка цвета
– серый цвет – физический вывод микроконтроллера Atmega328;
– светло-серый цвет (PD0, PD1 и т д.) – номер порта микроконтроллера, доступный для программ на ассемблере;
– зеленый цвет (ADC0 и т д.) – номера аналоговых выводов;
– синий цвет – контакты портов UART и SPI.
Назначение и обозначения выводов
USB – это USB-порт, предназначенный для подключения ардуины к компьютеру через USB-кабель (требуется разъем USB Mini-B).
VIN – сюда можно подавать питание от внешнего блока питания 7-12 В (блок питания приобретается отдельно). Напряжение будет подаваться на стабилизатор и упадет до 5 В. Поэтому оптимально на этот вывод подать примерно 9 В.
5V – через этот вывод можно запитать плату и от источника питания 5 вольт, однако напряжение должно быть более-менее стабильным, так как оно подается напрямую на микроконтроллер (стабилизатор не задействован), а значит высокое напряжение может убить основной микроконтроллер.
На этот вывод будет зафиксировано напряжение 3,3–3,3 В, которое генерируется внутренним стабилизатором платы. Этот вывод необходим для подключения некоторых внешних устройств, которым для работы требуется 3,3 В, обычно всех типов ЖК-дисплеев. Однако максимальный выходной ток не должен превышать 50 мА.
GND – Земля (заземляющий контакт).
AREF – это опорное напряжение для аналоговых входов. Используется по мере необходимости (настраивается с помощью analogReference()).
IOREF – позволяет узнать рабочее напряжение микроконтроллера. Редко используемый. На китайских столах он полностью отсутствует.
Reset – сбросить микроконтроллер, подать низкий уровень на этот вход.
SDA, SCL – вывод интерфейса TWI / I2C.
D0… D13 – цифровые входы / выходы. На контакте D13 висит встроенный светодиод, который загорается, если на контакте D13 ВЫСОКИЙ.
0 (RX), 1 (TX) – вывод порта UART (последовательный порт).
A1… A5 – аналоговые входы (также могут использоваться как цифровые).
Внешний вид платы Arduino Nano с подписанными выводами
Здесь:
Светодиоды RX + TX – светодиоды – мигают, когда данные передаются через последовательный порт UART (контакты RX и TX).
Кнопка сброса – кнопка перезапуска микроконтроллера;
(другие номиналы см выше)
FTDI USB Chip – микросхема FTDI FT323RL, используемая для подключения Arduino к компьютеру через USB-кабель. Со стороны Arduino это последовательный интерфейс. Этот интерфейс будет доступен на компьютере как виртуальный COM-порт (драйверы для микросхемы FTDI, обычно входящие в состав Arduino IDE, должны быть установлены).
Будет интересно Самые популярные проекты на Arduino
Схематично это выглядит так:
Номер пина, название, тип и описание пинов:
NVIDIA Shield в рамках Android и за их пределами
В качестве базовой программной среды NVIDIA Shield использует операционную систему Android версии 4.2.1 с минимальными изменениями. Фактически, можно считать что приставка использует «чистую» редакцию платформы Google – что позволяет ей иметь прекрасную совместимость с подавляющим большинством приложений и игр в Goolge Play Store.
Android 4.2.1. Практически 100% чистоты
В качестве предустановленных бонусов к операционной системе NVIDIA Shield идут несколько оптимизированных под приставку игр, приложение ShieldHelp – своеобразный гайд по функциям приставки и утилита TegraZone – открывающая доступ устройству к магазину игр, специально разработанных или оптимизированных для NVIDIA Shield. Также TegraZone запускает и позволяет работать режим потокового воспроизведения на приставке игр с домашнего ПК.
Можно стримить настоящие ПК-игры из облака. Не свои
Трансляция игрового процесса с домашнего ПК на современный телевизор в корне меняет отношение к Nvidia Shield TV. Фирменная технология GameStream в несколько кликов позволяет передавать игровой процесс на расстояние покрытия Wi-Fi в максимальном качестве. При трансляции работает даже многоканальный звук. Работают любые игры. Хочешь — летай в любимых сетевых самолетах, хочешь — гоняй нечисть на Плотве.
В любом доступном для системы разрешении — хотя после 1080p или Ultra HD ты побежишь за новой видеокартой. Она потребуется, поскольку GameStream позволяет стримить игры только при наличии видеокарты Nvidia. В противном случае придется долго играть с настройками дополнительных приложений и ждать возможных лагов (хотя запуск трансляций без Nvidia — неофициальная возможность).
В 4K HDR впечатление от игрового процесса нереальное. Снова сесть за монитор будет сложно. Живые цвета, четкая картинка, огромное поле зрения. Как минимум, это позволяет назвать Shield TV (2017) способом переосмыслить существующий игровой процесс и сделать его максимально удобным.
Еще одним способом расширить возможности приставки стал фирменный сервис Nvidia GeForce Now. C ним все просто: за абонентская плату открываешь облачный сервис, устанавливаешь игру и транслируешь на Shield TV. Компьютер не нужен — только стабильный интернет.
Ограничений немного: игры придется покупать, и так же устанавливать, пусть и не на локальном носители. И платить за GeForce NOW 7,99 долларов в месяц. По сравнению со стоимостью настольного компьютера с возможностью запуска современных игр в 1080p и 60 кадров в секунду — ерунда.
В библиотеке сервиса — 100 игровых хитов. Ведьмак 3, Thief, Tomb Rider… Скоро к ним добавится весь каталог Ubisoft из магазина Uplay, в том числе Assassin’s Creed, Tom Clancy’s The Division, Watch Dogs и Far Cry Primal. Круто? Еще как.
Интерфейс с человеком
Самое главное для любого компьютера – обеспечивать интерфейс с человеком. Здесь есть целый комплекс шилдов, от экрана с несколькими управляющими клавишами до системы распознавания голоса. Последняя представлена ниже:
EasyVR Shield 3.0
Среди функций шилда не только контроль произносимого человеком, но и воспроизведение определенного текста, записанного в память устройства. Очень удобная возможность для организации своеобразного голосового диалога с Ардуино.
Конечно, говорить мало, нужно еще и видеть, что происходит. Здесь поможет LCD Keypad shield – шилд, обладающий двухстрочным экраном на 16 символов в каждой строке. Кроме отображения информации на его плате расположено несколько клавиш, позволяющих отдавать команды их нажатием контроллеру.
LCD Keyboard Shield
Конечно, эта модель не единственная. В ее классе множество устройств. Для конкретно названой, из технических данных можно сообщить, что она использует для своей работы множество портов Ардуино. Распиновка платы с описанием входов:
Используемая библиотека для работы с дисплеем – LiquidCrystal.
Характеристики шилда и его составляющее
Ethernet Shield основан на чипе W51000, который имеет не топовые характеристики, но их вполне хватает.
Данный шилд работает с использованием библиотеки Arduino Ethernet library.
Хотелось бы отметить, что на плате шилда присутствует слот для micro SD карты.
Это нужно для того, чтобы можно было хранить большее количество информации и загружать веб-сайты с самого Arduino.
Для использования micro SD карты нужно использовать дополнительную библиотеку.
Технические характеристики Ethernet Shield
- Рабочее питание – 5 В (питание платы воспроизводится от Arduino)
- Размер буфера: 16 КБ
- Скорость подключения: 10/100Мб
Двигатели и Ардуино
Одной из ниш применения микроконтроллеров всегда были роботизированные приборы, для которых обязательно нужны драйверы, управляющие двигателями.
В нише Ардуино разработан целый класс таких устройств, предназначенных для установки в качестве шилда, с целью прямого контактного подключения двигателей. Примером может служить Motor Shield, предназначенный для контроля четырех фазовых моторов постоянного тока или пары шаговых.
Motor Shield
Основа устройства – две мостовых микросхемы L293, контактные группы портов которых в точках подключения к Ардуино демонстрируются далее:
Схема подключения Motor Shield
В верхнем левом углу можно видеть входы группы контроля, в которые поступает плюс, минус и управляющий сигнал. Где помечено стрелкой, обычно размещается перемычка, указывающая устройству, откуда оно берет энергию – от самой Ардуино или внешнего питания. Обычно в схеме используется напряжение 5В.
Для применения шилда с 4-мя фазовыми двигателями выполняется немного другой их монтаж с этой платой:
Подключение фазовых двигателей к Motor Shield
Основная библиотека для управления – AFMotor.
Есть вариант исполнения от российского изготовителя. Его основное отличие – только одна мостовая L298, что соответственно уменьшает возможности устройства. Коммутация выполняется или одного шагового двигателя, или двух фазовых.
Плюсом можно назвать их поддерживаемую мощность – в параллельном режиме доступно питать 4-амперный мотор, рассчитанный на работу от 24В.
Шилд управления двигателями от Амперки
Это еще не все, что относится к контролю моторов. Часто применяются роботизированные сборки, в которых намного больше, чем пара двигателей. Для них соответственно требуется много серво-шилдов. Большое их количество вполне заменит универсальный Multi Servo Shield. Его схема подключения:
Multi Servo Shield
Конечно, устройство не блещет мощностью подключаемых моторов, но его плюс в их количестве. Можно использовать аж 24 штуки.
Что может Nvidia Shield в России? Немало
Новые технологии приживаются в нашей стране с трудом. Доступное Ultra HD победоносно шагает по миру, а для российского пользователя эта технология все еще в новинку. Про расширенный динамический диапазон и увеличенное число цветов в гамме слышали и вовсе единицы.
Но телевизоры есть. И должной настойчивости, они немногим дороже обычных Full HD. Вот только источников русскоязычного контента еще мало.Для Nvidia Shield TV представили свои приложения многие российские стриминговые сервисы: Ivi, «Амедиатека», Megogo. Есть даже фирменные MTS TV, НТВ и SPB TV. Но Ultra HD там нет.
«Правильные» трансляции в 4К HDR можно найти в видеосервисе Amazon Video и каталоге Netflix. И с русской озвучкой там негусто, хотя ситуация медленно меняется к лучшему. Если знаешь английский, то контента масса: все сериалы Netflix выходят в Ultra HD. «Очень странные дела», «Сорвиголова», «Карточный домик». Среди них несколько выпущены с HDR.
Контента будет больше — 4K HDR является наиболее перспективным стандартом видеовещания на ближайшие 5-10 лет. Постепенно ему уступят и российские пользователи.
А купить телевизор поможет GeForce NOW.
Конечно, его работа не идеальна — но сервис предоставляет услуги, позволяющие отказаться от настольного компьютера стоимостью в 50-70 тысяч! Добавь чуть-чуть, и хватит на крутой ТВ. Ощущения от игр и фильмов в максимальном качестве на Nvidia Shield TV того стоят.
Хотя этим не ограничится. Если захочешь стримить с домашнего компьютера, придется обновляться. Мощности должно хватать и на игру, и на трансляцию. Так что нужен топовый процессор и GTX 1080 (кстати, именно такую мощность получает пользователь GeForce NOW).
Еще придется обновить роутер: трансляции даже с компьютера на приставку очень требовательны к качеству связи. Для работы GeForce NOW и вовсе потребуется постоянная связь на скорости не меньше 15 Мбит/с при трансляции в HD и 30 Мбит/с – для Full HD. Без пинга, просадки скорости и задержек другого рода. Так и до смены провайдера может дойти. Зато игра будет комфортна, и не потребует шумного блока за кучу денег.
Работа с AT-командами
Данный раздел рассказывает о том, как работать с GPRS Shield на более низком уровне, без дополнительных библиотек. Если вам достаточно тех методов, которые предоставляет штатная библиотека, можете пропустить этот раздел.
Введение
С внешним миром модуль общается посредством AT-команд. Все команды делятся на базовые, так называемые S-команды, и расширенные, добавленные в стандартах GSM07.05–07.07. Практически все команды работают в 3 режимах — тестовом, чтения и записи.
-
В тестовом режиме возвращается , если команда поддерживается или возможные значения данных в параметре команды. Тестовый режим определяется окончанием команды в виде
-
В режиме чтения возвращаются текущие значения параметра, отличается от тестового наличием в конце просто символа
- В режиме записи после идут новые значения параметров.
Настройки порта
По умолчанию модуль настроен на 9600 8N1:
- 9600 – скорость;
- 8 – бит в посылки;
- N – нет контроля чётности;
- 1 – стоп бит.
Для проверки поддерживаются AT-команды:
Команда | Ответ | Описание |
---|---|---|
AT+IPR? | +IPR: 0 OK |
Скорость порта: 0 – автоматически 1200 2400 4800 9600 19200 38400 57600 115200 |
AT+ICF? | +ICF: 3,3 OK |
Настройки передачи. Первый параметр: Бит в посылке чётность/стоп бит 1 – 8/0/2 2 – 8/1/1 3 – 8/0/1 4 – 7/0/2 5 – 7/1/1 6 – 7/0/1 Второй параметр – чётность: 0 – нечётный 1 – чётный 3 – нет |
AT+IFC? | +IFC: 0,0 OK |
Контроль передачи данных. Первый параметр – терминалом от модуля Второй параметр – модулем от терминала 0 – нет контроля 1 – программный 2 – аппаратный |
Если вы хотите изменить их, введите AT-команду, замените знак на и введите нужные вам параметры из таблицы.
Все настройки этих команд сохраняются в энергонезависимой памяти.
Информация о модуле и состояние
Команда | Ответ | Описание |
---|---|---|
AT+GCAP | +GCAP: +CGSM OK |
Возможности модуля |
AT+GMM | SIMCOM_SIM800C OK |
Идентификатор модуля |
AT+GMR | Revision:1418B08SIM800C32_BT_EAT OK |
Ревизия |
AT+GSN | 8683450321ХХХХХ OK |
IMEI |
В документе с перечнем AT-команд можно найти документацию на все поддерживаемые команды.
Пример скетча для работы с использованием AT-команд
- GPRSATСommands.ino
-
// библиотека для работы с GPRS устройством #include <GPRS_Shield_Arduino.h> // создаём объект класса GPRS и передаём в него объект Serial1 GPRS gprs(Serial1); // можно указать дополнительные параметры — пины PK и ST // по умолчанию: PK = 2, ST = 3 // GPRS gprs(Serial1, 2, 3); void setup() { // открываем последовательный порт для мониторинга действий в программе Serial.begin(9600); // ждём, пока не откроется монитор последовательного порта // для того, чтобы отследить все события в программе while (!Serial) { } Serial.print("Serial init OK\r\n"); // открываем Serial-соединение с GPRS Shield Serial1.begin(9600); // включаем GPRS шилд gprs.powerOn(); // проверяем есть ли связь с GPRS устройством while (!gprs.init()) { // если связи нет, ждём 1 секунду // и выводим сообщение об ошибке // процесс повторяется в цикле // пока не появится ответ от GPRS устройства Serial.print("GPRS Init error\r\n"); delay(3000); } // выводим сообщение об удачной инициализации GPRS Shield Serial.println("GPRS init success"); } void loop() { // считываем данные с компьютера и записываем их в GPRS Shield serialPCread(); // считываем данные с GPRS Shield и выводим их в Serial-порт serialGPRSread(); } void serialPCread() { if (Serial.available() > ) { // если приходят данные по USB while (Serial.available() > ) { // записываем их в GPRS Shield Serial1.write(Serial.read()); } } } void serialGPRSread() { if (Serial1.available() > ) { // если приходят данные с GPRS Shield while (Serial1.available() > ) { // передаём их в USB Serial.write(Serial1.read()); } } }
Обалдеть, крутейший геймпад положили прямо в коробку
В комплекте с Nvidia Shield TV 2017 любой модификации продается два манипулятора: пульт и геймпад. Пульт как пульт, хотя очень удобный, функциональный. Есть микрофон, есть сенсорная полоска для управления. На гиромышь он не похож. Эту роль выполняет геймпад.
Без него цена Shield TV 2017 была бы ниже Apple TV. Но он нереально крутой — едва ли не самый удобный из тех, что мне приходилось держать в руках. Внешне он продолжает дизайн приставки: те же треугольники, ломаные линии, зеленая вставка. Всю прелесть игрового манипулятора новой Shield можно ощутить только в собственных руках.
Он легко умещается и в женской ладошке, и в мужской лапище. Удобство будет одинаковым. Выпускать не хочется. Заменять его клавиатурой/мышью — тем более (мне, упертому поклоннику настольных ПК!). Хотя Shield TV позволяет использование компьютерных аксессуаров, китайских Bluetooth-геймпадов и манипуляторов Xbox.
В оригинальном манипуляторе есть собственный аудиодекодер, выход для наушников и даже дальнобойный микрофон. Встроенной батареи — на 60 часов беспрерывной игры! Подключается через Bluetooth: пару можно подключить к компьютеру, а к самой Shield TV — сразу 4.
Набор кнопок привычный: стики, курки, бамперы, крестовины, XY/AB. Функциональность расширяется клавишами для управления системными функциями: домой, назад и контекстное меню. Громкость регулируется здесь же, с помощью сенсорной полоски.
Аналоговые стики идеальны: точные, удобные, приятные. Попробуйте — обязательно понравится!Все кнопки нажимаются так, как должны. Не щелкают, ход достаточно короткий, чтобы не задерживать. У Xbox все намного хуже.
Примеры работы
Один Troyka Slot Shield вмещает до шести Troyka-модулей. Используемые пины для связи сенсоров и модулей с Troyka Slot Shield зависят от конкретного устройства. Точнее: от типа его коммуникации, сигнала и протокола.
Обратитесь к странице с обзором сенсоров, чтобы определить как организована коммуникация конкретно с вашим модулем. После чего смело приступайте к работе.
А ещё ознакомьтесь с нашими проектами на Slot Shield-е: метеостанция, газонализатор, светомузыка и другие. Устройства собираются без пайки и навыков программирования.
-
Проекты на платформе Iskra Neo
-
Проекты на платформе Arduino Uno
Подключение цифровых Troyka-модулей
Troyka-модули которые общаются с управляющей электроникой по одному цифровому контакту можно подключать в слоты «S-V-G» и «S-V2-G».
Для пример подключим светодиод «Пиранья» (Troyka-модуль) к пину. Если подать высокий уровень на пин светодиод загорится, если низкий — погаснет.
Добавим к предыдущему эксперименту кнопку (Troyka-модуль) и подключим её к Troyka Shield к пину. Если написать соответствующий скетч, то при нажатии на кнопку светодиод загорится, а отпустить — погаснет.
Подключение аналоговых Troyka-модулей
Troyka-модули, которые на выходе выдают аналоговый сигнал, подключаются к аналоговым контактам «S-V-G».
Подключим потенциометр (Troyka-модуль) к аналоговому пину и светодиод «Пиранья» (Troyka-модуль) к пину. После написания соответствующего скетча, яркость светодиода будет меняться в зависимости от перемещения ручки потенциометра.
Подключение I²C устройств
Существуют сенсоры и модули, которые общаются с управляющей электроникой по двум проводам через интерфейс I²C / TWI. Для подключения таких I²C модулей необходимы линии или , которые выведены на Slot Shield отдельными Troyka-контактами. В итоге для подключения таких модулей понадобится два разъёма: один используется для подачи напряжения, другой — для коммуникации с управляющей платой через пины и .
В качестве примера подключим светодиодную матрицу к Troyka Slot Shield. После загрузки в плату соответствующей программы, на матрицу можно выводить символы, цифры и мелкие анимации.
Подключение SPI устройств
Существуют сенсоры и модули, которые общаются с управляющей электроникой через интерфейс SPI. Для подключения таких SPI модулей необходимы линии , и которые выведены на Troyka Shield отдельными контактами. В итоге для подключения таких модулей понадобится два разъёма: один используется для подачи напряжения, другой — для коммуникации с управляющей платой через пины шины .
В качестве примера подключим SD картридер к Troyka Shield. Карта памяти поможет управляющей плате работать с большими объёмами файлов.
Для того, чтобы выполнить этот урок нам понадобиться
- Ардуино UNO
- Макетная плата
- Перемычки
- Ethernet Shield
- Реле SRD-05VDC-SL-C
- Лампа на 220 вольт и патрон к ней
- Ethernet провод
- Кабель USB
Об электромагнитном реле мы в прошлый раз мы говорили более подробно. В этом плане сегодняшний проект не измениться. Нам нужно получить на Ардуино управляющий сигнал. И в зависимости от него, включить или выключить реле.
Управляющий сигнал будем получать от платы расширения Ethernet shield и веб страницы, которая будет генерироваться внутри кода. Когда пользователь нажмет на кнопку, чтобы включить свет, сервер получит данные и использует, для управления реле.
LCD Shield
Зачем вам LCD Shield? Все просто: выводить информацию с Arduino не на персональный компьютер с использованием серийного монитора, а напрямую на периферийный экран! Это реально классно! Но! При использовании внешних экранов, вам обычно требуется 7 и более контактов с Arduino. Это очень ограничивает возможности дальнейшего подключения периферийных устройств. В этом LCD шилде используется протокол передачи данных I2C, то есть для его подключения задействуются лишь 2 пина! Кроме того, параллельно к этим же контактам можно подключить другое оборудование, работающее по тому же протоколу передачи данных.
В добавок к экрану, на LCD шилде установлено 4 «управляющие» кнопки и кнопка «select» (выбор). Благодаря этому у вас появляется дополнительный интерактивный интерфейс и непосредственного подключения к ПК при работе с шилдом можно избежать. Если монохромный дисплей вас не впечатляет, вы можете спокойно апгрейдить шилд, установив 1.8 inch TFT 18-bit color screen.
Вот на этом этапе вы должны понять, что не все шилды 100% совместимы друг с другом. Некоторые из них надо устанавливать сверху вашего Arduino «пирога». Именно к таким шилдам относится LCD шилд.
Подключение Arduino Shields
Для подключения шилда нужно просто аккуратно «надеть» его на основную плату. Обычно контакты шилда типа гребенки (папа) легко вставляются в разъемы платы ардуино. В некоторых случаях требуется аккуратно подправить штырки, если сама плата спаяна неаккуратно. Тут главное действовать аккуратно и не прилагаться излишней силы.
Как правило, шилд предназначен для вполне конкретной версии контроллера, хотя, например, многие шилды для Arduino Uno вполне нормально работают с платами Arduino Mega. Распиновка контактов на меге выполнена так, что первые 14 цифровых контактов и контакты с противоположной стороны платы совпадают с расположением контактов на UNO, поэтому в нее легко становится шилд от ардуино.
Как подключить модуль Ethernet к Arduino
Подключение модулей w5100 к ардуино осуществляется через SPI. При наличии некоторого опыта работы c платформой никаких трудностей это вызвать не должно. В самом простом случае нужно просто “надеть” плату шилда, вставив в соответствующие разъемы платы Uno или Nano. В случае использования отдельного модуля подключить w5100 к ардуино можно через стандартные SPI-выводы.
Нужно помнить, что в Arduino Uno для SPI выделены пины 11, 12, 13. В Arduino Mega – 50, 51, 52. На шилде для Uno SS сигнал связан с 10 пином. На плате Mega за SS отвечает пин 53, но он не используется. Не смотря на этой, вам нужно обязательно установить его в режим OUTPUT с помощью функции pinMode.
Распиновка шилда с описанием элементов платы для Arduino Uno представлена на следующем рисунке.
Схема шилда Arduino Ethernet Shield
После подключения внешнего модуля к арудино нужно будет подключить его к уже существующей сетевой инфраструктуре через витую пару с RJ45 разъемом. Причем подключать можно и к WiFi роутеру, что позволяет вашему проекту выходить на связь в беспроводном режиме (провод от ардуино до роутера все равно понадобится).
Выполнив физическое подключение, останется сделать только последний, но самый сложный и важный шаг. Нужно написать и загрузить в плату соответствующий скетч, который превратит плату в сервер, отвечающий на запросы удаленных устройств или в клиента, собирающего данные с серверов или отправляющего на них данные.
Итоги и выводы
Подводя итоги знакомству с NVIDIA Shield, ещё раз остановимся на вопросе конкуренции приставки с современными портативными игровыми системами.
После тестирования у нас не осталось сомнений, что NVIDIA Shield не является конкурентом ни планшетных компьютеров, ни смартфонов – просто потому, что это перпендикулярно разные устройства. Хотя дисплей NVIDIA Shield обладает полной поддержкой сенсорных функций, а предустановленная версия Android позволяют устанавливать на приставку любые игры для этой операционной системы, детище NVIDIA не может обеспечить нужный комфорт в играх, созданных для сенсорного экрана. Виной тому — конструкция корпуса приставки, тяжёлая и габаритная. Не может NVIDIA Shield обеспечить достойный уровень удобства и в неигровых приложениях для Android. А, к примеру, Skype вообще теряет свою функциональность из-за отсутствия у приставки камеры. В свою очередь смартфоны и планшеты в играх, так или иначе оптимизированных для NVIDIA Shield, на её фоне превращаются в суррогаты игровых платформ.
Конкурент №1: Sony Playstation Vita
Таким образом, реальными конкурентами NVIDIA Shield сегодня можно считать портативную игровую приставку Sony Playstation Vita и флагманские модели китайских игровых устройств на Android.
В отношении Sony Playstation Vita у NVIDIA Shield есть следующие преимущества: более удобное управление, более качественный дисплей, лучшая акустическая система, лучшая организация покупки и доставки игр, большая их библиотека (с учётом наполненности Google Play Store) и меньшая их стоимость. При этом цена NVIDIA Shield с учётом доставки в Россию больше примерно на 3000 рублей.
Конкурент №2: Флагманские игровые устройства из КНР (на картинке — JXD S7800B)
Сравнивая NVIDIA Shield с флагманами китайской игровой инженерии, отметим лучшее качество сборки, лучшую эргономику, более мощную платформу, наличие более качественной акустической системы, более ёмкого аккумулятора и общую стабильность программной платформы. В качестве конкретного примера для сравнения можно назвать новейшую приставку JXD S7800B, стоимость которой равна 170 долларам США. Китайский аппарат превосходит NVIDIA Shield в размере диагонали дисплея и наличии камер.
NVIDIA Shield | Sony PlayStation Vita | JXD S7800B |
Tegra 4 (4х1,9 ГГц) 2 Гб ОЗУ 16 Гб SSD+microSD |
ARM Cortex-9 (4х2,0 ГГц) 512 Мб ОЗУ фирменные карта памяти |
RockChip 3188 (4х1,8 ГГц) 2 Гб ОЗУ 8 Гб SSD+microSD |
Android 4.2.1 ПК-стриминг |
Фирменные игры PS3-стриминг |
Android 4.2.2 +12 приложений с эмуляторами приставок прошлого |
2 аналоговых стика 8-позиционный манипулятор 4 кнопки «огня» 4 курка Сенсорный дисплей |
2 аналоговых стика 4-позиционный манипулятор 4 кнопки «огня» 2 курка Сенсорный дисплей Сенсорный задник 2 камеры |
2 аналоговых стика 4-позиционный манипулятор 4 кнопки «огня» 4 курка Сенсорный дисплей 2камеры |
IPS 5’’ (1280 на 720 точек) | SUPER AMOLED Plus 5’’ (960 на 544 точки) | IPS 7’’ (1280 на 800 точек) |
USB HDMI Audio 3,5 jack Wi-Fi Bluetooth 3.0 GPS |
Wi-Fi Bluetooth 2.1+EDR 3G GPS многофункциональный порт |
USB HDMI Wi-Fi |
около 12 500 рублей (с доставкой в Россию) |
12 000 рублей (версия 3G с одной игрой и картой памяти на 4 Гб) |
около 7000 рублей (с доставкой в Россию) |
В целом, NVIDIA Shield кажется нам очень своевременным, прогрессивным и интересным устройством. Не делая реверансов в сторону универсальности, она хороша именно как портативная игровая приставка на самой популярной сейчас и массовой платформе. К несомненным плюсам устройства можно смело отнести прекрасную репутацию производителя и как следствие – наличие внятной перспективы на дальнейшую поддержку и развитие проекта.