Сделайте USB-устройство, управляйте им на Java

Я думаю о создании физического контроллера (устройства?) с ручками, кнопками и светодиодами. Я хотел бы взаимодействовать с ним с помощью Java (реагировать на ручки, освещать светодиоды и т. д.). Причина, по которой я упоминаю Java, двоякая: во-первых, я хорошо знаю Java1. Во-вторых, я написал остальную часть программы, с которой мне нужно взаимодействовать на Java (хотя есть способы поговорить с программой Java с другого языка).

Я хотел бы, чтобы устройство подключалось через USB и было (компьютер-)платформа независимая.

Я не имею ни малейшего представления о том, с чего начать, кроме как начать читать сайт Arduino. это мой лучший единственный вариант/? есть что-то лучше подходит для общения с Java?

Примечание: Я знаю, что Arduino имеет какое-то отношение к Java (не уверен, что), но похоже, что код должен быть написан в подмножестве C.

как бы я идти об этом тема?


1 - Без смеха, пожалуйста.

6 ответов


среда разработки Arduino написана на Java.

но стандартным языком, на котором вы пишете программу для платформы Arduino, является C++.

платформа Arduino основана на чипе Atmel AVR. Есть по крайней мере один Java VM для AVR чипов. Есть другие языки, доступные для AVR, такие как далее и BASIC (хотя я мог найти только коммерческие версии, поэтому я буду, если вы хотите их найти, искать " AVR ОСНОВНОЙ.)"

Arduino использует виртуальный COM-порт для связи между хост-компьютером и ИТ. Виртуальный COM-порт эмулирует последовательную линию старого стиля, но выполняется с помощью USB. Вы можете использовать API связи Java чтобы затем иметь программу Java, работающую на главном компьютере, общайтесь с вашим физическим устройством.


для некоторых кодеров и кнопок вы, вероятно, хотите реализовать устройство USB HID. Если вы собираетесь производить больше, чем пару из них, вы захотите сделать пользовательскую доску. Проверьте V-USB, библиотека с открытым исходным кодом для создания USB-устройств с использованием микроконтроллеров Atmel. У них есть куча примеров проектов, которые используют эту библиотеку.

вы могли бы, вероятно, сделать это похожим на джойстик HID, используя кодеры для получения информации о оси X/Y и имея кнопки действуют как кнопки. Они могут использовать стандартные API Java gaming для чтения значений джойстика.


можете ли вы расширить свою потребность в пользовательском устройстве? Мне кажется, что проектирование оборудования имеет довольно высокий барьер для входа и что большинство приложений, о которых я могу думать, было бы лучше решить путем перепрофилирования существующего оборудования игрового контроллера. Если вам действительно нужно новое оборудование, то я предлагаю вам начать с googling 'USB development kit' или "Совет по развитию USB", который получит вам ссылки, такие как этой, этой и этой.

Что касается работы с USB-оборудованием из Java, я немного поиграл с библиотекой JUSB, и это выглядит многообещающе, но, похоже, ограничивается Linux только потому, что версия Windows родной библиотеки половина библиотеки не была написана. Альтернативы могут быть найдены с помощью googling "HID java".


хорошо, независимая от компьютерной платформы? Какие платформы вы ориентируетесь? Это будет зависеть от драйвера и поддержки этой платформы, что делает usb-устройство? Это массовое запоминающее устройство...Возможно, вам придется оглядеться и посмотреть, сможете ли вы найти драйвер устройства, который может разговаривать с устройством...

надеюсь, это поможет, С уважением, Том.


Я знаю, что для последовательного порта были библиотеки, которые существовали для взаимодействия с ним (библиотека rs232). Googling для java и USB вернули несколько ответов (первый назывался jUSB). Это будет первое, что я буду искать.


пример подключения java usb к микроконтроллеру freescale:

http://javausbapi.blogspot.com/