Доступ к GPIO на Beaglebone Black с использованием Java ME Embedded 8

Мне было интересно, можно ли получить доступ к gpio, i2C, uart и т. Д. На черном биглбоне с помощью встроенной Java ME. Я знаю, что это возможно с Java Native Access, но теперь есть API Device I/O 1.0, который включен в Java ME Embedded 8. Есть ли у кого-нибудь опыт с этим? Я запускаю Debian на своем черном бигльбоне.


person Stein    schedule 30.10.2014    source источник
comment
Ты это пробовал? Были ли у вас проблемы?   -  person Puce    schedule 30.10.2014
comment
Нет, я еще не пробовал. Я неопытен в этом, и я надеялся получить пример.   -  person Stein    schedule 30.10.2014


Ответы (4)


JavaME Embedded 8.1 пока поддерживается только на RaspberryPi, работающем в Linux (а также на некоторых других встраиваемых платах, отличных от Linux).

http://www.oracle.com/technetwork/java/embedded/javame/embed-me/downloads/java-embedded-java-me-download-2162242.html

Я не тестировал использование среды выполнения RPi с другой платой Linux (например, Beagleboard), но я думаю, что она точно не будет работать из коробки. В зависимости от того, как реализована среда выполнения, доступ к низкоуровневому вводу-выводу, такому как GPIO или I2C, может зависеть от платформы.

Обратите внимание, что API-интерфейс Device/IO интегрируется в реализацию платформы Java OpenJDK (поэтому этот API не относится к JavaME). Но и здесь это ограничено RaspberryPi.

https://wiki.openjdk.java.net/display/dio/Main

person Gabriel Cuvillier    schedule 14.01.2015

Попробуйте libbulldog: http://libbulldog.org/bulldog/

Или Кура: (вам понадобится BeagleBone Black Rev C.)

https://www.eclipse.org/kura/index.php

http://eclipse.github.io/kura/doc/beaglebone-quick-start.html

person mike    schedule 19.05.2015

Пример можно найти здесь: http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/RaspberryPi_GPS/RaspberryPi_GPS.html#overview

Это должно сработать... Но я пытаюсь это сделать и не получаю хорошего результата.

Так что удачи ^^

person YannXplorer    schedule 08.01.2015
comment
Спасибо. Если у вас есть какие-либо успехи, пожалуйста, дайте мне знать :) - person Stein; 09.01.2015
comment
Идет... Но не без труда. Как вы можете видеть в этом билете: stackoverflow.com/questions/27859419/ - person YannXplorer; 10.01.2015

У меня была аналогичная проблема с доступом к GPIO BeagleBoneBlack.

Мне удалось решить эту проблему с помощью наложения дерева устройств GPIO, которое ядро ​​​​Linux экспортирует в пользовательское пространство. Самое приятное в этом: один единственный Jar, для которого требуется только Java SE 8.

Мой код находится на GitHub: https://github.com/eitch/ch.eitchnet.beaglebone

Чтобы запустить его на Raspberry Pi, необходимо сделать две вещи:

Эти вещи не должны быть большой проблемой, я думаю.

Как только это будет сделано, доступ к GPIO будет таким же простым:

// Get Bridge:
GpioBridge gpioBridge = GpioBridge.getInstance();
Gpio pin8_07 = gpioBridge.getGpio(Pin.P8_07, Direction.IN);

// Read an input GPIOs value:
Signal currentSignal = gpioBridge.readValue(pin8_07);
System.out.println(pin8_07 + " currently has signal " + currentSignal);
Writing Output Pins

// Write an output GPIOs value:
Gpio pin8_08 = gpioBridge.getGpio(Pin.P8_08, Direction.OUT);
gpioBridge.writeValue(pin8_08, Signal.HIGH);
System.out.println("Set signal of " + pin8_08 + " to " + Signal.HIGH);
Observing Input Pins

// To be notified of changes to an input GPIO, register a GpioSignalListener:
gpioBridge.register(pin8_07, gpio -> System.out.println("Signal of "+pin8_07 + " has changed to " + gpio.getSignal()));
person eitch    schedule 15.02.2016