Professional Documents
Culture Documents
Títol:: Sistema de Comunicació Sense Fils Per Captació de Dades Meteorològiques
Títol:: Sistema de Comunicació Sense Fils Per Captació de Dades Meteorològiques
DADES DEL PROJECTE Ttol del Projecte: Sistema de comunicaci sense fils per captaci de dades meteorolgiques Nom de l'estudiant: Ramon Balaguer Altadill Titulaci: Enginyeria dinformtica Tcnica de Sistemas Crdits: 22,5 Director/Ponent: Pere Mars Mart Departament: ESAII
MEMBRES DEL TRIBUNAL (nom i signatura) President: Enric Xavier Martin Rull Vocal: Maria Jose Serna Iglesias Secretari: Pere Mars Mart
Autor: RAMON BALAGUER ALTADILL Director: PERE MARS MART President: ENRIC XAVIER MARTIN RULL Vocal: MARIA JOSE SERNA IGLESIAS
Agraments:
En certa manera hi ha molta gent que ha contribut implcitament o explcitament al projecte per nombrar a aquells que ms mhan ajudat. Al meu pare Ramon Balaguer, a la meva mare Concepci Altadill i al meu germ Victor Balaguer per lajuda moral que sempre mhan ofert sense demanar res a canvi, i alguna ajuda extra amb les capces del prototip. Als que no son de la famlia per com si ho fossin per mi, a lAlex Fernndez, el Jordi Angulo i la Majdou Larhfiri. En especial magradaria nombrar a lordinador den Ferran Carreira que sha utilitzat per fer proves des de fora de casa i a Mariangels Bueno per fer de correctora, traductora i sser un motiu ms per acabar aquest projecte. A en Xavi Moldes per tota lajuda aportada amb el programari ja que els punters poden sser molt tradors. Al director del projecte Pere Mares, per guiar-me en els moments difcils. I per a finalitzar he de mencionar obligatriament a tots aquells usuaris del frum oficial de lArduino que tant han ajudat.
ndex temes:
AGRAMENTS: ............................................................................. 2 NDEX TEMES: ............................................................................ 3 NDEX FIGURES: ......................................................................... 6 MOTIVACI ................................................................................ 8 OBJECTIUS ................................................................................. 9 COM SER EL PROJECTE? ........................................................ 11 LARDUINO: .............................................................................. 15 QU S LARDUINO ?..................................................................... 15 PER QU ARDUINO? ...................................................................... 15 ON COMPRAR? .............................................................................. 18 Libelium: ............................................................................... 19 BrikoGeek: ............................................................................. 20 Sparkfun: .............................................................................. 21 QU S UN PROGRAMADOR AVR? ........................................................ 22 QU S UN MICROPROGRAMARI? ......................................................... 23 CARACTERSTIQUES TCNIQUES DE LARDUINO : ...................................... 23 QU S UN BUS D'INTERFCIE DE PERIFRICS SRIE? .................................. 26 EL MICROCONTROLADOR DE LARDUINO: ................................................ 30 LLICNCIES ................................................................................. 34 El maquinari i dissenys: ........................................................... 34 El programari i l'entorn de desenvolupament .............................. 36 COMPILADOR: .............................................................................. 37 LLIBRERIES: ................................................................................ 40 L'ENTORN DE DESENVOLUPAMENT ........................................................ 42 PANTALLES LED: ....................................................................... 45 PER QU NO UNA PANTALLA LCD? ...................................................... 45 LED MATRIX - SERIAL INTERFACE - RED/GREEN/BLUE .............................. 46 GRAVACI AMB EL PORT SPI: ............................................................ 49 ACTUALITZACIONS DE MICROPROGRAMARI: ............................................. 51 SOLUCI AL PROBLEMA DE MICROPROGRAMARI: ....................................... 52 MILLORES AL MICROPROGRAMARI: ....................................................... 53 PROBLEMA DE CONNEXI AMB EL PORT DE PROGRAMACI: ........................... 53 EL PROGRAMARI: ........................................................................... 54 ETHERNET SHIELD: ................................................................... 56 CONNEXI AMB SERVEIS DE LA XARXA: ................................................. 56 SERVIDOR WEB: ............................................................................ 59 ALLEUGERIMENT DE PES DE LA WEB:..................................................... 60 3
FULLES DESTIL EN CASCADA CSS3: .................................................... 61 JAVASCRIPT JQUERY: ...................................................................... 62 PROBLEMES AMB ELS PORTS DENTRADA I SORTIDA: ................................... 63 XBEE SHIELD: ........................................................................... 64 QU ES XBEE? ............................................................................. 64 AVANTATGES DEL XBEE ................................................................... 65 COM FUNCIONA? ........................................................................... 66 MODE PROGRAMACI ...................................................................... 67 COM PROGRAMAR AMB ARDUINO?........................................................ 68 XBEE EN MODE API ....................................................................... 69 COMANDES AT ............................................................................. 70 DIFERNCIES ENTRE XBEE Y XBEEPRO.................................................. 71 MICROSD SHIELD ..................................................................... 72 QU S FAT? ............................................................................... 72 QU S UNA TARGETA DE MEMRIA O TARGETA DE MEMRIA FLASH? ................ 74 PER QU UNA MICROSD? ................................................................. 75 FORMAT CSV ............................................................................... 76 SENSORS: ................................................................................. 77 TEMPERATURA: ............................................................................. 78 SENSOR D'INFRAROIG PASSIU: .......................................................... 80 SENSOR HUMITAT: ......................................................................... 84 SENSOR FOTORESISTNCIA: .............................................................. 86 DIAGRAMA DE FLUXOS DELS NODES: ....................................... 88 DIAGRAMA DEL NODE SX01: ............................................................. 88 DIAGRAMA DEL NODE PX02: ............................................................. 89 DIAGRAMA DEL NODE CX03: ............................................................. 90 PROBLEMES SORGITS: .............................................................. 91 PROBLEMA AMB LES PANTALLES: ......................................................... 91 PROBLEMA AMB UN DELS XIPS XBEE ..................................................... 96 PROBLEMA AMB LA LLIBERIA WSTRING .................................................. 97 PROBLEMA AMB L'ENVIAMENT HTML..................................................... 99 PLANIFICACI: ...................................................................... 101 PLANIFICACI IDEAL: .................................................................... 101 PROBLEMES DE PLANIFICACI: ......................................................... 107 PLANIFICACI REAL: ..................................................................... 108 VALORACI ECONMICA: ....................................................... 115 ROLS DELS COMPONENTS: .............................................................. 115 Analista: .............................................................................. 115 4
Tcnic de gesti:................................................................... 115 Tcnic de sistemes: ............................................................... 116 MATERIAL NECESSARI: .................................................................. 116 COST M DOBRA: ........................................................................ 117 PREU FINAL PER EXTREURE BENEFICIS. ................................................ 118 El prototip:........................................................................... 119 El cost de les 100 primeres unitats: ........................................ 119 Els beneficis ......................................................................... 120 Preu per unitat ..................................................................... 120 CONCLUSIONS: ....................................................................... 121 AMPLIACIONS: ....................................................................... 123 BIBLIOGRAFIA: ...................................................................... 126 GENERALS: ............................................................................... 126 ARDUINO: ................................................................................. 127 PANTALLES: ............................................................................... 127 ETHERNET SHIELD ....................................................................... 127 XBEE ...................................................................................... 128 MICROSD SHIELD: ...................................................................... 128 SENSOR TEMPERATURA .................................................................. 128 SENSOR D'INFRAROIG PASSIU .......................................................... 129 SENSOR HUMITAT: ....................................................................... 129 SENSOR LDR ............................................................................. 129 ATMEGA 328P............................................................................ 130 ANNEXOS ................................................................................ 131 CONVERSACI DE CORREUS ELECTRONICS AMB AMB SPARKFUN: .................. 131 CONVERSACI AMB ELS CREADORS DE LA API WSTRING: ........................... 134 FACTURES: ................................................................................ 135 LIBELUM.COM ............................................................................. 135 Pedido Num. 1699 ................................................................ 135 Pedido Num. 1724 ................................................................ 136 BRICOGEEK.COM ......................................................................... 137 Comanda: 002129Comanda: 002571 ...................................... 137 Comanda: 002571 ................................................................ 138 SPARKFUN.COM ........................................................................... 139 Comanda: 192102 ................................................................ 139
ndex figures:
Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. 1: Esquema projecte ............................................................... 11 2: Node Dx01 ........................................................................ 12 3: Node Px02 ......................................................................... 13 4: Node Cx03 ........................................................................ 14 5 Logotip Arduino ................................................................... 15 6: Arduino ............................................................................. 16 7: Parts Arduino ..................................................................... 17 8: Esquema Arduino ............................................................... 18 9: Logotip Libelium ................................................................. 19 10: Logotip BricoGeek ............................................................. 20 11: Logotip Sparkfun .............................................................. 21 12: Programador AVR ............................................................. 22 13: Grfic PWN ...................................................................... 24 14: Exemple SPI .................................................................... 26 15: Exemple SPI 2 .................................................................. 27 16: Exemple SPI 3 .................................................................. 27 17: Cable SPI ........................................................................ 29 18: Ports microcontrolador ...................................................... 31 19: Arduino Duemilanove ........................................................ 31 20: Arduino Nano ................................................................... 32 21: Arduino Mega ................................................................... 32 22: Arduino Lilypad ................................................................ 33 23: Arduino FIO ..................................................................... 34 24: Logotip Creative Commons ................................................ 35 25: Logotip GNU .................................................................... 36 26: Amtel ATmega328P........................................................... 39 27: Llibreries ......................................................................... 40 28: Logotip Processing ............................................................ 42 29: Entorn desenvolupament ................................................... 43 30: Pantalla frontal ................................................................. 45 31: Mesures pantalla .............................................................. 47 32: Posici LEDs pantalla ......................................................... 47 33: Connexi maquinari pantalles ............................................. 48 34: Ordre Impresi pantalles ................................................... 50 35: Conexi pantalles ............................................................. 51 36: Pantalles collocades ......................................................... 52 37: Pins programaci pantalla .................................................. 53 38: Mesures pantalla .............................................................. 55 39: Logotip arduino forum ....................................................... 56 40: Logotip Twitter ................................................................. 56 41: Ethernet Shield ................................................................ 59 42: Impressi pantalla web ..................................................... 60 6
Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig. Fig.
43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65:
Exemple alleugeriment web ............................................... 61 Logotip jQuery ................................................................. 62 Xip XBee ......................................................................... 64 XBee muntat amb Arduino ................................................. 66 Exemple transmissi de dades ............................................ 67 Xarxa XBee ...................................................................... 69 Esquema comanda AT ....................................................... 71 Mesures XBee .................................................................. 71 MicroSD Shield ................................................................. 72 Tipus de targetes de memria ............................................ 74 Mesures i tipus de SD ........................................................ 75 Sensor temperatura .......................................................... 79 Simulaci sensor temperatura ............................................ 80 Dimensions sensor d'infraroigs passiu ................................. 80 Sensor sensor d'infraroigs passiu ........................................ 81 Funcionament del sensor d'infraroigs passiu ......................... 82 Circuit sensor d'infraroigs passiu ........................................ 83 Circuit sensor d'humitat ..................................................... 84 Sensor d'humitat .............................................................. 85 Mesures sensor d'humitat .................................................. 85 Sensor fotoresistncia ....................................................... 86 circuit sensor fotoresistncia: ............................................. 86 Stack i Heap .................................................................... 98
Motivaci
Grcies a algunes assignatures de la carrera he anat experimentant un inters a destacar sobre el mn dels microcontroladors; aquest fet, amb el temps, ha anat augmentant amb la descoberta de lArduino i tots els projectes que poc a poc he pogut conixer al llarg dels anys. Els projectes de lArduino cada cop han estat ms interessants per la seva complexitat i intercompatibilitat amb daltres components electrnics com motors, sensors, etc. Per tant, el projecte final de carrera ha estat una excusa perfecta per poder endinsar-me en el mn Arduino, entendre la seva estructura i els mtodes de treball. La meva intenci s crear un producte til i que un cop acabat aquest es pugui mantindre a casa amb possibles ampliacions, de manera que la funcionalitat i lusabilitat es combinin exitosament. Quan parlem dusabilitat ens referim a que el projecte ha de ser el mxim vists possible, ja que ha de sser un sistema que estigui integrat en una llar on hi ha un alt nombre daparells electrnics i un fet diferenciador seria la vistositat del projecte.
Objectius
Existeixen una srie dobjectius bsics al projecte que shan de materialitzar en un prototip: Comunicaci: o Construir un sistema capa de comunicar-se sense fils entre els seus diferents elements i reduir problemes de disposici dels elements comunicatius ms habituals. Hem de poder fer interactuar els nodes per a poder enviar dades i rebre-les, de manera que la localitzaci no sigui un problema. o Confeccionar un node que sigui capa d' interactuar amb la xarxa i alhora pugui descarregar informaci complementria mitjanant Internet. Tamb volem que aquest node pugui acceptar i enviar peticions HTTP (Hypertext Transfer Protocol) protocol de transferncia de hipertext, per a comunicar-se amb Internet i qualsevol navegador web, de manera que ofereixi una multiplataforma absoluta. Captaci de dades: o Obtindre un mnim de dades meteorolgiques com pot sser la temperatura, humitat o pressi atmosfrica. o Inserir les dades obtingudes mitjanant els sensors en una targeta de memria externa per a poder tractar-les posteriorment, amb ordinadors amb mes potncia.
Interfcie dusuari: o Sha de crear una interfcie per a que lusuari pugui entendre correctament les dades obtingudes per els altres nodes, han dexistir dos tipus dinterfcies: Pantalla: shan de mostrar dades mitjanant alguna pantalla i d'una manera el ms vistosa possible. WEB: shan de poder servir peticions HTTP per a poder tenir un accs multiplataforma i poder accedir mitjanant qualsevol navegador, aquesta interfcie ha de ser prou entenedora i molt senzilla.
10
Cadascun dels nodes es defineix per dues caracterstiques, els sensors que cont i el programari especfic que s'installa al node. A continuaci es definiran les funcionalitats de cada node:
Node Dx01: Aquest node tindr els sentits del projecte, ja que contindr els sensors de manera que s'encarrega de rebre les dades i 11
esperar que altres nodes facin una petici de consulta. Alhora aquest node emmagatzemar les dades en un memria no voltil per a una posterior edici amb d'altres sistemes ms potents.
12
Node Px02: ser l'encarregat de visualitzar les dades mitjanant unes pantalles de LEDs, aquest node noms consultar als altres nodes les dades per a poder-les visualitzar.
13
Node Cx03: aquest Arduino tindr connexi a la xarxa i per tant a Internet on tindrem la oportunitat d'interactuar amb altres serveis. Aquest acceptar altres peticions del sistema per enriquir d'informaci el projecte amb dades externes. D'altra banda tindrem la oportunitat d'utilitzar aquest node com a servidor WEB i per tant tindre una interfcie accessible amb qualsevol plataforma. Tot i aix hi ha unes caracterstiques que contindran tots els nodes, com la propietat d'interactuar amb els altres nodes mitjanant una xarxa sense fils, per tant podran saber l'estat dels altres nodes i enviar-se informaci en cas de sser necessari.
14
LArduino:
Qu s lArduino ?
s una plataforma de prototipatge electrnic de codi obert (les especificacions i els diagrames esquemtics sn daccs pblic) utilitzant un maquinari i programari flexibles i fcils dutilitzar. Arduino llenguatge de programaci es un llenguatge basat en un projecte anomenat Wirings i essencialment C/C++.
Grcies a les entrades i sortides podem fer d' Arduino un entorn de recepci amb una gran varietat de sensors que pugui interactuar amb el seu entorn mitjanant llums, motors o daltres perifrics. Les plaques poden sser assemblades a m o poden encarregar-se a empreses que es dediquen a fer-ho en srie per a reduir costos. El programari necessari per a la programaci s tamb lliure i gratut i es pot descarregar a la pgina oficial del projecte.
Per qu Arduino?
Hi ha molts microcontroladors i plataformes disponibles al mercat amb
15
moltes ofertes i funcionalitats similars per levoluci de lArduino ha estat molt alta grcies a unes caracterstiques niques:
Fig. 6: Arduino
Econmic: Arduino s relativament econmic si comparem aquestes plaques amb les seves competidores, amb l' avantatge de que el seu compilador i entorn de desenvolupament s gratut; a ms, el projecte Arduino cada cop intenta abaratir ms els seus components.
Si comparem lArduino amb algun dels seus competidors podrem observar que per exemple Atmega sol sser 1 euro ms econmic que els PICs de caracterstiques similars.
Continutat: Una de les principals coses a tindre en compte a l'hora d'iniciar un projecte s buscar la mxima projecci de futur amb els projectes que es recolzin. Amb lArduino aix ho tenim garantit ja que es planteja sobre uns pilars molts slids, alguns dels projectes en que es 16
basa lArduino treuen noves versions molt sovint i s en aquest cas on veiem si un projecte es viu o no.
Multiplataforma: Lentorn de desenvolupament i compilador pot ser executat en varis sistemes operatius com Windows, Linux, Mac Os X, a diferncia dels competidors que normalment noms accepten Windows. El gran desenvolupament que existeix sota lArduino , grcies en gran part a la comunitat d'Internet, provoca millores constants i evolucions peridiques, que donen al projecte Arduino una gran potncia evolutiva. Codi obert, programari i maquinari extensible: El software que engloba a Arduino s de codi obert, de manera que pot sser utilitzat per qualsevol de manera gratuta a ms de que dna la possibilitat d'atendrel mitjanant llibreries de C++. Els plnols del circuits tamb sn publicats i qualsevol usuari pot endinsar-se i ajudar a la comunitat a ajudar amb la evoluci de lArduino .
Configurable: Arduino pot sser assemblat per lusuari o comprat preassemblat, tot i aix existeixen moltes configuracions possibles, Nano (versi reduda), Mega (versi amb mes entrades i sortides), al sser de codi obert, la circuiteria t els dissenys publicats per a que qualsevol 17
persona pugui comprar els components per separat i desprs fins i tot millorar-lo. Gran suport: Al ser de codi obert aquesta plataforma ha rebut una gran collaboraci per part de la gent, de manera que trobar una soluci a un problema pot resultar senzill per el fet de que hi ha molta informaci referent a les mateixes possibles complicacions.
On comprar?
Durant el inici del projecte un dels grans dubtes que em va sorgir va sser on comprar tot el maquinari que necessitava. Vaig posar-me en contacte amb vries tendes d'electrnica de Barcelona per intentar trobar un distribudor i d'aquesta manera tenir una persona fsica a qui preguntar en cas de voler resoldre algun dubte. A tot arreu vaig rebre negatives, fins que un comercial de Diotronics em va comentar que el projecte Arduino obliga als distribudors a no vendre al per menor si no s mitjanant la venta web; d'aquesta manera s'asseguren quins sn els preus de venda i troben la manera d'abaratir el cost ja que eliminen les despeses que agrega una tenda de venda directa amb mostrador, aix que encara que Diotronics volgus vendre els Arduino no podria.
18
Amb aquest context vaig haver de buscar tendes en lnia que oferissin garanties de l'enviament i de la qualitat dels productes, i a l'hora opinions favorables de les tendes. Un punt important a tindre en compte a l'hora de buscar una tenda va sser intentar que tingus assistncia de llengua castellana o catalana. Tot i aix alguns components no els vaig trobar aix que vaig haver d'aprofitar-me de la globalitzaci per obtenir segons quins components. Les tres tendes seleccionades van ser: Libelium:
Aquesta tenda es dedica a vendre solucions amb Arduino, aix que sembla que deuen tenir idea del producte, a ms que tenen llistes de correu on es poden consultar problemes que vagin sorgint sobre els seus productes que tenen a la venda. Libelium ven ms components, ja que les seves estacions o nodes incorporen un sistema molt semblant al proposat per aquest projecte.
19
Coses que es van comprar: 1 x Sensor Temperatura 1 x Modulo MicroSD 2Gb para Arduino 3 x Arduino ZigBee Pack (802.15.4 Versi) 1 x PIR Sensor 1 x Sensor de Humitat 808H5V5 1 x Sensor LDR
La seva soluci s incorporar lArduino dins d'unes caixes i ofereixen diferents tipus de sensors i funcionalitats com vigilncia, domtica, presa de dades o comunicaci entre diferents sistemes. Fins el final del projecte noms vaig tindre un petit problema amb els seus productes; al sser una empresa situada a Saragossa noms vaig haver d'enviar per correu ordinari un xip de la comunicaci sense fils per a reprogramar-ho. Aix que no hi ha cap incidncia greu amb aquesta tenda.
BrikoGeek:
En aquesta tenda vaig comprar molt menys material en comparaci a les altres de manera que la possibilitat de tindre problemes ha estat molt inferior.
20
Aquesta tenda no es dedica tant a la venda especialitzada en Arduino per tot i aix tenen una gran oferta de components compatibles amb aquest. Coses que es van comprar a BrikoGeek: 1 x Arduino Ethernet Shield 1 x Kit Programador USB AVR
Sparkfun:
Aquesta empresa s dels Estats Units d'Amrica i era la nica que per qestions de llengua podia donar ms problemes, tot i tenir un nivell baix d'angls sempre a l'hora d'expressar-se es molt ms complicat. Aquesta tenda en lnia t un alt assortit de productes electrnics, aqu s on es van comprar entre d'altres coses les pantalles de Leds que ms endavant explicar; aquestes inicialment sn fabricades a la Xina i enviades per a inserir una part de maquinari que les controla, el problema va sorgir amb aquesta ltima part. El maquinari era fabricat per la prpia tenda, de manera que en cas de tindre qualsevol problema m'hauria de dirigir a ells. Va sorgir un problema de refresc explicat mes endavant; resulta que les pantalles es podien apilar i no funcionaven b aix que em vaig posar en contacte amb la tenda en lnia mitjanant els dos canals possibles.
21
Al final no va sser la tenda qui va trobar la soluci, conseqentment la meva opini d'aquesta tenda s bastant negativa. Coses que es van comprar a Sparkfun: 4 x LED Matrix - Serial Interface - Red/Green/Blue
Qu s un programador AVR?
s un component que t la utilitat de poder gravar el microprogramari de qualsevol microcontrolador de la famlia especfica anomenada AVR. Aquests programadors tenen la caracterstica de que tenen un port SPI; per exemple el propi Arduino en t un inserit a la circuiteria. Al projecte ho utilitzarem per poder reprogramar les pantalles de leds.
22
Qu s un microprogramari?
En angls anomenat "Firmware", s un bloc d'instruccions de programa per a un propsit especfic (a diferncia de qualsevol ordinador de sobretaula), gravat en una part de la memria ROM, normalment sn utilitzats per a components petits i que tenen una funcionalitat especfica. Aquest codi serveix per a apropar d'altres programes d'alt nivell amb el maquinari, de manera que s programat en baix nivell, ms exactament en el nivell mes baix, ja que acaba formant part del maquinari i del programari. Si busquem una relaci directa amb un ordinador convencional el microprogramari seria una espcie de Bios dels ordinadors actuals.
23
L'alimentador d'energia es selecciona automticament entre les dos opcions mitjanant el USB o la connexi directa a un transformador, es recomana que el corrent d'alimentaci estigui comprs entre 7 i 12 volts. Connectors de corrent: Vin: Voltatge d'entrada de lArduino , aquest voltatge s de 5 volts i serveix per alimentar-lo a ell i a tots els components que estiguin connectats. 5V: lArduino pot oferir 5 volts a qualsevol dels components que estiguin connectats a aquest. 3V3: Sortida de 3,3 volts amb la mateixa funcionalitat que la sortida de 5V. GND: Presa de terra per a tot el sistema.
24
Connectors Entrada / Sortida: Serial 0 (RX) i 1 (TX): utilitzats per rebre (RX) i transmetre (TX) informaci pel port TTL serial. Aquests pins estan connectats corresponentment a un xip convertidor USB a TTL per a poder enviar i rebre informaci mitjanant un port USB de l'ordinador. Interrupcions externes 2 i 3: Aquets pins es poden configurar per a fer activar una interrupci. PWM 3, 4, 5, 8, 10 i 11: Proporcionen un PWM de 8bits de sortida i actuen com una sortida analgica. SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK): Aquests pins suporten una comunicaci SPI, lArduino no proporciona mtodes d'interacci amb aquests tipus de port ja que cada component pot interactuar d'una manera diferent. LED 13: En aquest connector tenim un LED connectat al pin digital 13, quan aquest pin t un valor alt (5 volts) el LED s'engegar contrriament i si el pin t un valor baix el LED s'apagar.
LArduino proporciona a ms a ms entrades digitals que seran convertides a digitals grcies al microcontrolador. Desprs d'aquesta conversi el valor digital tindr un valor comprs entre 0 i 1023 segons el seu voltatge d'entrada. I2C 4 (SDA) i 5 (SCL). Suporten I2C (TWI), un bus de comunicaci utilitzant la llibreria Wire.
25
Per a finalitzar els connectors disponibles amb lArduino : AREF: Referncia per al voltatge de lectures analgiques, aquestes lectures habitualment necessiten d'una dada per impedir que les variacions del corrent puguin influir als valors de lectura dels diferents sensors. Reset: Aquest connector s'utilitza per a poder resetejar lArduino mitjanant codi. S'utilitza habitualment per detectar que el programari de lArduino est en un estat fora de lesperat i per poder entrar correctament es reseteja.
El port SPI (Serial Peripheral Interface Bus) o bus d' interfcie de perifrics srie s un estndard de comunicaci entre perifrics amb una clara utilitat dins del mn de l'electrnica.
Habitualment aquest estndard es regeix per tindre un periferic mster i un esclau, i entre aquests dos pot existir una transmissi a dues bandes instantnies de manera que els dos perifrics poden emitir i rebre dades. 26
Un dels grans avantatges d'aquest port de comunicaci s que tenim la possibilitat de poder apilar varis esclaus i poder comunicar amb el mateix port molts elements amb el nostre mster alhora. Utilitzarem un bit ms per cada perifric que connectem i aquest bit activar la comunicaci entre el mster escollit i l'esclau que volem, posteriorment veurem que hi ha ms mtodes per poder apilar esclaus. Al projecte tamb utilitzarem un maquinari que s capa concatenar crides mitjanant un port SPI propi de manera que cadascun dels elements propaga la informaci al segent i aix successivament fins l'ltim.
27
Identificarem els 5 bits necessaris per a la comunicaci: SS(ChipSelect): Amb aquest podrem indicar a la pantalla quan enviarem les dades, utilitzarem el pas alt (un 1 lgic o 5 volts) per indicar l'estat en reps i de visualitzaci, mentres que utilitzarem el pas baix (un 0 lgic o 0 volts) per indicar l'inici de l'enviament de les dades. MOSI (mster Output, Slave Input) o sortida del mster, entrada de l'esclau: Aquest bit ser utilitzat per a enviar les dades del mster cap a l'esclau. MISO (mster Input, Slave Output) o entrada del mster, i sortida del esclau: En contraposici amb el MOSI aquest pint te la funci d'enviar dades de l'esclau cap al mster. SCLK (Clock): Enviarem una pulsaci per cada bit que enviem per el bit de dades (MOSI) d'aquesta manera amb 2 bits podem enviar qualsevol informaci. VCC: 5Volts d'entrada per alimentar els components electrnics connectats. GND: la presa de terra pels components electrnics connectats.
Per a configurar correctament el port SPI existeixen 2 bytes, un anomenat SCPR i l'altre SPSR. Aquests donen valor a les configuracions segents:
28
Byte SCPR: Bit 7 SPIE: Aquest bit habilita les interrupcions del port SPI. Bit 6 SPE: Habilita el SPI, s'ha de setejar a '1' en cas que es vulgui utilitzar el port SPI. Bit 5 DORD: Ordre de les dades Bit 4 MSTR: Aquest bit identifica si aquest maquinari es '1' mster o esclau. Bit 3 CPOL: Polaritat del rellotge, si s activat a '1' ser actiu amb un flanc alt, en cas contrari estar desactivat en un flanc baix. Bit 2 CHPA: Fase del rellotge; Bit 1-0 SPR1, SPR2: Aquests dos bits identifiquen la velocitat a la que ha d'anar el rellotge, aquesta ordre noms funcionar quan el maquinari estigui deposat com a mster.
29
Byte SPSR: Bit 7 SPPIF: Bandera d' interrupci del SPI. Quan una
transferncia serial s complerta, la bandera SPIF s habilitada. De manera que serveix per a que el nostre maquinari tingui constncia de que ha finalitzat una transferncia, per a que succeeixi aix s'han de complir algunes premisses: o SPIE i SREG habilitats o Si el bit SS del port SPI est habilitat quan el SPI s configurat en mode Mster el SPIF quedar deshabilitat per maquinari quan s'executi la corresponent interrupci manualment. Bit 6 WCOL: Bandera de collisions d'escriptura, s'habilita quan hi ha una collisi durant el procs de transferncia. Bit 0 SPI2X: Duplica la velocitat dels bits.
El microcontrolador de lArduino:
Lescollit s un Amtel ATmega328P aquest micro t les segents caracterstiques: 32Kb de memria per al programari. 2KB SRAM Convertidor analgic / digital Funciona fins 20MHz amb un clock extern 23 entrades i sortides de propsit general
30
Tipus principals d'Arduino: Hi ha molts tipus i versions de les plaques Arduino, en aquest apartat comentarem les ms venudes o ms conegudes. Duemilanove: Aquesta es l'ltima versi bsica d'una placa de lArduino connectada mitjanant l'estndard USB. Aquest servir per gravar el programari cap i per enviar o rebre informaci de l'ordinador. Aquesta placa t la possibilitat de complementar-la amb d'altres components prefabricats anomenats Shields.
31
Diecimila: s la versi anterior del Duemilanove. Nano: Aquesta s una versi reduda, t menys connectors d'entrada i sortida de manera que es redueix la potncia de lArduino per la mida es veu reduda notablement; aquest utilitzar un cable Mini-USB.
Mega: Al contrari que el nano, aquesta versi cont un augment de entrades i sortides. Aquesta placa mant una alta compatibilitat entre el programari de la versi Duemilanove i Diecmila. Existeixen poques i petites diferncies, aquesta versi vitaminada de lArduino augmenta la mida, per en cas de necessitar molts ports d'entrada i sortida pot resultar una bona opci.
32
Bluetooth: Aquest Arduino cont el maquinari necessari per utilitzar la comunicaci de Bluetooth, per s'ha de recordar que el Duemilanove t alguns components externs que donen aquesta funcionalitat.
LilyPad: s una de les versions ms innovadores. La que est feta per poder utilitzar lArduino amb la roba, aquest s mpliament utilitzat per dissenyadors de moda. Es redueix considerablement la mida del mateix i les connexions.
33
Fio: Dissenyat especialment per a aplicacions amb necessitat de comunicaci amb xarxes XBee, aquest cont ms facilitats per a tindre una bateria al circuit.
Llicncies
Tota la plataforma Arduino s de codi obert, per de totes maneres existeixen diferents llicncies a tindre en compte per a poder conixer quines sn les nostres obligacions.
El maquinari i dissenys: Per al maquinari i els dissenys d'aquest la llicncia escollida s Creative Commons amb perms de compartir i modificar:
34
Compartir: aix significa que es pot fer tantes cpies com sigui necessari, distribuir, comunicar o executar pblicament la obra. Modificar: es permet modificar i confeccionar obres derivades.
Sota les segents condicions: Atribuci: hem de reconixer i citar qualsevol obra de la forma especificada per l'autor. Traslladar la llicncia: si modifiques o transformes aquesta obra, o generes una obra derivada, noms pots distribuir la obra generada sota una llicncia idntica a aquesta.
Coses a tenir en compte: Renncia: L'autor pot renunciar a algun dels drets establerts per aquesta llicncia tot demanant perms i aix poder utilitzar-ho com es vulgui sobre la renncia. Altres drets: Els segents drets no queden afectats per la llicncia o s just. o Drets morals de l'autor. o Drets de privacitat. 35
El programari i l'entorn de desenvolupament Aquesta part del projecte ser llicenciada sota GNU (General Public License) "Llicncia pblica general", aquesta s orientada per a protegir la lliure distribuci, modificaci i s del programari. El propsit de GNU s declarar el programari com lliure, i protegir-lo d'intents d'apropiacions que restringeixin aquestes llibertats als usuaris.
Enumerarem les llibertats dels usuaris al tindre una obra amb llicncia GNU:
La llibertat d'executar el programa per a qualsevol propsit. La llibertat d'estudiar com funciona el programa i adaptar-lo a les seves necessitats La llibertat de redistribuir cpies per ajudar al prxim. La llibertat de millorar el programa i comunicar les millores al pblic, per a un benefici de la comunitat.
36
Per a cada cpia, s'ha de fer constar una nota amb els drets d'autor i una exoneraci de responsabilitats. Per a qualsevol cpia d'una obra sota aquesta llicncia tindr implcita aquesta llicncia i haurem de fer-ho constar. En cas de copiar o distribuir el programa, haur de portar adjunt el codi font complert del mateix essent entenedor per a les computadores al menys en un espai de temps de tres anys.
Compilador:
Iniciant amb una petita introducci sobre el qu s un compilador i com funciona que ens portar a detallar el compilador utilitzat per lArduino . Un compilador s un programa que tradueix un programa escrit en un llenguatge de programaci a un altre llenguatge de programaci de nivell ms baix, generant un programa que la mquina ser capa d'interpretar. D'aquesta manera el programador pot dissenyar un programa ms intutiu i entenedor per a l' sser hum, a ms elimina la necessitat d'aprofundir i tindre constncia de quina mquina reproduir aquest programa. Per exemple, un programa escrit en un llenguatge com c++ pot sser executat indiferentment en un ordinador amb qualsevol sistema operatiu o un microcontrolador. Aix s causat pels compiladors ja que s'encarreguen de traduir el programa escrit en c++ en llenguatge mquina.
37
El llenguatge mquina se suposa que s un llenguatge optimitzat creat especficament per a un tipus de maquinari, d'aquesta manera el programador no cal que tingui necessitat de saber buscar aquestes optimitzacions que els compiladors ens ofereixen.
A grans trets existeixen aquests tipus de compiladors: Compiladors creuats: generen el codi per a un sistema diferent del que funcionen. Compiladors optimitzadors: realitzen canvis al codi per a millorar la seva eficincia sense variar la seva funcionalitat; per exemple, hi ha ocasions en que el processador t dreceres per fer segons quin tipus de bucles, aix si el compilador t constncia d'aquestes pot optimitzar utilitzant-les. Compiladors d'una sola passada: aquests compiladors generen el codi mquina a partir d'una nica lectura del codi font. Compiladors de varies passades: a diferncia del tipus anterior, aquests compiladors necessiten tindre ms d'una passada per poder generar el codi mquina. Compiladors JIT (Just In Time) just al moment: sn compiladors que formen part d'una unitat ms gran que s'encarrega de compilar noms aquell codi necessari en cada moment. Aquests compiladors habitualment tracten un codi precompilat, de manera que el procs de compilaci no s tan farrags. Llavors el compilador indicat per a l' Arduino s anomenat AVR-GCC, heretat del seu microcontrolador Amtel ATmega328P. s un compilador de llenguatge d'alt nivell C i C++, aquest crear un arxiu binari que desprs ser enregistrat a la memria de programari del micro.
38
El AVR-GCC prov d'una collecci de compiladors anomenats GCC, aquests sn tots escrits sota llicncia GNU, la majoria de les referncies sn a entrades d'una srie d'eines del GNU per noms s'escullen les ms importants o es modifiquen per a que aquest compilador obtingui un codi mquina molt optimitzat per als microcontroladors de la famlia AVR. El propi compilador AVR-GCC s un projecte viu en termes
d'actualitzacions degut a que s molt habitual que s'actualitzi abans que els binaris de la distribuci oficial GCC. Aquest projecte s destinat principalment per a sistemes operatius basats en Linux i Unix, per existeix l'evoluci per a Windows anomenat WinAVR. De totes maneres aquests dos projectes conviuen junts i s'ajuden l'un a l'altre per avanar en el desenvolupament dels compiladors. El WinAVR cont varis projectes, com el compilador que ja hem parlat anteriorment AVR-GCC, un programador AVRdude i un debugador avrgdb. Aquest no necessita sser installat de manera que els seus creadors fins i tot donen la opci de inserir-ho en un llapis de memria. 39
Llibreries:
Introduir el concepte llibreria o biblioteca, per poder acabar aprofundint sobre la llibreria que lArduino utilitza. Una llibreria s un a conjunt de subprogrames independents utilitzats de la per a
desenvolupar programes. Les biblioteques contenen dades i codi que proporciona servei programes llibreria.
Les llibreries permeten que el codi i les dades es comparteixin i es puguin modificar de forma modular des de varis programes, d'aquesta manera una mateixa funci pot sser cridada des de qualsevol programari. La majoria de sistemes operatius moderns proporcionen llibreries que implementen la majoria dels serveis del sistema.
40
Hi ha diferents tipus de llibreries: Llibreries esttiques: Antigament totes les llibreries eren
esttiques. Aquestes consisteixen en un conjunt de subrutines que es copien a una aplicaci mitjanant el compilador, aqu es creen enllaos cap a direccions fsiques on existeixen les rutines de les llibreries. Molts llenguatges de programaci utilitzen aquestes llibreries per inserir algoritmes que s'utilitzen sovint per agilitzar el treball als programadors. De totes maneres hi ha programadors que tamb decideixen crear les seves llibreries per a parts de codi que utilitzen habitualment. Els compiladors moderns proporcionen accs tant a les llibreries estndard com a les llibreries personalitzades.
Llibreries
dinmiques:
Aquestes
sn
carregades
en
temps
d'execuci i es mantenen com arxius separats del programa principal, aquestes donen l' avantatge de que en cas de no ser utilitzades el sistema operatiu no les carregar. Llibreries remotes: Aquestes llibreries es consulten a distncia de manera que no cal que estiguin fsicament al mateix computador que el programa principal.
Al projecte utilitzarem el tipus de llibreria esttica anomenada AVRLIBC. Aquesta s un llibreria d'alta qualitat que atorga un subconjunt de l'estndard de C utilitzada amb el GCC. Aquesta llibreria es creada i optimitzada per als microcontroladors Atmel AVR RISC de 8 bits. 41
El compilador AVR-GCC s qui s'encarrega d'oferir i utilitzar aquesta llibreria per a programes creats per a aquests micros.
L'entorn de desenvolupament
Com hem comentat en altres apartats de la memria l'entorn de desenvolupament est llicenciat com codi obert, d'aquesta manera t la possibilitat d'adoptar altres projectes per a millorar, en aquest cas, es el Processing.
Processing s un entorn de desenvolupament i llenguatge programat amb Java i de fcil utilitzaci, aquest estableix una versi reduda del C/C++ per a poder sser posteriorment compilada amb el AVR-GCC.
Aquest entorn de desenvolupament ens ofereix vries funcionalitats per ajudar als programadors. El resultat s un entorn utilitzat al mn de l'ensenyament ja que les seves funcionalitats fan que el programador no tingui la necessitat d'obrir cap altre programa per editar els programes que posteriorment es gravaran al microcontroladror.
42
Avantatges de l'entorn de programaci: Illuminaci dels errors de compilaci: identifica la zona per tindre millor referncia del problema. Ordenaci del codi: estructura el codi jerrquicament segons el seu context deixant espais necessaris per a poder visualitzar-lo correctament. Gravaci a lArduino amb un clic. 43
Colorejament de sintaxis: aix ajuda a identificar parts del codi i visualitzar ordres comunes. Costos mnims en el ordinador client on s'executa l'entorn de programaci. Simplicitat: t totes les opcions necessries per a programar, amb una interfcie sencilla, per aquest motiu lArduino s tan utilitzat en el mn escolar. D'aqu a pocs anys qualsevol persona podr crear un petit programa i enviar-lo al Arduino per a que s'executi i es visualitzi un resultat.
44
Pantalles led:
Per qu no una pantalla LCD?
La ra per la que no vaig escollir pantalles LCD s la vistositat dels LEDs. El projecte va dirigit a poder ser una part ms de la casa i una pantalla LCD no convida a apropar-se per a llegir-la a lhora que una simulaci amb 4 pantalles (8x8) de LED multicolor d'un mida final 16x16 t molta ms fora visualment parlant.
Aix que vaig buscar alguna tenda a Barcelona que tingus alguna cosa semblant, per com no vaig trobar res apropiat llavors Internet va sser l'altre punt de recerca on finalment vaig trobar unes pantalles que eren el millor que vaig trobar.
45
Aquestes pantalles eren 8x8 leds que tenien un maquinari per a tractarlos, aix la meva intenci no era centrar el treball en la pantalla ja que aix em facilitaria molt el treball. Un cop seleccionada la tipologia de pantalles i vist que 64 leds eren pocs per poder transmetre tota la informaci desitjada vaig optar per agafar-ne 4 i organitzar-les amb una matriu 2x2 amb un total de 256 leds.
46
La matriu de leds est connectada entre si per a poder encendre tots els leds amb el menor nmero de pins, d'aquesta manera jugant amb la freqncia de visualitzaci podem encendre qualsevol combinaci que sigui necessria.
47
D'altra banda la pantalla tamb te una circuiteria afegida per un altre fabricant. Aquest fabricant tenia tres objectius a l'hora d'implementarla: Trobar el mtode per poder manegar la pantalla de leds sense tindre conscincia del refresc visual necessari per a poder formar qualsevol dibuix. Trobar el mtode per a una utilitzaci ms senzilla. Trobar el mtode per utilitzar el mnim de pins necessaris. Trobar el mtode per poder interconnectar vries pantalles alhora.
El fabricant va optar per la comunicaci serial, tant del nostre circuit (en el meu cas Arduino) com entre les pantalles (segons el fabricant amb un mxim de 8 pantalles). D'aquesta manera amb 5 bits s suficient com per tindre una comunicaci i poder enviar a les pantalles quin color i quins leds volem que s'engeguin.
48
Per a poder seleccionar el color utilitzarem un registre de 8 bits (char) de manera que cadascun dels bits tingui una referncia directa amb el color del Led: Vermell Bit 6 Verd Bit 3 Blau Bit 2 Bit 1 Bit 0
Bit 7
Bit 5
Bit 4
Aix podem donar color amb un byte, encara que el fabricant estipula uns valors per a trobar uns 8 colors definits: Color Negre Vermell Verd Blau Tronga Magenta Xarxet Blanc Valor del Byte 0x00 0xE0 0x1C 0x03 0xFC 0xE3 0x1F 0xFF
1. Activem el CS (pas baix) 2. Temps d'espera 0.5ms 3. Transferncia del primer color mitjanant el port serial (MOSI). Aquesta operaci la reproduirem 64 vegades per cada led i en cas de tindre ms pantalles es reproduir 64xNPantalles; en el nostre cas sn 4 pantalles de manera que es reproduir 64x4=256 vegades, i cada vegada s'enviar un byte amb el color que pertany al led. 4. Desactivem el CS (pas alt)
255 254 253 252 251 250 249 248 127 126 125 124 123 122 121 120 247 246 245 244 243 242 241 240 119 118 117 116 115 114 113 112 239 238 237 236 235 234 233 232 111 110 109 108 107 106 105 104 231 230 229 228 227 226 225 224 103 102 101 100 99 98 97 96 223 222 221 220 219 218 217 216 95 94 93 92 91 90 89 88 215 214 213 212 211 210 209 208 87 86 85 84 83 82 81 80 207 206 205 204 203 202 201 200 79 78 77 76 75 74 73 72 199 198 197 196 195 194 193 192 71 70 69 68 67 66 65 64 191 190 189 188 187 186 185 184 63 62 61 60 59 58 57 56 183 182 181 180 179 178 177 176 55 54 53 52 51 50 49 48 175 174 173 172 171 170 169 168 47 46 45 44 43 42 41 40 167 166 165 164 163 162 161 160 39 38 37 36 35 34 33 32 159 158 157 156 155 154 153 152 31 30 29 28 27 26 25 24 151 150 149 148 147 146 145 144 23 22 21 20 19 18 17 16 143 142 141 140 139 138 137 136 15 14 13 12 11 10 9 8 135 134 133 132 131 130 129 128 7 6 5 4 3 2 1 0
Un cop establerta la connexi entre el nostre maquinari i la primera pantalla, veiem que la connexi entre pantalles es desencadena mitjanant Daisy-chained o concatenats, de manera que la primera pantalla s'encarregar d'enviar la informaci a la segona i aix successivament, conseqentment els primers 64 bytes enviats pel nostre maquinari aniran a parar a la ltima pantalla connectada.
50
Actualitzacions de microprogramari:
Les pantalles varen tindre un canvi de microprogramari amb data 4/27/2009; aquesta actualitzaci ajudava a la connexi Daisy-chained entre pantalles per contenia un error de refresc de les pantalles.
51
El problema apareix en el moment en que les pantalles s'han de resetejar, ja que existeix un identificador que indica a la pantalla quin LED volem encendre (aquest identificador augmenta mitjanant un rellotge que mostra quan ha de passar al segent dode) per el programari de les pantalles no resetejaba aquest valor quan nosaltres criem o quan el datasheet de les pantalles ho indicava, de manera que es quedaven en un estatus indefinit i no controlat degut a que les pantalles seguien mantenint el indicador en un LED erroni.
52
Millores al microprogramari:
D'altra banda es van fer millores al microprogramari per a qu les imprecisions fossin ms ptimes en quant a velocitat i s'eliminessin estats de les pantalles que no eren tils.
Aquest cop em van facilitar un port on shavien de soldar pins, i es va trobar una soluci adient per al problema.
53
De totes maneres es va haver d'adquirir un programador AVR serial per a poder enviar el nou microprogramari cap a la ROM de las pantalles i d'aquesta manera va acabar el problema sorgit amb les pantalles de leds.
El programari:
Per a poder extreure el mxim partit a les pantalles he decidit fer una petita API per a traduir el mes fcil possible un char amb la illuminaci de les pantalles, s'ha optat per 2 mtodes. Mitjanant una variable de tipus long, de manera que cada bit d'aquesta variable indica si el led esta encs o no. o Avantatge: les variables ocupen molt menys que l'altre mtode, 32bits per carcter. o Desavantatge: hi ha un mxim de 32 bits, per tant noms es poden dissenyar una matriu de 32 leds. Ara b, s suficient per a poder dibuixar carcters amb un mida de 4x7. Mitjanant matrius de tipus char, d'aquesta manera cada posici de la matriu ens dna un color per a un Led. o Avantatge: no hi ha lmits de colors o Leds, per tant podem dibuixar la pantalla sencera amb una matriu de 16x16, a ms cada Led tindr un color independent a la resta. o Desavantatge: ocupen i desaprofitar molt espai en memria, ja que si utilitzem una matriu 16x16 i cada posici s un char llavors tenim una matriu de 2.048bits.
54
55
Ethernet Shield:
Internet segurament s el mitj de comunicaci amb ms fora als ltims anys amb aplicatius web com Twitter o connexions amb estacions meteorolgiques en directe. He intentat injectar aquesta fora dins del projecte amb la interconnexi entre varis serveis de la xarxa. A ms, el propi sistema s capa de comportar-se com un servidor web, de manera que en tot instant i en qualsevol lloc amb accs a Internet tindrem accs a la informaci que el nostre sistema manega.
56
57
Aix el programari del sistema s'encarregar d'enviar alarmes mitjanant l'aplicatiu Twitter; aquestes alarmes tenen l' avantatge de que sn inserides en un servidor extern, per tant encara que la nostra xarxa o connexi a Internet falli, ens podem assegurar de que aquest aplicatiu estar en lnia la majoria de vegades. D'altra banda, existeixen moltes possibilitats per poder extreure la informaci de Twitter ja sigui via web o aplicatiu d'escriptori en qualsevol plataforma, fins i tot mbil.
58
Servidor web:
Una de les estacions del sistema s'encarregar de servir a la xarxa de qualsevol tipus d'informaci que el sistema tingui, de manera que tindrem un servidor web que respongui les peticions HTTP. Aquesta funcionalitat ens dna la possibilitat de modificar el
comportament del sistema amb diferents opcions mitjanant formularis web. De totes maneres, s'ha d'intentar alleugerir qualsevol tipus de codi HTML que vulguem inserir. Per a solucionar problemes de connexi i d'espai, he optat per externalitzar alguna llibreria Javascript, imatges i arxius CSS en altres servidors, de manera que salleugereix el pes del codi dins del sistema i de la nostra connexi. El funcionament del servidor s senzill ja que podem identificar les capaleres de les peticions HTTP, aix podem identificar amb parmetres enviats des del client quines sn les necessitats per a poder servir una web adequada, injectant el codi HTML com a resposta de les peticions.
59
60
Aquesta diferencia implica que mitjanant lAjax ens estem estalviant, 98% de la mida original, ara les connexions duraran molt menys temps, i el servidor es mantindr en estat ocis mes temps acceptat moltes mes peticions per minut.
Aqu el text que es vulgui </div> La crida a partir de la fulla destils es far de la segent manera: #DivText { Propietat: valor; }
Javascript jQuery:
Per a poder fer segons quines coses el HTML es veu molt limitat quan el que intentes es fer una web vistosa. De manera que he utilitzat una llibreria que ja he treballat anteriorment i coneixia el seu llenguatge, potencia i de mes factors que fan daquesta llibreria un perfecte aliat.
Aquesta llibreria mha ofert la possibilitat de inserir Ajax a la web i per tant obtenir varies avantatges explicades anteriorment, a lhora hem pogut establir algun efecte als textos per a poder fer mes agradable la seva visualitzaci. Es un mitj perfecte entre la comunicaci servidor i client.
62
63
XBee Shield:
Qu es XBee?
XBee s el nom comercial d'un protocol anomenat ZigBee, aquest cont les especificacions d'alt nivell per a un protocol de comunicaci utilitzant ones de rdio digital de baixa potncia. Es basa en un estndard obert anomenat IEEE 802.15.4-2003 per a xarxes sense fil d'mbit personal, aquest implementa l'accs al maquinari especificant el baix nivell del programari. Aquest maquinari es comunicar mitjanant el port SPI, que com ja hem contrastat s el mtode ms rpid, senzill i mpliament utilitzat per aquest tipus de comunicaci entre petits dispositius.
Ara b, desprs de la presa en contacte amb aquest maquinari, podem afirmar que existeix la possibilitat d'extreure molt ms potencial d'aquests xips ja que ofereixen moltes possibilitats i funcions que no podrem utilitzar per falta de temps, com per exemple:
64
Funci sleep: Que redueix el consum elctric. Funcions per escanejar els diferents canals per poder trobar diferents xarxes o nodes.
Consum elctric: Un dels grans avantatges que t XBee s els seu baix consum d'energia. Est pensat per a poder sser alimentat per bateries recarregables o fins i tot plaques fotovoltaiques, de manera que es pot utilitzar per mantindre informat un node sense haver d' utilitzar grans installacions elctriques o xarxes d'informaci. A ms, per arrodonir aquest avantatge, trobem un mode "sleep" o dormit que obliga al maquinari a entrar en un estat per a conservar encara ms l'energia d'aquesta reduint fins a un 500% el consum, segons el manual d'instruccions.
Consum de programari: una cosa a avaluar s el codi necessari per a poder intercanviar informaci entre aparells amb XBee. Aix no s cap problema ja que per fer l'exemple ms senzill d'enviament noms calen 2 ordres.
Baix cost: els mduls XBee estan creats per a poder ser el ms econmics possibles a diferncia d'altres competidors. Xarxa en malla: el maquinari dna la possibilitat de poder crear una xarxa en malla per a simplificar la feina. He buscat una a API, per poder comunicar varis nodes entre s sense limitacions.
65
Com funciona?
Els mduls xbee es comuniquen mitjanant una interfcie a nivell lgic asincronament mitjanant el port serial. Aix significa que s una comunicaci binria entre els diferents dispositius, de manera que tindrem dos estats, flanc ascendent i un flanc descendent; aquest mtode s anomenat UART (Universal Asynchronous ReceiverTransmitter) Transmisor-Receptor Asncron Universal.
66
Mode programaci
Per a poder utilitzar XBee, s'ha de programar per tal de configurar inicialment cada xip XBee, de manera que noms caldr fer-ho un cop. En aquest mode tenim diferents comandes per a editar diferents parmetres del XBee. Exemples d'algunes comandes utilitzades al projecte:
67
Comanda Funci AT RE AP X MY XXXX ID XXXX CH XX BD XX Inici comanda Resetejar valors per defecte de fbrica Seleccionar el mode API en estat activat o desactivat. Donar valor a la direcci d'origen (amb aquesta direcci podrem identificar i posteriorment enviar informaci) Identificar la xarxa a la que es vol connectar aquest node Identificar el valor del canal de la xarxa que es vol connectar Defineix la velocitat de connexi
DH XXXX Part alta de l'adrea dest DL XXXX WR CN Part baixa de l'adrea dest Gravaci de les configuracions al xip XBee finalitzaci de la comanda
68
Si agafem lArduino i el programem amb un codi buit d'aquest estil: setup{} loop{} LArduino actua com un pont entre el port USB i els xips XBee, donant la possibilita de programar-los sense problemes.
Quan activem el mode API, els XBee es comportaran com una xarxa entrellaada ampliant considerablement la funcionalitat dels mateixos ja que no depn del node enllaat nicament per establir una comunicaci. 69
Utilitzant el mode API, un xip XBee podr comunicar-se amb diferents nodes sense tenir prefixat cap d'aquests. El disseny de la xarxa del projecte es convertir en estrella ja que qualsevol node podr interactuar amb qualsevol altre.
Comandes AT
La programaci s'estableix mitjanant el port serial, d'aquesta manera com en quasi tots els maquinaris es fa compatible una comunicaci fcil i flua. Per a iniciar una conversaci amb el xip XBee, necessitarem enviar el comandament d'inici "+++" i tindrem 5 segons per a enviar totes les comandes que vulguem, passat aquest temps el mode programaci quedar deshabilitat. Totes les comandes que enviem han de comenar pel prefix "AT" seguit de la comanda que vulguem enviar. Tenim la possibilitat de concatenar vries comandes utilitzant la segent sintaxis:
ATRE,AP2,CE0,MY0001,ID1111,CH0C,WR,CN
70
71
MicroSD Shield
El projecte manegar molta informaci voltil per cal buscar algun mtode per poder emmagatzemar aquesta informaci per poder-la tractar posteriorment amb un ordinador i aix tenir ms potncia. El maquinari especfic per poder tractar una targeta SD treballa amb el sistema d'arxius FAT(File Allocation Table) Taula d'Assignaci per Arxius.
Qu s FAT?
s un sistema d'arxius desenvolupat per Microsoft. En un inici va ser creat per a la plataforma MS-DOS i desprs va sser adoptat per la gran majories de sistemes operatius o sistemes d'emmagatzematge com els diskets al principi i avui en dia en llapis de memria USB o targetes de memria.
72
El seu xit va sser la seva simplicitat, el sistema funciona amb una taula com a ndex dels arxius que es volen emmagatzemar. Aquesta taula cont la direcci fsica on es troba el principi de l'arxiu, un cop situat a la direcci s'ha de llegir l'arxiu, aquest a l'hora cont la direcci del segent bloc on es situa la continuaci de l'arxiu, de manera que en cas de no tindre l'arxiu consecutiu el mitj fsic haur d' anar saltant de direcci en direcci per poder compondre l'arxiu necessari. Una dels avantatges ms interessants s el fet de que he pogut trobar una API per suportar la lectura o gravaci d'informaci dins d'una targeta de memria amb un sistema d'arxius FAT, aix em dna un temps essencial dins del projecte. Un cop comprovada aquesta llibreria i els seus avantatges, com la reducci de consum de memria necessria per accedir a la informaci.
73
D'aquesta memria existeixen moltes opcions per comprar, entre elles SD, CompacFlash, SmartMedia i d'altres. Les diferncies estan en la capacitat de les memries, la mida i la velocitat.
74
La mida i el preu d'aquestes targetes va sser molt rellevant per a l' elecci dins del projecte ja que la capacitat no s cap problema per al nivell d'informaci que manegarem. De manera que la combinaci d'una targeta de memria amb un sistema d'arxius FAT s la millor combinaci per al projecte, ara caldr escollir en quin format enregistrar la informaci en un arxiu de text pla.
75
Format CSV
Aquest format ha estat escollit ja que compleix les caracterstiques necessries per a poder sser introdut dins el sistema: Treballa com a text pla s molt senzill Format obert mpliament utilitzat per diferents programaris d'ofimtica. La prdua d'espai s molt baixa
Aquest format representa una taula organitzada les columnes delimitada cadascuna per comes y les files per salts de lnia. Exemple: 1331, sants, 08028, barcelona 1421, les corts, 08014, barcelona 8821, gracia, 08007, barcelona A l'exemple anterior podem veure com hi ha 4 columnes: identificador, barri, codi postal i ciutat. I a l'hora 3 registres o fileres.
76
Sensors:
Donat que els sensors tenen un cost molt car econmicament parlant respecte a la qualitat del projecte he optat per buscar els sensors ms econmics i introduir-los en funcionament dins del projecte. Tamb cal especificar que el posar en funcionament qualsevol d'aquests sensors no implica cap problema mentre que el maquinari tingui suficients ports d'entrada i sortida. Per fer funcionar els sensors noms caldr veure les especificacions tcniques dels fabricants i adaptar el codi per a poder fer una lectura ptima d'aquests. Per veure una variaci de valors per als sensors establir una connexi directe entre els valors extrets dels sensors i els que es visualitzen mitjanant les interfcies del projecte. En un cas real haurem d'establir algun mtode per mantindre una relaci de valors ptima i evitar variacions de voltatge. Els problemes amb les mesures inestables es podrien solucionar fent una mitja dels ltims valors recollits de manera que una variaci dins d'una mesura instantnia no modifiqus substancialment la mesura a visualitzar. Aquest apartat es pot estendre mpliament, agregant sensors i complicant la obtenci de les dades. Tamb seria factible poder fer prediccions ja que salvaguardem la informaci en una targeta de memria no voltil; en tot moment podrem recopilar les mesures antigues i estadsticament parlant podrem extreure prediccions, encara que per la limitaci del temps he pensat que aquest apartat ha de sser 77
ms lleuger ja que els sensors dins del projecte sn les fulles d'un arbre i existeix una necessitat ms gran de tindre unes bases ms consolidades. Un fet a l'hora d'escollir els sensors va sser la seva independncia respecte als altres ja que mentre cercava diferents models i sensors vaig poder observar que la gran majoria dels sensors sn centralitzats en un nucli per a poder estalviar recursos econmics i espai per la meva necessitat implica poder intercanviar qualsevol d'ells independentment de la resta, de manera que si algun dels sensors s'espatlla els altres poden seguir funcionant sense cap problema.
Temperatura:
Per a poder mesurar la temperatura he seleccionat el MCP9700A ja que s molt econmic en comparaci amb els seus rivals. Aquest tamb ens deixa obtindre un gran rang de temperatures, suficients com per determinar una temperatura meteorolgica ja que la major part del globus terraqi tindr una temperatura dins del rang especificat pel fabricant: -40C fins els 125C.
78
Aquest sensor en concret disposa de tres pins: Vin: Entrada de l'alimentaci. Gnd: La presa de terra. Vout: El valor analgic de sortida del sensor. Aquest valor un cop tradut a digital tindr un valor entre 0 i 1023 i mitjanant una presa de dades del voltatge d'entrada del sensor ens podem estalviar errors amb les variacions de voltatge que pot provar el nostre maquinari.
79
80
A partir del sensor s'envia un raig d'infraroig que queda dispersat amb la lent, llavors el PIR espera que aquest raig xoqui amb algun objecte i enregistra el temps en que el raig viatja pel medi; si aquest augmenta significa que els objectes que envolten el sensor han variat. Per a poder complir les especificacions del fabricant el sensor ha d'establir la posici per defecte dels objectes del voltant. Concretament es requereix entre 10 i 60 segons per a que el sensor pugui establir quins sn els temps esttics de l'entorn. Durant aquest temps s recomanable no llegir en cap moment l'entrada digital del nostre maquinari.
Aquest sensor t 3 pins de connexi: Vin: Voltatge d'entrada per al sensor. Gnd: s la presa de terra del sensor. Vout: Voltatge de sortida del sensor, aquest es sita en flanc ascendent per indicar que hi ha algun moviment al seu voltant, de manera que s una sortida digital.
81
Aquest sensor s especialment fabricat per a tindre una funci de vigilncia. Podem detectar el moviment, i encendre les llums, enviar mitjanant Internet algun missatge per advertir dels canvis de moviments, fins i tot es podria arribar a enllaar amb una alarma real provocant encendre les llums o trucar la policia. Aquesta funcionalitat encara fa visionar el projecte com un sistema ms generalista, doncs les possibilitats per a comunicar el mn exterior amb el nostre maquinari son molt grans, una altra funci que pot tindre el sensor PIR seria encendre les pantalles de LEDs noms quan hi hagi alg present a la habitaci aix estalviarem energia mentre ning visualitzi les dades per pantalla.
82
83
Sensor Humitat:
El sensor escollit per mesurar la humitat ha estat el 808H5V5. Les seves caracterstiques: Un baix preu. El voltatge de sortida es modifica segons la variaci de humitat relativa de l'entorn del sensor. Alta precisi. Funcionalitat a llarg termini. Independncia amb d'altres sensors.
El fabricant d'aquest sensor especifica que per obtindre un valor correcte de la humitat em de tindre en compte les variacions que provoca la 84
temperatura sobre el sensor. De totes maneres el rang de fiabilitat del sensor sobre la temperatura encara es situa al mateix mbit que el proporcionat pel sensor de temperatura de manera que les dades en tot moment seran el ms correcte possible.
85
Sensor Fotoresistncia:
Aquests tipus de sensors anomenats LDR (light-dependent resistor) son resistncies capaces de variar segons la llum que te dentrada, aquesta funcionalitat ens dona la possibilitat de calcular el nivell de llum que tenim al voltant del sensor i poder identificar si hi ha un dia totalment nuvolat o clar.
Per a poder utilitzar-lo he necessitat muntar un circuit pull-up ampliar el rang del voltatge de sortida i aix obtindre lescala major possible. Aquest sensor tindr un mxim de 10k ohms per al mercat podem trobar-ne fins 100k ohms. De manera que si hi ha molta llum la resistncia disminueix mentre succeeix el contrari amb poca llum.
86
87
88
89
90
Problemes sorgits:
Problema amb les pantalles:
Com ja s'ha explicat anteriorment va sorgir un problema amb les pantalles de LEDs. Aqu explicar com va sser el procs per identificar l'error i solucionar-lo. Al principi creia que tota la problemtica sorgia quan les pantalles s'apilaven grcies a la funcionalitat del port SPI, per es va veure que tamb existien problemes de refresc amb el cas d'una pantalla individual. Com que les pantalles no funcionaven correctament, i comenava a intuir que les pantalles tenien un problema amb el refresc, ja que, l'ordre de la impressi als leds es modificava. Aix que hem vaig posar en contacte amb el fabricant del programari per a les pantalles, recordo que es el mateix que inserir aquestes una controladora. El contacte amb la tenda va sser rpid, de seguida van mostrar molt d'inters pel meu problema i vaig estar en contacte amb un comercial. Amb aquest comercial varem inspeccionar tant el meu programari com les connexions entre lArduino i les pantalles; com he dit anteriorment aquesta connexi s'establia mitjanant el port SPI i amb els altres components no ha donat problemes.
91
A l'hora i vist que el comercial no hem semblava gran ajuda ja que portvem mitja dotzena de correus i encara no havem identificat el problema vaig comenar a enviar la meva consulta a varies fonts ms: Frums especialitzats amb la temtica Arduino i electrnica, redirigiu-vos a la bibliografia al el link: Arduino Forum - el meu fil Alguns usuaris que havien penjat a Youtube projectes amb les mateixes pantalles (o aix creia). Amb els usuaris de Youtube no vaig tindre molta sort, ja que aviat em varen indicar que les seves pantalles tenien un microprogramari inferior al que jo podia estar manegant. Encara que no em van donar la soluci aquesta diferncia em va fer tornar a contactar amb el comercial de la tenda en lnia per veure si podia tindre algun tipus de relaci el fet de que les meves pantalles no funcionessin exactament com la d'altres usuaris. Aleshores el comercial va iniciar una incidncia amb els tcnics per veure si podia sser un problema seu, poc desprs em van respondre que ells no tenien indicis de tindre cap problema. Fins aquest moment la desesperaci augmentava ja que no avanava el projecte i en cas de quedar-me ms temps aturat amb les pantalles podia crrer el risc de perdre massa temps. El mitj dels frums va donar ms fruits. Poc a poc vaig poder observar com en unes setmanes ms tard hi havien ms usuaris que compartien el mateix problema que jo. En alguns llocs el tema es va tancar rpidament ja que trobar alg que comprs les mateixes pantalles i volgus connectar-les amb lArduino i llegs els mateixos frums era poc probable.
92
Passats els dies alg va llegir un comentari que vaig deixar a la prpia pgina web de la tenda; aquest usuari em va indicar un enlla cap un nou fil de discussi del mateix frum de la tenda on es parlava del problema i aqu finalment s on vaig reafirmar que el problema existia al microprogramari de les pantalles. En aquest mateix moment, vaig augmentar la pressi cap al comercial de la tenda enviant-li un codi molt senzill amb unes imatges molt instructives de com s'hauria de veure per pantalla el resultat d'executar el codi i una imatge amb el resultat real de com es veia a les pantalles. Conjuntament amb uns enllaos dels diferents debats en que vaig anar trobant altres usuaris amb el mateix problema. La resposta al segent dia (tenim una diferncia horria de 7 hores i era difcil coincidir) va sser que enviaria el codi a un tcnic hi ho provarien al taller en real. Passats alguns dies vaig haver de recordar que esperava la seva resposta, cosa que va fer segurament una mica mes gil el procs ja que la resposta no es va fer esperar molt. La seva resposta fou que tenia ra amb el problema i existia un error amb el refresc de les pantalles. Tot semblava tenir soluci reiniciant tot el maquinari per aquesta no s una opci viable quan treballes amb variables voltils. La seva resposta al problema va sser preguntar-me si ja havia trobat jo una soluci: vull fer constar que era jo qui buscava una soluci. De nou vaig haver de posar les cartes sobre la taula, i demanar algun tipus de remei. Aquest cop va sser quan vaig veure que no podia continuar esperant una soluci per aquesta via ja que la meva intenci era arreglar-ho i ells retornar-me els diners (i jo fent-me crrec dels costos d'enviament). 93
Aix que em vaig centrar en la opci dels frums, i aqu es on va sorgir la soluci necessria per arreglar les pantalles, trobareu el fil del frum a lapartat bibliografia el enlla anomenat: Arduino Forum - la soluci Finalment vaig aconseguir el microprogramari en una d'aquelles
interaccions amb el comercial i amb l'ajuda via missatges entre varis usuaris dels frums es va trobar la soluci, o millor dit, es va acabar optimitzant el codi de les impressions per pantalla, eliminant codi i modificant alguns bucles. Ara noms faltaria poder programar les pantalles amb el codi arreglat, aquesta vegada era una soluci tcnica i vaig pensar que no comportaria tants problemes, i un altre cop em vaig equivocar. Grcies a les sospites d'un usuari vaig poder gravar informaci soldant uns pins en una part de les pantalles. Era un alleujament poder torbar alg que tenia les pantalles arreglades i funcionals. Un cop ms vaig donar voltes per Barcelona buscant una manera de no haver de soldar res a les pantalles. Mai havia soldat en xips integrats i no era la meva idea haver de fer-ho. Per desgrcia un altre cop vaig equivocar-me. La planificaci del projecte ja era un alt i baix, vaig haver de prioritzar altres objectius per sobre de les pantalles per a qu quan tingus arreglat el tema de les pantalles poder seguir amb certa velocitat el projecte. He de dir que encara tenia esperances de poder arreglar-les. Tornant a les soldadures, totes les tendes em van denegar la meva proposta de trobar una soluci sense haver de soldar. Aix que vaig haver de recrrer al tutor del projecte per intentar solucionar aquest 94
entrebanc, aix que desprs de concertar la cita amb el tutor es va quedar ell una pantalla per veure si seria factible soldar ja que no hi havia molt d'espai per a fer virgueries. Em va demanar uns pins especials per a poder intentar una soldadura invertida al que seria normal, aix provocaria que els pins s'invertissin i desprs noms tindria un problema molt petit en relaci a tot el que ja s'ha solucionat. A l'hora de la moguda de les soldadures un cop ms tenia tornar a cercar a la xarxa algun tipus de programador capa de gravar a les pantalles el codi que s'ha modificat del microprogramari. Segurament una del les millors eleccions que he pres amb el projecte ha estat diversificar les tendes per tindre diferents provedors de material, i cercant a la xarxa vaig trobar que un d'ells hem va oferir el programador que necessitava. El programador AVR necessari el tenia justament a la venda una de les tendes en lnia que vaig utilitzar al principi del projecte aix que noms va caldre fer la comanda i esperar a rebre el programador (tot i aix no estava 100% segur de que tot funcions). Els mateixos dies que vaig rebre el programador vaig fer una visita per a qu m'ensenys el tutor a soldar les pantalles, una classe molt instructiva que va durar poc ms de 10 minuts, ja que la pilota de les soldadures amb els pins correctes tenia una fcil soluci. Les pantalles van quedar perfectes amb els seus ports de programaci i a ms encara eren apilables, vull dir que fsicament els pins no donaven problemes per a interconnectar les pantalles i aix s'agraa ja que en cas de donar
95
problemes haurem de dessoldar i aquesta no era una opci que trobs gaire interessant. Un cop amb les pantalles i el programador a la m, vaig haver de familiaritzar-me amb el programa que s'encarregaria de compilar el nou microprogramari de les pantalles i enviar-ho al programador per a que aquest alhora programs les pantalles una a una. Quan tot va comenar a funcionar la veritat s que per una part em va donar una gran, molt gran satisfacci per per l'altre banda aquest problema ha suposat moltes hores de treball del projecte, segurament un fet impossible de concebre en un altre entorn. S'ha de dir que en cas de no trobar un cam a seguir (molt cops vaig estar a punt de llenar el projecte per la finestra) tenia un plan B, i era adquirir una pantalla de nmeros de 8 segments per poder visualitzar la informaci que volia. Aquesta opci era la ltima que volia prendre ja que un dels objectius del projecte era fer que el sistema tingus un impacte visible per poder introduir-ho dins de la llar.
Al final no vaig haver d'utilitzar el plan B ja que tot va funcionar com s'esperava des d' un primer moment i un cop vist que amb una mica d'empenta ho he pogut solucionar vaig sentir molta gratificaci.
96
Aquest problema es va solucionar enviant per correu ordinari a la tenda en lnia BricoGeeks aquest xip que tenia un funcionament errtic.
El resultat va ser que en poc menys d'una setmana el xip ja es trobava de tornada a casa ben configurat. El mateix dia vaig poder establir la connexi sense problemes i conseqentment vaig poder enviar dades.
97
El problema sorgiria de l'espai en memria voltil ja que aquesta s'esgotava sense tenir una explicaci evident. Aqu es on vaig trobar la manera de visualitzar quin espai en memria quedava restant, el mtode utilitzat era senzill i bsic. La memria voltil creix en dos sentits del inici en direcci al final stack i en sentit oposat del final fins al inici heap, tenint aquestes dades, podem calcular quina memria til tenim.
98
Si restem aquests dos punters obtenim la memria voltil lliure en bytes que tenim accs. Ara amb aquesta eina, vaig debugar tot el codi per veure on perdia memria disponible. Desprs de danlisis vaig determinar que eren les dades String que perdien informaci. Cercant per la xarxa vaig trobar que el problema era mig resolt ja que a la classe WString no tenia destructor i la memria no s'alliberava correctament, de totes maneres les modificacions descarregades encara tenien un error ja que no setejaven alguns valors de la classe.
99
100
Planificaci:
Planificaci ideal:
Al principi del projecte es va iniciar una planificaci amb la idea de seguir-la per aix finalitzar el projecte en un temps correcte sense tindre moltes complicacions.
Cal a dir que la meva idea ha estat acabar-lo en un quadrimestre i que a ms treballo en una empresa privada i que per tant ha influt el fet de tindre altres projectes en els que treballar. Dit aix, cal afegir que no tots els dies es t el mateix nim ni tampoc es pot previndre si sorgiran imprevists. A ms, cal tenir en compte tamb aquelles variables implcites en les que nosaltres no participem, com per exemple l'espera dels diferents enviaments necessaris que s'han produt per a la construcci del mateix.
101
Altres
Controls Lectura de informacio Compra de components Reunions Tutor 1 01/02/2010 02/02/2010 03/02/2010 04/02/2010 05/02/2010 06/02/2010 07/02/2010 08/02/2010 09/02/2010 10/02/2010 11/02/2010 12/02/2010 13/02/2010 14/02/2010 2 15/02/2010 16/02/2010 17/02/2010 18/02/2010 19/02/2010 3 20/02/2010 4 21/02/2010 22/02/2010 1 23/02/2010 5 24/02/2010 25/02/2010 2 26/02/2010 5 5 27/02/2010 7 28/02/2010
102
Memoria Confeccio memoria 01/03/2010 02/03/2010 03/03/2010 2 04/03/2010 05/03/2010 3 4 06/03/2010 5 07/03/2010 08/03/2010 09/03/2010 3 10/03/2010 3 11/03/2010 3 12/03/2010 2 13/03/2010 3 14/03/2010 2 15/03/2010 2 16/03/2010 17/03/2010 18/03/2010 2 19/03/2010 5 2 20/03/2010 2 21/03/2010 3 22/03/2010 3 23/03/2010 24/03/2010 3 25/03/2010 2 1 26/03/2010 27/03/2010 28/03/2010 29/03/2010 30/03/2010 31/03/2010 1 3
Prototipatge Comunicaci wifi 4 Escriptura SD Comunicaci Ethernet Integarci comunic. wifi i ethernet Integraci wifi i escriptura SD
103
Memoria Confeccio memoria 1 1 5 2 3 3 5 5 3 2 02/04/2010 3 03/04/2010 04/04/2010 05/04/2010 06/04/2010 07/04/2010 08/04/2010 09/04/2010 10/04/2010 11/04/2010 12/04/2010 13/04/2010 2 14/04/2010 4 15/04/2010 2 16/04/2010 3 1 17/04/2010 5 1 7 18/04/2010 2 3 19/04/2010 2 20/04/2010 1 21/04/2010 3 22/04/2010 1 5 23/04/2010 4 24/04/2010 2 25/04/2010 7 26/04/2010 3 2 27/04/2010 1 28/04/2010 29/04/2010 4 30/04/2010
104
Memoria Confeccio memoria 01/05/2010 5 02/05/2010 03/05/2010 3 04/05/2010 3 05/05/2010 06/05/2010 2 1 07/05/2010 2 4 08/05/2010 2 09/05/2010 3 3 3 1 10/05/2010 5 11/05/2010 3 12/05/2010 13/05/2010 4 14/05/2010 1 15/05/2010 4 3 16/05/2010 3 4 17/05/2010 1 18/05/2010 1 19/05/2010 1 20/05/2010 3 1 21/05/2010 4 22/05/2010 1 8 23/05/2010 2 24/05/2010 3 25/05/2010 3 26/05/2010 3 27/05/2010 4 28/05/2010 7 29/05/2010 1 1 8 30/05/2010 1 31/05/2010 2 1 4 1
105
Memoria Confeccio memoria 01/06/2010 1 02/06/2010 03/06/2010 2 2 04/06/2010 3 1 05/06/2010 5 06/06/2010 8 07/06/2010 2 2 08/06/2010 1 4 3 2 3 1 5 3 09/06/2010 10/06/2010 11/06/2010 12/06/2010 13/06/2010 3 3 14/06/2010 5 15/06/2010 2 1 16/06/2010 2 17/06/2010 8 3 18/06/2010 4 19/06/2010 7 20/06/2010 8 21/06/2010 5 22/06/2010 6 23/06/2010 4 2 24/06/2010 2 25/06/2010 7 26/06/2010 7 27/06/2010 1 28/06/2010 29/06/2010 30/06/2010 3 3
106
Problemes de planificaci:
Com era d'esperar, i tot i haver intentat prevenir-los, han aparegut imprevistos, alguns dels quals ha resultat impossible trobar solucions rpides per accelerar el projecte.
A pesar dels problemes que han existit, majoritriament s'han anat solucionant o variant objectius que m'han perms valorar d'altres coses. Un altre factor determinant en el projecte ha estat l'augment de la dificultat ja que a mesura que el projecte avanava, s'anaven perfilant coses molt diferents a la idea original.
En aquest punt i vist ja tot el succet, opino que aquest projecte es per a dedicar-hi molt ms temps personal degut a que les opcions i les bases sobre les que s'ha establert el projecte sn suficientment fortes y fiables com per crear un producte d'aquest.
Tot i que la idea inicial segueix present, em trobo amb que partint d'una estaci meteorolgica s possible que hagus acabat sent un centre de domtica i de control de la llar.
De manera que en el projecte, tot i complicar-se per prpia elecci, s'han creat unes bases slides per poder creure en un projecte prou fort.
107
Planificaci real:
Tot i els problemes generals que han sorgit i sobretot, a pesar del ms determinant, el relacionat amb les pantalles, s'han arribat als objectius tenint complicacions i trobant solucions.
Per a poder finalitzar el projecte a temps s'han hagut de modificar la temporalitat i el moment d'inici de vries tasques per tal d' arribar amb el projecte el ms avanat possible per quan arribessin les solucions per a alguns dels problemes sorgits durant la duraci d'aquest. Al final de tot les hores utilitzades per al projecte seran unes 534 sense comptar daltres que no he apuntat quan de temps he dedicat al projecte.
108
Altres
Controls Lectura de informacio Compra de components Reunions Tutor 2 01/02/2010 02/02/2010 03/02/2010 2 04/02/2010 3 05/02/2010 1 06/02/2010 07/02/2010 1 3 08/02/2010 1 09/02/2010 10/02/2010 1 1 11/02/2010 1 12/02/2010 13/02/2010 14/02/2010 2 15/02/2010 16/02/2010 17/02/2010 18/02/2010 19/02/2010 3 20/02/2010 4 21/02/2010 22/02/2010 1 23/02/2010 5 24/02/2010 25/02/2010 2 26/02/2010 5 5 27/02/2010 7 28/02/2010
109
110
Memoria Confeccio memoria 01/03/2010 02/03/2010 03/03/2010 2 04/03/2010 3 05/03/2010 4 06/03/2010 5 07/03/2010 08/03/2010 3 09/03/2010 10/03/2010 3 11/03/2010 2 3 12/03/2010 13/03/2010 3 14/03/2010 2 15/03/2010 2 16/03/2010 17/03/2010 18/03/2010 2 19/03/2010 5 2 20/03/2010 2 21/03/2010 3 22/03/2010 3 23/03/2010 24/03/2010 3 25/03/2010 2 1 26/03/2010 27/03/2010 28/03/2010 29/03/2010 30/03/2010 31/03/2010 1 3
Prototipatge Comunicaci wifi 4 Escriptura SD Comunicaci Ethernet Integarci comunic. wifi i ethernet Integraci wifi i escriptura SD
111
Memoria Confeccio memoria 1 1 5 2 3 3 5 3 2 02/04/2010 03/04/2010 04/04/2010 05/04/2010 06/04/2010 07/04/2010 08/04/2010 09/04/2010 10/04/2010 11/04/2010 12/04/2010 2 13/04/2010 14/04/2010 2 15/04/2010 3 16/04/2010 5 17/04/2010 2 18/04/2010 5 19/04/2010 5 20/04/2010 7 3 21/04/2010 22/04/2010 23/04/2010 24/04/2010 8 25/04/2010 3 26/04/2010 6 27/04/2010 2 6 28/04/2010 29/04/2010 6 30/04/2010
Prototipatge Comunicaci wifi Primeres proves pantalles Error amb les patalles
112
Memoria Confeccio memoria 4 5 01/05/2010 1 02/05/2010 03/05/2010 3 04/05/2010 2 05/05/2010 1 3 06/05/2010 1 5 07/05/2010 2 6 08/05/2010 3 4 2 09/05/2010 1 3 10/05/2010 5 11/05/2010 12/05/2010 5 1 13/05/2010 6 5 14/05/2010 4 3 15/05/2010 1 3 16/05/2010 1 4 17/05/2010 2 18/05/2010 1 19/05/2010 3 2 1 20/05/2010 4 4 21/05/2010 2 22/05/2010 2 8 23/05/2010 4 24/05/2010 6 25/05/2010 3 26/05/2010 3 27/05/2010 4 28/05/2010 6 29/05/2010 1 1 2 30/05/2010 1 31/05/2010 2 4 1 1
Prototipatge Comunicaci wifi Proves amb sensors Error amb les patalles
113
Memoria Confeccio memoria 3 1 1 01/06/2010 4 02/06/2010 2 03/06/2010 1 04/06/2010 05/06/2010 06/06/2010 8 2 2 07/06/2010 3 5 08/06/2010 09/06/2010 2 10/06/2010 3 3 1 11/06/2010 5 2 12/06/2010 2 2 5 13/06/2010 5 1 14/06/2010 2 3 1 15/06/2010 2 16/06/2010 8 3 2 17/06/2010 4 1 1 18/06/2010 9 2 19/06/2010 6 6 20/06/2010 6 21/06/2010 1 22/06/2010 23/06/2010 24/06/2010 25/06/2010 26/06/2010 27/06/2010 2 4 28/06/2010 29/06/2010 30/06/2010 4 3 3 2 2 5 7 1 3 2 4 3 2 1 4 5 2
114
Valoraci econmica:
En aquest espai valorarem quins costos i quins beneficis podem extreure del projecte, ens basarem en varis apartats bsics que identifiquen una evoluci econmica del projecte des del principi daquest. Primerament identificarem quins sn els rols que es necessiten per portar a terme el projecte. Daquesta manera podrem observar quin s el paper de cadascun i la temporitzaci dels mateixos.
Tcnic de gesti: Necessitarem lesfor per part dun tcnic de gesti per poder programar el sistema. Per a trobar aquest perfil no tindrem cap problema ja que el llenguatge s mpliament utilitzat a lactualitat. Lencarregat daquest rol ha de tenir en compte que el treball es produeix en un entorn de 115
Tcnic de sistemes: Aquest rol ser lencarregat de fusionar les diferents tecnologies i poderles posar en funcionament. D'aquesta manera que al final obtindrem la construcci d'un prototip que uneix tots els objectius mencionats al projecte i que a ms est fet amb tot el maquinari especificat per lanalista.
Material necessari:
Durant tot el projecte ja hem especificat en varies ocasions quin s el material necessari per a construir aquest prototip. En aquest apartat mencionarem els preus de cadascun dels materials, de totes maneres teniu accs a les factures rebudes al annex anomenat Factures. Cantitat 1 1 1 1 1 3 1 1 4 1 1 1 Producte Sensor Temperatura Sensor LDR Sensor PIR Sensor Humitat 808H5v5 Modul MicroSD 2Gb Arduino ZigBee Pack Arduino Ethernet Shield Kit Programador USB AVR LED MATRIX SPI RGB Metracrilat Capces Cables
Cost enviaments Sparkfun.com BricoGeeks.com Libelium
Preu 2,50 2,00 14,00 15,00 20,00 143,00 37,70 18,44 48,73 34,00 7,00 10,00
Total 2,50 2,00 14,00 15,00 20,00 429,00 37,70 18,44 194,92 34,00 7,00 10,00
116
En total el preu del material augmenta fins als 859,27 amb IVA , cal dir que en cas de produir aquest prototip a una major escala els preus dels materials amb tota seguretat es pot afirmar que baixarien per a poder ser ms competitius i tenir ms marge de benefici.
Cost m dobra:
Un cop sabem quins perfils actuaran al projecte i quin material necessitarem, amb la informaci donada per la planificaci temporal podem valorar quin cost ens afegeix el temps de treball dels integrants del projecte. En una aproximaci he establert el cost de cada rol amb els segents preus: Analista: 50 la hora Tcnic programador: 20 la hora Tcnic de sistemes: 20 la hora
Si portem aquets preus a la planificaci i la dividim segons convingui els temps segons el que convingui per a cada rol tindrem que: Analista: 63 hores Tcnic programador: 211 hores Tcnic de sistemes: 260 hores
117
Analista: 50 * 63 hores = 3.150 Tcnic programador: 20 * 211 hores = 4.220 Tcnic de sistemes: 20 * 260 hores = 5.200
118
El prototip: Si fem els clculs apropiats obtindrem el cost del propi prototip. Aquest cost vindr donat per: el cost del material i el cost de la m dobra. Cost del material: 859,27 Cost de la m dobra: 12.570
En total el prototip ens costar 13.429,27 . El cost de les 100 primeres unitats: Per arribar a aquest preu he hagut de contactar amb algun provedor i ens han ofert fins a un 10% de rebaixa del cost inicial dels materials, de manera que ho utilitzarem en global per fer una aproximaci daquest cost. Com he dit anteriorment amb el cost dels rols, no existeix el cost del analista ni el programador ja que aquest treball ja est fet. Noms necessitarem algunes hores del tcnic de sistemes per a muntar tot el sistema. Com que aix redueix molt el cost final del producte, per estipular com seria la construcci de les 100 primeres unitats, hem recalculat les hores en cas de que no hagus sorgit cap problema. Cost material: un 10% de 859.27 es 773.34 Cost m dobra: o Tcnic de sistemes: 20 * 5 hores per unitat es 100 Cost total de les primeres 100 unitats s igual a la suma dels costos anteriors multiplicats per 100, que dna un total de 87.334 119
Els beneficis La intenci s extreure uns beneficis del projecte per valor de 40.000, aix que si el cost total del prototip i les 100 primeres unitats s de 100.763,72 ms el benefici que es requereix, 40.000 , ens surt un cost total del producte amb benefici de 14.0763,72
Preu per unitat Si tenim el preu final de 14.0763,72 del projecte, incloent-hi beneficis, i ho hem de repartir entre 100 unitats, aix significa que el cost de cada unitat s de 1.407,64
120
Conclusions:
Un cop acabat el projecte podem extreure algunes conclusions. La principal reflexi a la que he arribat actualment s fruit de la comparaci entre el nivell de complicaci al que ha arribat el projecte i fins on m'hagus agradat arribar. Ara penso que el projecte hagus estat ms adequat realitzar-lo en parella ja que hi ha molt de treball possible al projecte. Si ens posem a analitzar detalladament les Ampliacions realment veiem que hi ha moltes coses que encara segueixen sent objectes de millora, i la culpa d'aquest fet es pot atribuir a la falta de temps.
De totes maneres estic orgulls del producte final al que s'ha arribat amb el projecte, ja que cont les bases slides per fonamentar un projecte que pot arribar a ser molt ambicis i complex en el cas que s'incloguessin tots els objectius que inicialment em vaig establir.
s possible que aquests objectius fossin massa generalistes, i per tant especialitzar-se en una part del projecte hagus estat ms convenient per a no haver de dedicar tants recursos i temps extra.
De totes maneres el poder treballar amb lArduino m'ha perms interaccionar molt amb el mn del codi lliure i poder observar i valorar tot el treball que es fa desinteressadament. D'altra banda he pogut endinsar-me ms profundament en el mn del maquinari ja que sempre m'he mogut en un mbit ms proper al programari. Aquesta visi m'ha 121
fet comprendre amb ms exactitud la ra del perqu utilitzar un microcontrolador en casos on el treball del computador sigui molt limitat o acotat.
Al mateix temps, tot el programari realitzat per al projecte m'ha fet entendre una programaci a ms petita escala on els recursos sn molt limitats degut a que no tens ni un processador tant potent ni unes memries tant grans com les que tenen els ordinadors d'avui en dia.
122
Ampliacions:
Per expressar-ho breument i clarament: el lmit de les amplificacions del projecte existeix on finalitza la imaginaci del programador i del dissenyador del projecte.
Existeixen infinituds de possibles aplicacions on el projecte tindria sortida, per en aquest cas s'ha hagut de limitar a causa del redut espai de temps de treball del que disposava; amb ms temps s'hagus pogut fer crixer el projecte per molts llocs.
Ara enumerar alguns dels objectius ms importants per realitzar en cas que es volgus ampliar el projecte:
En primer cas s imprescindible fer del node que cont els sensors un sistema molt ms economitzador en relaci amb el cost d'electricitat ja que fins ara no ens em proposat cap objectiu relacionat amb l'estalvi de la llum. Aquest node podria estar alimentat per una placa fotovoltaica i una bateria en condicions ptimes. D'aquesta manera podrem oblidar-nos d'haver de canviar cap bateria ja que seria totalment independent. Per a millorar aquesta part del projecte seria recomanable investigar sobre el mode "sleep" del XBee ja que si eliminem aquest cost que ens genera la xarxa sense fils podrem estalviar molta energia.
Connexi amb ms sensors: Al mercat hi ha tants sensors com es vulgui, com per exemple sensors de gasos per a determinar quin
123
tipus de gas hi ha al voltant, sensor de pressi atmosfrica i d'altres. Estadstiques: Sent tant factible poder obtenir moltes dades s una pena que no hi hagi temps per fer alguns algoritmes que puguin estipular o preveure alguns factors com l'estat del temps. Ms interconnexi amb la llar; Sobre aquest tema tamb seria factible poder interconnectar aparells electrnics com la calefacci o l'aire condicionat per a poder modificar les configuracions via web. D'altra banda, tamb es podria apujar les persianes o abaixar-les segons el gust del consumidor; o es podria fer un algoritme que determins l'alada de les persianes segons les hores, la temperatura o la lluminositat del sol. De la mateixa manera les llums tamb podrien sser un factor susceptible a modificar-se a distncia des de lArduino . Per a tots aquests casos tamb existeix la possibilitat d'ampliar el sistema amb un node capa de rebre missatges de text amb la xarxa GSM de telefonia mbil. Centraleta de seguretat: l'objectiu del projecte tamb podria haver estat la destinaci a una centraleta de seguretat. Entre sensors de moviment PIR, sensors de gas per a la cuina, sensors d'obertures de portes o finestres, i sensors d'aigua per als serveis, es podria haver construt una alarma prou precisa com per estar tranquil quan no es troba ning a casa ja que com hem pogut veure durant tot el projecte els mtodes destinats a la comunicaci amb el sistema sn molt nombrosos: des d'un compte a Twitter, possiblement des del correu electrnic o fins i tot amb missatges de text al mbil entre d'altres. Augmentar el nombre de nodes, d'aquesta manera podem tenir ms zones per a controlar. 124
Augmentar el nombre de pantalles, aix es t la possibilitat d'augmentar la complexitat de la interfcie de pantalla. Provar lArduino amb una pantalla tctil per a fer una interfcie ms semblant a un mbil. Una possible ampliaci podria ser inserir un control d'accs per a les dutxes de la llar. Amb aquesta aplicaci es podria identificar qui i quan ha accedit a la dutxa i tenir un comptador del flux d'aigua per saber quant ha gastat cadasc (d'aquesta manera es posaria fi a la tpica discussi familiar sobre el malbaratament de l'aigua). Existeix la possibilitat d'utilitzar unes llibreries per a lArduino per a que es puguin comunicar amb DNS (Domain Name Server) servidors de noms i DHCP (Dynamic Host Configuration Protocol) protocol dinmica de configuraci de host. El primer dels dos serveis s'utilitza per a traduir direccions IP en noms de domini intelligibles per als ssers humans, i l'altre t la funcionalitat de tindre una transmissi amb un servidor per obtenir automticament la direcci IP assignada per aquella targeta de xarxa, actualment al projecte aquesta IP s'assigna manualment.
125
Bibliografia:
Generals:
SPI: http://ca.wikipedia.org/wiki/Serial_Peripheral_Interface Creative commons: http://creativecommons.org/licenses/by-sa/2.5/deed.ca GNU: http://creativecommons.org/licenses/GPL/2.0/deed.es GPL: http://es.wikipedia.org/wiki/GPL Compiladors: http://es.wikipedia.org/wiki/Compilador WinAVR: http://winavr.sourceforge.net/ AVR_GCC: http://www.avrfreaks.net/wiki/index.php/Documentation:AVR_GCC AVR_GCC: http://code.google.com/p/arduino/ AVR_libc: http://www.nongnu.org/avr-libc/ Llibreries: http://es.wikipedia.org/wiki/Biblioteca_%28inform%C3%A1tica%29
126
Arduino:
Web oficial: http://arduino.cc/ Frum oficial: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl Arduino Duemilanove: http://arduino.cc/en/Main/ArduinoBoardDuemilanove Wikipedia arduino: http://es.wikipedia.org/wiki/Arduino http://en.wikipedia.org/wiki/Arduino Esquema circuits: http://arduino.cc/en/uploads/Main/arduino-duemilanove-schematic.pdf
Pantalles:
Web producte:
http://www.sparkfun.com/commerce/product_info.php?products_id=760
Ethernet Shield
Codi exemeple: http://www.arduino.cc/en/Main/ArduinoEthernetShield Web del producte:
http://www.libelium.com/tienda/catalog/product_info.php?products_id=72 Llibreria: http://arduino.cc/en/Reference/Ethernet
127
XBee
ZigBee: http://en.wikipedia.org/wiki/ZigBee Xarxa en malla: http://ca.wikipedia.org/wiki/Xarxa_en_malla Primers passos amb XBee:
http://trikinhuelas.com/wp-content/uploads/2008/05/arduino-xbee-primerospasos.pdf
MicroSD Shield:
Targetes de memria: http://es.wikipedia.org/wiki/Tarjeta_de_memoria Memria flash: http://es.wikipedia.org/wiki/Memoria_flash CSV: http://es.wikipedia.org/wiki/CSV Com muntar MicroSD Shield: http://www.sensor-networks.org/index.php?page=0827727742
Sensor Temperatura
Web del producte: http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en0 27103 Datasheet: http://ww1.microchip.com/downloads/en/DeviceDoc/21942e.pdf 128
Sensor Humitat:
Web del producte:
http://www.libelium.com/tienda/catalog/product_info.php?products_id=78
Datasheet: http://www.libelium.com/squidbee/upload/9/95/Humedad-808H5V5.pdf
Sensor LDR
Web del producte:
http://www.libelium.com/tienda/catalog/product_info.php?products_id=77
Datasheet: http://www.libelium.com/tienda/catalog/images/arduino/LDRDatasheet.pdf
129
Atmega 328P
Web del producte:
http://www.atmel.com/dyn/products/product_card.asp?PN=ATmega328P Datasheet: http://www.atmel.com/dyn/resources/prod_documents/doc8271.pdf Datasheet resum: http://www.atmel.com/dyn/resources/prod_documents/8271S.pdf
130
Annexos
Conversaci de correus Electronics amb amb Sparkfun:
La conversaci es establerta entre Ramon Balaguer de color blau i en vermell un comercial de la tenda de ventes online Sparkfun.
1) Tech Support
Hello, Have you tried using the example code we have posted on the product page for this device? http://www.sparkfun.com/commerce/product_info.php?pr oducts_id=760 http://www.sparkfun.com/Code/RGBMatrixBackpackSketc h.zip Does that work? When you initially power the device on, does it go through a start-up sequence showing Red, Green, Blue and then a smiley face?
2) Hello,
I see these colors but not see any smiley face I connect this pins: GND -> GND VCC -> 5V MOSI -> 11 CS -> 10 SCLK -> 13
3) Hi,
I forgot to mention that that should come after the smiley face. The fact that you're not seeing the first part of the start-up sequence, though, is very strange. Have you tried the Arduino code that's on the product page (linked below)? http://www.sparkfun.com/Code/RGBMatrixBackpackSketc h.zip If that doesn't work, I'm not sure what else to suggest. Do you have an AVR programmer? I could send you the firmware to load onto there. Otherwise, would you be OK with sending the LED matrix back for testing and
131
replacement? Unfortunately, we'd have to check it out before we could give you a replacement. Let me know if you have any further questions or concerns.
4) This is my video http://www.youtube.com/watch?v=zsgOxhxK7Ww , see when connect arduino to usb, with this codehttp://www.sparkfun.com/Code/RGBMatrixBackpackSketch.zip
No Smiley :S why do I need AVR programmer??? i don't have any programmer, is posible use Arduino?? http://tinker.it/now/2006/12/04/turn-arduino-into-an-avr-ispprogrammer/ Hello, Hmm, the video must be set to private, I can't see it. Does that code do anything though? The AVR on this board doesn't have a serial bootloader, so it's not possible to program it over the serial pins like you would an Arduino. my problem is the firmware? then i have 2 posibilities? send 4 matrix to Sparkfun, but this send is more expensive. buy AVR programmer.
5) Hi Ramon,
I'm honestly not sure. I really don't think the problem is firmware if all four show the same issue. I'm going to try to get this to the attention of the engineer of the serial matrix, as I'm at somewhat of a loss. I'll also try your code on a few displays out of stock and let you know if I experience the same issue. I'll let you know what I hear from the engineer. I'm very sorry for the inconvenience. Let me know if you have any further questions or concerns.
This project is for university and is very important for me. I know nobody, who does works some screens. The forums have same questions, realy works with new Matrix version? 132
One question this pin: #define DATAIN 12//MISO / DO what function it is? If any time we find solution, I'll put your name in the memory of the project!! sorry, i send my code, please test on the serial matrix with engineer and push RESET some times... Thanks!
7) Thanks, Ramon. I'll try to get this tested out today and I'll get back to you as soon as I can with the results.
I can assure you that the matrices should definitely work with the new firmware. Hi Ramon, Sorry for the slow reply. I've tested your code on two known working displays, and I think I'm seeing the same thing you are. On the first start up the first display is all blue, and the second is all green. If I hit reset on the Arduino, I get something similar to what you described in your forum post. However, if I interrupt power to both the matrices and the Arduino, and then plug the power back in, it goes to the normal display. It really doesn't seem like anything is wrong with your code. I'm beginning to believe this is a problem with the firmware of all of these displays. Is there any way you can work around this issue by cycling power to the displays, rather than just resetting the Arduino?
8) Hi Jim!!
I'm happy, if you reproduce my problem, it mean i not am crazy. I have only a solution: power arduino off and matrix :( but i have one theory: I think this instruccion does not work: digitalWrite(CHIPSELECT,HIGH); for example: if you push reset into bucle between CHIPSELECT LOW and CHIPSELECT HIGHT, the screen continue from here (not finaly 64bits), do you understand me?
133
9) Hi Jim.
I need one solution, because I have 4 matrix ( 240$ ) and not works :(
10) Hi Ramon,
I'm really sorry for not having gotten back to you for so long. I'm honestly stumped at this point. Is it not an option for you to cycle power to the system, rather than pressing the reset button? I really think the power to the matrix needs to be reset every time. I will also forward this on to the engineer to see if he can provide more insight into this situation. I'll forward along anything I get from him. Let me know if you have any further questions or concerns.
11) Is imposible, power off because then i lost variables!!! and status.
You sell an matrix that does not work, you ought to return the money :(
134
Factures: Libelum.com
Pedido Num. 1699
Fecha del Pedido: lunes 15 febrero, 2010 Total del Pedido: 203.58EUR
Direccin de Entrega Ramon Balaguer Altadill 46985746N Sants 146 3-1 Barcelona 08028 - Barcelona, S Gastos de Envo Servicio Urgente (Envo en 24/48h para ES : 0.45 Kg) Datos de Facturacin Direccin de Facturacin Ramon Balaguer Altadill 46985746N Sants 146 3-1 Barcelona 08028 - Barcelona, S Forma de Pago PayPal
Producto 1 x Sensor Temperatura 1 x Modulo MicroSD 2Gb para Arduino 2 x Arduino ZigBee Pack (802.15.4 Version)
- Accesorio: Cable USB - Complemento: Adaptador USB-220V
Subtotal: 165.50EUR : 26.48EUR Servicio Urgente (Envo en 24/48h 11.60EUR para ES : 0.45 Kg): Total: 203.58EUR
135
Direccin de Producto Entrega 1 x Sensor de Humedad 808H5V5 Ramon Balaguer 1 x Sensor LDR Altadill 46985746N 1 x Arduino ZigBee Pack (802.15.4 Sants 146 3-1 Version) Barcelona - Complemento: USB-Car & USB-220V 08028 - Barcelona, S - Accesorio: Cable USB Gastos de Envo 1 x PIR Sensor Servicio Urgente (Envo en 24/48h para ES : 0.29 Kg) Datos de Facturacin Direccin de Facturacin Ramon Balaguer Altadill 46985746N Sants 146 3-1 Barcelona 08028 - Barcelona, S Forma de Pago PayPal
14.00EUR
Subtotal: 108.00EUR : 17.28EUR Servicio Urgente (Envo en 24/48h 11.60EUR para ES : 0.29 Kg): Points Redeemed: -3.69EUR Total: 133.19EUR
136
BricoGeek.com
Comanda: 002129
137
Comanda: 002571
138
Sparkfun.com
Comanda: 192102
139