Un Arduino puede enviar valores numéricos de un sensor por medio del conector USB en forma Serial (secuencial).
Los datos recibidos por una computadora mediante el puerto USB pueden procesarse usando Python. Para ésto debe conocer el puerto «com» y la velocidad de transmisión en los baudios usada por el arduino.
Ejemplo:
Se muestra una lectura de valores numéricos enteros, a partir del cual se puede modificar otros requerimientos.
El ejemplo usa los resultados de la sección Morse para el receptor: TxRx Inalambrico 433Mhz ASK/OOK
0 0 0 1017 1017 1018 1021 1017 1019 1018 1018 1016 1018 1016 1017 1019 1018 1016 1020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1017 1017 1016 1017 1016
Instrucciones en Python
# Datos desde puerto Serial # generados desde arduino import numpy as np import matplotlib.pyplot as plt import serial, time # INGRESO puerto = 'com5' baudios = 9600 ventana = 200 # tamaño ventana datos datos=[] # vector para graficar # PROCEDIMIENTO arduino = serial.Serial(puerto, baudios) arduino.setDTR(False) time.sleep(0.3) # limpia buffer de datos anteriores arduino.flushInput() arduino.setDTR() time.sleep(0.3) print('\nEstado del puerto: ',arduino.isOpen()) print('Nombre del dispositivo conectado: ', arduino.name) print('Dump de la configuración:\n ',arduino) print('\n###############################################\n') # Lectura de datos while True: #esperar hasta recibir un dato while (arduino.inWaiting()==0): pass # lee linea desde puerto serial lectura = arduino.readline() # binario a texto, elimina /r/n texto = lectura.decode().strip() valor = int(texto) datos.append(valor) # mantiene el tamaño "ventana" de datos if (len(datos)>=ventana): datos.pop(0) print(valor) # Cerrar el puerto serial. serial.Serial.close