upc eetac_1

Projecte P4: Exemples introductoris E/S


Entrades i sortides digitals

1. Sortides digitals

Projecte P4-1

1.- Especificació del problema.

Engegar i apagar un LED amb intermitència d'1 s. Teoria. Bolígraf i paper. Discussió.

block
Fig. 1. Esbós del primer circuit i la definició de la forma d'ona intermitent ON/OFF.

- Com connectar sortides digitals? Per exemple un LED. Càlcul de la resistència de limitació de corrent.

- Com adaptar a un altre rang de nivells lògics? Per exemple els [0 V- 3,3 V] de la Raspberry Pi.

2.- Planificació. Circuit i programa.

2.1 Esquemes

- En primer lloc realitzeu els esbossos en paper i discutiu-los amb els companys de grup. Després, si voleu,  useu el Fritzing que es pot comprar per només 8 euros, per dibuixar els esquemes com els representats a les Fig. 2 i 3.  També podeu usar el Visio de Microsoft per dibuixar diagrames de flux o aplicacions similars. 

http://digsys.upc.es/ed/ET/Arduino/Project_1/Project_1_schematic.png
Fig. 2. Captura de l'esquema amb el Fritzing.

2. Programes.  Versions inicials (1), (2).

- Dibuixeu en primer lloc el diagrama de flux amb les operacions que voleu programar i que després traduireu al llenguatge C en un fitxer amb extensió ino.

- Noms i directori del projecte. Per exemple: C:\CursArduino\P4\Programa_1IPrograma_1.ino, ....

- Funció d'inicialització setup() . Definició de les potes del xip com a sortides.

- El llaç infinit que s'executa continuadament loop().  L'algoritme i l'escriptura de les sortides

- Generació senzilla de retards.

- Ús de variables de programa.

3.- Desenvolupament.

Muntatge del prototip al protoboard. Veureu que és molt important que us acostumeu a fer coincidir els esquemes electrònics amb els desenvolupaments que muntareu al board. Observareu que al laboratori usarem un altre LED extern que connectareu al pin 9 i que muntareu a la placa de prototips segons l'esquema següent (diagrama en Fritzing). El LED Power_ON és important perquè monitoritza que la targeta de prototips estigui ben alimentada mentre fem els projectes.

 
Fig. 3. Dibuix del prototip amb el Fritzing, el qual està lligat amb l'esquema de la Fig. 2 i si es vol, també amb el seu circuit imprès (PCB).

L'edició de programes font en llenguatge C és entretinguda si ho voleu fer bé i no voleu limitar-vos a copiar i enganxar el que trobeu per Internet. Si heu d'escriure en català o castellà, haureu d'anar amb compte amb la codificació  dels caràcters especials i les vocals accentuades en aquest fitxer de text.

Com que potser programareu en diversos entorns i per diferents xips (Arduino, Raspberry Pi, etc.) és millor que us acostumeu a usar sempre un editor de text enriquit i orientat a la programaació com ara el Notepad++ o el Geany. Després podeu obrir el fitxer a l'entorn Arduino vigilant la codificació. Per exemple: ANSI, western european, ISO8859-1.

Notepad++                                          Geany
Fig. 4. Editors de text enriquit orientats a la programació. Notepad++, Geany.

  Una vegada editat el text del programa, compileu-lo per comprovar que no us dóna errors. Analitzeu els recursos usats i els fitxers de sortida generats (hex, elf, etc.) 

 

4.- Verificació del muntatge.

5.- Documentació del projecte seguint una plantilla (Word) (LibreOffice) basada en els encapçalaments: Especificacions, planificació, desenvolupament i verificació.

 

2. Entrades digitals

Projecte P4-2

1.- Especificació del problema. Lectura del nivell lògic d'un interruptor o polsador. Teoria.

2.- Planificació. Circuit i programa. Versions inicials (1), (2), (3) per copiar i poder traduir el diagrama de flux.

3.- Desenvolupament amb la targeta Arduino i la protoboard. Una alternativa és el simulador Proteus.

4.- Verificació del muntatge mitjançant baixant el programa compilat a la targeta Arduino i comprovant que funciona amb els instruments del laboratori.

Esquemàtic

Fig. 5. Discussió de l'esquemàtic. Cliqueu la imatge per ampliar.

Dagrama de flux

Fig. 6. Discussió del diagrama de flux del programa a traduir al llenguatge INO. Cliqueu la imatge per ampliar.

