2016-03-29 18 views
-1

könnte jemand mir helfen, diesen arduino-code in python-code zu übersetzen?konvertieren von arduino zu python

#define BUFFLEN 3 

byte buffer[] = { 0x05, 0x0D, 0x02, 0xFF, 0x10, 0xAA } 

for (byte i=0; i < BUFFLEN; i++) { 
    val = analogRead(A0); 
    val = constrain(val,0,1023); 
    buffer[i*2] = (byte)(i<<2) | highByte(val); 
    buffer[i*2+1] = lowByte(val); 
} 

Dank

+0

seriell zu drucken. Welcher Teil der Idee a Bist du dir nicht sicher, wie du in Python ausdrücken kannst? – 6c1

+0

@ 6c1 Ich weiß nicht, wie man Array von Byte vom Typ 0x00 macht, wie man jeden einzelnen Index eines Arrays von Bytes anspricht und wie man High und Low einer Integer-Variablen (val) erhält – codeforge

Antwort

0

Sie pyserial Bibliothek verwenden könnten die Daten über die serielle Schnittstelle verarbeitet dann die Daten mit Python, in diesem Fall der folgende Code tun würde, zu erfassen:

import serial 
import struct 

ser = serial.Serial('COM6',9600) #put the port number and the communication rate 


BUFFLEN = 3 #constant 

buffer = [ 0x05, 0x0D, 0x02, 0xFF, 0x10, 0xAA ] #array 

i=0 #initialize control variable 

def clamp(n, minn, maxn): 
    return max(min(maxn, n), minn) 

while (i < BUFFLEN): 
    val = ser.read() 
    val = clamp(val,0,1023) 
    buffer[i*2] = (i<<2) or struct.pack('<h', val) 
    buffer[i*2+1] = struct.pack('>h', val) 
    i+=1 #increment 

Aber denken Sie daran, die Daten zu erfassen und von der Arduino IDE