Show Posts
Pages: [1] 2 3 ... 18
1  International / Software / Re: [RISOLTO]Problema compatibilità libreria VGA con PS2Keyboard. on: March 05, 2014, 05:13:39 am
  smiley-eek  smiley-razz  smiley-sweat  smiley-roll  !!!!!

Provare per credere !!!!

Il problema è cercare di comprendere il motivo, cosa che da parte mia è impossibile, quindi verificandolo con lo sketch in pratica, non mi resta che accettare la soluzione degli esperti.

Comunque ribadisco che così funziona, anzi aggiungo che nel mio sketch ho aggiunto anche la comunicazione seriale la quale non mi dà alcun problema.


2  International / Software / Re: Problema compatibilità libreria VGA con PS2Keyboard. on: March 04, 2014, 02:48:10 pm
 smiley-razz
Più semplice di quanto si possa immaginare.
In questo caso è indispensabile l'ordine di inserimento delle librerie ed attivazione con il begin.
Dopo aver contattato stimmer , il quale mi ha confermato il conflitto di interrupt e consigliato di dare precedenza alla libreria più lenta (PS2keyboard), il problema è scomparso.

Occorre tener presente quindi che la precedenza di apertura ed attivazione delle librerie, diventa fondamentale in questo caso.

Ecco il codice corretto che non presenta alcun problema.

Code:

#include <PS2Keyboard.h>
#include <VGA.h>

const int DataPin = 8;
const int IRQpin =  5;
PS2Keyboard keyboard;

char c;    //tasto premuto

int col=-1;  //posizione colonna
int lin=0;   //posizione riga
int colore=-1; //colore carattere

void setup() {
  //attivazione PS2
  keyboard.begin(DataPin, IRQpin);

  //attivazione VGA out
  VGA.begin(320,240,VGA_COLOUR);
 
  //cancella schermata
  VGA.setPrintWindow(0, 0, 40, 32);
  VGA.clearPrintWindow();  //cancella schermo
  VGA.drawText("TEST Due VGA Library & PS2 keyboard",24,112,0,-1,0);

  delay(5000);

  VGA.clearPrintWindow();
  VGA.fillRect(0,0,320,240,-1);
  VGA.drawRect(1,1,319,239,-240);

  //azzera posizione
  lin=1; col=1;

  //imposta colore
  colore=240;
}


