Page 1 sur 1

Communication AutoIt-Arduino via port série

Posté : mer. 11 oct. 2017 12:46
par TomAijerrie
Bonjour (ou bonsoir)

J'ai une carte Arduino (Uno R3) et je souhaite qu'elle reçoive des informations envoyées par l'un de mes scripts, et qu'elle lui envoie d'autres infos.
Jusque là, pas de problème, j'ouvre l'IDE arduino, j'ouvre le moniteur série, et en récupérant le texte de la fenêtre et avec send(), je peux le faire (et ça marche)

Maintenant, je veux que la communication se fasse sans utiliser cette fenêtre.

J'ai donc fait des recherches pour savoir comment utiliser les ports séries, j'ai trouvé que deux solutions

Un UDF qui utilise une dll : https://www.autoitscript.com/forum/topi ... ent-341916 (en)
L'UDF/API du wiki en : https://www.autoitscript.com/wiki/CommAPI

Et... ça ne marche pas =(

Pour le premier, il n'arrive pas à "ouvrir" la dll (dllopen(...)), j'ai essayé de compiler en x86, en x64, mais tjrs la même erreur.
Pour le deuxième, après avoir copié/collé les 5/6 fichiers de l'UDF https://www.autoitscript.com/wiki/CommAPI#Scripts
il refuse de compiler car le tag $tagDCB n'est pas déclaré.

Connaissez vous une 3ème méthode ou savez vous comment faire marcher l'une des deux ?

Re: Communication AutoIt-Arduino via port série

Posté : mer. 11 oct. 2017 13:45
par orax
TomAijerrie a écrit : mer. 11 oct. 2017 12:46Pour le deuxième, après avoir copié/collé les 5/6 fichiers de l'UDF https://www.autoitscript.com/wiki/CommAPI#Scripts
il refuse de compiler car le tag $tagDCB n'est pas déclaré.
Je n'ai pas cette erreur, je pense tu as dû mal faire quelque chose.

Re: Communication AutoIt-Arduino via port série

Posté : mer. 11 oct. 2017 21:36
par TomAijerrie
Effectivement, j'ai inversé deux noms de fichiers.
J'ai corrigé, mais la carte ne reçoit tjrs rien, il faut que je retrouve comment tout configurer.

Merci

Re: Communication AutoIt-Arduino via port série

Posté : jeu. 19 oct. 2017 10:42
par TommyDDR
Bonjour,
J'avais fait le même type de programme avec l'UDF CommMg.au3 (je ne me souviens plus où je l'ai eu, je vous le joins au message.
Changez le "3" dans _CommSetPort pour correspondre avec le numéro de port où l'arduino est branché.
Le 9600 correspond à la vitesse de communication, il faut qu'elle corresponde à celle dans votre code sur l'arduino (Serial.begin(xxxx))
#include "CommMG.au3"

Connexion()
recv()

Func recv()
   Local $recv
   While(True)
      $recv = _CommGetString()
      If($recv <> "") Then
         ToolTip($recv)
      EndIf
      Sleep(200)
   WEnd
EndFunc

Func Connexion()
   Local $retErr
   _CommSetPort(3, $retErr, 9600, 8, "none", 1, 2)
   _CommSetXonXoffProperties(11,13,100,100)
;~    Reboot device
   _CommSetRTS(1)
   _CommSetDTR(1)
   _CommSetRTS(0)
   _CommSetDTR(0)
;~    Wait for boot time
   Sleep(2000)
EndFunc
CommMG.au3
(42.12 Kio) Téléchargé 374 fois

Re: Communication AutoIt-Arduino via port série

Posté : jeu. 19 oct. 2017 21:51
par TomAijerrie
Merci, je testerais ça quand je pourrais.