Il codice a barre è un codice di identificazione costituito da un insieme di elementi grafici a contrasto elevato destinati alla lettura per mezzo di un sensore a scansione e decodificati per restituire l'informazione in essi contenuta.
Storia
L'idea dei codici a barre fu sviluppata da Norman Joseph Woodland e Bernard Silver, all'epoca studenti di ingegneria dell'Università di Drexel. Il 7 ottobre 1948 l'idea nacque dopo aver ascoltato le esigenze di automatizzare le operazioni di cassa da parte del presidente di un'azienda del settore alimentare.
Una delle prime idee era stata quella di utilizzare il Codice Morse stampato ed esteso in senso verticale, realizzando così barre strette e barre larghe. In seguito utilizzarono dei codici a barre ovali e brevettarono la loro invenzione per la prima volta nel 1952.
I primi tentativi di riconoscere i codici a barre con un fotomoltiplicatore originariamente utilizzato per la lettura ottica delle bande audio dei film non ebbero successo: l'eccessivo rumore dei dispositivi termoionici, il calore generato dalla lampada utilizzata per l'illuminazione e il peso risultante dall'insieme erano ostacoli insormontabili in quanto le lampade allo xeno, l'unica fonte luminosa all'epoca abbastanza intensa, avevano prezzi improponibili, specie quelle a flusso continuo.
Il successivo sviluppo della tecnologia laser permise ai lettori di essere costruiti a prezzi più accessibili e lo sviluppo dei circuiti integrati permise la decodifica vera e propria dei codici. Silver morì nel 1963 a soli 38 anni, prima di vedere le numerose applicazioni pratiche del suo brevetto.
Nel 1972, un grande magazzino di Cincinnati fece degli esperimenti con un lettore con l'aiuto della RCA, ma i codici a barre ovali si macchiavano facilmente o si producevano delle sbavature durante la stampa, per cui l'esperimento fu un insuccesso. Nel frattempo, Woodland sviluppò presso IBM i codici a barre lineari, che furono adottati il 3 aprile 1973 con il nome "UPC" (Universal Product Code). Il 26 giugno 1974 presso un supermarket a Troy, nell'Ohio, il primo prodotto (un pacchetto di gomme americane) veniva venduto utilizzando un lettore di codici a barre prodotto dalla Photographic Sciences Corporation. Quel pacchetto di gomme si trova ora nello Smithsonian's National Museum of American History. Nello stesso anno si pensò di introdurre anche in Europa un sistema simile che fosse compatibile con UPC, così nel 1977 venne fondata a Bruxelles dai rappresentanti di 12 Paesi europei, tra cui l'Italia, la European Article Numbering Association che in seguito venne chiamata EAN e che dal 2005 è conosciuta a livello internazionale col nome di GS1. Nel 1978 nasce in Italia quella che oggi è GS1 Italy: si chiama Indicod ed è formata da 60 imprese associate, che oggi sono diventate circa .
Nel 1992, Woodland ha ricevuto dal presidente statunitense George H. W. Bush la medaglia nazionale per la tecnologia.
Tipologia I codici a barre si dividono in codici lineari e codici bidimensionali (Matrix).
Lineari Tra i tipi più diffusi in Italia, senz'altro si trova il codice EAN (European Article Number) che viene utilizzato nella grande distribuzione, seguito dal Farmacode o codice 32 (una rielaborazione matematica del Codice 39), adottato per l'identificazione dei farmaci e delle specialità vendibili al banco nelle farmacie. Sempre nella grande distribuzione, si può trovare lo Universal Product Code per i prodotti importati da Regno Unito, Australia, Nuova Zelanda, Canada, Stati Uniti. Sempre nell'ambito della grande distribuzione, a partire dal 2014 è possibile usare la famiglia di codici a barre GS1 DataBar per la sua caratteristica di memorizzare un maggior numero di informazioni in minor spazio. Nell'ambito industriale hanno trovato grande diffusione il codice 128 (soprattutto attraverso lo standard GS1-128), il codice 39 (alfanumerico) e il 2/5 (si legge 2 di 5) interlacciato (anche nello standard ITF-14). A seconda del tipo di codice adottato vi sono dei limiti nel ridimensionamento, nel numero e nel tipo caratteri rappresentabili. Ad esempio, il già citato codice EAN13 può rappresentare solo dodici caratteri numerici, il codice UCC/EAN-128, utilizzato nel settore medico, può rappresentare l'intero set di caratteri ASCII.
La maggior parte dei codici ha un codice di controllo (check digit) che l'unità di lettura è in grado di ricalcolare e verificare per assicurare la corretta lettura e l'integrità dei dati. Il codice a barre lineare è composto da un susseguirsi di elementi ovvero un susseguirsi di barre e spazi. La barra è l'elemento scuro del codice a barre, formato da un segmento verticale.
Lo spazio è l'elemento chiaro del codice a barre e separa due barre tra loro.
Per modulo si intende la larghezza dell'elemento (barra o spazio) più stretto. Gli altri spessori sono un multiplo del modulo.
Ciascuna sequenza di barre e linee deve essere preceduta e seguita da un'area di riposo (quiet zone) ovvero un'area chiara. Per permettere di capire se il codice a barre è stato letto per intero, l'informazione è preceduta da un carattere di start e seguita da un carattere di stop. Alcuni codici a barre hanno i caratteri di start e di stop uguali tra loro (es. CODE 39), in altri sono diversi (es. code 128). La caratteristica di avere i caratteri di start e stop diversi è usata da alcuni codici a barre per determinare la direzione del codice a barre e quindi permettere la lettura da entrambi i sensi. Per permettere la correttezza della lettura del codice a barre, è previsto un codice di controllo. In alcuni codici a barre il codice di controllo è esplicito e fa parte dell'informazione (ES. EAN e UPC), in altri, il codice di controllo è implicito e non fa parte dell'informazione (es. Code 128).
Si definiscono codici a barre discreti, i codici a barre lineari in cui solo le barre portano l'informazione. Nei codici continui sia le barre che gli spazi portano informazioni. Nei codici a barre discreti, ogni carattere del codice a barre ha lo stesso numero di barre e spazi e ne rende quindi facile la rappresentazione con un font di caratteri (es. Code 39). Nei codici a barre continui, ciascun carattere può avere una lunghezza diversa. Tra i codici a barre lineari, ce ne sono alcuni che per gli elementi (barre e spazi) prevedono solo due spessori (largo e stretto). Altri prevedono un numero variabile di spessori. Per quelli con due soli spessori, il rapporto tra la larghezza degli elementi stretti e quelli larghi è compreso tra 2 e 3. Ciascun tipo di codice a barre definisce i caratteri ammessi (es. solo numerici, alfanumerici, alcuni caratteri speciali). Alcuni di questi portano nel loro nome il numero massimo di caratteri rappresentabili (es. code 128 si chiama così perché può rappresentare 128 simboli, code 39 può rappresentare 39 simboli diversi). Per altri tipi di codici a barre la lunghezza del codice è fissa: EAN 13 ha una lunghezza fissa di 13 caratteri, UPC A di 12 caratteri. La specifica CODE 128C del code 128 prevede una lunghezza di cifre pari (in quanto in ogni elemento vengono memorizzate due cifre numeriche). Alcuni tipi di codici a barre possono essere Stacked ovvero impilati. Un esempio è dato dai GS1 DataBar Stacked Omnidirectional, GS1 DataBar Expanded Stacked e GS1 DataBar Stacked
EsempioCodice a barreContinuo o discretoAmpiezza barreUsoCodabarDiscretoDueVecchio formato utilizzato nelle biblioteche e banche del sangue(obsoleto) Code 25 – Non-interleaved 2 of 5 Continuo Due IndustrialeCode 25 – Interleaved 2 of 5ContinuoDue Commercio all'ingrosso, biblioteche Standard internazionale ISO/IEC 16390Code 11DiscretoDueTelefonia (obsoleto) Farmacode o Code 32Discreto Duesettore farmaceutico italiano e svizzero – usa il Code 39 (nessuno standard internazionale disponibile)Code 39Discreto DueVari – Standard internazionale ISO/IEC 16388Code 49ContinuoVariabiliVari Code 93ContinuoVariabiliVari, usato soprattutto dalle poste canadesiCode 128ContinuoVariabiliVari – Standard internazionale ISO/IEC 15417 CPC BinaryDiscretoDueDX film edge barcodeNessuno dei dueAlto/bassopellicola fotograficaEAN 2ContinuoVariabiliCodice aggiuntivo (periodici), approvato GS1 non come propria simbologia – da esser usato solo assieme ad un EAN/UPC in accordo all'ISO/IEC 15420EAN 5ContinuoVariabiliCodice aggiuntivo (libri), approvato GS1 non come propria simbologia – da esser usato solo assieme ad un EAN/UPC in accordo all'ISO/IEC 15420EAN-8, EAN-13ContinuoVariabilivendita al dettaglio diffuso in tutto il mondo, approvato GS1 – Standard internazionale ISO/IEC 15420 Facing Identification MarkDiscretoDueUSPS business reply mailGS1-128 (una volta chiamato UCC/EAN-128), erroneamente chiamato EAN 128 and UCC 128ContinuoVariabiliVari, approvato GS1– solo come applicazione del code 128 (ISO/IEC 15417) usa ANS MH10.8.2 AI Datastructures. Non sono simbologie separabili.GS1 DataBar, una volta conosciuto con: Reduced Space Symbology (RSS)ContinuoVariabiliVari, approvato GS1Intelligent Mail barcodeDiscreto4 bar heightsUnited States Postal Service, sostituisce sia POSTNET che PLANET symbols (una volta conosciuto con OneCode)ITF-14ContinuoDueimballi non primari, non destinati alla vendita al dettaglio, approvato GS1 – GS1 – approvato – è solo un Interleaved 2/5 Codice (ISO/IEC 16390), con alcune specifiche aggiuntive, secondo le specifiche GS1JANContinuoVariabiliUsato in Giappone, simile e compatibile con EAN-13 (ISO/IEC 15420)KarTrak ACIDiscretoColoured barsUsato in nord America nel materiale ferroviarioMSIContinuoDueUtilizzato per gli scaffali dei magazzini e per inventariPharmacodeDiscretoDueImballi farmaceutici (nessuno standard internazionale disponibile) PLANETContinuoTall/shortUnited States Postal Service (nessuno standard internazionale disponibile)PlesseyContinuoDueCataloghi, scaffali dei negozi, inventario (nessuna norma internazionale disponibile) PostBarDiscreto4 bar heightsPoste canadesiPOSTNET Discreto Tall/short United States Postal Service (nessuno standard internazionale disponibile)RM4SCC / KIXDiscreto4 bar heightsRoyal Mail / Royal TPG PostTelepenContinuoDueBiblioteche (Regno Unito)Universal Product Code (UPC)ContinuoVariabilivendita al dettaglio diffuso in tutto il mondo, approvato GS1 – Standard Internazionale ISO/IEC 15420
Bidimensionali (Matrix) Sono codici a barre a 2 dimensioni, adatti per essere letti con apparecchi fotografici e smartphone.
EsempioNomeNoteAztec CodeProgettato da Andrew Longacre alla Welch Allyn (ora Honeywell Scanning and Mobility). Di pubblico dominio. Norma internazionale ISO/IEC 24778 Code 1Di pubblico dominio. Codice 1 è attualmente utilizzato nel settore sanitario per le etichette mediche e l'industria del riciclaggio per codificare i contenuti del contenitore per l'ordinamento. ColorCode ColorZip ha sviluppato codici a barre di colorati che possono essere letti dai telefoni cellulari direttamente da schermi televisivi; utilizzato principalmente in Corea. Color Construct Code Color Construct Code è uno dei pochi codici progettati per sfruttare più colori. CrontoSign CrontoSign (chiamato anche photoTAN) è un crittogramma visivo. che contiene ordini bancari criptati e TAN (Transaction authentication number) monouso.. CyberCodedella Sony. d-touch leggibile se stampati su guanti deformabili, allungati e distorti.. DataGlyphsda Palo Alto Research Center Brevettato.