void loop() {
 
  if (keyboard.available()) {
        // read the next key
         
    c = keyboard.read();

    if (c == PS2_ENTER) {lin++;col=-1;}
    col++;
    if (col > 38) {col=1;lin++;}
    if (lin > 28) {
        VGA.clearPrintWindow();
        VGA.fillRect(0,0,320,240,-1);
        VGA.drawRect(1,1,319,239,-240);
        col=1;lin=1;
      }
    }
 
  // text colour
  VGA.setInk(colore);
  // text background colour
  VGA.setPaper(0); 

  VGA.moveCursor(col, lin);
  VGA.println(c); 
  VGA.waitSync();


Un ringraziamento particolare a stimmer (l'ideatore della libreria DueVGA) e a leo72 per l'interessamento.

Giuseppe G.
3  International / Software / Re: Problema compatibilità libreria VGA con PS2Keyboard. on: March 03, 2014, 01:17:08 pm
 smiley-cry
Ciao leo72, grazie per il consiglio, ma credo non funzioni, o probabilmente non ho inserito il "_NOBLOCK" nel punto giusto.

Non cambia nulla.

La modifica che ho eseguito è stata aprire la lib <PS2Keyboard.cpp> con "Dev-C++ 4.9.9.2" ed alla riga

// The ISR for the external interrupt
void ps2interrupt(void)

farla diventare
void ps2interrupt(void,VGA.startinterrupts_NOBLOCK)

Ho poi inserito "#include <VGA.h>" nella libreria PS2Keyboard.cpp.

Naturalmente ho salvato, ho chiuso l'IDE 1.5.5 e l'ho riaperto, compilando e trasferendo il nuovo codice.

Mi sono perso qualcosa?  (SORRY!!!  smiley-kiss non sono esperto di librerie)

Il monitor, alla pressione di un tasto (anche lo SHIFT) blinka e genera sfarfallii ed alcune volte il disallineamento delle scritte.
Cosa però strana, è che se rilasciato il tasto, alle volte l'allineamento nella stampa torna, altre no.
Il fatto che sfarfalli alla pressione del tasto potrebbe anche passare, ma il disallineamento e la perdita di qualche carattere che ritorna alla pressione di un'altro tasto, non è molto bello.
Strano che nessuno non abbia ancora evidenziato il problema con la DUE!
Nel senso che nessuno abbia usato la libreria PS2 e la VGA nello stesso sketch che ho utilizzato io.
Ho cercato su internet, ma non ho trovato nulla.

Cosa mi consigli di fare? Postare eventuale problema nel forum della DUE o direttamente a chi ha "inventato" la libreria VGA ,(un certo "stimmer" che trovi sul forum    http://forum.arduino.cc/index.php?topic=150517.0 )?

Il link delle librerie, sono i seguenti:

http://www.pjrc.com/teensy/td_libs_PS2Keyboard.html
https://github.com/stimmer/DueVGA/archive/0.512.zip

Grazie ancora.
Un saluto a tutti.

4  International / Software / [RISOLTO]Problema compatibilità libreria VGA con PS2Keyboard. on: March 02, 2014, 08:32:15 am
 smiley-roll-sweat
Un saluto a tutti.
Sto provando la DUE, con VGA out e keboard PS2.

Qualcuno sà indicarmi come risolvere il problema "credo di interrupt" tra le librerie che uso ?

La stampa e la lettura del carattere sono corretti, ma durante la pressione del tasto, la visualizzazione sul display balla e alle volte il monitor perde la sincronizzazione con la VGA out, rinfrescando il display "sfarfallio e perdita allineamento dal 5 carattere in poi".

Continuando a premere altri tasti, il problema si presenta in modo random e poi si sistema da solo.

Qui sotto lo sketch che ho usato.

Un Grazie anticipato.

Giuseppe G.

Code:
#include <VGA.h>
#include <PS2Keyboard.h>

const int DataPin = 8;
const int IRQpin =  5;
PS2Keyboard keyboard;

char c;    //tasto premuto

int col=-1;  //posizione colonna
int lin=0;   //posizione riga
int colore=-1; //colore carattere

void setup() {
  //attivazione VGA out
  VGA.begin(320,240,VGA_COLOUR);
  
  //attivazione PS2
  keyboard.begin(DataPin, IRQpin);

  //cancella schermata
  VGA.setPrintWindow(0, 0, 40, 32);
  VGA.clearPrintWindow();  //cancella schermo
  VGA.drawText("TEST Due VGA Library & PS2 keyboard",24,112,0,-1,0);

  delay(5000);

  VGA.clearPrintWindow();
  VGA.fillRect(0,0,320,240,-1);
  VGA.drawRect(1,1,319,239,-240);

  //azzera posizione
  lin=1; col=1;

  //imposta colore
  colore=240;
}


void loop() {
  
  if (keyboard.available()) {
        // read the next key
          
    c = keyboard.read();

    if (c == PS2_ENTER) {lin++;col=-1;}
    col++;
    if (col > 38) {col=1;lin++;}
    if (lin > 28) {
        VGA.clearPrintWindow();
        VGA.fillRect(0,0,320,240,-1);
        VGA.drawRect(1,1,319,239,-240);
        col=1;lin=1;
      }
    }
  
  // text colour
  VGA.setInk(colore);
  // text background colour
  VGA.setPaper(0);  

  VGA.moveCursor(col, lin);
  VGA.println(c);  
  VGA.waitSync();
}  
5  Products / Arduino Due / Re: VGA library - now with TV output on: February 27, 2014, 04:49:57 pm
 smiley-roll-sweat
Hello Stimmer. There is a list of commands used and descriptions on library with VGA?

Thanks.
Giuseppe G.
6  International / Software / Re: ArduoAlarmMega / ArduoMegaAlarm on: January 04, 2014, 07:02:16 pm
 smiley-roll-sweat

Intanto un saluto a tutti, e anche se in ritardo un buon anno.
 
Io consiglerei "come anticipato a jack", questi accorgimenti al progetto:

Per quanto riguarda la coincidenza della notte, da tener conto che in quelle ore la tensione di rete si alza di circa il 5-10%, che se non ben stabilizzati, potrebbero portare il +/- 1 digit di oscillazione a 2 o 3 e quindi attivare l'allarme.

1) intanto devi essere sicuro che sia l'ingresso che usi a far scattare l'allarme, ad esempio memorizzando l'orario ed il valore letto nell'ingresso in memoria rom, in maniera che rimanga anche resettando arduino

2)devi inserire dei filtri software, tipo far calcolare la media tra 5 o 10 letture del valore, in maniera da far rilevare il vero innesco  solo con valori maggiori a 2-3 letture effettive (es. se il valore letto è 154 +/- 1, fai la media di 10 letture "1540" lo dividi per 10 e se il risultato cambia per un valore uguale o superiore a 310, allora attivi l'allarme)
oppure solo dopo aver rilevato un valore diverso da 154 +/-1 per n volte entro un arco di tempo (es. 0.5 sec), attivi l'allarme

3) ti devi assicurare che il cavo sia schermato e lo schermo collegato al GND

4) ti devi assicurare che il condensatore di filtro da 100uF , sia collegato tra il pin di ingresso di arduino e GND

