Wireless Programming Module For Arduino

Обсуждаем Arduino, Raspberry Pi и другие электронные компоненты и проекты DIY
Ответить
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
Сообщения: 1020
Зарегистрирован: 22 окт 2010, 23:57

Wireless Programming Module For Arduino

Сообщение Mr.Kubikus »

Добрый день, сотрудники Пакпак. На сайте DFRobot узнал, что Вы являетесь представителем в России. Поэтому решил написать вам. Купил Wireless Programming Module For Arduino (SKU:TEL0037). Обучающее видео в сети internet дало надежду, что использование крайне простое у этих модулей. Но на практике столкнулся с неразрешимыми трудностями. Если Вам известны ответы на мои вопросы, то прошу дать совет. Иначе купленные и долгожданные модули будут пылиться в ящике.
1. Какое значение нужно ввести в ячейки Module ID, для настройки связи двух модулей для заливки скетча с компа на Arduino? И что это за ячейки? Если традиционный IP, то почему ячеек пять?
2.На что влияет значение Frequency? Какое значение нужно установить для связи этих двух модулей?
3.Переключатель 1:MODE при настройке параметров должен быть в положении ON, при работе в положении OFF?
4.Какую функцию выполняет переключатель 2:PROG_EN? В каком положении он должен быть на обоих модулях?
Я перепробовал, как мне кажется, огромное количество разных вариантов и комбинаций Все без какого-либо полезного результата. Скетч не заливается. Для подключения к компьютеру для изменения настроек и передачи скетча использую адаптер UARTSBee (что-то вроде XBee Shield). На Arduino Uno использую IO Expansion Shield V5.0.
Здравствуйте!
К сожалению у меня нет опыта работы с этим модулем. Попробуйте поискать ответы на ваши вопросы на wiki-страничке этого девайса - Wireless Programming Module For Arduino (SKU:TEL0037).
Там есть подробное описание процедуры настройки этого модуля:
  • Step 0:Switch the WPM to config mode by switching the "Mode" to "ON" position, a blue (or red, depending on WPM Version) LED should turn on. And make sure the "Prog_EN" is at "OFF" position.
  • Step 1:Plug the WPM on the XBee Adapter
  • Step 2:Plug the Xbee Adapter into any USB port of your PC
  • Step 3:Run the configuration tools software
  • Step 4:Select the proper serial port and baud rate (57600bps by default). If you do not know the baud rate, you might have to try different ones until you get a response on the right information window.
  • Step 5:Click button "Connect WPM",if everything is fine, the module information will be displayed in the right information window. If you get no response try pressing the "ATENTER" and "Send" buttons on the lower right debug window.
  • Step 6:Select the proper Arduino board that you are intending to program.
  • Step 7:Click "Apply Setting" button
  • Step 8:Wait for the module to restart, once the module information(in the right window) has changed, the module is ready to do wireless programming
С уважением, Григорий
GitHub FB ВК
idealsoul
Сообщения: 26
Зарегистрирован: 29 ноя 2012, 17:33
Откуда: Москва
Контактная информация:

Re: Wireless Programming Module For Arduino

Сообщение idealsoul »

Уважаемый Григорий, благодарю за ответ.
Прежде чем писать письмо в адрес вашей организации я перевернул все, что только можно перевернуть через поисковые системы яндекс и гугл. Страничка на вики была одним из первых источников информации. Все мои вопросы сформулированы исходя из того, что совершенно не отражено в мануале к модулям и в сети. Ничего по-делу на страничке вики не рассказано.
Очень заманчиво заливать скетч без проводов, особенно это актуально при конструировании моего робота, так как на столе он не умещается. Пару дней поиграюсь и брошу. Буду ждать, пока какой-нить программер разберется с этим. Моих гуманитарных знаний явно не хватает.
Но, все равно спасибо.
Проживи эту жизнь счастливо и получи вторую в подарок!
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
Сообщения: 1020
Зарегистрирован: 22 окт 2010, 23:57

Re: Wireless Programming Module For Arduino

Сообщение Mr.Kubikus »

Ура! Мы все таки запустили этот беспроводной девайс. Пришлось немного повозиться и устранить одну досданую ошибку в настройках платы, на которую был установлен один модуль для беспроводной связи.

Думаю г-н idealsoul сам опишет конфигурацию системы и наше расследование. А я со своей стороны я только перечислю инструменты, которые мы использовали в процессе поиска решения:
1. Arduino IDE 1.0.3.
ide103.jpg
ide103.jpg (16.48 КБ) 21434 просмотра
2. Терминал RealTerm - 2 шт.
realterm.png
realterm.png (21.88 КБ) 21434 просмотра
3. Осциллограф RIGOL DS1202CA.
rigol.jpg
rigol.jpg (13.63 КБ) 21434 просмотра
4. Мультиметр APPA82R.
appa.jpg
appa.jpg (12.4 КБ) 21434 просмотра
С уважением, Григорий
GitHub FB ВК
idealsoul
Сообщения: 26
Зарегистрирован: 29 ноя 2012, 17:33
Откуда: Москва
Контактная информация:

