PRESEPIO
ELETTRONICO MULTIMEDIALE
SEQUENCER

Nativita'
in legno realizzata da
Costantino Conti - 1995
SOMMARIO
Foto
1 - Pannello frontale del Sequencer
A sinistra si nota il LED ON di presenza alimentazione.
A destra si nota la presa stereo per l'uscita audio del decoder MP3.
Al centro si nota il pulsante di reset utile per sincronizzare il
caricamento del programma tramite la porta seriale.
In basso a destra la memory card
spunta fuori dalla fessura predisposta
per l'inserzione/disinserzione della memoria contenente i file
MP3.
PRESENTAZIONE
A
distanza di 6 anni dalla
pubblicazione del progetto della centralina
classica mi trovo nuovamente a pubblicare un progetto molto
interessante per i Presepisti.
L'attuale
centralina deve essere
pilotata da un Personal Computer per
poter disporre anche della parte multimediale.
E'
sufficiente utilizzare un
vecchio computer multimediale, ma molte
persone hanno chiesto piu' volte se era possibile poter costruire
qualcosa che potesse funzionare senza computer.
Ho
pensato di realizzare un
sequencer (con lettore MP3 incorporato) che
disponesse delle seguenti caratteristiche:
- Interfaccia per
memory
card
MMC/SD per memorizzare suoni e rumori in
formato MP3
- Decoder MP3
incorporato
- Due interfacce
seriali per
connettere fino a due centraline classiche
e due controller luci a bassa tensione
- Una interfaccia
parallela
per
connettere l'interfaccia rele'
- Microcontrollore
programmabile da
interfaccia
seriale
Una
volta programmato tramite la
porta seriale, il sequencer funziona
senza PC e mantiene memorizzato il programma nella sua memoria FLASH
anche dopo l'assenza della tensione di alimentazione.
L'idea
iniziale di utilizzare un
lettore CDROM per il sequencer e' stata scartata per
problemi di ingombro e consumo di energia.
A
tale scopo avevo iniziato la
sperimentazione di un controller con
interfaccia IDE da collegare ad un lettore CDROM - vedi progetto CDX14.
Alla
fine, nonostante il sistema
fosse economico, ho escluso
questa alternativa per il fatto che il sequencer con il CDROM avrebbe
richiesto un contenitore molto grande e un alimentatore abbastanza
potente.
Quello
che si risparmia
inizialmente con l'uso di un lettore CDROM, viene poi perso a
motivo della spesa
per l'acquisto del contenitore e dell'alimentatore.
Un
altro fattore che mi ha
indotto ad utilizzare un sistema di
memorizzazione a stato solido e' stato il fatto che i lettori CDROM non
sono molto affidabili.
Essendo
dotati di parti
meccaniche in movimento, e' facile che vadano
soggetti a guasti.
I
presepi esposti spesso
lavorano continuativamente per ore e per
giorni e capita di frequente che, sul piu' bello, il lettore CDROM si
ferma per un guasto meccanico o perche' il laser si e'
sporcato.
I
lettori a stato solido non
hanno questo tipo di inconveniente e,
visto l'attuale basso costo delle memory card, l'utilizzo di questi
dispositivi e' ormai alla portata di tutti.
Foto 2
- Primo prototipo del Sequencer
Nella Foto 2 possiamo
ammirare un'immagine del primo prototipo.
Nella parte superiore a sinistra possiamo intravedere l'alimentatore a
3,3 Volt.
In alto al centro il connettore della porta parallela.
A destra possiamo notare il decoder MP3 con il connettore per l'uscita
audio.
Al centro spicca il microcontrollore ATMEGA162 nella versione DIL 40.
Sopra il buffer non invertente 74HC541.
In basso a sinistra l'integrato MAX232 con i due connettori per la COM1
e COM2.
In basso a destra s'intravede la memory card. Il connettore relativo e'
stato montato dal lato saldature della scheda.
L'unico componente SMD e' il decoder MP3 siglato VS1001K nella versione SOIC28 a 28 pin.
TORNA
AL
SOMMARIO
ABBINABILE
AL SEQUENCER
A questo sequencer e' possibile
(consigliabile) abbinare:
Utilizzando questo sequencer in
abbinamento con: 2 centraline, 2 controller luci a bassa tensione e 1
interfaccia rele' e' possibile creare un sistema multimediale per
Presepi con le seguenti caratteristiche:
- 16 USCITE PER LAMPADE CON
4+4 FASI GIORNALIERE
- 28 USCITE PROGRAMMABILI IN 4
GRUPPI DA 7 USCITE ON-OFF/FUOCHI/STELLE
- 7 USCITE A RELE' PER CARICHI
FINO A 10 A
- PLAYER MP3 PER MUSICHE E
RUMORI AMBIENTALI
Per maggiori dettagli sul
collegamento delle schede far riferimento alle prove di
sistema
TORNA
AL
SOMMARIO
DESCRIZIONE
Di seguito viene riportata una
breve descrizione del circuito.
A motivo della complessita' del circuito, lo schema elettrico e' stato
disegnato su 4 diversi sheets come segue:
MICROCONTROLLORE
- Sheet 1
Il
circuito e' basato sul
microcontroller ATMEGA162 alimentato a 3,3 Volts.
Il
clock e' stato fissato a 8
MHz ed e' costituito dalla rete: CC1, CC2 e X1 collegata ai pin 18 e 19
del microntrollore.
Il
circuito di reset e'
costituito dalla rete RC: CE1, R4 per un tempo di reset di circa 100
ms.
Il reset puo' essere controllato manualmente tramite il
pulsante
e la resistenza R1 da 100 ohm.
Il
circuito di reset puo' anche
essere controllato dalla interfaccia di programmazione connessa al
connettore SIP1.
Tramite
questa interfaccia e
l'apposito connettore e' possibile programmare il microcontrollore
attraverso l'interfaccia parallela del PC usando il programma Ponyprog.
Questo tipo di programmazione viene usato soltanto la prima volta per
inserire il programma BOOTLOADER.
Una volta che il programma di bootloader e' stato installato, le
modifiche sul programma applicativo in FLASH possono essere effettuate
piu' agevolmente mediante l'impiego della porta seriale e della feature
AVRPROG disponibile all'interno di AVR STUDIO della ATMEL.
Il
connettore SIP2 e' stato
introdotto per poter utilizzare l'interfaccia JTAG.
CIRCUITO
D'ALIMENTAZIONE - Sheet 2
Il circuito di
alimentazione converte la tensione continua d'ingresso compresa tra 5 e
15 Volts nella tensione a 3,3 Volts.
E'
stato deciso di utilizzare
un'unica tensione a 3,3 Volts per il fatto che sia il decoder MP3 che
la memory card devono essere alimentati necessariamente a bassa
tensione.
Per
semplicita' anche gli altri
componenti del circuito sono alimentati a 3,3 Volts, microcontrollore
compreso.
L'alimentatore
di tipo lineare
e' basato sull'integrato LM317T nella versione TO220.
Il
diodo D1 serve a proteggere
il circuito dalle inversioni di polarita'.
I
due condensatori CF2 e
CE2 realizzano il circuito di filtraggio della tensione
d'ingresso.
La
rete R5, R6, R7 predispone
l'integrato U2 a generare una tensione d'uscita secondo la seguente
formula:
VO
= 1,25 X (R5 + R6 + R7)
/ R5
Due
circuiti LC: (L1, CF3, CE3)
e (L2, CF4, CE4) separano la tensione digitale VDD dalla tensione
analogica VAA per eliminare eventuali disturbi che potrebbero
deteriorare la qualita' di riproduzione dell'audio.
DECODER
MP3 E
SD - Sheet 3
Il
decoder MP3 e' costituito dal
noto VS1001K che comprende al suo interno sia il decoder che il
convertirore DAC.
Il
decoder usa un quarzo da 24
MHz e dispone delle alimentazioni analogica e digitale separate per
ridurre il rumore.
Particolare
attenzione deve
essere prevista per la realizzazione del circuito stampato nel separare
le alimentazioni relative alla parte digitale e alla parte analogica.
INTERFACCE
SERIALI E PARALLELA - Sheet
4
Il
sequencer dispone di 2
interfacce seriali: COM1 e COM2 e un' interfaccia parallela: LPT1
L'interfaccia LPT1 puo' essere
facilmente collegata all'interfaccia rele' tramite un flat a 16 fili.
La COM1 viene usata come
interfaccia seriale primaria dalla quale scaricare il file per la
programmazione del microcontrollore.
Nel
normale funzionamento viene
usata per il collegamento della prima coppia di centralina classica e
controller luci a bassa tensione.
La
COM2 permette di collegare una seconda
coppia di centralina classica e controller luci a bassa tensione.
TORNA
AL SOMMARIO
DOCUMENTAZIONE
COSTRUTTIVA
Di segiuito viene riportato un
elenco dei documenti disponibili per la realizzazione della scheda:
Foto
3 - Pannello posteriore del Sequencer
Nella foto del pannello
posteriore del Sequencer possiamo notare:
A sinistra l'ingresso della tensione di alimentazione.
Al centro il connettore della porta parallela per la scheda rele'.
A destra i due connettori relativi alla COM1 e COM2 alle quali
connettere fino
a due centraline classiche e due controller luci a
bassa tensione mediante l'utilizzo dell'apposito cavo splitter.
TORNA
AL SOMMARIO
DATA
SHEET COMPONENTI
Di seguito viene riportato
un elenco dei componenti piu' importanti:
- ATMEGA162
data sheet del microcontrollore
- LM317
data sheet del regolatore serie
- VS1001K
cdata sheet del decoder MP3
- ST202 data sheet
dell'interfaccia
seriale ST202 (MAX232)
TORNA
AL SOMMARIO
TOOLS
DI SVILUPPO E PROGRAMMAZIONE
Di seguito viene riportato un
elenco dei tool usati per lo sviluppo del progetto:
TOOLS DI SVILUPPO
- AVR
STUDIO
ambiente di debug e programmazione ATMEL
- PONYPROG
programma per copiare il bootloader
- WINAVR
compilatore C per i micro della serie AVR
- DEV-CPP
ambiente di compilazione MINGW
SOFTWARE
MP3 ENCODER
DOCUMENTAZIONE
TUTORIALS
TORNA
AL SOMMARIO
FIRMWARE
Il firmware e' diviso in due
parti: BOOTLOADER e SEQUENCER
LISTA
DEI FILE SORGENTE DEL BOOTLOADER
main.c
- Contiene il programma principale
serial.c
serial.h
- Driver della seriale
assembly.S
assembly.h
- Parte del programma in linguaggio assembler
defines.h
- Definizioni
Makefile
- makefile
setenv.bat
- Batch file per
settare correttamente le variabili di ambiente di WINAVR
Tutti i sorgenti sono
contenuti
nel file bootloader.zip
E' comunque preferibile utilizzare
l'ultima versione aggiornata di file contenuta nel CD ROM.
LISTA
DEI FILE
SORGENTE DEL SEQUENCER
sequencer.c
- Contiene
il programma principale
prova.c
- Contiene il programma
principale di prova
uart.h
uart.c
- Driver per l'interfaccia
seriale
timer.h
timer.c
- Driver del timer 1
ports.h
ports.c
- Driver
dell'interfaccia parallela
vs1001k.h
vs1001k.c
- Driver del decoder
mp3
spi.h
spi.c
- Driver dell'interfaccia
spi
mmc.h
mmc.c
- Driver della memory card
mp3.h
mp3.c
- Player mp3
decode.h
decode.c
- Decoder del
pseudo-code
schedule.h
schedule.c
- Scheduler
code.c
- File contenente il
pseudo-code
avrlibdefs.h
- Definizioni
per il nuovo compilatore winavr
cpuclock.h
- Definizione del
clock CPU
encode.h
- Definizione dei
pseudo-code
dummy.c
- File dummy usato da
prova.c al posto di code.c
global.h
- Definizione globali
types.h
- Definizione dei tipi
makeprova
- Makefile per la
generazione di prova.hex
makeseq
- Makefile per la
generazione di sequencer.hex
setenv.bat
- Batch file per
settare correttamente le variabili di ambiente di WINAVR
compila.bat
- Batch file
per compilare separatamente un file *.c
Tutti
i sorgenti sono contenuti
nel file atmega162.zip
E' comunque preferibile utilizzare
l'ultima versione aggiornata di file contenuta nel CD ROM.
TORNA
AL SOMMARIO
COMPILATORE
ENCODE
Per la programmazione del
sequencer e' necessario generare mediante script un file
contenente un codice intermedio.
Il file contenente il codice intermedio si chiama: code.c.
Per generare il file code.c a partire dai batch files viene utilizzata
l'utility:"ENCODE"
Una volta disponibile il file code.c e' necessario compilarlo e
linkarlo con l'ambiente WINAVR per generare il file sequencer.hex
Il file sequencer.hex viene poi caricato nella FLASH del
microcontrollore tramite la porta seriale utilizzando
l'utility AVRPROG disponibile all'interno dell'ambiente integrato
AVR STUDIO.
LISTA
DEI FILE
SORGENTE DEL COMPILATORE ENCODE
encode.c
encode.h
- programma principale
parser.c
parser.h
- parser per il riconoscimento dei tokens
tokens.c
- Funzioni relative ai tokens individuati
types.h
- Dichiarazione dei tipi
Makefile
- makefile
setenv.bat
- Batch file per
settare correttamente le variabili di ambiente di DEV-CPP
Tutti
i sorgenti sono contenuti nel file exec.zip
E' comunque preferibile
utilizzare l'ultima versione aggiornata di file contenuta nel CD ROM.
TORNA
AL SOMMARIO
INSTALLAZIONE
E TEST
Il
controller dispone di un
programma per effettuare il boot tramite la porta seriale COM1.
Al
momento del restart viene
avviato il programma bootloader che rimane attivo per un periodo di 5
secondi in attesa di ricevere i
comandi da AVRPROG.
Se
al termine dei 5 secondi non
viene ricevuto alcun criterio, il programma effettua il
restart
nella maniera classica e parte
l'ultima
applicazione che era
stata caricata in FLASH.
Prima
di effettuare ogni prova
bisogna generare il file applicativo: "sequencer.hex" e scaricarlo
nella FLASH del
microcontrollore.
La generazione di questo file viene effettuato tramite il PC.
Prima
di tutto devono essere
installati i seguenti programmi:
- WINAVR
- AVR STUDIO 4
- SCRIPT DI
BASE
Il file sorgente puo' essere scritto con un semplice editor di testo
sullo stile dei file batch usati per il controllo da PC.
Il file/files prodotti vanno compilati per generare il file:
sequencer.hex che verra' utilizzato per il caricamento della Flash del
sequencer.
TORNA
AL SOMMARIO
PROGRAMMAZIONE
La
programmazione del
microcontrollore viene realizzata scrivendo dei batch file di testo.
Una
volta preparati i batch
file, vanno eseguiti i seguenti passi:
- Compilazione dei
batch
file e
generazione del file sequencer.hex
- Programmazione del
microcontrollore
Per
la compilazione del batch
file usare lo script: genera.bat <nomefile.bat>
Il
file sequencer.hex prodotto
viene scaricato tramite la porta seriale del PC collegata
all'interfaccia COM1 del sequencer usando il tool AVRPROG contenuto in
AVR STUDIO 4.
Nella
directory presepio e'
contenuto ua serie di file di esempio.
TORNA
AL SOMMARIO
PREPARAZIONE
DELLA MEMORY CARD
La
memory card deve contenere i
file in formato MP3 per la riproduzione audio.
E'
possibile utilizzare sia
memory card del tipo MMC che memory card del tipo SD a partire da 32
Mbytes fino a 1 Gbytes.

