Какой был бы хороший язык программирования (или набор библиотек для C ++) для взаимодействия с электронными компонентами (шаговые двигатели и т.д.)?

StackOverflow https://stackoverflow.com/questions/700025

Вопрос

Я не разбираюсь в электронике, поэтому, возможно, не смогу точно объяснить, что мне нужно.Этот вопрос мне постоянно задает мой друг.

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

  1. Интерфейс с оборудованием (через последовательный порт и USB-порт).
  2. Напишите многопоточный код.
  3. Объединяйте пользовательские интерфейсы очень быстро.
  4. Перенесите его код на Linux и OS X как можно проще (хорошо, это то, что Я хочу).

Он создает инструмент для местной группы, которая обучает студентов колледжа основам робототехники.Прямо сейчас он использует C ++, но писать код пользовательского интерфейса на C ++ - не совсем веселая задача.Он также использует некоторые специфичные для Windows библиотеки для (1), что означает, что я не могу ни опробовать его код, ни помочь ему с исправлением ошибок (я использую Mac).

Редактировать:Библиотеки для Python / Ruby приветствуются.

Это было полезно?

Решение

Возможно, вы захотите взглянуть на довольно взаимодополняющие Обработка и Электропроводка Инструменты.Обработка - это среда для построения пользовательских интерфейсов, а Проводка - это среда для программирования плат ввода-вывода, таких как одноименная монтажная плата, ее более простой родственник Arduino, и связанные с ними устройства.Монтажные платы обычно взаимодействуют с настольным компьютером по последовательному каналу связи или USB с последовательной эмуляцией.

Другие советы

Java может быть здесь хорошим вариантом.В нем есть библиотеки, доступные для низкоуровневых потоков и коммуникационных API, и он должен работать достаточно хорошо для цикла управления.Я знаю, что у него есть библиотека обмена данными с последовательным портом, и я полагаю, что есть несколько USB-библиотек с открытым исходным кодом.Для пользовательского интерфейса вы могли бы использовать Java 2D Graphics API или для более продвинутого пользовательского интерфейса вы могли бы попробовать слегка запущенные библиотеки Java3D или более новые библиотеки JOGL.У Swing есть свои недостатки, но на самом деле он довольно прост в использовании для создания пользовательских интерфейсов basic forms.

Если вам нужно простое и много поддерживаемое оборудование, я думаю, ваш лучший выбор - Labview.Это все графическое программирование (перетаскивание блоков, создание соединений), и многие USB-устройства (например, DIO) поддерживают Labview.Поддержка последовательного доступа встроена.Он может довольно легко создавать пользовательские интерфейсы (в первую очередь он предназначен для управления графическим интерфейсом).

Ruby и Shoes (графический интерфейс) будут работать хорошо, особенно хорошо подходят для среды обучения / мультиплатформенности

Редактировать - Нашел это (его немного сложно найти):

http://shoooes.net/

ТУЗ (http://www.cs.wustl.edu/~schmidt/ACE.html) является независимой от платформы библиотекой C ++ (без пользовательского интерфейса), QT (http://www.qtsoftware.com/products/) - это кроссплатформенная библиотека пользовательского интерфейса для C ++.Доступ к оборудованию, к сожалению, все еще зависит от платформы)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top