Настройка Wireless Programming Module For Arduino

Сообщение idealsoul »

Как сказал Mr.Kubikus (Григорий Зайцев): "Ура!"
Действительно все заработало. Настало время поделиться подробностями. Очень я был заинтересован в беспроводном программировании ардуин, вот и захотелось докопаться до сути. Метод "научного тыка" не оправдал себя. Поэтому дальнейшее изучение модулей могло быть только совместно со специалистом. Такой нашелся в офисе ПАКПАК, да еще и сам заинтересовался, как они работают. Вещь-то удобная. Поехал я через весь город в надежде найти решение. И хоть теперь понимаю, что программистом мне не быть (мышление не то), все равно доволен результатами поездки. С начала около часа шло осторожное изучение модулей, потом пришло время прочитать инструкцию к ним, после чего еще около часа велись "эксперименты". Григорий (ну я тоже там был и рядом сидел с умным видом и большими глазами) используя последовательный инженерный подход, осциллограф и мультиметр со всем разобрался. Вот бы мне так уметь. ))) Одна из проблем, по которым не заливался скетч, была неправильная установка джамперов на шилде. И, как показал осциллограф, это привело к отсутствию сигнала TX там, где он должен быть.
В итоге, сейчас все работает, все огонечки мигают, ошибок не выскакивает. Вот я и решил по полочкам разложить, что да как с этими штуковинами. Мануалы издавать не доводилось, поэтому не судите строго. Итак...

Wireless Programming Module For Arduino
Для загрузки скетча без проводов из среды программирования в плату Arduino нам понадобятся следующие компоненты:
1) Arduino (например Arduino Uno);
2) 2 штуки Wireless Programming Module For Arduino (далее WPM №1 и WPM №2) 2,4 ГГц, версия V2 производства DFRobot;
3) Хотя бы один адаптер под модули (UartSBee v4.0 производства SeeedStudio) с возможностью выбора питания на 3,3 В. Адаптеров лучше два, лишними в хозяйстве не будут. Наличие двух адаптеров позволит оба модуля подключить к PC и проверить прием-передачу между ними.
4) Шилд для подключения "принимающего" модуля к Arduino (I/O Expansion V5.0);
5) Драйвер FTDI с сайта http://www.ftdichip.com ;
6) Программа WirelessProgrammer для настройки модулей с сайта http://www.dfrobot.com;
7) Данный мануал и немного спокойствия, усидчивости.

Шаг 1.
Переводим переключатель выбора питания на адаптере в положение 3,3 В. Это важно!!! От 5В модуль себя плохо почувствует и может совсем отказаться дальше работать.

Шаг 2.
Подключаем адаптер к компьютеру (можно без WPM). Открываем диспетчер устройств и обновляем драйвер адаптера из папки, в которую распаковали свеженький драйвер FTDI. После обновления драйвера появится устройство: USB Serial Port (COM...). Переподключаем адаптер.

Шаг 3.
Подключаем WPM №1 к адаптеру. Запускаем программу WirelessProgrammer. Переводим на WPM №1 переключатель MODE в положение "ON" (перевести влево, на картинке видно не четко, надпись ON смазалась) - загорается красный индикатор MODE. Выбираем плату, которую планируется программировать без проводов - Arduino Uno. Выбираем COM-порт. Жмем Connect. Свидетельством как успешного подключения для настройки, так и успешной настройки, будет служить что-то подобное в правом окне программы:

Thank you for using the 2.4G wireless module from DFRobot

---------------------www.dfrobot.com---------------------

-----------------Enter the setting mode------------------
--------------------Show the settings--------------------
Version:V2
Baudrate(Register:1-3):115200
ID(Register:4-8):192.168.1.1.1
Operating Frequency(0-125)(Register:9):40
Air Data Rate(1M/2M/250K)(Register:10):250Kbps
Timeout(Register:11):20

Оставляем все как есть или устанавливаем требуемые значения настроек WPM №1.

Шаг 4.
Переводим переключатель MODE в положение "OFF" - гаснет красный индикатор MODE. Вынимаем WPM №1из адаптера и присоединяем его к шилду. Переключатель PROG_EN переводим в положение "ON". Это будет "принимающий" WPM, название условное, на самом деле передача данных идет в обе стороны. В данном случае под приемом/передачей подразумевается прием/передача скетча.

Шаг 5.
Настраиваем WPM №2 по аналогии с настройкой WPM №1 с точно такими же параметрами, как и у WPM №1. Отличие только в том, что после настройки переключатель MODE переводим в "OFF", а переключатель PROG_EN оставляем в положении "OFF".

Шаг 6.
Все, модули настроены! Проверяем параметры:

WPM №1 ("принимающий", подключен через шилд к Arduino Uno)
Baudrate: 115200
ID: 192.168.1.1.1
Operating Frequency: 40
Air Data Rate: 250Kbps
Timeout: 20
MODE "OFF"
PROG_EN "ON"

