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

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

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

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

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

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


1 - Не смейтесь, пожалуйста.

Ответы

Ответ 1

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

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

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

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

Ответ 2

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

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

Ответ 3

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

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

Ответ 4

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

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

Ответ 5

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