Arduino Yun

Arduino Yun – отладочная плата на базе микроконтроллера ATmega32u4 и Atheros AR9331. Процессор Atheros поддерживает дистрибутив Linux, основанный на базе OpenWrt и называемый OpenWrt-Yun. Плата имеет встроенную поддержку Ethernet и WiFi, порт USB-A, слот для карты micro-SD, 20 цифровых входных/выходных выводов (из которых 7 могут использоваться в качестве ШИМ выходов, а 12 – в качестве аналоговых входов), кварцевый резонатор 16 МГц, соединение microUSB, разъем ICSP и 3 кнопки перезагрузки.

Arduino Yun
Arduino Yun
Состав платы Arduino Yun
Состав платы Arduino Yun

Arduino Yun выделяется среди других плат Arduino тем, что взаимодействовать с Linux дистрибутивом на плате, предлагая мощный сетевой компьютер с простотой Arduino. В дополнение к Linux командам, типа cURL, вы можете писать свои собственные shell скрипты и скрипты на python для надежных взаимодействий.

Arduino Yun аналогична плате Arduino Leonardo в том, что ATmega32u4 обладает встроенными возможностями для связи через USB, что устраняет необходимость в дополнительном процессоре. Это позволяет Arduino Yun в дополнение к виртуальному (CDC) последовательному COM порту подключаться к компьютеру, как мышь и клавиатура.

Структура Arduino Yun

Библиотека Bridge облегчает связь между двумя процессорами, давая скетчам Arduino возможность запускать shell скрипты, взаимодействовать с сетевыми интерфейсами и принимать информацию от процессора AR9331. USB хост, сетевые интерфейсы и карта SD подключены не к ATmega32U4, а к AR9331, и библиотека Bridge позволяет Arduino взаимодействовать с этой периферией.

Технические характеристики

Так как Arduino Yun обладает двумя процессорами, этот раздел показывает их характеристики в отдельных таблицах.

Микроконтроллер AVR Arduino
МикроконтроллерATMega32u4
Рабочее напряжение5 В
Входное напряжение5 В
Цифровые входные/выходные выводы20
ШИМ каналы7
Аналоговые входные выводы12
Постоянный ток через входные/выходные выводы40 мА
Постоянный ток через вывод 3,3 В50 мА
Флеш-память32 Кб, из которых 4 Кб используются загрузчиком
Оперативная память SRAM2,5 Кб
Энергонезависимая память EEPROM1 Кб
Тактовая частота16 МГц
Микропроцессор Linux
ПроцессорAtheros AR9331
АрхитектураMIPS @400MHz
Рабочее напряжение3,3 В
EthernetIEEE 802.3 10/100Mbit/s
WiFiIEEE 802.11b/g/n
USB Type-A2.0 Host
Слот карты памятитолько microSD
RAM64 Мб DDR2
Флеш-память16 Мб

Документация

Схемы

Arduino Yun является открытой аппаратной платформой. Вы можете изготовить собственную плату, используя следующие файлы:

Питание

Рекомендуется подавать питание на плату через разъем micro-USB (постоянное напряжение 5В).

Если вы подаете питание на плату через вывод Vin, то вам необходимо обеспечить подачу стабилизированного постоянного напряжения 5В. На плате нет регулятора напряжения для снижения высоких уровней напряжения, которые могут повредить плату.

Arduino Yun также совместима с источником питания PoE, но чтобы использовать эту возможность вам необходимо установить на плату модуль PoE или купить уже скомпонованную плату.

Выводы питания:

  • Vin. Вход питания платы при использовании внешнего источника питания. В отличие от других плат Arduino, если вы собираетесь подавать питание на плату через этот вывод, то вы должны обеспечить подачу стабилизированного напряжения 5В.
  • 5V. Источник питания, используемый для питания микроконтроллеров и других компонентов на плате. Напряжение может приходить либо вывода Vin, либо от питания через USB.
  • 3V3. Питание 3,3 вольта, выдаваемое регулятором на плате. Максимальный ток 50 мА.
  • GND. Выводы земли.
  • IOREF. Напряжение, с которым работают входные/выходные выводы на плате (т.е. VCC для платы). Оно составляет 5В для Arduino Yun.

Память

ATmega32u4 обладает 32 килобайтами флэш-памяти для хранения кода программы (из которых 4 килобайт используется загрузчиком), 2,5 килобайтами SRAM и 1 килобайтом EEPROM (которая может быть считана и записана с помощью библиотеки EEPROM).

