МК + ПК.

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
gessor
Встал на лапы
Сообщения: 115
Зарегистрирован: Ср дек 12, 2012 20:08:08
Контактная информация:

МК + ПК.

Сообщение gessor »

Здравствуйте, уважаемые радиокоты! Давно зреет один очень важный вопрос с которым хочу обратиться. Когда впервые столкнулся с микроконтроллерами, то первое время все было просто и понятно: помигал диодом, сделал мигание по таймеру, сделал мигание по прерыванию, а потом наступает несколько тупиковая ветка. Хочется идти дальше и совместить приятное с полезным. Тут и встает вопрос как соединить МК с ПК, чтобы с ПК им же и управлять или просто получать с МК данные. А на этом уже отрабатывать умение программирования и работы с МК. Изначально столкнулся с такой проблемой когда хотел научиться работать с радиоканалом на MSP430 на контроллере CC430F5137. Идея была такая: один передатчик, другой приемник. Передатчик шлет ноль, принятое значение приемник передает на компьютер и по радиоканалу обратно. Передатчик получив ответ наращивает значение на 1 и снова посылает на приемник. Таким образом на экране можно было бы наблюдать возрастающую последовательность и тем самым научиться работать с радиоканалом и подружить МК с компьютером, но с этой задачей справиться так и не получилось. Понятно, что можно колхозить индикаторы на диодиках или применять дургие оригинальные идеи, но вариант с ПК кажется наиболее наглядным и удобным. И вот тут встает сам вопрос - как их подружить? В чем удобно писать программы на ПК, надо ли и где/какие драйвера брать, есть ли у каких-нибудь производителей апноуты с открытыми проектами под Visual Studio или понятные статьи на эту тему? Сам с написанием приложений для ПК не сталкивался, поэтому не очень и понимаю как все это дело организовать. Visual Studio для примера привел, язык тоже не знаю какой актуальнее/удобнее. Сам же сейчас купил плату STM32F4Discovery и хочу научиться с ней работать. Есть даже практическая необходимость с одного датчика визуально отображать данные на мониторе, где я в очередной раз сталкиваюсь с проблемой сопряжения с ПК.
Аватара пользователя
hybroid
Друг Кота
Сообщения: 8007
Зарегистрирован: Вс ноя 14, 2010 19:24:26
Откуда: Лукалэнд

Re: МК + ПК.

Сообщение hybroid »

USB, CDC, HID, UART. На выбор :) Начать надо с uart. Сопрягать с компом через переходник.
gessor
Встал на лапы
Сообщения: 115
Зарегистрирован: Ср дек 12, 2012 20:08:08
Контактная информация:

Re: МК + ПК.

Сообщение gessor »

То что их поводом надо соединить - это я догадался конечно. Вопрос в том что дальше.
А вот что касается COM порта - то у меня на компьютере его уже и нет, на ноутбуке тоже. Зато мини usb изначально был и на лаунчпаде msp430, и на stm32f4d.
Аватара пользователя
hybroid
Друг Кота
Сообщения: 8007
Зарегистрирован: Вс ноя 14, 2010 19:24:26
Откуда: Лукалэнд

Re: МК + ПК.

Сообщение hybroid »

Где я написал хоть что-то про ком-порт?

Дальше можно писать ПО. Поэтому и сказал с уарта начинать. Дальше берерь то, в чем удобнее и пишешь ПО, занимающееся передачей и приемом по последовательному интерфейсу.
Потом уже будет USB, который и есть на твоей плате. Сразу, боюсь, не осилишь.
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: МК + ПК.

Сообщение ploop »

gessor писал(а):о что их поводом надо соединить - это я догадался конечно

В текущих реалиях и это не обязательно. Немного волшебства и ваш МК даже шить по воздуху можно будет, при том находясь на другом конце мира, попивая коктейль в своём бунгало :)
kalobyte
Друг Кота
Сообщения: 13796
Зарегистрирован: Чт сен 20, 2007 14:08:00

Re: МК + ПК.

Сообщение kalobyte »

бери питон, под него есть библиотека для последовательного интерфейса и хид усб
скриптовой язык быстрее запускается чем компилирование, а на начальном этапе ты будеш через каждую строчку кода запускать свой скрипт

можеш посмотреть протокол firmata, к нему есть куча библиотек под разные языки
тематические ответы только в форуме, в приват не пишите
gessor
Встал на лапы
Сообщения: 115
Зарегистрирован: Ср дек 12, 2012 20:08:08
Контактная информация:

Re: МК + ПК.

Сообщение gessor »

