Afficher et commander les signaux de sortie d'un port parallèle

De L'abscisse - FabLab et Hackerspace de Dijon
Révision datée du 28 août 2013 à 09:25 par Fenwe (discussion | contributions) (explication sur la valeur a fournir)
Aller à : navigation, rechercher

Construire un petit circuit qui permet de visualiser et de récupérer les signaux de sortie d'un port parallèle. Les signaux seront activés par programmation du port //.

Présentation

Ce petit circuit permettra d'allumer une LED par sortie activée. 8 LEDs vertes pour les données (DATA) et 4 LEDs rouges pour les contrôles. Les connecteurs à plots permettent de récupérer le signal vers un autre montage si besoin. Il est possible de réaliser ce circuit sur une plaque d'expérimentation ou sur une plaque de cuivre. Les signaux seront activés par programmation du port // en Javascript ou en C.

IMG 4357.jpg

Schéma de principe

Schema fonctionnel parport.png

tracé du circuit imprimé

Niveau de difficulté

Orange.png

Outillage nécessaire

Composants nécessaires

  • un câble port parallèle DB 25
  • 8 LED vertes
  • 4 LED rouges
  • 12 résistances 150 Ohms (Marron Vert Marron)
  • 12 PIN - Barrette sécable à plots
  • plaque d'expérimentation à pastilles de 9 × 36

Étape par étape

Préparation du connecteur DB25

Le but est de conserver le connecteur mâle DB25, celui qui se branche sur l'ordinateur. Il faut donc couper le câble du côté opposé au connecteur que vous souhaitez conserver. Il faut ensuite enlever un bon bout de gaine, environ 5 cm, puis dénuder les 25 fils un à un. Enfin il faut étamer les fils un à un. Notre câble est prêt.

Repérer les fils

Avec le testeur de continuité, il faut tester les fils pour déterminer la couleur de chacun. On prendra soin de noter sur une feuille la correspondance entre le numéro de PIN du connecteur et la couleur du fil.

Préparation de la plaque

Découper une plaque 9 × 36 pastilles (3 pastilles par LED sur la longueur) qui va accueillir les quelques composants nécessaires au montage.

Programmation du port //

NodeJS

Node.js est un framework libre événementiel en JavaScript orienté vers les applications réseau.
Source : http://fr.wikipedia.org/wiki/Node.js

Site officiel de NodeJS: http://nodejs.org/

Installation de NodeJS

Sous Debian et dérivé (Ubuntu) :

   # apt-get install nodejs

Sous Mageia :

   # urpmi nodejs

Installation du paquetage parport

Le paquet parport est une interface pour le port //

Page du paquetage : http://npmjs.org/package/parport

Se placer dans un répertoire dédié au développement :

   $ mkdir dev
   $ cd dev
   $ npm install parport

Code Javascript

Dans le répertoire de dev, éditer un nouveau fichier nommé par exemple test.js et saisir le code suivant :

   console.log('Lancement du programme !');
   var par = require('parport');
   var port = new par.Port();
   port.writeData(255);
   // 255 allumera les 8 leds du registre de données
   // pour activé 1 ou plusieurs leds ils faut additionner l'equivalence decimal du bit souhaité
   // bit:____________ 7___6__5__4_3_2_1_0
   // valeur decimal:_128_64_32_16_8_4_2_1
   // ex:______________0___0__1__1_0_1_0_0 =32+16+4=52

Pour lancer le programme, utiliser la commande suivante :

   $ node test.js

Les 8 LEDs vertes doivent s'allumer.

L'utilisateur doit avoir les droits suffisants pour utiliser le périphérique /dev/parport0
Si ça n'est pas le cas un message d'erreur apparaît :

   Error: Unable to open /dev/parport0

Pour ajouter votre utilisateur dans le bon groupe il est possible d'éditer le fichier /etc/group et d'ajouter à la main le nom de votre utilisateur comme ci-dessous :

   $ lp:x:7:nom_utilisateur

Sinon utilisez la commande usermod

   # usermod -a -G lp nom_utilisateur

L'ajout au groupe est effectif mais il faut relancer la session pour sa prise en compte.

Retrouvez de nombreux scripts à l'adresse suivante : https://gitorious.org/lpp

Cloner le dépôt :

   $ git clone git://gitorious.org/lpp/lpp.git lpp

Liens

Afficheur à LED par Frédéric Jolliton
http://www.linux-france.org/prj/ledpanel/ledpanel.html

Le programme qui va avec (le lien est mort sur la page du dessus) mais que je n'ai pas réussi à compiler
ftp://linux-france.com/pub/prj/ledpanel/

Programmation en C sur le port // avec le schéma du port, les broches E/S sont bien décritent
http://www.unixgarden.com/index.php/gnu-linux-magazine-hs/programmation-du-port-parallele

Un tutos en PDF pour remplacer l'imprimante par un autre périphérique : des explications, les shémas et la programmation en Basic
http://www.epi.asso.fr/fic_pdf/b81p227.pdf

ECP Parallel LPT port (IEEE-1284A) pinout
(en) http://pinouts.ru/ParallelPorts/ParallelECP_pinout.shtml

Le paquetage parport pour NodeJS
https://npmjs.org/package/parport