# Codice a barre

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 35 000.
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
| Codice a barre | Continuo o discreto | Ampiezza barre | Uso |
| Codabar | Discreto | Due | Vecchio formato utilizzato nelle biblioteche e banche del sangue(obsoleto) |
| Code 25 – Non-interleaved 2 of 5 | Continuo | Due | Industriale |
| Code 25 – Interleaved 2 of 5 | Continuo | Due | Commercio all'ingrosso, biblioteche Standard internazionale ISO/IEC 16390 |
| Code 11 | Discreto | Due | Telefonia (obsoleto) |
| Farmacode o Code 32 | Discreto | Due | settore farmaceutico italiano e svizzero – usa il Code 39 (nessuno standard internazionale disponibile) |
| Code 39 | Discreto | Due | Vari – Standard internazionale ISO/IEC 16388 |
| Code 49 | Continuo | Variabili | Vari |
| Code 93 | Continuo | Variabili | Vari, usato soprattutto dalle poste canadesi |
| Code 128 | Continuo | Variabili | Vari – Standard internazionale ISO/IEC 15417 |
| CPC Binary | Discreto | Due | |
| DX film edge barcode | Nessuno dei due | Alto/basso | pellicola fotografica |
| EAN 2 | Continuo | Variabili | Codice aggiuntivo (periodici), approvato GS1 non come propria simbologia – da esser usato solo assieme ad un EAN/UPC in accordo all'ISO/IEC 15420 |
| EAN 5 | Continuo | Variabili | Codice aggiuntivo (libri), approvato GS1 non come propria simbologia – da esser usato solo assieme ad un EAN/UPC in accordo all'ISO/IEC 15420 |
| EAN-8, EAN-13 | Continuo | Variabili | vendita al dettaglio diffuso in tutto il mondo, approvato GS1 – Standard internazionale ISO/IEC 15420 |
| Facing Identification Mark | Discreto | Due | USPS business reply mail |
| GS1-128 (una volta chiamato UCC/EAN-128), erroneamente chiamato EAN 128 and UCC 128 | Continuo | Variabili | Vari, 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) | Continuo | Variabili | Vari, approvato GS1 |
| Intelligent Mail barcode | Discreto | 4 bar heights | United States Postal Service, sostituisce sia POSTNET che PLANET symbols (una volta conosciuto con OneCode) |
| ITF-14 | Continuo | Due | imballi 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 GS1 |
| JAN | Continuo | Variabili | Usato in Giappone, simile e compatibile con EAN-13 (ISO/IEC 15420) |
| KarTrak ACI | Discreto | Coloured bars | Usato in nord America nel materiale ferroviario |
| MSI | Continuo | Due | Utilizzato per gli scaffali dei magazzini e per inventari |
| Pharmacode | Discreto | Due | Imballi farmaceutici (nessuno standard internazionale disponibile) |
| PLANET | Continuo | Tall/short | United States Postal Service (nessuno standard internazionale disponibile) |
| Plessey | Continuo | Due | Cataloghi, scaffali dei negozi, inventario (nessuna norma internazionale disponibile) |
| PostBar | Discreto | 4 bar heights | Poste canadesi |
| POSTNET | Discreto | Tall/short | United States Postal Service (nessuno standard internazionale disponibile) |
| RM4SCC / KIX | Discreto | 4 bar heights | Royal Mail / Royal TPG Post |
| Telepen | Continuo | Due | Biblioteche (Regno Unito) |
| Universal Product Code (UPC) | Continuo | Variabili | vendita 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.
| Nome | Note |
| Aztec Code | Progettato da Andrew Longacre alla Welch Allyn (ora Honeywell Scanning and Mobility). Di pubblico dominio. Norma internazionale ISO/IEC 24778 |
| Code 1 | Di 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. |
| CyberCode | della Sony. |
| d-touch | leggibile se stampati su guanti deformabili, allungati e distorti |
| DataGlyphs | da Palo Alto Research Center Brevettato. DataGlyphs possono essere incorporati in un'immagine mezzo tono o di sfondo in un modo che è quasi invisibile percettivamente, simile alla steganografia. |
| Data Matrix | da Microscan Systems. Di pubblico dominio – standard ISO/IEC 16022. |
| Datastrip Code | da Datastrip, Inc. |
| digital paper | carta modellata utilizzata in combinazione con una penna digitale per creare documenti digitali scritti a mano. Il modello di puntini stampato identifica univocamente la posizione coordinate sulla carta. |
| EZcode | Progettato per essere decodificato da smartphone; da ScanLife. |
| High Capacity Color Barcode | Sviluppato da Microsoft; licensed by ISAN-IA. |
| Han Xin Barcode | Codice a barre progettato per codificare i caratteri cinesi introdotto da Association for Automatic Identification and Mobility nel 2011. |
| HueCode | da Robot Design Associates. Uses greyscale or colour. |
| InterCode | Il codice a barre 2D standard Corea del Sud. Tutti e tre gli operatori sudcoreani di telefonia mobile mettono di serie il programma di scansione di questo codice nei loro cellulari per accedere a internet dal telefono. |
| MaxiCode | Usato da United Parcel Service (UPS). Ora di pubblico dominio |
| MMCC | Progettato per diffondere contenuti ad alta capacità per i telefoni cellulare tramite stampa a colori esistente e media elettronici, senza la necessità di connettività di rete |
| NexCode | NexCode è sviluppato e brevettato da S5 Systems. |
| Nintendo e-Reader#Dot code | Sviluppato da Olympus Corporation per immagazzinare canzoni, immagini e piccoli giochi per Game Boy Advance nelle Pokémon trading cards. |
| PDF417 | Creato da Symbol Technologies. Pubblico Dominio. |
| Qode | Codice a barre di proprietà e di brevetto americani sviluppato da NeoMedia Technologies, Inc. |
| Codice QR | Inizialmente sviluppato, brevettato e di proprietà di Denso (gruppo Toyota) per la gestione dei ricambi auto; hanno scelto di non esercitare i loro diritti del brevetto. Può codificare i caratteri giapponesi Kanji e Kana, musica, immagini, URL, email. Standard de facto per i telefoni cellulare giapponesi e non solo. Anche usato da BlackBerry Messenger per raccogliere contatti al posto di usare un codice PIN. È il più frequente codice a barre scansionato dagli smartphone. È utilizzato anche dal progetto qrpedia – standard internazionale: ISO/IEC 18004 |
| ShotCode | Codici a barre circolare progettato per smartphone. Progettato da High Energy Magic Ltd con il nome Spotcode. Il nome precedente era TRIPCode. |
| SPARQCode | Codice QR che codifica lo standard di MSKYNET, Inc. |
| VOICEYE | Sviluppato e brevettato da VOICEYE, Inc. in Corea del Sud, che ha lo scopo di permettere alle persone non vedenti e ipovedenti di accedere alle informazioni stampate. È il codice a barre 2D che ha la più grande capacità di memorizzazione del mondo. |