hybroid писал(а):Дальше берерь то, в чем удобнее и пишешь ПО, занимающееся передачей и приемом по последовательному интерфейсу.

Собственно про это и вопрос. Я никогда этим не занимался и спрашиваю как это делать.


kalobyte писал(а):бери питон, под него есть библиотека для последовательного интерфейса и хид усб

А что на счет шарпа скажите?
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: МК + ПК.

Сообщение oleg110592 »

gessor писал(а):А что на счет шарпа скажите?

там есть класс SerialPort, несложно, USB HID тоже можно организовать
http://microsin.net/programming/PC/visu ... -port.html
http://microsin.net/programming/PC/hid- ... sharp.html
Morroc
Друг Кота
Сообщения: 19495
Зарегистрирован: Чт фев 20, 2014 18:57:55

Re: МК + ПК.

Сообщение Morroc »

gessor писал(а):Понятно, что можно колхозить индикаторы на диодиках или применять дургие оригинальные идеи, но вариант с ПК кажется наиболее наглядным и удобным. И вот тут встает сам вопрос - как их подружить? В чем удобно писать программы на ПК, надо ли и где/какие драйвера брать, есть ли у каких-нибудь производителей апноуты с открытыми проектами под Visual Studio или понятные статьи на эту тему? Сам с написанием приложений для ПК не сталкивался, поэтому не очень и понимаю как все это дело организовать.

Ардуинщики частенько юзают processing http://habrahabr.ru/post/58314/, может путь и тупиковый в какой то мере, но что быстрый - факт (особенно для них самих - среда очень похожа).
"Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
Аватара пользователя
hybroid
Друг Кота
Сообщения: 8007
Зарегистрирован: Вс ноя 14, 2010 19:24:26
Откуда: Лукалэнд

Re: МК + ПК.

Сообщение hybroid »

Сейчас в меня полетит куча говняных помидоров, но если в программировании полный ноль, то начинать надо с паскалеподобной фигни. Не зря его для обучения придумали, и успешно для этого обучения используют. Чтобы не ворошить всякие умершие дельфи и не воровать не умершие - можно взять Lazarus.
Вот когда чему-то научишься в программировании под большой комп - можно повышать скилл. Хотя обычно все забивают.
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: МК + ПК.

Сообщение ploop »

hybroid писал(а):Сейчас в меня полетит куча говняных помидоров

Ну почему же, паскаль для обучения самое то. Но на данный момент немного оторван от реальности.
Редко когда соглашаюсь с kalobyte, но тут поддержу - питон для начала тоже хорош. Да и не только для начала. Плюс в том, что запустить можно даже программу из одной строки, и постепенно обучаться. На нём очень легко писать, а куча библиотек позволит реализовать в со временем все задумки.
Аватара пользователя
hybroid
Друг Кота
Сообщения: 8007
Зарегистрирован: Вс ноя 14, 2010 19:24:26
Откуда: Лукалэнд

Re: МК + ПК.

Сообщение hybroid »

Не совсем может и в тему, но за что я очень уважаю питон - так это за строгость форматирования кода. Хвала богам, но хотя бы это уже мешает набыдлокодить вырвиглазные листинги, которые часто мы тут встречаем. ИМХО, это немаловажно :)))
kalobyte
Друг Кота
Сообщения: 13796
Зарегистрирован: Чт сен 20, 2007 14:08:00

Re: МК + ПК.

Сообщение kalobyte »

hybroid писал(а): Хвала богам, но хотя бы это уже мешает набыдлокодить вырвиглазные листинги, которые часто мы тут встречаем.

а меня бесит отсутствие скобочек :)))
глазу непривычно после сишного синтаксиса, который я считаю самым оптимальным
hybroid писал(а):Сейчас в меня полетит куча говняных помидоров

считай я один кинул :)))
паскальный быдлосинтаксис все портит и потом от него трудно избавиться

gessor писал(а):А что на счет шарпа скажите?

если хочеш с нопочками и под виндовс, то это самое лучшее по качеству библиотек, среды разработки, легкости освоения и еще куче параметров
единственный минус - долго компилится, если у тебя не ссд

gessor писал(а): Я никогда этим не занимался и спрашиваю как это делать.

ну принцип там простой
если береш ком порт, то для него в шарпе есть уже встроеный класс
т.к. шарп объектно ориентированный язык, то там всегда работаеш с объектами
например
_serialPort = new SerialPort("COM3", 9600, Parity.None, 8, StopBits.One);
мы создаем объект с названием _serialPort
SerialPort это встроеный в .нет 4.5 класс, который принимает аргументы типа "COM3", 9600
как узнать, какие аргументы туда совать? есть мсдн https://msdn.microsoft.com/en-us/librar ... 10%29.aspx

