Raspberry Pi 버튼, 카메라

일단 작업하기 전에 한글폰트 설치하고 적용을 해보자.

터미널을 켜서 sudo apt install fonts-nanum 입력해주면 한글 폰트가 설치된다.

sudo apt install ibus-hangul 입력해주고 y 눌러주면 된다.

 

라즈베리파이 모양 -> Preferences -> Raspberry Pi Configuration

 

그리고 OK를 누르면 재부팅하라고 뜬다

재부팅을 해주면 된다.

 

그리고 iBus 기본설정 -> 입력방식에서 한국어(태극모양) 추가해주면 된다.

 

일반으로 돌아와서 이렇게 설정해주면 된다.

그리고 재부팅 해주자.

한국어 누른다음 한글 상태 누르면 한글이 나오게 된다.

 


라즈베리파이에 버튼(10k저항) LED(220옴저항) 연결을 해준다.

버튼은 풀다운 방식으로 해주고

왼쪽(저항) - GND

가운데 - GPIO26

오른쪽 - 3.3V

LED +극 - GPIO24

왼쪽(저항) - GND

연결을 해준다.

 

import RPi.GPIO as GPIO
import time

led_pin = 24
btn_pin = 26

GPIO.setmode(GPIO.BCM)
GPIO.setup(btn_pin,GPIO.IN, pull_up_down=GPIO.PUD_DOWN) #풀다운방식

while True:
    if GPIO.input(btn_pin) == GPIO.HIGH:
        print("버튼이 눌려짐")
    else:
        print("버튼이 안눌려짐")
    time.sleep(0.1)

여기서 문제가 일어난다.

바로 채터링 현상이 일어나게 된다.

아두이노에서는 채터링 현상을 시간을 재서 처리를 했는데 라즈베리파이에서는 더 쉽게 해결할 수 있다.

 

import RPi.GPIO as gpio
import time

push_btn = 26

# button의 상태가 변하면 호출될 callback function을 정의
def mycallback(channel):
    print("버튼이 눌려짐")

gpio.setmode(gpio.BCM)
gpio.setup(push_btn, gpio.IN, pull_up_down=gpio.PUD_DOWN)

#Event 방식으로 핀의 상태를 처리
#GPIO.RISING(low -> high로 변경), GPIO.FALLING, GPIO.BOTH
#입력핀으로 부터 RISING(Falling)이 발생할때까지 timeout에 지정한 시간만큼 기다렸다 작업
#gpio.wait_for_edge(push_btn,gpio.RISING,timeout=1000)
gpio.add_event_detect(push_btn,gpio.FALLING,callback=mycallback)

while True:
    time.sleep(0.1)

#0.1초마다 쉬고 버튼이 눌려졌다가 떨어질때 콜백 함수가 실행된다.

 

문제)

풀업으로 바꿔라.

더보기

왼쪽 - GND

가운데(버튼,저항) - gpio26번

오른쪽(저항) - 3.3V

gpio.setup(push_btn, gpio.IN, pull_up_down=gpio.PUD_UP)

 


카메라 연결을 해보자.

 

카메라 모듈을 하얀색 면이 하얀색 쪽으로 파란면이 검정색 쪽으로 가게 해서 연결하면 된다.

 

그리고 라즈베리파이에서 cmd 들어가 sudo raspi-config 입력 후

3번 들어가고

 

1번 들어가서

 

예로 맞춰주면 된다.

그리고 메인화면으로 와서 피니쉬 누르면 재부팅을 한다

 

재부팅을 하게 되면 VNC가 작동이 안된다

 

카메라를 사용하면 VNC가 안된다는 단점이 있다.

 

카메라가 동작하는지 확인해보자.

PuTTY로 가서 로그인 한다음

raspistill -o image1.jpg 입력하면 카메라가 찍힌다.

이 명령어는 옛날버전 명령어다

먹히는 사람이 있고 안먹히는 사람이 있다

여기서 안되는 사람들은 다시 설정을 아니오로 설정해주고 VNC로 접속해보자.

 

VNC 접속해서 cmd에 libcamera-jpeg -o pic.jpg 입력하면 카메라가 찍히게 된다.

이 명령어가 최신 명령어다.

 

다시 Legacy camera Enable 해주고 PuTTy로 접속을 해주자.

 

raspistill -o 파일명.확장자 -> 5초동안 미리보기를 해주고 사진 찍고 파일을 저장해준다.

ex) raspistill -o test.jpg 입력

 

raspistill -o 파일명.확장자 -t 1000 -> 5초가 아니라 1초만에 찍는다

ex) raspistill -o test2.jpg -t 1000

 

raspistill -o 파일명.확장자 -vf -hf -> 수직 수평으로 뒤집는다.

 

raspivid -o 파일명.h264 -> 동영상 

입력 후 Legacy camera 비활성화 해주고 VNC로 가서 동영상 잘 찍혔나 확인해보면 된다.

나오긴 나오는데 사진으로 동영상 만든것처럼 나오게 된다

댓글

Designed by JB FACTORY