Je n'arrive pas à recevoir de données sur le moniteur série ArduinoStudio sur Ubuntu 14.04 [fermé]

11

J'utilise le kit de démarrage Arduino, j'ai donc un Uno R3 et en passant par les exemples, j'essaie de lire les données de température de mon contrôleur dans Arduino Studio.

En substance, mon problème peut être réduit à

void setup() {
    Serial.begin(9600);
}

void loop() {
    Serial.print("stuff");
}

Ce à quoi je m'attendrais à continuer d'imprimer des "trucs" sur le moniteur série.

(En pratique, j'exécute ce code exact, mais toutes les lectures de température en cours ne sont pas pertinentes pour mon problème, je le mentionne simplement parce que je peux observer que mes LED s'allument lorsque la température augmente, donc je sais que le code est téléchargé et fonctionnant sur le Duo).

Je ne vois aucune erreur dans la console de studio, et si je me connecte en utilisant gtktermou que screenje peux voir des données envoyées, le problème semble être isolé sur le moniteur série AndroidStudio lui-même.

J'utilise Ubuntu 14.04 et je me suis connecté via USB /dev/ttyACM3.

J'ai essayé de courir

stty -F / dev / ttyACM3 cs8 9600 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke noflsh -ixon -crtscts

comme suggéré ici et j'ai aussi essayé avec baud 115200, en prenant soin de changer aussi la valeur de ma setupfonction.

J'ai aussi couru

chmod a + rw / dev / ttyACM3

Mais je ne vois toujours aucune erreur ou sortie. Comment procéder pour déboguer ce problème?

Courir ls -l /dev/ttyACM*donne

crw-rw ---- 1 root dialout 166, 0 fév. 20 14:22 / dev / ttyACM0

crw-rw ---- 1 root dialout 166, 1 fév. 20 14:22 / dev / ttyACM1

crw-rw ---- 1 root dialout 166, 2 fév. 20 14:22 / dev / ttyACM2

crw-rw-rw- 1 numérotation racine 166, 3 fév. 20 14:30 / dev / ttyACM3

ivarni
la source
1
Testez GtkTerm ou PuTTY.
Mikael Patel
@MikaelPatel Merci, cela devrait m'aider à isoler le problème au moins :)
ivarni
1
Quelle est la sortie de "ls -l / dev / ttyACM *"?
Avamander
2
Essayez de mettre la chaîne "stuff" entre guillemets doubles au lieu de guillemets simples.
Avamander
1
Je vote pour clore cette vieille question non résolue car le demandeur signale dans les commentaires que "je ne possède ni l'arduino lui-même ni l'ordinateur que j'utilisais plus", ce qui signifie qu'il sera impossible de résoudre définitivement ce problème.
Chris Stratton

Réponses:

0

Par défaut, sur un système Linux sans règles de liaison udev spécifiques pour renommer le périphérique en quelque chose de non standard, le pilote FTDI doit mapper l'USB au port série sur / dev / ttyUSB * et non à / dev / ttbACM *. Je soupçonne que vous cherchiez juste au mauvais endroit. Je pense qu'il s'agit par défaut de / dev / ttyUSB * pour toute clé USB vers série:

usb-serial.c:   usb_serial_tty_driver->name = "ttyUSB";
louigi600
la source
Afin de vous assurer que vous recherchez dans le fichier de périphérique correct, exécutez "sudo dmesg -C" avant de brancher l'Arduino, et ensuite juste "sudo dmesg" pour voir où le convertisseur USB vers série a été connecté. Vous devriez voir un message semblable à ceci: le convertisseur ch341-uart est maintenant attaché à ttyUSB0 où le ch341-uart est remplacé par ce que votre arduino a (très probablement FT232'ish)
louigi600
Ce n'est probablement pas applicable. La publication prétend utiliser un Uno R3, qui n'a pas de FTDI mais a plutôt une implémentation série USB personnalisée dans un ATmega16u2 qui sera mappé en tant que périphérique ttyACM et non ttyUSB - cela ne se produit que sur les cartes utilisant d'autres solutions série USB, comme les anciens Arduinos et les clones assortis et compatibles.
Chris Stratton
Ok mais toujours en faisant la chose dmesg vous dira quel est le bon périphérique que linux assigne à l'arduino .... il ne montrera pas ch340 ou FT * .... mais il rapportera toujours quel est le fichier spécial de caractère assigné dans / dev.
louigi600