Удобная отладка скетчей по COM порту
- Войдите на сайт для отправки комментариев
При отладке скетчей часто требуется выводить сообщения на комп по COM порту. Стандартные утилиты достают тем, что они при запуске захватывают COM порт Arduino и чтобы перезалить новый скетч, нужно выгружать эти утилиты, а для отладки снова запускать.
Поэтому написал свою утилиту. Особенности:
1. Автоматическое определение COM порта, к которому цепляется Arduino (можно выставить жестко вручную в файле ini)
2. Сама определяет момент заливки скетча в Arduino и освобождает на это время COM порт. Затем снова цепляется к нему.
3. Все сообщения с COM порта можно одним кликом записать в файл.
Надеюсь, эта утилита сэкономит вам, как и мне, кучу нервов. Скачать ее можно по ссылке ниже. Проверена на IDE 1.0.3 и 1.05. Возможно есть и ошибки, написал недавно, но пока работает нормально.
http://files.mail.ru/BF2A5004A23E4E519BF4ED1F08EBE5DF
Если появятся вопросы, найти меня можно через мой сайт (в заголовке утилиты).
Это глюк или фича?
Такая картинка возможна, если порт в момент запуска утилиты занят. Увы, не было у меня пока такого случая. Вот и первая ошибка... Да, у меня atmega 2560 R3 и ловилась только она на автомате. Поправил для работы с другими моделями. Проверить не на чем, но должно работать
http://files.mail.ru/263EE2295E994E6E8BE98BEB91717B01
то глюк или фича?
это красиво!
Видите ли, уважаемый, на руках нет всех типов ардуин, так, что понять как в реестре будут прописываться они точно невозможно, не расковыряв дрова. Конечно тестировалось на своем железе. Потому и написано что возможны ошибки. Вот и после первого поста с картинкой я обнаружил проблему и постарался исправить в след. ссылке. Процесс исправления ошибок - это нормально, хоть и хотелось бы "все и сразу".
На разных компах запускал - все ok. Но железяка Arduino у меня пока одна.
На разных компах запускал - все ok. Но железяка Arduino у меня пока одна.
при чём здесь железо и реестр вообще? - не должен софт плодить дубли диалоговых окон при любом раскладе.
Согласен. Но для работы с COM портом использовалась свободная визуальная компонета, которая и выдает эти окна. Теперь, конечно, придется разобрать ее код и устранить ошибку. А реестр для определения порта, на который села ардуина. Соответственно, разные типы ардуин будут региться в реестре по-своему (что зашито в их дровах). Вот при чем здесь железо и реестр :)
это красиво!
Напомнило.....
Я бы поменял название файла на что-нибудь более близкое к его функциям-возможностям...
Ну все, заприкалывали "красивыми" картинками ))) Расковырял компонент и убрал этот прикол. Вы уж напишите, работает ли? Если нет, то на какой конфигурации? Если да, то что хрошего (плохого) сказать о работе. Исходники не жалко, если кому интересно.
http://files.mail.ru/DF067C159FF04A7EA84BD3324F89094A
Вы исчерпали лимит одновременных скачиваний
Вы уж напишите, работает ли? Если нет, то на какой конфигурации?
на конфигурации без компорта не работает
Вопрос - а, почему файлег называется "arduino.exe"? что бы что?
Вы исчерпали лимит одновременных скачиваний
ну, вот - забанили в маил.ру... допрыгался
У меня тоже atmega 2560 R3. Подключил ардуину, запустил програму, выбрал порт и тишина. Что должно происходить? В обычном терминале от виндовс после запуска ардуина пищет через 3сек. "Старт программы" а тут не чего.
Значит так. Ардуино подключаться может и по USB. Ардуина д.б. вставлена. COM порт эмулируется драйвером ардуины. Соответственно, если посмотреть в диспетчер устройств, а именно в COM порты, то там на одном из COM портов д.б. видна строка типа "Arduino .... (COM3". Вот по этой инфе прога и находит номер порта. Гляньте, что у Вас там. Вот вспомнил, что железки то как тока не называются, и фридуино и т.д. Надо видимо это учесть. А название... ну изменим, это просто для себя все писалось. А насчет майл.ру вот на другом файлообменнике. http://rghost.ru/50306400
Порт в программе не выбирается. Он находится автоматом. В заголовке окна либо должен быть указан обнаруженный порт, либо нет связи с Arduino. Если порт нашелся, все, прога работает
Из IDE через монитор порта связь есть. Через терминал виндовса дуина связывается нормально и нормально всё читает и пишет в обе стороны а ваша прога сама нечего не определяет и если вписать порт в ручную тоже не чего не делает. У меня виндовс 7 профи. дравина на ардуину последняя.
А во время запуска проги порт свободен? Никакие другие проги для работы с портом не запущены?
Нет. Но когда работает программа порт она занимает и не чем к нему не обратишся.
а изходник глянуть можно?
есть кнопка чтение из порта а запись в порт как происходит?
Кнопки чтения нет. Все что идет из порта отображается сразу в окне слева. Последняя строка дублируетсчя сверху. Для записи в порт есть поле ввода, после заполнения которого нужно нажать кнопку WriteToCom.
Если прога села на порт, то она его держит т.к. в любой момент может получить данные из ардуины. Освобождает его только в момент заливки скетча.
Так, если прога держит порт, значит все-таки она его нашла и в заголовке окна должно отобразиться типа COM11. Значит все должно работать. Попробуйте вывести что-то в COM порт. Внимание! Битрейт нужно выставлять правильный. Например в большинстве скетчей я вижу 9600. А у меня ардуина работает только на 19200
насчет исходника стучитесь в скайп. Ник andrakov
Похоже порт видит. Но не туда не чего не посылает(специально для проверки дописал чтобы светодиод на 13 ноге при посылке "1" загорался, "2" выключался) с терминала всё работает, с проги нет.
а в исходнике хотел посмотреть как вы определяете с помощью каких методов настройки порта?
При нажатии на кнопку записать в порт вижу на ардуине светодиод порта моргает, при нажетии на ресет дуины вижу как посыл в порт уходит а на проге ни чего. И светодиод на 13 ноге молчит.
Похоже порт видит. Но не туда не чего не посылает(специально для проверки дописал чтобы светодиод на 13 ноге при посылке "1" загорался, "2" выключался) с терминала всё работает, с проги нет.
Завтра проверю.
а в исходнике хотел посмотреть как вы определяете с помощью каких методов настройки порта?
Настройки порта задаются при его открытии. А номер порта ищется в реестре. Если интересно конкретнее, расскажу вечерком по скайпу, сейчас раб. день заканчивается, ухожу.
во всём мире опен соурс, а вы тут экзешники раздаёте. И к тому же с именем вводящим в заблуждение. хех
Ваша программа может без админских прав работать (читать нужную инфу в реестре)? Я 99% времени работаю не под админом (успешно работаю). В том числе в ардуино ide.
Пройдёмся по "особенностям"
1. Зачем это? Вы часто переключаете ? У меня часто воткнуты две 'нано'. Одна всегда в ком9, а другая всегда в ком10. Не зависимо от того в какой из трёх юсб портов компьютера они воткнуты. По-моему, ком порт назначается при первом подключении устройства.
2. родной ардуиновский монитор порта тоже так работает.
3. За последние полтора года мне как-то ниразу это не пригодилось бы. А так-то вроде пару раз выделял-копировал-вставлял в блокнот и сохранял что-то.
пока не вижу преимуществ
во всём мире опен соурс, а вы тут экзешники раздаёте. И к тому же с именем вводящим в заблуждение. хех
Ваша программа может без админских прав работать (читать нужную инфу в реестре)? Я 99% времени работаю не под админом (успешно работаю). В том числе в ардуино ide.
Пройдёмся по "особенностям"
1. Зачем это? Вы часто переключаете ? У меня часто воткнуты две 'нано'. Одна всегда в ком9, а другая всегда в ком10. Не зависимо от того в какой из трёх юсб портов компьютера они воткнуты. По-моему, ком порт назначается при первом подключении устройства.
2. родной ардуиновский монитор порта тоже так работает.
3. За последние полтора года мне как-то ниразу это не пригодилось бы. А так-то вроде пару раз выделял-копировал-вставлял в блокнот и сохранял что-то.
пока не вижу преимуществ
Я написал, что екзешеиков не жалко. Но! прога написана на Delphi, так что ни о каком oпенсорсе речи не идет в принципе. У Вас Delphi есть? А сторонние компоненты, использованные тут есть? А у кого есть и, главное - кому хочется заморачиваться всем этим?
Ну и о остальном. Что-то по делу, что-то не по делу. А короче: Вам не нужно - не пользуйтесь. Я делал для себя. Мне здорово облегчило жизнь, возможно пригодится еще кому-то. Хорошо, когда есть выбор :)
дельфи у меня есть. А читать исходники можно и без дельфи. Компоненты, как и собственно дельфи, конечно, несложно найти или купить. Придумайте название и опубликуйте-таки исходники. Опенсоурс это не только исходники, но и (как бы) заявление (декларация) автора программы о том, что программа содержит только описанные возможности. По моему скромному мнению.
Ok. Вот тут исходники, можно ковыряться, править, в общем делайте. что хотите :)
А поскольку комментов там мало, то вкратце опишу суть метода отдачи порта на время заливки скетча.
Прога по таймеру постоянно опрашивает активные окна винды. Если окно принадлежит IDE Arduino, то снимается цвет пикселя на кнопке заливки скетча (при наезде курсором на нее, цвет меняется на белый, при заливке на желтый). Логика, думаю, понятна.
Будут вопросы еще - милости прошу :)
http://rghost.ru/50323873
P.S. А монитор Arduino работает не так :). При заливке скетча он просто закрывается...
Программу перереработал и поместил на пмж сюда http:\\www.andrakov.narod.ru/arduino/mm.htm
Программу перереработал и поместил на пмж сюда http:\\www.andrakov.narod.ru/arduino/mm.htm
Что то, она не запускается на win7/64
Программу перереработал и поместил на пмж сюда http:\\www.andrakov.narod.ru/arduino/mm.htm
Что то, она не запускается на win7/64
Работаю на win7/64. Может у Вас прав админа нет? Проверю, если из-за этого, доработаем, обновим
Стандартные утилиты достают тем, что они при запуске захватывают COM порт Arduino и чтобы перезалить новый скетч, нужно выгружать эти утилиты, а для отладки снова запускать.
Terminal 1.93b by Bray - достаточно нажать кнопку Connect/Disconnect, закрывать/открывать утилиту не требуется.
RealTerm - достаточно нажать/отжать кнопку Open, закрывать/открывать утилиту не требуется.
UPD: Мля, на дату сообщений сразу не глянул.....