roboforum.ru

Технический форум по робототехнике.
Текущее время: 02 дек 2024, 10:09

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 40 ]  На страницу 1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Авто-определение COM порта на котором висит Ардуина
СообщениеДобавлено: 26 мар 2012, 19:17 
Не в сети

Зарегистрирован: 05 янв 2010, 23:07
Сообщения: 283
Откуда: Красноармейск
Skype: dmitry.vladimirivich
ФИО: Дима.В.
Всем привет!
Решил написать программку, которая бы "сканировала" все COM порты которые есть в компьютере, и тот на котором висит контроллер Ардуино выводила бы на экран. Вот в инете нарыл, народ тем же вопросом задавался:

http://stackoverflow.com/questions/3293 ... o-com-port

Вопрос: как мне к этому делу прикрутить графическую оболочку?
Я так понимаю надо чтото типа Visual Studio взять, туда портировать этот код:

Код:
private string AutodetectArduinoPort()
        {
            ManagementScope connectionScope = new ManagementScope();
            SelectQuery serialQuery = new SelectQuery("SELECT * FROM Win32_SerialPort");
            ManagementObjectSearcher searcher = new ManagementObjectSearcher(connectionScope, serialQuery);

            try
            {
                foreach (ManagementObject item in searcher.Get())
                {
                    string desc = item["Description"].ToString();
                    string deviceId = item["DeviceID"].ToString();

                    if (desc.Contains("Arduino"))
                    {
                        return deviceId;
                    }
                }
            }
            catch (ManagementException e)
            {
                /* Do Nothing */
            }

            return null;
        }


Какие для этого библиотеки надо искать и добавлять в проект?

На С++, если пока не брать графическую оболочку, это я так понимаю примерно так будет выглядеть:

Код:
void AutodetectArduinoPort()
        {
            ManagementScope connectionScope = new ManagementScope();                                         //тут незнаю
            SelectQuery serialQuery = new SelectQuery("SELECT * FROM Win32_SerialPort");                     // 
            ManagementObjectSearcher searcher = new ManagementObjectSearcher(connectionScope, serialQuery);  //
            {
                while(1)
                {
                    ManagementObject item in searcher.Get()
                    string desc = item["Description"].ToString();
                    string deviceId = item["DeviceID"].ToString();
                    if (desc.Contains("Arduino"))
                    {
                        printl(deviceId);
                        break();
                    }
                }
            }
            return 0;
        }


Только я не знаю C# совершенно... И основной код не понятен

_________________
#define TRUE FALSE


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Авто-определение COM порта на котором висит Ардуина
СообщениеДобавлено: 26 мар 2012, 19:31 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
Если в дескрипшене реально есть слово Ардуино, то можно элементарно мой ком-виджет на питоне допилить

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Авто-определение COM порта на котором висит Ардуина
СообщениеДобавлено: 26 мар 2012, 20:02 
Не в сети

Зарегистрирован: 05 янв 2010, 23:07
Сообщения: 283
Откуда: Красноармейск
Skype: dmitry.vladimirivich
ФИО: Дима.В.
А можно поподробней про Ваш проект?

_________________
#define TRUE FALSE


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Авто-определение COM порта на котором висит Ардуина
СообщениеДобавлено: 26 мар 2012, 20:23 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
Спасибо за "проект" - звучит гордо :-)
forum102/topic11306.html#p235012

Добавлено спустя 17 минут 35 секунд:
Orduino-Nano вот так определяется: OM2 Silicon Labs CP210x USB to UART Bridge (COM2)

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Авто-определение COM порта на котором висит Ардуина
СообщениеДобавлено: 26 мар 2012, 20:27 
Не в сети

Зарегистрирован: 05 янв 2010, 23:07
Сообщения: 283
Откуда: Красноармейск
Skype: dmitry.vladimirivich
ФИО: Дима.В.
Посмотрел
Я питон знаю не лучше C#.
Насколько сложно допилить этот виджет?

Добавлено спустя 2 минуты 10 секунд:
Цитата:
Orduino-Nano вот так определяется: OM2 Silicon Labs CP210x USB to UART Bridge (COM2)


Допустим в дескрипшене нету инфы что подключена именно Ардуина.
Может тогда стоит попробовать отправлять какой-нить байт?
Среда Ардуиновская же перед загрузкой както узнает что на этом порту за Ардуина, какой чип

_________________
#define TRUE FALSE


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Авто-определение COM порта на котором висит Ардуина
СообщениеДобавлено: 26 мар 2012, 20:29 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
Dmitri Vladimirovich писал(а):
Посмотрел
Я питон знаю не лучше C#.
Насколько сложно допилить этот виджет?

Элементарно. Вопрос в том, какая будет от этого польза. Сам по себе он делает только энумерацию портов и открывает коннект. Т.е. для того, чтобы его использовать в проекте его надо встраивать в большой проект, предположительно тоже написанный на питоне...
Но вообще проблемы с этой задачей почти никаких. Если можете работать с портом на любом языке и в любой среде, то объем доработок минимальный

Добавлено спустя 17 секунд:
А зачем это кстати?

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Авто-определение COM порта на котором висит Ардуина
СообщениеДобавлено: 26 мар 2012, 20:41 
Не в сети