Aquest és un exemple de traducció del diagrama de flux d'aquest P4-2 al llenguatge Arduino. 

 

3. Projecte. Control ON/OFF d'una làmpada

Projecte P4-3

 1.- Especificació del problema. Encendre i apagar un LED amb el mateix polsador. El LED, en realitat, amb el circuit electrònic d'excitació corresponent (driver de potència) pot representar una làmpada o qualsevol lluminària connectada a la xarxa elèctrica de 220V. Vegeu circuits de potència al P5.

2.- Planificació. Circuit i programa. El circuit és el mateix que pel projecte anterior P4-2. Ens toca modificar, aprofitar el diagrama de flux i ampliar-lo per complir les noves especificacions del projecte. Aquesta vegada la solució és equivalent a una cel·la de memòria d'1 bit (o latch). 

2.1 Esquema electrònic.

2.2 Diagrama de flux.  Una vegada discutit el diagrama, ja podem passar a traduir-lo a llenguatge C. Fixem-nos que tindríem exactament el mateix diagrama en cas d'usar una Raspberry Pi amb la qual el traduiríem a Python.

3.- Desenvolupament. Aquest és el codi de programa P4_3.ino que cal compilar.

4.- Verificació pràctica del muntatge pujant el fitxer compilat a la targeta Arduino. El circuit (P4_3.pdsprj), com mostra la Fig. 7, en cas de disposar de la llicència corresponent, es pot provar abans de baixar-lo a la targeta en el simulador Proteus, tal com s'ha explicat a P3.

Proteus simulation  

Fig. 7. Exemple de circuit tal com queda capturat al Proteus per simular. El gran avantatge és que, per tal de detectar error i fer el seguiment del flux de programa, es pot executar pas a pas interactivament observant l'evolució de les variables en memòria.

Altres referències similars

- PDF d'un curs per a l'INS Illa dels Banyols, El Prat de Llobregat. Prof. Marcos Quílez. 

Aplicacions i activitats introductòries d'exemple

S1. Activitat 1: En grups de treball, busqueu informació en llibres o la Internet sobre una aplicació basada en Arduino. Un esquema (una pàgina) i una explicació (1 pàgina). Si pot ser, imprimiu les pàgines que les comentarem durant la sessió. Si ho teniu en PDF envieu-m'ho per e-mail que ho penjaren aquí mateix.

L'aplicació ha d'usar algun sensor i/o actuador. Us assigno una aplicació indicativa d'exemple per grup:

- G01. Detector de distàncies, ultrasons, cinta mètrica electrònica (pdf, ref. 1)

- G02. Generador de formes d'ona, generador de tons, so o soroll d'alarmes (pdf, ref. 1)

- G03. Termòmetre de temperatura ambient (de -20 a + 45 graus centígrads) (pdf, ref. 1)

- G04. Dau electrònic, ruleta, generador de nombres aleatoris (pdf, ref. 1, ref. 2)

- G05. Altímetre per aeronaus. Mesura de pressió absoluta atmosfèrica (pdf, ref. 1)

- G06. Temporitzador, sistema de reg automàtic, actuador aixeta (obrir, tancar o ajust de cabal d'aigua lineal) (pdf, ref. 1)

 

Important: Si pot ser, a més del maquinari (circuit, hardware) trobeu el diagrama de flux del programa (software), que el discutirem.

 


 

S2. Activitat 2: En grups de treball, modifiqueu els programes P4-2 i P4-3 discutits a la sessió d'avui.

1. Estudieu el circuit del relé (ref.) per VIN = 12 V. Com es demostra que el transistor T10 està saturat quan IO10 = '1' i tallat quan IO10 = '0' ?

Relay

Fig. 4. Circuit d'excitació d'un relé electromagnètic.

2. Modifiqueu el programa P4-2 per realitzar aquesta operació: enviar missatges "Polsador premut" - "Polsador NO premut" pel port USB a l'ordinador.

3. Modifiqueu el programa P4-3 (recordeu que en primer lloc heu de dibuixar el diagrama de flux). Obrir la lluminària clicant el boto dues vegades consecutives. Tancar la làmpada clicant una tercera vegada.

4. Estudieu un sensor-detector de proximitat (ref.) per usar-lo com un detector de persones. Proposeu una connexió i proposeu de modificar el programa P4-3 per tal que en cas de no detectar persones dins de sala en dos minuts, la lluminària s'apagui automàticament.