Память AR9331 не встроена внутрь процессора. RAM и энергонезависимая память поключены извне. Arduino Yun имеет 64 Мб памяти DDR2 RAM и 16 Мб флеш-памяти. Во флеш-память на заводе загружен дистрибутив Linux, основанный на OpenWrt и называемый OpenWrt-Yun. Вы можете изменить содержиое заводского образа, если установите программу или измените конфигурационный файл. Также вы может вернуться к заводской конфигурации, нажав и удерживая кнопку "WLAN RST' в течение 30 секунд.

Установленная OpenWrt-Yun занимает около 9 Мб из доступных 16 Мб внутренней флеш-памяти. Если вам необходимо больше дискового пространства для установки приложений, вы можете использовать карту microSD.

Входы и выходы

Прямого доступа к входным/выхдным выводам Atheros AR9331 нет. Все входные/выходные линии связаны с ATmega32U4.

Каждый из 20 цифровых выводов Arduino Yun может быть использован и как вход, и как выход, с помощью функций pinMode(), digitalWrite() и digitalRead. Они работают с напряжением 5 вольт. Каждый вывод может пропускать максимальный ток 40 мА и имеет внутренний подтягивающий резистор (по умолчанию отключен) 20–50 кОм.

Также некоторые выводы обладают специальными функциями:

  • последовательный порт: 0 (RX) и 1 (TX). Выводы используются для приема (RX) и передачи (TX) последовательных данных с TTL уровнями с помощью аппаратных возможностей ATmega32U4. Обратите внимание, что для Arduino Yun класс Serial ссылается на USB (CDC) связь; для последовательной TTL связи через выводы 0 и 1 используйте класс Serial1. Аппаратные последовательные порты ATmega32U4 и AR9331 на Arduino Yun соединены и используются для связи между двумя процессорами. Как принято в Linux системах, последовательный порт AR9331 открывает консоль для доступа к системе, это означает, что у вас будет доступ из скетча к программам и инструментам, предлагаемым Linux;
  • TWI: 2 (SDA) и 3 (SCL). Поддерживают связь через TWI с помощью библиотеки Wire;
  • внешние прерывания: 3 (прерывание 0), 2 (прерывание 1), 0 (прерывание 2), 1 (прерывание 3) и 7 (прерывание 4). Эти выводы могут быть сконфигурированы для вызова прерывания по фронту или по спаду импульса или по изменению уровня на выводе. Смотрите работу с прерываниями на Arduino для более подробной информации. Не рекомендуется использовать для прерываний выводы 0 и 1, так как они используются аппаратным последовательным портом, используемым для связи с Linux процессором. Вывод 7 подключен к процессору AR9331 и может в будущем использоваться в качестве сигнала о подтверждении установ связи. Если вы собираетесь использовать прерывания, то будьте осторожны с возможными конфликтами;
  • ШИМ: выводы 3, 5, 6, 9, 10, 11 и 13. Обеспечивают 8-битный ШИМ выход с помощью функции analogWrite();
  • SPI: через разъем ICSP. Эти выводы поддерживают связь через SPI с помощью соответствующей библиотеки. Обратите внимание, что SPI выводы не подключены к каким-либо цифровым входным/выходным выводам, как на Arduino Uno. Они доступны только на разъеме ICSP. Это означает, что, если у вас есть плата расширения, использующая SPI, но у которой нет 6-пинового разъема ICSP, который подключается к 6-пиновому разъему ICSP на Arduino Yun, то эта плата работать не будет. Выводы SPI также подключены к выводам GPIO AR9331, где реализован программный интерфейс SPI. Это означает, то ATmega32U4 и AR9331 могут также взаимодействовать через протокол SPI;
  • светодиод: 13. Встроенный светодиод подключен к цифровому выводу 13. При высоком уровне на выводе светодиод загорается, при низком – гаснет;
  • несколько светодиодов для индикации питания, соединения WLAN, соединения WAN и USB;
    Светодиоды на Arduino Yun
    Светодиоды на Arduino Yun
  • аналоговые входы: A0–A5, A6–A11 (на цифровых выводах 4, 6, 8, 9, 10 и 12). Arduino Yun имеет 12 аналоговых входов, обозначенных от A0 до A11, все из которых могут также использоваться в качестве цифровых входов/выходов. Выводы A0–A5 находятся на том же месте, что и на Arduino Uno; входы A6–A11 – на цифровых входных/выходных выводах 4, 6, 8, 9, 10 и 12 соответственно. Каждый аналоговый вход обеспечивает 10-битное разрешение (т.е. 1024 разных значений). По умолчанию они измеряют напряжение от 0 до 5 вольт, хотя можно изменить верхнюю границу их диапазона, используя вывод AREF и функцию analogReference();
  • AREF. Опорное напряжение для аналоговых входов. Используется с analogReference().

