ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 라즈베리파이와 OpenCV를 이용한 전자잉크 프로젝트 3 - 자전거 후방 카메라
    카테고리 없음 2020. 3. 17. 00:58

    첫.e-paper를 이용한 자전거 뒤캠을 만든 동기전 문장(https://blog.naver.com/jedijaja/22, 최초 87745804 참조)에서도 언급하였지만, 처음 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 참조) 같은 것으로 영상을 보내면, 이 또한 그럴싸한 자전거 후방 카메라가 되었네요. 그리고 테더링을 해도 스마트폰끼리의 영상 전송은 데이터를 소모하지 않습니다. 위와 같은 비결로 이럭저럭 자전거 후방 카메라를 사용해 봤는데, 문제가 있군요.  앞 문장에서도 언급했지만 어두운 night가 과인의 흐린 날엔 그럭저럭 볼 만한데, 햇빛이 강한 낮에는 스마트폰 LCD 창이 잘 보이지 않는다는 겁니다. 이것은 자동차에서도 꽤 경험한 일이지만, 햇빛을 가리는 지붕조차 없는 자전거는 더욱 보이지 않았습니다.  그러다 생각한 것이 햇빛이 반사되어도 잘 보이는 디스플레이가 있는가 했더니 e-paper가 생각나고, 이걸 가지고 후방카메라를 만들면 밤은 물론 안 보이겠지만 낮에는 굉장히 잘 보이지 않을까 해서 e-paper를 사용한 '자전거 후방 카메라' 프로젝트를 시작하게 되었습니다.   2. 자전거 후방 카메라를 위해 필요한 것. 위의 이유로 한가지 e-paper가 필요합니다. 그리고 아래의 모델을 알리익스프레스에서 구입하였습니다.waveshare사의 2. 처음인 3inche-Paper HAT


    >


    이것을 구동시키기 위한 컨트롤러로 라즈벨라 파목 아래에 w를 준비했습니다. 이것이 위의 e-paper와 사이즈가 맞아서 쓰기 편합니다. (붙이면 나쁘지 않다=이트 박찬호, 웨이터 이름표처럼 생겼어요. ^^ )


    >


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


    >


    배터리는 라즈베리 파이 RC카(https://blog.naver.com/jedijaja/220624685503 참조)에서 사용하던 샤오미하나 0400mAh 보조 배터리를 사용하고 있습니다.


    >


    3. waveshare사의 2.13-inche-Paper HAT 앞 sound에는 이전 문장(https://blog.naver.com/jedijaja/221196349148 참조)에서 사용했던 2.7inche-Paper HAT를 이용하여 프로그램을 약간 변경하여 e-Paper에 화면을 표시하였습니다. 카메라 영상을 흑백으로 바꾼 영상은 잘 나왔네요. CCTV처럼 주변 사물의 시인성이 중요한 영상이라 흑백이고 그것도 gray도 아닌 이진화 흰색을 바꾸는 바람에 영상의 변별력은 한 단계 크게 떨어졌지만 문제는 이게 아니었습니다. 앞에서도 말했듯이 refresh time이 약 6초 정도라서 실제 화면은 거의 정지된 것처럼 보였고, 그 정지된 영상도 6초 전 영상이라 가끔 확인해야 하는 후방카메라에서는 도저히 사용할 수 없는 sound를 알게 되었습니다. 사실 이걸 하기 위해서 라즈베리파이3와 라즈베리퍼 금시로 w에 OpenCV를 설치하고 고생한 소견, e-paper 데모 프로그램을 수정해서 임의의 영상을 e-paper에 보내기 위해서 한 고생(https://blog.naver.com/jedijaja/221196349148 참조)등이 주마등처럼 지나 마스크로 "일단 뭐한거야?" 소견이 절로 들어왔습니다.T.T 그때 우연히 보게된 wavshare-Paper 사이트에서 어떤 작은 e-Paprefreial이라는 검정색을 제공한다는 기능뿐이었고, 이만큼의 기능임을 알게 되었고, esher를 알게 되었다. 전부 sound로 찍는게 아니고 반만 전부 sound로 잔상은 남아있지만 refresh time을 0.5초 정도 확실히 줄 수 있는 방식이라서 이거면 좀 쓸 수 있지 않을까 해서 시도해 봤습니다. 그 작은 e-paper가 위에서 언급한 waveshare 2.13inche-Paper HAT입니다. 이것을 사용하면, "후방 카메라"라고 불릴 정도의 카메라 기능을 하고 있습니다. (물론 실제로 쓰는데는 역시 무리가 있었습니다.이렇게 해서 아래가 그 결과물이다.


    보시다시피 여전히 섭섭합니다T.T 어떻게 보면 보통 "실시간 감성 흑백 영상기"정도의 제목이 맞을지도 모른다는 소견도 있네요. +4. 자전거 후방 카메라 프로그래밍 성능은 어쨌든 위와 같은 기능을 하기 위해서 어떻게 프로그래밍 했는지 1단 써보도록 하겠습니다. 프로그램은 앞의 흑백 전자 앨범보다 훨씬 쉬울 겁니다. 이전 전자 앨범 프로그램에 USB 카메라를 Open CV로 수신하는 기능 정도만 추가된 것 같습니다.  OpenCV에서 USB 카메라 영상을 받는 아래는 OpenCV에서 라즈베리 파이의 USB에 연결된 USB 카메라 영상을 받는 코드이다. Video Capture capture (0);if (!capture.is Opened ()) + cout <"Cannotopen camera" ← &endl; return0; 醫Size=Size(int)capture.get(CAP_PROP_FRAME_WIDTH), (int)capture.get(CAP_PROP_FRAME_HEIGHT)); while(true) + try_capture> frame; + catch(cv:Exception_{\rue}: \ecompetre \frame; \frame; 와 함께 OpenCV의 Video Capture 클래스의 capture라는 오브젝트를 만들고, capture.Opened() 함수로 카메라를 활성화 시킨 후 while 글 중에서 capture> frame에서 frame이라는 MAT 변수에 영상을 모두 sound 하면 된다. 정말 쉽죠?|영상의 이진화와 e-paper에 전송 위와 함께 받은 영상은 frame이라고 하는 MAT변수에 들어가 있고, 이 frame변수를 이진화하고, 이를 e-paper로 전송하는 과정을 위의 while( 글 안에 구현하면 된다고 합니다. 이 프로그램은 이전 문장(https://blog.naver.com/jedijaja/221196349148 참조)의 프로그램을 틀로 사용했으므로 이것을 참조하면 됩니다.단, 앞 문장에서는 선명한 화면을 위해서 full refresh를 사용한 반면, 요기서는 빠른 refresh를 위해서 아래와 같이 partial refresh로 초기화 해야 할 것입니다. Epdepd;if(epd.Init(lut_partial_update)! =0) | printf("e-Paperinit failed_n"); return-1;| 프로그램 compile은 키위처럼 compile.sh에서 batch 파1처럼 만들었습니다만. 다음과 같은 gz-o bike camera bike camera.cppimagedata.cppepd2in13.cppepdif.cppfont8.confont16.cont20.cont24.cepdpaint.cppj(pkg-config--libs--cfligsopencv)-ciring은 다음과 같이 하고, PCM.confix1의 프로그램을 다음과 같다.


    사용법은 OpenCV가 설치되어 있는 라즈베리파이의 적당한 위치에 bike_camera_small.jip를 복사한 후 unjip하면 bike_camera_small이라는 디렉토리가 생기는데 이 안에 compile.sh을 실행하여 compile하고 bike camera라는 파1을 위와 같이 sudo에서 실행하면 이전 동영상처럼 실행됩니다.  6. 글을 마치고 e-paper를 이용한 '자전거 후방 카메라'라고 이름 붙였지만 실은 좀 거북하다. 아마 이거 자전거에 붙이고 후방 카메라로 쓰기 1은 없는 것 같아요. 사실 실용적인 자전거 후방 카메라를 제작했어요.라는 의미보다는 e-paper, 라즈베리파이제로w, USB웹캠 등을 연습할 수 있는 연습과제 정도의 의미가 아닐까 싶습니다. 이왕 만들었으니까 굳이 사용하려면 자동차 앞쪽에 설치하고 종이와자는 주위 풍경이 흑백 영상으로 바뀌는 모니터로 아들의 신기한 모습을 볼 정도로는 사용할 수 있지요. 그래도 이걸 하면서 처음에 화면이 와인일 때 환호하고 순간이동을 하는데 흑백자동차가 화면 안에서 움직이는 게 신기한 기억은 좋았습니다. 3 다음은 e-paper와 라즈베리 파이를 이용해 포마스크 사이트의 특정 정보를 1정 때때로 간격으로 표시해 주는 간단한 정보 디스플레이에 대해 써 보도록 합니다. 그럼 이만...



    댓글

Designed by Tistory.