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

dimecres, 19 de març del 2014

App IES Gregori Maians ja al Google Play

App IES Gregori Maians ja al Google Play

  Un company i jo hem adquirit una llicència de desenvolupadors per al SO Android i tenir així accés al Google Play per publicar i distribuir les nostres creacions i guanyar algun dineret. Hem aprofitat per pujar l'aplicació que vaig fer a principi de curs per a android de l'institut, que ja es pot cercar i descarregar als dispositius mòbils des d'aquests i per primera vegada és actualitzable.

Ací vos deixe l'enllaç al Google Play.

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, 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ó.

dimarts, 10 de desembre del 2013


Aquesta setmana, a les institucions educatives (i d'altra mena també) dels Estats Units s'està duent a terme, dins Computer Science Education Week l'activitat "Hour of Code". Un vídeo on explica una mica en què consisteix:


Podeu visitar el canal Youtube de code.org i també consultar aquesta notícia al fòrum de l'IES.
Durant aquesta setmana anem a participar en aquesta activitat, per això vos propose que trieu una d'aquestes activitats:

  • Processing: basat en el mateix llenguatge que l'Arduino (bàsicament un C adaptat), fins i tot utilitza el mateix editor per escriure el programa en codi font, però aquest és per dibuixar en pantalla. Es poden fer gràfics basats en dades que envia un Arduino per USB. És molt potent i amb ell hi ha programadors que han fet coses sorprenents.
  • APP Inventor: programa una APP pel teu mòbil o tablet Android. Per provar l'APP programada, si no es disposa de dispositiu Android, hi ha un emulador, però no he trobat instruccions de com instal·lar-lo sobre Linux, a vore si tinc temps...
  • Grok (Python): Iniciació a la programació amb llenguatge Python. Aquest llenguatge s'està utilitzant moltíssim, ja que a la vegada que és molt fàcil i ràpid d'aprendre com fer les primeres coses, és suficientment potent per programar aplicacions de tipus professional.
Durant aquesta primera hora, mireu una mica en què consisteix cadascuna de les activitats i escolliu-ne una per completar-la la propera sessió. No perdeu massa temps mirant a fons cadascuna de les activitats i provant-les totes molt a fons, més endavant en podreu fer alguna altra.

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":