ITS Calculator, progetto personalizzato in Arduino

ITS calculator

Un gruppo di Studenti dell’ITS Nuove Tecnologie per la Vita ha sviluppato ITS calculator, una calcolatrice interamente basata su un Arduino.

Oggi presentiamo un altro progetto di fine corso di Elettronica, realizzato da due studenti dell’ITS NUove Tecnologie per la Vita: Cesar Collazos (software) e Enrico Vitaly Zucchi (Hardware e debugging) in rigoroso ordine alfabetico.

Lasciamo a loro la parola.

Il progetto

Abbiamo scelto questo progetto perchè volevamo concentrarci più sulla parte software, inoltre la personalizzazione della calcolatrice ha reso il nostro lavoro ancora più interessante. Riflettendo sulle diverse possibilità di scelta, abbiamo preferito cimentarci con la calcolatrice perché Cesar aveva già una certa dimestichezza con il codice del progetto ed io ho scelto di seguire questo input, incuriosito dalle possibilità e dalla occasione di creare qualcosa di utile per tutti i giorni.

L’idea iniziale per la calcolatrice elettronica con Arduino è nata dalla necessità di creare uno strumento pratico e versatile che permettesse di effettuare calcoli in modo rapido, efficiente e funzionale. Si cercava di progettare un dispositivo compatto e facile da usare che potesse eseguire operazioni matematiche di base e forse alcune funzioni più avanzate, mettendo in pratica le conoscenze sia elettroniche che informatiche (e matematiche) acquisite.

L’hardware

 

 

 

 

 

 

 

 

 

  • LCD (+ I2C adapter) da 3.3 a 5V, dimensioni: 36 x 80 x 12,5 mm
    Calcolatice Arduino

 

 

 

 

 

 

 

 

 

  • SWITCH A MEMBRANA
    Calcolatrice Arduino

 

 

 

 

 

 

 

 

 

  • CAVI MxM (Switch a membrana)
  • CAVI MxF (LCD)
  • CAVI FxF (I2C adapter bridge)
    ITS calculator

 

 

 

 

 

 

 

 

 

Schema pratico

 

ITS calculator calcolatrice programmata

Schema montato

ITS calculator

Funzionamento

La calcolatrice elettronica con Arduino funziona tramite l’interazione di vari componenti chiave: pulsanti per l’input dei dati e la selezione delle operazioni, uno schermo LCD per mostrare i numeri e i risultati, un adattatore per ridurre i collegamente dello schermo e l’Arduino stesso per elaborare gli input e eseguire i calcoli. Quando si preme un pulsante, l’Arduino legge l’input e esegue l’operazione corrispondente, mostrando il risultato sullo schermo LCD.

Software

Abbiamo scritto un software che prenda come input i numeri e le operazioni dallo switch a membrana e che dia come output i risultati delle operazioni. Il codice gestisce quindi tanti input differenti (funzioni) quanti sono i tasti messi in matrice della membrana e il numero delle operazioni, come output abbiamo il risultato delle operazioni fondamentali.

Abbiamo poi personalizzato il codice per eseguire radici, al posto della sottrazione. La sottrazione viene eseguita inserendo un addendo negativo. il codice è risultato complesso nella parte in cui venivano a collegarsi le diverse librerie di codice, in quanto la libreria dello schermo lcd ha richiesto un adattamento al codice.

Il debug del codice è stato abbastanza semplice e veloce, in quanto il codice era già ben progettato e studiato prima dell’implementazione.

Montaggio pratico

Il montaggio è relativamente semplice: occorre semplicemente collegare la tastiera ad Arduino e aggiungere lo schermo LCD con adattatore I2C.

Il problema principale riscontrato è stato l’alto numero di pin occupati dallo schermo lcd standart fornito dal kit della scuola. Quindi abbiamo ordinato un nuovo lcd con adattatore I2C che ha permesso di ridurre notevolmente i pin occupati. In tal modo abbiamo ridotto sia la complessità di montaggio che la lettura ed il controllo delle connessioni.

