Pages: 1 [2] 3 4   Go Down
Author Topic: "Scritte roteanti": come realizzarle?  (Read 3997 times)
0 Members and 1 Guest are viewing this topic.
Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 138
Posts: 9900
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

e poi ci vuole lo sbatti e l'intuito di programmare i led, o ci sono altre complicazioni???

Non è così semplice come sembra, a parte il problema dell'alimentazione o, peggio, tutti i segnali per i led visto che i migliori pov mettono in rotazione solo il pcb con led e non tutta l'elettronica, c'è il piccolissimo problema che l'accensione dei led deve essere perfettamente in sequenza.
In pratica come minimo serve un contatto, va bene un sensore magnetico, che indica l'inizio della rotazione ed è molto importante che sia noto il tempo di rotazione, questo si calcola sempre grazie al sensore.
In base al tempo di rotazione e al sync di inizio giro si fanno accendere i led nella corretta sequenza per formare le immagini, quest'ultima parte è molto simile al controllo di un display grafico dove abbiamo accesso solo al comando per accendere e spegnere i pixel.
Logged

0
Offline Offline
Full Member
***
Karma: 0
Posts: 189
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

io quella che non capisco è proprio la programmazione, cioè credo che ci siano 4 sensori posti rispettiamente nel punto piu in alto, quello piu in basso, quello piu a sinistra e quello più a destra per formare un "+" e in base a quale sensore viene intercettato l'arduino o il microcontrollore utilizzato scegli quale led accendere, solo che non capisco ad esempio per gli orologi, che hanno minimo 12 sensori? (secondo la mia logica) O.o ,...c'è qualcuno che può illuminarmi e dirmi se viene utilizzato un'altro metodo o il mio è corretto?...grazie....ah, e qualcuno può chiarirmi un'altro dubbio?... supponendo di creare una matrice led da 20 x10, e volessi far comparire scritte sempre diverse, dovrei programmare ogni singolo led ogni volta  smiley-eek-blue o c'è un modo per programmare l'arduino in modo che se io scrivo la lettera "A" mi accenda determinati led e poi li faccia scorrere in sequenza, e quindi io debba solo modificare il testo della scritta, o devo riprogrammare tutti i led ogni volta? O.o grazie
« Last Edit: February 25, 2011, 01:29:55 pm by babbu95 » Logged

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 272
Posts: 21940
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ciao babbu95

Ti basta 1 sensore.
Il sensore Ti da 2 informazioni:
Ti dice in quale momento il rotore si trova davanti al sensore e se misuri il tempo tra 2 passaggi sai il tempo per una rotazione e percui la velocitá di rotazione.
Se poi dicamo divi il tempo per una rotazione di 360 gradi in 180 parti sai per quanto tempo devi tenere acceso un led per un punto e quando cambiare per il prossimo parte di cifra. Puó anche essere meglio accendere il LED per un tempo mlto breve in modo da non avere la riga ma il punto acceso per poi riaccenderlo dopo che il led abbia ruotato per arrivare al prossimo punto.
Naturalmente puoi anche usare un motore passo passo e sapere per quello in che posizione si trova il rotore oppure usare un encoder per determinare la posizione, ma queste 2 possibilitá non vengono usate.

Ciao Uwe

« Last Edit: February 25, 2011, 02:59:24 pm by uwefed » Logged

0
Offline Offline
Full Member
***
Karma: 0
Posts: 189
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

capisco, grazie uwefed, ..ah, e qualcuno può chiarirmi un'altro dubbio?... supponendo di creare una matrice led da 20 x10, e volessi far comparire scritte sempre diverse, dovrei programmare ogni singolo led ogni volta   o c'è un modo per programmare l'arduino in modo che se io scrivo la lettera "A" mi accenda determinati led e poi li faccia scorrere in sequenza, e quindi io debba solo modificare il testo della scritta, o devo riprogrammare tutti i led ogni volta? O.o grazie
Logged

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 272
Posts: 21940
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao babbu95

Guarda come fanno a mettere le scritte sui LCD dei telefonini.
http://www.arduino.cc/playground/Code/PCD8544
Nel array static const byte ASCII[][5] sono messi i valori dei caratteri in una matrice 7 per 5.

Ciao Uwe 

Logged

0
Offline Offline
Edison Member
*
Karma: 24
Posts: 2319
Have you mooed today?
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