На плате расположены три кнопки сброса с различным назначением:

Кнопки сброса на Arduino Yun
Кнопки сброса на Arduino Yun
  • Yun RST. Появление низкого уровня на этой линии сбросит микропроцессор AR9331. Сброс AR9331 вызовет перезагрузку linux системы. Все данные, хранившиеся в RAM, будут потеряны, и все программы, которые были запущены, будут завершены.
  • 32U4 RST. Появление низкого уровня на этой линии сбросит микроконтроллер ATmega32U4. Обычно используется для добавления кнопки сброса на платы расширения, которые закрывают доступ к кнопке на плате.
  • WLAN RST. Данная кнопка обладает двумя функциями. Основная служит для сброса WiFi на заводские установки. Заводская конфигурация заключается в приведении WiFi платы Arduino Yun в режим точки доступа (AP) и назначении IP адреса по умолчанию 192.168.240.1, в таком состоянии вы можете подключить свой компьютер к WiFi сети, которая появится с SSID именем "Arduino Yun-XXXXXXXXXXXX", где двенадцать "X" – MAC адрес вашей платы Arduino Yun. Подключившись, вы можете выйти на веб панель Arduino Yun с помощью браузера по адресу 192.168.240.1 или "http://arduino.local". Обратите внимание, восстановление конфигурации WiFi вызовет перезагрузку linux. Чтобы восстановить конфигурацию WiFi, вы должны удерживать кнопку WLAN RST 5 секунд. Когда вы нажмете кнопку, синий светодиод WLAN начнет мигать и будет продолжать мигать, пока вы не отпустите кнопку через 5 секунд, показывая, что процедура восстановления настроек WiFi завершена. Вторая функция кнопки WLAN RST заключается в восстановлении образа linux к заводскому образу по умолчанию. Чтобы восстановить linux, вы должны удерживать кнопку нажатой в течение 30 секунд. Обратите внимание, что восстановление заводского образа приведет вас к потере всех сохраненных файлов и установленных программ, которые хранились во флеш-памяти, установленной на плате и подключенной к AR9331.

