2014-10-30 2 views
0

포함 된 Java ME를 사용하여 beaglebone black에서 gpio, i2C, uart 등을 액세스 할 수 있는지 궁금합니다. 나는 그것이 Java Native Access에서 가능하다는 것을 알고 있지만 Java ME Embedded 8에 포함 된 API Device I/O 1.0이 있습니다. 나는 비글 본 블랙에 데비안을 운영하고 있습니다.Java ME Embedded 8을 사용하여 beaglebone black에서 GPIO에 액세스

+1

당신이 그것을 시도 해 봤나 :이 일단

는 GPIO를 접근, 수행이만큼 간단하다? 어떤 문제가 있었습니까? – Puce

+0

아니요, 아직 시도하지 않았습니다. 나는 이것을 경험하지 못했고, 나는 모범을 보길 원했다. – Stein

답변

0

JavaME (일부 다른 비 리눅스 임베디드 보드뿐만 아니라) 8.1은 라즈베리 파이 지금은 리눅스에서 실행에 지원되는 내장.

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

나는 다른 리눅스 보드 (비글 예를 들어)와 RPI 런타임을 사용하여 테스트하지 않은,하지만 나는 그것이 결정적으로 상자 밖으로 작동하지 않습니다 생각합니다. 런타임 구현 방식에 따라 GPIO 또는 I2C와 같은 하위 레벨 IO에 대한 액세스는 플랫폼에 따라 달라질 수 있습니다.

Device/IO API가 Java 플랫폼의 OpenJDK 구현에 통합되고 있습니다 (이 API는 JavaME에만 해당되지 않음). 그러나 여기에서도 역시 이것은 RaspberryPi에만 국한됩니다.

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

0

당신은 여기에서 예를 찾을 수 있습니다 http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/RaspberryPi_GPS/RaspberryPi_GPS.html#overview

그것은 작동합니다을 ... 그러나 나는이 작업을 수행하기 위해 노력하고있어 나는 어떤 좋은 결과를 얻을 수 없습니다.

그래서 행운을 빕니다 ^^

+0

감사합니다. 진전이 있다면 알려주세요 :) – Stein

+0

진행 중입니다 ... 어려움없이. 이 티켓에서 알 수 있듯이 : http://stackoverflow.com/questions/27859419/javame-raspberrypi-uart-to-rs485-connection-give-error-daapi-iso-1cannot-o – YannXplorer

0

내가 했어 BeagleBoneBlack의 GPIO에 액세스하는 것과 비슷한 문제.

Linux 커널이 사용자 공간으로 내보내는 GPIO 장치 트리 오버레이를 사용하여이 문제를 해결할 수있었습니다. 그것에 대해 가장 좋은 부분 : 하나 하나 개의 항아리 단지 자바 SE가 필요 8.

내 코드는 GitHub의에 : https://github.com/eitch/ch.eitchnet.beaglebone

두 가지가 수행 될 필요가 라즈베리 파이에서 실행하려면 :

  • 그것은 이런 일들이 쇼

(https://github.com/eitch/ch.eitchnet.beaglebone/blob/master/src/main/java/ch/eitchnet/beaglebone/Pin.java 참조) 리눅스 커널 4.x의 (/ SYS/클래스/GPIO)

  • 이 핀 새로운 열거를 작성해야 uld 내가 생각하는 큰 문제가되지 않습니다.

    // 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()));