Arduino:Знакомство с Arduino/Знакомство с Arduino Fio

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Знакомство с Arduino Fio[1]

На микроконтроллер ATmega328P, которым оснащена Arduino Fio, уже имеется предустановленный загрузчик, который позволяет загружать на плату новый код, не нуждаясь во внешнем аппаратном программаторе. Он коммуницирует при помощи исходного протокола STK500 – подробнее о нем можно почитать тут, а заголовочные файлы можно скачать тут.

Есть несколько способов, с помощью которых на Arduino Fio можно загружать новые скетчи. Во-первых, можно использовать FTDI-кабель или адаптерную плату, конвертирующую USB-коммуникацию в последовательную коммуникацию, и во-вторых, это можно сделать по беспроводной связи – посредством пары модулей XBee. Если вы слышите о них в первый раз, то перед тем, как приступить к беспроводному программированию, о них лучше что-нибудь почитать. Например, здесь.

Кроме того, вы можете обойти загрузчик и запрограммировать ATmega328P при помощи внешнего программатора. Более подробно читайте тут.

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

Как и другие платы Arduino, Arduino Fio можно программировать через IDE Arduino (скачать его можно здесь). Если вы плохо ориентируетесь в теме Arduino, то для начала имеет смысл ознакомиться с азами, языка_Arduino справочником языка Arduino и скетчами-примерами.

Модель Fio не имеет встроенного адаптера, конвертирующего USB-коммуникацию в последовательную коммуникацию, поэтому если вы собираетесь программировать плату через USB, вам понадобится внешний адаптер. Подойдет какой-либо из этих:

3,3-вольтовый FTDI-кабель; можно купить на Adafruit.com
3,3-вольтовый FTDI-кабель; можно купить на Adafruit.com


Адаптер FTDI Basic Breakout; у него та же конфигурация контактов, что и у FTDI-кабеля
Адаптер FTDI Basic Breakout; у него та же конфигурация контактов, что и у FTDI-кабеля

Чтобы программировать Fio при помощи FTDI-кабеля или адаптера с той же конфигурацией контактов, подсоедините к кабелю/плате гребешок-переходник со штырьковыми контактами.


Затем подключите этот гребешок к FTDI-контактам на Fio:

Использование адаптера для программирования Fio
Использование адаптера для программирования Fio


Использование FTDI-кабеля для программирования Fio
Использование FTDI-кабеля для программирования Fio

Впрочем, есть и альтернативный способ – можно воспользоваться L-образным коннектором. При этом плата может быть либо с низкопрофильными сокетами, либо без них.

Программирование Fio при помощи L-образного коннектора и припаянных к плате низкопрофильных сокетов
Программирование Fio при помощи L-образного коннектора и припаянных к плате низкопрофильных сокетов


Программирование Fio при помощи L-образного коннектора без припаянных к плате низкопрофильных сокетов
Программирование Fio при помощи L-образного коннектора без припаянных к плате низкопрофильных сокетов

Если коннектор прилегает к отверстиям неплотно (а в большинстве случаев так и будет), то его нужно будет как-то закрепить или придерживать вручную – так, чтобы во время программирования штырьки касались металла на контактах платы.

Когда кабель будет подключен к Fio, откройте IDE Arduino, а затем кликните на Инструменты > Плата > Arduino Fio (Tools > Board > Arduino Fio). Далее выберите в меню Инструменты > Порт (Tools > Port) нужный последовательный порт. Теперь, если вы увидели мерцание светодиодов RX и TX, это значит, что плата готова к программированию. Сама Fio никаких признаков готовности подавать не будет, однако, если вы успешно загрузите код, в IDE Arduino появится следующее сообщение:

Примечание: Перед тем, как программировать Fio проводным путем, снимите с нее модем XBee.

Беспроводное программирование

Чтобы воспользоваться модулями XBee для беспроводной загрузки скетчей, вам понадобится следующее:

  • Два модуля XBee (стандарт 802.15.4) – либо просто XBee, либо XBee Pro. На тот случай, если вы уже знакомы с XBee – они также известны как модули первой серии (Series 1). Модули XBee в версиях DigiMesh (Series 2) и ZB (Series 2.5) использовать нельзя, т.к. они не поддерживают функцию автоматического «IO line passing» (означает «передача сигнала по IO-линиям»), которая требуется для переключения Reset-контакта при программировании.
  • Последняя версия прошивки для 802.15.4 (10A5 или новее). Если вам нужно обновить прошивку, вам понадобится X-CTU (к сожалению, только для Windows).
  • Адаптер, конвертирующий USB-коммуникацию в последовательную коммуникацию (он нужен для одного из модулей). Для этих целей подойдет XBee Explorer USB от SparkFun, адаптерный набор XBee от Adafruit или любой другой адаптер-конвертер FTDI-XBee.

На адаптере, конвертирующем USB-коммуникацию в последовательную коммуникацию, нужно будет напаять небольшую перемычку между контактами RTS и D3, как показано ниже:

Модифицированный XBee Explorer USB
Модифицированный XBee Explorer USB