5)per sicurezza, inserirei un condensatore di livello da 100uF 25v elettrolitico sull'alimentazione del circuito di ingresso se separato da arduino

Saluti.
Giuseppe G.
7  International / Generale / Re: RESOLVE Problema primo avvio Arduino YUN on: November 29, 2013, 07:59:48 am
 smiley
Scusate, ma come al solito manca sempre qualcosa nelle info.

Risolto con Log in "ROOT" Password di accesso  "arduino".

Pecca dello sketch che non ha feeback di password errata, e una volta inserita, anche se errata, ci si deve sloggare entrando in configurazione.


Un saluto a tutta la comunità.

Giuseppe G.
8  International / Generale / RESOLVE Problema primo avvio Arduino YUN on: November 29, 2013, 07:22:33 am
 smiley-cry
Entusiasto dell' acquisto, mi cimento al primo test sullo YUN.

Spero che qualcuno possa aiutarmi !!!!!

Premetto, sono alle prime armi con YUN.

Dopo avermi letto il tutorial, decido di installare il listato di esempio che ho trovato sul sito.
(http://arduino.cc/en/Tutorial/Bridge)

Ho seguito le istruzioni passo passo, ma il risultato è negativo.

Sistema utilizzato Win XP SP3
1) YUN configurato come originale, indirizzo 192.168.240.1/   o   arduino/  verificato con ETH diretta dal PC
2) Installato nuovo IDE 1.5.5 e relativo driver, copiato lo sketch sulla YUN.
3) Atteso tempo di riavvio "oltre 1 minuto" ed accensione del led Pin13 come da programma
4) Connesso nuovamente il PC alla ETH YUN
5) Digitato sul browser Firefox  "http://arduino/arduino/digital/13/1" ed ancora "http://arduino/arduino/digital/13/1" ma senza risposta, solo pagina bianca. Prima di questo, mi viene chiesta la password di accesso che anche se omessa, fà la stessa cosa.
6) Digitando "http://arduino" entro normalmente nella pagina di config.

Cosa sbaglio ?
Ho dimenticato qualcosa di importante ad esempio in configurazione?
La CFG è quella originale.

Grazie anticipatamente.

Giuseppe G.
9  International / Software / Re: ArduoAlarmMega / ArduoMegaAlarm on: October 16, 2013, 04:38:19 am
  smiley-draw
