본 글은 제가 직접 쓴 글이 아니라, 저희 PinkLAB의 유투브 채널의 공개 강의 영상들을 읽고, 따라한 한 수강생의 글을 제 블로그에 공유한 내용입니다.
https://m.youtube.com/watch?v=3a_HUzZEMLE&list=PL0xYz_4oqpvidCm57CYbWlj-hFbMdJuhi&index=16&pp=iAQB

안녕하세요, 오늘은 환경설정 이후 [ Picamera config 에서 영상 변환하기 ] 를 주제로 글 올려봐요.

지금 우리 과정은, 산기정 과정 중, 얼마전에 환경설정을 끝내고
지금 이제 영상 부분을 막 들어가려고 하고있어요.

방금 전에 카메라 설치를 끝냈구요,
이제 지금 할 내용이 뭐냐면.. picamera의 configure를 할 예정이에요.

현재 우리는 rasberrypi5 버전을 사용하고 있구요,

OS는 Ubuntu 24.04를 사용하고있어요. 라즈비안이 아니라 우분투..!

그럼 이제 넘어가봐요 .

혹시 지난번에 뒤집어진 카메라 기억 나실까요 ?
그 때 강사님께서 괜찮아요~ 다음번에 바꿀꺼에요~ 하셨어요.

이제 그 이야기를 하는데요, 지금 이 코드는 이 경로에 있는데,

여길 찾아가는 방법은 pinkwink github

- Repositories

- For_Ros2_study

- RPi study (우린 어짜피 Ros를 이용해서 Rasberrypi를 로봇으로 연결 할 거예요. ) 여기에 들어가서
cam_config_test.ipynb. 이 코드를 를 보시면 돼요.

config 기능, 너무 심플한데요, create video configuration을 이용하면 돼요.

camera 사이즈도 결정할 수 있고,
transform을 이용해서 수직, 수평 방향으로 뒤집을 수 있어요.

그리고 그 config를 이렇게 샤샥 집어넣어서 configure에 넣어주시고,
camera를 스타트 하면 끝나요.
너무 심플하죠! (민망할 정도.....? 인가요!?ㅋㅋㅋㅋ저는 안민망해요.ㅋㅋ)

자, 이제 display 이미지 함수 하나 만들어 넣구요,

그러고 난 다음에 play 함수도 .. play도 이번엔 함수로 만들어 뒀어요
play_time 받아와서 함수로 쓸 수 있도록 해 두었습니다.

이제 다 끝나면 Done 하도록 하구요,

test 하면 끝나요. 이제 잘 되었죠. 내가 보는 방향과 일치해요.
왜 이래야하죠? 여러분들은 뒤집지 않아도 돼요 .
강사님께서는 수업을 위해 만든 카메라, 라즈베리파이, 환경, 사실 핑키라는 로봇인데요,
카메라가 뒤집혀 달려있으니 영상을 뒤집을 수 밖에 없었던거예요.
그런데 이렇게만 끝나면... 너무 심심해요. 영상도 몇 분 안되구요.

그래서 이번에는 .py파일로 만드는 것도 넣어 보려고 해요.

.py 파일로, 이렇게 생겼어요. 이 코드는

github - playcam 이라는 코드를 그대로 쓰시면 돼요.
여기서 한가지! 말하고 싶으신게 있다 하셨는데요,

자동으로 중단되게 하고싶다면? 일정 시간이 지나면!
내가 실행할 때, 이 코드의 목적이 뭐냐면, 터미널에서 python3 playcam.py 하면
카메라가 켜지고 자동으로 영상이 나오게 하고싶은데, 그 뒤에 옵션을 주고싶은 거예요.

옵션을 줘서, 몇초만 해라, 이렇게.

그게 이 t 옵션을주고싶은거예요. 디폴트는 3초구요.
그렇게 파이썬 이라는 이름으로 파이썬 파일을 바로 실행할 때,

입력을 주고 싶은 것을 ArgumentParser라는걸 쓰면 돼요.

이걸 쓰면 코드내에서 입력을 받아서 쓸 수 있게 된답니다.

이제 파이캠 설정하고

configuration 걸어주고, start 시키구요,

그러고 난 다음에 sleep 하면 끝나요.

sleep 은 여기서 받아온 거에요. (args)

user가 t 옵션으로 시간을 주었따면 그것을 쓰고,

아니면 3초만 해라,

하고 난 다음에, 거기에서 타임을 받아와서 그만큼 타임슬립을 걸었다가

다 스탑시키는 형식으로 코드를 만들어 둔 거예요.
아 예쁘다 !
좀 있다 영상 실습도 해 볼게요.
한 번 실행을 해 볼게요. 코드는 이미 여러분에게 깃허브로 어떻게 받는지 말씀 드렸고..
실행만 해 볼게요.

강사님께서는 커서를 쓰고 계시구요,
cursor 에서는 remote
ssh접속버튼 누르시구요,

강사님께서 라즈베리파이에 접속하시는 ip address에요 --> 192.168.080

이 ip address 를 혹시 새로운 환경에서 모르면
지난시간에 ap 모드로 만들어 둔 것에 하면 돼요.

암호 입력..

이제 open folder ->

강사님께서 documents에 만들어 뒀어요.

cam_config_test.ipynb

일단은 키우고.

이렇게 하고, 이제 clear all outputs 해주고,
restart 해주고..
지금 이 코드는 picamera 불렀구요,

