Raspberry Pi와 Arduino는 애플리케이션 및 구조 측면에서 서로 다른 두 가지 하드웨어이지만 둘 다 경쟁하는 두 개의 오픈 소스 하드웨어 플랫폼으로 간주됩니다. 둘 다 매우 강력한 커뮤니티와 지원을 받고 있습니다. 오늘 우리는 상황을 약간 바꾸고 두 가지를 모두 활용할 수있는 방법을 보여줄 것입니다. Arduino 및 Raspberry pi 보드가 모두있는 경우이 기사에서는 Raspberry pi 및 Python을 사용하여 Arduino를 제어하는 방법을 보여줍니다.
우리는 사용 PyFirmata 펌웨어 를주고 명령 아두 이노에 사용 라즈베리 파이 파이썬 스크립트를. PyFirmata는 기본적으로 모든 컴퓨터의 Python 스크립트와 Arduino 간의 직렬 통신을 허용하기 위해 Arduino에 설치할 수있는 Python 프로그램의 사전 빌드 된 라이브러리 패키지입니다. 이 파이썬 패키지는 Arduino의 핀을 읽고 쓸 수있는 액세스 권한을 부여 할 수 있습니다. 그래서 여기에서는 Raspberry pi를 사용하여 Arduino에서 Python 프로그램을 실행합니다.
따라서이 튜토리얼에서는이 라이브러리를 활용하고 Arduino 보드 에서이 라이브러리를 사용 하여 Raspberry Pi를 사용하여 Arduino를 제어 합니다.
요구 사항
- Raspbian OS가 설치된 Raspberry Pi
- Arduino Uno 또는 기타 Arduino 보드
- Arduino USB 케이블
- LED
이 튜토리얼에서는 HDMI 케이블을 사용하여 외부 모니터를 사용하여 Raspberry Pi에 연결합니다. 모니터가없는 경우 SSH 클라이언트 (Putty) 또는 VNC 서버를 사용하여 랩톱 또는 컴퓨터를 사용하여 Raspberry pi에 연결할 수 있습니다. 어려움이있는 경우 Raspberry Pi 가이드 시작하기를 따르십시오.
Raspberry Pi를 사용하여 Arduino에 PyFirmata 설치
Arduino에 PyFirmata 펌웨어를 업로드하려면 Raspberry Pi에 Arduino IDE를 설치 해야 합니다. 설치하려면 다음 단계를 따르십시오.
1 단계: -Raspberry Pi를 인터넷에 연결합니다. 명령 터미널을 열고 다음 명령을 입력하고 Enter 키를 누르십시오.
sudo apt - get - y install arduino python - serial mercurial
몇 분 동안 기다리십시오. 시간이 걸립니다. 이 명령은 Raspberry Pi에 Arduino IDE를 설치합니다.
2 단계: 이제 주어진 github를 사용하여 pyFirmata 파일을 설치합니다.
git clone https://github.com/tino/pyFirmata
그런 다음 다음 명령을 실행하십시오.
cd pyFirmata sudo python setup.py 설치
3 단계: 필요한 모든 파일과 설정을 설치했습니다.
이제 USB 케이블을 사용하여 Arduino 보드를 Raspberry Pi와 연결하고 터미널 창에 arduino 를 입력하여 Arduino IDE를 시작 합니다.
4 단계:- 그런 다음 lsusb 명령을 입력 하여 Arduino가 라즈베리 파이와 연결되어 있는지 확인하십시오.
Arduino IDE에서 도구로 이동하여 보드와 직렬 포트를 선택하십시오.
5 단계: -File- > Examples-> Firmata-> Standard Firmata 를 클릭 하여 Arduino에 PyFirmata 펌웨어를 업로드 한 다음 업로드 버튼을 클릭합니다. 아래 그림과 같이.
Arduino 보드에 pyFirmata 펌웨어를 성공적으로 설치했습니다. 이제 Raspberry Pi를 사용하여 Arduino를 제어 할 수 있습니다.
데모를 위해 Raspberry Pi에서 Python 코드를 작성하여 Arduino의 LED를 깜박이고 희미하게합니다.
코드 설명
코딩 부분의 경우 더 나은 이해를 위해 pyFirmata 문서를 읽어야합니다. pyFirmata 함수를 사용하여 코드를 작성합니다. 링크를 따라 가면 pyFirmata 문서를 찾을 수 있습니다.
이제 코드 작성을 시작하겠습니다.
Raspberry Pi에서 좋아하는 텍스트 편집기를 열고 pyFirmata 라이브러리를 가져옵니다.
pyfirmata 가져 오기
Arduino에 핀을 정의하여 LED를 연결하십시오.
led_pin = 9
이제 pyfirmata.Arduino () 함수를 사용하여 Arduino 보드가 연결된 직렬 포트 이름 을 작성한 다음 보드 변수에 포트를 할당하여 인스턴스를 만들어야 합니다.
board = pyfirmata.Arduino ("/ dev / ttyACM0") print "코드가 실행 중입니다."
에서는 동안 루프 핀하여 높고 낮은 주도 만든다 board.digital.write () 함수를 사용하고 공평한 지연 board.pass_time () 함수.
while True: board.digital.write (0) board.pass_time (1) board.digital.write (1) board.pass_time (1)
코드가 준비 되었습니다. 파일 이름 에 .py 확장자를 넣어이 코드를 저장합니다.
명령 터미널을 열고 python blink.py 를 입력 하여 Arduino 보드에서 코드를 실행하십시오. Arduino 보드가 USB 케이블을 사용하여 Raspberry Pi 보드와 연결되어 있는지 확인하십시오.
이제 Arduino 보드에서 깜박이는 LED 를 볼 수 있습니다.
pyFirmata를 사용하여 깜박이는 LED에 대한 완전한 코드 가 끝에 제공됩니다.
pyFirmata를 사용하여 Arduino에서 LED 페이딩
이제 pyFirmata 함수에 더 익숙해 지도록 LED를 페이딩하는 코드를 작성하겠습니다. 이 코드는 이전 코드처럼 쉽습니다. 두 개의 for 루프 를 사용해야합니다. 하나는 밝기를 높이고 다른 하나는 밝기를 줄입니다.
이 코드에서는 led = board.get_pin ('d: 9: p') 와 같이 핀을 다른 방식으로 정의했습니다 . 여기서 d 는 디지털 핀을 의미 합니다. 이것은 pyFirmata 라이브러리의 기능입니다. 자세한 내용은 설명서를 읽어보십시오.
pyFirmata를 사용하는 페이딩 LED에 대한 완전한 코드 가 끝에 제공됩니다.
이제 시스템에 더 많은 센서를 추가하고 더 멋지게 만들고, 다른 Arduino 프로젝트를 확인하고 Raspberry pi 및 python 스크립트를 사용하여 빌드 해 볼 수 있습니다.