Arduino e UI personalizzata by Lock

Ci si scambia opinioni su un po' di tutto quello che non riguarda torce e simili.
Avatar utente
lock
Messaggi: 1828
Iscritto il: 05/03/2015, 14:33

Arduino e UI personalizzata by Lock

Messaggio da lock » 06/01/2017, 11:31

In quasto thread esporrò qualche mio progetto di User interface (UI) personalizzata mediante l'utilizzo di microcontrollori in particolare di Arduino.

Possiedo diverse tipologie di schede Arduino ( Uno, mini, nano, due, leonardo, lilypad...etc etc...oltre agli immancabili cloni cinesi che cmq fanno il loro egregio lavoro e il cui prezzo si attesta intorno a qualche misero dollaro).
Le schede che utilizzo maggiormente sono Arduino Uno e Arduino Nano.
Immagine
Immagine

Vediamo, innanzitutto, brevemente cosa é Arduino:

Arduino è una piattaforma hardware low-cost programmabile, con cui è possibile creare circuiti "quasi" di ogni tipo per molte applicazioni, soprattutto in ambito di robotica ed automazione. Si basa su un Microcontrollore della ATMEL, l'ATMega168/328: per esempio l'Arduino Uno monta un ATMega328. Nasce a Ivrea, nel 2005, da un'idea di un professore universitario, un Ingegnere Elettronico, Massimo Banzi, che decise di creare una piattaforma per i propri studenti, così da facilitarli nello studio dell'Interaction Design.

La scheda Arduino è in grado di interagire con l'ambiente in cui si trova ricevendo informazioni da una grande varietà di sensori. Ma non si parla solo di sensori, Arduino può comandare luci, LED, motori e altri attuatori. Il linguaggio di programmazione è basato su Wiring (un ambiente di programmazione Open-Source pensato per una facile applicazione per semplificare la programmazione in C e C++) e sull'interfaccia Processing. I progetti basati su arduino possono essere indipendenti oppure essere interfacciati con altri software come Processing, MaxMSP, Flash e altri. Il design (EAGLE) e la schematica (CAD), sono liberi, scaricabili e possono essere modificati a piacimento.

Ogni scheda arduino presenta dei Pin. Ogni pin può avere molteplici utilizzi, e bisogna far attenzione a come questi vengono utillizzati. In generale su una scgeda troviamo questi:
 

• AREF - Questo pin regola il voltaggio di massima risoluzione degli input analogici
• GND - massa
• PWM - I pin a disposizione con questa funzionalità sono 6. Il PWM, o pulse width modulation permette di creare un'onda di corrente regolabile. Questa è molto utile per comandare svariati sistemi elettronici. L'esempio piu' stupido è comandare i servomotori da modellismo.
• TX - RX - porta seriale
• RESET - Questo è un PIN digitale. Se la lettura di questo PIN=HIGH il controller si resetta
• PIN uscita corrente a 3.3V
• PIN uscita corrente a 5V
• Vin - PIN input corrente per alimentazione controller
• Analog in - PIN input analogici. Possono percepire molto precisamente una corrente DC tra 0 e 5V, resistuendo un valore da 0 a 1023.
• Digital - PIN digitali programmabili per essere input o output, percepiscono se è presente o no corrente restituendo LOW se non c'è corrente e HIGH se c'è corrente, oppure possono essere programmati per generare corrente in output di massimo 40mA.
Quindi, come detto, sui pin possono circolare solo correnti molto basse max 40mA e tensioni di max 5V.

Ecco un esempio di mappatura dei pin di Arduino Nano.
Immagine

Bene !!! A questo punto nn resta che iniziare. Spero di destare un po di interesse sull'argomento.
Idee e suggerimenti sono ben accetti, anzi direi indispensabili..Per qualsiasi dubbio, su codice , su schemi o su qualsiasi altra cosa non esitare a chiedere.

Son sicuro che ci divertiremo...
A breve la prima UIImmagine

Avatar utente
TommyDef
Messaggi: 1133
Iscritto il: 10/02/2014, 10:07

Re: Arduino e UI personalizzata by Lock

Messaggio da TommyDef » 06/01/2017, 12:34

:shock: troppo teconologico per me

Avatar utente
lock
Messaggi: 1828
Iscritto il: 05/03/2015, 14:33

Re: Arduino e UI personalizzata by Lock

Messaggio da lock » 06/01/2017, 14:29

UI-LOCK-CPFv1.1

Caratteristiche principali:

La UI-LOCK-CPFv1.1 permette all utilizzatore di interagire con i vari livelli mediante un joystick ( simile ai cursori analogici che vi sono sui controller delle console di gioco) spostando la levetta nelle varie direzioni UP DOWN LEFT RIGH . Il joystick inoltre é dotato anche di un pulsante azionato mediante la pressione del cursore verso la superficie di appoggio.
Immagine

·  la presente è una UI che permette facilmente di accedere al TURBO.

· Permette di andare su e giù fra i vari livelli (ben 7 differenti oltre il turbo)

