Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Problema a trovare una libreria per leggere int da USB

Raccolta di codici sorgenti

Moderatore: Foto UtentePaolino

0
voti

[1] Problema a trovare una libreria per leggere int da USB

Messaggioda Foto Utentealien75 » 29 ott 2025, 21:16

Salve, sto cercando di far comunicare il seguente codice python via USB con ARDUINODUE.
In pratica questo codice allegato (prova.py) al click del pulsante invia una strinda di 18 caratteri in formato char. Ciascun elemento dlela lista values può avere un valore massimo di 10000 quindi
essendo rappresentato da un integer viene spezzettato in due byte quindi due caratteri.
Dall'altra parte della USB c'è un ARDUINODUE che deve leggere ricomporre e stampare i valori
a 8bit e convertirli in int per poi stamparli sul monitor seriale dell' IDE di ARDUINODUE.
Sto cercando una lib per arduino che possa unire i due byte per comporre l'integer di partenza.
Allego i due sorgenti.
Potete aiutarmi per favore a trovare tale lib?
Allegati
prova.py.zip
(3.13 KiB) Scaricato 36 volte
prova_ser.ino.zip
(596 Byte) Scaricato 36 volte
Avatar utente
Foto Utentealien75
1 1 4 8
Sostenitore
Sostenitore
 
Messaggi: 590
Iscritto il: 31 lug 2011, 14:08

1
voti

[2] Re: Problema a trovare una libreria per leggere int da USB

Messaggioda Foto UtenteNoNickName » 29 ott 2025, 22:03

Codice: Seleziona tutto
import struct


{...}

Codice: Seleziona tutto
   while True:
        if ser.in_waiting >= 2:
            # Legge 2 byte dalla seriale
            raw_bytes = ser.read(2)
            # Converte i 2 byte in un intero (little endian)
            value = struct.unpack('<H', raw_bytes)[0]
            print(f"Valore ricevuto: {value}")



struct.unpack('<H', ...) interpreta quei 2 byte come un intero unsigned short in formato little endian (<H).
Se il tuo dispositivo invia in big endian, usa '>H' invece di '<H'.
Avatar utente
Foto UtenteNoNickName
311 1 2 5
Stabilizzato
Stabilizzato
 
Messaggi: 333
Iscritto il: 10 nov 2021, 14:54

0
voti

[3] Re: Problema a trovare una libreria per leggere int da USB

Messaggioda Foto Utentealien75 » 30 ott 2025, 5:15

Va bene pure per il C di ARDUINO questo codice ?
Ho provato quest ocodice per ARDUINO ma non funziona.
Avatar utente
Foto Utentealien75
1 1 4 8
Sostenitore
Sostenitore
 
Messaggi: 590
Iscritto il: 31 lug 2011, 14:08

-1
voti

[4] Re: Problema a trovare una libreria per leggere int da USB

Messaggioda Foto Utentealien75 » 30 ott 2025, 6:30

alien75 ha scritto:Va bene pure per il C di ARDUINO questo codice ?
Ho provato quest ocodice per ARDUINO ma non funziona.


Ho provato questo codice ma oltre al valore inviato dal python mi da pure altro:
Codice: Seleziona tutto
define MAX_BUFFER 2
int i = 0;
char b[MAX_BUFFER];
int risultato;
void setup(void)
{
  Serial.begin(9600);
  while (!Serial)
    delay(10); // will pause Zero, Leonardo, etc until serial console opens

  Serial.println("OK!");
}



int convertiByteInInt(byte byte1, byte byte2) {
  // byte1 è il byte più significativo (MSB), byte2 è il meno significativo (LSB)
  // Sposta il primo byte di 8 posizioni a sinistra per fare spazio al secondo byte
  // Esegui un OR bitwise per combinare i due byte
  return (byte1 << 8) | byte2;
}

