Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Scorrimento testo su colorduino

Elettronica lineare e digitale: didattica ed applicazioni

Moderatori: Foto Utentecarloc, Foto Utenteg.schgor, Foto UtenteBrunoValente, Foto UtenteIsidoroKZ

0
voti

[1] Scorrimento testo su colorduino

Messaggioda Foto UtenteMJ990 » 24 lug 2013, 16:15

Salve a tutti, innanzitutto spero che sia la sezione giusta per l'argomento che vado ad esporvi, altrimenti mi scuso in anticipo.

Sto cercando di realizzare un progettino che implica lo scorrimento di parole su una matrice di led 5x8 collegata con colorduino, che si interfaccia col PC attraverso un arduino duemilanove.

è da un po' che ci sto lavorando e sono arrivato ad un punto morto. sono riuscito a creare uno sketch di prova in cui, inserendo una lettera tramite il monitor seriale, questa "scorre" effettivamente sulla matrice di led, il problema è che poi non mi fa inserire altre lettere e l'unico modo che ho è quello di chiudere e riaprire il monitor seriale. in realtà lo scopo finale sarebbe quello di creare parole complete che scorrano automaticamente.
vi posto lo schizzo di codice che ho realizzato;

Codice: Seleziona tutto
#include <Colorduino.h>

void setup()
{
  Colorduino.Init();
  Serial.begin(9600);
}

//t è la colonna, y è la riga

//t è la colonna da dove inizia a scrivere
 
void a()
  {
   for(unsigned char t=7;t>=0;t--)
   {
    Colorduino.SetPixel(t,4,0,255,0);
    Colorduino.SetPixel(t,3,0,255,0);
    Colorduino.SetPixel(t,2,0,255,0);
    Colorduino.SetPixel(t,1,0,255,0);
    Colorduino.SetPixel(t,0,0,255,0);
    Colorduino.SetPixel(t+1,2,0,255,0);
    Colorduino.SetPixel(t+1,4,0,255,0);
    Colorduino.SetPixel(t-7,5,0,0,0);
    Colorduino.SetPixel(t-7,3,0,0,0);
    Colorduino.SetPixel(t+3,4,0,0,0);
    Colorduino.SetPixel(t+3,3,0,0,0);
    Colorduino.SetPixel(t+3,2,0,0,0);
    Colorduino.SetPixel(t+3,1,0,0,0);
    Colorduino.SetPixel(t+3,0,0,0,0);
    Colorduino.SetPixel(t+4,4,0,0,0);
    Colorduino.SetPixel(t+4,3,0,0,0);
    Colorduino.SetPixel(t+4,2,0,0,0);
    Colorduino.SetPixel(t+4,1,0,0,0);
    Colorduino.SetPixel(t+4,0,0,0,0);
    delay(500);
    Colorduino.FlipPage();
  }


void b()
{
  for(int t=7;t>=0;t--)
  {
    Colorduino.SetPixel(t,4,255,0,255);
    Colorduino.SetPixel(t,3,255,0,255);
    Colorduino.SetPixel(t,2,255,0,255);
    Colorduino.SetPixel(t,1,255,0,255);
    Colorduino.SetPixel(t,0,255,0,255);
    Colorduino.SetPixel(t+1,0,255,0,255);
    Colorduino.SetPixel(t+1,2,255,0,255);
    Colorduino.SetPixel(t+1,4,255,0,255);
    Colorduino.SetPixel(0,5,0,0,0);
    Colorduino.SetPixel(t+3,4,0,0,0);
    Colorduino.SetPixel(t+3,3,0,0,0);
    Colorduino.SetPixel(t+3,2,0,0,0);
    Colorduino.SetPixel(t+3,1,0,0,0);
    Colorduino.SetPixel(t+3,0,0,0,0);
    Colorduino.SetPixel(t+4,4,0,0,0);
    Colorduino.SetPixel(t+4,3,0,0,0);
    Colorduino.SetPixel(t+4,2,0,0,0);
    Colorduino.SetPixel(t+4,1,0,0,0);
    Colorduino.SetPixel(t+4,0,0,0,0);
    delay(750);
    Colorduino.FlipPage();
  }
}

void loop()

  if(Serial.available()){
    char input = (char)Serial.read();
    Serial.println(input);
   
    switch (input){
      case 'a':
          a();
          delay(750);
          break;
      case 'b':
          b();
          delay(750);
          break;
    }
  }
}


scusate per la forma, ma ho copiato direttamente il codice, non so in quale altro modo farvelo vedere. se me lo dite, lo riposto meglio.
comunque, se avete consigli, vi ringrazio
Ultima modifica di Foto UtenteCandy il 24 lug 2013, 19:06, modificato 2 volte in totale.
Motivazione: inserito codice nei tag [code]
Avatar utente
Foto UtenteMJ990
11 4
New entry
New entry
 
Messaggi: 53
Iscritto il: 27 giu 2012, 11:44

0
voti

[2] Re: scorrimento testo su colorduino

Messaggioda Foto UtenteStefDrums » 24 lug 2013, 19:05

allora, a me è capitato di dover gestire una matrice 3x6 tempo fa, quindi magari la mia esperienza ti sarà utile:

- costruisciti un bel vettore bidimensionale con tutti i valori per ogni colonnina di led
- metti il testo che vuoi visualizzare in un vettore
- costruisciti una funzione che si va a prendere il vettore, e butta i output tutti i rispettivi valori dei caratteri ASCII che compongono il tuo vettore.

così riesci ad avere un codice ordinato, e soprattutto, ti basta "dare in pasto" alla tua funzione un vettore, e poi ci pensa lei!
Avatar utente
Foto UtenteStefDrums
240 1 6 9
Stabilizzato
Stabilizzato
 
