está bien, entonces mi situación es que estoy trabajando en un chip avr que es el atmega 328p y lo que quiero hacer es que quiero decir una entrada de usuario en python, digamos los tipos de usuario en una cadena y desde ahí Quiero que mi código avr para interpretar el código.
La razón por la que estoy haciendo esto es porque estoy creando una gui cnc básica para que el usuario ingrese un eje de un motor paso a paso como x y o z, luego la dirección "-" o "+".
Luego, una distancia que es un número en python y luego desde python quiero enviar esta información al código avr-c, que luego utilizará la información para controlar a los steppers.
Quiero evitar el uso de la comunicación serie predeterminada en avr c porque será más difícil de hacer ya que el usuario ingresará cadenas como "x-20 y + 10" y etc.
Es mucho más fácil usar python para interpretar el texto que para usar avr-c. Entonces, ¿cómo voy a hacer esto? //////// DESPUÉS DE ALGUNA VEZ //////////////////////////// Bueno, después de mucha confusión e investigación, se me ocurrió un código basado en la sintaxis de pyserial y en los módulos de estructura, aquí está el código:
import serial
import struct
import binascii
#Function to Initialize the Serial Port
def init_serial():
global ser #Must be declared in Each Function
ser = serial.Serial()
ser.baudrate = 9600
ser.port = '/dev/ttyACM0' #com port of avr
ser.timeout = 10
ser.open() #Opens SerialPort
# print port open or closed
if ser.isOpen():
print 'Open: ' + ser.portstr
init_serial()
values = (1)
s = struct.Struct('I')
packed_data = s.pack(*values)
ser.write(packed_data) #Writes to the SerialPort
while 1:
bytes = ser.readline() #Read from Serial Port
packed_data = binascii.unhexlify(bytes)
s = struct.Struct('I')
unpacked_data = s.unpack(packed_data)
print 'You sent: ', unpacked_data #Print What is Read from Port
#Ctrl+C to Close Python Window
Por favor, infórmeme si estoy haciendo algo incorrecto o correcto, o si este código funciona realmente, si es así, este es el lado de Python de la transmisión de datos de python a avr-c. ¿Cómo manejaría el avr? ¿El lado C de esta comunicación con python sobre comunicación serial?