## Lettura

La tipologia dei lettori di codici a barre è andata ampliandosi con l'avvento di nuove tecnologie e con la miniaturizzazione della componentistica elettronica.

### Tipo di collegamento

Oltre ai lettori di codice a barre collegati ad un personal computer o ad un registratore di cassa, ci sono lettori dotati di memoria e quindi in grado di immagazzinare un certo numero di letture prima che vi sia la necessità di scaricarle utilizzando un'unità base (detta calamaio nel caso delle penne ottiche). Altri lettori sono dotati di un trasmettitore di piccola potenza per comunicare in tempo reale ad un'unità ricevente i dati che vengono letti.

### Tecnologia di lettura

Per quanto riguarda i codici a barre lineare, la tecnologia prevalente e più affidabile impiega uno o più raggi laser, abbinato di solito ad una testina oscillante e in taluni casi ad un sistema di specchi, al fine di moltiplicare le probabilità che qualsiasi codice stampato su un oggetto venga letto al primo tentativo. Esistono anche dei lettori più economici che utilizzano una barra di LED per illuminare i codici a barre e un sensore CCD (Charged Coupled Device). Si ottengono così dispositivi più leggeri e più resistenti, adatti per scanner da impugnare, che però devono essere portati quasi a contatto con i codici a barre da leggere. Inoltre, in ambito industriale, le ultime tecnologie permettono la lettura del codice a barre tramite l'acquisizione di un'immagine fornita da un sistema video. Questo, tramite l'apposito software, permette di "fotografare" l'oggetto, riconoscere nella fotografia il codice a barre da leggere e successivamente interpretarlo.
Per quanto riguarda i codici a barre bidimensionali, la tecnologia più diffusa è quella fotografica.

## Applicazioni

Qualsiasi informazione utile alla gestione del magazzino e del movimento delle merci può essere codificata con codici a barre. La spesa per la loro stampa è infatti spesso trascurabile, visto che il relativo disegno è solitamente inserito direttamente nel bozzetto dell'etichettatura o dell'imballaggio della merce. Nel caso in cui la stampa e l'applicazione dei codici a barre avvengano in fasi successive, esistono sistemi di stampa a trasferimento termico o laser che rendono l'operazione non solo veloce, ma anche affidabile come la stampa offset.
Anche le pubblicazioni e i periodici, per facilitare l'identificazione e la classificazione, utilizzano i codici a barre, come previsto dai sistemi internazionali di codifica ISBN e ISSN.
I codici a barre permettono l'identificazione dei convogli in transito in alcune tratte ferroviarie o nelle linee della metropolitana.
Il codice a barre è presente anche nel retro della tessera sanitaria e codifica il codice fiscale.
Si possono trovare codici a barre anche sulle carte fedeltà, usati per rappresentarne il codice identificativo che è associato al titolare della carta stessa.
Il GSI Digital Link e l'evoluzione del codice bar che permette di integrare informazioni quali il numero di Lotto, la data di scadenza e un link ipertestuale a una pagina che contiene informazioni sulla composizione del prodotto e le modalità di riciclo.

## Nella cultura di massa
### L'Apocalisse e il numero della Bestia

Secondo una leggenda metropolitana i codici a barre lineari applicati su tutti i prodotti commerciabili nel mondo occidentale contengono in forma cifrata il numero 666, il cosiddetto numero della Bestia: tale numero sarebbe rappresentato dalle tre barre di divisione, di forma uguale, delle quali una centrale separa la prima parte del codice dalla seconda, e le altre due sono poste al principio e alla fine del codice: tali barre sono in effetti formate da due righe sottili di uguale misura, identiche a quelle rappresentanti nel codice il numero 6. Tale combinazione ha dato adito a molte congetture: in particolare trovando una corrispondenza con un passo di una delle profezie dell'Apocalisse di san Giovanni (13,17-18) che riporta:
«17. Nessuno poteva comprare o vendere se non portava il marchio, cioè il nome della bestia o il numero che corrisponde al suo nome. 18. Qui sta la sapienza. Chi ha intelligenza, calcoli il numero della bestia, perché è un numero d'uomo; e il suo numero è seicentosessantasei.»
Tuttavia le tre barre di separazione, pur richiamando quella corrispondente al numero 6, non rappresenterebbero alcuna cifra all'interno del codice stesso: sono semplicemente linee di riferimento utilizzate dai dispositivi di lettura per capire dove inizia e dove finisce lo stesso.
Nel film Hitman - L'assassino il personaggio presenta un codice a barre sulla nuca.