для понимания всяких терминов ооп надо изучить принципы ооп, но тут я не могу сказать про какую-то годную книгу
лучше найти в реале человека и он расскажет или на ютубе чего посмотреть

работа с портом подразумевает его открытие и закрытие
там в мсдн есть методы и при открытии порта он блокируется
но перед открытием еще надо проверить, а то может порт уже открыт другой прогой и если ты попробуеш открыть его своей, то произойдет ошибка и твоя прога вывалится с исключением

так же там есть куча методов для чтения одного байта, строки или набора байт, что упрощает тебе работу
все зависит от того, как ты в контроллере реализуеш обмен

метод закрытия порта вызывается в методе закрытия окна программы, на всякий случай

когда я учился в пту, то по окончании надо было запилить прогу какую-нибудь на любом ооп языке в любой среде, только чтобы у препода запустилось и он понял твой код
вот я на шарпе за неделю с нуля написал управление релешками, а подключался у меня контроллер мега8 по софтовому усб, только не в режиме хид, а цдц, когда устройство видится как последовательный порт

но это плохо, т.к. включение в другую усб дырку приведет к созданию еще одного порта в системе
поэтому лучше использовать хид режим, но он несколько сложнее, хотя при наличии библиотеки можно боле менее понять принцип передачи
но все равно я сколько прочитал и то нету четкого понимания, надо будет потом ролик запилить с нормальным пояснением
тематические ответы только в форуме, в приват не пишите
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: МК + ПК.

Сообщение oleg110592 »

hybroid писал(а):...если в программировании полный ноль, то начинать надо с паскалеподобной фигни...

C# проектировал бывший главный инженер Borland, создавший Delphi
https://ru.wikipedia.org/wiki/%D0%A5%D0 ... 1%80%D1%81
Из современных языков С#, как ни странно, проще всего воспринимается Delphi-ориентированными мозгами. Чтобы пересесть с Delphi на C# вовсе не обязательно начинать с толстой книжки от Microsoft. Большинство вещей будут интуитивно понятны, остальное есть в MSDN. Все объекты, как и положено, являются указателями, методы и свойства доступны всегда через «точечку», никаких вам "->". Автоматическая сборка мусора, конечно, вызовет укоризненное покачивание головой у настоящего Delphiста, однако к хорошему быстро привыкаешь. Стоит отметить, что программировать на C# можно не только в Visual studio, есть прекрасная IDE SharpDevelop. Она бесплатна, как и Delphi :). Порог вхождения минимален — установили, запустили, поехали! И в той и в другой среде можно грабить корованы программировать мышкой, как мы привыкли это делать в Delphi: редактор форм принципиально ничем не отличается, а двойной клик по кнопочке создаст метод-обработчик нажатия. Уже через полчаса вы сможете сделать первый helloworld, через сутки накатать работающий прототип собственного GPS-навигатора для старого но любимого КПК на Windows CE, а через неделю-две начнете на нем новый коммерческий проект.
gessor
Встал на лапы
Сообщения: 115
Зарегистрирован: Ср дек 12, 2012 20:08:08
Контактная информация:

Re: МК + ПК.

Сообщение gessor »

Азы я конечно знаю, спасибо паскалю в школе. Иначе не смог без понимания даже диодом моргать. Только самое основное: типы переменных, функция, пузырьком отсортировать могу. А вот ООП бред какой-то - по мне так функцию просто красиво назвали.

kalobyte
Да, это то что я и имел в виду - кнопочки и окошки в винде. После установки драйверов отладочная плата обнаруживается как ком-порт. Я просто даже не представляю, как сделать программку, чтобы нажал кнопочку в винде, а на плате загорелся диод. Или кнопку на плате, а на компе чтобы это отобразилось.
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: МК + ПК.

Сообщение oleg110592 »

gessor писал(а):просто даже не представляю, как сделать программку, чтобы нажал кнопочку в винде, а на плате загорелся диод

см. пункт Разработка простейшего приложения – мигаем светодиодом по USB
http://microsin.net/programming/avr-wor ... class.html
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: МК + ПК.

Сообщение ARV »

лично для меня главной книгой по ООП была книга Гради Буча, только вот точное название позабыл... это была ломка сознания :)

по поводу "к хорошему привыкаешь быстро" я все-таки не могу согласиться. эту фразу нужно дополнить, чтобы она была безусловно верной: "к хорошему привыкаешь быстро, становишься ленивым и толстым" :))) автоматическая уборка мусора - это славно, особенно с учетом того, что не имеешь представления, когда именно она начнется и сколько продлится... инфантелизм какой-то, вроде заботливой бабушки, которая ходит за внучком и сопельки ему подтирает.