·  Consente in qualsiasi momento di selezionare un livello differente da quello corrente ed accedere ad esso in un momento differente (es: se mi trovo in modalità low1 posso selezionare ad esempio il livello high2 ma senza accedervi…scelgo io, appunto, quando switchare dal livello low al livello high2 senza passare dai vari sottolivelli (questo esempio é riportato nel video sotto)

·  Ha la funzione memoria che memorizza l’ultimo livello

·  Ha la possibilità di resettare la UI ed eliminare tutti i livelli salvati in memoria

·  livelli totalmente personalizzabili...possibilitá di inserire modalitá beacon e strobo

· possibilitá di visualizzare tutto ( livelli, tensione, corrente) su display 16x2 lcd e possibilitá di inserimento di qualsiasi tipo di sensore

 

Ecco lo schema della UI
Immagine

I blocchi rettangolari rappresentano i vari livelli della UI:

TURBO: E’ la modalità turbo in direct drive

POWEROFF - RESET UI : Permette alla torcia di spegnersi ed eliminare I livelli salvati in memoria. Si accede a questa funzione direttamente dal Turbo tramite il pulsante DOWN oppure passando dal POWER OFF-MEMORY MODE provenendo da livelli differenti dal turbo.

POWER OFF – MEMORY MODE: Permette di spegnere la torcia e mantenere salvato l’ultimo livello utilizzato.
Es. Se  mi trovo,ad esempio, in LOW2 ed entro in POWER OFF MEMORY MODE la torcia si spegne e mantiene salvato l’ultimo livello.Tramite “UP” accedo nuovamente al livello LOW2 oppure, tramite DOWN, accedo al POWEROFF-RESET UI eliminando dalla memoria l’ultimo livello salvato.

N-LEVEL: Rappresenta l’ennesimo livello in cui ci si trova.

N+1 LEVEL: Livello successivo di potenza superiore rispetto al precedente

N-1 LEVEL: Livello successivo di potenza inferiore rispetto al precedente

 

I blocchi a forma di cerchio invece rappresentano I pulsanti che permettono di interagire con la UI:

UP – levetta spinta verso l’alto: Serve per accedere al turbo da torcia spenta o accedere in qualsiasi momento a un livello previa selezione con tasto Select.

DOWN – levetta spinta verso il basso: serve a uscire dalla Modalità turbo e passare in POWEROFF-UI RESET oppure se si è su un livello differente dal turbo permette di scendere su livelli di minore potenza fino allo spegnimento totale

LEFT – levetta spinta verso sinistra: permette di salire su livelli di maggiore potenza.

RIGHT – levetta spinta verso destra: permette di entrare in qualsiasi momento in POWER-OFF-MEMORY MODE. Quindi di spegnere la torcia salvando l’ultimo livello utilizzato

SELECT: E’ il pulsante che vi è sotto il cursore e si aziona premendo il cursore verso la superfice di appoggio. Ogni click rappresenta un livello da selezionare

Es. da torcia spenta o in modalità turbo posso selezionare un livello fra i seguenti senza dover spegnere la torcia

1click= selezionato livello firefly
2click= selezionato livello low1
3click= selezionato livello low2
4click= selezionato livello mid1
5click= selezionato livello mid2
6click= selezionato livello high1
7click= selezionato livello high2

 

Es. Da torcia accesa

Se mi trovo ad esempio sul livello Mid1 vuol dire che in memoria ho salvato 4 click. Se volessi ad esempio passare al livello High2 dovrò pressare il pulsante SELECT altre 3 volte (per raggiungere i 7 click del livello High2) e successivamente attivare il livello HIGH2 mediante UP.

 

Il blocco a forma di esagono rappresenta il livello selezionato mediante il tasto SELECT.  Posso in qualsiasi momento effettuare la selezione di un livello

NB: Quando seleziono un livello con il pulsante SELECT per accedere a tale livello devo usare il tasto UP

 Ecco un breve video.
https://youtu.be/OENDbQr_pyQ

La UI è testata e funzionante.
Il video comoleto con misurazioni di corrente e luxmetro devo ancora montarlo...conto di riuscirci entro qualche giorno.
Successivamente inserirò schema dei circuiti e codice da me scritto per rendere il lavoro facilmente fruibile a tutti.

Avatar utente
cyberescudo
Messaggi: 1206
Iscritto il: 21/05/2014, 16:28

Re: Arduino e UI personalizzata by Lock

Messaggio da cyberescudo » 06/01/2017, 16:49

Ottimo lavoro, complimenti.

Avatar utente
Blux
Messaggi: 1739
Iscritto il: 24/02/2011, 23:37

Re: Arduino e UI personalizzata by Lock

Messaggio da Blux » 06/01/2017, 22:41

Complimenti Lock! Molto, ma molto interessante.
Della piattaforma hardware Arduino avevo letto semplicemente alcune sporadiche informazioni , quindi non posso che ringraziarti, sia per averlo descritto nel modo piu' user friendly possibile che per condividere il tuo progetto con tutto il forum . :ok:

Avatar utente
lock
Messaggi: 1828
Iscritto il: 05/03/2015, 14:33

Re: Arduino e UI personalizzata by Lock

Messaggio da lock » 06/01/2017, 22:54

Blux ha scritto:Complimenti Lock! Molto, ma molto interessante.
Della piattaforma hardware Arduino avevo letto semplicemente alcune sporadiche informazioni , quindi non posso che ringraziarti, sia per averlo descritto nel modo piu' user friendly possibile che per condividere il tuo progetto con tutto il forum . :ok:
Immagine Immagine
sono felice per questo!!
Ho ancora tante cose interessanti che vorrei creare e condividere , tempo permettendo.
Immagine Immagine
Immagine

Ne approfitto per postare un altro video dove mostro gli assorbimenti dei vari livelli...chiedo scusa per la qualitá ma in questi giorni nn ho il tempo materiale per farne uno decente.

https://youtu.be/n_OnIEGVqWg

Avatar utente
occhiodifalco
Messaggi: 838
Iscritto il: 05/11/2014, 23:18
Località: Rovigo

Re: Arduino e UI personalizzata by Lock

Messaggio da occhiodifalco » 06/01/2017, 23:05

Davvero complimenti Lock, seguo con interesse!
Almeno l'italiano sallo!

Avatar utente
lock
Messaggi: 1828
Iscritto il: 05/03/2015, 14:33

Re: Arduino e UI personalizzata by Lock

Messaggio da lock » 08/01/2017, 0:28

Questa sera ho deciso di lavorare a due importanti funzioni ovvero:
- la possibilità di variare l'intensitá luminosa del led quindi creando un dimmer PWM
- la possibilitá di usare la modalitá strobo e beacon e per esse, variare la velocità di apertura e chiusura del led (per lo strobo) e il tempo di attesa fra un impulso e l'altro ( per il beacon)

Per fare ciò ho pensato di utilizzare due semplici potenziometri :
-Uno che regola l' intensità luminosa del led da spento fino al suo massimo.
-L' altro invece che regola i tempi per strobo e beacon.
In particolare questo secondo potenziometro ruotato tutto a destra fará rimanere sempre acceso il led. Ruotandolo verso sinistra (di qualche mm) ,invece, permetterà di entrare in modalità beacon e regolarne il tempo di attesa fra un impulso el altro.
Continuando a ruotare verso sinistra si entrerá in modalitá Strobo a bassa velocitá. La velocitá di quest'ultimo varierá, fino a raggiungere il massimo con il potenziometro ruotato tutto verso sinistra .
Difficile spiegare a parole !!
Meglio un video !!! ecco a voi!!

https://youtu.be/KC_myOW2OSI

Come vi sembra?

Non mi resta che montare questo sistema sul precedente e vedere che succede...
Ps:il circuito in questo caso è stato realizzato con: arduino nano, mosfet irf520n , una 18650 per l'alimentazione e due potenziometri.

Avatar utente
lock
Messaggi: 1828
Iscritto il: 05/03/2015, 14:33

Re: Arduino e UI personalizzata by Lock

Messaggio da lock » 08/01/2017, 2:19

Metto adesso qualche foto che mostra la variazione di tensione di alimentazione sotto carico e la variazione di corrente erogata per i 7 livelli + turbo della UI in oggetto.
Viene utilizzata come alimentazione una keeppower 2600mah e come led un xm-l t6.
Arduino invece è alimentato con una batteria da 9v ricaricabile da 200 mah (acquistata al lidl) ed è stato calcolato un assorbimento in corrente di circa 20mA.
Per i progetti futuri prevedo l'utilizzo di una 18650 per alimentare il tutto, nonché di meccanismi di "Power safe mode" e spegnimento totale.

Power off:
4.15v - 0.00A ( questa misura é stata effettuata anche con il multimetro per verificare l'eventuale parasitic drain .
Il mio strumento (non professionale) vichy vc99, misura 6uA
Immagine

Firefly:
4.12v - 0.08A
Immagine

Low1:
4.04V - 0.440A
Immagine

Low2:
3.94v - 0.86A
Immagine

Mid1
3.83V - 1.30A
Immagine

Mid2
3.71v - 1.72A
Immagine

High1
3.58v - 2.16A
Immagine

High2
3.44v - 2.76A
Immagine

Turbo
3.46v - 2.80A
Il turbo é stato fatto volontariamente molto simile al high2 per verificarne la differenza in direct drive.
Immagine


Al turbo siamo a circa 9,7Watt di potenza quindi molto vicini alla "Maximum Power" di 10w che Cree riporta nel datasheet per questa tipologia di led.

Le misurazioni fra display e multimetro corrispondono. Al piu, fra le due, é stata verificata una differenza di 0.05V max e 0.05A max.

Avatar utente
P.P.
Messaggi: 19696
Iscritto il: 15/12/2011, 18:05

Re: Arduino e UI personalizzata by Lock

Messaggio da P.P. » 08/01/2017, 9:28


D
avvero molto interessante :o ! Non me ne intendo di elettronica ma capisco la grande utilità di questa
applicazione, che apre infinite possibilità ed aggiornamenti. I miei complimenti Lock !!!
...Sentire la luce scorrere nelle proprie vene...

Rispondi