Logoplus

                    et

       la gestion des ports USB.

 

Deux possibilités de cartes de communication USB, non exclusives:

1- Carte K8055/VM110: 

2- Carte K8061/VM140: 

       La plupart des versions LOGO existantes n'offrent pas ou peu de possibilités de communiquer avec le monde réel ou extérieur. Logoplus disposait déjà de quelques fonctions pour envoyer ou recevoir des données via le port série mais celui-ci, détrôné par la technologie des ports USB, a disparu des ordinateurs récents. Il était donc urgent de doter Logoplus d'une gestion facile des ports USB et c'est ce que permet la nouvelle version de Logoplus (Logoplus USB/Multi-Gfx), cela grâce à plus de vingt primitives qui figurent dans le tableau ci-dessous qui gèrent au choix soit la carte de communication K8055/VM110 ou la carte étendue K8061/VM140 que vous pouvez observer juste au dessus. Ces cartes sont fabriquées par la société belge d'électronique Velleman. On peut les obtenir pour une cinquantaine d'Euros chacune en passant commande auprès du  distributeur de son choix, soit sous forme d'un kit à monter soi-même (159 points de soudure fine à réaliser tout de même), soit achetée toute montée (VM110 ou VM140). Chacune de ces cartes une fois assemblées et reliées à l'ordinateur, rendent réalistes toutes les applications robotiques en LOGO dont vous avez rêvées.

Attention ! : La carte K8055/VM110 a été conçue pour fonctionner à partir d'un port USB 1.0 . La société Velleman garantissait sa compatibilité avec les ports USB 2.0 mais il semble à ce jour ( 13/11/09) que les ordinateurs récents équipés de Windows XP ne la reconnaissent pas (message "périphérique inconnu"). Cette carte n'est d'ailleurs pas prévue pour fonctionner sous Windows Vista. 

Le tableau suivant montre les instructions équivalentes aux primitives LOGO dans les autres langages de programmation couramment utilisés, ainsi que l'action qu'elles effectuent. Ces primitives USB figurent aussi dans le catalogue des primitives. 
Procédures en Delphi, C, VB,
Procédures en LOGO
  Action effectuée:
Procédures de connection/fermeture:
K8055: OpenDevice(CardAddress) 
K8061: OpenDevice
CONNECTE :a 
CONNEXIONS
Ouvre le lien de communication avec le K8055.
Ouvre le lien avec K8061 et retourne une valeur entre 0 et 7 correspondant aux cavaliers(A1,A2,A3)
K8055: CloseDevice
K8061: CloseDevices
DECONNECTE
 
Ferme le lien avec le K8055 et/ou K8061.
Procédures d'entrées analogique (de 0 à 5 volts):
K8055: ReadAnalogChannel(Channelno)
 
 
 K8061:
 ReadAnalogChannel(Cardno,Channelno)
CANAL? :c
 
 
 
CANAL? : carte :canal
Lit l'état d'un canal d'entrée analogique et rend un nombre compris entre 0 et 255. 
 
 
Lit l'état d'un canal d'entrée analogique et rend un nombre compris entre 0 et 255 (0<= : carte <= 7).
K8055: ReadAllAnalog(Data1, Data2)
   
K8061: ReadAllAnalog( Cardn, Buffer)
CANAUX?
 
 
 CANAUX? : carte
 
 Lit l'état des deux canaux d'entrée analogique et rend une liste de deux nombres compris entre 0 et 255.
Lit l'état des deux canaux d'entrée analogique et rend une liste de deux nombres compris entre 0 et 32767 (0<= : carte <= 7).
Procédures de sortie analogique (de 0 à 5 volts):
K8055: OutputAnalogChannel(Channel,Data)
 
K8061: OutputAnalogChannel(Cardn, Channeln, data)
FIXECANAL :c :a
 
FIXECANAL : carte :c :a
Ajuste le canal de sortie analogique (:c = 1 ou 2) selon la donnée :a.
Ajuste le canal de sortie analogique (1<= :c <=8) selon la donnée :a. (0<= : carte <= 7)
K8055: OutputAllAnalog(Data1,Data2)  
 
 
K8061: OutputAllAnalog(Cardn, Buffer)
FIXECANAUX_A :a1 :a2
 
 FIXECANAUX_A : carte :a
Ajuste les deux canaux de sortie analogique selon les données respectives :a1 et :a2 (comprises entre 0 et 255).
Ajuste tous les  canaux de sortie analogique de la carte selon la valeur de :a (comprise entre 0 et 255), (0<= : carte <= 7).
K8055: ClearAnalogChannel(Channel)
 
 
K8061: ClearAnalogChannel(Cardn,Channel)
CANAL_MIN :c
 
 
CANAL_MIN : carte :c
Fixe le canal de sortie analogique sur le minimum (0).
Fixe le canal de sortie analogique sur le minimum (0).
(0<= : carte <= 7)
K8055: ClearAllAnalog
 
K8061: ClearAllAnalog(Cardn)
CANAUX_MIN
 