Foto 4 - Due tipi di memoria usata per
i tests - MMC da 32 Mbytes e SD da
128 MBytes

Foto 5 - Retro delle memory card -
Notare che sono molto simili
Le
memory card devono essere
formattate in modalita' FAT16 e non devono contenere sottodirectory.
Tutti
i file devono quindi
risiedere nella directory principale.
Ogni
file deve essere nominato
con le prime due lettere numeriche da 01 a 99.
Il
formato del nomer del file
deve essere 8+3 con estensione uguale a: "mp3".
Per
la preparazione della memory
card e' possibile preparare i file mp3 da un disco CD-AUDIO utilizzando
il tool : CCDA-XTRACTOR.
Produrre
tutti i file mp3 nella
medesima directory e rinominare i files come 01xxxxxx.mp3, 02xxxxxx.mp3
...etc.
Con
l'ausilio di un lettore di
memory card per PC eseguire i seguenti passi:
- Formattare la memory
card con file system FAT16
- Copiare tutti i file
mp3
generati nella directory principale della memory card
- Togliere la memory
card
dal
lettore del PC e inserire la memory card nel sequencer
- Verificare che il
sequencer
riproduca correttamente i brani mp3
Per
semplicita',
all'interno del CDROM e' possibile effettuare una prova come
segue:
- Nella
directory mp3
trovate i file mp3 gia' pronti all'uso
- Usare il file
prova.hex
per la
verifica del sequencer

