Interfacer Gambas - commande de moteurs( Temps de lecture estimé à 5 min 45 sec )
           
PROGRAMME EN GAMBAS POUR LE PILOTAGE DE MOTEURS
PAS A PAS VIA LE PORT PARALLELE.
(Version Non Terminée)
réalisé par pierre D.
TABLE DES MATIERES
But de ce      programme
     Principe de      fonctionnement
     Utilisation      du programme
     Todo
     Licence
     Contact
BUT DE CE PROGRAMME
C 'est en désirant créer une application me permettant de commander des moteurs pas à pas afin de numériser des petites machines-outils que j 'ai développé ce petit programme.
Je vous présente ici une ébauche du programme final mais pas mal de choses reste encore à terminer.
Soyez indulgent car il s 'agit seulement  de  mon 2ème programme en Gambas. Si vous avez des remarques ou suggestions, vous pouvez me contacter à info@horlogedantan.com
Il existe sous linux une application très bien aboutie et ayant fait largement ses preuves EMC2 :
Mais ce que je recherche,  c 'est de développer une application interne destinée à une machine bien précise et dans ce cas EMC2 n 'est pas utilisable sauf réécriture de l 'interface en C.
Exemple d 'utilisation : tour numérique, table x,y, machine à tailler les engrenages, etc...
Ce que je vous propose ici, c 'est un programme avec un certain nombre de fonctions opérationnelles, bouton de déplacement des axes, fonction arrosage et arrêt urgence...
Ensuite, chacun à partir des sources (principe des programmes open source) peut utiliser et modifier le programme comme bon lui semble.
Actuellement, je sais uniquement commander le port parallèle mais si quelqu 'un désire le modifier et l 'adapter pour  l 'USB...
Par ailleurs, le port parallèle est en disparition mais il existe toujours des cartes d 'extension que vous pouvez ajouter à votre pc.
Une carte électronique va vous permettre d 'interpréter les signaux via un connecteur DB25.
Pour de petites applications, vous pouvez utiliser d 'anciens PC type pentium II avec une Debian de base avec une interface graphique légère et y installer Gambas.
J 'ai testé et c 'est efficace. Attention, pour les moteurs pas à pas, vous devez en principe utiliser un noyau en temps réel. Ce noyau est automatiquement utilisé lorsque vous installez la version spéciale Ubuntu-Emc (voir pour infos sur le site de Emc).
J 'avais fait des essais en Qbasic (plus développé actuellement), des essais en C mais il est difficile pour un débutant en programmation de réaliser facilement une interface graphique.
Après différents essais avec des basics, je me suis tourné vers Gambas. Durant ces derniers mois, Gambas s 'est développé fortement avec l 'apparition d 'un nouveau forum très dynamique, d 'un site et d 'un Wiki.:
Doc officielle : http://www.gambasdoc.org/help/howto/parport?fr
Wiki : http://wiki-gambas.eg2.fr/doku.php
Site sur EMC2 : http://linuxcnc.org/
PRINCIPE DE FONCTIONNEMENT
Contrairement à des moteurs conventionnels, les moteurs pas à pas se commandent via une électronique spéciale. Il faut distinguer trois parties :
La partie      commande qui gère les impulsions du port parallèle ainsi que les      buttées et fin de courses
     La partie      puissance qui commande directement les moteurs
     La partie      alimentation qui fournit l 'alimentation aux moteurs.
L 'électronique de commande reçoit des impulsions du port parallèle, elle se charge de les convertir et de commander ensuite le moteur.
Les impulsions sont des états hauts ou bas qui sont envoyés  sur les broches du port parallèle suivant le système binaire.
Pour envoyer une impulsion sur un moteur, vous devez ouvrir le fichier Linux qui gère les port DEV/PORT. Ensuite,  réaliser une boucle. Cette boucle écrit une valeur hexadecimale, pendant une temporisation de quelques millis secondes. En faisant varier la temporisation,  vous modifiez la vitesse du moteur.
Doc sur les moteurs pas à pas : http://fr.wikipedia.org/wiki/Moteur_pas_%C3%A0_pas
Carte de commande : http://www.otocoup.com/CarteL6208.htm
Site sur la cnc : http://cncloisirs.com
Fournisseur : www.soprolec.com
Doc sur le port parallèle : http://www.stielec.ac-aix-marseille.fr/cours/abati/centronic.htm
Voilà un exemple de code d 'écriture sur le port parallèle qui m 'a été aimablement fourni par Benoît Minisini, le concepteur de Gambas :
PUBLIC SUB Main()
DIM iValue AS Byte
DIM hPort AS File
hPort = OPEN /dev/port FOR READ WRITE
SEEK #hPort, &H378
iValue = 255
WRITE #hPort, iValue
PRINT ok
END
Pour m 'aider à comprendre le fonctionnement du port parallèle, j 'ai réalisé mon premier programme en gambas Moniteur d 'état du port parallèle qui permet d 'afficher les entrées et sorties du port. Ce programme est disponible sur le site ou je peux également vous l 'envoyer par mail . 
UTILISATION DU PROGRAMME
Pour pouvoir écrire sur le port parallèle en linux, vous devez être en Super Utilisateur (ROOT). 
Voilà comment le lancer sous ubuntu :
Gambas2 doit      être installé sur votre PC
     Lancer      Nautilus (explorateur de fichier) en Root pour changer les droits du      programme :
     
     
Alt+F2 et      ensuite GKSUDO Nautilus + votre mot de passeDans      Nautilus,  vous      vous rendez dans le répertoire du programme
     Clique droit      + permission et changer toutes les permissions en ROOT
     Lancer      Gambas en root et exécuter le programme Alt+F2 et ensuite GKSUDO      gambas2. 
Une autre possibilité est de créer un groupe suivant l 'astuce de Mr Laurent Carlier :
http://www.ac-creteil.fr/reseaux/systemes/linux/comptes-utilisateurs.html
http://www.yolinux.com/TUTORIALS/LinuxTutorialManagingGroups.html
TODO
Cette version du programme est une ébauche de la version finale, voilà un certain nombre de choses à faire :
Actuellement,      uniquement l 'axe X est disponible, ajout des commandes pour Y et Z
     Uniquement      les sorties sur le port parallèle sont utilisables. Mise en      fonction des entrées avec ainsi utilisation des butées
     Utilisation      d 'un fichier texte pour enregistrer et lire la configuration du      programme
     Mise en place d 'une rampe      d 'accélération nécessaire pour utiliser les moteurs pas à pas      dans certaines plages de vitesse
     Utilisation de touche de clavier pour      le lancement des fonctions
     Rajout de fonction telle       que prise d 'origine machine, etc...
Contribution de Pierre D. le 17/09/2009
);