O que significam as barras que aparecem nas embalagens de alguns produtos ou em revistas e livros de grande tiragem? Certamente, os leitores que possuem certo conhecimento de eletrônica ou informática sabem que aquelas barras servem para que máquinas de algum tipo possam ”ler" informações gravadas, e assim se obter algum controle sobre o processo de fabricação, distribuição ou estocagem. Como funciona o código de barras e como “ler” estas informações é o que talvez muitos não saibam. Neste artigo explicaremos de forma simples o que é o código de barras e como se processa sua leitura.

Obs. O artigo é de 1987, havendo processos mais modernos de leitura e mesmo o código bidimensional, mas vale pela sua didática.

 

A ideia básica da codificação por barras é usar sensores ópticos na leitura de informações. Como os dispositivos em que ligamos esses sensores são de funcionamento digital, ou seja, trabalham com a base 2, onde a presença de informação significa um “1"e ausência um “0", nada melhor que adaptar isso à óptica: a cor preta representa um nível de sinal (0 ou LO) e a branca outro nível (1 ou HI).

Veja que não fixamos qual vai ser um ou outro, pois variações existem e elas ficarão claras à medida que dermos nossas aplicações.

Na verdade, existe uma grande quantidade de códigos que fazem uso das barras, e a “interpretação" de cada um deve ser analisada separadamente, como faremos a partir de agora. (figura 1)

 

Figura 1 – Uso do código de barras
Figura 1 – Uso do código de barras

 

 

O código mais simples

Certamente o código mais simples que podemos imaginar convenciona simplesmente que uma barra preta signifique 1 e uma barra branca ou “intervalo" signifique 0, conforme mostra a figura 2.

 

Figura 2 – Código simples
Figura 2 – Código simples

 

Nestas condições as barras e os espaçamentos terão a mesma largura, mas o sistema tem sérios inconvenientes. Um deles é o “comprimento do código".

Se fizermos uma numeração em binário puro como, por exemplo, o número 7.895, isso resultaria numa gravação enorme, como mostra a figura 3.

 

Figura 3 – Exemplo de codificação
Figura 3 – Exemplo de codificação

 

O outro inconveniente vem do fato do sistema leitor não saber onde começa exatamente o número, principalmente se ele tiver muitos zeros à esquerda.

 

O código "2 de 5"

Uma melhora considerável na escrita e leitura do que se pretende colocar nos produtos é obtida, num primeiro passo, com o código denominado 2 de 5.

Neste código, assim denominado, são sempre usadas duas barras largas e três estreitas na cor preta. (figura 4)

 

Figura 4 – Código 2 de 5
Figura 4 – Código 2 de 5

 

Observe pela figura que os intervalos entre as barras têm largura constante.

Como o número de combinações que podemos obter com as 5 barras é limitado, este código serve apenas para representar os algarismos e alguns símbolos, conforme a seguinte tabela:

 


 

 

Veja, então, que a barra larga é representada por 1 e a estreita por 0.

Uma característica importante deste sistema é o reconhecimento do início e do final do número por meio de símbolos próprios.

Com isso, o sistema leitor pode ser usado em qualquer sentido. O circuito “grava" a mensagem e se for constatado pelo circuito que ela está invertida, a reinversão é feita automaticamente.

O produto pode então entrar na máquina de leitura de qualquer jeito! (figura 5)

 

Figura 5 – Detecção do início
Figura 5 – Detecção do início

 

A constância do número de barra para cada dígito também serve como elemento de conferência. O dispositivo usado na leitura pode “contar" as barras, e se tivermos um total não múltiplo de 5 (sem o início e fim ou fora 6), é porque existe erro que pode ser detectado!

Este código tem algumas variações interessantes como por exemplo a chamada “industrial"

 

Código 2 de 5 Industrial

Neste sistema são usadas faixas largas e estreitas de cor preta, cada uma com um significado “discreto".

Assim, 0 é representado pela faixa estreita e o 1 peia faixa larga. As faixas brancas, sempre da mesma largura, são usadas somente para o espaçamento. (figura 6)

 

Figura 6 – Código 2 de 5 industrial
Figura 6 – Código 2 de 5 industrial

 

 

Código 2 de 5 em matriz

Este código, mais interessante, se diferencia do anterior por fazer uso das cores preto e branco, tanto para representar dígitos como intervalos e também levar em conta sua largura.

Assim, na figura 7 temos um exemplo do que ocorre.

 

Figura 7 – Código 2 de 5 em matriz
Figura 7 – Código 2 de 5 em matriz

 

O que temos é uma alternância de preto e branco onde a largura menor (não importando a cor) significa um 0 e a largura maior (não importando a cor) indica 1. (figura 7)

Em suma, a cor serve para indicar que um novo dígito está aparecendo, enquanto a largura indica este dígito!

Veja então que obtemos uma redução considerável do tamanho da informação, pois não necessitamos mais dos intervalos! Na verdade, os intervalos aparecem apenas na separação dos dígitos, pois cada um deve sempre começar por uma barra preta. (figura 8)

 

Figura 8 – Início com barra preta maior
Figura 8 – Início com barra preta maior

 

 

