Arduino:Знакомство с Arduino/Знакомство с Arduino Fio
{{#setlogo:ArduinoCommunityLogo.png}}
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Знакомство с Arduino Fio[1]
На микроконтроллер ATmega328P, которым оснащена Arduino Fio, уже имеется предустановленный загрузчик, который позволяет загружать на плату новый код, не нуждаясь во внешнем аппаратном программаторе. Он коммуницирует при помощи исходного протокола STK500 – подробнее о нем можно почитать тут, а заголовочные файлы можно скачать тут.
Есть несколько способов, с помощью которых на Arduino Fio можно загружать новые скетчи. Во-первых, можно использовать FTDI-кабель или адаптерную плату, конвертирующую USB-коммуникацию в последовательную коммуникацию, и во-вторых, это можно сделать по беспроводной связи – посредством пары модулей XBee. Если вы слышите о них в первый раз, то перед тем, как приступить к беспроводному программированию, о них лучше что-нибудь почитать. Например, здесь.
Кроме того, вы можете обойти загрузчик и запрограммировать ATmega328P при помощи внешнего программатора. Более подробно читайте тут.
Проводное программирование
Как и другие платы Arduino, Arduino Fio можно программировать через IDE Arduino (скачать его можно здесь). Если вы плохо ориентируетесь в теме Arduino, то для начала имеет смысл ознакомиться с азами, языка_Arduino справочником языка Arduino и скетчами-примерами.
Модель Fio не имеет встроенного адаптера, конвертирующего USB-коммуникацию в последовательную коммуникацию, поэтому если вы собираетесь программировать плату через USB, вам понадобится внешний адаптер. Подойдет какой-либо из этих:
Чтобы программировать Fio при помощи FTDI-кабеля или адаптера с той же конфигурацией контактов, подсоедините к кабелю/плате гребешок-переходник со штырьковыми контактами.
Затем подключите этот гребешок к FTDI-контактам на 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
Чтобы 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.
- Кликаем на Инструменты > Плата > Arduino Fio (Tools > Board > Arduino Fio) или Инструменты > Плата > Arduino Pro or Pro Mini (Tools > Board > Arduino Pro or Pro Mini)
- Выбираем правильный порт в меню Инструменты > Порт (Tools > Port)
- Пишем скетч и жмем на кнопку «Загрузка».
Во время загрузки на Fio должен загореться зеленый огонек RSSI. Если вы используете XBee Explorer, то на нем должны замигать светодиоды TX и RX.
Если Fio не отвечает, то ошибка может быть в следующем:
- Убедитесь, что на Fio подается питание. Если у вас нет батареи, для этого можно использовать USB-соединение.
- Убедитесь, что слайдерный переключатель на Fio находится в положении ON.
- Проверьте настройки модулей. Может, вы пропустили какую-то настройку? Обычно такое случается при использовании программы-терминала.
Если сомневаетесь, проверьте Fio программированием через проводное соединение, которое было описано в самом первом разделе этой статьи.