Es mostren els missatges amb l'etiqueta de comentaris Projecte. Mostrar tots els missatges
Es mostren els missatges amb l'etiqueta de comentaris Projecte. Mostrar tots els missatges

dijous, 18 de desembre del 2014

Galeria fotos construcció robots curs 2014-15

Utilitzant els Àlbums Web de Picasa, he creat aquest àlbum on anirem pujant les fotos que fem durant la construcció dels quatre robots d'aquest curs.

diumenge, 16 de febrer del 2014

Muntatge del nostre projecte: METRE DIGITAL

Aquest any ens hem proposat un nou repte, i els alumnes de primer de batxiller de ciències amb l'ajuda del nostre porfessor de tecnologia industrial hem volgut realitzar un projecte que consisteix en un metre digital.
A hores d'ara ja tenim el projecte quasi finalitzat degut a que prompte hem de presenta-lo a un concurs al qual ens hem presentat, però ací us deixe algunes imatges del mutatge:
                                                                                                         
Muntat l'estructura

La base del funcionament dels nostres sensors 

Procés de muntatge 



divendres, 31 de gener del 2014

Esquema general metre amb display LCD

Aquest és l'esquema d'inter-connexionat de tots els elements del metre digital amb mòdul LCD  ADM1602K.
S'ha posat un potenciòmetre pel control del contrast i un interruptor per apagar el llum de backlight i estalviar bateria.
Els sensors s'han simulat amb dos blocs negres, ja que el Fritzing no disposava dels TCRT5000 a la seua llibreria de components.


dimarts, 28 de gener del 2014

Prova ràpida Metre Digital

Una primera prova ràpida del metre digital:

Resultat:

Es veu que no funciona del tot bé, el motiu és que cal ajustar bé la roda de l'encoder, sobretot pel que fa a la distancia entre les marques negres i blanques i els sensors.

divendres, 20 de desembre del 2013

Detecció sentit de gir: opto-switches en quadratura

Com a millora del projecte, anem a fer que si la roda gira en sentit contrari, siguen descomptats de la mesura els centímetres recorreguts en sentit contrari. Per aconseguir-ho necessitem una manera que el micro-controlador puga saber en tot moment en quin sentit gira la roda.
Per fer això necessitarem dos sensors, que poden llegir sobre la mateixa pista de quadres o cadascun sobre la seua pròpia pista.
La tècnica consisteix en situar els dos detectors de manera que al girar la roda, els senyals elèctrics estiguen "en quadratura de fase", això és separades un quart (90º) de cicle. En aquesta animació es veu prou clar:



El sensor A és el principal, quan canvia de negre a blanc (el senyal passa de 0 a 1) és quan contem que la roda a girat 1 cm. Si ens fixem:

  • Roda girant a dretes: Els impulsos actius (canvis de 0 a 1 al sensor A) coincideixen amb que el sensor B està a 0 (sobre negre).
  • Roda girant a esquerres: Els impulsos actius (igual, canvis de 0 a 1 en A) coincideixen ara amb el sensor B a 1 (sobre blanc).
Així cada vegada que al programa hem d'actualitzar la mesura (quan el sensor A passe de 0 a 1), mirem que val el sensor B i incrementem la mesura si b val 0 o la decrementem si val 1.
Evidentment, quin siga el flanc actiu del sensor A (el 0 a 1 o el contrari) i amb quins valors de B s'incrementa o decrementa s'ha agafat com exemple i és fàcilment canviable per programari i és el que caldrà fer per a que el programa s'adapte a la construcció real i incremente amb el gir de la roda avant i decremente amb el gir arrere.

dijous, 19 de desembre del 2013

Sensors: Opto-switch reflexius

Per fer els sensors de gir de la roda facilitant la construcció i adjustament mecànic, en lloc de slotted opto-switch anem a fer servir Opto-Switchs Reflexius, com els TCRT5000 que veiem a la imatge i dels quals podem consultar el seu data-sheet. 
El principi de funcionament d'aquests és el mateix que els slotted, però ara el led IR i el foto-transistor estan situats un al costat de l'altre, si el feix IR emés pel Led es troba amb una superfície reflectant (com ara una superfície blanca), aquest es reflectarà i incidirà sobre el foto-transistor, posant-lo en conducció. Si pel contrari troba una superfície que absorbeix els IR (com ara pintada de negre) o no troba cap superfície, el foto-transistor romandrà tallat.
El circuit, al gràfic de la dreta, és molt senzill:
Com en aquest circuit s'ha tret la senyal de l'emissor del foto-transistor, tindrem:
  • Quan sensor sobre blanc -> Foto-transistor ON -> Senyal eixida a 1.
  • Quan sensor sobre negre -> Foto-transistor OFF -> Senyal eixida a 0.

A sota hi pose una imatge de com queda el sensor, amb els resistors soldats a l'aire:

diumenge, 15 de desembre del 2013

Sensors: Opto-switch

El metre digital consisteix en una roda que gira sobre la distància a mesurar, uns sensors detecten el gir d'aquesta roda i envien un pols a l'arduino cada vegada que la roda recorre 1 cm. Aquest conjunt rep el nom d'encoder incremental i és el sistema que es feia servir als antics ratolins de bola.


