Python으로 Arduino를 프로그래밍하고 제어하는 ​​방법

Python으로 Arduino를 프로그래밍하고 제어하는 ​​방법

Python은 코딩 세계를 폭풍으로 몰아넣었습니다. 이 새로운 언어의 등장과 함께 DIY 전자 제품 분야도 번창했습니다. 다음과 같은 회사의 개발 보드 및 단일 보드 컴퓨터 아두이노 그리고 Raspberry Pi는 사람들이 집에서 양조한 전자 제품을 만드는 방식을 변화시켰습니다. Python으로 Arduino를 프로그래밍할 수 있다면 대단하지 않을까요?





새로운 이모티콘 안드로이드를 얻는 방법

두 가지 멋진 것을 결합하는 것보다 더 좋은 느낌은 없습니다. 슬프게도 보드에는 언어의 온보드 해석 옵션이 없기 때문에 Python으로 Arduino를 직접 프로그래밍하는 것은 불가능합니다. 그러나 가능한 것은 Python 프로그램을 사용하여 USB를 직접 제어하는 ​​것입니다.





이 기사에서는 Python 프로그램을 사용하여 명령줄에서 프로그래밍하고 제어할 Arduino UNO(모든 Arduino 호환 보드가 여기에서 작동할 수 있음)를 설정하는 방법을 보여줍니다. 이 튜토리얼은 Windows 10용으로 작성되었지만 Mac 및 Linux에서도 작동합니다. 이 워크플로를 사용하여 궁극적인 더블 다운 DIY 경험을 위해 Raspberry Pi에서 직접 Arduino를 제어할 수도 있습니다.





Python용 Arduino 설정

오늘의 프로젝트에서는 Python용 pyFirmata 인터페이스와 함께 Arduino Uno를 사용할 것입니다. 이를 위해 거의 모든 Arduino 호환 보드를 사용할 수 있지만 Arduino Uno, Mega, Due 및 Nano만 pyFfirmata 인터페이스에서 지원됩니다. 이미 Python 전문가라면 pyFirmata에 보드 지원을 추가할 수 있습니다. 그렇게 하면 GitHub를 업데이트해야 합니다!

아직 설치하지 않았다면 Arduino IDE를 설치하십시오. 마이크로컨트롤러의 세계를 처음 접하는 경우 당사의 Arduino 초보자 가이드 모든 것을 제자리에 두는 데 도움이 될 것입니다.



Arduino 보드를 연결하고 IDE를 엽니다. 올바른 보드와 포트를 선택했는지 확인하십시오. 도구 메뉴. 로드 업 StandardFirmata 예제 스케치를 게시판에 업로드합니다. 이렇게 하면 USB를 통해 컴퓨터에 연결되어 있는 한 Arduino를 직접 제어할 수 있습니다. 스케치가 오류 없이 보드에 업로드되면 계속 진행할 수 있습니다.

Python 및 명령줄 제어

설치할 모듈이 최신 호환 버전으로 지정하므로 Python 3.4를 사용하여 Arduino를 제어합니다. 이 이전의 모든 버전은 제대로 작동해야 하며 이후 버전은 작동하는 것으로 보고되었습니다. 다음에서 Windows 10용 Python 3.4를 다운로드할 수 있습니다. 파이썬 소프트웨어 재단 대지. 여러 버전의 Python을 실행하려는 경우 Python 가상 환경에 대한 가이드가 도움이 될 것입니다.





Python을 설치했으면 시스템의 PATH 변수에 추가하려고 합니다. 이렇게 하면 설치된 디렉토리에 있을 필요 없이 명령줄에서 직접 Python 코드를 실행할 수 있습니다. 제어판 , 검색 환경 그리고 클릭 시스템 환경 변수 편집 . 창 하단에서 선택 환경 변수 . 그러면 다음 창이 나타납니다.

이미 본 경우 목록에서 편집을 클릭하고 파이썬 그리고 파이썬/스크립트 예배 규칙서. PATH 변수가 없으면 새로 만들기를 클릭하고 추가합니다. Python은 씨: 여기. 다른 곳에 설치했다면 이를 반영하도록 수정해야 합니다. 확인을 클릭하여 창 아래로 돌아가면 Python으로 Arduino를 제어할 준비가 거의 완료된 것입니다!





매직 그리스

Python이 Arduino와 원활하게 대화하려면 퍼즐의 마지막 조각이 하나 필요합니다. 이것은 Python 인터페이스의 형태로 제공됩니다. pyFirmata . Tino de Bruijn이 만든 이 인터페이스는 다운로드 가능 github에서 제공하지만 다음을 입력하여 명령줄에서 바로 설치할 수 있습니다.

pip install pyfirmata

모든 것이 잘되면 다음과 같이 설치되고 보일 것입니다.

실패하면 Python을 추가하십시오. 환경 변수 섹션을 열고 Python 디렉토리에 대한 올바른 경로를 지정했는지 확인하십시오.

실현

이제 모든 것이 설정되었으며 Arduino가 테스트할 Python 프로그램을 만들 수 있습니다. 원하는 IDE를 엽니다. 우리는 사용할 것입니다 오늘날에는 모든 텍스트 편집기나 클라우드의 IDE를 쉽게 사용할 수 있습니다.

