ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 라즈베리파이와 OpenCV를 이용한 전자 봅시다
    카테고리 없음 2020. 2. 3. 10:03

    1.e-paper를 이용한 자전거, 후방 카메라를 만든 동기 앞의 문장(https://blog.naver.com/jedijaja/221187745804참조)에서도 언급했지만 에쵸무 e-paper를 사용하려고 한 동기는 "자전거, 후방 카메라"이었습니다. 자전거로 도로 주행을 할 때 '후'에서 차가 오지 않을까, 길거리 후가 따끔거리는 경험이 있을 겁니다. 그렇다고 나중에 확인하려고 고개를 돌리는 것은 너무 위험하고 저처럼 몸이 딱딱한 사람은 아예 돌아가지 않아요. 그리고 백미러를 설치하는 경우도 있습니다. 이거 화각이 별로 안좋아서 너무 불편해요. 그리고 몇 가지 시도를 해봤습니다. 가장 먼저 자전거 뒤(뒤)에 USB카메라를 탑재하고 앞, 핸들에 스마트 폰을 걸고 여기에 OTG단자를 이용하여 연결하면 카메라 파이 앱(https://play.google.com/store/apps/details?id=com.vaultmicro.camerafi&hl=ko참조)을 이용하고 화상을 받으면 간단하게"자전거, 후방 카메라"이 되었네요. 그저 그런대로 좋아 보이던데요.  두번째는 혹시"USB카메라를 구입하기도 귀찮아서 설치하기도 귀찮은 경우 어떡하지?"라고 생각하고 보고 쓰지 않는 스마트 폰이 있으면 그 일을 자전거 뒤(뒤)에 적당한 곳에 설치 또는 배낭을 짊어지고 있다면 베크 펜에 카메라 부분만 자신 오도록 하고 전에 핸들에는 사용하는 스마트 폰을 달고 뒤(뒤)에 스마트 폰과 테더링으로 연결한 뒤 Camera Voice Launcher앱(https://blog.naver.com/jedijaja/220889903466참조) 같은 것으로 영상을 보내면 이것도 그럴듯하게"자전거, 후방 카메라"이 되었네요. (정말 따라서 테더링을 해도 스마트폰끼리의 영상배신은 데이터를 소모하지 않습니다. 위와 같은 방법으로 표준적인 저가 "자전거 후방 카메라"를 사용해 보았는데, 문제가 있었습니다.  이에 글에서도 언급했지만 어두운 1석이 자신 흐린 날에는 어찌 볼 소일, 튼튼한 낮에는 스마트 폰 LCD창이 잘 보이지 않는다는 것입니다. 이는 자동차에서도 많이 경험하셨겠지만 햇빛을 가려주는 지붕조차 없는 자전거는 더 깊어 보이지 않습니다.  그러다 생각한 것이 햇빛이 반사되어도 잘 보이는 디스플레이가 있는가 싶더니 e-paper가 생각나서 이것을 사용해서 후방카메라를 만들면 밤에는 물론 안보이겠지만 낮에는 심해 보이지 않을까 해서 e-paper를 이용한 "자전거 후방카메라" 프로젝트를 시작하게 되었습니다.   2. 자전거, 후방 카메라를 향해서 필요한 것. 위의 이유로 1단 e-paper가 필요합니다. 그리고, 아래 모델을 알리익스프레스에서 구입했습니다.waveshare사의 2.13inch e-Paper HAT


    >


    이를 구동시키기 위한 컨트롤러로 라즈벨라 파이 제로 w를 준비했습니다. 이게 위에 e-paper와 사이즈가 맞기에 딱 좋군요. 덧붙여서 말하면 구아인트의 박찬호 웨이터 이름표와 같은 모양을 하고 있습니다^


    >


    카메라는 자전거 안장 그 다음에 접속하여 핸들까지 가야하기 때문에 선이 길어야 하기 때문에 하나방의 라즈베리 파이카메라는 사용할 수 없었고 선이 긴 USB카메라를 찾다가 www.mechasolution.com라는 사이트에서 아래와 같은 USB 미니 웹캠을 구입해 사용했습니다. (물론 이 정도 선의 길이로는 부족하기 때문에 USB 연장선도 사용해야 할 것입니다.)


    >


    배터리는 산딸기 파이 모델 카(https://blog.naver.com/jedijaja/220624685503참조)에서 사용한 싸라기 한 0400 mAh보조 배터리를 사용했습니다.


    >


    3.waveshare사의 2.13-inch e-Paper HAT쵸소움에는 먼저 문(https://blog.naver.com/jedijaja/221196349148참조)에서 사용한 2.7 inch e-Paper HAT를 이용하고 프로그램을 조금 변형해서 e-Paper에 화면을 띄우고 보앗움니다. 카메라 영상을 흑백으로 바꾼 영상은 나쁘지 않다.더군요. CCTV처럼 주변물의 시인성이 중요한 영상에만, 흑백으로 그것도 gray없이 이진화 흑백을 바꿨고 영상의 변별력은 1단 많이 톨오죠쯔스프니만 우이뭉눙 이것이 달랐습니다. 여기에서도 언급했듯이 refresh time이 약 6초 정도 되므로, 실제의 화면은 거의 정지하고 있게 그 정지한 영상도 6초 전의 영상과 시르테 테로우에서 확인해야 한다, 후방 카메라에서는 도저히 사용할 수 없소 소리를 알게 되었습니다. 사실 이 일을 하겠다고 라즈베리 파이 3으로 라쥬베리파목하에 w에 OpenCV를 깔고 고생한 생각, e-paper데모 프로그램을 수정해서요 뜻의 영상을 e-paper에 보내기 위해서 수고(https://blog.naver.com/jedijaja/221196349148참조)등이 주마등처럼니까 나쁘지 않으면서"제길.. 괜찮고 뭐 한 거야?"생각이 들었습니다 TT이 때 우연히 보게 된 waveshare e-Paper사이트에서 어떤 작은 e-Paper는 1조 같은 refresh기능뿐 아니라 Partial Refresh기능을 제공한다는 것을 알고, 이것이 알고 보니 e-paper안에 있는 검은 색 가루를 완전히 담지프눙 것이 아니라 절반만 담 막고 담에 잔상은 조금 남지만 refresh time를 약 0.5초 정도 후와쿡은하한 1 있다 방식이라 이것이면 좀 쓸모가 없을까 해서 시도해 봤어요. 그 작은 e-paper가 위에서 언급한 waveshare 2.13inch e-Paper HAT이프니다니다. 이걸 사용하면 그 나쁘지 않은데 '후방 카메라'라고 불릴 정도의 카메라 기능을 했군요. (물론 실제로 쓰기에는 역시 무리가 있었습니다.) 그리고 다음이 그 결과물입니다.


    보시다시피 여전히 유감입니다.T 어쩌면, 보통" 실시간 감성 흑백 영상 기기"정도의 타이틀이 맞는 것 같다는 의견도 하네요^^4. 자전거, 후방 카메라 프로그래밍 몇 성능이다 어쨌든 이런 기능을 하기 위해서 어떻게 프로그래밍을 했는지 일단 적어 보도록 하겟슴니다. 프로그램은 앞선 '흑백전자 앨범'보다 더 간단하죠. 이전 전자 앨범 프로그램에 USB 카메라를 Open CV로 수신하는 기능만 추가되었습니다.라고읽으면좋을것같습니다.  OpenCV에서 USB카메라 영상을 받는 아래는 OpenCV에서 산딸기 화이의 USB에 접속된 USB카메라의 영상을 받는 코드입니다. VideoCapture capture(0);if(!capture.isOpened(){cout("Cannot open camera"(endl;return 0;}Sizesize=Size(int)capture.get(CAP_PROP_FRAME_WIDTH)(int)capture.get(CAP_PROP_FRAME_HEIGHT);while(true){try{capture>>frame;}catch(cv:Exception&e){std:cerr<<">>>>frame에서 frame이라고 하는 MAT변수에 영상을 그 sound 하면 끝입니다. 정말 쉽죠?^영상 2진화와 e-paper로 송신된 영상은 frame이라는 MAT변수에 들고 있고, 이 frame변수를 2진화 칠로, 이를 e-paper에 전송하는 프로세스를 위 while()글의 중국에 실현하면 좋대요. 이 프로그램은 글(https://blog.naver.com/jedijaja/22하나하나 96349개 48참조)의 프로그램을 그대로 사용했으므로 이를 참조하면 되슴니다.이에 글에서는 선명한 화면을 위협 full refresh를 사용한 반면 여기 서빨리 refresh을 돌리고 아래와 같이 partial refresh에서 초기화를 해야 합니다. Epd epd;if(epd.Init(lut_partial_update)!=0){printf("e-Paper init failed\n");return-하나;}프로그램 compile프로그램 compile은 이미 같이 compile.sh로 batch파일처럼 만들어 놨는데요? 아래와 같습니다. g++-o bikecamera bikecamera.cpp imagedata.cpp epd2in한가지 3.cpp epdif.cpp font8.c font하나 2.c font하나 6.c font20.c font24.c epdpaint.cpp$(pkg-config-libs-cflags opencv)-lwiringPi compile은 다음과 같은 명령으로 실행하면 됩니다.$sh compile.sh 실행은 아래와 같이 스무니다.$sudo./bikecamera 5. 프로그램 소스 아래는 위에서 설명한 자전거, 후방 카메라 소스 파일과 compile.sh파일입니다.


    사용법은 OpenCV가 설치되어 있는 라즈베리파이의 적당한 위치에 bike_camera_small.zip를 복사한 후 unzip하면 bike_camera_small이라는 디렉토리가 생기는데 이 안에 compile.sh를 실행하여 compile하고 bike camera라는 파 하나를 위와 같이 sudo에서 실행시키면 앞의 동영상처럼 실행이 맞춰집니다.  6. 글을 마치고 e-paper를 이용한 "자전거, 후방 카메라"라고 이름 붙였지만 사실 좀 궁색하는 것이다. 아마 이걸 자전거에 붙이고 후방의 카메라로 쓰다 하나는 없는 것 같아요. 사실 실용적인 자전거 후방 카메라를 제작했어요.라는의미보다는e-paper,라즈베리퍼시버w,USB웹카메라등을관행적으로해야하는과제정도의의미가아닌가라는의견이많습니다. 이왕 만든거니까 굳이 쓰려면 자동차 앞쪽에 설치하고 지나가는 주변 풍경이 흑백영상으로 바뀌는 모니터로 쓰고, 옛날의 신기한 모습을 보는 정도로는 쓸 수 있지요. 그래도 이거 하면서 처음에 화면이 나쁘지 않을때 환호하고 순간이동을 하는데 흑백자동차가 화면안에서 움직이는게 드문 기억은 좋았습니다. 다음에, e-paper과 라즈베리 화이을 이용 칠로, 포털 사이트의 특정 정보를 1개씩 가끔 간격으로 표시하는 간단한 정보 디스플레이에 대해서 적어 봅시다. 그럼 이만...



    댓글

Designed by Tistory.