Scrivere un file txt con tastiera PS2/USB e arduino

Salve a tutti, vorrei costruirmi un "blocco note elettronico" per salvare su SD un file di testo che contenga una stringa per riga formata da 8 o 10 valori inseriti quasi tutti manualmente per mezzo di una tastiera PS2/USB e alcuni compilati in automatico (es data, ora, temperatura, umidità); i valori registrati nella stringa devono essere separati da una virgola (,) per poi essere allocati in una tabella e foglio di calcolo di Excel o altro DBase per essere processati e ricavare altri dati e compilare file tipo DXF (si tratta di coordinate polari di punti traguardati con strumentazione ottica, topografica, e quindi dopo selezione, rettifica/correzione degli errori e calcoli trigonometrici ricaverò le coordinate spaziali del punto traguardato che verranno alloccate in celle di un foglio elettronico ed essere poi utilizzate per compilare in automatico un file di tipo DXF e caricate in un programma CAD).

ESEMPIO DEL FILE COMPILATO DA ARDUINO:

(A) (B) (C) (D) (E) (F) (G) (H) (I) (L) (M)


999,999,9.999,9.999,999.999,999.999,9999.999,gg/mm/aaaa,hh:mm,99.9,99

(A): numero di 4 cifre intere e 0 decimali; numero progressivo della stringa compilata
(B): numero di 3 cifre intere e 0 decimali; "nome stazione"
(C): numero di 1 cifra intera e 3 decimali; "altezza strumentale"
(D): numero di 1 cifra intera e 3 decimali; "altezza target"
(E): numero di 3 cifre intera e 3 decimali; "angolo zenitale"
(F): numero di 3 cifre intera e 3 decimali; "angolo azimutale"
(G): numero di 4 cifre intera e 3 decimali; "distanza inclinata"
(H): data nel formato 22/10/2020
(I): ora nel formato 16:30
(L): numero di 2 cifre intere e 1 decimale; "temperatura °C"
(M): numero di 2 cifre intere e 0 decimali; "umidità %"

Alcuni di questi dati devono per forza essere immessi dall'operatore per mezzo di una tastiera da PC (anche se basterebbe una tastiera a matrice 4x4, per espansioni future è meglio una QWERTY), esempio i dati E-F-G devono essere immessi per ogni battuta;
i dati B-C-D una volta immessi possono essere riproposti tal quali l'input precedente ed in caso aggiornati,
il dato A, progressivo stringa, ovvero il numero di riga verrà immesso in automatico così come i valori I ed L temperatura ed umidità verranno letti da un sensore tipo il DHT-11,
la data ed ora, dati L ed I si inseriscono la prima volta e verranno registrati automaticamente aggiornati dal Real Time Clock presente nella shield scheda memoria SD DataLoggerRecorder da utilizzare nel progetto.
Ben! tante parole per dire che mi serve un data recorder come quello che faceva il PSION ORGANISER di 40 anni fa... qualcuno sa se un oggetto simile sia stato già fatto/trattato da qualcuno e pubblicato in questo forum?
Grazie
E.G.

Ho trovato questa discussione che tratta proprio di scrivere con una tastiera PC su un display lcd 20x4 per mezzo di un arduino nano, quindi una parte delle periferiche necessarie ci sono, manca la shield SD DataLoggerRecorder+DHT11...
https://create.arduino.cc/projecthub/michalin70/connect-a-usb-keyboard-with-an-arduino-50c077?ref=part&ref_id=11332&offset=5

Buonasera,

essendo questi i tuoi primi post, nel rispetto del regolamento della sezione Italiana del forum (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con molta attenzione tutto il succitato REGOLAMENTO ... Grazie. :slight_smile:

Guglielmo

P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell’apposito thread, nel rispetto del suddetto regolamento nessuno ti risponderà (eventuali risposte verrebbero cancellate), quindi ti consiglio di farla al più presto. :wink:

Non mi risulta, ma io non so tutto

Inoltre anche esistesse qualcosa di simile, difficilmente coprirebbe esattamente quello che ti serve
È praticamente certo che ti toccherebbe modificarlo, anche pesantemente

E siccome modificare un programma già fatto è spesso più difficile che riscriverne uno "subito giusto"...

E questo vale anche se il primo programma te lo sei scritto tu...

Figuriamoci per uno raccolto in rete, e scritto da chi ha esigenze e conoscenze differenti dalle tue

Quindi il mio consiglio è di procedere per passi

Primo
La tastiera, procurati una tastiera PS2 e segui quell'esempio che hai trovato, vedi se riesci a capirlo e modificarlo per non usare il display ma scrivere sulla seriale di arduino

Fatto questo, smonta tutto e passa a fare il passo2
RTC , da solo
qui è abbastanza semplice, ci sono tanti esempi
Vedi se riesci a far scrivere a comando sulla seriale data e ora, questo è facile

Fatto questo smonta e passa al tre
Temperatura e umidita, da sole, scritte su seriale
Anche questo è facile

Passo 4
Unisci queste cose e fai scrivere a comando la riga che vuoi, come la vuoi,sulla seriale
A questo punto è facile

Passo 5

Uso della SD
Da sola
Prendi il lettore di schede, carichi gli esempi e ti impratichisci a far scrivere a conando su file quello che vuoi
Semplice se segui bene gli esempi

Passo 6

Unisci il tutto
Lavoro finito

Come passo propedeutico dai una bella lettura a:
regolamento
Discussione "aiutateci ad aiutarvi"
Discussione "la pappa è fatta"
Discussione "termoremoto non è termometro"
Esempi delle librerie, in particolare RTC e SD

Se serve per chiarimenti o duggerimenti noi qui siamo

1 Like

Decodificare un segnale PS/2 è abbastanza semplice, io tanto tempo fa lo feci con un PIC.
Infatti nei commenti al progetto di cui ai messo al link si parla di "native PS/2 (non-USB) keyboard"

Discorso diverso se invece la tastiera è un HID (human interface device) USB, come tutte le tastiere più recenti. A quel punto avresti bisogno anche di una shield USB host oppure usare un microcontrollore con questa funzione già integrata come STM32, SAMD etc etc

Grazie per la risposta e per l'indirizzamento ad approcciarsi per step.
Farò certamente così, ho dei colleghi programmatori che mi daranno assistenza nello scrivere il programma, anzi lo faranno loro ed io seguendoli nel loro lavoro studierò ed imparerò "giocando in campo".
Ovvio che dovrò già prima studiare e sperimentare (o almeno provarci) i vari step che mi hai suggerito; il tuo è proprio il consiglio che cercavo e che sicuramente seguirò, la troppa carne al fuoco porta per chi non ha esperienza solo risultati disastrosi... questo in tutti i campi!
Inizierò con un diagramma di flusso in modo da isolare le varie operazioni dello sketch e seguire singolarmente il loro sviluppo.
Se la cosa non disturba e non va contro il regolamento posterò gli sviluppi del progetto.
Grazie
Enrico G.

Si esatto, mi riferivo ad una tastiera PS2 o comunque una PS2 con "spina USB", non una HID.
Lo solo scopo di utilizzare una PS2 con connettore USB era la facilità di usare una presa da pannello come quella della prima foto, ma nulla vieta di sostituire l'accoppiamento con altri tipi di connettori stagni a 4 pin ricablando la spina della tastiera, esempio i connettori serie mil come il MIL-DTL-5015 o simili, robusti e stagni che per i lavori in campagna non è poi così male.
Grazie
E.G.


image

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.