МК + ПК.
-
gessor
- Встал на лапы
- Сообщения: 115
- Зарегистрирован: Ср дек 12, 2012 20:08:08
- Контактная информация:
МК + ПК.
Здравствуйте, уважаемые радиокоты! Давно зреет один очень важный вопрос с которым хочу обратиться. Когда впервые столкнулся с микроконтроллерами, то первое время все было просто и понятно: помигал диодом, сделал мигание по таймеру, сделал мигание по прерыванию, а потом наступает несколько тупиковая ветка. Хочется идти дальше и совместить приятное с полезным. Тут и встает вопрос как соединить МК с ПК, чтобы с ПК им же и управлять или просто получать с МК данные. А на этом уже отрабатывать умение программирования и работы с МК. Изначально столкнулся с такой проблемой когда хотел научиться работать с радиоканалом на MSP430 на контроллере CC430F5137. Идея была такая: один передатчик, другой приемник. Передатчик шлет ноль, принятое значение приемник передает на компьютер и по радиоканалу обратно. Передатчик получив ответ наращивает значение на 1 и снова посылает на приемник. Таким образом на экране можно было бы наблюдать возрастающую последовательность и тем самым научиться работать с радиоканалом и подружить МК с компьютером, но с этой задачей справиться так и не получилось. Понятно, что можно колхозить индикаторы на диодиках или применять дургие оригинальные идеи, но вариант с ПК кажется наиболее наглядным и удобным. И вот тут встает сам вопрос - как их подружить? В чем удобно писать программы на ПК, надо ли и где/какие драйвера брать, есть ли у каких-нибудь производителей апноуты с открытыми проектами под Visual Studio или понятные статьи на эту тему? Сам с написанием приложений для ПК не сталкивался, поэтому не очень и понимаю как все это дело организовать. Visual Studio для примера привел, язык тоже не знаю какой актуальнее/удобнее. Сам же сейчас купил плату STM32F4Discovery и хочу научиться с ней работать. Есть даже практическая необходимость с одного датчика визуально отображать данные на мониторе, где я в очередной раз сталкиваюсь с проблемой сопряжения с ПК.
Re: МК + ПК.
USB, CDC, HID, UART. На выбор
Начать надо с uart. Сопрягать с компом через переходник.
-
gessor
- Встал на лапы
- Сообщения: 115
- Зарегистрирован: Ср дек 12, 2012 20:08:08
- Контактная информация:
Re: МК + ПК.
То что их поводом надо соединить - это я догадался конечно. Вопрос в том что дальше.
А вот что касается COM порта - то у меня на компьютере его уже и нет, на ноутбуке тоже. Зато мини usb изначально был и на лаунчпаде msp430, и на stm32f4d.
А вот что касается COM порта - то у меня на компьютере его уже и нет, на ноутбуке тоже. Зато мини usb изначально был и на лаунчпаде msp430, и на stm32f4d.
Re: МК + ПК.
Где я написал хоть что-то про ком-порт?
Дальше можно писать ПО. Поэтому и сказал с уарта начинать. Дальше берерь то, в чем удобнее и пишешь ПО, занимающееся передачей и приемом по последовательному интерфейсу.
Потом уже будет USB, который и есть на твоей плате. Сразу, боюсь, не осилишь.
Дальше можно писать ПО. Поэтому и сказал с уарта начинать. Дальше берерь то, в чем удобнее и пишешь ПО, занимающееся передачей и приемом по последовательному интерфейсу.
Потом уже будет USB, который и есть на твоей плате. Сразу, боюсь, не осилишь.
Re: МК + ПК.
gessor писал(а):о что их поводом надо соединить - это я догадался конечно
В текущих реалиях и это не обязательно. Немного волшебства и ваш МК даже шить по воздуху можно будет, при том находясь на другом конце мира, попивая коктейль в своём бунгало
Re: МК + ПК.
бери питон, под него есть библиотека для последовательного интерфейса и хид усб
скриптовой язык быстрее запускается чем компилирование, а на начальном этапе ты будеш через каждую строчку кода запускать свой скрипт
можеш посмотреть протокол firmata, к нему есть куча библиотек под разные языки
скриптовой язык быстрее запускается чем компилирование, а на начальном этапе ты будеш через каждую строчку кода запускать свой скрипт
можеш посмотреть протокол firmata, к нему есть куча библиотек под разные языки
тематические ответы только в форуме, в приват не пишите
-
gessor
- Встал на лапы
- Сообщения: 115
- Зарегистрирован: Ср дек 12, 2012 20:08:08
- Контактная информация:
Re: МК + ПК.
hybroid писал(а):Дальше берерь то, в чем удобнее и пишешь ПО, занимающееся передачей и приемом по последовательному интерфейсу.
Собственно про это и вопрос. Я никогда этим не занимался и спрашиваю как это делать.
kalobyte писал(а):бери питон, под него есть библиотека для последовательного интерфейса и хид усб
А что на счет шарпа скажите?
- oleg110592
- Друг Кота
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
Re: МК + ПК.
gessor писал(а):А что на счет шарпа скажите?
там есть класс SerialPort, несложно, USB HID тоже можно организовать
http://microsin.net/programming/PC/visu ... -port.html
http://microsin.net/programming/PC/hid- ... sharp.html
Re: МК + ПК.
gessor писал(а):Понятно, что можно колхозить индикаторы на диодиках или применять дургие оригинальные идеи, но вариант с ПК кажется наиболее наглядным и удобным. И вот тут встает сам вопрос - как их подружить? В чем удобно писать программы на ПК, надо ли и где/какие драйвера брать, есть ли у каких-нибудь производителей апноуты с открытыми проектами под Visual Studio или понятные статьи на эту тему? Сам с написанием приложений для ПК не сталкивался, поэтому не очень и понимаю как все это дело организовать.
Ардуинщики частенько юзают processing http://habrahabr.ru/post/58314/, может путь и тупиковый в какой то мере, но что быстрый - факт (особенно для них самих - среда очень похожа).
"Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
Re: МК + ПК.
Сейчас в меня полетит куча говняных помидоров, но если в программировании полный ноль, то начинать надо с паскалеподобной фигни. Не зря его для обучения придумали, и успешно для этого обучения используют. Чтобы не ворошить всякие умершие дельфи и не воровать не умершие - можно взять Lazarus.
Вот когда чему-то научишься в программировании под большой комп - можно повышать скилл. Хотя обычно все забивают.
Вот когда чему-то научишься в программировании под большой комп - можно повышать скилл. Хотя обычно все забивают.
Re: МК + ПК.
hybroid писал(а):Сейчас в меня полетит куча говняных помидоров
Ну почему же, паскаль для обучения самое то. Но на данный момент немного оторван от реальности.
Редко когда соглашаюсь с kalobyte, но тут поддержу - питон для начала тоже хорош. Да и не только для начала. Плюс в том, что запустить можно даже программу из одной строки, и постепенно обучаться. На нём очень легко писать, а куча библиотек позволит реализовать в со временем все задумки.
Re: МК + ПК.
Не совсем может и в тему, но за что я очень уважаю питон - так это за строгость форматирования кода. Хвала богам, но хотя бы это уже мешает набыдлокодить вырвиглазные листинги, которые часто мы тут встречаем. ИМХО, это немаловажно 
Re: МК + ПК.
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: МК + ПК.
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: МК + ПК.
Азы я конечно знаю, спасибо паскалю в школе. Иначе не смог без понимания даже диодом моргать. Только самое основное: типы переменных, функция, пузырьком отсортировать могу. А вот ООП бред какой-то - по мне так функцию просто красиво назвали.
kalobyte
Да, это то что я и имел в виду - кнопочки и окошки в винде. После установки драйверов отладочная плата обнаруживается как ком-порт. Я просто даже не представляю, как сделать программку, чтобы нажал кнопочку в винде, а на плате загорелся диод. Или кнопку на плате, а на компе чтобы это отобразилось.
kalobyte
Да, это то что я и имел в виду - кнопочки и окошки в винде. После установки драйверов отладочная плата обнаруживается как ком-порт. Я просто даже не представляю, как сделать программку, чтобы нажал кнопочку в винде, а на плате загорелся диод. Или кнопку на плате, а на компе чтобы это отобразилось.
- oleg110592
- Друг Кота
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
Re: МК + ПК.
gessor писал(а):просто даже не представляю, как сделать программку, чтобы нажал кнопочку в винде, а на плате загорелся диод
см. пункт Разработка простейшего приложения – мигаем светодиодом по USB
http://microsin.net/programming/avr-wor ... class.html
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: МК + ПК.
лично для меня главной книгой по ООП была книга Гради Буча, только вот точное название позабыл... это была ломка сознания 
по поводу "к хорошему привыкаешь быстро" я все-таки не могу согласиться. эту фразу нужно дополнить, чтобы она была безусловно верной: "к хорошему привыкаешь быстро, становишься ленивым и толстым"
автоматическая уборка мусора - это славно, особенно с учетом того, что не имеешь представления, когда именно она начнется и сколько продлится... инфантелизм какой-то, вроде заботливой бабушки, которая ходит за внучком и сопельки ему подтирает.
и по поводу синтаксиса паскаля не соглашусь. более дебильного синтаксиса, чем в С/C++ & Co, придумать сложно, разве что brainfuck какой-нибудь или лисп. многие вещи, которые изначально были в паскале (постоянно критикуемом Сишниками), появились в С++ совсем недавно, и вдруг (о, боже!) стали яро восхваляться! например, строгая типизация.
в общем, не критикуйте, да некритикуемы будете
и последнее, по поводу Delphi и якобы ее аналогов. не считаю свое мнение истиной в последней инстанции, но скажу, что по-моему по удобству создания заготовок кода (особенно интерфейса с пользователем) с Delphi 7 не сравнится ни Qt с Creator-ом, ни Visual Studio, ни RAD Studio ни что-либо еще. Пытаясь "следовать тренду" я неоднократно пытался переключиться на что-то более "модное", и всякий раз поражался, сколько дополнительных (по сравнению с Delphi) действий нужно сделать программисту, чтобы добиться одинакового результата! в самых простых вещах.
Рекомендую начинающему не заморачиваться с "трендами", а брать Delphi 7 с апдейтом, устанавливать, осваивать (но только не по самоучителю для чайников!!! за Button1 и Label234 в программе надо сечь вымоченными в горчице розгами!) и использовать в свое удовольствие! Так же рекомендую доустановить JVCL в качестве набора бесплатных компонентов на все случаи жизни программиста-любителя.
P.S. Lazarus - УГ, к сожалению...
по поводу "к хорошему привыкаешь быстро" я все-таки не могу согласиться. эту фразу нужно дополнить, чтобы она была безусловно верной: "к хорошему привыкаешь быстро, становишься ленивым и толстым"
и по поводу синтаксиса паскаля не соглашусь. более дебильного синтаксиса, чем в С/C++ & Co, придумать сложно, разве что brainfuck какой-нибудь или лисп. многие вещи, которые изначально были в паскале (постоянно критикуемом Сишниками), появились в С++ совсем недавно, и вдруг (о, боже!) стали яро восхваляться! например, строгая типизация.
в общем, не критикуйте, да некритикуемы будете
и последнее, по поводу Delphi и якобы ее аналогов. не считаю свое мнение истиной в последней инстанции, но скажу, что по-моему по удобству создания заготовок кода (особенно интерфейса с пользователем) с Delphi 7 не сравнится ни Qt с Creator-ом, ни Visual Studio, ни RAD Studio ни что-либо еще. Пытаясь "следовать тренду" я неоднократно пытался переключиться на что-то более "модное", и всякий раз поражался, сколько дополнительных (по сравнению с Delphi) действий нужно сделать программисту, чтобы добиться одинакового результата! в самых простых вещах.
Рекомендую начинающему не заморачиваться с "трендами", а брать Delphi 7 с апдейтом, устанавливать, осваивать (но только не по самоучителю для чайников!!! за Button1 и Label234 в программе надо сечь вымоченными в горчице розгами!) и использовать в свое удовольствие! Так же рекомендую доустановить JVCL в качестве набора бесплатных компонентов на все случаи жизни программиста-любителя.
P.S. Lazarus - УГ, к сожалению...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: МК + ПК.
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: МК + ПК.
ARV писал(а):лично для меня главной книгой по ООП была книга Гради Буча, только вот точное название позабыл... это была ломка сознания
Торрент такую находит: "Объектно-ориентированный анализ и проектирование с примерами приложений" - она?
kalobyte
STM32F4Discovery плата. Идея с диодом в целом понятна. А если у нас система сложнее, например: идет прием данных по нескольким каналам АЦП от датчика или датчик на I2C сидит, то тогда как?
Re: МК + ПК.
Так же. Интерфейс есть. Берёшь протокол (готовый или свелосипеденный, обычно последний) и гонишь данные.gessor писал(а):то тогда как?
А это не взлетит. ХЗ на каком он языке писал.. на kaloC?
Код: Выделить всё
char command;
while(1){
command = getfromuart();
switch (command){
case:1 ledon();
breake;
case:0 ledoff();
breake;
default: sendtouart("unknown command:);
}