CANAUX_MIN : carte
Fixe les deux canaux de sortie analogique sur le minimum (0)
Fixe les deux canaux de sortie analogique sur le minimum (0)
(0<= : carte <= 7)
K8055: SetAnalogChannel(Channel)
 
K8061: SetAnalogChannel(Cardn, Channel)
CANAL_MAX :c
 
CANAL_MAX :carte :c
Fixe le canal de sortie analogique (:c =1 ou 2 ) sur le maximum (255)
Fixe le canal de sortie analogique (0<= : carte <= 7 et 1<= :c <=8) sur le maximum (255)
K8055: SetAllAnalog
 
K8061: SetAllAnalog(Cardn)
CANAUX_MAX
 
CANAUX_MAX : carte
Fixe les deux canaux de sortie analogique sur le maximum (255).
Fixe les huit canaux de sortie analogique sur le maximum (255),( 0<= : carte <= 7)
Procédures des sorties logiques (0=0 Volts ou 1 = 5 Volts):
K8055: WriteAllDigital(Data)
 
  
K8061: OutputAllDigital(Cardn, Data)
FIXECANAUX_L :a
 
 
FIXECANAUX_L : carte :a
Ajuste les sorties numériques selon la donnée :a (comprise entre 0 (00000000) et 255 (binaire: 11111111)).
Ajuste les sorties numériques selon la donnée :a (comprise entre 0 (00000000) et 255 (binaire: 11111111)), ),( 0<= : carte <= 7).
K8055: ClearDigitalChannel(Channel)
 
K8061: ClearDigitalChannel(Cardn, Channel)
FERMECANAL :c
 
 FERMECANAL 
           : carte :c
Eteint le canal de sortie logique (:c compris entre 1 et 8).
Eteint le canal de sortie logique (:c compris entre 1 et 8).
K8055: ClearAllDigital  
K8061: ClearAllDigital(Cardn)
FERMECANAUX  
FERMECANAUX  
              :carte
Eteint tous les canaux de sortie logique.
Eteint tous les canaux de sortie logique.( 0<= : carte <= 7)
K8055: SetDigitalChannel(Channel)
 
K8061: SetDigitalChannel(Cardn, Channel)
OUVRECANAL :c
 
 OUVRECANAL    
         :carte  :c
Ouvre le canal de sortie :c (compris entre 1 et 8).
Ouvre le canal de sortie :c (compris entre 1 et 8), .( 0<= : carte <= 7).
K8055: SetAllDigital  
K8061: SetAllDigital(Cardn)
OUVRECANAUX
OUVRECANAUX 
             :carte
Ouvre tous les canaux de sortie logique.
Ouvre tous les canaux de sortie logique. ( 0<= : carte <= 7).
Fonctions et procédures des entrées logiques (0=0 Volts ou 1 = 5 Volts):
K8055: ReadDigitalChannel(Channel)
 
 
K8061: ReadDigitalChannel(Cardn, Channel)
OUVERT? :c
 
 
OUVERT? :carte :c
Lit l'état du canal d'entrée(:c compris entre 1 et 5) et rends VRAI si le canal est ouvert, FAUX si il est fermé.
Lit l'état du canal d'entrée(:c compris entre 1 et 8) et rends VRAI si le canal est ouvert, FAUX si il est fermé. ( 0<= : carte <= 7).
K8055: ReadAllDigital(Buffer)
 
  
K8061: ReadAllDigital(Cardn, Buffer)
OUVERTS?
 
  
 
OUVERTS? :carte
 
Lit l'état de tous les canaux d'entrée et rend une liste binaire [c5 c4 c3 c2 c1] correspondant à l'état logique de chacun des cinq ports (0: port éteint ; 1: allumé).
Lit l'état de tous les canaux d'entrée et rend une liste binaire [c8 c7 c6 c5 c4 c3 c2 c1] correspondant à l'état logique de chacun des huit ports (0: port éteint ; 1: allumé). ( 0<= : carte <= 7).
Procédures et fonctions des compteurs:
K8055: ResetCounter(CounterNr)
INIT_COMPTEUR :c
Réinitialise le compteur d'impulsions 16 bit (:c = 1 ou 2) .
K8055: ReadCounter(CounterNr)
TOPS? :c
Lit le contenu du compteur d'impulsions (:c = 1 ou 2) et rend un nombre compris entre 0 et 255.
K8055: SetCounterDebounceTime(CounterNr, DebounceTime)  
 
 
Procédures spécifiques à la carte K8061/VM140:
FIXEREBOND :c :t
Ajuste le temps d'élimination du rebondissement selon le compteur d'impulsions (:c = 1 ou 2) et :t doit être compris entre 0 et 5000 (millisecondes).  
 
 
K8061: PowerGood(Cardn)
CONNEXION? : carte
 Rend vrai si la carte est correctement alimentée, faux sinon. ( 0<= : carte <= 7).
K8061: ReadVersion (Cardn, Buffer)
VERSION? : carte
Rend une liste contenant les informations techniques de la carte  ( 0<= : carte <= 7).
K8061: Connected(Cardn)
CABLE? : carte
Rend vrai si la carte est présente et que la connexion s'effectue normalement, faux sinon ( 0<= : carte <= 7).
K8061: OutputPWM(Cardn, Data)  

 

