Malgré les QR-codes et autres lecteurs NFC, l’utilisation des codes barres ne se réduit pas. Depuis l’adoption de la norme UPC par le commerce de détail à la fin des années 70, les codes barres font parti de notre quotidien.
Vous les trouvez sur tous le produits vendus en supermarché ou en commerce à distance, les livres, revues….
Il y a quelque temps je vous avais présenté le test une enceinte Bluetooth AUKEY qui donne de bons résultats avec le Raspberry Pi 3. Elle me sert toujours pour écouter de la musique en écrivant les articles du blog.
Apparemment AUKEY est content de ce test et m’a proposé de tester un lecteur de code-barres sans fil pour vérifier qu’il fonctionne sur le Raspberry Pi. C’était l’occasion de récupérer une douchette scanner de code-barres et de revenir sur les codes-barres sur lesquels j’avais eu l’occasion de travailler professionnellement… dans les années 80
J’intervenais alors sur des systèmes de pointage horaire ou encore du suivi de production de moteurs… Déjà la traçabilité puisqu’on lisait le code de la personne qui intervenait en fabrication sur les éléments du moteur, le code de la pièce et qu’on enregistrait les temps d’intervention
============= Article sponsorisé =============
Lire les code-barres avec un Raspberry Pi
Code-barre, codes-barres, code à barres…
L’orthographe de notre sujet du jour n’est pas aussi nette que les barres qui composent le code :). Après s’être appelé code à barres il est devenu le code-barres (bin oui il y a plusieurs barres) et codes-barres au pluriel. On trouve aussi parfois codabar… Pour nos voisins anglo-saxons, c’est barcode qu’on le nomme.
Le code-barres : pour quoi faire ?
Le code à barres permet d’identifier un produit rapidement et il offre d’autres avantages : voici quelques utilisations courantes du code à barres :
- Entrer un produit en stock
- Sortir un produit du stock
- Connaître le prix du produit
- Lancer automatiquement une commande
- Assurer la traçabilité d’un produit, d’un colis
- Gérer des prêts de livres, de films
- …
Quelques types de code-barres utilisés
Parmi la quantité de codes disponibles (voir les sources) voici quelques exemples qui vous rappelleront sans doute des choses… Avec un décryptage de ces codes. Mais si vous voulez en savoir plus, faites un tour chez Gomaro.
Code39
Le code 39 est le code-barres le plus utilisé dans les applications industrielles. Il est alphanumérique et permet de coder 43 caractères : 0-9, A-Z, plus quelques symboles (– , . , Espace, * , $ , / , + , %). Ce code-barres est de longueur variable, bidirectionnel (il se lit dans les deux sens). Son nom provient de sa structure qui est de 3 parmi 9.
Chaque caractère est toujours composé de 9 éléments : 5 barres et 4 espaces.
Chaque barre ou espace est large ou étroit et 3 parmi les 9 éléments sont toujours larges. C’est d’ailleurs ce qui est à l’origine de son nom : Code 39
Code-barre 128
Le code-barres 128 est un code utilisé en transport, santé, industrie et distribution. Chaque caractère est composé de 11 modules blancs ou noirs. Ces 11 modules composent 3 barres et 3 espaces. La largeur de chaque barre et espace varie de 1 à 4 modules. Le caractère STOP est composé de 13 modules.
Code EAN13
EAN signifie European Article Numbering = Numérotation Européenne des articles.
Celui là vous le connaissez forcément, c’est celui qu’on trouve sur tous les produits vendus en supermarché. Il diffère de l’UPC qui suit par l’affichage de 13 chiffres au lieu de 12… D’où son nom EAN13 !
Celui-ci a été pris sur un Hortensia rouge vendu en jardinerie. Au début du code 33 représente la France.
Le code peut se décomposer comme sur l’image à gauche ( © Gomaro) : le préfixe est le code du pays, le N° de participant identifie l’entreprise.
Le N° d’article désigne l’article de ce fabricant.
Enfin un dernier chiffre sert de clé de vérification pour s’assurer que le code a été lu correctement.
Celui-là est pas mal aussi… C’est un code débutant par 978, ce qui indique que c’est un livre. Ici c’est donc aussi le N° ISBN du livre (ah oui, c’est le Raspberry Pi 2 de chez ENI
)… L’ISBN (International Standard Book Number ou Numéro international normalisé du livre) est un numéro international qui permet d’identifier de manière unique chaque édition de chaque livre publié, que son support soit numérique ou sur papier. Il est destiné à simplifier la gestion informatique pour tous les intervenants de la chaîne du livre (imprimeur, éditeur, libraire, bibliothèque, etc.).
Après le code 978 qui indique que ce code concerne un livre, l’ISBN se décompose ainsi :
- 1 chiffre pour le groupe
- 6 chiffres pour l’éditeur
- 2 chiffres pour le titre
- 1 clé de vérification
Code-barres UPC
C’est un équivalent américain du code EAN13. Historiquement le code universel des produits (en anglais Universal Product Code) est le premier système d’identification numérique utilisé aux États-Unis et au Canada, pour les articles vendus en magasin. Il a été inventé dans les années 1970 par George Laurer, ingénieur chez IBM, et adopté en mai 1973. Celui qui est représenté ci-dessus figure sur… la boîte d’un Raspberry Pi 3 made in UK, distribué par Kubii.
Dans le code-barres, chaque chiffre est représenté par un agencement de barres et d’espace, au nombre de sept en tout.
Selon que le chiffre se trouve dans la partie gauche (L) ou droite (R), sa représentation diffère. Les R sont le complément à 1 des L. Cette différence a pour but de permettre la reconnaissance du produit, que la lecture soit faite de gauche à droite, ou vice-versa.Les barres de garde, surlignées en vert, séparent deux groupes de six chiffres.
Depuis 2004, l’organisme de réglementation Uniform Code Council oblige tous les systèmes commerciaux de reconnaissance de code-barres à reconnaître l’UPC et l’EAN dès la fin de 2004.
Lecteur Code Barre sans Fil AUKEY
Livré rapidement par Amazon, le scanner code-barres AUKEY BS-W2 arrive dans une boîte qui annonce clairement le produit qu’elle contient :
Une fois la couverture enlevée (elle se glisse tout simplement) on arrive à une boîte de carton fort dans laquelle le scanner de code-barres est maintenu par un emplacement en creux dans le support intérieur.
Une fois sortie du sachet en plastique, on a en main une espèce de pistolet Laser à ravir un fan de Star Wars (quand ils sortiront le même au format sabre, je suis preneur
). Sous le carton intermédiaire qui porte la douchette, on trouve le reste des accessoires.
De gauche à droite devant la scannette on trouve : Un manuel d’instruction qui comporte les codes-barres destinés à programmer et configurer le lecteur, le câble USB servant à relier le scanner à la prise USB d’un PC pour transférer les données et charger la batterie (1,5h de charge procure environ 30h d’autonomie). Devant le câble on voit le dongle USB qui sert à relier par radio (2,4 GHz) le scanner au PC quand il fonctionne sans fil et tout à droite la carte au format carte de crédit qui porte quelques codes essentiels. Elle évite de trimballer partout la notice et de la perdre en la posant quelque part et en l’oubliant… Que celui à qui ça n’est jamais arrivé me jette la première bière
On peut voir ici la gâchette qui déclenche le tir Laser. La tête du scanner est entourée d’une protection plutôt rigide mais qui permet de poser le scanner sans prendre trop de précautions, si on n’a pas de support. A l’avant la fenêtre par laquelle le faisceau laser va sortir. Il faut veiller à la garder bien propre et l’entretenir sans la rayer.
Dans la poignée on trouve la prise USB. Elle est bien à l’abri et ne risque rien en utilisation normale. Elle va permettre de charger le scanner ou de transférer les données à l’ordinateur sur lequel elle est connectée.
Sous la tête de la douchette on voit mieux la gâchette sur cette photo ainsi que l’étiquette d’identification de l’appareil qui rappelle aussi les dangers du LASER.
Une fois mise sous tension, la douchette le signale par une lumière bleue. Après une minute d’inutilisation, la LED s’éteint et la douchette passe en veille pour réduire la consommation.
La prise en main est bonne et la forme ergonomique de la douchette devrait convenir à toutes les tailles de mains (non, je n’ai pas de grosses paluches). Sur cette photo le film de protection est toujours en place sur le dessus de la douchette.
Lorsque la douchette est en veille, si on appuie sur la gâchette, la douchette se réveille et émet trois bips. Un nouvel appui provoque un balayage LASER qui dure 3 secondes si aucun code n’est lu. Sur la photo ci-dessus on voit un scan réalisé sur une feuille blanche.
Comme tout produit utilisant un laser, cette scannette peut être dangereuse.
La lumière cohérente monochromatique du LASER est susceptible de créer des lésions au niveau de l’œil, même à faible puissance.
Évitez de diriger le faisceau vers vos yeux ou ceux d’une autre personne même à une certaine distance. Prenez garde aux réflexions du faisceau qui peuvent être aussi dangereuses que le faisceau d’origine.
L’œil touché par un faisceau LASER va cligner (c’est un réflexe) mais même une brève exposition peut endommager la rétine de manière irréversible.
Un scanner LASER n’est pas un jouet et il doit être utilisé par un adulte connaissant parfaitement les risques générés de cet appareil.

Projection du LASER sur la fenêtre de sortie

L’objectif de l’appareil photo est dans le faisceau du LASER
Caractéristiques

Les dimensions réduites et un poids de 400 grammes assurent une bonne prise en main, sans fatigue excessive après une utilisation prolongée.
- Vitesse de balayage : 200 scan/s.
- Plusieurs modes de lecture (scan unique, scan multiple, avec ou sans trigger, scan continu, scan impulsion)
- Choix du pays (USA, Allemagne, France, Universel, Italie)
- Codes compatibles: Codabar, Code 93, MSI, Code 128, UCC/EAN-128, Code 39, EAN-8, EAN-13, UPC-A, UPC-E , ISBN, Industrial 25, Interleaved 25, Standard 25, 2/5 Matrix, etc.
Le scanner BS-W2 lit uniquement les codes linéaires, pas les codes 2D comme le QRcode. Il ne peut pas lire les codes sur écran d’après le constructeur. Lors des tests j’ai pu lire sans problème des codes sur mon smartphone (Samsung Galaxy S4).
J’ai testé le matériel sur Windows 10 et Raspbian Jessie, sous Excel et sous LibreOffice sans rencontrer de souci d’installation ou de fonctionnement. En fait le scanner remplace le clavier et lorsque vous scannez un code-barres, celui-ci apparait dans la cellule en cours et le curseur passe à la cellule suivante.
Cette douchette sans-fil vous permet la lecture de codes-barres sans câble encombrant. Elle est livrée avec un émetteur/récepteur sans fil (2,4 GHz) qui se connectera en USB à votre PC, Mac ou Raspberry Pi. vous pourrez scanner dans un rayon de 40 mètres environ autour de votre station de travail.
La programmation se fait très simplement en scannant des codes inclus dans le mode d’emploi. Aucune installation de logiciel n’est nécessaire et en quelques minutes le scanner est prêt à fonctionner.
Il est possible de fonctionner en mode « inventaire », c’est à dire que le scanner enregistre les codes pendant l’inventaire. Quand l’inventaire est terminé les codes sont transmis à l’ordinateur.
La distance maximale de lecture va d’une trentaine de centimètres (code barre de 2cm environ) à cinquante centimètre pour des codes plus grands (voir la vidéo)
Le constructeur indique dans les caractéristiques que le lecteur LASER ne lit pas les codes sur les écrans. Effectivement sur l’écran du PC (HP L2245wg) il ne lit pas les codes-barres, par contre sur l’écran de mon portable (Samsung Galaxy S4) pas de souci pour lire les codes de mes cartes de fidélité enregistrées dans une appli.
Comment ça marche ?
Principe de lecture d’un scanner LASER
Dans la tête de la scanette un miroir mobile est animé horizontalement par un moteur ou un dispositif du genre galvanomètre.
Une diode LASER envoie un faisceau sur le miroir. Ce faisceau est dévié de droite à gauche très rapidement par le miroir (220 fois par seconde sur le modèle BS-W2) puis envoyé vers l’extérieur au travers d’une fenêtre qui filtre la longueur d’onde du laser.
La lumière réfléchie par les objets qui reçoivent le faisceau LASER revient vers la fenêtre qui sélectionne la couleur du laser et élimine donc les lumières parasites.
Cette lumière est captée par un récepteur photosensible et le signal est analysé par un microcontrôleur pour en extraire un éventuel code-barres, déterminer le type du code, traduire celui-ci pour l’envoyer à l’ordinateur.
Synoptique d’une scanette
Schématiquement et de manière simplifiée, voici les éléments constituant la partie active du scanner.
La programmation du scanner LASER
Ah là… ça m’a rappelé lorsque je programmais les premières douchette pour PC dans les années… 1985. On intercalait une boite entre le clavier du PC et le PC lui même. La douchette venait se connecter sur le côté de la boîte (c’étaient des prises DIN à l’époque
) et envoyait des codes pour simuler le clavier…
la douchette était livrée avec un classeur plein de codes qu’on faisait lire à la douchette pour la programmer. Ici c’est la même technique.
Avec la douchette LASER on trouve cette carte au format carte de crédit. Elle permet rapidement de lire les codes les plus utiles : Appairer la douchette avec la clé USB (Pair Code) ou basculer du mode Inventaire au mode Normal et inversement.
De l’autre côté c’est le passage en mode transfert des données ou l’effacement des données en mémoire.
Faites attention de ne pas l’égarer, elle est vraiment utile
Au début c’est le manuel utilisateur qui servira à la configuration.
Les nombreux codes disponibles permettent de paramétrer la lecture, le transfert, les codes reconnus, le comportement du scanner. On pourra aussi régler les informations envoyées à l’ordinateur (CR, LF, CR+LF…).
Les principaux paramètres étant réglés, on peut passer à l’exploitation et lire des codes-barres.
Connexion sur un Raspberry Pi
Après un premier test réussi sur une machine équipée de Windows 10 j’ai connecté le dongle 2,4 GHz sur un Raspberry Pi.
La LED bleue s’allume… c’est bon signe. Un petit dmesg pour voir …
[ 320.028849] usb 1-1.4: Product: WPM USB
[ 320.028861] usb 1-1.4: Manufacturer: BarCode
[ 320.042608] input: BarCode WPM USB as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.4/1-1.4:1.0/0003:0416:C141.0001/input/input0
[ 320.101452] hid-generic 0003:0416:C141.0001: input,hidraw0: USB HID v1.10 Keyboard [BarCode WPM USB] on usb-3f980000.usb-1.4/input0
ma foi tout a l’air de bien se passer, le lecteur a été détecté par Jessie. lsusb -v pour voir comment le scanner est reconnu en USB
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 1 Boot Interface Subclass
bInterfaceProtocol 1 Keyboard
Tiens, un clavier… Donc sur les ports USB le dongle AUKEY, le scanner se présente donc comme un clavier. C’est ce qui lui permet d’émuler un clavier lorsque vous scannez un code. Il envoie directement le code à l’appli à votre place.
Lorsqu’un code-barres est lu et correctement identifié, le scanner bippe et la LED à l’arrière du lecteur clignote de bleu à rouge. Le niveau du bip est réglable, ainsi que sa tonalité (en lisant des codes-barres dans la notice )
Vidéo
Pour la vidéo, j’ai saisi une liste de matériel (les codes-barres sont rentrés avec la douchette évidemment). A chaque code-barres j’ai associé la désignation correspondante (la vraie) et un prix (fantaisiste). Il suffit de classer la liste du matériel dans l’ordre croissant des codes-barres pour pouvoir utiliser la fonction recherchev() dans la facture. Si vous voulez voir comment ça marche le fichier est disponible en téléchargement :).
Conclusion
Plutôt destiné aux entreprises, ce scanner LASER sans fil qui coûte moins de 50€ permet aux commerçants, libraires, bibliothèques ayant à gérer un stock ou à facturer des produits de le faire pour un prix abordable.
Sa bonne tenue en main, un poids léger (400g) et une autonomie de 30 heures à pleine charge lui permettent de s’aligner en comparaison avec les autres modèles (plus chers) sans rougir. Pendant la durée des tests qui se sont étalés sur plusieurs semaines je n’ai constaté aucun défaut de fonctionnement, que ce soit sur PC (sous Win10) ou sur le Raspberry Pi sous Raspbian Jessie.
Si je devais faire un reproche, ce serait celui-ci : il manque un logement pour ranger la carte de programmation. Je ne sais pas si vous êtes comme moi, mais j’ai une fâcheuse tendance à égarer (non pardon à ranger – trop bien) ce genre de choses après utilisation. Un système permettant de garder les codes DANS le scanner me semblerait une bonne chose.
L’exposition aux sources lumineuses des rayons LASER peut entraîner des brûlures et des lésions irréversibles de la rétine (laser visible ou IR proche), de la cornée (laser UV, IR…) voire une perte visuelle définitive, une atteinte du cristallin par expositions répétées ou prolongées (cataracte). Ne dirigez jamais un faisceau LASER vers les yeux. Méfiez vous des réflexions du faisceau. Même à faible puissance le LASER est dangereux pour les yeux !
Sources
- https://www.amazon.fr/Lecteur-Douchette-Scanner-Indicateur-Compatible/dp/B00QQ5WGN2/ref=cm_rdp_product_img
- Générateur de code-barres en ligne utilisé pour générer les codes de cette page : http://barcode.tec-it.com/fr
- http://www.transbar.fr/choisir/choisir_pressbar.html
- http://www.technicod.com/numerique/numeriq.php
- http://www.codesbarres.com/frprimer.pdf
- http://www.gomaro.ch/Specifications/lecteur.htm
- http://www.atscan.com/atscan-le-guide-du-code-barre-13.asp
- http://lecteurcodebarre.com/
- http://alafortunedumot.blogs.lavoixdunord.fr/tag/code-barre