Non abbiamo utilizzato e rifinito con la stampa 3D perché vi era una differenza di volumi e grandezze troppo marcata tra i vari componenti, in particolare tra la membrana e lo schermo lcd. E’ comunque un’aopzione che lasciamo a chiunque voglia racchiudere il progetto in una scatolina, dal momento che sarà sufficiente creare un parallelepipedo a 2 pezzi con sezioni svasate.

Abbiamo saldato l’adattatore allo schermo lcd e collegato l’adattatore con un bridge per la ovviare alla mancanza di un componente (ovviamente non essenziale).

Problemi riscontrati

Una delle principali difficoltà incontrate durante lo sviluppo è stata la gestione delle diverse operazioni matematiche in modo efficiente e senza errori. Questo implicava la valutazione di casi speciali come la divisione per zero o il trattamento adeguato dei numeri negativi dato che abbiamo aggiunto il calcolo della radice quadrata. Anche la gestione dell’interfaccia utente, inclusa la rilevazione di molteplici pressioni dei tasti e l’aggiornamento dello schermo in tempo reale, presentava sfide aggiuntive.

Infine, abbiamo incontrato una ulteriore criticità nell’ adattare la libreria dello schermo lcd I2C. La presenza di diverse librerie ha comportato uno studio approfondito del sistema di interfaccia hardware tra la scheda e l’adattatore. Dopo diversi tentativi, modificando di poco il codice di input dello schermo lcd siamo riusciti a risolvere l’incompatibilità della libreria.

Evoluzione

In fututo sarà possibile trasformare questa calcolatrice in una calcolatrice speciale o scientifica, aggiungendo contestualmente più operazioni, e lavorare ad esempio con la funzioni logaritmiche e trigonometriche.

Per raggiungere tale scopo sarà necessario espandere le funzionalità offerte dalla tastiera a membrana e magari ingrandire lo schermo. Si potrebbe infine stampare componenti 3D per creare un contenitore per la calcolatrice.

Conclusioni

Il progetto ha sviluppato e richiesto diverse capacità: problem solving, pazienza, perseveranza e capacità di raggiungere gli obbiettivi.
Abbiamo messo a punto le nostre competenze sia di hardware sia di software, in un progetto di gruppo che ha cementato la nostra capacità di lavorare con altri.
Personalmente abbiamo ideato, sviluppato e portato a termine un progetto di elettronica in tutte le sue fasi e questo ha richiesto una certa dose di multitasking, comprendere ed identificare eventuali errori sia di hardware sia di software.

Il lavoro ha sviluppato in noi una sana competizione ed ha permesso di confrontarci con altri.
Anche se il progetto potrebbe apparire semplice, nella realtà il codice è piuttosto complesso, abbiamo preferito concentrarci sulla parte software e dare maggiore rilevanza a quest’utlima.

Il costo dell’hardware per l’intero progetto è inferiore ai 50 euro.

 

Link utili

Join our groups on Telegram…

… and don’t forget our social channels!

Definire ciò che si è non risulta mai semplice o intuitivo, in specie quando nella vita si cerca costantemente di migliorarsi, di crescere tanto professionalmente quanto emotivamente. Lavoro per contribuire al mutamento dei settori cardine della computer science e per offrire sintesi ragionate e consulenza ad aziende e pubblicazioni ICT, ma anche perche’ ciò che riesco a portare a termine mi dà soddisfazione, piacere. Così come mi piace suonare (sax, tastiere, chitarra), cantare, scrivere (ho pubblicato 350 articoli scientfici e 3 libri sinora, ma non ho concluso ciò che ho da dire), leggere, Adoro la matematica, la logica, la filosofia, la scienza e la tecnologia, ed inseguo quel concetto di homo novus rinascimentale, cercando di completare quelle sezioni della mia vita che ancora appaiono poco ricche.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.