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

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

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

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

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

Как я получил бы перемещение в эту тему?


1 - Никакой смех.

14
задан Dan Rosenstark 29 January 2010 в 01:10
поделиться

6 ответов

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

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

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

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

6
ответ дан 1 December 2019 в 15:01
поделиться

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

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

1
ответ дан 1 December 2019 в 15:01
поделиться

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

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

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

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

-121--1861456-

После игры с Reflector я пришел к выводу, что автор этой записи в блоге (и сам автор GLEE/MSAGL) использовал бета/альфа/версию программного обеспечения, которая имела поддержку изображений в качестве узлов.
MSAGL использует Bitmap для загрузки изображений, и быстрый анализ библиотеки GLEE показывает, что только сборка Microsoft.Glee.GraphViewerGdi зависит от System.Drawing.Bitmap . Кроме того, класс GraphAttr был бы наиболее вероятным занимать место для такой функции, и я не вижу там ничего, что могло бы быть даже удаленно (т.е. с использованием какого-то странного взлома;)), используемого для обработки изображений.
Кроме того, обратите внимание, что исходный фрагмент, предоставленный автором, не полностью соответствует API, отображаемому в версии, загружаемой с сайта MS (1.2.0.0).

-121--4460336-

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

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

0
ответ дан 1 December 2019 в 15:01
поделиться

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

0
ответ дан 1 December 2019 в 15:01
поделиться

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

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

4
ответ дан 1 December 2019 в 15:01
поделиться

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

http://javausbapi.blogspot.com/

0
ответ дан 1 December 2019 в 15:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: