You are on page 1of 9

LSShip–– Pràctica 2

Sistemes Digitals i Microprocessadors

Pràctiques de Sistemes Digitals i Microprocessadors


Curs 2022-2023

Pràctica 2
Fase A
LSShip

Login Nom

Alumnes

Placa Memòria Nota

Entrega

Data

Còpia per als alumnes

1
LSShip–– Pràctica 2
Sistemes Digitals i Microprocessadors

Pràctiques de Sistemes Digitals i Microprocessadors


Curs 2022-2023

Pràctica 2
Fase A
LSShip

Login Nom

Alumnes

Placa Memòria Nota

Entrega

Data

Portada de la memòria

2
LSShip–– Pràctica 2
Sistemes Digitals i Microprocessadors

Introducció i consideracions generals


Vist l’èxit obtingut durant la resolució de la pràctica 1, el departament de Transferència
Tecnològica de La Salle s’ha posat en contacte amb nosaltres per a que els ajudem amb un nou
projecte que estan desenvolupant. El projecte tracta de simular el funcionament d’una vaixell,
en concret l’LSShip.

Figura 1. Vaixell.

El funcionament del vaixell s’ha d’implementar mitjançant un PIC18F4321 programat en


assembler, seguint la següent pauta de funcionament.

Hi ha quatre modes principals per conduir el vaixell:


1. Mode manual: l’usuari determinarà en tot moment la velocitat i la direcció del vaixell.
2. Mode creuer: la velocitat del vaixell serà constant, però l’usuari podrà anar canviant la
direcció. S’agafaran els valors de velocitat que hi havia just abans d’entrar en aquest
mode.
3. Mode gravació: l’usuari podrà anar enregistrant la ruta que segueix el vaixell.
4. Mode pilot automàtic: es reproduirà la ruta que s’ha gravat amb el mode gravació.

3
LSShip–– Pràctica 2
Sistemes Digitals i Microprocessadors

Entrades i Sortides del sistema

Figura 2. Diagrama de blocs del sistema a implementar.

Descripció:
- ManualMode: Polsador que canvia de mode (manual o creuer).
- RecordMode: Polsador que activa i desactiva el mode gravació i el mode pilot
automàtic.
- Save: Polsador per guardar els canvis durant el mode gravació.
- Joy[1..0]: Senyals analògics provinents dels dos eixos del joystick. Aquest joystick
serveix per controlar la direcció i la velocitat del vaixell.
- PWMSpeed[1..0]: PWM connectat a un motor DC (l’hèlix del vaixell) que determina
la velocitat actual i la marxa (enrere o endavant).
- PWMDir: PWM connectat a un servomotor que determina la direcció actual del vaixell.
- CurrentMode: LED RGB que mostra en quin mode es troba el vaixell.
- Alarm: LED que indicarà si hi ha una situació d’alarma.
- CurrentSpeed[6..0]: Bus de dades connectat a un display de 7-segments que
mostra la velocitat.
- CurrentDir[9..0]: Bus de dades connectat a una barra de 10-LEDs que mostra la
direcció.

4
LSShip–– Pràctica 2
Sistemes Digitals i Microprocessadors

Funcionament del sistema


El sistema disposarà de dos modes de funcionament principals (manual o creuer). Per tal de
canviar de mode, es farà ús del polsador ManualMode. Cada vegada que es premi aquest
polsador, es canviarà a l’altre mode. Per tant, si el sistema està al mode manual i es prem el
polsador, es canviarà al mode creuer. De la mateixa manera, si el sistema està al mode creuer i
es prem el polsador, es canviarà al mode manual.

Si es prem el polsador RecordMode estant en el mode manual, s’entrarà al mode gravació, on


s’haurà d’enregistrar la velocitat i la direcció del vaixell cada vegada que es premi el polsador
Save. A més a més, s’haurà de guardar el delay entre canvis per després poder-ho reproduir
amb els mateixos temps. El sistema només haurà de guardar l’última ruta. S’entén com a ruta,
doncs, les característiques de velocitat i direcció que es van donant durant el trajecte. Així, cada
vegada que es premi el polsador RecordMode, es substituirà la ruta que hi havia guardada fins
al moment per una ruta nova. En cas que es premi el polsador RecordMode estant en mode
creuer, no haurà de succeir cap canvi ni s’haurà d’enregistrar una nova ruta.

Per poder reproduir una ruta, s’haurà de prémer el polsador de RecordMode durant 1 segon.
En aquest moment, s’activarà la reproducció de l’última ruta que s’hagi enregistrat. Això significa
que el vaixell haurà d’anar canviant automàticament de direcció i velocitat respectant el temps
cada quan s’havien enregistrat les mostres.

En tot moment, el sistema haurà de mostrar el mode actual (mode manual, mode creuer, mode
gravació o mode pilot automàtic) mitjançant un LED RGB.

Si el sistema roman durant 1 minut en repòs –és a dir, sense fer modificacions en el mode, la
velocitat o la direcció— s’activarà l’alarma del motor. Això vol dir que el LED Alarma farà
pampallugues (mig segon apagat, mig segon encès) successivament fins rebre un canvi en alguna
de les entrades. Aquest mateix LED s’utilitzarà per indicar la marxa enrere (joystick cap a baix),
mantenint-lo encès quan el rang de velocitats sigui negatiu. El vaixell anirà marxa enrere quan
el motor PWMSpeed[1..0] estigui girant cap a l’esquerra. Si gira cap a la dreta, el vaixell anirà
endavant. Quan es torni el joystick al centre (velocitat 0) o es mogui endavant (velocitat
positiva), el LED s’haurà d’apagar. En cas que s’hagi d’activar l’alarma mentre el vaixell vagi
marxa enrere, l’alarma sempre tindrà prioritat.

Paral·lelament a tot això, s’haurà de mostrar en tot moment i en qualsevol dels modes la
velocitat i direcció del vaixell. Per la representació de la velocitat es farà servir un display 7-
segments (CurrentSpeed[6..0]) i un motor DC (PWMSpeed[1..0], l’hèlix del vaixell) que
augmentarà la seva velocitat de rotació a mesura que augmenti la velocitat. Per a la
representació de la direcció es farà servir una barra de 10 LEDs (CurrentDir[9..0]) i un
servomotor (PWMDir, que indica la direcció del vaixell).

Per poder modificar aquests paràmetres es farà servir un joystick (Joy[1..0]). L’eix de les Y
serà la velocitat i l’eix de les X, la direcció. Per tant si es mou el joystick cap amunt, s’augmentarà
la velocitat i el vaixell anirà cap endavant. En canvi, si es mou cap a baix, el vaixell anirà marxa
enrere (encenent el LED Alarma) i com més avall tirem el joystick, més ràpid es mourà el vaixell.

5
LSShip–– Pràctica 2
Sistemes Digitals i Microprocessadors

Si el joystick torna al centre, s’haurà d’aturar el vaixell. Concretament, la velocitat constarà de


tres rangs per cada marxa (endavant i endarrere): LOW, MEDIUM i HIGH, i un rang de repòs. La
Figura 3 indica com s’ha de mostrar la velocitat en el display de 7-segments per a cada un
d’aquests rangs.

Figura 3. Visualitzador de velocitat.

Si el joystick es mou horitzontalment, el vaixell canviarà la seva direcció. El funcionament del


visualitzador de direcció és el següent: en cas que el joystick estigui centrat, s’encendran els 2
segments del mig (veure la imatge central de la Figura 4). En funció del recorregut del joystick
en l’eix de les X, s’encendran els segments d’un en un respectivament fins arribar als extrems.
Com es pot observar a la Figura 4, la primera fotografia ens mostra una posició del joystick a
l’esquerra del centre, sense arribar a l’extrem, en l’eix de les X. Això indica que el vaixell està
girant una mica a l’esquerra. En canvi, l’última fotografia mostra l’extrem dret de la barra de
LEDs encès, indicant així que el vaixell està girant màximament a la dreta.

Figura 3. Visualitzador de direcció.

Caldrà anar fent un seguiment del joystick a temps real.

6
LSShip–– Pràctica 2
Sistemes Digitals i Microprocessadors

Modes
A continuació es detalla el funcionament de cadascun dels modes.

Mode manual

En aquest mode, el LED RGB es posarà de color verd i el vaixell serà controlat per l’usuari
mitjançant el joystick. Això vol dir que els dos PWM, el display de 7-segments i la barra de LEDs
s’hauran d’anar actualitzant a temps real. En qualsevol moment, l’usuari podrà canviar al mode
creuer, iniciar una gravació o reproduir-la. Aquestes accions es faran mitjançant el polsador
(ManualMode i RecordMode), respectivament.

Mode creuer

En aquest mode s’adquirirà la velocitat a la que anava el vaixell just abans de prémer el polsador,
i el LED RGB es posarà de color blau. En cas que el joystick sigui accionat horitzontalment, es
variarà la direcció del vaixell a temps real (és a dir, es modificaran l’estat dels LEDS i el PWMSpeed
segons correspongui). Si l’usuari intentés canviar la velocitat el sistema, aquest no haurà de
reaccionar (és a dir, no es podrà modificar ni la velocitat de PWMSpeed[1..0] ni el valor del
display de 7-segments). En qualsevol moment, l’usuari podrà canviar al mode manual prement
el polsador ManualMode. En cas de que l’usuari premi el polsador RecordMode, el sistema
haurà d’ignorar la pulsació.

