vi /etc/samba/smb.conf

 

  • 캐릭터셋
            unix charset = UTF-8
            dos charset = CP949
  • 긴 파일명이 깨지는것 방지
             mangled names = no 

 

 

  /etc/init.d/smbd restart

옛날 사람이라 이렇게 항상 명령어를 내린다. ㅎㅎ (systemctl restart smbd)

재시작하면 긴 파일명이 보니다.

 

참 별것도 아닌데 사람을 귀찮게 한다. ㅎㅎ

  raspi-config

평소 했던데로 카메라를 셋팅했다.

Bullseye에선 뭔가 지원이 안된다는 메세지 좀 껄끄러운 메세지....

뭐 항상 이렇게 했으니 계속 해본다.

 

  raspistill -o test.jpg
-bash: raspistill: 명령어를 찾을 수 없음

-bash: raspivid: 명령어를 찾을 수 없음

 

뭐여?? 내가 너무 오랫동안 안했나?? 왜 명령어가 없어???

apt 로 설치를 해보려 하지만 패키지가 없단다??뭐여??

 

그래서 찾아보니 Bullseye에서는 카메라 제어를 위해 Raspicam 대신 libcamera 라이브러리를 지원하고
Raspicam에서 지원하던 raspistill, raspivid 명령어를 사용할 수 없다고 한다.

제길...

 

  libcamera-jpeg -o test.jpg
Preview window unavailable
[0:00:42.944676805] [696]  INFO Camera camera_manager.cpp:297 libcamera v0.0.5+83-bde9b04f
ERROR: *** no cameras available ***

 

또 뭐여?? 되야할것 아니냐?? 나한테 왜 이러냐?

 

  vcgencmd get_camera

supported=1 detected=1, libcamera interfaces=0

 

vcgencmd 명령어로 카메라가 붙어 있나 본다.

뭐여??? 카메라가 붙어 있는 것 같은데????

왜 안될까??? 맞다... libcamera 이것이 0이네..

 

  카메라 모듈별 설정 /boot/config.txt

 

내가 짭을 샀나?? 아니다. 분명 아래 지원되는 카메라를 샀다.

라즈베리파이는 아래 카메라 모듈을 지원한다.

그런데 내가 지원이 안되는 카메라를 샀나?? 스펙에 보면 OV5647 모듈이라고 했는데...

분명 목록에 있다.

V1 camera (OV5647) dtoverlay=ov5647
V2 camera (IMX219) dtoverlay=imx219
HQ camera (IMX477) dtoverlay=imx477
GS camera (IMX296) dtoverlay=imx296
Camera Module 3 (IMX708) dtoverlay=imx708
IMX290 and IMX327 dtoverlay=imx290,clock-frequency=74250000 or dtoverlay=imx290,clock-frequency=37125000
(both modules share the imx290 kernel driver; please refer to instructions from the module
vendor for the correct frequency)
IMX378 dtoverlay=imx378
OV9281 dtoverlay=ov9281

 

  vi /boot/config.txt

 

# Automatically load overlays for detected cameras
#start_x=1
start_x=1
camera_auto_detect=1

 

위내용을 추가하란다.

config.txt 수정 후 재부팅한다.

 

 

자 이제 카메라 잡혔나 봅니다.

> vcgencmd get_camera
supported=1 detected=0, libcamera interfaces=1

에고... 오히려 detected가 안되는디??

대신  libcamera가 살아났다!!!!

 

v4l2-ctl --list-devices

장치에도 붙었다.

 

> libcamera-jpeg -o test.jpg

 

오~~~ 된다.

이상하네... detected가 없어도 되는건가??

 

  libcamera-jpeg -t 1 --width 640 --height 480 -o test2.jpg 

 

이미지 크기 등을 지정해서 저정해본다.

 

성공하면 다들 이렇게 천정화면 보여주더라.

나도 성공했는데 이렇게 천정이 찍혀있더라.

 

신난다.

 

  libcamera 명령어 사용 방법

  • libcamera-hello  : 카메라 미리보기를 실행해 화면에 표시하는 간단한 카메라용 "hello world" 프로그램입니다.
  • libcamera-jpeg  미리보기 창을 실행한 다음 고해상도 정지 이미지를 캡처하는 응용 프로그램입니다.
  • libcamera-still  raspistill의 다양한 기능을 모방한 더 복잡한 스틸 이미지 캡처 응용 프로그램입니다.
    • libcamera-still -e png -o test.png
    • libcamera-still -e bmp -o test.bmp
  • libcamera-vid  비디오 영상을 캡처하는 응용 프로그램입니다.
    • libcamera-vid -t 10000 -o test.h264
      녹화 시간 및 저장할 파일명 등은 명령어의 옵션을 조절하면 변경 가능합니다.
      (-t 옵션은 ms이므로 값 1000당 1초입니다.)
  • libcamera-raw  센서에서 직접 원시(처리되지 않은 Bayer) 프레임을 캡처하기 위한 기본 응용 프로그램입니다.

  공식 문서를 확인하자.

여기까지 읽었다면 libcamera 영상이나 추가 정보가 필요하겠죠?

여기에서 최신 정보를 참조합시다.

https://www.raspberrypi.com/documentation/computers/camera_software.html

 

Raspberry Pi Documentation - Camera software

The official documentation for Raspberry Pi computers and microcontrollers

www.raspberrypi.com

 

  신경안쓰던 25번 LED가 안들어온다. 뭐지??

 

고장인가??

당연한거지만 결론은 사용하는 보드명을 봐주세요. 라즈베리파이 PICO W 로 사용하고 있나 잘보세요.

아무것도 아닌데 계속 개 삽질을 ㅠㅠ

저처럼 arduino Mbed OS RP2040을 쓰고 계셨는지...

비슷한 보드를 선택해도 데이터가 업로드 되므로 저는 보드 선택이 틀린지 몰랐습니다.

25번 LED를 제어해도 불이 안들어와서 알게 됐죠.

혹시나 저같은 사람이 또 있을까봐 올립니다.

라즈베리파이 PICO와 라즈베리파이 PICO W 의 LED 핀 번호가 좀 다릅니다.

그래서 불이 안들어왔어요.

WiFi 모듈 붙으면서 달라졌군요.

 

  기본 보드 매니저에 검색해도 안나오니 보드가 있는 URL 넣어줍니다.

다음 경로를 드레그 해서 복사해주세요.

https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json

 

첫번째거로 쓰던것 하지만 안됩니다. 사실 별반 차이 없으니 될거라 대충 생각한 나의 자만심...

Raspberry Pi Pico W를 제어하려고 했으니... 계속 개 삽질을 하게 된거죠.

 

  Raspberry Pi Pico/RP2040 을 설치해줍니다.

설치하면 이렇게 친절하게 라즈베리파이 피코 W가 목록에 잘 나옵니다.

 

테스트할 그냥 기본 코드 업로드 해보면 잘 될겁니다.

// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(LED_BUILTIN, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);  // turn the LED on (HIGH is the voltage level)
  delay(1000);                      // wait for a second
  digitalWrite(LED_BUILTIN, LOW);   // turn the LED off by making the voltage LOW
  delay(1000);                      // wait for a second
}

혹시....

 

  Thonny에서는 Raspberry Pi Pico 인터프리터로 잡아 놓아도 

 

import machine
import utime

led = machine.Pin("LED", machine.Pin.OUT)

while True:
    led.off()
    utime.sleep(0.1)
    led.on()
    utime.sleep(0.1)

 

이렇게 코드로 돌리면 제어가 됩니다.

 

 

 

+ Recent posts