Какой будет хороший язык программирования (или набор библиотек для C ++) для взаимодействия с электронными компонентами (шаговыми двигателями и т. Д.)? - PullRequest
3 голосов
/ 31 марта 2009

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

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

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

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

РЕДАКТИРОВАТЬ: библиотеки для Python / Ruby приветствуются.

Ответы [ 5 ]

4 голосов
/ 31 марта 2009

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

1 голос
/ 14 апреля 2009

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

1 голос
/ 31 марта 2009

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

0 голосов
/ 06 апреля 2009

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

0 голосов
/ 31 марта 2009

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

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

http://shoooes.net/

...