이전 튜토리얼에서 우리는 Windows 시스템에 Python을 설치하는 방법과 간단한 LED 제어 프로젝트를 사용하여 Arduino와 Python을 인터페이스하는 방법을 배웠습니다. 당신이 처음이라면,이 튜토리얼은 같은 내용의 연속이므로 이전 튜토리얼로 돌아가는 것이 좋습니다.
직렬 포트를 통해 통신하기 만하면 아두 이노와 함께 파이썬이 필요한 이유를 이미 궁금해 하셨을 것입니다. 그러나 Python은 기계 학습, 컴퓨터 비전 등을 통합 할 수있는 많은 멋진 응용 프로그램이있는 매우 강력한 개발 플랫폼입니다. 이 튜토리얼에서는 Python을 사용하여 작은 그래픽 인터페이스를 만드는 방법 을 배웁니다. 이를 위해서는 Vpython 이라는 모듈이 필요합니다. 다음 자습서는 Mac 또는 Linux 사용자의 경우 절차가 다르므로 Windows 사용자에게만 적용됩니다.
이 튜토리얼의 끝에서 우리는 Python을 사용하여 간단한 GUI를 만드는 방법을 배웁니다. 아두 이노에 부착 된 초음파 센서의 값에 반응하는 작은 애니메이션을 만들겠습니다. 이 응용 프로그램 은 초음파 센서를 사용하여 물체를 추적하고 VPython을 사용하여 컴퓨터에 그래픽 형식으로 표시합니다. 물체를 움직일 때 초음파 센서는 거리를 감지하고이 정보를 Arduino를 사용하여 Python 프로그램으로 전송하고 컴퓨터에서도 물체를 움직입니다. 흥미 롭군요! 그럼 시작하겠습니다…
전제 조건:
- Arduino (모든 버전)
- 초음파 센서 HC-SR04
- 전선 연결
- Python을 사용하는 컴퓨터
- 이전 튜토리얼에 대한 지식
컴퓨터에 VPython 설치:
이전 튜토리얼에서 우리는 이미 컴퓨터에 파이썬을 설치하는 방법과 그 주위를 이동하고 Arduino로 간단한 프로그램을 만드는 방법을 배웠습니다. 이제 여기에 Visual Python (VPython) 을 설치 하여 Arduino 용 Python을 사용하여 멋진 그래픽을 만들 수 있습니다. VPython을 시작하기위한 아래의 간단한 단계
1 단계. 이전 튜토리얼 지침에 따라 Python이 이미 설치되어 있는지 확인하십시오.
2 단계. VPython을 클릭하여 Visual Python 용 exe 파일을 다운로드합니다. 컴퓨터가 64 비트에서 실행되는 경우에도 64 비트 버전을 설치하도록 선택하지 마십시오. 주어진 링크를 따르십시오.
3 단계. exe 파일을 실행하고 설정을 따릅니다. 기본 디렉토리 경로를 변경하지 말고 "전체 설치"를 선택했는지 확인하십시오.
4 단계. 설치가 완료되면 아래와 같이 데스크탑 또는 애플리케이션 패널에서“VIDLE (VPython)”이라는 새 애플리케이션을 찾을 수 있습니다.
5 단계. 응용 프로그램을 실행하면 아래와 같은 창이 나타납니다.
6 단계. 이것은 VPython 용 프로그램에서 입력 할 창입니다. 그러나 지금 은 예제 프로그램 을 열어서 Vpython이 작동하는지 확인해 보겠습니다. 이렇게하려면 파일-> 열기-> 바운스를 선택합니다.
7 단계. 예제 프로그램을 열어야합니다. Run-> Run Module을 사용하여 프로그램을 시작해보십시오. 모든 것이 예상대로 작동하면 다음 화면이 표시됩니다.
성공적인 컴파일을 나타내는 >>> 두 개와 공이 튀는 것을 보여주는 실제 창 (앞)이있는 셸 창 (왼쪽)이 표시 됩니다.
8 단계. VPython의 성능을 알아보기 위해 다른 예제 프로그램을 시도 할 수도 있습니다. 예를 들어 "electric-motor" 라는 예제 프로그램 은 다음 화면을 통해 놀라게 할 것입니다.
9 단계. 즉, VPython을 사용할 준비가되었으며 " Programming your Vpython "주제로 넘어갈 수 있습니다.
10 단계. 그렇지 않으면 "넘치는 오류" 가 발생 하는 많은 사람 중 한 명이라면 다음 단계에서 해당 문제를 해결하기 위해 희망을 잃지 마십시오.
11 단계. 열기 내 컴퓨터 -> C 드라이브 -> 파이썬 (27) -> 스크립트 -> local.bat . 그러면 아래와 같이 명령 프롬프트가 시작됩니다.
12 단계. 이제 "pip install --upgrade numpy" 를 입력하고 Enter 키를 누릅니다. Numpy의 새 버전이 컴퓨터에 설치되어야합니다. 인터넷 연결이 느린 경우 잠시 기다려야 할 수 있습니다.
13 단계. 완료되면 4 단계로 돌아가 예제 프로그램을 시도하면 작동 할 수 있습니다.
VPython 프로그래밍:
다음으로 VPython 창으로 프로그래밍을 시작합니다. 이 프로그램에서 우리 는 두 개의 3D 직사각형 물체를 생성 할 것입니다. 하나는 고정 초음파 센서에 대한 화면 참조를 화면 중앙에 배치하고 다른 하나는 미국 센서와 물체 (종이) 사이의 거리에 따라 동적 위치에 배치합니다.
전체 파이썬 코드는 이 페이지의 끝에서 찾을 수 있습니다. 더 아래로,이 파이썬 코드를 작은 의미있는 쓰레기로 나누어 설명했습니다.
첫 번째 줄은 3D 개체를 만들 수 있도록 시각적 라이브러리 를 가져 오는 것 입니다. 아래 줄은 동일합니다.
시각적 가져 오기에서 *
이전 튜토리얼에서 이미 사용 했으므로 다음 네 줄에 대해 잘 알고 있어야합니다. 직렬 및 시간 라이브러리 를 가져오고 전송 속도로 9600을 사용하여 COM18에서 Arduino와 직렬 연결을 설정하는 데 사용됩니다.
import serial # 직렬 통신을 위해 가져온 직렬 가져 오기 시간 # 지연 기능 사용에 필요 ArduinoSerial = serial.Serial ('com18', 9600) # arduinoSerialData라는 직렬 포트 개체 생성 time.sleep (2) # 통신을 위해 2 초 동안 대기 확립되다
이제 개체를 만들 차례입니다. obj 및 wall이라는 두 개의 3d 직사각형 을 만들었습니다. wallL가 화면의 중앙에 배치 된 시안 색의 고정 벽하고는 OBJ 백색의 가동 목적이다. 또한 벽 물체 근처에 "US 센서"라는 텍스트를 배치했습니다.
obj = box (pos = (-5,0,0), size = (0.1,4,4), color = color.white) wallL = box (pos = (-1,0,0), size = (0.2, 12,12), color = color.cyan) text (text = 'US sensor', axis = (0,1,0), pos = (-2, -6,0), depth = -0.3, color = color.cyan)
나는 위의 세 줄이 대부분의 처음 독자에게 그리스어와 라틴어로 나타 났을 것이라고 확신하지만 시간이 지나면 그것을 이해할 수있을 것입니다. 괄호 안에 언급 된 모든 것은 (x, y, z) 좌표입니다. 그리고 이러한 좌표는 아래에 표시된 것처럼 고등학교 기하학 수업에서 찾은 좌표와 매우 유사합니다.
이제 그래픽과 직렬 포트가 준비되었습니다 . 데이터를 읽고 Arduino에서 오는 데이터에 따라 "obj" (흰색 직사각형)를 위치 에 배치 하기 만하면됩니다. 이것은 다음 행으로 수행 할 수 있습니다. 여기서 obj.pos.x 는 객체의 X 좌표 위치 (흰색 직사각형)를 제어합니다.
t = int (ArduinoSerial.readline ()) # 직렬 데이터를 읽고 라인으로 인쇄합니다 t = t * 0.05 obj.pos.x = t
Arduino 준비:
Python 스크립트는 COM 포트의 값을 수신하고 그에 따라 그래픽을 애니메이션 할 준비가되어 있지만 Arduino는 아직 준비되지 않았습니다. 먼저 다음 회로도에 따라 초음파 센서를 Arduino에 연결해야합니다. 미국 센서 및 Arduino를 완전히 처음 사용하는 경우 Arduino 및 초음파 센서 기반 거리 측정 자습서로 돌아 가야합니다.
그런 다음 이 페이지 끝에 제공된 Arduino 프로그램을 업로드 하십시오. 프로그램은 주석 줄을 사용하여 자체 설명됩니다. 우리는 초음파 센서가 펄스가 물체를 치고 돌아 오는 데 걸리는 시간을 계산하여 작동한다는 것을 알고 있습니다. 이 값은 Arduino 의 PulseIn 기능 을 사용하여 계산됩니다. 나중에 소요 된 시간은 아래 선을 사용하여 거리로 변환됩니다.
dist = (소요 시간 / 2) / 2.91;
여기서 거리는 밀리미터 (mm)로 계산됩니다.
일:
프로젝트 작업은 간단합니다. Python 프로그램을 시작하고 아래와 같이 US 센서 앞에 개체를 배치합니다.
이제 파이썬 프로그램을 시작하면 흰색 사각형이 종이와 함께 움직이는 것을 볼 수있을 것입니다. 종이와 센서 사이 의 거리 도 아래 이미지와 같이 쉘 창에 표시됩니다.
이것이 우리 가 Arduino와 함께 초음파 센서와 Python을 사용하여 물체의 움직임을 추적하는 방법 입니다.
프로젝트를 이해하고 재미있게 만들었기를 바랍니다. 이것은 파이썬을 향한 미묘한 단계 일 뿐이지 만 이것을 사용하여 훨씬 더 창의적인 것을 만들 수 있습니다. 이 게시물을 통해 무엇을 구축해야할지 알고 있다면 댓글 섹션에 게시하고 기술 지원을 위해 포럼을 사용하십시오. 또 다른 흥미로운 파이썬 프로젝트로 뵙겠습니다.