Anaconda (Python) per a la teva Arduino

Anaconda logo

Anaconda és una distribució lliure i oberta de el llenguatge de programació Python (I R). Recorda, un dels llenguatges més utilitzats en l'actualitat i que permet crear scripts, ja que és un llenguatge interpretat. Per tant, depèn de l'intèrpret Python perquè la màquina pugui entendre-ho i processar-lo. Per contra, els llenguatges compilats són traduïts a un binari que pot entendre directament la màquina sense intermediari.

Doncs bé, anaconda s'usa bastant en l'àmbit de l'educació i l'aprenentatge automàtic o machine learning. Però també ho pots fer servir per controlar la placa Arduino. Sí, exacte, podries estar usant el llenguatge de programació Python per crear els teus programes per controlar Arduino sense cap problema i d'una forma senzilla. Aquí et anem a explicar com fer-ho pas a pas ...

Què és Anaconda

Bé, ja saps que és una distribució de Python, I per tant comparteix característiques amb el Pyhton oficial. Però ofereix uns avantatges respecte a Python, a part de ser multiplataforma i de codi obert, com ara:

  • Et permet instal·lar i administrar paquets, dependències i entorns per ciència de dades d'una forma senzilla.
  • Permet utilitzar diversos entorns de programació o IDEs, entre ells també podràs fer-lo servir amb Arduino, Raspberry Pi, etc.
  • compta amb eines com NumPy, Numba, Dask, Bokeh, Datashader, Holoviews, matplotlib, etc., per analitzar i visualitzar dades.
  • permet compilar Python en codi màquina en comptes de ser interpretat perquè l'execució sigui més ràpida. És a dir, passaria a ser un llenguatge compilat.
  • permet escriure programes més complexos i d'alt rendiment, i fins i tot portables entre plataformes per dur els teus projectes a on vulguis.

Més informació - instal·lar Anaconda

API per usar amb Arduino

Logotip Arduino i Python

Per a la utilitzar Python per controlar Arduino necessitaràs una API. Un cop ja tinguis Anaconda instal·lat al sistema operatiu, pots instal·lar l'API d'una forma molt simple. És tan senzill com invocar anaconda des de la línia de comandaments, en aquest moment l'indicador de la teva shell passarà a ser el d'Anaconda, i dins pots fer servir la següent comanda i Conda s'encarregarà de tot:

conda install -c auto arduino-python

Un cop instal·lat arduino-python, ja podràs començar a usar-lo amb els teus projectes d'Arduino. Però abans, cal preparar l'entorn per crear un nou entorn virtual per al teu primer projecte d'Arduino. Per a això, dins de l'indicador d'Anaconda pots fer servir la següent comanda especificant un nom i la versió de l'llenguatge Python que vas a utilitzar. Per exemple:

conda create --name arduino python=3.7

Ara l'entorn virtual «arduino» ja està creat per a usar amb ell Python versió 3.7. el següent és activar:

conda activate arduino

Un cop actiu, conserva aquesta finestra de l'terminal, no la tancaments, ja que la faràs servir més tard. Com pots veure que l'indicador és ara (arduino)> perquè puguis començar. Seria convenient que instal ara alguns paquets que necessitaràs, com PySerial per a la comunicació amb la placa Arduino. Per a això, simplement fa servir des d'aquest mateix indicador:

conda install pyserial

Bé, ara descàrrega i instal Arduino IDE si no ho tenies ja, si ho tenies, llavors pots passar a el següent pas, que és escriure el codi en Python per controlar la teva projecte d'Arduino. Pots escriure un programa simple o usar els exemples que ja vénen amb Arduino IDE per provar.

Per EXEMPLE, Veu a Arduino IDE> Arxiu> Exemples> Comunicació> PhysicalPixel i cárgalo en la teva placa Arduino connectada al teu PC. Un cop el sketch està funcionant, pots usar Python com faries a la placa Raspberry Pi amb els GPIO per alterar el resultat. Per exemple, en aquest cas per apagar o encendre el LED al teu gust amb un simple codi Python.

Per a això, pots tornar a la finestra del terminal i dins el prompt d'Anaconda fer el següent:

> 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) >

Això farà que la funció ser.write pugui apagar (L) o encendre el LED (H) al teu gust. Després ser.close () acaba i exit () surt. Així pots controlar amb Python teus projectes d'Arduino. Evidentment això és només un exemple, però pots imaginar molts més casos ...

també pots crear fitxers .py amb scripts en Python per poder-los executar en qualsevol moment sense necessitat de fer-ho directament des de l'indicador de anaconda. Per exemple aquest altre:

# 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()

¿Simple veritat? A més, si ja coneixies el llenguatge Phyton, tot això et resultarà molt més senzill. Només hauràs d'executar el teu .py i interactuar amb les opcions interactives d'aquest programa per introduir ordres per encendre, apagar o sortir de el programa en aquest cas.


Sigues el primer a comentar

Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.