Como ler um código de barras?

0
27

Neste artigo, pretende-se recordar a Matemática dos códigos de barras, na sequência do texto publicado no Tribuna das Ilhas a 12 de outubro de 2012, e explicar qual a correspondência entre os números e as barras, aspeto ainda não abordado neste jornal.

Os códigos de barras vieram tornar mais eficiente o pagamento nas caixas e, simultaneamente, ajudar a controlar com maior eficácia o inventário das mercadorias em armazém. O sistema Universal Product Code (UPC) foi o primeiro código de barras adotado em larga escala. Criado nos Estados Unidos da América, em 1973, apresenta 12 algarismos. Em 1976, adotou-se na Europa um sistema análogo, o European Article Number (EAN), que apresenta 13 algarismos (EAN-13). As embalagens de tamanho reduzido contam apenas com 8 algarismos (EAN-8). 

Os códigos de barras são exemplos de sistemas de identificação com algarismo de controlo, que têm como objetivo verificar se foi cometido pelo menos um erro de escrita, leitura ou transmissão da informação. Nos códigos de barras, o algarismo de controlo é o algarismo das unidades (primeiro algarismo da direita). Os restantes algarismos de um código de barras contêm informação específica. Por exemplo, num código de barras EAN-13 ou EAN-8, os três primeiros algarismos da esquerda identificam sempre o país de origem (com a exceção dos códigos de barras dos livros, que apresentam o prefixo 978 ou 979, e dos códigos de uso interno das superfícies comerciais como, por exemplo, para os artigos embalados na padaria ou na peixaria de um supermercado, que começam por 2). Seguem-se alguns exemplos: 300-379 (França e Mónaco); 400-440 (Alemanha); 500-509 (Reino Unido); 520 (Grécia); 539 (Irlanda); 560 (Portugal); 690-695 (China); 760-769 (Suíça); 840-849 (Espanha e Andorra); 888 (Singapura). Observe-se que os países com uma maior produção têm à sua disposição mais de um prefixo de três algarismos. 

Apresentamos na figura (em cima, à esquerda) um exemplo de um código de barras EAN-13: 5606646000012. Os algarismos armazenam a seguinte informação: 560 identifica todos os produtos de origem portuguesa; 664600001 identifica o produtor e o respetivo produto (os primeiros 4/5 algarismos identificam normalmente o produtor e os restantes algarismos o produto específico); 2 é o algarismo de controlo ou dígito de verificação. 

Para se verificar se o número do código de barras está correto, procede-se da seguinte forma: fazendo a leitura do número da direita para a esquerda (isto porque se deve começar pelo algarismo de controlo), adicionam-se todos os algarismos que estão nas posições ímpares (primeiro algarismo, terceiro algarismo, …) e adicionam-se todos os que estão nas posições pares (segundo algarismo, quarto algarismo, …); obtêm-se, respetivamente, as somas I e P; por fim, calcula-se o valor de S=I+3xP que deverá ser um múltiplo de 10 (ou seja, o seu algarismo das unidades deverá ser 0). Se o resultado final não for um múltiplo de 10, significa que ocorreu um erro e que o número não está correto. Em relação ao exemplo apresentado, tem-se I=2+0+0+6+6+0+5=19, P=1+0+0+4+6+6=17 e S=19+3×17=70, que é um múltiplo de 10.

E que relação existe entre as barras e os algarismos? Ao olhar com atenção para um código de barras EAN-13, reparamos que os 13 algarismos são distribuídos da seguinte forma: o primeiro algarismo surge isolado à esquerda das barras, enquanto que os restantes surgem por baixo destas, divididos em dois grupos de seis algarismos separados por barras geralmente mais compridas do que as restantes: três barras nas laterais (preto-branco-preto) e cinco barras ao centro (branco-preto-branco-preto-branco). As restantes barras são mais curtas e codificam os 12 algarismos (indiretamente, também codificam o algarismo da esquerda).

À primeira vista parece que as barras que compõem um código EAN-13 têm larguras diferentes (umas mais grossas e outras mais finas). Mas, verdadeiramente, cada um dos 12 algarismos é representado por um conjunto de sete barras da mesma largura, umas brancas e outras pretas. Duas ou três barras da mesma cor juntas dão a ideia que existem barras mais grossas do que outras. Durante a leitura, o leitor ótico atribui a cada barra branca o valor zero e a cada barra preta o valor um, obtendo-se assim uma sequência binária de comprimento sete para cada algarismo (ver tabela). 

A representação dos algarismos por barras brancas e pretas respeita alguns princípios como os de paridade e simetria, pelo que um algarismo não é sempre representado da mesma forma. Este aspeto permite que um código de barras possa ser lido por um leitor ótico sem qualquer ambiguidade, quer esteja na posição normal ou “de pernas para o ar”. 

Os algarismos do 2.º grupo de 6 algarismos têm uma única forma de representação. Por exemplo, um 0 desse grupo é representado sempre por três barras pretas, duas brancas, uma preta e uma branca (ver tabela). Diz-se que esta é uma representação par por apresentar um número par de barras pretas (quatro ao todo). 

Já a representação dos algarismos do 1.º grupo depende do algarismo isolado à esquerda. No exemplo apresentado, esse algarismo é o 5, que, segundo a tabela, é determinado por 100110. Isto significa que o segundo, o terceiro e o sexto algarismos do 1.º grupo devem ter uma representação par (0), enquanto que os restantes deverão ter um representação ímpar (1). De acordo com a tabela, as representações pares do 1.º grupo são obtidas das representações do 2.º grupo por reflexão em espelho, enquanto que as ímpares são obtidas por troca de 0’s e 1’s (note-se que, no segundo caso, passamos a ter um número ímpar de barras pretas, ou seja, mudamos a paridade). 

No 1.º  grupo de algarismos do exemplo apresentado, o 6 que ocupa a primeira posição e a quarta posição deve ter uma representação ímpar (uma barra branca, uma preta, uma branca e quatro pretas), enquanto que o 6 que ocupa a terceira posição e a sexta posição deve ter uma representação par (quatro barras brancas, uma preta, uma branca e uma preta). 

O sistema foi feito de forma a que um leitor ótico possa ler, em simultâneo, códigos EAN e códigos UPC de 12 algarismos. Na prática, um código UPC é apenas um código EAN-13 que começa por 0.

 

Departamento de Matemática da Universidade dos Açores, [email protected]

O MEU COMENTÁRIO SOBRE ESTE ARTIGO

Por favor escreva o seu comentário!
Por favor coloque o seu nome aqui
Captcha verification failed!
Falha na pontuação do usuário captcha. Por favor, entre em contato conosco!