라즈베리 파이를 제어하는 방법
![[나도메이커] 스마트폰으로 라즈베리파이를 원격 제어할 수 있다?! 어디 해봅시다아!](https://i.ytimg.com/vi/LJERgDraWZg/hqdefault.jpg)
콘텐츠
- 단계
- 1 부 OS 설치
- 2 부 : NOOBS 다운로드
- 파트 3 SD 카드 포맷
- 파트 4 NOOBS를 SD 카드에 복사
- 제 5 부 라즈베리 파이를 제어
- 6 부 네트워크 구성
- 유선 네트워크 구성
- 무선 네트워크 설정 (SSH / WiFi)
- 7 부 Geany IDE 설치
- 파트 8 파이썬에서 DC 모터 구동 (배선 파트)
- 9 부 연결 완료
- Part 10 파이썬으로 DC 엔진 구동하기 (프로그래밍 부분)
- 11 부 1 차 도전
- HC-SR04 초음파 센서 사용 (배선)
- HC-SR04 초음파 센서 (프로그래밍 부분) 사용
- 12 부 2 차 챌린지
라즈베리 파이는 신용 카드 크기의 컴퓨터입니다. 컴퓨터와 프로그램을 가능한 한 쉽게 이용할 수 있도록하는 비영리 단체 인 Raspberry Foundation에서 설계하고 제조합니다. Raspberry 프로젝트의 원래 임무는 우수한 프로그래밍 기능을 사용하여 컴퓨터를 가능한 한 저렴하게 디자인하는 것이 었습니다. 따라서 학생들의 손에 넣으십시오. 이 가이드는 Raspberry Pi 사용을위한 기반을 마련하고 취급을 용이하게하는 것을 목표로합니다.
경고. 이 기사는 좋은 컴퓨터 배경을 가진 사람들을위한 것입니다.
단계
1 부 OS 설치
- NOOBS (New Out Of Box Stoftware)가 무엇인지 이해합니다. Raspberry Pi와 함께 사용할 수있는 다양한 운영 체제의 설치 관리자로서, 선택한 운영 체제 (OS)의 설치를 용이하게하기위한 것입니다. 이것은 마이크로 컴퓨터의 소프트웨어 부분과의 첫 접촉입니다. NOOBS에는 다음 운영 체제가 포함되어 있습니다.
- Raspbian
- Pidora
- OpenELELC
- RaspBMC
- RISC OS
- 아치 리누스
- 이 튜토리얼에 필요한 장비는 다음과 같습니다.
- PC
- 8GB 이상의 클래스 4 SD 카드
- Raspberry Pi가 들어있는 원래 상자에는 이미 NOOBS가 포함 된 SD 메모리 카드가 사전 설치되어 있습니다. 따라서 다음 단계는 새 SD 카드에 설치할 때만 유용합니다.
2 부 : NOOBS 다운로드
-
다음 주소에서 "NOOBS"를 다운로드 할 수 있습니다. noobs에
파트 3 SD 카드 포맷
- 최소 4GB의 SD 카드가 있어야합니다. 그러나 권장 크기는 8GB입니다.
파트 4 NOOBS를 SD 카드에 복사
- 파일을 추출하십시오. 첫 번째 단계에서 다운로드 한 NOOBS라는 zip 파일에서 문서를 추출하십시오. 추출 된 파일을 새로 포맷 된 SD 카드에 복사하십시오. 그러나 경우에 따라 추출 된 파일이 새 폴더로 이동할 수 있으므로이 경우 폴더 대신 파일 자체를 복사하는 것이 좋습니다.
- 처음 시작할 때 사용 가능한 운영 체제 목록이 표시됩니다.
제 5 부 라즈베리 파이를 제어
- 라즈베리 파이를 사용하려면 다음 단계를 따르십시오.
- "찰칵"소리가 들릴 때까지 SD 카드를 라즈베리에 삽입하십시오.
- HDMI 케이블을 연결하고 화면에 연결하십시오. 전원을 켜고 켜는 것을 잊지 마십시오
- 화면. 마이크로 USB 충전기로 라즈베리에 전원 공급
- 키보드와 마우스를 USB 포트에 연결하십시오.
- 이 단계를 수행하면 모니터에 NOOBS 소프트웨어가로드되고 있음을 알 수 있습니다. 로드되면 설치할 수있는 운영 체제 목록이 나타납니다. Raspbian은 설치에 권장되는 OS입니다. Raspbian을 선택하고 창 상단에있는 "설치"버튼을 클릭하십시오.
-
설치에는 약 20 분이 걸립니다. 설치가 완료되면 검은 색 명령 화면이 나타납니다. 그런 다음 프로그램에서 요청할 때 사용자 이름 : "pi"및 암호 : "raspberry"를 입력해야합니다. 그런 다음 명령 행에 다음을 입력하고 "Enter"키를 누르십시오.startx로
- 축하합니다! Raspberry pi :)를 사용하는 데 필요한 환경을 설치했습니다! 이제 네트워크 구성을 진행하겠습니다.
6 부 네트워크 구성
인터넷에 연결하십시오. Raspberry Pi가 작동하고 나면 다음에해야 할 일은 Raspberry Pi의 인터넷 연결을 설정하는 것입니다.이 작업이 완료되면 다음과 같이 인터넷을 서핑 할 수 있습니다 완전히 다른 컴퓨터. 유선 (이더넷 케이블로) 또는 무선으로 Wi-Fi를 통해 연결을 설정하는 방법에는 두 가지가 있습니다. 다음 단계에 따라 네트워크를 설정하십시오.
유선 네트워크 구성
- 필요한 장비는 다음과 같습니다.
- 기능적인 Raspberry Pi (Raspberry Pi 시작하기 참조)
- 이더넷 케이블
- 이더넷 케이블 헤드 중 하나를 Raspberry Pi의 제공된 포트에 연결하고 다른 하나를 모뎀 또는 인터넷 액세스 라우터에 연결하면됩니다. 결과적으로 Raspberry Pi는 자동으로 인터넷에 연결됩니다.
무선 네트워크 설정 (SSH / WiFi)
- 필요한 장비는 다음과 같습니다.
- 기능적인 Raspberry Pi (Raspberry Pi 3 시작하기 참조)
- 와이파이 USB 키
- USB wifi 스틱을 Raspberry Pi의 사용 가능한 포트 중 하나에 꽂습니다.
-
메뉴에서 아이콘을 눌러 wifi 설정 서비스를 엽니 다.- 서비스를 열면 다음과 같은 인터페이스가 나타납니다.
- 서비스를 열면 다음과 같은 인터페이스가 나타납니다.
-
스캔 버튼을 클릭하십시오. 새로운 창이 나타납니다. 따라서 우리가 사용하려는 네트워크를 두 번 클리 킹합니다. -
비밀번호를 입력하십시오. 아래와 같이 사전 공유 키 (PSK) 필드에 네트워크 액세스 암호를 입력하십시오.- 이제 "저장"을 클릭하고 네트워크를 추가하십시오. 이 작업을 수행하면 인터넷 네트워크에 연결됩니다.
- 이제 "저장"을 클릭하고 네트워크를 추가하십시오. 이 작업을 수행하면 인터넷 네트워크에 연결됩니다.
7 부 Geany IDE 설치
- Geany는 GTK + 및 Scintilla를 사용하고 통합 개발 환경의 기본 기능을 포함하는 경량 전자 출판사입니다. 의존성이 적고 빠르게 시작하도록 설계되어 C / C ++, Java, JavaScript, PHP, HTML, CSS, Python, Perl, Ruby, Pascal 및 Haskell 언어를 지원합니다.
-
메뉴에서 명령 프롬프트를 엽니 다. - Raspberry의 루트 폴더에있을 명령 줄 "sudo root"를 입력하십시오. 그런 다음 사용자 이름 "pi"와 비밀번호 "raspberry"를 입력하십시오.
- 다음 명령 행을 입력하십시오.
apt-get 설치 파이썬 geany xterm
- 설치에는 몇 초가 걸립니다.
- 메뉴에서 Geany IDE를 엽니 다.
- "파일"탭에서 첫 번째 파일을 작성하여 첫 번째 프로그램을 작성할 수 있습니다.
- 코드가 작성되면 코드를 등록하고 컴파일하기 만하면됩니다.
파트 8 파이썬에서 DC 모터 구동 (배선 파트)
이 부분에서는 DC 모터를 Raspberry Pi에 연결하는 방법과 회전 속도와 DC 모터 방향을 변경할 수있는 작은 프로그램을 파이썬으로 만드는 방법을 보여줍니다.
-
이 작은 튜토리얼은 나중에 로봇 프로젝트를 실현하는 데 도움이 될 것입니다. - 원리를 이해하십시오. 우선, 당신은 알아야합니다 DC 모터가 Raspberry Pi의 GPIO 핀에 직접 연결되지 않습니다. 실제로 엔진을 회전시키는 데 사용되는 전류는 우리의 작은 라즈베리 파이에 대해 상당히 높으며 손상 될 수 있습니다.
- 그렇기 때문에 최대 2 개의 DC 모터를 제어하도록 설계된 칩을 사용하게됩니다. L293D 칩.
- Raspberry Pi의 중요한 기능은 보드 모서리에있는 GPIO 핀 행입니다. GPIO 핀은 프로그래밍에서 입력 또는 출력 핀으로 지정할 수 있습니다.
- 그렇기 때문에 최대 2 개의 DC 모터를 제어하도록 설계된 칩을 사용하게됩니다. L293D 칩.
- L293D를 배선하십시오.
- L293D의 핀 4, 5, 12 및 13은 그림에서 볼 수 있듯이 GND에 연결되어야합니다. L293D의 16 번 핀으로 전원을 공급할 수 있습니다. 5V로 공급합니다. 이 전압은 모터로 전송되지 않고 L293D 칩으로 만 전송됩니다.
- 모터에 전원을 공급하려면 배터리 또는 배터리에 연결된 L293D (양극 단자)의 핀 8을 사용하십시오. 음극 단자는 접지 (GND)에 연결해야합니다. 모터의 전압 제한을 초과하지 않도록주의하십시오.
- L293D의 핀 4, 5, 12 및 13은 그림에서 볼 수 있듯이 GND에 연결되어야합니다. L293D의 16 번 핀으로 전원을 공급할 수 있습니다. 5V로 공급합니다. 이 전압은 모터로 전송되지 않고 L293D 칩으로 만 전송됩니다.
-
모터를 연결하십시오. 첫 번째 모터를 연결하려면 간단히 L293D 칩의 핀 3 및 6 (출력 1A 및 1B)에 연결하십시오.
9 부 연결 완료
- L293D 칩의 핀 1은 첫 번째 모터의 "활성화"핀입니다. 이 핀이 논리적으로 "높음"인 경우 모터가 최대 속도로 작동하고이 핀이 논리적으로 "낮음"인 경우 모터가 정지 상태입니다. 엔진 속도를 줄이려면이 두 상태를 매우 빠르게 교대로 전환하여 실행하면 충분합니다. 이것을 "PWM"(펄스 폭 변조)이라고합니다. 속도를 제어하기 위해 L293D 칩의 1 번 핀을 Raspberry Pi의 22 번 핀에 연결합니다.
- 모터의 회전 방향을 제어하려면 L293D 칩의 핀 2와 7을 사용해야합니다. 핀 2가 "높음"이고 핀 7이 "낮음"이면 모터가 한 방향으로 회전합니다. 이 두 핀 사이에서 두 로직 상태가 반대로 바뀌면 모터가 다른 방향으로 회전합니다. l293D 칩 2 핀을 Raspberry 핀 18에 연결하고 l293D 칩 7 핀을 Raspberry 16 핀에 연결합니다.
- 모터의 회전 방향을 제어하려면 L293D 칩의 핀 2와 7을 사용해야합니다. 핀 2가 "높음"이고 핀 7이 "낮음"이면 모터가 한 방향으로 회전합니다. 이 두 핀 사이에서 두 로직 상태가 반대로 바뀌면 모터가 다른 방향으로 회전합니다. l293D 칩 2 핀을 Raspberry 핀 18에 연결하고 l293D 칩 7 핀을 Raspberry 16 핀에 연결합니다.
Part 10 파이썬으로 DC 엔진 구동하기 (프로그래밍 부분)
- 이 작은 코드를 사용하면 엔진의 회전 방향과 속도를 제어 할 수 있습니다. 3 초 동안 고속으로 한 방향으로 먼저 회전합니다. 그런 다음 속도를 줄입니다. 그런 다음 회전 방향이 바뀌고 모터는 감속 된 다음 고속으로 작동합니다. 이제이 코드를 살펴 보겠습니다.
시간 가져 오기 절전 모드에서 GPIO.setmode (GPIO.BOARD) GPIO 가져 오기 RPi.GPIO
- 이제 GPIO 포트를 구성 할 수 있습니다.
Motor1A = 16 ## 첫 번째 모터의 출력 A, 핀 16 Motor1B = 18 ## 첫 번째 모터의 출력 B, 핀 18 Motor1E = 22 ## 첫 번째 모터 활성화, 핀 22 GPIO.setup (Motor1A, GPIO.OUT) ## 3 핀 출력 (OUT) GPIO.setup (Engine1B, GPIO.OUT) GPIO.setup (Engine1E, GPIO.OUT)
- 여기에서 PWM을 구성합니다.
pwm = GPIO.PWM (Motor1E, 50) ## 50Hz 주파수에서 PWM의 핀 22 pwm.start (100) ## 듀티 사이클 100 %로 커밋
- GPIO 포트의 상태가 활성화되어 있습니다.
"직접 회전, 듀티 사이클 100 %의 최대 속도"GPIO 출력 (Motor1A, GPIO.HIGH) GPIO 출력 (Motor1B, GPIO.LOW) GPIO 출력 (Motor1E, GPIO.HIGH)
- 이제 엔진을 3 초 동안 작동 시키십시오.
수면 (3)
- 듀티 사이클은 속도를 줄이기 위해 20 %로 변경됩니다.
pwm.ChangeDutyCycle (20)
"듀티 사이클이 20 % 인 직접 방향 회전"슬립 (3) "듀티 사이클이 20 % 인 역방향 회전"GPIO.output (Motor1A, GPIO.LOW) GPIO.output (Motor1B, GPIO.HIGH) 슬립 (3) pwm.ChangeDutyCycle (100) "역 회전, 최대 속도 (듀티 사이클 100 %)"슬립 (3) "엔진 정지"GPIO 출력 (Engine1E, GPIO.LOW) pwm.stop () ## PWM GPIO를 중지하십시오.
11 부 1 차 도전
이번에는 두 개의 엔진으로 작은 코드를 작성하십시오. 그것은 당신에게 달려 있습니다!
HC-SR04 초음파 센서 사용 (배선)
- 이 단계에 필요한 장비는 다음과 같습니다.
- 초음파 모듈 HC-SR04,
- 1kΩ의 저항
- 2kΩ의 저항
- 연결 케이블,
- Breadbord
- HC-SR04 초음파 센서는 40kHz에서 사운드 신호를 전송하여 2 ~ 400cm의 거리를 측정합니다. 초음파 신호의 수신과 방출을 분리하는 시간의 함수로서, 거리는 계산에 의해 발견된다.
- HC-SR04에는 4 개의 핀이 있습니다.
- 모듈을 접지 (0V)에 놓는 데 사용되는 핀 (Gnd)
- dultrason train의 배출 종료 및 장애물에 대한 반사 후의 복귀를 알리는 데 사용되는 출력 핀 (Echo)
- dultrason 트레인의 방출을 트리거하는 데 사용되는 입력 핀 (Trig for Trigger)
- 5 V에서 센서에 전원을 공급하는 데 사용되는 핀 (Vcc).
- 에코 핀이 제공하는 출력 전압은 5V이지만 Rapsberry Pi의 입력 핀 (GPIO)은 최대 3.3V를 위해 설계되었습니다.
- 따라서 우리는 Rapsberry Pi의 손상을 피하기 위해 센서의 출력 전압을 낮추기 위해 두 개의 저항으로 구성된 전압 분배기 브리지를 사용합니다.
- 바로 위에서 볼 수 있듯이 다음을 연결하십시오.
- 라즈베리 파이 5V의 "Vcc"소나무 (빨간색 실)
- 라즈베리의 핀 GPIO 23 (핀 16)의 "Trig"핀 (노란색 실)
- Raspberry의 핀 GPIO 24 (핀 18)의 "Echo"핀 (파란색 와이어)
- 라즈베리 GND (블랙 와이어)와 GND 소나무
- 두 개의 작은 저항을 잊지 마십시오!
- 센서는 이제 Raspberry Pi에 연결되었으며, 파이썬 프로그래밍을 위해 사용되었습니다!
HC-SR04 초음파 센서 (프로그래밍 부분) 사용
- 첫 번째 단계로 다른 라이브러리를 다음으로 가져와야합니다.
- GPIO 포트 관리
- 시계 관리
GPIO 가져 오기 시간 GPIO.setmode (GPIO.BCM)로 RPi.GPIO 가져 오기
- 그런 다음 사용할 다른 핀을 식별해야합니다. 이 경우, 출력 핀 "GPIO 23"(TRIG : 초음파 센서에 대한 트리거 신호) 및 입력 핀 "GPIO 24"(ECHO : 신호 백 획득).
트리거 = 23 에코 = 24
- 이제 GPIO 포트를 구성 할 수 있습니다.
GPIO.setup (TRIG, GPIO.OUT) GPIO.setup (ECHO, GPIO.IN)
- "Trig"핀이 처음에 낮도록하기 위해 핀을 "False"로 설정하고 센서가 재설정 될 수 있도록 대기 시간을 제공합니다.
GPIO.output (TRIG, False) "센서가 안정되기를 기다리는 중"time.sleep (2)
- 초음파 센서는 모듈을 활성화하기 위해 10 μs의 펄스가 필요합니다. 트리거를 만들려면 Trig 핀을 10μs 동안 강제로 높인 다음 낮음으로 재설정해야합니다.
GPIO 출력 (TRIG, True) time.sleep (0.00001) GPIO 출력 (TRIG, False)
- 핀의 상태 변경으로 인해 발생하는 다양한 이벤트를 타임 스탬프하기 위해 while 루프와 time.time () 함수를 사용합니다. 신호 상태 변화를 감지합니다. 첫 번째 단계는 상태가 낮은 상태에서 높은 상태로 변경되기 직전에 순간을 감지하고 타임 스탬프하는 것입니다. 이 순간 (pulse_start)은 센서에 의한 dultrason train 방출이 끝나는 순간입니다.
GPIO.input (ECHO) == 0 : pulse_start = time.time () 동안
- 초음파 트레인이 방출되면 Echo 핀은 장애물에 의해 반사 된 초음파가 돌아올 때까지 높게 유지됩니다. 그런 다음 에코 신호가 낮은 상태로 전환되는 것을 다시 감지하려고합니다. 이 타임 스탬프 (pulse_end)는 초음파의 복귀를 감지하는 것입니다.
GPIO.input (ECHO) == 1 : pulse_end = time.time () 동안
- 두 펄스 사이의 차이를 계산하여 임펄스 지속 시간 (pulse_duration)을 알 수 있습니다.
pulse_duration = 펄스 _ 끝-펄스 _ 시작
- 거리를 알기 위해 공식을 적용합니다.
거리 = pulse_duration * 17150
- 거리를 소수점 이하 두 자리로 반올림합니다.
거리 = 원형 (거리, 2)
- 거리를 "cm"로 표시하려면
"거리 :", 거리, "cm"
- GPIO 핀을 재설정하기 위해 다음을 추가합니다.
GPIO.cleanup ()
- 예를 들어 "sensor_distance"라는 이름으로 코드를 저장하고 명령 줄에서 시작하면됩니다.
sudo python remote_capteur.py
- 축하합니다! 초음파 센서로 모터를 제어하고 거리를 감지 할 수 있습니다!
12 부 2 차 챌린지
- 이 3 륜차가 있다면. 지금까지 배운 내용으로 이동하면서 "E"를 형성 할 수 있도록이 차량을 운전할 수 있어야합니다. 그는 초음파 센서를 사용하여 장애물을 만나면 멈출 수도 있습니다.
- 그것은 당신에게 달려 있습니다!