Per aumentare un pò la tensione, basta inserire un diodo 1n4148 in serie a quello esistente con il led sullo stabilizzatore, in maniera da aumentare di circa 0,5 / 0,6V la fornitura di alimentazione/carica batteria ed il gioco è fatto.  smiley-wink
10  International / Software / Re: ArduoAlarmMega / ArduoMegaAlarm on: October 14, 2013, 05:59:03 am
Ok, allora la VMax dovrà essere di 14,4-14,6V di carica e mantenere costante 13,8VMin.

La butto lì:
Aumentando il tempo di ciclo a 30 sec e secondo la logica del SW, le soglie delle tensioni da verificare saranno
11,5V = batteria scarica o guasta (ricarica 30sec su 30)
11,5V...13,0V = batteria scarica (ricarica 30sec su 30)
13,1V...13,8V = batteria ok con carica minima (ricarica 29sec e 1sec per controllo)
13,9V...14,4V = batteria ok con carica max (ricarica 5sec e 1sec per controllo su un totale di 30sec)
14,5V...14,8V = batteria guasta o assente (ricarica 1sec e 1sec per controllo)

Ragionando si potrebbe eseguire il seguente test.
Nel momento del controllo, probabilmente la tensione scende, quindi un attimo prima si dovrà leggere il valore di inizio controllo e trascorso il secondo si dovrà rileggere il valore di fine controllo ed in base a questi due valori, assegnare lo status batteria, dove il valore minimo sarà ad esempio 13,9V ed il massiomo 14,4V per "Batteria OK".

Tutto da verificare naturalmente e se possibile con batterie differenti. Anche il carico però potrebbe influire.

 smiley-roll-sweat non sò !!!