Mode Record
Per poder accedir a aquest mode, s’haurà de prémer el polsador RecordMode quan el sistema
es trobi en mode manual. Quan això succeeixi, el LED RGB es posarà de color vermell. A partir
d’aquest moment, cada vegada que s’accioni el polsador Save, el sistema haurà de guardar tant
la velocitat i la direcció del vaixell com el delay entre canvis per després poder reproduir una
ruta amb les mateixes característiques i els mateixos timings en accedir al mode pilot automàtic.
Es guardaran com a màxim 30 canvis. Es podrà sortir d’aquest mode (tornant al mode manual)
o bé després dels 30 canvis màxims o bé si es torna a prémer el polsador RecordMode. Si en
algun moment el delay fos més gran que 1 minut, és a dir, no es premés el polsador Save durant
1 minut, el Mode Record es desactivarà automàticament i es tornarà al manual.

Mode Pilot Automàtic


Per poder entrar en aquest mode s’haurà de mantenir premut durant un segon el polsador
RecordMode. En cas de no haver enregistrat cap ruta anteriorment, no s’entrarà en aquest
mode. Si hi ha alguna ruta emmagatzemada, el sistema haurà de reproduir-la deixant el sistema
en pilot automàtic. En el cas d’intentar canviar de mode, velocitat o direcció, el sistema no haurà
de reaccionar, seguirà reproduint la ruta que hi havia enregistrada fins finalitzar i tornar al mode
previ. El LED RGB haurà d’estar de color blanc (encenent els tres colors del LED RGB).

7
LSShip–– Pràctica 2
Sistemes Digitals i Microprocessadors

Restriccions i recomanacions generals


- Una gravació d’una ruta només guardarà 30 canvis.
- Cada vegada que es vulgui fer una gravació no hauran de mostrar-se canvis de la
gravació anterior que hi pogués haver emmagatzemada en reproduir-la.
- Inicialment, el sistema es trobarà en el mode manual a velocitat 0 i direcció centrada.
- Com a màxim pot haver-hi un error de 20ms en el mode pilot automàtic reproduint els
canvis de la ruta gravada.
- S’haurà de poder distingir la direcció de rotació del motor DC mitjançant una hèlix.
- No es podrà canviar de mode si s'està reproduint una ruta des del mode pilot automàtic.
- Els servomotors acostumen a funcionar amb senyals PWM de 50 Hz. El temps a “1”
d’aquests 50 Hz. va dels ~0.5 ms. (corresponent a 0 graus de rotació) fins als ~2.5 ms.
(corresponent a 180 graus de rotació). És molt recomanable fer-se un petit programa de
test per conèixer els valors exactes de temps a “1” per cada extrem de rotació i a quant
de temps es correspon l’increment d’un grau:

- Per al funcionament dels motors DC modularem el PWM canviant així la velocitat del
motor, a més cicle de treball (duty cycle), més velocitat. Si es redueix el cicle de treball,
es redueix la velocitat. Com heu pogut observar, hi ha dos pins de sortida per al motor
DC. Depenent de per quin dels dos traieu el PWM, el motor rotarà cap a un costat o cap
l’altre. El període del PWM és de lliure elecció.
- El servomotor i el motor DC acostumen a consumir força corrent i generar soroll, és molt
recomanable que tinguin una alimentació independent a la del microcontrolador.
- Per al lliurament d’aquesta fase cal entregar un fitxer .zip que contingui:
o Una memòria que compleixi la normativa de pràctiques i les especificacions de
l’annex.
o Dues fotografies de la placa (una des de sobre i una des de sota)
o Un fitxer .txt amb un enllaç a un vídeo on es mostri el correcte funcionament de la
placa
o Una carpeta amb els fitxers del projecte de l’MPLAB.
- El nom del fitxer .zip ha de seguir el següent format: YYYY.MM.DD-SDM-2223-P2-FA-
login1-login2.zip

8
LSShip–– Pràctica 2
Sistemes Digitals i Microprocessadors

Annex 1: contingut de la memòria


Cal que la memòria de la pràctica contingui els següents apartats:

• Portada i índex: la portada ha de ser la d’aquest mateix document, i cal que a l’índex les
pagines estiguin numerades.
• Resum de l’enunciat: amb les vostres paraules, cal que detalleu què ha de fer la practica.
• Plantejament del software: explicació de com estructurareu el software del
microcontrolador.
• Configuracions del microcontrolador: Explicació i justificació de les configuracions
utilitzades, ja siguin a nivell de pins, ports, registres, interrupcions, timers...
• Esquema elèctric.
• Diagrama d’activitat del software: on es pugui veure el funcionament general del
software del microcontrolador.
• Conclusions i problemes observats.
• Planificació: Ha de contenir dos diagrames de Gantt. El primer ha de fer referencia a la
planificació inicial de la pràctica, i el segon ha de mostrar els timings reals després de la
resolució final de la pràctica. S’ha d’explicar les variacions entre ambdós diagrames.

You might also like