Вопрос

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

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

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

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

Как бы мне продвинуться в этой теме?


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

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

Решение

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

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

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

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

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

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

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

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

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

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

Надеюсь, это поможет, С наилучшими пожеланиями, Том.

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

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

http://javausbapi.blogspot.com/

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