Messaggi: 367
Iscritto il: 20 feb 2013, 14:15

0
voti

[3] Re: Scorrimento testo su colorduino

Messaggioda Foto UtenteMJ990 » 24 lug 2013, 22:04

grazie per la risposta.
facendo come hai detto tu però non avrei la possibilità di inserire di volta in volta il testo che io voglio visualizzare, giusto?
andrei a creare a monte delle parole da visualizzare quando le vado a richiamare, o ho capito male?
a me servirebbe qualcosa di più "dinamico", nel senso che può riprodurre qualsiasi parola che di volta in volta gli comando
Avatar utente
Foto UtenteMJ990
11 4
New entry
New entry
 
Messaggi: 53
Iscritto il: 27 giu 2012, 11:44

0
voti

[4] Re: Scorrimento testo su colorduino

Messaggioda Foto UtenteStefDrums » 24 lug 2013, 22:14

MJ990 ha scritto:facendo come hai detto tu però non avrei la possibilità di inserire di volta in volta il testo che io voglio visualizzare, giusto?
andrei a creare a monte delle parole da visualizzare quando le vado a richiamare, o ho capito male?


beh, basta fare una bella funzione che "costruisce" un vettore (in realtà tu lo preallochi di tutti zeri, e la funzione lo riempie) chiedendo all'utente quali lettere mettere, scegliendo da tutte le tue lettere della tua matrice ASCII.
Avatar utente
Foto UtenteStefDrums
240 1 6 9
Stabilizzato
Stabilizzato
 
Messaggi: 367
Iscritto il: 20 feb 2013, 14:15

0
voti

[5] Re: Scorrimento testo su colorduino

Messaggioda Foto UtenteMJ990 » 24 lug 2013, 22:31

potresti essere un pochino più "pratico"? non sono molto ferrato su questo.

mettiamo che riesca a crearmi di volta in volta la parola, come faccio a farla scorrere sulla matrice?
Avatar utente
Foto UtenteMJ990
11 4
New entry
New entry
 
Messaggi: 53
Iscritto il: 27 giu 2012, 11:44

0
voti

[6] Re: Scorrimento testo su colorduino

Messaggioda Foto UtenteStefDrums » 24 lug 2013, 23:21

MJ990 ha scritto:potresti essere un pochino più "pratico"? non sono molto ferrato su questo.

mettiamo che riesca a crearmi di volta in volta la parola, come faccio a farla scorrere sulla matrice?


ma scusami, se tu hai una funzione che ti riempia un vettore, poi quel vettore lo dai in pasto alla funzione che te lo stampa, no?

cosa non è chiaro?
Avatar utente
Foto UtenteStefDrums
240 1 6 9
Stabilizzato
Stabilizzato
 
Messaggi: 367
Iscritto il: 20 feb 2013, 14:15

0
voti

[7] Re: Scorrimento testo su colorduino

Messaggioda Foto UtenteMJ990 » 25 lug 2013, 9:49

non mi è chiaro come farlo scorrere sulla matrice.
Avatar utente
Foto UtenteMJ990
11 4
New entry
New entry
 
Messaggi: 53
Iscritto il: 27 giu 2012, 11:44

1
voti

[8] Re: Scorrimento testo su colorduino

Messaggioda Foto UtenteStefDrums » 25 lug 2013, 10:53

cerco di essere il più chiaro possibile, descrivendoti proprio quello che ho fatto io:

Codice: Seleziona tutto

int ASCII [] [] = {(0,0,1....)}   \\questa è la tua matrice con i caratteri ASCII, dove tu, in base ai collegamenti fisici dei led ai pin, gli dici quali devono essere accesi, quali spenti, in base alla lettera che vuoi visualizzare. ovviamente la devi costruire "apposta" per l'hardware che usi.

char TEXT [] = {'t', 'e', 's', 't', 'o'}   \\questo vettore è il testo che vuoi visualizzare

viod main {

  modifica_testo (TEXT);   \\leggi sotto
  visualizza_testo (TEXT);   \\leggi sotto

}

void modifica_testo (char TEXT) {
   
   for (t=0; t<5, t++) {
   \\questa funzione si prende ogni elemento del vettore TEXT
     e prende il corrispettivo valore della matrice ASCII e lo visualizza
    }

return;
}

void visualizza_testo (char TEXT) {
   
   for (t=0; t<5, t++) {
   \\questa funzione si prende ogni elemento della matrice ASCII, lo visualizza per farlo scegliere all'utente
     e quando l'utente ha scelto il carattere, salva il corrispettivo valore nel tettore TEXT e passa alla posiz successiva nel vettore
    }

return;
}


questo è in modo molto semplificato quello che ho fatto io quando ho dovuto controllare una matrice di LED.
ciao!
Avatar utente
Foto UtenteStefDrums
240 1 6 9
Stabilizzato
Stabilizzato
 
Messaggi: 367
Iscritto il: 20 feb 2013, 14:15

0
voti

[9] Re: Scorrimento testo su colorduino

Messaggioda Foto UtenteMJ990 » 25 lug 2013, 13:31

ok grazie, molto chiaro
Avatar utente
Foto UtenteMJ990
11 4
New entry
New entry
 
Messaggi: 53
Iscritto il: 27 giu 2012, 11:44

0
voti

[10] Re: Scorrimento testo su colorduino

Messaggioda Foto UtenteMJ990 » 25 lug 2013, 14:05

ma in ogni caso questo codice non fa scorrere il testo, lo visualizza soltanto. giusto?
Avatar utente
Foto UtenteMJ990
11 4
New entry
New entry
 
Messaggi: 53
Iscritto il: 27 giu 2012, 11:44

Prossimo

Torna a Elettronica generale

Chi c’è in linea

Visitano il forum: Nessuno e 41 ospiti