Forum >> Principianti >> richiesta aiuto per contapezzi Arduino_python

Pagina: 1

Buon_tutto a tutti.



Ho da poco messo mani su Arduino e ancora meno su python....

Mi sono piantato in un progetto che credevo "per me" meno complicato (sono un novellino).... Credevo di farcela ma evidentemente nn è così.

La mia intenzione è la realizzazione di un contapezzi (tramite un unico sensore infrarosso) che nn tenga conto della grandezza degli oggetti che gli passano davanti, e che restituisca il risultato in una label creata con tkinter...




Lato Arduino, quasi, tutto ok... sul monitor seriale l'incremento c'è 1.2.3.4....etc

Lato python invece, vedo l'incremento ma va avanti di tre unità alla volta 3.6.9.12.....etc...

Dove sbaglio?

Lato python:

def contatore ():
s = ser.inwaiting()
count=s
label2['text']=count
label2.after(100, contatore)
Contatore()


Lato Arduino

void loop (){
if(state==low && laststate==high){
count++;
Serial.println(count);
delay (100);
}
laststate=state;
state=digitalRead(a0);


P.s. non esagerate con gli insulti :D

Grazie.

Vedo un metodo .after() in mezzo allo script di python. Non è che ti fa da delay per cui vedi il refresh in tkinter troppo lentamente?
Ho provato ma niente da fare!!!



Forse ho sbagliato completamente metodo....



e se nella funziuone contatore ci metti un print(count) che ti mostra a console come cambia la variabile?
Prima di tutto, grazie.
Provato! Sì genera un loop di zeri fino a quando non 'eccito il sensore' per poi continuare con il loop di 3 e successivamente di 6 .....
Es. 0000000333333666666699999999…...
Prima di tutto, grazie.
Provato! Sì genera un loop di zeri fino a quando non 'eccito il sensore' per poi continuare con il loop di 3 e successivamente di 6 .....
Es. 0000000333333666666699999999…...

ciao Roberto, di nulla!!




mi vien da pensare che il ciclo di conta di arduino e di python lavorino correttamente (tanto che il ciclo di python restituisce molte volte 3, e non solo una volta 3 per poi passare direttamente a 6 dopo chessò 10 secondi)

quello che non è aggiornato forse è lo scambio dati fra arduino e python che avviene in maniera troppo lenta




esempio:




arduino - transfer - python

0 no 0

1 no 0

2 no 0

3 -----> yes -----> 3

4 no 3

5 no 3

6 -----> yes -----> 6

7 no 6







nell'esempio sopra i counter di arduino e python funzionano correttamente ma la funzione transfer di arduino è troppo lenta nell'aggiornare python e avviene solo 1 volta ogni 4 cicli di conta arduino.




è plausibile una situazione simile?



Barcollo ma non mollo!!!



Ho fatto un po' di cambiamenti lato Arduino ma non ho ottenuto risultati!




Cambiando invece inWaiting con readline funge ma mi impalla tutto fino a che non arriva un nuovo Segnale....






ah ok, quindi lato arduino è giusto, si tratta solo di ottimizzare il lato python.
visto che la funzione di python da quello che ho capito aspetta il segnale di arduino e nel mentre però ti blocca il programma, non puoi metterla in sleep, e farla chessò girare pochi millisecondi ogni secondo?


Pagina: 1



Esegui il login per scrivere una risposta.