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 ?
Communication AutoIt-Arduino via port série
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
- TomAijerrie
- Niveau 5
- Messages : 192
- Enregistré le : lun. 02 juin 2014 09:55
- Localisation : Lyon
- Status : Hors ligne
- orax
- Modérateur
- Messages : 1479
- Enregistré le : lun. 23 mars 2009 04:50
- Localisation : ::1
- Status : Hors ligne
Re: Communication AutoIt-Arduino via port série
Je n'ai pas cette erreur, je pense tu as dû mal faire quelque chose.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é.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
- TomAijerrie
- Niveau 5
- Messages : 192
- Enregistré le : lun. 02 juin 2014 09:55
- Localisation : Lyon
- Status : Hors ligne
Re: Communication AutoIt-Arduino via port série
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
J'ai corrigé, mais la carte ne reçoit tjrs rien, il faut que je retrouve comment tout configurer.
Merci
- TommyDDR
- Modérateur
- Messages : 2086
- Enregistré le : mar. 22 juil. 2008 21:55
- Localisation : Nantes
- Status : Hors ligne
Re: Communication AutoIt-Arduino via port série
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))
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
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
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
- TomAijerrie
- Niveau 5
- Messages : 192
- Enregistré le : lun. 02 juin 2014 09:55
- Localisation : Lyon
- Status : Hors ligne
Re: Communication AutoIt-Arduino via port série
Merci, je testerais ça quand je pourrais.