Calibrare un touchscreen industriale di Hope su un Raspberry Pi

Touchscreen UM22 e tastiera di Hope Industrial con Raspberry Pi integrato internamente
Touchscreen UM22 e tastiera di Hope Industrial con Raspberry Pi integrato internamente

Molti dei nostri clienti utilizzano i nostri touchscreen e workstation industriali come front-end rugged wash-down per un semplice computer Raspberry Pi. Nel corso degli anni abbiamo scritto diversi articoli su come montare fisicamente e installare/calibrare il touchscreen utilizzando il sistema operativo Raspbian. Abbiamo anche scritto alcuni articoli generali su Linux che esaminano i vari modi di usare i nostri display con Linux.

Il sistema operativo Raspbian si è un po’ evoluto e alcuni dei metodi che abbiamo menzionato in precedenza non funzionano più. La cosa più importante è che le nuove versioni ora includono libinput invece di evdev. Di seguito viene fornita la versione aggiornata del nostro metodo raccomandato per l’utilizzo di qualsiasi touchscreen di Hope Industrial con le ultime versioni di Raspbian 9 Stretch (kernel 4.9).

Come in precedenza, poiché il nostro controller touchscreen è un dispositivo HID standard, non è necessario nessun driver specifico, ma bisogna effettuare qualche configurazione per far funzionare le cose.

Scaricate e installate evdev ed evtest

Per prima cosa dovete scaricare e installare evdev, un’interfaccia generica di input event. Come accennato, questo è stato sostituito con libinput nelle versioni più recenti di Raspbian, ma funziona ancora bene per i nostri scopi. In un futuro post forniremo istruzioni dettagliate per l’utilizzo di libinput. Per installare evdev procedete come segue:

    sudo apt-get install xserver-xorg-input-evdev

Avete anche bisogno di evtest, un’utilità che ci aiuterà a trovare i parametri di offset necessari per calibrare il touchscreen. Per installare evtest procedete come segue:

    sudo apt-get install evtest

Potrebbe essere necessario accettare le dipendenze necessarie.

Configurare la calibrazione del touchscreen

L’allineamento del touchscreen richiede l’impostazione di alcuni parametri che indicano al driver come “allungare” l’input tattile sull’area dello schermo disponibile. Useremo evtest per trovarli, poi modificheremo alcuni file di configurazione per applicarli e impostare altre proprietà del touchscreen.

1. Eseguite evtest.

2. evtest elenca i dispositivi di input collegati. Selezionate il numero del dispositivo per la Elo TouchSystems 2218 Accutouch Interface.

3. evtest mostra alcuni dati di configurazione e poi si mette in pausa, in attesa di input.

4. Utilizzando il dito o una penna capacitiva, toccate l’angolo in alto a sinistra del touchscreen. evtest mostra una serie di output dati con entrambe le righe ABS_X e ABS_Y, seguite da valori numerici:

Event: time 1374175747.420998, type 3 (EV_ABS), code 0 (ABS_X), value 484
Event: time 1374175747.421011, type 3 (EV_ABS), code 1 (ABS_Y), value 3364

Di questi valori, prendete nota del valore ABS_X più basso osservato e del valore ABS_Y più alto osservato.

5. Ora ripetete la procedura, ma questa volta toccate l’angolo in basso a destra dello schermo e prendete nota del valore ABS_X più alto e del valore ABS_Y più basso. Uscite da evtest (Ctrl + C).

6. Aprite il file di configurazione libinput nell’editor di testo preferito:
/usr/share/X11/xorg.conf.d/40-libinput.conf

7. Inserite quanto segue alla fine del file, sostituendo minX, maxX, minY, maxY (in rosso) con i valore di cui avete preso nota.

Section "InputClass"
		Identifier "elo touchscreen catchall"
		MatchVendor "ELO"
		MatchDevicePath "/dev/input/event*"
		Driver "evdev"
		Option "InvertY" "true"
		Option "Calibration" "minX maxX minY maxY"
                Option "EmulateThirdButton" "1"
                Option "EmulateThirdButtonTimeout" "750"
                Option "EmulateThirdButtonMoveThreshold" "30"
EndSection
  • Si noti che nella riga MatchVendor applichiamo questa configurazione a tutti i dispositivi di input con fornitori con il testo “ELO” in essi. Questo dovrebbe essere sufficiente, ma se avete un altro dispositivo collegato (o più touchscreen) potreste dover essere più specifici.  In questo esempio ci siamo mantenuti sul generale per poter utilizzare diverse versioni del nostro touch controller.
  • Le opzioni che iniziano con “Emulate” permettono di toccare e tenere premuto (per 750 ms) per simulare il clic del tasto destro del mouse. Se tale funzione non è necessaria, queste righe possono essere omesse.

8. Salvate il file, riavviate e ora il cursore dovrebbe seguire il dito e supportare completamente la funzione tenere premuto per effettuare un clic con il tasto destro del mouse.

Lascia un commento

XHTML: Puoi usare questi tag: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>