Go Down

Topic: PJON - Multi-master, multi-media network protocol stack  (Read 55037 times) previous topic - next topic

manolomao

 :o  Ok Guglielmo...
Scusa...
però se esiste una guida in italiano sulla libreria ne sarei grato..

gioscarab

Ciao Maolomao! Scusate il ritardo nella risposta. Siamo in corsa per il rilascio della versione 11, che conterra' moltissime novita' tra cui il supporto per network switch e router (entrambi in grado di funzionare trasparentemente qualsiasi esso sia il datalink in uso tra quelli supportati).

Purtroppo anche se sono italiano  :) , non ho avuto il tempo di scrivere una guida o la documentazione in italiano.

Community robotica / programmazione Arduino
www.gioblu.com
PJON multimaster communications bus system for Arduino and IOT https://github.com/gioblu/PJON

manolomao

Ciao tutti.
Dopo svariati tentativi e sbattimenti di testa contro il muro, sono riuscito a far scambiare i dati tra i due arduino con PJON.
Però c'è qualcosa che non mi convince...se premo un pulsante mi aspetto che dall'altra parte reagisca accendendo il relè, ma questo lo fa con un ritardo o a volte rimbalza; ho guardato sul monitor seriale ed ho visto che ci sono tanti errori e credo che il fatto di attuare in ritardo sia dovuto a questo, tanti pacchetti vengono persi o arrivano in ritardo...non so..
il monitor seriale mi dice :
Code: [Select]
Packet buffer is full, has now a length of 5
Possible wrong bus configuration!
higher PJON_MAX_PACKETS if necessary.

e a volte anche di aver perso la comunicazione con ID 20 (che sarebbe uno dei due arduino).
Quindi quando va a buon fine funziona perfettamente, quando compaiono tutti questi errori si rallenta il tutto...
Chi può aiutarmi a districarmi in questo problema??Date le mie scarse capacità da programmatore, sono in un vicolo cieco...
Per farvi capire.....ho provato a partire con un semplice pulsante, per poi mandare una stringa con diversi comandi e ricevere dati da sensori di temperatura... quindi sono partito dal facile, ma gli errori li ho sempre avuti...

gioscarab

Ciao manolomao, controllerei il rate di trasmissione di ogni modulo e cercherei di ridurlo al minimo necessario. Se tutti i device trasmettono ininterrottamente e' facile che avvengano delle collisioni e un invio non vada a buon fine. Ma avrei bisogno di dare un occhio al tuo codice per darti consigli piu' precisi, per favore postalo qui in modo che possa darci un' occhiata.
Community robotica / programmazione Arduino
www.gioblu.com
PJON multimaster communications bus system for Arduino and IOT https://github.com/gioblu/PJON

gioscarab

Ciao Mauro ho dato un'occhiata al tuo codice. Stai spedendo un pacchetto ogni giro di loop, cosi' non puo' funzionare. busRS485.update(); ritorna il numero di pacchetti che sono ancora da spedire, quindi se invii con send un pacchetto, update ritornera' 1 finche' quel pacchetto non e' stato inviato con successo. Invece che chiamare send a ogni ciclo, chiama come in quasi tutti gli esempi viene mostrato:
 
if(!bus.update()) // If all packets are delivered, send another
    bus.send(44, content, 20);

Cerca anche di avere una sola chiamata a receive e update per loop, usane di piu' solo se strettamente necessario cosi' hai chiaro cosa sta succedendo e in che ordine.
Community robotica / programmazione Arduino
www.gioblu.com
PJON multimaster communications bus system for Arduino and IOT https://github.com/gioblu/PJON

Go Up