WPM №2 ("передающий", подключен к USB компьютера)
Baudrate: 115200
ID: 192.168.1.1.1
Operating Frequency: 40
Air Data Rate: 250Kbps
Timeout: 20
MODE "OFF"
PROG_EN "OFF"

Шаг 7.
Джамперы на шилде нужно переставить в положение APC. На картинке показано как они должны быть установлены. Только в этом случае сигнал TX попадет куда следует. У меня джамперы были установлены не вертикально, а горизонтально, если ориентироваться на картинку.
Вот итоговая картинка, все наглядно. Обратите внимание, индикатор LINK будет мигать синим только тогда, когда будет передаваться/приниматься информация между WPM №1 и WPM №2. В отсутствии передачи/приема индикатор не горит.
photo.jpg
photo.jpg (414.19 КБ) 21425 просмотров
Шаг 8.
Запускаем среду программирования и выбираем номер COM-порта нашего адаптера с "передающим" WPM №2. Если планируется принимать данные от платы, то скорость Serial.begin(115200), наверное, должна совпадать с указанной в самих модулях - 115200.
Теперь можно прошивать плату.
Для тестирования выбираем скетч из примеров:
Файл -> Примеры -> Analog -> AnalogInOutSerial
Если в конце скетча оставим delay(2), то повторно залить через радиоканал уже не выйдет, синий индикатор на обоих модулях будет постоянно гореть. Я так полагаю, что при постоянной занятости порта процесс загрузки скетча не начинается. Придется отключать шилд и перепрошивать Arduino Uno через провод. Поэтому рекомендую задержку сделать больше, например так: delay(572), это позволит спокойно играться дальше. С указанными выше параметрами и с данным скетчем значение должно быть не менее 560 мс., число получено экспериментальным путем.
Если же в программе нельзя делать столь продолжительную паузу, то придется нажимать RESET на плате в момент начала загрузки скетча, но это уже как-то не совсем беспроводное программирование.

Возможные проблемы:
1.Старый драйвер FTDI – у меня был от 2011 года, пока не скачал свежий, ничего не работало.
2.Модули имеют разные настройки (частота, ID и др.).
3.Программа в плате вызывает постоянную передачу в порт с интервалом менее 560 мс., в этом случае скетч не начнет заливаться.
4.Модуль сгорел при ошибочной подаче на него питания 5В.
5.Поврежден USB шнур.

Все шаги по настройке с использованием данного мануала можно проделать за несколько минут. Самостоятельно настроить беспроводную загрузку кода у меня не получилось. Не было достойного мануала. У Вас теперь есть. В этом полностью заслуга Григория. За это отдельное и огромное ему спасибо! Я лишь задокументировал результат его (и немного моего) мозгового штурма.
Проживи эту жизнь счастливо и получи вторую в подарок!
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
Сообщения: 1020
Зарегистрирован: 22 окт 2010, 23:57

Re: Wireless Programming Module For Arduino

Сообщение Mr.Kubikus »

Класс!!! Какое подробное описание. Теперь точно деваться некуда, надо включать Wireless Programming Module For Arduino в наш каталог.
С уважением, Григорий
GitHub FB ВК
idealsoul
Сообщения: 26
Зарегистрирован: 29 ноя 2012, 17:33
Откуда: Москва
Контактная информация:

Wireless Programming Module For Arduino

Сообщение idealsoul »

У истории появилось продолжение.
Вышел на финишную прямую - робот совсем скоро совершит первые шаги. Изготовил центральную плату, предусмотрел в ней место для Wireless Programming Module, в точности повторил схему подключения, как в IO Expansion Shield for Arduino (V5). Прозвонил плату - все уровни напряжений в норме, замыканий нигде нет, все как задумывалось. Но вот скетч не заливается. А, забыл сказать, плату использую Arduino Mega 2560 Rev3 (ту самую, на которой выяснились проблемы с тремя знаками "!"). Для контроля собрал такое: Mega Sensor Shield v1.2 + Wireless Programming Module + Arduino Mega 2560 Rev3 = 0. Никакого результата! Ссылаться на косяк изготовления при таком раскладе не приходится. Еще контроль: IO Expansion Shield for Arduino (V5) + Wireless Programming Module + Arduino Uno Rev3 = все получается, все заливается. Комбинирую настройки Wireless Programming Module (частота, таймаут, скорость передачи) - ничего! Есть еще одно "НО" - в комбинации Mega Sensor Shield v1.2 + Wireless Programming Module + Arduino Mega 2560 Rev3 при заливке скетча дистанционный программный сброс происходит, но не стартует заливка. И еще интереснее - если использовать радиоканал для приема/передачи через порт, то все без проблем. Передается/принимается без ошибок.
Одно предположение - эта Мега не только с "!!!" не умеет работать, но и с Wireless Programming Module.
Смирюсь.... скетч в робота будет заливаться через хвост (шнур).....
Проживи эту жизнь счастливо и получи вторую в подарок!
Ответить