Os códigos de barras são gerados de forma que a leitura direta por parte de um ser humano não é uma prioridade. No entanto, isso não nos impede de conhecer seu mecanismo exato. O processo leva poucos milissegundos para um computador, mas aquele bip! casual representa uma quantidade importante de informações que inclui país, nome da empresa, produto e uma verificação final destinada a conferir a leitura correta do código.
Uma breve história do código de barras
Assim como aconteceu com muitos outros inventos, a história do primeiro código de barras para aplicação em produtos de consumo geral remonta ao final dos anos 1940. Há vários nomes associados à sua criação, mas os primeiros da lista são Norman Joseph Woodland e Bernard Silver. Ambos patentearam uma versão inicial baseada em um design circular e, de acordo com o próprio Woodland, inspirada no código Morse.
Woodland acabou sob a asa da IBM, que demonstrou grande interesse no sistema (inclusive tentou comprar a patente), mas admitiu que o poder de processamento necessário ainda não estava disponível. 70 anos mais tarde, os códigos de barras estão impressos em quase qualquer coisa que você possa imaginar. Alimentos, medicamentos, ferramentas, roupas… se é vendido por unidade, pacote ou peso, é bem provável que você veja um.
Como funcionam os códigos de barras
Agora, a pergunta mágica é… como funcionam? De que maneira um laser pode extrair números de linhas tão finas? Obviamente, se surgir um problema com a leitura, sempre temos a possibilidade de digitar os números manualmente, mas tudo começa com um padrão, e é aí que entra a organização GS1, cuja sede fica em Bruxelas. Com mais de 100 escritórios ao redor do mundo e um milhão e meio de empresas registradas, basicamente você precisa lidar com eles se precisar de códigos de barras para seus produtos. Os dois formatos mais populares são UPC-A e EAN-13. Supõe-se que o UPC-A seja usado nos Estados Unidos e no Canadá, mas a magia do comércio internacional torna muito fácil encontrar exemplares de ambos os formatos.
Tomemos o caso do UPC-A: qualquer código tem 95 barras (sim, 95) que podem ser pretas ou brancas, com três pilares de separação que marcam o início, o centro e o fim. Os pilares consomem 11 barras (o padrão é 3-5-3), deixando um total de 84 barras para guardar a informação. Essas 84 barras são divididas em doze grupos (um por número) de sete barras. A configuração das barras estabelece a codificação do grupo e, por extensão, o dígito que se deseja representar. A Wikipedia fez o trabalho pesado publicando um gráfico preciso com cada combinação possível.
Existe algo estranho nessa imagem, não é? Espera-se que a codificação de cada dígito seja a mesma em ambos os lados do código, mas não funciona assim. Na verdade, um olho treinado provavelmente detecta uma sutileza: as barras brancas na metade esquerda são sempre pares, enquanto na metade direita são ímpares. Por quê? Porque isso garante o processo de leitura mesmo quando o código está de cabeça para baixo, algo que acontece com muita frequência. Se o leitor reconhece que as barras brancas do lado esquerdo aparecem como ímpares, automaticamente sabe que deve começar a ler pelo lado direito.
O que o número em si nos diz? Mais uma vez permanecemos no terreno do UPC-A e descobrimos que os primeiros três dígitos representam o país. Se você tiver alguns códigos por perto que queira explorar, pode clicar aqui para acessar a tabela oficial de prefixos GS1 ou, como alternativa, usar este buscador de identidade internacional (basta digitar o código, mas há um limite de buscas por dia). O restante do código inclui a empresa e o produto.
Aqui é onde a GS1 ganha dinheiro: os grandes players de cada mercado têm uma enorme quantidade de produtos, portanto, exigem que a seção 'país + empresa' do código seja curta, ou não seriam capazes de gerar códigos de barras para todo o seu catálogo. Por outro lado, as empresas com ofertas pequenas (dez produtos ou menos) podem acessar um prefixo muito mais econômico.
O fechamento deste artigo pertence ao último dígito do código de barras UPC-A, que em essência é o checksum, um controle que confirma a leitura correta do código. Como é calculado? Primeiro somamos os seis dígitos nas posições ímpares do código e multiplicamos por três. Depois somamos os cinco dígitos nas posições pares. Em seguida, somamos os resultados das duas operações. O último passo é pegar esse número e somar o dígito de verificação, que deveria converter o resultado em um múltiplo de 10. Vamos testar com o código do nosso mouse Logitech:
- (0 + 7 + 5 + 0 + 3 + 5) = 20
- (20 x 3) = 60
- (9 + 8 + 5 + 6 + 9) = 37
- (60 + 37) = 97
- (97 + 3) = 100
Tal como mostra a imagem.