Codice python per immettere dati

Ciao a tutti, ho eseguito un codice che funziona attraverso il monitor seriale dell'ide di arduino,
ora però dovrei scrivere il corrispondente in python, mi riuscie ad aiutare?

Arduino code:

int dirPin = 2;
int stepperPin = 3;
int tastiera = 0;
int tastiera_2 = 0;
int tastiera_3 = 0;
int pompa_1 = 13;
int pompa_2 = 12;
int pompa_3 = 11;

void setup() {
 pinMode(dirPin, OUTPUT);
 pinMode(stepperPin, OUTPUT);
 pinMode(pompa_1, OUTPUT);
 pinMode(pompa_2, OUTPUT);
 pinMode(pompa_3, OUTPUT);
 Serial.begin(9600);
}
 void step(boolean dir,int steps){
    digitalWrite(dirPin,dir);
    delay(50);
   for(int i=0;i<steps;i++){
    digitalWrite(stepperPin, HIGH);
    delayMicroseconds(800);
    digitalWrite(stepperPin, LOW);
    delayMicroseconds(800);
 }
}
void loop(){ 
 while(tastiera == 0){
 Serial.println("Inserire delay_1"); 
 tastiera=Serial.parseInt();
 }
 while(tastiera_2 == 0){
 Serial.println("Inserire delay_2"); 
 tastiera_2=Serial.parseInt();
 }
 while(tastiera_3 == 0){
 Serial.println("Inserire delay_3"); 
 tastiera_3=Serial.parseInt();
 }
 //raggiunge la pompa 1 *************************** codice da copiare per gli altri blocchi
 step(true,200);
 Serial.println("Blocco_1");
 delay(500);
 //andrà messo il relè 1 con la pompa 1
 digitalWrite(pompa_1, HIGH);
 //resta acceso fino a quando non raggiunge la capacità definita
 delay(tastiera);
 //spegne il relè
 digitalWrite(pompa_1, LOW);
 delay(100);
 //**************************************
 //raggiunge la pompa 2
 step(true,200*2);
 Serial.println("Blocco_2");
 delay(500);
 //andrà messo il relè 1 con la pompa 1
 digitalWrite(pompa_2, HIGH);
 //resta acceso fino a quando non raggiunge la capacità definita
 delay(tastiera_2);
 //spegne il relè
 digitalWrite(pompa_2, LOW);
 delay(100);
 //*************************************
 //raggiunge la pompa 3
 step(true,200*3);
 Serial.println("Blocco_3");
 delay(500);
 //andrà messo il relè 1 con la pompa 1
 digitalWrite(pompa_3, HIGH);
 //resta acceso fino a quando non raggiunge la capacità definita
 delay(tastiera_3);
 //spegne il relè
 digitalWrite(pompa_3, LOW);
 delay(100);
 //RITORNO
 step(false,200*6);
 Serial.println("Ritorno");
 delay(500);
 tastiera = 0;
 tastiera_2 =0;
 tastiera_3 = 0;
 
}

Forse é meglio che chiedi a un forum di Python.
Ciao Uwe

O almeno spiega quello che vuoi fare, non si capisce nulla.
Cosa c'entra Arduino con Python ?

Voglio immettere i dati tastiera, tastiera_2, tastiera_3 dalla shell di python e arduino mi deve eseguire il codice in base ai valori

Cioè ? Dalla shell ? Da riga di comando di Python in maniera interattiva ?
Windows ? Linux ?
Dovrai installare la libreria pySerial

Mettendo insieme anche le altre informazioni:
forum.arduino.cc/index.php?topic=458230.0
python.it/forum/thread/2015/python-invio-dati-in-modo-seriale/?page=1#post-2015

(altri posti dove chiedere sono: python-it.org/forum/
forum.ubuntu-it.org/viewforum.php?f=33
lists.python.it/mailman/listinfo/python ::slight_smile: )

...si capisce che l'ambiente è Linux like e la seriale funziona.

Quello che non è chiaro è se il problema riguarda solo la conoscenza di Python o anche altro, ad esempio come funziona parseInt.

Mai usata, ma una consultazione dell'oracolo trova subito questo esempio:
forum.arduino.cc/index.php?topic=319648.0

e i reference:
arduino.cc/en/Reference/parseInt
arduino.cc/en/Serial/parseInt

È chiaro che parseint legge i codici ASCII dei caratteri ricevuti e compone un valore numerico (conversione da stringa a numero intero), skippando eventuali caratteri non numerici iniziali e fermandosi al primo carattere non numerico.

Quindi è sufficiente inviare (da Python o qualsiasi altra cosa) le tre stringhe ASCII seguite da un carattere non numerico (che nel serial monitor immagino sia il return alla pressione del tasto invio):

### Py 2.x
arduino.write(raw_input("Inserisci primo ritardo: ") + '\0')
arduino.write(raw_input("Inserisci secondo ritardo: ") + '\0')
arduino.write(raw_input("Inserisci terzo ritardo: ") + '\0')