11  International / Software / Re: ArduoAlarmMega / ArduoMegaAlarm on: October 13, 2013, 04:42:20 pm
Quote
Ciao Giuseppe,
riprendo il discorso fatto da testato sulla carica della batteria..Ho provato a caricarla ciclicamente come detto da te, per esempio prendiamo i 2 intervalli iniziali e cioè <12.9V e <13.2V (in questo range ci si arriva subito quando stacco il transistor) la carica scende sotto i 12.9V immediatamente con risultato-> la carica non si muove da quel range (ho provato per un'ora continua). Siccome la batteria da 12V 7A vuole una tensione di standby tra 13.5 e 13.8, noi ai capi della batteria andiamo con una tensione massima di 13.5V, perchè non lasciamo la tensione continua?possiamo avere qualche problema?

Ciao jack-vc09,
Semplice !!! Se hai intenzione di alimentare in modo continuo la batteria, sei libero di farlo, ma come fai a testarne la presenza e l'efficienza?
Il fatto di interrompere periodicamente l'alimentazione, fà si che si possa testarne lo stato.  smiley-wink

Questo, come ho detto nei post precedenti, dipende dalla marca della batteria che si usa, quindi, quel 12,9V, potrebbe essere il valore alto compreso tra 12,9 e 13,5V di batteria "OK", lasciando sempre il controllo periodico.

Da tenere presente però che in caso di mancanza o guasto della batteria, il valore dovrà salire di qualche decimo di volt (Es. 13,7V) ed in questo caso, segnaare il guasto batteria.

Per far sì che questo accada, occorrerebbe aumentare un pò la tensione, inserendo un diodo 1n4148 in serie a quello esistente con il led sullo stabilizzatore, in maniera da aumentare di circa 0,5 / 0,6V la fornitura di alimentazione/carica batteria.

Le batterie al piombo funzionanti, anche se cariche, sopra una certa soglia non andranno mai, anzi, tendono a scendere un pelino, quindi se guaste, si.
Ripeto, dipende dalla marca di queste, e dalle caratteristiche della VMax e corrente di carica applicabile.
Attenzione però a non esagerare con la tensione e quindi corrente di carica, causa danneggiamento della batteria stessa.

PS.: alcune possono arrivare a 14,4-14,5VMax e normalmente, hanno una tolleranza che varia dal 5 al 15% della tensione nominale di carica con certe temperature.

Consiglio di verificare la carica effettiva della propria batteria, simulando una scarica costante, pari al 50 % della corrente nominale (circa 3A con carico  formato da 3 resistenze di potenza in parallelo da 10 ohm 15-20W  o meglio ancora, con una o più lampadine da 10-20 W 12V tipo quelle delle automobili) con temperature ambiente costanti e sempre uguale per tutti i test, caricando la batteria prima con 13,5V, poi con 13,8V e poi con 14V  per un tempo minimo di 24 o meglio 48 ore, e verificare i tempi di scarica (con valore letto ai capi, inferiore a 11,5V = scarica).
Se i tempi di scarica non cambiano, abbiamo fatto centro, mentre se cambiano, occorre utilizzare quello più adeguato.

Questo è il famoso test che avrei dovuto fare io, se non avessi avuto impegni di lavoro.  smiley-mr-green
12  International / Software / Re: ArduoAlarmMega / ArduoMegaAlarm on: October 04, 2013, 01:21:54 am
Ciao  jack-vc09,
io ho risolto eseguendo un refresh 1l secondo, utilizzando la libreria time.
Se guardi l'ultimo sketch che ho postato, puoi notare che verifico se il secondo attuale è diverso dalla memoria di quello precedente. In tal caso, aggiorno il display e memorizzo il secondo attuale, e così via.

Ho già parlato di questo problema più di due week fà, e nessuno mi ha dato spiegazioni, presumendo che quello che ho detto, sia corretto.

Buona giornata.  smiley-wink
13  International / Software / Re: ArduoAlarmMega / ArduoMegaAlarm on: September 22, 2013, 12:58:41 pm
 smiley-roll-sweat
Quote
Anche scollegando tutto dagli arduini quindi solo con la porta usb l'uno funziona correttamente dicendomi che non ha trovato nessun I2C (giustamente) mentre il mega non va avanti. Mentre ho provato tipo lo sketch blink e questo funziona è come un problema hardware sui pin SCl e SDA. Sarà difettoso..
Ma usi i pin 20 e 21 del Mega?

PS.: Qui sotto, un'idea dei dissipatori da usare.
NB.: Se lo usi anche per il 7809, ti serve il kit di isolamento sul 7812 per evitare di portare a massa il pin centrale che è collegato al metallo.

Quote
Ho controllato l'entrata e invece di 220Vac entrano 240Vac direttamente dalla rete di casa (in questi giorni hanno staccato la corrente non so se sia dovuto a questo)
Da qualche anno, l' ente di fornitura energia elettrica, ha aumentato del 5% la tensione nominale, che se calcolata, potrebbe arrivare a 220 + 5% = 231V. Se tu misuri 240Vac, assicurati della certezza del valore che leggi sul tester, ed eventualmente informati su questa percentuale, percè 240V potrebbero danneggiarti diversi apparati.

Ciao.
14  International / Software / Re: ArduoAlarmMega / ArduoMegaAlarm on: September 21, 2013, 03:30:20 pm
 smiley-roll

1)
Quote
e all'accensione ho tensione sul buzzer sulla backlight sul led ecc...questo perchè i PCF8574 all'accensione partono HIGH giusto?
Se hai usato lo sketch postato da me, devi mettere nel setup un azzeramento delle uscite che pilotano il PCF8574, altrimenti ci dovresti far vedere lo sketch che hai usato.
Attento, perchè il comando del backlight a disposizione, è  di tipo negato (0 per accendere e 1 per spegnere), quindi il transistor che hai usato, è di tipo NPN, mentre negli schemi di riferimento originali della libreria è PNP.

2)
Quote
inoltre tramite questo circuito non riesco a comandare nulla ho il led che visualizza 4 quadrati e nulla..
Verifica i collegamenti e prova a staccare l'alimentazione della retro illuminazione LCD. Manca comunque una resistenza in serie da 47 - 100 ohm, a meno chè, si trovi su LCD.
Se questa non c'è, il circuito di protezione del Mega, interviene per l'eccessivo assorbimento.

