LOCODUINO
Discussions Générales => Bus CAN => Discussion démarrée par: Jean-Luc le mai 03, 2021, 05:33:38 pm
-
Bonjour à tous,
Pierre Molinaro a finalisé la bibliothèque ACAN pour ESP32 avec examples et doc 8)
Elle est disponible dans le gestionnaire de bibliothèques sous le nom ACAN_ESP32.
-
Super,
Merci à toi et à Pierre d’avoir été si vite ;D
Ce sera une bonne entrée en matière pour expliquer les filtres et les masques.
Et on pourra l’intégrer à LaBox. A moi de faire quelques exemples!
-
Merci à Pierre Molinaro et à Jean-Luc. ;D
C'est ce que je demandais : un ACAN ESP 32 ::)
Comme ça, on sera "dans le moule.
Denis
-
Merci pour cette réalisation !
-
Bonjour,
Ce message n'est pas vraiment sur le sujet mais, je n'ai pas trouvé où le raccrocher.
Question:
A ce que j'ai compris, les bibliothèques ACAN ne sont pas compatible avec l'Arduino Due or les fonctionnalités de ACAN sont très intéressantes pour manipuler les data.
Qu'elle bibliothèque conseillerez-vous pour le Due ?
Merci.
-
Bonjour,
sauf erreur, Dominique utilise cette bibliothèque.
https://www.arduinolibraries.info/libraries/due_can
Il pourra peut-être en dire plus.
-
msport a raison, je peux en dire plus :D :D :D
J'utilise effectivement la bibliothèque due_can que je joins en PJ
Une bonne initiation est donnée dans ce programme CAN_trafficSniffer.ino
Il y a une définition très interessante dans ACAN que vous pouvez utiliser dans votre programme pour manipuler les 8 octets de données :
public : union {
uint64_t data64 ; // Caution: subject to endianness
uint32_t data32 [2] ; // Caution: subject to endianness
uint16_t data16 [4] ; // Caution: subject to endianness
float dataFloat [2] ; // Caution: subject to endianness
uint8_t data [8] = {0, 0, 0, 0, 0, 0, 0, 0} ;
} ;
Cela permet de lire et écrire directement différents types de variables dans ces 8 octets selon vos besoins et sans programme de conversion de type à écrire.
Attention "Caution: subject to endianness" signifie que cela peut ne pas marcher lorsque votre système ne place pas les octets dans le bon ordre... debugguer avec des Serial.print permet de détecter le problème.
Dans mon projet j'ai 2 Due, l'un pour le gestionnaire global du réseau que je publierai prochainement et l'autre pour un testeur et aide à la mise au point qui utilise un écran graphique et quelques boutons permettant de construire des modules de test comme on veut. Je le joins dans son état actuel, en chantier et plein de promesses, mais pas fini >:(
L'essentiel de la gestion Can se trouve dasn le fichier canmessages.h
-
Bonjour,
Un grand merci à msport et surtout Dominique pour leurs réponses précises et très rapides.
J'utilise déjà effectivement la bibliothèque due_can et je suis aussi déjà informé du piège de la permutation des bits de poids fort et faible en fonction du type d'Arduino utilisé, une piqûre de rappel ne fait pas de mal de toute façon.
Merci pour les fichiers joints et les explications sur la manipulation de données (je suis dans le cas de 4 blocs de 8 bits, chaque bit portant une donnée spécifique à gérer une par une).
Le testeur sera très utile, j'en suivrai les annonces.
Je regarde tout ça et reviendrai ici pour vous dire le résultat.
Patrick
-
Bonjour à tous,
Pierre Molinaro a finalisé la bibliothèque ACAN pour ESP32 avec examples et doc 8)
Elle est disponible dans le gestionnaire de bibliothèques sous le nom ACAN_ESP32.
Bonsoir,
Je reviens sur le sujet ACAN sur ESP32 (après un long séjour de mon projet dans le placard).
J'ai voulu mettre à jour mes librairies et ACAN_ESP32 passe à la version 1.1.0. Et là plus rien ne va.
Je suis retourné aux exemples inclus dans la librarie (le plus simple: loopback) et de même impossible de compiler avec des définitions manquantes (TWAI_TX_IDX et d'autres similaires)
(TWAI - Two Wire Auto Interface sembre être utilisé par Espressif au lieu de CAN)
J'ai ensuite remis une version plus ancienne 1.0.6 et alors cela remarche. Il semble que là les anciens noms CAN_TX_IDX et similaires sont utilisés.
Est-ce quelqu'un a essayé d'utiliser cette version ?
Merci pour toute aide ou commentaires
Jean-Paul
-
J'ai eu ce problème et ai échangé avec Pierre à ce sujet, voir ici : https://github.com/pierremolinaro/acan-esp32/issues/6
Sinon, effectivement il faut rester en 1.0.6. Ceci est d'autant plus facile si on utilise PlateformIO : lib_deps = pierremolinaro/ACAN_ESP32@=1.0.6
-
Merci pour la réponse ultra-rapide.
J'ai vérifié la version du 'board' ESP32: j'avais 1.0.6 alors que la version courante est 2.0.7 !
Pour y accéder il faut mettre le bon lien dans les préférences : https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json (au lieu de https://dl.espressif.com/dl/package_esp32_index.json qui ne donne pas accès aux versions au dela de 1.0.6)
J'ai ensuite remis la version 1.1.0 de la librairie ACAN_ESP32 et cela compile OK.
En définitive, mon environment:
Win 10, IDE 1.8.13, board ESP32 2.0.7, librairie ACAN_ESP32 1.1.0.
Jean-Paul