Procédure switch K8055/K8061: indispensable à ajouter dans chaque bloc d'un programme LOGO.

CARTEUSB "VM110 (ou CARTEUSB "K8055)

FIXEPWM :carte :a  
 
 
 
 
 
Ajuste la sortie PWM de la carte ( 0<= : carte <= 7). A la valeur :a (0<= :a <= 1023)  
 

 

 

CARTEUSB "VM140 (ou CARTEUSB "K8061)

 

Voir également la liste des primitives USB modifiées. cliquer ici >>

Trois textes LOGO illustrent les possibilités d'action sur la carte de communication USB et permettront aux passionnés de robotique de commencer une programmation de leur robot favori:  

Pour lire le texte de lecture des entrées logiques, cliquer ici >>

Pour lire le texte d'écriture sur les sorties logiques, cliquer ici >>

Pour lire le texte d'écriture sur les sorties analogiques, cliquer ici >>

Pour télécharger le programme LOGO d'une interface graphique pour piloter les sorties logiques de la carte USB, cliquer ici >>

Pour télécharger des exemples de procédures pour piloter au clavier un bras-robot, 
cliquer ici >>

Pour contrôler toutes sortes de moteurs à courant continu, il est préférable de les faire piloter au moyen de relais, via les sorties logiques de la carte USB:

Deux nouvelles primitives LOGO ont été implémentées et qui ouvrent une fenêtre interface relativement pour chaque carte Velleman. Cette nouvelle primitive est WINUSB1 pour la carte K8055/VM110 et WINUSB2 pour la carte K8061/VM140.

WINUSB1:

 

Comme on l'observe, cette fenêtre d'interface permet de fixer les tensions aux sorties logiques (0 ou 5 Volts) et de graduer la valeur des tensions des sorties analogiques. Il est possible  d'informer la fenêtre de la tension analogique maximale (ici 5 Volts sur les deux canaux) pour avoir une mesure exacte de la tension reçue sur chaque entrée. Cette fenêtre présente également le double avantage de traduire en temps réel en LOGO les consignes données aux sorties et de temporiser les consignes en intercalant au besoin la primitive ATTENDS. Elle remplace avantageusement le logiciel de démonstration livré avec la carte K8055/VM110. L'ouverture de cette fenêtre est également possible dans l'éditeur en cliquant sur la primitive WINUSB1 du catalogue.

WINUSB2:

 

Proposition de deux cartes-relais à construire soi-même: 

1) Typon d'une carte-relais à connecter sur les sorties logiques de K8055.   Cliquer ici >>
    Les relais sont disponibles chez Conrad sous la référence 50 45 99-20 (5VDC Sil Reed 1T)
 
2) Autre typon d'une carte-relais à connecter sur les sorties logiques de K8055. Cliquer ici >>
Les relais sont disponibles chez Tandy  . (Relais SPST 275-232 5VDC 1A 250 Ohms)
 
Les typons sont à imprimer sur un support transparent (calque, feuille plastique rétroprojecteur avant insolation et gravure). 

Quelques adresses où commander la carte interface USB:

La société Velleman: http://www.velleman.be/nl/fr/product/view/?id=351346

(Petit conseil: l'anode des DEL (la plus grande électrode) doit être orientée vers le côté des 8 sorties logiques avant soudage)

Le distributeur gotronic: http://www.gotronic.fr/catalog/micro/micro-frame.php?page_cible=interface.htm

Le distributeur Sélectronic: http://www.selectronic.fr/

Le distributeur e44: http://www.e44.com/ 

 

Les applications en robotique ne manquent pas. Voyez plutôt:

La résolution du problème des tours de Hanoï:

Un collègue de l' Education Nationale, Jean-Pierre Krug, maître d'application à la retraite, a redonné vie au robot-Hanoï de Fischer Technik, qui résout le célèbre problème des empilements d'anneaux sur trois piquets, cela grâce à la carte VM110.

                            

Pour voir le travail réalisé par Jean-Pierre Krug (fichier pdf, 3Mo), cliquer ici >>. 
 
Pour regarder la vidéo relatant la résolution du problème de Hanoï par le robot de
 Jean-Pierre Krug, cliquer ici >>

Réalisation d'un monte-charge à 3 étages géré par Logoplus:

                                

Jean-Pierre a également réalisé cet autre travail encore plus délicat, comme vous pourrez le voir en cliquant ici >>

 

Le travail de Jean-Louis Barbedette: l'e-toutou:

  Jean-Louis Barbedette est déjà connu pour ses travaux sur le chariot programmé en LOGO sur les TO7/MO5 et pour ses conseils dans la mise au point de Logoplus. Il a ainsi amélioré son chariot en le dotant de capteurs optiques et tactiles et l'a fait ensuite évoluer sur le circuit suivant:

                 

Pour voir le fichier qui détaille son travail, cliquer ici >>
 
Retourner à la page d'accueil >> 

Haut de page >>