3)
Quote
inoltre mi è capitato che il trasformatore in uscita invece di dare 15V ne ha 20V quindi di conseguenza ho una tensione maggiore su tutto il circuito (Arduino, Service, PCA9600 ecc...) ci si può proteggere in qualche modo da questo?
Se vai a vedere il circuito di alimentazione che ho provato io (http://www.arduoalarmmega.blogspot.it/p/blog-page_10.html), ho inserito un eventuale stabilizzatore da 9V dedicato ad arduino perchè il suo stabilizzatore cominciava a scaldare un pò troppo.
NB: Il 7812 và alettato e non deve erogare più di 14v. Se questo avviene, vuol dire che hai sbagliato qualche cosa.
I 20Vac che misuri a vuoto, in realtà diventano poi 28.2Vdc (20x1.41), ed è normale senza carico.
Man mano che il carico aumenta, questi scendono. Se comunque usi uno shunt in serie all'alimentazione alternata da qualche ohm (2-3) e da 5W, ma senza esagerare, questa scende ancora.

Ciao.
15  International / Software / Re: ArduoAlarmMega / ArduoMegaAlarm on: September 18, 2013, 02:40:54 pm
Quote
Ciao,
che routine utilizzi per la gestione del tempo di uscita, del tempo di ingresso e per assicurarsi che l'ingresso sia effettivamente aperto per un certo periodo di tempo? (per evitare falsi allarmi)

Ciao Bertu65,
come dice jack-vc09, dipende dal tipo di ingresso che si usa.  smiley-roll-sweat
Ci stiamo lavorando.  smiley-sweat
Per l'ingresso analogico, dove si possono gestire più ingressi, serve un circuito composto da più contatti nc in serie, dove ad ogni contatto, vi è in parallelo una resistenza specifica. Occorrerà leggere quindi il valore di tensione sul pin di ingresso per stabilire quale contatto viene aperto.
Quindi, se si hanno 2 contatti in serie, ci saranno 4 combinazioni di tensione, con 3, 8 combinazioni e così via.
Mentre, dedicando un ingresso ad un sensore, basta vedere 0 o 1 con il pull-up sul pin.
Il filtro HW sarà di tipo R-C analogico con cavo schermato, mentre il filtro digitale sarà stabilito da un tempo di apertura sulla lettura del pin, che se non verrà superato, si resetterà automaticamente.

Esempio: se apro il contatto dell'ingresso per un tempo inferiore a 100ms, non tengo conto della segnalazione e di conseguenza alla chiusura resetto questo conteggio, mentre se lo supero si.
Pensavo di usare la funzione millisec presente su Arduino, l'unica pecca è che le variabili da utilizzare per la memorizzazione di apertura, potranno essere a 8 bit e quindi la lettura la dovrò fare solo sugli ultimi 8 bit di millisec. Naturalmente, ci saranno n. variabili, quanti saranno gli ingressi.
Credo che 255ms di ritado massimo siano sufficenti.  smiley-wink

Se l'ingresso invece arriva dal PCF8574A singolarmente, allora cambia il filtro digitale, che a questo punto, arrivando già in ritardo per la lettura "lenta" della I2C, basterà leggere lo stesso dato per n.volte consecutive.

Quindi.... dipende dal dipo di stadio di ingresso fisico che si vorrà utilizzare.

Occorre stabilire perciò come andare a leggere l'ingresso, prima di realizzare la routine che gestisce il filtro digitale anti disturbo.

Di sicuro, 4 fili (+12V, GND, RX, TX) su cavo schermato che girano per tutta casa ed in tutti i punti che si vogliono proteggere, compreso sirene ed attuatori vari, sono meglio di n.fili quanti sono i sensori.

Probabilmente, appena testato il circuito di alimentazione, sarà argomento delle prossime discussioni qui sul forum.

Occorre un' accurata valutazione su come procedere.  smiley-roll
Pages: [1] 2 3 ... 18