- 필요한 재료 :
- 컴퓨터에 Python 설치 :
- Python에서 PySerial 가져 오기 :
- 첫 번째 Arduino Python 프로그램 :
- Python 및 Arduino로 LED 제어 :
Arduino 는 오픈 소스 하드웨어 개발과 관련하여 항상 강력하고 사용하기 쉬운 학습 / 개발 플랫폼이었습니다. 오늘날의 현대 세계에서 모든 하드웨어는보다 효과적이고 사용자 친화적 인 고급 범용 프로그래밍 언어로 구동됩니다. 그러한 언어 중 하나가 Python 입니다. Python은 동적 유형 지정 및 동적 바인딩과 결합 된 높은 수준의 내장 데이터 구조를 사용하는 동적 의미 체계를 갖춘 해석 된 객체 지향의 고급 프로그래밍 언어로 신속한 애플리케이션 개발에 매우 매력적입니다.
Arduino와 Python의 힘을 결합하면 Python 은 openCV, Matlab 등과 같은 다른 플랫폼과 상호 작용할 수있는 능력으로 생산성이 향상되기 때문에 많은 가능성의 문을 열 것입니다. 따라서이 자습서에서는 컴퓨터에 Python을 설치하는 방법 을 배웁니다. 그리고 Arduino의 온보드 LED를 토글하기 위해 Arduino와 함께 사용하는 방법.
자, 시작합시다….
필요한 재료:
- Arduino Uno (또는 모든 Arduino 보드)
- 인터넷에 연결된 컴퓨터
컴퓨터에 Python 설치:
이 튜토리얼의 첫 번째 단계는 컴퓨터에 Python을 설치하는 것입니다. 아래에 언급 된 단계는 32 비트 또는 64 비트 OS를 실행하는 Windows 사용자에게만 적용됩니다. MAC과 Linux의 설치 절차는 다릅니다.
- 32 비트 Python-2.7.9를 클릭하면 컴퓨터에 32 비트 Python IDLE이 설치됩니다. 64 비트 버전 또는 업데이트 된 버전은 Arduino 라이브러리를 지원하지 않으므로 다운로드하지 마십시오. 컴퓨터가 64 비트에서 작동하더라도 32 비트 Python 자체를 사용할 수 있습니다.
- 다운로드 한 exe 파일을 열고 지침을 따릅니다. 파이썬이 설치되는 디렉토리를 변경하지 마십시오. 기본적으로 C: \ Python27이며 그대로 둡니다.
- 설치가 진행되는 동안 바이러스 백신 (있는 경우)에서 경고를받을 수 있습니다.이 경우 허용을 클릭합니다.
그게 다야!, 파이썬이 우리 컴퓨터에 성공적으로 설치되었습니다. 다음과 같은 방법으로 그것을 확인할 수 있습니다 윈도우에서 "파이썬 IDLE"검색 검색 상자를 열기.
열면 다음 화면이 표시됩니다. 이 창을 Python Shell이라고하며 지금부터 " Python shell "이라고합니다.
이 화면을 Python Shell이라고합니다. 직접 코드를 여기에 같은 화면에 출력을 얻을하거나 새 파일을 만들 수있는 프로그램을 작성 가 여기에 프로그램을 확인합니다. 나중에 파이썬 프로그램을 만드는 방법에 대해 자세히 살펴 보겠습니다. 지금은 파이썬이 작동하는지 확인하겠습니다.
이렇게하려면 " print (1 + 1) "을 입력하고 Enter 키를 누르기 만하면 됩니다. 아래와 같이 인쇄되는 결과를 볼 수 있습니다.
Python에서 PySerial 가져 오기:
다음 단계는 pyserial을 설치하는 것입니다. PySerial은 Arduino 또는 기타 마이크로 컨트롤러에 직렬 데이터를 읽고 쓰는 데 사용되는 Python API 모듈 입니다.
PySerial을 다운로드하려면 Pyserial Windows를 클릭하십시오. 결과 다운로드는 직접 설치할 수있는 exe 파일입니다. 설치 중에는 설정을 변경하지 마십시오. 기본 디렉토리 및 기본 설정을 그대로 둡니다.
이제 PySerial이 제대로 설치되었는지 확인하겠습니다. 이렇게하려면 Python Shell을 다시 열고 다음을 입력합니다.
수입 시리얼 . 라이브러리가 성공적으로 설치된 경우 아래 그림과 같은 오류 메시지가 표시되지 않아야합니다. 오류가 발생하면 댓글 섹션에 게시 해 주시면 해결해 드리겠습니다.
이 튜토리얼은 여러분이 Arduino에 익숙하고 Arduino에 프로젝트를 업로드 한 경험이 있다고 가정합니다. 이제 Python 프로그램으로 바로 이동하겠습니다. Arduino를 처음 사용하는 경우 Arduino 프로젝트를 확인하고 Arduino로 LED 깜박임부터 시작하십시오.
첫 번째 Arduino Python 프로그램:
앞서 말했듯이 Python 스크립트를 사용하여 내장 Arduino 보드 LED를 제어합니다. Arduino 코드부터 시작하겠습니다.
Arduino 용 프로그램:
이 Arduino python 튜토리얼 의 전체 프로그램 은이 페이지의 끝에 제공됩니다. 어떻게 작동하는지 자세히 알아보십시오.
설정 기능 내에서 직렬 통신을 9600 전송 속도로 초기화하고 내장 된 LED를 출력으로 사용하고 프로그램 시작 중에 낮게 설정할 것임을 선언합니다. 또한 아래와 같이 직렬 인쇄를 통해 Python에 환영 메시지를 보냈습니다.
void setup () {Serial.begin (9600); // 9600 전송 속도로 직렬 COM 초기화 pinMode (LED_BUILTIN, OUTPUT); // LED 핀 (13)을 출력으로 만듭니다. digitalWrite (LED_BUILTIN, LOW); Serial.println ("안녕하세요! 저는 아두 이노입니다"); }
루프 함수 내 에서 직렬로 들어오는 데이터를 읽고 변수 "data"에 값을 할당합니다 . 이제이 변수 ("데이터")의 값에 따라 아래와 같이 내장 LED를 토글합니다.
void loop () {while (Serial.available ()) {data = Serial.read (); } if (data == '1') digitalWrite (LED_BUILTIN, HIGH); 그렇지 않으면 (데이터 == '0') digitalWrite (LED_BUILTIN, LOW); }
Python 용 프로그램:
이 튜토리얼을위한 완전한 파이썬 프로그램은이 페이지의 끝에 제공됩니다. 같은 것을 작성하고 사용하는 방법을 알아 보려면 더 읽으십시오.
- Python 셸 (Python IDLE)을 열고 파일-> 새로 만들기를 클릭합니다.
- 프로그램에 입력 할 수있는 새 텍스트 파일이 열립니다.
- 입력하기 전에 Ctrl + S로 파일을 저장할 수 있습니다. 이름을 입력하고 저장을 클릭하십시오. 그러면 자동으로 ".py"확장자로 파일이 저장됩니다.
- 이제 프로그램을 입력하거나이 페이지 끝에 주어진 파이썬 코드를 붙여 넣으십시오. 이에 대한 설명은 아래에 나와 있으며 마지막으로 프로그램을 실행합니다.
프로그램에서 첫 번째 단계는 직렬 및 시간 라이브러리 를 가져 오는 것 입니다. 앞에서 말한 직렬 라이브러리는 직렬 데이터를 읽고 쓰는 데 사용되며 시간 라이브러리는 프로그램에서 지연을 만드는 데 사용됩니다. 이 두 라이브러리는 다음 두 줄을 사용하여 프로그램에서 가져올 수 있습니다.
import serial # 직렬 통신을 위해 가져온 Serial import time # 지연 기능 사용에 필요
다음 단계는 직렬 라이브러리를 사용하여 직렬 객체 를 초기화하는 것 입니다. 이 프로그램에서 우리는 직렬 객체의 이름을 “ArduinoSerial”로 지정했습니다 . 이 줄에서 우리는 Arduino가 연결된 COM 포트의 이름과 아래와 같이 작동하는 전송 속도를 언급해야합니다.
ArduinoSerial = serial.Serial ('com18', 9600)
참고: 올바른 COM 포트 이름을 언급하는 것은 매우 중요합니다. 컴퓨터의 장치 관리자를 사용하여 찾을 수 있습니다.
직렬 개체가 초기화 되 자마자 직렬 통신이 설정되도록 2 초 동안 프로그램을 유지 해야합니다. 이것은 아래 줄을 사용하여 수행 할 수 있습니다.
time.sleep (2)
이제 우리는 Arduino 보드에서 무엇이든 읽고 쓸 수 있습니다.
다음 줄은 Arduino에서 오는 모든 것을 읽고 쉘 창에 인쇄합니다.
ArduinoSerial.readline () 인쇄
값을 변수에 할당하고 계산에 사용할 수도 있습니다.
다음 줄은 Arduino Board에 매개 변수 값을 기록합니다.
ArduinoSerial.write ('1')
이 줄은 Arduino에 '1'을 씁니다. 같은 줄을 사용하여 십진수에서 문자열로 무엇이든 보낼 수 있습니다.
이제 프로그램으로 돌아가서 무한 while 루프 안에 다음과 같은 줄이 있습니다.
var = raw_input () # 사용자로부터 입력 받기 print "you enter", var # 확인을 위해 입력을 인쇄 if (var == '1'): # 값이 1 인 경우 ArduinoSerial.write ('1') #send 1 print ("LED 켜짐") time.sleep (1) if (var == '0'): # 값이 0이면 ArduinoSerial.write ('0') # 0 인쇄 ("LED 꺼짐") 시간 보내기.sleep (1)
var = raw_input 행 은 Shell 스크립트에 입력 된 값을 가져와 변수 var에 할당합니다.
나중에 값이 1이면 Arduino에 직렬로 '1'을 인쇄하고 0이면 Arduino에 직렬로 '0'을 인쇄합니다. Arduino 프로그램의 코드 (위에서 논의 됨)는 수신 된 값에 따라 LED를 토글합니다.
완전한 프로그램이 완료되면 스크립트는 다음과 같이 보일 것입니다.
이제 실행-> 모듈 실행을 클릭 하거나 F5 키를 누르면 프로그램을 저장하라는 메시지가 표시되고 실행됩니다.
Python 및 Arduino로 LED 제어:
이 프로젝트의 작업은 매우 간단합니다. 프로그램을 Arduino에 업로드하고 Python 프로그램에서 언급 한 것과 동일한 COM 포트에 연결되어 있는지 확인합니다. 그런 다음 위에서 언급 한대로 Python 프로그램을 시작합니다.
그러면 아래와 같이 파이썬 쉘 스크립트가 시작됩니다. 왼쪽 창은 출력을 보여주는 셸 창이고 오른쪽 창은 프로그램을 보여주는 스크립트입니다.
아두 이노 프로그램에 입력 된 “안녕하세요! 아두 이노입니다” 라는 문자열이 보시다시피 파이썬이 받아 쉘 창에 표시됩니다.
쉘 창에서 값 입력을 요청하면 0 또는 1을 입력 할 수 있습니다. 1을 보내면 Arduino 보드의 LED가 켜지고 0을 보내면 Arduino 보드의 LED가 꺼집니다. Arduino 프로그램과 Python 간의 성공적인 연결을 보여줍니다.
아래 에는 두 개의 프로그램 이 있는데 하나는 Arduino에서 업로드하여 실행하고 두 번째는 Windows의 Python Shell에서 실행하는 것입니다.
프로젝트를 이해하고 제대로 작동하기를 바랍니다. 그렇지 않은 경우 아래 댓글에 문제를 게시하면 기꺼이 도와 드리겠습니다. 다음 프로젝트에서 우리는 Vpython, gamepython 등과 같은 다른 파이썬 모듈을 깊이 탐구함으로써 파이썬과 Arduino로 무엇을 멋지게 할 수 있는지 배울 것입니다. 그때까지 계속 지켜봐주십시오….