반응형
라즈베리파이에서 GPIO를 쉽게 쓸 수 해주는 라이브러리가 몇개가 있는데,
대표적인게 wiringPi입니다.
라즈베리파이2까지 지원합니다.^^
그런데 wiringPi를 camcv의 cmake로 컴파일 하기가 힘든거 같습니다.
더 자세히 말하면 컴파일은 되는데 실제 동작을 안하네요 ㅠㅠ
일단 CmakeList.txt에 추가한 내용은 아래와 같습니다.
CmakeList.txt
1 2 3 | SET(CMAKE_CXX_FLAGS "-pthread -I/usr/local/include -L/usr/local/lib -lwiringPi") include_directories(/usr/local/include/) target_link_libraries(/usr/local/lib/libwiringPi.so /usr/local/lib/libwiringPiDev.so ) | cs |
그리고 실행 코드인 camcv_vid1.cpp에 헤더파일을 추가했습니다.
1 | #include <wiringPi.h> | cs |
그리고 메인코드에서 초기화코드
1 2 | pinMode(0, OUTPUT); // output mode digitalWrite(0, 0); //output low | cs |
마지막으로 인식되서 이름을 뿌려주는 곳에 출력
1 | digitalWrite(0, 1); //output high | cs |
하지만 동작을 하지않아서 다시 시도한 방법은 쉘명령어를 바로 실행하는 방법입니다.
참고한 곳은 digipine.com 입니다.
system() 함수를 쓰게되면 쉘명령어를 쓸 수 있습니다.
초기화 부분
1 2 | system("gpio mode 0 out"); //ans system("gpio write 0 0"); //ans | cs |
여기서 GPIO 0을 output으로, low로 초기화 합니다.
인식 되면 GPIO 출력하는 곳
1 2 3 4 5 6 7 8 | // display name of the guy on the picture string box_text; if (prediction<MAX_PEOPLE) { box_text = "Id="+people[prediction]; if (prediction == P_NATACHA) system("gpio write 0 1"); //ans } | cs |
인식이 되면 출력이 High로 출력됩니다.
인식이 안될 때 꺼지는 건 좀 더 봐야 할 것같습니다.
그리고 wiringPi 라이브러리를 추가해서 하는 것도 다시 시도해보고 성공하면 포스팅 하겠습니다.^^
참고로 gpio 쉘 명령어는 wiringpi.com 에서 참고하였으며,
제가 사용한 명령어는 아래의 명령어입니다.
1 2 3 | gpio mode 0 out //gpio 0번을 출력으로 gpio write 0 0 //gpio 0번을 low로 gpio write 0 1 //gpio 0번을 high로 | cs |
그리고 시연 동영상입니다.
반응형
'Study > Raspberry Pi' 카테고리의 다른 글
라즈베리파이(Raspberry Pi)에 Windows10 IoT설치하기 (0) | 2017.01.18 |
---|---|
raspi camera 오류 해결방법 (2) | 2016.09.23 |
PROTA 간단 이용기 (2) | 2015.04.28 |
라즈베리파이 원격접속하기 (0) | 2015.04.17 |
Raspberry Pi 에 APM 설치하기(apache, php, mysql) (4) | 2015.02.12 |