Raspberry Pi LED 켜기
- IoT
- 2022. 4. 11.
티코블럭(T-cobbler), 브레드보드, 선
이렇게 준비를 해주고
브레드 보드 끝까지 꼽아주면 된다.
이렇게 끼워주면 된다.
그럼 이제 라즈베리파이에 접속해서 잘 연결 됬는지 확인해보자.
핀 설명들은 이렇다.
[리눅스 기본 명령어]
1. ls - 디렉토리에 있는 하위 목록을 보기 위한 명령어
ls -a : 모든 파일을 출력
ls -l : 자세한 정보를 출력
ls -d : 폴더출력
옵션을 여러 개를 같이 사용할 수 있다.
2. cd - 폴더를 이동하는 명렁어
리눅스는 마지막 폴더만 출력
pwd로 현재 위치를 확인
cd .. : 상위폴더
cd . : 현재폴더
cd / : 최상위 디렉토리로 이동(루트 디렉토리)
cd ~ : 자기자신의 홈디렉토리로 이동
3. mkdir - 디렉토리 생성
mkdir 생성할디렉토리명
mkdir -p 생성할디렉토리명/디렉토리명 : 디렉토리 2개 같이 생성함
4. touch - 빈파일 생성
touch 파일명
5. cp - 파일/디렉토리 복사(로컬복사, 원격의 pc에 복사하고 싶은 경우 scp)
cp 복사할원본 사본파일명
cp -r 복사할디렉토리 사본디렉토리
6. rm - 파일삭제
rm 삭제할파일명
rm 경로/삭제할파일명
rm pi@raspberrypi:경로/파일명 : 원격지에 있는 파일을 지우는 경우 호스명까지 명시
7. mv - 파일이동
mv 이동할원본 이동할위치
8. rmdir - 디렉토리 삭제
rmdir 디렉토리명
rm -r 디렉토리명 : 하위 디렉토리까지 모두 삭제
9. 파일 다운로드 설치 및 삭제
sudo apt-get install 설치할패키지명
sudo apt-get remove 삭제할패키지명
10. 파일의 내용을 보고 싶은 경우
cat - 전체 파일의 내용이 출력
cat 파일명
최상위 폴더에 tmp 파일을 만들고
wget https://project-downloads.drogon.net/wiringpi-latest.deb
입력하면 파일이 다운받아진다
이 파일은 C를 이용해서 gui를 제어하는 파일이다
deb 파일확장자는 msi파일이라고 보면 된다.
sudo dpkg -i wiringpi-latest.deb 입력하면 설치가 된다.
gpio readall을 누르면 정상적으로 연결이 되어 있는지 확인할 수 있다.
이렇게 나오게 된다.
여기에 보면 BCM, Mode 이렇게 나오는데 우리는 BCM 방식으로 이용할것이다.
BCM이 뭐냐면 BCM에 24번핀 = GPIO24번 핀이라고 보면 된다.
라즈베리파이 GPIO는 기본적으로 3.3V를 사용하게 된다.
5V 전압이 들어오면 반드시 저항을 사용해야 한다
라즈베리파이 파이썬 버전이 몇인지 확인해 보자
python --version 입력하면 나는 3.9.2 버전이 나온다
PC에서 라즈베리파이로 파일 이동 방법
VNC 가운데 위쪽을 보면
이와 같이 나오는데 버튼을 눌러준다.
파일 아무거나 선택해서 열기를 눌러주면
경로를 지정해주면 파일이 경로에 다운로드가 된다
이제 파이참에서 작업을 해보자.
RPI.GPIO-def를 설치해주자.
아까 전에 받은 wiringpi-latest.deb파일은 C로 이용하는거고
RPI.GPIO-def는 파이썬으로 하는거다.
LED와 220옴 저항을 준비하고
LED +극에는 GPIO24번
-극에는 GND 연결하면 된다
import RPi.GPIO as GPIO
import time
led_pin = 24
#GPIO핀을 어떤 방법으로 엑세스 할 것인지 모드를 설정
GPIO.setmode(GPIO.BCM)
#GPIO핀이 입력 or 출력인지 설정하기
GPIO.setup(led_pin,GPIO.OUT)
#GPIO핀에 출력하기
GPIO.output(led_pin,GPIO.HIGH) #24번으로 출력하겠다
time.sleep(1) #1초 쉼
GPIO.output(led_pin,GPIO.LOW)
이렇게 입력 후 파일을 라즈베리파이로 옮기고
python 파일명 입력해주면 실행이 된다.
2번 실행하게 되면 Warning이 뜨는데
이유는 24번핀이 이미 OUT으로 사용되고 있는데 또 실행하게 되면
이미 사용하고 있는데 또 사용하는 의미로 보면 된다.
해결법은 코드 맨 밑에 GPIO.cleanup()을 추가해주면 된다.