void loop() {
 
  while((Serial.available())>=0)
  {     
  b[i] = Serial.read();

  risultato = convertiByteInInt(b[0], b[1]);
  i++;
  if (i==2)
  {
    i = 0;
    b[0] = '0';
  } 
   // Il risultato sarà 0x1234 in esadecimale, che è 4660 in decimale
    /*if(risultato >= 813)
    {*/
      Serial.print("Il valore intero è: ");
      Serial.println(risultato);
    //}
  }
}
Avatar utente
Foto Utentealien75
1 1 4 8
Sostenitore
Sostenitore
 
Messaggi: 590
Iscritto il: 31 lug 2011, 14:08

0
voti

[5] Re: Problema a trovare una libreria per leggere int da USB

Messaggioda Foto Utentestandardoil » 30 ott 2025, 20:20

Io sto abbandonando Arduino e il C
Ma mi sembra che sul forum di arduino, che un poco frequento ancora, ci fosse tempo fa uno con un problema simile
Magari prova a sentire la
Avatar utente
Foto Utentestandardoil
547 2 4
Stabilizzato
Stabilizzato
 
Messaggi: 420
Iscritto il: 15 lug 2022, 19:14

0
voti

[6] Re: Problema a trovare una libreria per leggere int da USB

Messaggioda Foto Utentealien75 » 30 ott 2025, 20:43

Mi hanno bloccato nel forum ARDUINO, perché ho violato le loro regole.
Avatar utente
Foto Utentealien75
1 1 4 8
Sostenitore
Sostenitore
 
Messaggi: 590
Iscritto il: 31 lug 2011, 14:08

0
voti

[7] Re: Problema a trovare una libreria per leggere int da USB

Messaggioda Foto UtenteNoNickName » 30 ott 2025, 23:58

alien75 ha scritto:Va bene pure per il C di ARDUINO questo codice ?
Ho provato quest ocodice per ARDUINO ma non funziona.


Ma non hai detto python?
Avatar utente
Foto UtenteNoNickName
311 1 2 5
Stabilizzato
Stabilizzato
 
Messaggi: 333
Iscritto il: 10 nov 2021, 14:54

2
voti

[8] Re: Problema a trovare una libreria per leggere int da USB

Messaggioda Foto Utentestandardoil » 31 ott 2025, 9:14

Non è una bella presentazione, la tua

Ti posso dire solo che difficilmente troverai quello che cerchi

Perché siccome non leggi i manuali non capisci di cosa hai bisogno e cerchi cose sbagliate

Auguri
Avatar utente
Foto Utentestandardoil
547 2 4
Stabilizzato
Stabilizzato
 
Messaggi: 420
Iscritto il: 15 lug 2022, 19:14

1
voti

[9] Re: Problema a trovare una libreria per leggere int da USB

Messaggioda Foto Utentedjnz » 31 ott 2025, 10:04

alien75 ha scritto:In pratica questo codice allegato (prova.py) al click del pulsante invia una strinda di 18 caratteri in formato char. Ciascun elemento dlela lista values può avere un valore massimo di 10000 quindi
essendo rappresentato da un integer viene spezzettato in due byte quindi due caratteri.

Diciamo che prima di pensare alla ricezione, bisognerebbe essere sicuri di cosa si sta trasmettendo: esattamente quanti byte, ed esattamente ciascuno cosa rappresenta.
Una domanda ben posta è già mezza risposta.
Avatar utente
Foto Utentedjnz
1.590 1 4 7
Master
Master
 
Messaggi: 708
Iscritto il: 26 lug 2020, 14:52

-1
voti

[10] Re: Problema a trovare una libreria per leggere int da USB

Messaggioda Foto Utentealien75 » 31 ott 2025, 13:22

NoNickName ha scritto:
alien75 ha scritto:Va bene pure per il C di ARDUINO questo codice ?
Ho provato quest ocodice per ARDUINO ma non funziona.


Ma non hai detto python?


Leggi bene il problema iniziale prima: c'è un programma in python lato PC che comunica via USB con arduino, nel quale c' è un programma in C che legge i caratteri che gli arrivano dal python
Avatar utente
Foto Utentealien75
1 1 4 8
Sostenitore
Sostenitore
 
Messaggi: 590
Iscritto il: 31 lug 2011, 14:08

Prossimo

Torna a Firmware e programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 3 ospiti