Диаграмма соответствия выводов Arduino Leonardo и ATmega32U4
Диаграмма соответствия выводов Arduino Yun и ATmega32U4
Таблица соответствия выводов Arduino Yun и ATmega32U4
Номер вывода Atmega32U4Название вывода ATmega32U4Соответствующий вывод на Arduino Yun
1PE6 (INT.6/AIN0)Цифровой вывод 7
2UVcc+5V
3D-RD-
4D+RD+
5UGndUGND
6UCapUCAP
7VUSBVBus
8(SS/PCINT0) PB0RXLED
9(PCINT1/SCLK) PB1SCK
10(PDI/PCINT2/MOSI) PB2MOSI
11(PDO/PCINT3/MISO) PB3MISO
12(PCINT7/OC0A/OC1C/#RTS) PB7Цифровой вывод 11 (PWM)
13RESETRESET
14Vcc+5V
15GNDGND
16XTAL2XTAL2
17XTAL1XTAL1
18(OC0B/SCL/INT0) PD0Цифровой вывод 3 (SCL)(PWM)
19(SDA/INT1) PD1Цифровой вывод 2 (SDA)
20(RX D1/AIN1/INT2) PD2Цифровой вывод 0 (RX)
21(TXD1/INT3) PD3Цифровой вывод 1 (TX)
22(XCK1/#CTS) PD5TXLED
23GND1GND
24AVCCAVCC
25(ICP1/ADC8) PD4Цифровой вывод 4
26(T1/#OC4D/ADC9) PD6Цифровой вывод 12
27(T0/OC4D/ADC10) PD7Цифровой вывод 6 (PWM)
28(ADC11/PCINT4) PB4Цифровой вывод 8
29(PCINT5/OC1A/#OC4B/ADC12) PB5Цифровой вывод 9 (PWM)
30(PCINT6/OC1B/OC4B/ADC13) PB6Цифровой вывод 10 (PWM)
31(OC3A/#0C4A) PC6Цифровой вывод 5 (PWM)
32(ICP3/CLK0/)0C4A) PC7Цифровой вывод 13 (PWM)
33(#HWB) PE2HWB
34Vcc1+5V
35GND2GND
36(ADC7/TDI) PF7Аналоговый вход 0
37(ADC6/TDO) PF6Аналоговый вход 1
38(ADC5/TMS) PF5Аналоговый вход 2
39(ADC4/TCK) PF4Аналоговый вход 3
40(ADC1) PF1Аналоговый вход 4
41(ADC0) PF0Аналоговый вход 5
42AREFAEF
43GND3GND
44AVCC1AVCC

Связь

Плата Arduino Yun обладает рядом возможностей для связи с компьютером, с другой платой или с другими микроконтроллерами. ATmega32U4 обеспечивает аппаратный UART порт для последовательной связи с TTL уровнями (5 вольт). ATmega32U4 также позволяет использовать последовательную (CDC) связь через USB и отображается на компьютере, как виртуальный COM порт. Микросхема также действует, как полноскоростное USB 2.0 устройство, использующее стандартные USB COM драйвера. Arduino IDE включает в себя монитор последовательного порта, который позволяет посылать и принимать от платы простые текстовые данные. Светодиоды RX и TX на плате загораются при передаче данных через USB соединение с компьютером.

Цифровые выводы 0 и 1 используются для последовательной связи между ATmega32U4 и AR9331. Взаимодействие между двумя процессорами обрабатывается библиотекой Bridge.

Библиотека SoftwareSerial позволяте организовать последовательную связь через любые цифровые выводы Arduino Yun. Следует избегать использования выводов 0 и 1, так как они используются библиотекой Bridge.

ATmega32U4 также поддерживает связь через I2C (TWI) и SPI. Arduino IDE включает в себя библиотеку Wire для упрощения использования шины I2C. Для связи через SPI используется библиотека SPI.

Arduino Yun определяется, как стандартные клавиатура и мышь, и может быть запрограммирована для управления этими устройствами ввода с помощью классов Keyboard и Mouse.

Интерфейсы Ethernet и WiFi на плате открывают непосредственный доступ к процессору AR9331. Для отправки и приема данных через них используйте библиотеку Bridge. Для настройки интерфейсов вы можете воспользоваться панелью управления сети.

Arduino Yun также обладает возможностями USB хоста через OpenWrt-Yun. Вы можете подключать переферийные устройства, например, USB флешки для дополнительного хранилища, клавиатуры или веб-камеры. Вам может понадобиться скачать и установить дополнительное программное обеспечение для работы с этими устройствами.

Программирование

Arduino Yun может быть запрограммирована с помощью Arduino IDE. Выберите "Arduino Yun" в меню Инструменты → Плата (согласно микроконтроллеру на вашей плате).

ATmega32U4 на Arduino Yun поставляется с уже зашитым загрузчиком, что позволяет вам загружать в микроконтроллер новый код программы без использования внешнего аппаратного программатора. Связь осуществляется с помощью протокола AVR109.

Вы можете также обойти загрузчик и прошить микроконтроллер через разъем ICSP (внутрисхемное последовательное программирование) с помощью программатора Arduino ISP или аналога.

Автоматическая (программная) перезагрузка и запуск загрузчика

Вместо того, чтобы требовать физического нажатия кнопки перезагрузки перед прошивкой кода новой программы, Arduino Yun спроектирована таким образом, что она позволяет перезагружать ее с помощью программного обеспечения, запущенного на подключенном компьютере. Перезагрузка вызывается, когда на Arduino Yun виртуальный (CDC) последовательный COM порт сначала открывается со скоростью 1200 бод, а затем закрывается. Когда это происходит, процессор перезагружается, разрывая USB соединение с компьютером (то есть виртуальный последовательный COM порт исчезает). После перезагрузки процессора, запускается загрузчик и остается в активном состоянии около 8 секунд. Загрузчик также может быть запущен нажатием кнопки перезагрузки на Arduino Yun. Обратите внимание, что при подаче напряжения питания на плату Arduino Yun сразу переходит к выполнению пользовательской программы (если та загружена) без запуска загрузчика.

Из-за этого способа обработки перезагрузки платой Arduino Yun лучше всего позволить Arduino IDE попытаться вызвать перезагрузку перед прошивкой, особенно если вы привыкли нажимать кнопку перезагрузки перед прошивкой на других платах. Если IDE не может перезагрузить плату, вы всегда можете запустить загрузчик нажатием кнопки перезагрузки на плате.

Защита от перегрузки по току при питании через USB

Arduino Leonardo имеет самовосстанавливающийся предохранитель, который защищает USB порты вашего компьютера от короткого замыкания и перегрузки по току. Несмотря на то, что большинство компьютеров обеспечивают свою собственную внутреннюю защиту, этот предохранитель дает дополнительный уровень защиты. Если ток через USB порт превышает 500 мА, предохранитель автоматически разрывает соединение, пока короткое замыкание или перегрузка не будут устранены.

Сообщить об ошибке