Quan movem el ratolí, la bola fa girar els dos discos perforats (un disc per als moviments horitzontals i l'altre pel vertical) que interrompen i deixen passar un feix d'infra-rojos emés per un LED IR situat a un costat de la roda. A l'altre costat de la roda hi ha un foto-transistor que conduirà o no segons el feix IR passe pel forat o siga interromput, provocant impulsos que arriben a l'ordinador.
Per fer el nostre encoder rotatiu incremental, podriem fer servir un component electrònic anomenat Slotted Opto-Switch, que podeu vore a la imatge de la dreta. A una part de l'escletxa tenim el Led IR i a l'altra el foto-transistor, per l'escletxa hem de fer passar la roda codificadora, que ha de ser opaca a la radiació IR.
En aquestes imatges de baix podem vore unes imatges d'un encoder construït fent servir aquests tipus de Slotted Opto-Switch:

Al nostre projecte, per facilitar les coses i per vore si podem millorar-les, utilitzarem Opto-Switchs òptics reflexius. En aquests el LED IR i el foto-transistor estan al mateix costat i el feix IR serà reflexat o no segons incideixca sobre una zona de la roda reflexiva (pintada de blanc) o no reflexiva (negra).

divendres, 13 de desembre del 2013

Control display multiplex - Llibreria SevenSeg

Com el haver de controlar displays de 7 segments multiplexats és una cosa bastant habitual, hi ha programadors que han programat llibreries per a que no tinguem els altres programadors que re-inventar la roda cada vegada.
Així, a l'Arduino Playground he trobat aquesta llibreria SevenSeg (hi havia vàries més) que ja té pre-programades funcions pel control de diferents displays multiplexats de 7 segments, com podem consultar al seu extens manual d'ús. A l'apartat 4.4 d'aquest manual ens explica com fer ús de les funcions de la llibreria per controlar el display mitjançant interrupcions temporitzades i així poder fer ús de delay() i altres còmputs que requereixen molt de temps de procés per l'arduino i al mateix temps que el refresc continue funcionant sense interrompre's.
Ací tenim un vídeo del display comptant dècimes de segon, utilitzant la funció delay() i per tant refrescant el display per interrupcions temporitzades. També hem fet servir funcions de la llibreria pel control del punt decimal.
Aquest és el programa.


Aquestes tècniques de programació requereixen coneixements que ja queden fora d'aquesta introducció a la programació que estem fent al batxillerat, a més, per les característiques del nostre projecte, no caldrà fer-les servir ja que les altres tasques que ha d'atendre el micro-controlador són poques i no impediran el refresc cíclic del display.

Control display multiplexat - II: comptador

Com el control del display multiplexat necessita que s'estiga refrescant constantment la visualització del display, és extraordinàriament difícil programar la resta de les coses que ha de fer el programa,
Per exemple, no podem utilitzar la funció delay(), ja que l'arduino durant els delay() es queda sense fer res i el refresc s'aturaria.
Per programar açò bé, caldria utilitzar interrupcions temporitzades: fem al cos principal la programació de la resta de coses que ha de fer l'arduino i periodicament, l'arduino és interromput per anar a atendre el refresc del display.
Com a mostra de la dificultat he fet aquest programa, que és un simple comptador.
Un vídeo on es veu aquest programa comptant segons, sembla funcionar bé:


Però si volem comptar centèsimes de segon, és a dir la xifra de les centenes serien segons, falla el programa ja que hi hauria que tenir en compte els mil·lisegons que està dedicant a refrescar el display. Observeu al vídeo com els segons (dígit de les centenes) dura quasi dos segons:

dijous, 12 de desembre del 2013

Control display 4 dígits amb multiplex - I

Un programeta ràpid pel control del display multiplexat.
Cada dígit està un temps mostrant-se, controlat per la variable tempsMultiplex, si aquest temps és massa llarg el display tremolarà. Aquest exemple no fa res útil, només mostra pel display la xifra de 4 dígits que li diguem.
Ací està el programa.


dimecres, 11 de desembre del 2013

Display multiplex decodificat

Si encara volguérem controlar els 4 dígits utilitzant menys pins d'eixida, haguérem pogut utilitzar un descodificador BCD-7 segments i així, en lloc de treure els 7 pins dels segments, només hauríem de treure el valor BCD de cada xifra amb 4 pins.
El circuit és:



Ací teniu el fitxer fritzing d'aquesta solució.

dilluns, 9 de desembre del 2013

Display 4 dígits multiplexat: construcció.

Per a no tindre que muntar cada vegada sobre la protoboard els 4 displays, n'hem fet alguns prototips sobre tragetes de circuit imprés tipus Uniprint.
El circuit que voliem muntar era aquest:


Ací està el fitxer Fritzing.
Una imatge per davant d'un dels prototips:


I la visió per la part de les connexions, que és on està la feina:



dimecres, 4 de desembre del 2013

Multiplexat de displays de 7 segments

Per a poder realitzar el metre digital, necessitem un display que puga mostrar més d'un dígit. Hem decidit que el nostre display tindrà 4 xifres.
Per connectar cada dígit hem vist que necessitem una eixida digital per cada segment, com cada dígit té 7 segments (sense comptar amb el del punt decimal), per controlar un display amb 4 dígits ens caldrien 4 x 7 = 28 pins digital d'eixida i l'Arduino només en disposa de 14 i ens caldrà algun pin addicional per connectar els sensors del metre! Per solucionar això necessitem connectar aquests displays d'una altra manera, que no necessite tants pins. La solució s'anomena "Multiplex" de displays i es basa en un defecte dels nostres ulls aprofitat també per fer possible el cine i la televisió: la persistència de la retina.
Bàsicament la connexió consisteix en:

  • Connectar tots els segments a de tots els dígits, a través de la R limitadora a un unic pin d'eixida.
  • Anàlogament, connectem tots els b a un altre pin, tots els c, etc... utilitzarem 8 pins en total (7 segments i el punt decimal)
  • Per altra banda connectem el càtode comú del primer dígit a un altre pin, el del segon dígit a un altre, etc...
  • Així només necesitem, per a 4 dígits, un total de 12 eixides: 8 pels segments més 4 pels càtodes.
Aquesta és una imatge de la connexió, però amb 8 dígits (fan falta 8+8=16 pins, però sense multiplex caldrien 64 pins!!):



Ara, pel control, fem com si projectarem imatges del cine:

  • Activem (a 0) els pins dels segments necessaris per mostra la xifra del display de les unitats i activem (a 1) únicament el càtode del display de les unitats, els altres pins dels càtodes han d'estar a 0, així només s'il·luminaran els segments del display de les unitats.
  • A continuació desactivem el càtode de les unitats, canviem els pins dels segments per a mostrar la xifra de les desenes i activem el càtode de les desenes. En aquest instant només estan il·luminats els segments de les desenes.
  • Passem a les centenes i així successivament, en cada instant només hi ha il·luminada una xifra. Quan arribem a l'última xifra, tornem a començar per la primera.
  • Si anem refrescant les xifres prou ràpidament (un mínim de 25 vegades per segon), els nsotres ulls veuran com si totes les xifres estigueren il·luminades, cadascuna amb la seua xifra.
Una visualització gràfica ralentitzada de la tècnica, mostrant la xifra "1234":


dilluns, 28 d’octubre del 2013

Comptador Amunt/Avall

Un vídeo d'una utilització senzilla de la funció que programarem amb l'Arduino de control directe d'un display de 7 segments: segons polsem o no un polsador, el display compta cap amunt o cap avall. És el que devíeu programar en aquesta tasca.

dilluns, 21 d’octubre del 2013

Display 7 segments descodificat - Vídeo

Un vídeo on es veu el control des d'Arduino d'un display de 7 segments amb un descodificador BCD-7 segments 74LS47:

Display 7 segments amb descodificador

Aquesta vegada hem utilitzat un descodificador BCD - 7 segments per controlar el display. Aquests descodificadors tenen 4 entrades digitals per on entrem el codi binari de la xifra que volem que mostre el display, de 0 a 9, que en binari és de 0000 a 1001. El circuit electrònic que té dins, a base de portes lògiques, s'encarrega de posar a 0 o a 1 les eixides adequades on van connectats els segments per a encendre la xifra corresponent.


Ací teniu el fitxer Fritzing.

dilluns, 14 d’octubre del 2013

Display 7 segments controlat per Arduino - II

Utilitzant també el "control directe", és a dir, sense circuit descodificador BCD-7 segments, vam millorar el nostre programa en diversos aspectes:

  • Utilitzàrem un array unidimensional per emmagatzemar a quin pin de l'Arduino connectàvem cada segment, així ja no cal utilitzar pins successius i correlatius, es pot utilitzar qualsevol ordre.
  • En un altre array bidimensional posàrem quins segments s'havien d'encendre (posar a "0") i quins calia apagar (a "1") per encendre cada xifra.
  • Definirem una funció que accepta com a paràmetre una xifra de 0 a 9 i com a resultat activa el display per a que la mostre.
El resultat el podeu vore ací


I aquest és el programa.

dilluns, 7 d’octubre del 2013

Display 7 segments controlat per Arduino

Per fer el projecte que tenim pensat per aquest curs, primer caldria conèixer les peces més importants que anem a utilitzar.
El nostre projecte el que farà al final és mostrar una sèrie de xifres i això ho ha de fer utilitzant una tecnologia que complixca aquests requeriments:
  • Econòmica.
  • Fàcilment transportable.
  • Funcionament amb font d'energia transportable (piles o bateries) i baix consum.
  • Propedèutica: per aprendre coses noves.
Podríem haver utilitzat una pantalla ja fabricada, amb tecnologia LCD:
però per complir l'últim requeriment s'ha decidit fer-la utilitzant display de 7 segments a LED's.

Vam utilitzar displays d'ànode comú, aquests displays tenen tots els ànodes de cada segment connectats junts, per tant aquest ànode cal posar-lo a tensió positiva i per encendre cada segment cal posar el seu contacte, que serà el càtode del LED, a negatiu.
En aquesta pàgina (que és sub-pàgina d'aquesta altra) es pot trobar més informació sobre aquests displays i sobre els descodificadors BCD-7 segments.
 Per aprendre a controlar aquests displays des d'arduino, primer n'hem connectat un directament, utilitzant 7 pins de l'Arduino com eixida, també hem posat una resistència limitadora d'intensitat de 220 Ω a cada segment:

Primer vam fer un programa sense "intel·ligència": posàvem a 0 o a 1 diferents pins per encendre i apagar segments i que així aparegueren diferents xifres.
Aquest és el programa i aquest el circuit fritzing.