Bonjour à tous. J’ai un souci. Je voudrais surveiller mes variables. Oui mais l’ide réinitialise à chaque branchement l’arduino… C’est donc embêtant. Une solution consisterait à enregistrer sur une carte SD mes variables pour les relire à posteriori mais ça fonctionne en SPI et j’ai déjà un module de transmission dessus.
Ma question: Peut-on brancher 2 modules en SPI sur le même arduino ? Sinon y a t-il d’autres solutions ?
Si vous pouvez brancher un ordinateur sur le port série de votre Arduino, vous pouvez aussi imprimer de temps en temps les variables ➜ sur l’ordinateur, ouvrez un terminal série et laissez défiler les valeurs.
Certains logiciels de terminal série peuvent même les enregistrer directement dans un fichier sur votre ordinateur. ça évite de rajouter la SD si c'est ponctuel / pour le debug.
En fait j’ai des variables initialisées la nuit et au milieu de la nuit. Je voudrais suivre le bon travail de la bête. Quand tu parles de l’EEPROM je pense que c’est la memoire flash. Sinon si je pouvais mettre mes variables périodiquement dans un tableau, je pourrais éditer des statistiques. Pour cette raison, je pensais à la carte SD. Mais comme je dispose de raspberry à la maison; ce serait bien de s’en servir… Mais il n’existe pas d’editeur arduino pour raspberry. En bref, j’ai encore bien des lacunes à combler.
J’ai des PC sous linux exclusivement. en ouvrant les TTY disponibles, rien ne s’affiche. Il y a surement une connexion que je ne sais pas faire. Je connais le PHP et la gestion de tableau, mais je ne sais pas comment lire les données entrantes.
Il est possible de désactiver la réserve en plaçant un condensateur de 10 µF entre la masse et le RST.
Une autre option consiste à utiliser un convertisseur USB vers TTL séparé, connecté aux broches Tx et Rx. La réinitialisation depuis l'IDE, ouvrant le moniteur série, est effectuée par le convertisseur USB vers TTL intégré (le 16u2).
La meilleure solution reste d'utiliser l'EEPROM, une mémoire interne non volatile. Elle vous protégera également contre la perte de données en cas de réinitialisation accidentelle de l'Arduino et est beaucoup plus simple à mettre en œuvre qu'une carte SD.
Non je parle de l'EEPROM, comme tu n'as pas précisé quellle carte tu utilises j'ai supposé que c'était une UNO.
Par contre si tu dois y écrire souvent ce n'est peut-être pas une bonne solution.
Pas dans la version 2.x.x mais si tu choisis Legacy IDE il y a des versions 1.8.x pour ARM
Si tu arrives à télécharger c'est que tu disposes déjà des droits sur dialout. Donc tu as accès aux ports série.
Tu peux faire un ls /dev/tty* pour voir quel port est associé à ta carte. Généralement ttyUSBx ou ttyACMx.
Il suffit que tu installes minicom par exemple et que tu l'ouvres sur le port sur lequel ton Arduino est connecté. Pour ce faire il faut que l'IDE soit fermé ou à minima que le volet du moniteur série soit fermé, sinon la connexion est refusée puisqu'il ne peut y avoir qu'un seul utilisateur sur le port série.
C'est-à-dire?
Le fichier n'est pas créé, le fichier est vide, quel programme utilises-tu pour le test?
Wayland n'a rien à voir là-dedans.
Pourquoi ne pas utiliser minicom.
Tu peux visualiser en directe ce qui arrive, ce qui permet de s'assurer de la validité de la connexion, et faire un fichier de log des transferts, pour consulter ultérieurement. Tu peux même faire un horodatage des lignes si tu le désires.
Pratique en effet pour éviter un reboot, mais pas pratique pour recompiler un schéma modifié. Ce n’est pas la solution idéale tout en restant une solution.
Non, l'IDE ne recompile pas systématiquement.
Si on démarre l'IDE, que l'on branche l'Arduino et qu'on ouvre le moniteur série ou voit les print envoyés par le code.
Si tu fermes l'IDE le code continue à tourner. Si tu rouvres l'IDE et relances le moniteur série, il ne va pas recompiler mais simplement faire un reset de l'Arduino.
Si tu utilises minicom, il faut que tu fasses partie du groupe dialout pour pouvoir ouvrir le port série. Mais cela doit être le cas si tu as déjà chargé un programme dans ta carte. Si ce n'est pas le cas il faut t'ajouter au groupe dialout par la commande suivante: sudo usermod -a -G dialout $USER
Il faut fermer la session puis la rouvrir pour que ce soit pris en compte.
Lorsque tu ouvres minicom tu peux passer en argument la configuration.
Sinon, tu fais minicom -s qui va lancer minicom et lui demander d'ouvrir le setup.
Là tu choisis le nom de ton device, le format de la liaison série, etc. Lorsque c'est bon tu fais esc et tu sélectionnes "Enregister config. sous dfl" cela va créer un fichier .minicom.dfl dans ton home et c'est ce que minicom utilisera par défaut lorsque tu ne passes aucun argument.
A tout moment, dans minicom, tu peux faire Ctrl+A puis Z pour ouvrir la fenêtre de paramètrage.
Oui effectivement, ça correspond à tout ce que j’ai fait, mais il semble que la console minicom lit de l’exa à en juger des caractères hétéroclites qu’elle m’affiche.
Tout les échanges se font en binaire. L'hexadécimal c'est juste une façon de présenter l'information.
Ce que l'on voit donne plus à penser à une mauvaise configuration de la ligne série.
Baudrate (9600) et/ou format des mots échangés (8 bits, 1 stop, pas de parité, pas de contrôle de flux)