Зарегистрирован: 05 янв 2010, 23:07
Сообщения: 283
Откуда: Красноармейск
Skype: dmitry.vladimirivich
ФИО: Дима.В.
У нас в кружке когда приходят новые ребята с трудом запоминают как узнать номер порта где висит Ардуина. Иногда вообще пропадает желание дальше пробовать, потомучто новичкам как не странно из за этой процедуры установка кажется весьма сложной. Вот решил попробовать сделать такую программку.

_________________
#define TRUE FALSE


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Авто-определение COM порта на котором висит Ардуина
СообщениеДобавлено: 26 мар 2012, 20:57 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
Dmitri Vladimirovich писал(а):
У нас в кружке когда приходят новые ребята с трудом запоминают как узнать номер порта где висит Ардуина. Иногда вообще пропадает желание дальше пробовать, потомучто новичкам как не странно из за этой процедуры установка кажется весьма сложной. Вот решил попробовать сделать такую программку.

Проще сделать, чтобы запоминался последний используемый порт имхо...

Добавлено спустя 2 минуты 38 секунд:
а опишите подробнее, что хотите сделать? Может мне проще мою прогу доделать?

Добавлено спустя 1 минуту 7 секунд:
просто написать на каком порту ардуино что ли?????

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Авто-определение COM порта на котором висит Ардуина
СообщениеДобавлено: 26 мар 2012, 21:00 
Не в сети

Зарегистрирован: 05 янв 2010, 23:07
Сообщения: 283
Откуда: Красноармейск
Skype: dmitry.vladimirivich
ФИО: Дима.В.
Ага, порт на котором висит Ардуино. Хотябы версии с ft232

Добавлено спустя 1 минуту 15 секунд:
То есть подрубил кто-то Ардуину к компу, запустил эту прогу, ага, Ардуина на COM7, Открывает Ардуину, Тулз-Порт-СОМ7

_________________
#define TRUE FALSE


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Авто-определение COM порта на котором висит Ардуина
СообщениеДобавлено: 26 мар 2012, 21:04 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
А питон поставите на машины? Я пока не умею делать чтобы без интерпретатора работало Ж((

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Авто-определение COM порта на котором висит Ардуина
СообщениеДобавлено: 26 мар 2012, 21:11 
Не в сети

Зарегистрирован: 05 янв 2010, 23:07
Сообщения: 283
Откуда: Красноармейск
Skype: dmitry.vladimirivich
ФИО: Дима.В.
Для начала вполне пойдет питон, но потом думаю делать под Линух и Мак, все таки не все на винде сидят, а многие начинают дома пробовать заниматься

_________________
#define TRUE FALSE


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Авто-определение COM порта на котором висит Ардуина
СообщениеДобавлено: 26 мар 2012, 21:26 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
Ну вот. Находит первый порт со словом Ардуино в описании.

Добавлено спустя 51 секунду:
По кнопке обновляет...
DeaD, на картинке тебе намек :-)


Вложения:
ArduinoPortFinder.py [1.98 КиБ]
Скачиваний: 256
serial.jpg
serial.jpg [ 19.74 КиБ | Просмотров: 2536 ]

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Авто-определение COM порта на котором висит Ардуина
СообщениеДобавлено: 26 мар 2012, 21:49 
Не в сети

Зарегистрирован: 05 янв 2010, 23:07
Сообщения: 283
Откуда: Красноармейск
Skype: dmitry.vladimirivich
ФИО: Дима.В.
Уряя! Загрузился питон! Сча буду пробовать

Добавлено спустя 5 минут 56 секунд:
Поставил питон
Подключил Ардуину
Запускаю фал - на экране появляется окно консоли и сразу исчезает. Ардуина висит на КОМ15

_________________
#define TRUE FALSE


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Авто-определение COM порта на котором висит Ардуина
СообщениеДобавлено: 26 мар 2012, 21:53 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
запустите cmd
напишите там "python.exe ArduinoPortFinder.py"

Добавлено спустя 47 секунд:
Скорее всего она ругается на не установленный pySerial

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Авто-определение COM порта на котором висит Ардуина
СообщениеДобавлено: 26 мар 2012, 22:03 
Не в сети

Зарегистрирован: 05 янв 2010, 23:07
Сообщения: 283
Откуда: Красноармейск
Skype: dmitry.vladimirivich
ФИО: Дима.В.
Скачал пакет pyserial, запустил setup.py, на некоторое время появилось окно консоли и исчезло.
Запустил Вашу программу - тоже самое.
Пробовал разные файлы запускать из папки с примерами- о пять появляется консольное окно и пропадает. Может еще чего-то не хватает?
Качал питон и pyserial отсюда:
http://pypi.python.org/pypi/pyserial
http://www.python.org/getit/

Добавлено спустя 17 секунд:
уп, сча попробую

Добавлено спустя 2 минуты 50 секунд:
C:\Documents and Settings\Dim\Мои документы>python.exe Arduin
oPortFinder.py
"python.exe" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

C:\Documents and Settings\Dim\Мои документы>

Добавлено спустя 35 секунд:
блин, проявляется мое незнание работы с виндовой консолью

Добавлено спустя 15 секунд:
а, стоп. извиняюсь

Добавлено спустя 1 минуту 57 секунд:
Код:
C:\Program Files\Python32>python.exe ArduinoPortFinder.py
Traceback (most recent call last):
  File "ArduinoPortFinder.py", line 13, in <module>
    import serial
ImportError: No module named serial

C:\Program Files\Python32>


Добавлено спустя 3 минуты 7 секунд:
походу pyserial таки не поставился

_________________
#define TRUE FALSE


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 40 ]  На страницу 1, 2, 3  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO