Я думаю о создании физического контроллера (устройство?) с кнопками, кнопками и светодиодами. Я хотел бы взаимодействовать с ним с помощью Java (ответьте на кнопки, осветите светодиоды, и т.д.). Причина я упоминаю Java, является двукратной: во-первых, я знаю Java well1. Во-вторых, я записал остальную часть программы, с которой я должен взаимодействовать через интерфейс в Java (хотя существуют способы говорить с программой Java с другого языка).
Я хотел бы, чтобы устройство соединилось через USB и было (компьютер-) независимо от платформы.
У меня нет малейшей идеи того, где запустить, кроме начать читать веб-сайт Ардуино. Эта моя лучшая/единственная опция? Там чему-то лучше удовлетворяют для общения с Java?
Примечание: Я знаю, что Ардуино имеет некоторое отношение к Java (не уверенный что), но кажется, что код должен быть написан в подмножестве C.
Как я получил бы перемещение в эту тему?
1 - Никакой смех.
Среда разработки Arduino написана на Java.
Но стандартным языком, на котором пишется программа для платформы Arduino, является, по сути, C++.
Платформа Arduino основана на чипе Atmel AVR. Существует как минимум одна Java VM для чипов AVR. Для AVR доступны и другие языки, такие как Forth и BASIC (хотя я смог найти только коммерческие версии, так что если вы хотите их найти, то ищите "AVR BASIC").
Arduino использует виртуальный COM-порт для связи между хост-компьютером и ним. Виртуальный COM-порт эмулирует серийную линию старого стиля, но делается с помощью USB. Вы можете использовать API Java-коммуникации , чтобы затем запустить Java-программу на хост-компьютере для связи с вашим физическим устройством.
Можете ли вы расширить свои потребности в пользовательском устройстве? Мне кажется, что проектирование аппаратного обеспечения имеет довольно высокий барьер для входа, и большинство приложений, которые я могу придумать, было бы лучше решить путем перепрофилирования существующего аппаратного обеспечения игрового контроллера. Если вам действительно нужно новое аппаратное обеспечение, то я предлагаю вам начать с гугла 'USB development kit' или "Плата разработки USB", на которой будут размещены такие ссылки, как this, this и this.
Что касается работы с USB-аппаратурой от Java, то я немного поиграл с библиотекой JUSB и это выглядит многообещающе, но, похоже, ограничивается Linux только потому, что Windows-версия родной библиотеки половины библиотеки не была написана. Альтернативы можно найти, погуглив 'HID java'.
Среда разработки 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).
Хорошо, компьютерная платформа независима? На какие платформы вы нацелены? Это будет зависеть от драйвера и поддержки для этой платформы, что делает USB-устройство? Вы можете посмотреть вокруг и посмотреть, можете ли вы найти драйвер устройства, который может поговорить с устройством...
Надеюсь, что это поможет, С уважением, Том.
Я знаю, что для последовательного порта были библиотеки, которые существовали для взаимодействия с ним (библиотека RS232). Googling для Java и USB вернул несколько ответов (первый был назван JUSB). Это было бы первым типом, которую я бы искал.
Для некоторых кодировщиков и кнопок вы, вероятно, хотите реализовать USB HID-устройство. Если вы собираетесь производить больше, чем пару из них, вы захотите сделать заказную доску. Проверьте V-USB , библиотеку с открытым исходным кодом для создания устройств HID USB с использованием микроконтроллеров Atmel. У них есть куча примеров проектов, которые используют эту библиотеку.
Вы, вероятно, можете заставить это выглядеть как HID джойстик, используя энкодеры для получения информации о оси X / Y и наличие кнопок действует как кнопки. Они могли бы использовать стандартные игровые API на Java, чтобы прочитать значения джойстика.
пример подключения java usb к микроконтроллеру freescale: