mod66
Posts: 3
Joined: Mon Jan 22, 2018 9:01 pm

Communication Raspberry 0 W à Arduino Nano en Serial

Mon Jan 22, 2018 9:11 pm

Bonjour,

J'essaie depuis un certain de moment de faire communiquer un raspberry avec un arduino. Cela marche correctement par moments, j'envois pas exemple la commande "echo 2 > /dev/ttyUSB0" et l'arduino recoit bien mais parfois ca ne passe plus. Je précise que cela marche avec sans indiquer le baudrate.

Par contre si j'utilise par exemple picocom, que je fais une connection sur le baudrate 2400, et que je tape un 2, cela fonctionne a chaque coup.
Et en plus de cela, cela permet de faire à nouveau les commandes normales (echo). Jusqu'au prochain "bug" ou je dois ouvrir picocom pour pouvoir communiquer.

Une idée de comment soit contourner ce problème ?

Je vois deux solutions, existe-t-il un moyen de lancer une commande picocom sans devoir ouvrir ce terminal et ensuite le fermer ?
Ou alors, quelqu'un saurait-il me dire ce que picocom fait de plus en se connectant pour envoyer la commande ?

Merci d'avance, cela fait des semaines que je scrute le web sans réponse.

Simon

JumpZero
Posts: 852
Joined: Thu Mar 28, 2013 7:35 pm
Location: 127.0.0.1

Re: Communication Raspberry 0 W à Arduino Nano en Serial

Tue Jan 23, 2018 10:21 am

Bjr,
mod66 wrote:
Mon Jan 22, 2018 9:11 pm
Par contre si j'utilise par exemple picocom, que je fais une connection sur le baudrate 2400, et que je tape un 2, cela fonctionne a chaque coup.
Ceci semble dire que le paramètres (baud rate ou autre) change quand tu quittes picocom. Il est possible que le systeme retourne à des valeurs par défaut.
tu peux connaitre les réglages en cours avec cette commande

Code: Select all

stty -F /dev/ttyAMA0
remplace ttyAMA0 par le port que tu utilise (ttyS0 ?)
tu peux aussi les changer avec cette commande par exemple

Code: Select all

stty -F /dev/ttyS0 9600 cs8 -cstopb -parenb
pour avoir baud rate 9600, 8 bits, 1 stop bit, no parity
Dans tous les cas tu avoir les même réglages coté arduino et coté Rasperriy pi pour une communication ok.
115200 baud ça roule sans problème (sur une petite distance)
--
Jmp0

mod66
Posts: 3
Joined: Mon Jan 22, 2018 9:01 pm

Re: Communication Raspberry 0 W à Arduino Nano en Serial

Tue Jan 23, 2018 8:03 pm

Bonjour,

Merci pour votre réponse, j'ai donc testé cette commande : stty -F /dev/ttyUSB0

Code: Select all

speed 9600 baud; line = 0;
-brkint -imaxbel
suivi de mon test

Code: Select all

echo 2 > /dev/ttyUSB0
Mais rien ne se passe, je lance alors : picocom /dev/ttyUSB0 -b 2400

Code: Select all

picocom v1.7

port is        : /dev/ttyUSB0
flowcontrol    : none
baudrate is    : 2400
parity is      : none
databits are   : 8
escape is      : C-a
local echo is  : no
noinit is      : no
noreset is     : no
nolock is      : no
send_cmd is    : sz -vv
receive_cmd is : rz -vv
imap is        :
omap is        :
emap is        : crcrlf,delbs,
Je tape la touche 2, ca fonctionne.

Je quitte picocom et refait la commande :

Code: Select all

 stty -F /dev/ttyUSB0
speed 2400 baud; line = 0;
min = 1; time = 0;
-brkint -icrnl -imaxbel
-opost
-isig -icanon -iexten -echo
A présent la commande echo 2 > /dev/ttyUSB0 fonctionne.

J'ai redemarré le pi, j'exectue la commande :

Code: Select all

stty -F /dev/ttyUSB0 -brkint -icrnl -imaxbel -opost -isig -icanon -iexten -echo
Mais même en ayant les mêmes paramètres, ça ne fonctionne pas tandis qu'avec un lancement de picocom ca fonctionne a nouveau.

Je ne comprends pas.

Merci à vous en tout cas,

Simon.

JumpZero
Posts: 852
Joined: Thu Mar 28, 2013 7:35 pm
Location: 127.0.0.1

Re: Communication Raspberry 0 W à Arduino Nano en Serial

Thu Jan 25, 2018 6:13 pm

Bonjour,

la commande que tu tapes après avoir redémarré le Pi ne correspond pas aux paramètres que t'as donné picocom, il manque la vitesse.
Et puis tous ces paramètres:

Code: Select all

-brkint -icrnl -imaxbel -opost -isig -icanon -iexten -echo
je viens de jeter un oeil à la page de man

Code: Select all

man stty
je ne pense qu'il y en ai besoin, de toute façon ils semblent y être par défaut.

Si ça marche avec picocom en copiant ses paramètres on devrait avoir:

Code: Select all

stty -F /dev/ttyUSB0 2400 -crtscts -ixon -parenb cs8 -echo
C'est dans l'ordre: la vitesse à 2400 bauds; desactiver le controle de flux matériel (crt cts) et logiciel (xon xoff); désactiver la parité; 8bits de data; et pas d'echo.
Essaies ça devrait être mieux

Autrement il y a plus simple si tu connais un peu Python, avec le module serial pour faire dialoguer un Pi et un arduino nano je fais juste ça

Code: Select all

import serial
ser = serial.Serial('/dev/ttyUSB0', 115200)
Enfin juste ça, après il y a tout le code de dialogue. Donc si tu veux juste faire "echo 2" reste avec la première solution
A toi de voir
--
Jmp0

mod66
Posts: 3
Joined: Mon Jan 22, 2018 9:01 pm

Re: Communication Raspberry 0 W à Arduino Nano en Serial

Fri Jan 26, 2018 10:38 am

Hello,

Je vais tester les paramètres tantôt car je ne suis pas chez moi mais pour le python, j'avais essayé aussi mais je pensais avoir fait une erreur car j’appelais ce code depuis php avec system("python open1.py");

Code: Select all

#!/usr/bin/env python

import time
import serial

ser = serial.Serial(
   port='/dev/ttyUSB1',
   baudrate = 2400,
   parity=serial.PARITY_NONE,
   stopbits=serial.STOPBITS_ONE,
   bytesize=serial.EIGHTBITS,
   timeout=1
)
ser.write('2')
Mais ça avait le même soucis, ça ne fonctionne qu'après avoir ouvert picocom une fois.

Simon.

Return to “Français”

Who is online

Users browsing this forum: No registered users and 6 guests