Código 2 de 5 entrelaçado

Conforme mostra a figura 9, temos uma disposição bastante engenhosa das barras neste caso.

 

Figura 9 – Código 2 de 5 entrelaçado
Figura 9 – Código 2 de 5 entrelaçado

 

O que ocorre é que uma cifra é representada pelas barras pretas enquanto a outra cifra, que a segue, é representada pelas barras brancas ou intervalos.

Assim, temos uma ordem de leitura pelo sensor em “zigue-zague" conforme mostra a figura 10.

 

Figura 10 – Leitura em zigue-zague
Figura 10 – Leitura em zigue-zague

 

Um dígito é então “entrelaçado em outro" daí a denominação do códígo.

 

O Código UPC

A sigla UPC vem de Universal Product Code, temos uma solução simples para a marcação de produtos.

Com esta codificação representamos os algarismos de 0 a 9 mais o início ou fim, segundo a seguinte tabela:

Caractere código
0 3-2-1-1ou 1-1-2-3
1 2-2-2-1 ou 1-2-2-2
2 2-1-2-2 ou 2-2-1-2
3 1-4-1-1ou 1-1-4-1
4 1-1-3-2 ou 2-3-1-1
5 1-2-3-1 ou 1-3-2-1
6 1-1-1-4 ou 4-1-1-1
7 1-3-1-2 ou 2-1-3-1
8 1-2-1-3 ou 3-1-2-1
9 3-1-1-2 ou g-1-1-3
início/fim 1-1-1

 

Veja que este código pode ser lido tanto do "começo para o fim", como do "fim para o começo", o que é interessante já que não se deve preocupar com a ”maneira" como o produto entra no sistema leitor.

Os algarismos 1,2,3 e 4 correspondem às relações entre as larguras dos traços.

Assim, para representar o algarismo 5 temos:

- Uma barra (preta ou branca) de largura unitária;

- Uma barra (preta ou branca) de largura equivalente a duas unidades;

- Uma barra (preta ou branca) de largura equivalente a três unidades;

- Uma barra (preta ou branca) de largura unitária.

0 símbolo início/fim, com duas barras escuras e uma clara de largura unitária também tem outra utilidade além de mostrar onde começa o número: ele serve para indicar ao sistema leitor a largura unitária das barras, já que todas as demais se fazem em sua referência.

 

Código 3 de 9

Neste código, cada símbolo tem 9 sinais elementares '(traços ou espaços), possibilitando assim a representação tanto de números como de 'letras, conforme a seguinte tabela:

 


 

 

 


 

 

 

Neste código, o 0 é representado por uma linha estreita (Clara ou escura) e o 1 por uma linha larga (clara ou escura).

Na figura 11 temos um exemplo de aplicação deste código, que é o mais usado.

 

Figura 11 - Exemplo
Figura 11 - Exemplo

 

 

O código HP

A Hewlett-Packard que fabrica as calculadoras científicas como a conhecida HP-4.1C, tem na possibilidade de acessórios ópticos um exemplo interessante da aplicação do código de barras.

Utilizando um “Iápis óptico" pode-se introduzir na calculadora HP-41C, através de periféricos apropriados, dados de diversos tipos, como sugere a figura 12.

 

Figura 12 – O lápis óptico
Figura 12 – O lápis óptico

 

 

Obs. Hoje os celulares e tablets fazem esta leitura usando a câmera de vídeo

 

No código usado pela HP, empregam-se traços escuros de duas larguras. O mais estreito indica o 0 e o mais largo, o 1, havendo uma.separação uniforme para ambos.

A leitura é feita na forma de uma sucessão de octetos, ou seja, grupos de oito dígitos, conforme mostra ta figura 13.

 

Figura 13 – A leitura
Figura 13 – A leitura

 

 

Observe na figura a existência de símbolos de início e fim de leitura como nos demais códigos analisados.

 

A leitura dos códigos

Diversas são as técnicas empregadas nas leituras. Em todas elas é preciso levar em conta o que se pretende diferenciar para se colher a informação correta.

Assim, temos tanto os casos em que é preciso apenas diferenciar o claro do escuro, como os casos em que, além disso, o sistema tem de discriminar a largura dos claros ou escuros.

Nafigura14 temos um circuito típico de sistema de leitura que fornece em sua saída uma informação digital própria para ser trabalhada por um circuito processador.

 

Figura 14 – Circuito de leitura
Figura 14 – Circuito de leitura

 

O uso de lentes, ou da concentração da luz de forma própria, às vezes é muito importante no sentido de facilitar a leitura.

O sensor, conforme já explicamos, pode constituir-se num foto-transistor sensível.

 

Conclusão

Ao visitar o supermercado e notar a existência de barras de códigos nos produtos, o leitor não deve estranhar. Pense que, talvez em futuro muito próximo, todos os produtos serão controlados por meio de máquinas e estas só poderão ler símbolos que lhes sejam favoráveis.

As barras são o alfabeto que as leitoras ópticas podem entender, e como a informática já faz parte integrante de nossas vidas, temos de nos acostumar.

 

Obs. Lembre-se que isso foi escrito em 1987.