새 스크립트를 만들고 다른 이름으로 저장합니다. 깜박임.py . 표준 깜박이는 LED 프로그램으로 전통을 깨고 사용자에게 LED를 실행하기 전에 깜박이는 횟수를 묻는 프로그램을 만들 것입니다. 할 수 있는 짧은 프로그램입니다. 여기에서 다운로드 바로 이해하고 싶지만 분해해 보겠습니다.

첫째, 당신은 당신이 필요로하는 것을 가져오고 싶을 것입니다 pyFirmata 표준 Python과 함께 모듈 시간 기준 치수.

캘린더 일정을 지우는 방법 아이폰
from pyfirmata import Arduino, util
import time

이제 Arduino 보드를 설정하려고 합니다. 이 문서에서는 다음을 사용하고 있다고 가정합니다. 아두이노 우노 여러 다른 Arduino 보드가 지원되지만. 보드 지원에 대한 자세한 내용은 pyFirmata github를 참조하십시오.

Arduino IDE에서 사용 중인 COM 포트를 확인하고 코드에 변수로 입력합니다. 판자 .

board = Arduino('COM3')

이제 사용자 프롬프트를 설정합니다. 파이썬에 익숙한 사람들은 여기에서 모든 것을 알아볼 것입니다. 다음을 사용하여 화면에 질문을 인쇄합니다. 입력 함수를 만들고 답을 변수로 저장합니다. 사용자가 번호를 제공하면 프로그램은 LED가 깜박이는 횟수를 보고합니다.

loopTimes = input('How many times would you like the LED to blink: ')
print('Blinking ' + loopTimes + ' times.')

LED가 적절한 횟수만큼 깜박이게 하려면 for 루프 . 당신이있는 경우 파이썬을 처음 접하다 , 다른 언어와 달리 공백은 구문의 일부이므로 들여쓰기에 주의하십시오. 핀 13은 Arduino Uno의 온보드 LED이므로 보드가 다른 경우 이를 수정해야 합니다.

for x in range(int(loopTimes)):
board.digital[13].write(1)
time.sleep(0.2)
board.digital[13].write(0)
time.sleep(0.2)

당신은 캐스팅 루프타임 사용자의 입력이 자동으로 문자열로 저장되므로 여기에서 변수를 정수로 변경합니다. 이 간단한 데모에서는 사용자가 숫자 값을 입력한다고 가정합니다. '8'과 같은 다른 항목은 오류를 발생시킵니다.

스크립트를 저장하고 명령 프롬프트 .

깜박이는 표시등 및 기타 계시

모든 준비가 완료되었으며 스크립트가 있는 곳으로 이동하여 실행하기만 하면 됩니다. 다음을 입력하여 수행하십시오. cd [스크립트 디렉토리 경로] 그런 다음 입력 파이썬 깜박임.py .

모든 것이 잘되면 프로그램은 Arduino가 초기화될 때 약간의 지연으로 시작하고 숫자를 묻는 메시지를 표시한 다음 온보드 LED를 사용하여 여러 번 깜박입니다.

프로그램 출력은 다음과 같아야 합니다.

선택한 깜박임 횟수 후에 Enter 키를 누르는 즉시 Arduino가 명령을 수행해야 합니다.

작은 시작

이 프로젝트는 파이썬과 아두이노 보드 간의 통신을 시작하는 베어본이었습니다. 이 접근 방식은 Arduino 자체에 스크립트를 업로드하는 일반적인 워크플로와 매우 다르지만 특히 Python 프로그래밍 언어를 좋아하는 경우 플랫폼과 작업하는 완전히 새로운 방법을 엽니다.

사용하는 경우 리눅스 서버 집에서 Arduino 보드와 통신하는 이 방법은 해당 서버를 완전한 DIY 홈 자동화 시스템으로 확장할 수 있습니다. 마이크로컨트롤러를 제어하는 ​​Python 스크립트를 DIY 자동화 회로와 결합하여 NAS 스토리지 박스는 완전히 새로운 유용한 기능 세트를 사용할 수 있습니다.

안드로이드에서 아이클라우드 이메일 설정하기

최고의 DIY 경험으로 만들려면 나만의 NAS 상자 만들기 가전 ​​제품을 제어하는 ​​데도 사용하시겠습니까? Plex 서버에서 재생을 누르고 조명이 자동으로 꺼지는 것이 얼마나 멋진지 상상해 보십시오!

이미 Python을 사용하여 Arduino를 제어하고 있습니까? 우리가 아직 모르는 놀라운 해결 방법이 있습니까? 아래 댓글 섹션에서 알려주십시오!

공유하다 공유하다 트위터 이메일 VirtualBox Linux 시스템을 강화하는 5가지 팁

가상 머신이 제공하는 열악한 성능에 지쳤습니까? VirtualBox 성능을 높이려면 다음을 수행해야 합니다.

다음 읽기
관련 항목
  • DIY
  • 프로그램 작성
  • 아두이노
  • 홈 오토메이션
  • 파이썬
저자 소개 이안 버클리(216건의 기사 게재)

Ian Buckley는 독일 베를린에 거주하는 프리랜스 저널리스트, 음악가, 공연자 및 비디오 프로듀서입니다. 글을 쓰지 않거나 무대에 오르지 않을 때는 미친 과학자가 되기 위해 DIY 전자 제품이나 코드를 만지작거리고 있습니다.

이안 버클리가 참여한 작품 더보기

뉴스레터 구독

뉴스레터에 가입하여 기술 팁, 리뷰, 무료 전자책 및 독점 거래를 확인하십시오!

구독하려면 여기를 클릭하세요.