transform 이라는 걸 라이브 카메라 모듈에서 가지고 왔구요,

picamera instantitation(?) 시켜주고,

create_video_configuration에서

size와

뒤집어라 를 만들어준거에요.

그리고 shift+enter 실행 하면

카메라 준비가 끝나요.

이제 여기에서 display image 하던 그 함수 슬쩍 만들어두고..

이제 기본5초 play 함수 슬쩍 만들어 두고요,
이제 이걸 실행해야하는데..
이게 어딜 보고있나!


이번엔 어딜 보게 할까요.. 3초 -> 10초!

강사님 방이고,, ㅋㅋ

강냉이 간식이라 하셔요.

저정도 사두면.... 마음이 평온해진다...ㅋㅋㅋㅋ

이렇게 시간 제한을 걸어서 플레이 하는건 지난시간에 했던 거고,
오늘 중요한건 configuration을 이렇게 쓴다는 거예요.
이제 뭘 할거냐면,

terminal 가지고 와서, 강사님 rasberrypi에 ssh로 접속을 할 거예요.

rpi -> 192.168.0.80
접속을 할 거예요. 강사님 rasberrypi예요.
그러고 두가지 보여드릴건데요,

cd Documents / code_test / 여기 보면 play_cam.py가 있단 말이죠.

play_cam.py는 이 코드예요. arguments로 인자를 받아서 쓸 수 있게 한 거예요.

실행 할 때 인자 받도록 했고,

camera start 시켰구요,
뒤집는거 넣구요.. 이걸 왜 뒤집게 됐다구요 !? 이걸 뒤집게 된 이유는...

카메라를 켤게요, 이 핑키라는 로봇 때문이에요.
이 로봇이 카메라가 이렇게 생겼단말이에요.

이 카메라가 뒤집혀 달려있어요.
요 아이가 뒤집혀... 달려있어요. 그러다보니 내가 설정을 통해 카메라를 뒤집을수 밖에 없더라 예요.
카메라 원위치...

그래서 이렇게 됐고, 실행하는 방법은.. 강사님께서는 ssh로 들어갔으니,
python3 play_cam.py 하면 에러가 나요. (보여드리기 위해..)

에러는! camera __init__ sequence did not complete.
이게 무슨말이죠 ~? 바로 얘때문이에요.
방금 전에 실행한 얘가

play는 끝났는데, 카메라 자원은 잡고있는거예요.
현재 강사님 rasberrypi에는 카메라가 하나있어요. 카메라 하드웨어 자원을 누가 붙잡고 있으면 이렇게 에러가 나요.

이럴 땐 카메라스톱을 걸어줘야해요. 카메랄를 끝내야해요. 자원을 반환시키고 끝내줘야해요.

그러고 다시 실행을 해 보면, kernal restart --> 완전히 죽어라 하면, 이렇게 돼요.
ctrl+c로 끌게요.
문제가 하나 있어요. ssh는 새창이 안떠요. 그러니까...
내가 카메라를 실행했으나, 어디서 실행됐는지 모르는거죠.

vnc server를 실행을 그래서 해요.
강사님께서는 무료버전의 tight VNC를 쓰고 계시지만, 좀더 강력하고 좋은 기능을 쓰고싶으시다면
일부 유료이지만 realvnc를 쓰셔도 괜찮아요.

이게 vnc client였어요. 강사님은 맥북을 쓰고 계셔서, icon 모양이 저렇긴 해요.

이렇게 됐고..

창 조절하고..
이제 한가지는 뭐냐면,

export display 를

:1로 잡아주면 돼요.
우리는 이미 지난번 영상에서 vnc 설정을 잘 걸어두고, xhost에 local 권한을 부팅 할 때마다 주도록 해 뒀단 말이예요.
그래서 vnc에서 창을 띄우는게 가능해 진 거예요.

이 상태에서 이걸 실행하는거예요.

뜹니다 짠! 안녕!]
3초. ㅋㅋ
다시 10초 !

짜자자자자잔 (ㅋㅋㅋㅋㅋㅋㅋㅋㅋ ) 방정맞~ 진않구요~ 재밌네요 강사님.ㅋㅋㅋㅋㅋ
여러분 모두 정말정말 고생하셨습니다, !!
'Hardware > SBC (rasp, jetson, latte panda)' 카테고리의 다른 글
| [RPi5] 2-3. Ubuntu가 설치된 라즈베리파이에서 picamera를 사용하기 위한 준비 3|산.기.정.| (2) | 2025.10.23 |
|---|---|
| [RPi5] 2-2. Ubuntu가 설치된 라즈베리파이에서 picamera를 사용하기 위한 준비 2|산.기.정.| (0) | 2025.10.20 |
| [RPi5] 2-1. Ubuntu가 설치된 라즈베리파이에서 picamera를 사용하기 위한 준비 1|산.기.정.| (0) | 2025.09.19 |
| [RPi5] 1-11. RealVNC 구성해보기|산.기.정.| (1) | 2025.09.17 |
| [RPi5] 1-10. 라즈베리파이 환경설정 마무리|산.기.정.| (0) | 2025.09.11 |
| [RPi5] 1-9. AP mode 셋팅으로 라즈베리파이보드를 공유기로 만들기 2|산.기.정.|민형기 강사님 무료 강의 (0) | 2025.09.08 |
| [RPi5] 1-8. AP mode 셋팅으로 라즈베리파이보드를 공유기로 만들기 1|산.기.정.| (0) | 2025.09.04 |