и по поводу синтаксиса паскаля не соглашусь. более дебильного синтаксиса, чем в С/C++ & Co, придумать сложно, разве что brainfuck какой-нибудь или лисп. многие вещи, которые изначально были в паскале (постоянно критикуемом Сишниками), появились в С++ совсем недавно, и вдруг (о, боже!) стали яро восхваляться! например, строгая типизация.

в общем, не критикуйте, да некритикуемы будете :)))

и последнее, по поводу Delphi и якобы ее аналогов. не считаю свое мнение истиной в последней инстанции, но скажу, что по-моему по удобству создания заготовок кода (особенно интерфейса с пользователем) с Delphi 7 не сравнится ни Qt с Creator-ом, ни Visual Studio, ни RAD Studio ни что-либо еще. Пытаясь "следовать тренду" я неоднократно пытался переключиться на что-то более "модное", и всякий раз поражался, сколько дополнительных (по сравнению с Delphi) действий нужно сделать программисту, чтобы добиться одинакового результата! в самых простых вещах.

Рекомендую начинающему не заморачиваться с "трендами", а брать Delphi 7 с апдейтом, устанавливать, осваивать (но только не по самоучителю для чайников!!! за Button1 и Label234 в программе надо сечь вымоченными в горчице розгами!) и использовать в свое удовольствие! Так же рекомендую доустановить JVCL в качестве набора бесплатных компонентов на все случаи жизни программиста-любителя.

P.S. Lazarus - УГ, к сожалению...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
kalobyte
Друг Кота
Сообщения: 13796
Зарегистрирован: Чт сен 20, 2007 14:08:00

Re: МК + ПК.

Сообщение kalobyte »

ARV писал(а):что по-моему по удобству создания заготовок кода (особенно интерфейса с пользователем) с Delphi 7 не сравнится ни Qt с Creator-ом, ни Visual Studio

это да, я тоже на дельфи делал прогу для управления платой индикаторов
просто тогда был драйвер и либа к нему для дельфи, чтобы лпт порт дергать

gessor писал(а):После установки драйверов отладочная плата обнаруживается как ком-порт.

какая плата?
gessor писал(а):Я просто даже не представляю, как сделать программку, чтобы нажал кнопочку в винде, а на плате загорелся диод.

да все просто

в контроллере пишеш что-то типа

Код: Выделить всё

char command;
while(1){
command = getfromuart();
switch (command){
case:1 ledon();
breake;
case:0 ledoff();
breake;
default: sendtouart("unknown command:);
}


прием с юарта лучше сделать на прерывании и обработку засунуть всю туда

на стороне пк тебе надо в обработчике нажатия кнопки написать такой код
_serialPort.Write(command, 0,1);
в переменной command должно быть 1 или 0 в зависимости от того, что надо сделать

т.е. посылая 1 или 0, твой контроллер понимает эти цифры как команды для зажигания и погашения диода
тут надо понимать, что в данном случае мы шлем не аски код, а просто значение от 0 до 255

http://playground.arduino.cc/Main/Inter ... munication
вот тут много всего написано, выбирай сам
тематические ответы только в форуме, в приват не пишите
gessor
Встал на лапы
Сообщения: 115
Зарегистрирован: Ср дек 12, 2012 20:08:08
Контактная информация:

Re: МК + ПК.

Сообщение gessor »

ARV писал(а):лично для меня главной книгой по ООП была книга Гради Буча, только вот точное название позабыл... это была ломка сознания :)

Торрент такую находит: "Объектно-ориентированный анализ и проектирование с примерами приложений" - она?

kalobyte
STM32F4Discovery плата. Идея с диодом в целом понятна. А если у нас система сложнее, например: идет прием данных по нескольким каналам АЦП от датчика или датчик на I2C сидит, то тогда как?
Аватара пользователя
hybroid
Друг Кота
Сообщения: 8007
Зарегистрирован: Вс ноя 14, 2010 19:24:26
Откуда: Лукалэнд

Re: МК + ПК.

Сообщение hybroid »

gessor писал(а):то тогда как?
Так же. Интерфейс есть. Берёшь протокол (готовый или свелосипеденный, обычно последний) и гонишь данные.

А это не взлетит. ХЗ на каком он языке писал.. на kaloC?

Код: Выделить всё

char command;
while(1){
command = getfromuart();
switch (command){
case:1 ledon();
breake;
case:0 ledoff();
breake;
default: sendtouart("unknown command:);
}
Ответить

Вернуться в «Разные вопросы по МК»