Модифицированный адаптерный набор Adafruit XBee. Стрелочка указывает на припаянную перемычку
Модифицированный адаптерный набор Adafruit XBee. Стрелочка указывает на припаянную перемычку

Подготовка модулей XBee

Чтобы Arduino Fio можно было программировать через беспроводную связь, вам нужно настроить модули XBee. Один из них будет стоять на Fio, а другой будет подключен к компьютеру при помощи адаптера (об этих устройствах было рассказано в предыдущем разделе). Как только все будет сделано, вы сможете программировать Fio по радиосвязи – как если бы это была обычная USB-последовательная коммуникация.

Настройки для обоих модулей следующие:

Параметр Модуль на адаптере Модуль на Fio
BD 4 (ATmega168) или 6 (ATmega328) 4 (ATmega168) или 6 (ATmega328)
ID На усмотрение пользователя (от 0000 до FFFF) На усмотрение пользователя (от 0000 до FFFF)
MY На усмотрение пользователя (например, 0000) На усмотрение пользователя (например, 0001)
DL FFFF или значение в «MY» для Fio Значение в «MY» для адаптера
D3 3 5
IC 8 Не задается
RR 3 Не задается
IU Не задается 0
IA Не задается FFFF
RO 10 10

Примечание: Если адресом назначения (параметр DL) у адаптера выставить «FFFF», он перепрограммирует все Fio, подключенные к указанной сети (параметр ID). Чтобы перепрограммировать только одну Fio, установите в DL адаптера значение, указанное в параметре MY у этой Fio.

Модификация настроек последовательного порта (только для Windows)

Если вы работаете на Windows, вам нужно будет сделать небольшое изменение в настройках драйвера. Зайдите в «Диспетчер устройств», а затем найдите секцию «Порты (COM и LPT)», а в ней – запись «USB Serial Port». Кликните по ней правой кнопкой мыши, выберите «Свойства» > «Параметры порта» > «Дополнительно...», в открывшемся окне найдите раздел «Дополнительные опции», затем поставьте галочку рядом с пунктом «Установить линию RTS при завершении работы» и нажмите «ОК», чтобы применить новые настройки.

Как конфигурировать модули XBee

Это можно делать при помощи либо терминала, либо X-CTU (на Windows), либо Fio XBee Config Tool. Это модифицированная версия XBeeConfigTool от Шигеру Кобаяши (Shigeru Kobayashi).

При помощи XbeeConfigTool

  • Выбираем последовательный порт (пункт Serial Port)
  • Выбираем режим – адаптер или Fio (пункт Mode)
  • Выбираем скорость – 57600 бит/сек (пункт Baud rate)
  • Задаем PAN ID – например, «1234», должно быть одинаковым на обоих модулей
  • Задаем MY ID – например, «1» для Fio и «0» для адаптера
  • Нажимаем кнопку «Configure», чтобы сконфигурировать модем XBee


При помощи терминала

Если вы предпочитаете ручную настройку, это можно сделать при помощи программы-терминала вроде CoolTerm. Подключаем адаптер к компьютеру, а затем при помощи терминала открываем последовательный порт на скорости 9600 бит/сек.

Строкой завершения обязательно сделайте символ возврата каретки (ASCI 0x0D). Затем открываем порт и пишем:

+++

XBee должен ответить:

OK

Для модуля на адаптере пишем:

ATRE,BD6,ID1234,MY0,DLFFFF,D33,IC8, RR3,RO10,WR

XBee ответит:

OK
OK
OK
OK
OK
OK
OK
OK
OK

Для модуля к Fio пишем:

ATRE,BD6,ID1234,MY1,DL0,D35,IU0,IAFFFF,RO10,WR

XBee ответит:

OK
OK
OK
OK
OK
OK
OK
OK
OK
OK

Вот и все! Теперь подключаем к Fio предназначенный для нее XBee-модуль, а XBee-модуль, подключенный к адаптеру, там же и оставляем, и плата готова к загрузке скетчей.

Загрузка скетчей из IDE Arduino на плату Fio

Загрузка скетчей на Fio осуществляется примерно так же, как и на другие платы Arduino.

  1. Кликаем на Инструменты > Плата > Arduino Fio (Tools > Board > Arduino Fio) или Инструменты > Плата > Arduino Pro or Pro Mini (Tools > Board > Arduino Pro or Pro Mini)
  2. Выбираем правильный порт в меню Инструменты > Порт (Tools > Port)
  3. Пишем скетч и жмем на кнопку «Загрузка».

Во время загрузки на Fio должен загореться зеленый огонек RSSI. Если вы используете XBee Explorer, то на нем должны замигать светодиоды TX и RX.

Если Fio не отвечает, то ошибка может быть в следующем:

  • Убедитесь, что на Fio подается питание. Если у вас нет батареи, для этого можно использовать USB-соединение.
  • Убедитесь, что слайдерный переключатель на Fio находится в положении ON.
  • Проверьте настройки модулей. Может, вы пропустили какую-то настройку? Обычно такое случается при использовании программы-терминала.

Если сомневаетесь, проверьте Fio программированием через проводное соединение, которое было описано в самом первом разделе этой статьи.

См.также

Внешние ссылки