2016-12-26 14 views
0

에 의해 프로젝트에서 NOIR 파이 카메라를 사용할 수없고 java 및 eclipse로 작동합니다. 카메라가 미리보기를 시작할 때 IR-LED를 켜야합니다. 새 클래스에서 pi4j를 사용하여 LED를 켜고 끄십시오. 카메라 패널의 소스에서 pi4j 클래스로 호출하면 카메라가 시작되지 않습니다. 문제가 무엇raspbbery pi pi4j는 v4l2 (카메라 드라이버)

pi4j 등급 :

import com.pi4j.io.gpio.*; 

public class gpio_prg { 

     private static GpioPinDigitalOutput pin; 
     private GpioController gpio; 

    public void out(int bcmn, boolean state){ 
     System.out.println("gpio controler"); 
       gpio = GpioFactory.getInstance(); 
     if(bcmn == 29){ 
         if(state){ 
          System.out.println("gpio pin"); 
          pin = gpio.provisionDigitalOutputPin(RaspiPin.GPIO_29, "MyLED", PinState.HIGH); 
           pin.setShutdownOptions(true, PinState.LOW); 
           System.out.println("--> GPIO NOIR LED state should be: ON"); 
         }else{ 
           pin.low(); 
           System.out.println("--> GPIO NOIR LED state should be: OFF"); 
         } 
       } 
     } 

오류 :

문제는 파이썬 소스로 해결되었다
wiringPiSetup: Must be root. (Did you forget sudo?) 

답변

0

:

변경된 자바 클래스 :

import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStreamReader; 

public class gpio_prg { 
    public void out() throws IOException, InterruptedException{ 
     String command = "python /home/pi/noirLedControl.py"; 
     Process proc = Runtime.getRuntime().exec(command); 
     BufferedReader reader = new BufferedReader(new InputStreamReader(proc.getInputStream())); 
     System.out.print("led status = "); 
     System.out.println(reader.readLine()); 
     proc.waitFor(); 
     } 
} 

noirLedControl.py :

import RPi.GPIO as GPIO 

f = open('ledstatus', 'r') 
s = 3 
s = f.read() 
f.close() 
GPIO.setwarnings(False) 
GPIO.setmode(GPIO.BCM) 
GPIO.setup(21, GPIO.OUT) 
if(s == '0'): 
    GPIO.output(21, GPIO.LOW) 
    print "off" 
    s = 1 
else: 
    GPIO.output(21, GPIO.HIGH) 
    print "on" 
    s = 0 

f = open('ledstatus', 'w') 
f.write(str(s)) 
f.close() 

는 이제 문제는 자바 클래스 반환 reader.readline() 널 (null)에 관한 것입니다. 전원을 켜고 끌 수는 있지만 python /home/pi/noirLedControl.py은 현재 터미널에서 실행됩니다. 내 Java 라이브러리 버전이 "1.8.0_122-ea"이므로 두 개의 Java SE 1.8 및 1.7로 프로젝트를 실행하고 문제가 해결되지 않았습니다. os는 debian입니다. 8 문제는 무엇인지 아시나요?