Foto 6 -
Lettore MMC/SD per PC con interfaccia USB
TORNA
AL SOMMARIO
CD
ROM
Il
CDROM contiene:
- Musiche in formato
MP3
- Tools per la
programmazione
del microcontrollore
- Script di base
- Documentazione
TORNA
AL SOMMARIO
SEQUENCER
PRONTO ALL'USO
E'
possibile su richiesta
ricevere il sequencer pronto all'uso.
La
scatola contiene:
- Sequencer gia'
montato e
collaudato
- Alimentatore da
parete per
il
sequencer
- Memory card con le
canzoni
in
formato MP3
- Cavo seriale null
modem
per il
collegamento al PC
- Manuale d'uso
- CDROM contenente i
programmi e
le musiche
Il
sequencer e' gia' pronto
all'uso per coloro che dispongano della centralina classica.
Seguire la seguente procedura:
- Collegare il cavo
seriale
della
centralina classica all'ingresso COM1 del sequencer.
- Inserire la memory
card
nello
slot del sequencer.
- Accendere la
centralina
- Accendere il
sequencer.
Il
led verde del sequencer si
accende all'inserzione dell'alimentazione.
Dopo
5 secondi il led rosso del
sequencer si accende e il programma dovrebbe partire in automatico.
TORNA
AL SOMMARIO
LINK
UTILI
UNIVERSITY
OF QUEENSLAND
ALBERTO
RICCI BITTI PERSONAL PAGE
AVR
& ELECTRO LINKS
AVR
Embedded Microcontroller Resources
Bootloader
for the ATMEL AT MEGA series of processors (WinAVR port)
AVR-ASSEMBLER-TUTORIAL
DICK
CAPPELS' PROJECT PAGES
DONTRONICS
EVERTOOL
LARRY
BARELLO'S HOME PAGE
I.R.BOT
JESPEER'S
AVR PAGES
PETER
FLEURY HOME PAGE
ROBS-PROJETCS
STELIOSCELLAR
AVR
WEBRING
Accessing
a Compact Flash Card from BASCOM
FAT16
FILE
SYSTEM DRIVER FOR COMPACTFLASH
AVR-DOS
FOR BASCOM-AVR
PROCYON
AVRLIB
EE
476 FINAL PROJECT PORTABLE MP3 PLAYER
MMC
TO SERIAL ADAPTER
MP3
MOBILE PLAYER
MICROCHIP
MMC SOURCE CODE
TINY
MP3 PLAYER
64MB
MMC UND PIC-MIKROCONTROLLER
TORNA
AL SOMMARIO