..posto qualche altro link.
Questa è una soluzione abbastanza basilare, che utlizza il tip di uwefed (sensore ir per auto-calibrazione):
http://hackedgadgets.com/2008/11/05/arduino-rotating-led-display/

Questo un vecchio post sul tema, con altri link all'interno:
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1253653854/2

Questo davvero un bel progettino, nell'insieme (si trova anche su make):
http://www.bitartist.org/2008/06/propeller-clock-pov-clock.html

In molti progetti utilizzano i motorini brushless degli hd.
Logged

0
Offline Offline
Full Member
***
Karma: 0
Posts: 189
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao babbu95

Guarda come fanno a mettere le scritte sui LCD dei telefonini.
http://www.arduino.cc/playground/Code/PCD8544
Nel array static const byte ASCII[][5] sono messi i valori dei caratteri in una matrice 7 per 5.

Ciao Uwe 


quindi se non ho capito male (il mio inglese lascia un po alla fantasia hehe) si memorizza una libreria, e in base al carattere inserito l'arduino va a ripescare il codice che gli serve per stampare a schermo tale carattere, esatto?
Logged

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 272
Posts: 21940
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

babbu95
Piú o meno.
Quel programma ha memorizzati i valori di una matrice 7 per 5 dove ogni bit H rappresenta un pixel nero sul display. Se prendi quei valori e li metti uno dopo l' altro su 7 led e muovi i LED vedi il carattere

disegna su un foglio i 5 numei in binario uno sotto l' altro e poi gira il foglio e capirai.
0x7e, 0x11, 0x11, 0x11, 0x7e
01111110
00010001
00010001
00010001
01111110
se usi al posto dei 1 e 0 uno spazio e un pallino:
 ******
   *   *
   *   *
   *   *
 ******

Ciao Uwe
Logged

0
Offline Offline
Full Member
***
Karma: 0
Posts: 189
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ahhh sisi, ora ho capito, ma quello che mi hai spiegato tu è riferito alle scritte rotanti, ovvero ogni volta che l'arduino riceve il segnale dal sensore fà scorrere di una posizione ogni led...e fin qui ci sono, ma io intendevo( senza fare le scritte che girano)  se io dovessi "scrivere " su di una matrice led ferma, cioè che non gira diciamo, e fosse una griglia di led 8x5 , supponiamo che io voglia scrivere la lettera H  i led dovrebbero essere così:
01000010
01000010
01111110
01000010
01000010
dovrei riscrivere tutte le volte questo codice o posso "memorizzarlo" in  una libreria con la lettera "H" e tutte le voltr che scrivo  la "H" l'arduino scrive questo codice? grazie

Logged

Palermo
Offline Offline
God Member
*****
Karma: 3
Posts: 769
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Si che lo puoi memorizzare...
Logged

Gianfranco

0
Offline Offline
Full Member
***
Karma: 0
Posts: 189
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

mmm ok, grazie, e per far scorrere la lettera senza riscrivere il codice?...c'è qualche funzione particolare per spostare il bit? di una posizione verso sinistra? grazie
Logged

Tortona
Offline Offline
God Member
*****
Karma: 2
Posts: 601
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

penso si possa fare una funzione per ogni lettera, e poi a te basta chiamare le funzioni in secuenza per formare le scritte che vuoi
Logged

Se gommo tiene,io vince gara! Se gommo non tiene,io come bomba dentro montagna

Palermo
Offline Offline
God Member
*****
Karma: 3
Posts: 769
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Uhm, se metti ogni riga in array e fai una cosa del genere:

riga1[]
riga2[]
riga3[]
...

potresti poi utilizzarli in parallelo usando lo stesso indice...
Logged

Gianfranco

Milano, Italy
Offline Offline
Faraday Member
**
Karma: 11
Posts: 3091
Sideralis Arduino!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Non saranno molto roteanti ma divertente lo stesso (li ho fatti un paio di anni fa)


* P1010037.JPG (136.5 KB, 800x600 - viewed 18 times.)

* P1010038.JPG (103.03 KB, 800x600 - viewed 17 times.)
Logged

Federico - Sideralis
Arduino &C: http://www.sideralis.org
Foto: http://blackman.amicofigo.com

0
Offline Offline
Full Member
***
Karma: 0
Posts: 189
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

danno un'effetto fantastico O.o  ...complimenti.... comunque, con l'array tutti i led scorrono di una posizione verso sinistra? O.o
Logged

Pages: 1 [2] 3 4   Go Up
Jump to: