Go Down

Topic: Problemi ricezione byte dalla porta USB (Read 1 time) previous topic - next topic

PaoloF_60

#15
Mar 14, 2018, 04:52 am Last Edit: Mar 14, 2018, 04:57 am by PaoloF_60
Ciao EtaBeta

Allora io ho provato alcune cose e ti comunico che riesco a comunicare con Rabbit Connect.

Apri il monitor serale di Ardino e scrivi GEFAKB premi invio dovresti dovresti vedere i led scorrere in
questa sequenza.

8 9 10 11 12 13 G 8 9 10 11 12 13 E 8 9 10 11 12 13 F


8 9 10 11 12 13 A 8 9 10 11 12 13 K 8 9 10 11 12 13 B

IO non ho led collegati alla scheda e non ho potuto verificare questa cosa ma ho modificato il tuo programma inserendo al posto delle accensioni led delle Serial.print

Code: [Select]

byte c;
byte k;

void setup() {
  Serial.begin(9600);
  pinMode(13, OUTPUT);
  pinMode(12, OUTPUT);
  pinMode(11, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(8, OUTPUT);
  }

void loop() {
  if(Serial.available()) {
        
      for(k=8;k<14;k++) Serial.println(k);
        c=Serial.read();
        Serial.print("c = ");Serial.println(c);
            switch (c) {
              case 0x41:
                Serial.println("case 0x41");
                break;
              case 0x4b:
                Serial.println("Case 0x4B");
                break;
              case 0x42:
                Serial.println("Case 0x42");
                break;
              case 0x45:
                Serial.println("Case 0x45");
                break;
              case 0x46:
                Serial.println("Case 0x46");
                break;
              case 0x47:
                Serial.println("Case 0x47");
                break;
      }
    }
  }




allego il file del serial monitor.

quindi ho provato anche con il Rabbit Connect.

Allego il file di Advance Serial Port Monitor.

Se a te non funziona a sto punto prova a disinstallare Advance Serial Port Monitor.

Eventualmente riprovi dopo il riavvio. Se poi lo vuoi reinstallare fai come ti accennato prima.

Sul file scaricato Click destro - prprietà - Annulla Blocco (se c'è)

Click col destro - esegui come amministratore. Per fare una installazzione con privilegi elevati.

Riavvio e riprovi col Port Monitor a vedere se ti funziona.

Ciao
Paolo



EtaBetaPot

Ciao Paolo, innanzitutto devo ringraziarti molto per il tempo speso per me, sei davvero gentile.
Ho seguito i tuoi post con molta attenzione, ma purtroppo sono lusingato nel comunicarti che a me la ricezione da Rabbit continua a non funziona con Arduino  :smiley-confuse:  . Ho provato anche come mi hai consigliato, di disinstallare il software Advanced Serial Port Monitor per poi riprovare con Rabbit, ma senza alcun effetto. Ho pensato che non sia un problema di compatibilità con Windows 10, provando ad eseguire Rabbit in varie modalità di compatibilità senza alcun successo. Ho collegato Arduino sulle altre porte del PC, ma niente.
Semplicemente utilizzando il seguente codice non mi si accende il led, dunque desumo che la funzione Serial.available() per qualche stranissimo motivo sul mio PC non viene

void setup() {
 Serial.begin(9600);
 pinMode(13, OUTPUT);
   }
void loop() {
 if(Serial.available()) digitalWrite(13,HIGH);
 }

Per quanto riguarda il software di monitoraggio delle porte, non ho avuto problemi ne di ricezione ne di trasmissione sin dalla prima installazione sul PC.
Proverò comunque a lavorare sul pc dove risiede windows 7..... non so più cosa pensare.
Ciao e grazie.
Igor

P.S.Ti dirò che mi hai ricordato con piacere quando si lavorava in GWBasic con open com,input# e print# eof e loc... erano altri tempi ed era più facile far funzionare le cose  :)

PaoloF_60

Ma la prova dal monitor seriale di Arduino l' hai fatta ? Con che risultato ?

EtaBetaPot

Paolo da monitor seriale di Arduino naturalmente non ho problemi ad interpretare i comandi, tutto funziona altrimenti darei la causa a un malfunzionamento di Arduino.
L'unica cosa che devo ancora provare è di sperimentare il tutto su altro PC. Tu con che sistema operativo hai fatto le tue prove ?
Ciao e buona giornata

PaoloF_60

Windows 7 Pro 64 bit Rabbit 64 1.5 Aspmon 4.4.13 buil 307

Se ho capito bene tu hai windows 10.


PaoloF_60

Ho trovato in giro il tuo post con il protocollo e ho scritto un po di codice arrivo a visualizzare la scacchiera con i pezzi posizionati per iniziare una partita. Da Settings vedo che non mi visualizza il numero di serie ripete continuamente la sequanza di comandi F K B M E quindi riprende da F.

Non mi è chiaro cosa vuol dire qui

/* Message format DGT_MSG_SERIALNR return message with bus adres */

#define DGT_MSG_SERIALNR       (MESSAGE_BIT|DGT_SERIALNR)
#define DGT_SIZE_SERIALNR      12
/* returns 5 ASCII decimal serial number + space + 3 byte version string: */
/* byte 0-5 serial number string, sixth byte is LSByte          */
/* byte 6: space */
/* byte 7-9: Internal storage version nr: format "1.0"        */
/* Message format DGT_MSG_EE_MOVES, which is the contens of the storage array */

nei byte 10 e 11 cosa si aspetta ? E poi non si parla di byte ID code e Byte lunghezza messaggio
come succede di solito per altre risposte

Il codice intero lo allego perche è lunghino e supero i 9000 caratteri



Code: [Select]


      case 0x45: //DGT_RETURN_SERIALNR 0x45 E
        //DGT_MSG_SERIALNR       (MESSAGE_BIT|DGT_SERIALNR)
        //DGT_SIZE_SERIALNR      12
        idcode=MESSAGE_BIT|DGT_SERIALNR;
        lunghH=0;lunghL=12;
        Serial.print(SerN);//Serial Number in decimal digit
        Serial.print(" ");
        Serial.print(VerN);//Version Number in decimal digit
        Serial.print(EE_POWERUP,HEX);Serial.print(EE_BEGINPOS);Serial.print(EE_EOF);
        Serial.flush();
        break;



EtaBetaPot

Ciao Paolo, devo dire che sei un grande.. mi stai aiutando molto alla realizzazione del mio progetto e ti ringrazio moltissimo. Si ho win10, ma anche su win7 Arduino non riconosce Rabbit... Ho provato anche sui PC delle mie figlie senza ottenere nulla, ho una casa stregata ? Boh....

Comunque ho deciso di rinunciare ai tentativi di dialogo tra Rabbit e Arduino, altrimenti non vado avanti con il mio proggetto.  Mi sono intestardito nell'usare Rabbit perché è il plugin utilizzato dalle recenti versioni del programma di scacchi Fritz per comunicare con board esterna DGT. Oggi ho potuto installare sul PC una vecchia versione di Fritz, usavo la versione 14 ora sto usando la 8 e con il driver DGT in DGTBoardTester è tutta un'altra cosa.
Il tuo programma funziona alla grande  ;D  ;)  Ti mando allegata al post l'immagine del riconoscimento scacchiera DGT da Fritz8.
Le risposte ai comandi "G" [0x47 DGT_MSG_TRADEMARK] ed "E" [0x45 DGT_RETURN_SERIALNR] funzionano bene.
Poi Fritz esegue costantemente fino ad una risposta da parte di Arduino, altre quattro interrogazioni, le FA e KB cioè le seguenti : [0x46 DGT_RETURN_BUSADRES][0x41 DGT_SEND_CLK][0x4b DGT_SEND_UPDATE_NICE][0x42 DGT_SEND_BRD]. Proverò a lavorarci sopra, e ti manderò i miei risultati.
Ciao e buona domenica.
Igor





PaoloF_60

Anche a me con fritz funziona meglio ma per i pezzi le posizioni sulla scacchiera come fai con i tag rfid
avevo letto che era tua intenzione usare quelli. Ma le caselle sotto la tastiera come le realizzi.

EtaBetaPot

Ciao Paolo, ho usato il lettore  RC522 e i TAGS 213 che ho posizionato sotto ogni pezzo scacchistico dopo averli programmati per l'identificazione...
Codice memorizzato nei tag per identificare i pezzi:
 Pedone bianco  ♙ >>  01  / Pedone nero  ♟ >>  07 
 Torre bianca   ♖ >>  02  / Torre nera   ♜ >>  08 
 Cavallo bianco ♘ >>  03  / Cavallo nero ♞ >>  09 
 Alfiere bianco ♗ >>  04  / Alfiere nero ♝ >>  0a 
 Re bianco      ♔ >>  05  / Re nero      ♚ >>  0b
 Regina bianca  ♕ >>  06  / Regina nera  ♛ >>  0c .

Sotto ogni casella della scacchiera ho realizzato una coil di tre spire e le 64 coil così ricavate le ho multiplexate con due IC ADG708 (uno per le otto colonne e uno per le otto righe) come da schema allegato..
Sto utilizzando l'Arduino Mega per facilitarmi in qualche modo tutte le prove che sto facendo, ma il tutto penso poi di realizzarlo con il PIC18F452. ll progetto prevede anche una matrice di led 9x9 per segnalare le mosse effettuate dal motore scacchistico e uno schermo touch per gestire tutte le funzionalità della scacchiera. L'hardware per il motore scacchistico devo ancora sceglierlo, nel web c'è il progetto PicoChess realizzato con RaspBerry, ma conto di utilizzare un hardware con prestazioni superiori, vedremo...
Ho una bella idea anche per la realizzazione dell'orologio scacchistico... ma questa è un'altra storia.
Ti saluto e ti aggiornerò man mano dei risultati.
Igor

PaoloF_60

Ma la matrice di antenne è solo un' idea o l' hai provata realmente, oppure hai visto note applicative in quel senso, per quel che ho visto l' antenna deve essere accordata alla frequenza di lavoro del trasmettitore con determinate resistenze della bobina oltre che induttanza della bobina e con i condensatori per l' accordamento.

EtaBetaPot

Ci sto lavorando Paolo... ti terrò aggiornato.
Ciao

ROX51

Salve sto cercando con le mie misere conoscenze di costruire una sccchiera simile a quelle DGT ma mi sono arenato nel riuscire ad emulare la scacchiera con arduino ...... visto che mi sembra di capire che voi state decisamente più avanti mi date un aiutino ?

grazie

gpb01

>ROX51: essendo il tuo primo post, nel rispetto del regolamento della sezione Italiana del forum (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con MOLTA attenzione il su citato REGOLAMENTO ... Grazie. :)

Guglielmo

P.S.: Ti ricordo che, fino a quando non sarà fatta la presentazione, nessuno ti potrà rispondere, quindi ti consiglio di farla al più presto. ;)
Search is Your friend ... or I am Your enemy !

Go Up