Заливка скетча через Bluetooth
- Войдите на сайт для отправки комментариев
Втр, 26/02/2013 - 12:00
Добрый день многоуважаемый All!
В теории - Bluetooth пробрасывает ком порт. На ардуинке он у меня подключен к пинам ком порта и работает. Кермит строки с ком порта на компе получает и передает, но среда разработки ардуину не видит.
Чего не хватает чтобы его можно было использовать для заливки скетчей?
Было бы реально удобно Ж)
всмысле в комп воткнута первая адруина без мк, с голубым зубом (типа мост ftdi->bluetooth), в устройстве МК из ардуины (но НЕ в самой плате, НЕ плата Nano/Mega, НЕ подключенная к FTDI), с голубым зубом? (т. о. приемник bluetooth->AVR). если не так то можно попробовать так.
т. к. в ином случае, допустим тупо 2 ардуины, на приемной может быть конфликт т. к. фактически в сериал воткнуто два устройства, зуб и фтди.
Нет, не так
В комп включен донгл Блютуф - он ком порт на компе. К контроллеру заместо FTDI - подключен блютуф модуль - тож ком порт. И через этот ком порт есть желание заливать скетч.
Опытным путем проверено что обесточенный FTDI на плате не мешает работе ком порта через те же пины.
P.S. А воткнуть в комп FTDI без ардуины и повесить на него мастера Блютуфа - это мысль - надо попробовать...
Нужен сигнал DTR, для софтового ребута контроллера
да, кстати, если зажать reset на плате, а потом нажать в среде Upload. как только появилась надпись "Скетч собран, размер X байт из Y" - отпускаем кнопку сброса, и прошива пошла.
хотя, если речь о перешитии устройства на высоте 4-го этажа на фасаде здания, неудобно.
А если в скетче предусмотреть софт-ребут контроллера по внешней команде с того же блютуфа с задержкой на время подготовки к заливке (компилировать отдельно) - как думаете прокатит?
да прокатит, но не так удобно, сначала придется послать в сериал код сброса, потом шить.
всяко dtr должен как-то отводиться от этого трансивера, у hc-03 куча проводов, не может такого быть чтобы его там не было. я так думаю....
как вариант - выбрать себе порт PIO какой понравится, чтобы на нем во время работы была единица. его соединяем со сбросом.
теперь если послать AT команду AT+PIO=x,0 - МК в сбросе, по команде AT+PIO=x,1 сброс отпускается (где x - десятичный номер порта модуля, у него их 12).
если речь об HC-03 ессно, хотя они мало чем отличаются.
Вроде в режиме ком порта (не управления) HC-03 не может сам обрабатывать команды? Или я не прав?
в одном из двух режимов работает - либо uart удлиннитель, либо "типа модем" с ат командами. смотря как его запустить, в зависимости от 0/1 на одном из его портов ввода-вывода. но как насчет переключения туда-обратно, "на горячую" - мне неизвестно, не использовал этот режим на нем.
В субботу попробую все варианты.
Пока ничего не вышло.
По результатам :
1 На моей тестовой ардуине (Freeduino nano V5.0) при отключении джампера ресета - ресет руками надо делать точно через 10 сек после появления надписи что скетч собран - тогда все заливается.
2 Шаманство с ком портом на Блютуф модуле пока безрезультатно, может кто знает штатную скорость аппаратного ком порта Ардуины?
p.s. Может нужно какой то init для порта перед заливкой, а блютуф модуль его не делает?
ну хз.... самому если честно интересен этот вопрос.
Присоединяюсь! Тоже давно интересет этот вопрос......но пока он похоже в подвешенном состоянии...
Нарыл вот такую штуку http://arduino.cc/en/Main/ArduinoBoardBluetooth
http://arduino.cc/en/uploads/Main/arduino_bt06.pdf
Из описания не ясно - она через BT или через COM программится
На фотке и в схеме FTDI не видно
Похоже что эта http://arduino.cc/en/Main/ArduinoBoardBluetooth Ардуина благодаря специализированной микросхеме WT11 и может программироваться с компьютера беспроводно. А вот удастся ли организовать RESET от модуля HC-04 - вопрос. Как нибудь на досуге "пощупаю" осциллографом выводы на НС-04 на предмет наличия сигнала для RESET - вдруг повезёт?
http://arduino.cc/en/Main/ArduinoBoardFio
Написано "Additionally, by using a modified USB-to-XBee adaptor such as XBee Explorer USB, the user can upload sketches wirelessly."
В коментах написано что FAQ описывает параметры беспроводного подключения через внешний модуль.
http://arduino.cc/en/Main/ArduinoBoardFioTips
http://arduino.cc/en/Main/ArduinoBoardFioProgramming (внизу)
Продолжаю копать...
Так у меня ничего с голубым зубом и не вышло. В результате собирсь взять 2 мк попроще(пока не решил какие) к первому подключу на цифровые пины RX TX Reset от FT232 и через радио NRF24 буду прокидывать на второй контроллер который зацеплю на входы программируемого основного мк RX TX Reset. С двусторонней передачей и контролем радио канала (через pipes) - думаю должно заработать.
Какие контроллеры посоветуете выбрать?
Где подводные камни которые я не вижу пока?
Можно еще отсюда копание начать, но похоже там таки серьезно разбиратся прийдется. И шансы "ухекать модуль" - не нулевые. Но если трудности не страшат, то в итоге похоже можно его таки заставить танцевать
Светодиоды, кнопки и Bluetooth hc-05. Часть 01 / Связь железа с компьютером. / Сообщество EasyElectronics.ru (а внутри еще ссылки есть)
радио модули с чипом nrf24l01+ хорошие, но не знаю, подходят ли они для организации COM порта. Чип не может одновременно передавать и принимать. Как минимум придётся буферизировать, а это значит, что появятся задержки, возможно нарушение протокола программирования (прошивки).
2 мегабита должно наверное хватить чтоб байт туда байт обратно толкать и успевать 57600 обслуживать?
Не знаю, что вам ответить. Я три месяца назад прочитал даташит nrf24l01+. Сейчас точно не помню, но вроде бы 2 мегабита в секунду - это есть пиковая транспортная скорость радиоканала. Сомневаюсь, что наши контроллеры могут обеспечить аналогичную скорость потока данных.
Поищите, кажется на хабре была статья типа "радиоудлинитель ком порта". Я не нашёл. Дайте ссылку, если найдёте.
Продолжаю тему там
http://arduino.ru/forum/programmirovanie/pereproshivka-blokov-cherez-rf-modul-nrf24l01#comment-41533
Программирование arduino через bluetootch. Кто ищет тот найдёт. Мож кому неудобно с USB бегать за роботом, чтоб перезалить скетч в его ардуино. цена вопроса: HC-05 модуль за 4,5$
Одна из существующих схем залить скетч по воздуху:
http://letsmakerobots.com/content/programming-arduino-bluetooth
Или такое решение (просто добавить навесной кондёр), если есть блютуз шилд :
(блютуз перемычками на шилде поставить на железный rx tx (0и1 цифровые входа) )
http://blog.iteadstudio.com/upload-program-to-arduino-with-bt-shield/
http://www.instructables.com/id/Wireless-upload-program-to-Arduino-without-USB-cab/
http://blog.iteadstudio.com/warless-program-your-iteaduino-bt-2/
HC-05 - это блютуз RX TX , управляеммый AT-командами
(HC-06 - начинка таже, только прошивка//программа другая, соответственно распиновка и общение)
Но для пытливых умов эт блютуз с микроконтроллером, на него можно доп-но писать программы на С++, управлять его свободными пинами :
Светодиоды, кнопки и Bluetooth hc-05. Часть 01 http://we.easyelectronics.ru/electro-and-pc/svetodiody-knopki-i-bluetooth-hc-05-chast-01.html
Вроде есть прошивка которая делает из его свободных пинов - полноценный bluetootch RS232 , с важным нам DTR для сброса ардуино.
ещё такая красивая картинка попадалась
доп инфа по распиновке и различиям
http://robocraft.ru/blog/electronics/587.html
http://wiki.pinguino.cc/index.php/SPP_Bluetooth_Modules
При перезагрузке загрузчик (boot loader) получает управление и несколько секунд слушает сом порт.
Если оттуда что то идет, он грузит это в еепром и передает управление загруженному коду.
Если в сом порту ничего нет, загрузчик передает управление ранее загруженному коду.
Именно поэтому, для загрузки скетчей требуется ребут контроллера.
И соответственно, если хотите шить ардуину по воздуху, нужно научить загрузчик работать с блютус модулем, чтобы он слушал сом порт через него.
И попытаться втиснуть код в 2 килобайта, это максимум, что отведено загрузчику.
При перезагрузке загрузчик (boot loader) получает управление и несколько секунд слушает сом порт.
Если оттуда что то идет, он грузит это в еепром и передает управление загруженному коду.
Если в сом порту ничего нет, загрузчик передает управление ранее загруженному коду.
Именно поэтому, для загрузки скетчей требуется ребут контроллера.
И соответственно, если хотите шить ардуину по воздуху, нужно научить загрузчик работать с блютус модулем, чтобы он слушал сом порт через него.
И попытаться втиснуть код в 2 килобайта, это максимум, что отведено загрузчику.
вы главно не обобщайте, ардуины они разные бывают.
но в самом простом варианте вот как вы и описали. и ничто вам не мешает подвесить блютус на первый железный сериал.. он вроде бы и единственый в самой простой дуньке.
а более прдвинутые дуньки у которых флеш разбит на страницы, умеют сами себе эти страницы перепрошивать
Ну тк у кого нибудь получилось заливать скетч по воздуху с помощью HC-05?
Вот на такую темку наткнулся: http://robocraft.ru/blog/3089.html тут как вариант есть над чем подумать.
В чем может быть засада, не могу в IDE назначить порт который создала HC-05? Там создается 2 виртуальных порта а IDE видит только один из двух с большим числом.
В чем может быть засада, не могу в IDE назначить порт который создала HC-05? Там создается 2 виртуальных порта а IDE видит только один из двух с большим числом.
отключаем/подключаем еще раз. Выходим из ВСЕХ экземпляров ArduinoIDE и заходим заново.
Пробовал уже, у меня этих HC-05 2 штуки каждую и удалял из устройств и заного находил привязывал один хрен видит их порты но не те что надо второй из двух созданных. Пробовал на двух разных компах результат одинаковый. Может причина в 7 винде?
по вышеуказанным ссылкам всё должно работать. Полагаю причина м.б. что незаметил такие пункты , как установка: скорости порта, слейва(не мастера), выбор простой ардуины (older, pro, mini, т.е. то что без 16u2) и правильное подключение rx-tx tx-rx.
Как я понял HC-05 при соединении по блютуз с компьютером создает 2 виртуальных порта, один на прием другой на передачу (во всяком случае в ХР именно так и обозначалось. Почему же тогда IDE видит только порт на прием а не на передачу? Если не прав поправьте.
Если у тебя версия IDE 1.0.6 то попробуй поставь другую версию. У меня была такая же проблема. Пропадал сервис SPP.
Наткнувшись на вот эту тему: http://habrahabr.ru/post/235727/ снова появилась надежда возможности заливать скетч по воздуху.
Но все оказалось не так просто как я думал, HC-05 никак не хотела отвецать на АТ команды.
Вот здесь http://www.aquaforum.ua/showthread.php?t=34275&highlight=%EA%EE%EC%EF%FC%FE%F2%E5%F0&page=298 есть отличная програмка терминал HC05.zip, а вот здесь http://we.easyelectronics.ru/part/rabota-s-bluetooth-modulem-hc05.html вполне понятно объясняется как HC-05 привязать к мак адресу блютусины своего компа.
Все сам лично проверил, работает на ура! Правда проверял пока только на ардуино нано, но думаю с другими тоже проблем не будет главное скорость порта в HC-05 нужно выставлять такую же как у вашей модели ардуины.
Зачем?
Для чего мне это нужно я выше писал.
Господа,
Нашел вот такой простой вроде способ заливки скетча по блютуз. http://robocraft.ru/blog/3089.html Но есть ряд вопросов:
1. Скорость HC-06 выставил на скорость МК на 115200. Тобишь модуль отвечает на АТ команды
кто нибудь помоги плиз....Я думаю многим новчикам будет интересно заливка с расстояния.
Сначала ресет, потом прошивка. В блютусых модулях HC для этого (ну не совсем конечно) вывод существует, просто на нем уровень устанавливается (если правильно помню 1) когда передача начинается, только его инвертировать надо, чтоб ардуенку пересбросить.
По мне, решение - перебор. Есть проще и без перепайки модулей.
https://geektimes.ru/post/254972/
Вот работающее решение. Пользуюсь давно и без проблем. Работало на Uno, меге. Других у меня нет. На всякий случай - на Дуе, ессно, работать не будет. В принципе из представленной схемы выкинуть все кроме конденсатора (который можно в термоусадку на провод повесить). С указанным номиналом у меня не заработал. Поставил электролит в 1мкф и - как часы.
Там все подробно описано (указанную dll не ставил). ... И так сойдет (с) Вовка в тридевятом царстве
Спасибо за ответ и тут сразу много вопросов:
1. Из ссылки: "Итак, имеем на руках модуль HC-05. Теперь нужно задать ему параметры работы. Для перевода в режим установки параметров нужно подпаять последнюю, 34-ю ногу к питанию 3.3в."
Мой модуль отвечает на АТ команды и без этих действий. И я выставил скорость как на Ардуино - Значит мне этого делать не нужно?
1. В ссылке https://geektimes.ru/post/254972/ модуль имеет 5 выходов.
У меня вот такой модуль http://www.dx.com/p/jy-mcu-arduino-bluetooth-wireless-serial-port-module-104299#.V8A7nFt95hE
в котором все ножки припаяны по периметру и всего 4 контакта (VCC, TX, RX, GND). Правда есть еще два не зайдействованных KEY и STATE. Для чего они нужны не знаю.
Куда мне подавать RESET?
3. Сигнал RESET на предложенном варианте взят с VCC от БТ модуля, как это сбрасывает Ардуино?? Я так понял на Ардуино нужно отправить сигнал на пин RESET, нет?
4. Нету примерного скетча с коментариями?
Сам модуль сильно не ковырял (информации в сети достаточно), но по пунктам:
1. Получается, что так. Только в режиме AT-команд у меня беспроводная загрузка не работала. Может настло время убрать "перемычку"? Но с начала попробуйте так.
2 и 3. использую вывод STATE он становится в HIGH при начале передачи. Соответственно с другой стороны имеем пин RESET, которым нужно моргнуть в LOW (поскольку это нужно для сброса). Поскольку STATE всегда будет в HIGH пока идет передача, а моргнуть нужно в начале и кратковременно, то в цепи между ними ставим конденсатор. Соответственно его нужно подобрать, чтобы моргание было не слишком коротким, но и заметным для ардуинки.
ВСЕ! Никаких специальных скетчей писать не нужно. Только проверьте настройки для IDE, которые по ссылке приводятся. Связываете модуль с компом, вешая его на какой-либо COM-порn, выбираете этот порт в IDE и сидите с квадратными глазами, наблюдая загрузку. Только не забыть повесить БТ-модуль на 0 порт в ардуине.
Может, где и напутал, но проверить смогу только после 22:00.
Нужно дождаться с DX.com кондеры...Дома не с чего даже выдрать...
...Поскольку STATE всегда будет в HIGH пока идет передача...
Получается при любом обмене данных с БТ на Ардуино, будет идти сигнал на сброс Ардуинки??
ВСЕ! Никаких специальных скетчей писать не нужно. Только проверьте настройки для IDE, которые по ссылке приводятся. Связываете модуль с компом, вешая его на какой-либо COM-порn, выбираете этот порт в IDE и сидите с квадратными глазами, наблюдая загрузку. Только не забыть повесить БТ-модуль на 0 порт в ардуине.
Если я правильно понял то для заливки нужно просто повесить на порт где блютуз соединение и нажать upload?
Это как??
Вывод правильный. Больше этот БТ-канал ни для чего использовать нельзя, но ведь есть SoftwareSerial, так что не критично.
Да, "просто повесить на порт где блютуз соединение и нажать upload".
Это значит подключить к tx0 и rx0 ;)
вот заливка скетча через канал гпрс... это да, а блютуз - подумаешь...
вот заливка скетча через канал гпрс... это да, а блютуз - подумаешь...
Тоже задумывался над этим, но есть и минусы, нужно симкарту с инетом (затраты лишние). Хотя если прикинуть объем передаваемых данных совсем мал, наверное особо и не будет стоить...
Видел дешевый модуль:
http://www.dx.com/p/gprs-a6-serial-gprs-gsm-module-core-developemnt-board-for-arduino-433790#.V8PZiVt95hE
Но мне пока бы с блютузом разобраться. Так и не получается перевести БТ модуль в АТ команды используя Arduino IDE :(
Вопрос: если модуль не отвечает с замкнутыми Rx Tx значит все кердык модулю? Спаривается причем нормально, по пину. Лед на БТ горит не моргая
Мне пожалуйста заверните ISP удлиннитель на трансиверах RF24.
А если серьёзно, такой возможен вообще? Просто МК с трансивером, на одном конце следящий за Reset, D11, D13 и дёргающий D12, а на другом конце дёргающий Reset, D11, D13 и следящий за тамошним D12. Ну должна же прокатить тема? Скорость низкая, 19200. Мне сей девайс был бы крайне полезен...