Arduino 용 Anaconda (Python)

Anaconda 로고

Anaconda는 Python 프로그래밍 언어의 무료 공개 배포판입니다. (및 R). 오늘날 가장 많이 사용되는 언어 중 하나이며 통역 언어이기 때문에 스크립트를 작성할 수 있습니다. 따라서 기계가 이해하고 처리 할 수 ​​있도록 파이썬 인터프리터에 의존합니다. 대조적으로, 컴파일 된 언어는 중개자없이 기계가 직접 이해할 수있는 바이너리로 번역됩니다.

음, 아나콘다 교육 및 기계 학습 분야에서 널리 사용됩니다. 그러나 또한 무엇 Arduino 보드를 제어하는 ​​데 사용할 수 있습니다.. 예, 정확히 Python 프로그래밍 언어를 사용하여 아무 문제없이 간단한 방법으로 Arduino를 제어하는 ​​프로그램을 만들 수 있습니다. 여기서는 단계별로 수행하는 방법을 설명하겠습니다.

Anaconda는 무엇입니까

음, Python 배포판이 무엇인지 이미 알고 있습니다.이므로 공식 Python과 특성을 공유합니다. 그러나 크로스 플랫폼 및 오픈 소스라는 점을 제외하면 다음과 같은 Python에 비해 몇 가지 이점을 제공합니다.

  • 그것은 당신을 허용합니다. 패키지, 종속성 및 환경 설치 및 관리 데이터 과학을위한 간단한 방법입니다.
  • 여러 프로그래밍 환경 또는 IDE를 사용할 수 있습니다. Arduino, Raspberry Pi 등과 함께 사용할 수 있습니다.
  • 그것은이 도구 numpy, Numba, Dask, Bokeh, Datashader, Holoviews, Matplotlib 등과 같은 데이터를 분석하고 시각화합니다.
  • 허용 파이썬을 기계 코드로 컴파일 더 빠른 실행을 위해 해석되는 대신. 즉, 컴파일 된 언어가됩니다.
  • 허용 더 복잡하고 고성능이며 이식 가능한 프로그램 작성 원하는 곳으로 프로젝트를 진행할 수 있습니다.

추가 정보 – Anaconda 설치

Arduino와 함께 사용할 API

Arduino 및 Python 로고

Python을 사용하여 Arduino를 제어하려면 API가 필요합니다.. 운영 체제에 Anaconda가 설치되면 다음을 수행 할 수 있습니다. API 설치 아주 간단한 방법으로. 명령 줄에서 anaconda를 호출하는 것만 큼 간단합니다. 그 순간 쉘 프롬프트가 Anaconda 프롬프트로 변경되고 내부에서 다음 명령을 사용하면 conda가 모든 것을 처리합니다.

conda install -c auto arduino-python

arduino-python이 설치되면 이미 Arduino 프로젝트에서 사용할 수 있습니다.. 그러나 먼저 첫 번째 Arduino 프로젝트를위한 새로운 가상 환경을 만들기위한 환경을 준비해야합니다. 이를 위해 Anaconda 프롬프트 내에서 사용할 Python 언어의 이름과 버전을 지정하는 다음 명령을 사용할 수 있습니다. 예를 들면 :

conda create --name arduino python=3.7

이제 가상 환경 "arduino"가 이미 Python 버전 3.7에서 사용할 수 있도록 생성되었습니다. 그것 다음은 그것을 활성화하는 것입니다:

conda activate arduino

활성화되면이 터미널 창을 유지하고 나중에 사용할 수 있으므로 닫지 마십시오. 어떻게 볼 수 있니 프롬프트는 이제 (arduino)> 시작할 수 있습니다. Arduino 보드와의 통신을 위해 PySerial과 같이 필요한 패키지를 지금 설치하는 것이 편리 할 것입니다. 이렇게하려면 동일한 프롬프트에서 사용하면됩니다.

conda install pyserial

지금 Arduino IDE 다운로드 및 설치 아직 가지고 있지 않았다면 다음 단계로 넘어갈 수 있습니다.이 단계는 Arduino 프로젝트를 제어하는 ​​Python 코드를 작성하는 것입니다. 간단한 프로그램을 작성하거나 Arduino IDE와 함께 제공되는 예제를 사용하여 테스트 할 수 있습니다.

ejemplo, Arduino IDE> File> Examples> Communication> PhysicalPixel로 이동하여 PC에 연결된 Arduino 보드에 업로드하십시오. 스케치가 작동하면 GPIO가있는 Raspberry Pi 보드 에서처럼 Python을 사용하여 결과를 변경할 수 있습니다. 예를 들어,이 경우 간단한 Python 코드로 마음대로 LED를 켜거나 끕니다.

이렇게하려면 다음을 수행 할 수 있습니다. 터미널 창으로 돌아가서 Anaconda 프롬프트로 이동하십시오. 다음을 수행하십시오.

> conda activate arduino
(arduino) > python

Python 3.7.1 (default, Dec 10 2018, 22:54:23) [MSC v.1915 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.

>>> import serial
>>> ser = serial.Serial('COM4', 9800, timeout=1)
>>> ser.write(b'H')
>>> ser.write(b'L')
>>> ser.close()
>>> exit()
(arduino) >

그것은 만들 것입니다 ser.write 기능은 마음대로 끄거나 (L) LED를 켤 수 있습니다 (H).. 그런 다음 ser.close ()가 종료되고 종료 ()가 종료됩니다. 따라서 Python으로 Arduino 프로젝트를 제어 할 수 있습니다. 분명히 이것은 단지 예일 뿐이지 만 더 많은 경우를 상상할 수 있습니다 ...

당신은 또한 수 Python 스크립트로 .py 파일 생성 아나콘다 프롬프트에서 직접 실행하지 않고도 언제든지 실행할 수 있습니다. 예를 들어이 다른 :

# Ejemplo titileo_LED.py

import serial
import time

# Define el puerto serie
# Debes comprobar desde el gestor de dispositivos de tu sistma operativo a qué puerto se corresponde el USB de la placa Arduino, en Windows sería COM4 en nuestro caso
ser = serial.Serial('COM4', 9600)

def led_on_off():
    user_input = input("\n Elige comando: encendido / apagado / quitar : ")
    if user_input =="encendido":
        print("LED está encendido...")
        time.sleep(0.1) 
        ser.write(b'H') 
        led_on_off()
    elif user_input =="apagado":
        print("LED está apagado...")
        time.sleep(0.1)
        ser.write(b'L')
        led_on_off()
    elif user_input =="quitar" or user_input == "q":
        print("Salir del programa")
        time.sleep(0.1)
        ser.write(b'L')
        ser.close()
    else:
        print("Comando no válido")
        led_on_off()

time.sleep(2) # Espera a que el puerto serie inicialice 

led_on_off()

단순한 진실? 또한 여러분은 이미 파이썬 언어를 알고있었습니다. 이 모든 것이 훨씬 쉬울 것입니다. 이 경우 프로그램을 켜거나 끄거나 종료하는 명령을 입력하려면 .py를 실행하고이 프로그램의 대화 형 옵션과 상호 작용하기 만하면됩니다.


코멘트를 첫번째로 올려

코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.