Сделать 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). Это был бы первый тип вещей, который я бы искал.
Ответ 6
для подключения java usb к freescale microcontroller:
http://javausbapi.blogspot.com/