scieee Open visual document viewer

Desarrollo de una librería en MicroPython para el manejo de una pantalla táctil

Martín Jiménez, Danny

Abstract

El proyecto sobre el que vamos a tratar consiste en la elaboración de una librería , un documento donde se reúnen diversas funciones con el fin de ayudar a futuros programadores para que no tengan que realizar de nuevo las fu nciones ya declaradas, en el entorno de programación MicroPython. Se verá además las ventajas e inconvenientes que nos presenta el lenguaje mencionado, además de la pantalla táctil empleada sobre la que se ha trabajado y elaborado la librería El objetivo de este documento es por un lado servir como complemento al código desarrollado, como por otro parte explicar y desarrollar los posibles usos al igual que los motivos por los que fueron elegidos el modelo de microcontrolador y pantalla en torno a los cuale s se ha elaborado el proyecto.

Full text

Equa ion Chap e 1 Sec ion 1 P oyec o Fin de G ado Ingenie ía Elec ónica, Robó ica y Meca ónica Desa ollo de una Lib e ía en Mic oPy hon pa a el Manejo de una Pan alla Tác il Au o : Danny Ma ín Jiménez Tu o : Manuel Ángel Pe ales Es e e Dp o. Teo ía de Ingiene ía Elec ónica Escuela Técnica Supe io de Ingenie ía Uni e sidad de Se illa Se illa, 2019 P oyec o Fin de G ado iii Ingenie ía de Elec ónica, Robó ica y Meca ónica Desa ollo de una Lib e ía en Mic oPy hon pa a el Manejo de una Pan alla Tác il Au o : Danny Ma ín Jiménez Tu o : Manuel Ángel Pe ales Es e e P o eso Con a ado Doc o Dp o. de Ingenie ía Eléc ica Escuela Técnica Supe io de Ingenie ía Uni e sidad de Se illa Se illa, 2019 P oyec o Fin de G ado: Desa ollo de una Lib e ía en Mic oPy hon pa a el Manejo de una Pan alla Tác il Au o : Danny Ma ín Jiménez Tu o : Manuel Ángel Pe ales Es e e El ibunal nomb ado pa a juzga el P oyec o a iba indicado, compues o po los siguien es miemb os: P esiden e: Vocales: Sec e a io: Acue dan o o ga le la cali icación de: El Sec e a io del T ibunal Fecha: A mi amilia ii A mis maes os ix Ag adecimien os n es de inicia el desa ollo del p oyec o me gus a ía dedica unas palab as a mi amilia, a mi pad e, mi mad e y mis dos he manos, po odo el apoyo que me han dado du an e los años de ca e a, al igual que el apoyo económico que han ealizado. También me gus a ía alo a a odos los compañe os que he enido du an e el g ado, en especial a mis amigos, g acias a ellos he podido a on a y supe a cada obs áculo que se ha p esen ado en el la go camino has a aquí. Finalmen e deseo ag adece de co azón a odo el magní ico p o eso ado que he podido dis u a , y que siemp e han enido iempo pa a a ende mis necesidades y dudas, y los que an as cosas me han enseñado, no solo en el ámbi o de la ca e a sino ambién en pe sonalidad, ayudándome así a se mejo pe sona. Danny Ma ín Jiménez Se illa, 2019 A 4.4 P uebas ealizadas 60 5 Conclusiones 61 6 Anexo 62 6.1 Lib e ía comple a 62 Re e encias 80 Índice de Concep os 83 Glosa io 84 x ii ÍNDICE DE TABLAS Tabla 2-I: P esupues o del p oyec o [10] 31 Tabla 4-I: Ope ado es empleados 41 Tabla 4-II:Función de colo 50 xix ÍNDICE DE FIGURAS Figu a 1-1: Anuncio p ime o denado ác il [1] 23 Figu a 1-2: PDA New on [2] 24 Figu a 1-3: IBM elé ono in eligen e [3] 24 Figu a 1-4: Nin endo DS [4] 24 Figu a 1-5: Windows XP Table Edi ion [5] 24 Figu a 1-6: Funcionamien o pan alla capaci i a [6] 26 Figu a 2-1: ESP32 Ada ui [8] 29 Figu a 2-2: Pan allas ác iles se ie FT800 [9] 30 Figu a 3-1: Logo ipo de Py hon [11] 33 Figu a 3-2:Página p incipal Py hon [12] 34 Figu a 4-1: Placa ESP32 [13] 38 Figu a 4-2: Visualización de las Teclas [14] 52 Figu a 4-3:Sc ollba asociado al ejemplo [15] 56 xxi No ación < Meno o igual > Mayo o igual 1 INTRODUCCIÓN Hoy en día es amos muy acos umb ados a e po odas pa es pan allas ác iles, y cada ez lo analógico se a iendo supe ado po lo digi al. Pe o la mayo ía de las pe sonas desconocen cuándo y cómo su gió el uso de las pan allas de es a o ma, y mucho menos a quién hemos de ag adece po an ú il in en o. Necesi amos i nos has a la época de los sesen a, más conc e amen e en o no a los años 1965 y 1967, pa a encon a nos con lo que se ía la p ime a pied a pa a la c eación de las pan allas ác iles de hoy en día. En aquellos años un in en o b i ánico, E.A. Johnson, comienza a esc ibi una se ie de a ículos en los que desc ibía una pan alla ác il capaci i a. O iginalmen e su idea consis ía en aplica es a ecnología al con ol aé eo, pe o no log ó esul ados y acabo abandonando su es udio. El siguien e paso no ue ealizado has a los se en a, cuando po in se pa en a el concep o de pan alla ác il a manos del doc o Geo ge Samuel Hu s al log a c ea la p ime a in e az elec ónica ác il en 1971, g acias al senso “Touch” bajo el nomb e de “Elog aph” 1 . No ue has a 1975 cuando Es ados Unidos, su luga de nacimien o, le concede la pa en e y empieza su desa ollo a mayo escala con la ayuda de Elog aphics, una emp esa que el mismo había c eado. A pesa de ello aún había un g an camino que eco e pue la pan alla en aquel momen o no e a anspa en e, pe o eso no la p i o de se mencionada como uno de los cien p oduc os ecnológicos más impo an es de la época en 1973. Demos ando que desde los inicios se io el po encial que pod ía llega a se es a ecnología. Al con a io que E.A.Johnson, el doc o Samuel Hu s siemp e había enido la in ención de con e i aquella ecnología en un mé odo pa a lee la in o mación de una o ma más ácil, y eso es lo que le hace saca al me cado la p ime a pan alla esis i a ác il po 1982, comenzando así la ca e a en el me cado de que emp esa da ía con la ecla de inco po a a sus p oduc os es a ecnología. Un año después, en 1983, sale al me cado el p ime o denado come cial con ecnología ác il en su pan alla de la mano de Hewle -Packa d bajo el nomb e de HP-150, en la siguien e imagen podemos obse a el anuncio que se ealizó en aquel año pa a p omociona lo. Es e o denado con aba con un ingenioso sis ema que de ec aba los obje os no anspa en es en la pan alla a a és de un sis ema de ansmiso es y ecep o es in a ojos. Ese sis ema no pod ía conside a se una ecnología ác il como al sino más bien óp ica pe o aun así los his o iado es le dan el hono de se la p ime a ez que la ecnología ác il llegaba de o ma come cial, y como es lógico al se la p ime a aquella e sión enía muchos 1 Emp esa ac ualmen e conocida bajo el nomb e de Elo Touch Solu ions o ELO pa a ab e ia . Figu a 1-1: Anuncio p ime o denado ác il [1] In oducción 24 incon enien es, como la necesidad de una limpieza minuciosa, y p on o se io desplazada y mejo ada. En los no en a, más conc e amen e en 1993, la emp esa Apple lanzo al me cado la p ime a PDA ác il llamado New on y pese a su poco éxi o come cial ue la p ecu so a de la inco po ación de es a ecnología a disposi i os mó iles y o os disposi i os de mano, su giendo po ello los p ime os sma phones. Además con aba con econocimien o de esc i u a en la que además se inco po aba un lápiz ác il. En el mismo año IBM lanzó el p ime elé ono in eligen e, sin ningún bo ón y con más unciones que simplemen e llama , con aba con unciones de calenda io, bloc de no as, beepe 2 , y has a una PDA y máquina de ax, odo ello mos ado en su pan alla ác il. T as sali al me cado bajo el nomb e IBM Simon ue ápidamen e qui ado de la en a po a ios meses po p oblemas de so wa e, pe o as ol e es u o en ci culación po dos años, cuando dejó de ende se po culpa de su ele ado p ecio y su ba e ía, la cual enía una escasa du ación y no pe mi ía al disposi i o goza de mucha au onomía. T as el acaso de su PDA New on, Apple dejó el sec o y apa eció Palm, en 1996, con su se ie Pilo , inco po ando nue as ecnologías ác iles que dejaban obsole as las an e io es e siones que habían salido has a la echa, eniendo así un nue o sal o en es a ecnología y comenzando una ca e a en e las emp esas pa a da al consumido no edades que deja an a la compe encia como p oduc os an iguos. 2 Más conocido como buscape sonas o mensá ono. Figu a 1-5: Windows XP Table Edi ion [5] Figu a 1-4: Nin endo DS [4] Figu a 1-2: PDA New on [2] Figu a 1-3: IBM elé ono in eligen e [3] Ya en ados en el siglo XXI la emp esa Mic oso lanzo en 2002 Windows XP Table Edi ion, que se ía el inicio de la g an in luencia de las ecnologías ác iles en pequeños disposi i os elec ónicos, has a lo que enemos hoy en día, donde ya el oco dejo de se an o la pan alla pa a cen a se en los p ocesado es y el amaño de los componen es. O o hecho no able que aumen ó la popula idad de es a ecnología ue la salida al me cado, en 2004, po pa e de la compañía de Nin endo de la Nin endo DS, a pa i de la cual odas las consolas po á iles de es a compañía has a la ac ualidad han p esen ado pan allas ác iles. Aunque el mayo boom sin duda alguna se p odujo en 2007 g acias a Apple, que al con a io que la an e io ez u o éxi o con la come cialización del p ime IPhone que ompía con el canon de los mó iles has a el momen o al consis i exclusi amen e de la ecnología ác il y la pan alla, sin ningún bo ón. Hoy en día aún se puede ap ecia lo impo an e que ue es e acon ecimien o pues odos los sma phones que se en consis en en un modelo simila , incluso se nos hace a o ya encon a algún disposi i o mó il con bo ones analógicos. 1.1 Técnologías de las pan allas ác iles En es e apa ado se desa olla an los di e en es ipos de pan allas ác iles que exis en en la ac ualidad, así como se explica an las di e encias y los di e en es usos de cada una de ellas. 1.1.1 Resis i as Es e ipo de ecnología ác il consis e en un diseño de a ias capas, pe mi iendo que cuando el usua io oque una zona de la pan alla alguna capa se ponga en con ac o con o a iden i icando así la pulsación co espondien e, g acias a que in e namen e se p oduce un cambio en la esis encia, y po an o en la co ien e eléc ica. El p oblema como se puede obse a a simple is a es el iempo de eacción, es deci , la espues a es más len a y además en un inicio incapaz de de ec a múl iples pulsaciones al mismo iempo o ges os. Es e p oblema se ha ido solucionando poco a poco, siendo p esen adas mejo as que pe mi en el mul i ouch, y en la sensibilidad del oque, no malmen e odas ellas in oducidas desde el mundo de la ele onía. O o incon enien e llega desde el b illo, aunque no es an o un p oblema sí que es necesa io menciona que pie de en o no a un 25% del b illo po la necesidad de pasa po las di e en es capas de p esión. Pe o no odo son des en ajas, las pan allas de es e ipo cuen an con una g an esis encia al pol o y al agua, además de un cos e de p oducción muy pequeño, pe mi iendo así que gocen de una g an popula idad y que es én p esen es en mul i ud de apa a os elec ónicos. 1.1.2 Capaci i as Es a ecnología se basa en un campo elec os á ico que se e dis o sionado cuando un elemen o conduc o eléc ico, como el dedo de una pe sona, en a en con ac o con la supe icie de la pan alla, que es un c is al uncionando como una capa de aislamien o eléc ico ecubie a a su ez po un conduc o anspa en e. A p ime a is a podemos encon a uno de las des en ajas de es e modelo, y es que no se de ec a pulsación si la pan alla es ocada po un elemen o no conduc o como suelen se la mayo ía de lápices ác iles del me cado, pensando más en el ipo an e io men e mencionado. 3 SOFTWARE Además del ha dwa e, es necesa io especi ica los p og amas que se han empleado pa a la ealización de es e p oyec o, aunque al igual que ocu ía con el apa ado ísico debemos eco da que se pueden usa muchos o os p og amas di e en es, al exis i un amplio epe o io en in e ne . Los p og amas que se enume a an y desc ibi án a con inuación han sido seleccionados en base a su comodidad, in e az y su accesibilidad, además de que cla amen e cumplan el obje i o deseado. 3.1 Py hon Py hon es el lenguaje de p og amación que amos a emplea po lo que es obliga o io la necesidad de ins ala lo, siendo así uno de los pocos p og amas que no cuen an con o as posibilidades pe o iene la en aja de que unciona en odos los sis emas ope a i os del me cado. Es e lenguaje de p og amación es mul ipa adigma e in e p e ado, siendo su p incipal ca ac e ís ica y di e encia con o os lenguajes conocidos, como puede se el caso de C o Ja a, el se dinámico, es deci , su compilación línea a línea del código en cues ión, además del uso de palab as an es que el uso de símbolos. Es o úl imo es consecuencia de su pensamien o y animo de que los códigos sean legibles, áciles de en ende y pa a nada enc ip ados, como pod ía ocu i en caso de usa símbolos que impedi ían a los usua ios menos a anzados in e p e a pa es ya ealizadas po o os usua ios. Como ejemplo de esa men alidad ambién enemos la ausencia de lla es, ya que pod ía acaba siendo un p oceso ealmen e complicado disce ni donde empiezan y acaban es as, pa a soluciona lo se emplea la abulación como mues a de pe enencia a una condición an e io (como el caso de condicionales o bucles). Po úl imo hemos de hace mención a la g an impo ancia que iene es e lenguaje en el campo de la in o má ica, ya que es el más usado úl imamen e pa a las aplicaciones de in eligencia a i icial, en especial g acias a su comunidad, la acilidad de ap endizaje y lo po en e que es, es deci , que pe mi e ealiza g an mul i ud de a eas complejas. 3.1.1 Ins alación El p oceso de ins alación es muy sencillo y guiado, exis iendo además nume osos u o iales en In e ne de ayuda Figu a 3-1: Logo ipo de Py hon [11] So wa e 34 en caso de exis i alguna complicación. Bas a con i a la página o icial de Py hon 3 , y como se e en la imagen desde ahí pod emos desca ga nos la e sión más ecien e sin p oblema alguno. 3.1.2 ESPTool Además, den o del p og ama end emos que ins ala ESPTool, un a chi o ealizado en Py hon que iene in eg ado jun o a o os muchos a chi os en una ca pe a in e na del p og ama pa a pe mi i que el usua io ins ale los complemen os que desee. Es e p og ama in e no se á el enca gado de inco po a el i mwa e de Mic oPy hon al mic ocon olado seleccionado, según un p oceso que se á explicado más adelan e en el apa ado de Mon aje. Su p oceso de ins alación es bas an e simple, solo necesi a emos en a en la pan alla de comandos del o denado e in oduci la siguien e ins ucción den o del e minal de Py hon, o del cen o de comandos en caso de habe es ablecido su in e acción du an e la desca ga: pip ins all esp ool En caso de que no inie a el a chi o en Py hon se puede desca ga desde la siguien e página: h ps://gi hub.com/esp essi /esp ool 3.2 Mic oPy hon Pa a ajus a se a las nue as necesidades un ísico aus aliano, Damien Geo ge, implemen o el so wa e de Py hon pa a hace una e sión op imizada que pudie a se u ilizada en disposi i os elec ónicos de pequeño amaño, como lo son los mic ocon olado es, man eniendo sus señas de iden idad como lo son el código ácil de 3 h ps://www.py hon.o g/ Figu a 3-2:Página p incipal Py hon [12] 35 in e p e a , su p og amación línea a línea… Su p incipal ca ac e ís ica adica en su educido amaño 4 , siendo es e la capacidad mínima del ha dwa e que hemos de adqui i , al pe de p es aciones con espec o a su e sión pa a o denado es, que en un mic ocon olado no se emplea ían de o ma habi ual. Po es e mo i o algunas unciones que enían de inidas en lib e ías en Py hon cambia an lige amen e o no es a án disponibles aquí, sal o que se inco po en nue as lib e ías, en caso de que e minen siendo necesi adas po el usua io. 3.2.1 Ins alación Al con a io que an es, no end emos que ealiza ninguna ins alación en nues o o denado , pues solo necesi a emos desca ga un paque e de ins alación con el i mwa e pa a pos e io men e pode ins ala lo den o del mic ocon olado seleccionado. Pa a ob ene el a chi o necesa io end emos que i nos a la página o icial, y de ahí accede a la pes aña de desca gas. En la página p incipal e emos una unción muy buena, como es la p og amación online pa a p ac ica y comp oba sin necesidad de me e nos en la placa que el código es co ec o. Aquí hemos de hace un pequeño inciso pa a ecalca un aspec o impo an e, como podemos obse a el i mwa e solo es á disponible pa a cie as placas, lo que nos educe bas an e la elección de un mic ocon olado , aunque se espe a que un u u o cada ez es é disponible pa a un mayo espec o. 3.3 uPyC a Es e p og ama se á el enca gado de es ablece la comunicación con la placa, además del luga donde i emos p og amando las unciones de la lib e ía. Su elección adica en una in e az simple y cómoda, ambién inco po a e isión de sin axis pa a iden i ica posibles e o es de ese ipo y pode soluciona los sin necesidad de ene que busca po odo el código elabo ado. O a en aja espec o a o os p og amas que podemos encon a po in e ne es que no es necesa io ins alación, lo que acili a su po abilidad al con a io de los que equie en ins alación p e ia. 3.4 D i e s de Silabs La unción de es os d i e s es pe mi i que el o denado pueda conec a se e iden i ica el pue o po el que se conec a la placa seleccionada, en es e caso eco demos que es ESP32. Pa a pode ob ene los hemos de i a la página p incipal 5 y allí explo a den o del menú de p oduc os los d i e s USB o UART 6 , donde debe emos desca ga la e sión que deseemos, eniendo cuidado con no elegi alguna e sión en ase be a, ya que pod ía ene algunos p oblemas. 4 1108 KB 5 h ps://www.silabs.com 6 h ps://www.silabs.com/p oduc s/de elopmen - ools/so wa e/usb- o-ua -b idge- cp-d i e s So wa e 36 En nues o caso hemos omado en especí ico la e sión 6.7.6 pa a Windows. 4 DESARROLLO En es e apa ado se p ocede á a desa olla los pasos que se han ido siguiendo pa a la ealización del abajo, desde la ins alación del i mwa e has a las p uebas ealizadas de uncionamien o de la lib e ía p og amada, pasando po las conexiones y las unciones c eadas. 4.1 Mon aje Pa a sabe cómo se han de conec a el mic ocon olado a la pan alla ác il p ime o hemos de in o ma nos de ambos a a és de sus espec i os da ashee s. Es e paso es muy impo an e ya que nos e ela á in o mación c ucial pa a e i a quema componen es in e nos de los disposi i os y con eso ayuda a que no e minen es opeados y que espondan de la mane a espe ada. En es e caso, ap eciamos que los ol ajes de salida del mic ocon olado llegan has a una ensión máxima de 3V lo que nos acili a las cosas ya que la pan alla seleccionada abaja has a un ango máximo de 5V. Además con amos con la ayuda de que pa a acili a el p oceso, la pan alla ác il menciona ísicamen e los nomb es de los di e en es pue os pe mi iendo que sean iden i icados más ápidamen e y no se den con usiones con ellos. 4.1.1 Con igu ación de pines E/S 4.1.1.1 PD El pin PD hace e e encia a “powe down” y es empleado pa a de e mina si la comunicación con la pan alla es a ac i ada o no, es deci , es el enca gado de despe a a la pan alla ác il pa a que eciba y ac ualice in o mación de sus o os pue os. Es e pin se á con igu ado de solo salida, y no end emos ninguna limi ación de cuál selecciona en el mic ocon olado . Se á decisión del usua io elegi un pue o pa a su comunicación, que pos e io men e hab á que in o ma su núme o a la unción que se enca ga de es ablece los co ec amen e. 4.1.1.2 CS El pin CS hace e e encia a “Chip Selec ” y es empleado de habili a o no los buses hacia los que se en ían los da os dependiendo si es á a un alo al o o no. Cada ez que se quie a lee o manda da os hacia la pan alla ác il hab á de deja lo a ni el bajo, y al inaliza ol e a bloquea los buses en cues ión po segu idad Al igual que el caso an e io , se á con igu ado como un pue o de solo salida, sin ninguna limi ación ex a a la ho a de selecciona el pin, aunque po comodidad se ecomienda que sea con iguo al an e io . 4.1.1.3 SCK El pin SCK hace e e encia a “So Clock”, es el enca gado de egula la elocidad con la que se ansmi e cada bi en ambos sen idos, siendo de i al impo ancia pa a el co ec o uncionamien o, pues de es a mal con igu ado algunos paque es de da os pod ían pe de se o iden i ica se e óneamen e. El mic ocon olado iene un pue o especí ico pa a es a unción de comunicación, po lo que el usua io no iene opción como en los an e io es casos, aunque sí que iene libe ad pa a indica la elocidad de comunicación Desa ollo 38 38 además de o os pa áme os. 4.1.1.4 MOSI Es uno de los pines po los que se compa e in o mación en e los disposi i os, en especí ico, es e pue o ansmi e da os del mic ocon olado a la pan alla ác il, como su p opio nomb e indica, “Mas e Ou pu Sla e Inpu ”. Po an o es un pue o de salida de nues a placa, y como pasaba an e io men e con el SCK iene un pin en especí ico des inado a al a ea. 4.1.1.5 MISO Jun o a MOSI son los únicos pines po los que ci cula in o mación, y al con a io que el an e io es e se enca ga de lle a los da os de la pan alla ác il al mic ocon olado , siendo po an o el p ime y único pin de en ada que amos a ene con igu ado en nues o disposi i o. Su nomb e signi ica: “Mas e Inpu Sla e Ou pu ”. Como pasaba con el MOSI, el MISO ambién dispone de un pin especí ico pa a la a ea, siendo imposible des ina o o, aunque eso no signi ica que no dábamos con igu a lo como solo en ada po segu idad. 4.1.2 Conexionado Ya hemos mencionado an e io men e que an solo 2 de odos los pines que hemos de conec a a la pan alla son elegibles po el usua io, el es o es án comple amen e de inidos y esul a imposible su conexión a o os pue os. Quedando po an o una conexión simila a la que se mues a a con inuación a modo de ejemplo: En es e caso los pines PD y CS que pueden se seleccionados han sido conec ados a los pue os 12 y 14 espec i amen e. El caso del pin INT que p esen a la pan alla podemos omi i lo, pues o que su unción no la Pan alla SCK MOSI MISO CS INT PD 3V 5V GND GND Figu a 4-1: Placa ESP32 [13] 39 amos a emplea en es e p oyec o y po an o no enemos obligación de conec a lo a ninguno de los pines del mic ocon olado . 4.1.3 Ins alación del i mwa e An es de comenza a p og ama hemos de p ocede a in oduci Mic oPy hon en el mic ocon olado seleccionado, pa a ello segui emos los siguien es pasos, eniendo en cuen a que pueden e se a ec ados po posibles cambios de nomb e en el a chi o que con enga el i mwa e como po el pue o po el que ha sido conec ado al o denado . P ime o ab i emos una pan alla de comandos, la o ma de ab i lo depende á del sis ema ope a i o con el que se es é abajando. A con inuación, si se han ealizado co ec amen e la ins alación de Py hon y ESP ool an solo end emos que in oduci la siguien e línea de comandos, espe ando la di ección del pue o a la que se ha in oducido el mic ocon olado . esp ool.py –po /<inse a di ección del pue o> e ase_ lash Con es o elimina emos oda la memo ia lash que u ie a an e io men e, es ecomendable hace lo incluso cuando el disposi i o es nue o pa a asegu a nos una pos e io ins alación sin p oblemas. Vamos a comen a b e emen e el o ma o de di ección del pue o exis en e a los sis emas ope a i os más comunes, Windows y Linux. En el p ime o bas a ía con mi a en la pes aña de disposi i os que pue o es á ocupado e in oduci /COMx siendo x el núme o del pue o en cues ión; el segundo co esponde a la es uc u a /de / yUSBx, necesi ando mi a p e iamen e usando el cmd el núme o. T as es e paso, p ocedemos a esc ibi la memo ia lash con el en o no de p og amación deseado, eniendo su espec i o a chi o ( e sección de So wa e) desca gado y gua dado en una localización conocida. esp ool.py –chip esp32 –po /<di . pue o> w i e_ lash –z 0x1000 <di .a chi o y nomb e de es e>.bin T as espe a un de e minado iempo se hab á ins alado el i mwa e en el disposi i o y ya pod emos comenza a abaja con ello, aunque es ecomendable ealiza alguna p ueba de que odo unciona co ec amen e, pa a ello ab i emos uPyC a y as conec a con el disposi i o p oba emos algunos comandos de Py hon que se encuen en disponibles en Mic oPy hon. 4.2 Es uc u a Pa a consegui ene una lib e ía más o denada y ácil de maneja se ha decidido di e encia en e dos ipos de unciones, las unciones c eadas con el in de se usadas po el usua io y aquellas que se han ealizado pa a e i a epe i nume osas eces los mismo pasos y si en al c eado pa a educi el código además de apo a eno memen e en unciones de debugging. Además de lo mencionado p e iamen e a las unciones se enlis a án una se ie de cons an es que end án alo es Desa ollo 40 40 como las di ecciones de egis o de la pan alla, sacados de la guía de p og amado 7 , eniendo en cuen a las di e encias exis en es en e las pan allas de 3.5 pulgadas y la de 5 pulgadas. En Py hon como no exis en cons an es a las que no se pueda modi ica su alo hemos de ad e i al usua io que no emplee nomb es iguales, ya que sob esc ibi ía el alo y pond ía en iesgo el sis ema. 4.2.1 Tabla de ope ado es En odos los lenguajes de p og amación exis en una se ie de ope ado es des inados a agiliza las unciones más habi uales que emplean los usua ios, Py hon aunque busque ene un código ácil de in e p e a y nada enmasca ado ambién los usa. Debido a es o, se enuncia an a con inuación los ope ado es empleados en la elabo ación de la lib e ía así como su signi icado, desde los más comunes y ob ios has a los que puedan se complicados de en ende . Ope ado Ejemplo Función que ealiza + X+Y Realiza la unción a i mé ica de suma en e los é minos X e Y - X-Y Realiza la unción a i mé ica de es a en e los é minos X e Y * X*Y Realiza la unción de mul iplicación en e los dos é minos empleados / X/Y Realiza la unción de di isión en e X e Y, dando como esul ado el cocien e de la ope ación. & X&Y Ope ación que ealiza la unción lógica AND, no iene sen ido en núme os en base decimal, solo en base bina ia. | X|Y Ope ación que ealiza la unción lógica OR, no iene sen ido en núme os en base decimal, solo en base bina ia. >> X>>Y Ope ación que ealiza en X un desplazamien o de Y bi s hacia la de echa. Solo iene sen ido en base bina ia, los bi s que salen del ango se pie den. << X<<Y Realiza la ope ación de desplazamien o en X de Y bi s hacia la izquie da. Solo iene sen ido en base bina ia, se inco po an an os 0 7 h ps://www. dichip.com/Suppo /Documen s/P og amGuides/FT800%20P og amme s%20Guide.pd 41 como bi s desplazados. < X<Y Ope ación lógica que de uel e TRUE en caso de que X sea meno que Y, y FALSE en caso con a io > X>Y Ope ación lógica que de uel e TRUE en caso de que X sea mayo que Y, y FALSE en caso con a io. == X==Y Ope ación lógica que compa a el alo de X e Y, dando como esul ado TRUE si ienen el mismo alo , y FALSE en caso con a io. != X!=Y Ope ación lógica que compa a el alo de X e Y, dando como esul ado TRUE si ienen alo es dis in os, mien as que da FALSE si ienen el mismo alo |= X|=Y Fo ma educida de ealiza la ope ación OR: X=X|Y Tabla 4-I: Ope ado es empleados 4.3 Códigos Como ya se ha mencionado an e io men e, la es uc u a del código se di idi á en dos g andes bloques, las in e nas se án unciones más des inadas a con igu a a iables in e nas de la pan alla y al en ío y ecepción de da os; mien as que las unciones ex e nas se cen a an usualmen e en aquellas unciones de al o ni el que engan consecuencias isuales en la pan alla ác il, de al mane a que si el usua io decide ealiza algún cambio en es as no se encuen e con un lenguaje de bajo ni el que pueda da le p oblemas. 4.3.1 Decla ación de cons an es P e io al inicio de c ea las unciones hemos de decla a odas las cons an es que se ayan a necesi a , pudiendo iden i ica a ios g upos de a iables en es a sección. 4.3.1.1 Regis os En es e g upo se encuen an de inidos la posición en memo ia de la pan alla de los di e en es pa áme os impo an es que componen su memo ia ija, y que du an e el uso puedan se modi icados o sean necesa ios en algún momen o. 4.3.1.2 Comandos La pan alla ác il es á p og amada pa a que al ecibi cie os alo es ealice de e minadas acciones conc e as, es as son llamadas los comandos que egulan las acciones que pos e io men e se ejecu an. Su alo iene de inido en la guía de p og amado que nos o ece el ab ican e pa a las pan allas de una misma se ie. Desa ollo 48 48 scFTo.PadFIFO() 4.3.2.16 Lee pan alla ác il Lee_pan alla() Las pan allas ác iles pe mi en un lujo de da os bidi eccional, es deci , no solo se enca gan de ecibi y pin a odo aquello que le hayamos p og amado, como cualquie pan alla, sino que además nos pe mi e sabe en que pun o exac o se ha ocado, aplicación ealmen e ú il pa a la c eación de elemen os como bo ones. scFTo.Lee_pan alla() 4.3.3 Funciones ex e nas 4.3.3.1 Con igu ación de la pan alla con _pan ( a 1) Es a unción se enca ga de con igu a los egis os in e nos de la pan alla que a ían según el amaño de la misma. Es impo an e que el usua io ejecu e es a unción an es que las demás pues pod ía causa g andes p oblemas pese a que es a con igu ado en la p e ia decla ación que se empleen po de ec o los alo es de la pan alla de 3.5 pulgadas. Es a unción se subdi ide en dos secciones, la p ime a es una decla ación pa a que las a iables con igu adas sean de ca ác e global pa a odo el código y o a en la que se les da el alo co espondien e según una condición es ablecida.  Va 1: alo en e o que se á el que de e mine el amaño de la pan alla, siendo 3 y 5 la pan alla de 3.5 y la 5 pulgadas espec i amen e. En caso de ecibi o o alo , al se posible en ia cualquie alo que se desee, el p og ama no ha á nada y de ol e á un 0 indicando al usua io que ha salido algo mal. scF o.con _pan (3) 4.3.3.2 Inicialización de los pines HAL_Ini _SPI(pin1, pin2) 49 Es a unción se enca ga de con igu a los pines, ya explicados an e io men e, pudiendo el usua io elegi los dos de lib e con igu ación a a és de las a iables que ecibe, siendo la p ime a de ellas la enca gada del pin de chip selec mien as la segunda se á la que de e mine el pue o del powe down. En es a unción se emplean unciones de una lib e ía que hay que inco po a al inicio de la nues a, Pin y SPI de la lib e ía machine, con es o el usua io no end á que inco po a las manualmen e él, educiendo así la di icul ad de ejecución de la nues a.  Pin1: alo numé ico del pin que se aya a con igu a como PD, es deci , como powe down. A pesa de que la unción pueda ecibi cualquie alo , la unción alla á si es a po encima de los pines del mic ocon olado , o coincide el alo con un pin no con igu able pa a es a de e minada unción.  Pin2: alo numé ico del pin que se aya a con igu a como CS, es deci , como chip selec . A pesa de que la unción pueda ecibi cualquie alo , la unción alla á si es a po encima de los pines del mic ocon olado , o coincide el alo con un pin no con igu able pa a es a de e minada unción. scFTo.HAL_Ini _SPI(14,12) 4.3.3.3 Esc i u a en RAM Comando( COMM) Básicamen e es a unción es Esc ibeRam32, solo que pensada pa a su aplicación pa a an o el usua io como o as unciones de la lib e ía ejecu en ápidamen e di e en es comandos.  COMM: alo numé ico en hexadecimal o decimal asociado a algún comando p ees ablecido po la pan alla. scFTo.Comando(0x0400000) 4.3.3.4 Colo de la siguien e ins ucción que se a a ealiza ComColo ( R, G, B) Es a unción pe mi e al usua io selecciona el colo con el que se ep esen a á la siguien e ins ucción que ealice, eniendo una amplia libe ad de selección al dispone de más de 16 millones de posibles colo es di e en es. Es la p ime a unción que necesi a la selección de pan alla p e iamen e pues como ya se menciono, la posición de los colo es di ie e en e la pan alla de 3.5 pulgadas y la de 5 pulgadas.  R: alo numé ico asociado a la onalidad oja que se desea. Su ango a de 0 a 255, es deci , 1 by e.  G: alo numé ico asociado a la onalidad e de que se desea. Su ango a de 0 a 255, es deci , 1 by e.  B: alo numé ico asociado a la onalidad azul que se desea. Su ango a de 0 a 255, es deci , 1 by e. Desa ollo 50 50 Quedando el colo inal de e minado po la combinación de los alo es apo ados po los es a gumen os. scFTo.ComColo (45,62,148) ComFgcolo ( R, G, B) ComBgcolo ( R, G, B) Los a gumen os de es as dos unciones son iguales que los de la unción an e io , po lo que se omi i á su explicación. scFTo.ComFgcolo (76,84,2) scFTo.ComBg(200,160,0) En cie as aplicaciones no solo necesi a emos con igu a el colo , sino ambién el colo de ondo (BG) o de p ime plano (FG), pa a ello se pensó las dos unciones que se acaban de p esen a . Pa a di e encia cuando se emplea una y cuando o a podemos obse a la siguien e abla según la in o mación que nos p opo ciona la guía de la pan alla. Ins ucción ComFgcolo ComBgcolo ComColo ComTXT No a ec a No a ec a Sí Bo on Sí No a ec a Sí( ó ulo) ComTeclas Sí No a ec a Sí( ex o) ComSc ollba Sí(ba a in e io ) Sí(ba a ex e io ) No a ec a ComNum No a ec a No a ec a Sí Tabla 4-II:Función de colo Hay más comandos a los que a a a ec a es as unciones, pe o al no habe sido incluidos se ha op ado po deja los ue a de es a abla, pa a ellos se ecomienda acudi a la guía. Apa e de las mencionadas unciones, exis e o a a la que debe ía de a ec a es as ins ucciones pa a al e a el colo , pe o es a p og amada pa a no hace lo, al eni ya de inido un colo den o de la misma. Es o es a ealizado ya que no iene g an impo ancia pa a el desa ollo del p oceso, en especial ya que no es un elemen o ijo, sino uno empo al. 51 4.3.3.5 Esc i u a en la pan alla ComTXT( x, y, uen e, ops, cadena) Es a unción nos pe mi e esc ibi el ex o que deseemos, con una se ie de p opiedades de inidas en los a gumen os de la unción.  X: Valo numé ico de la coo denada en el eje X.  Y: alo numé ico de la coo denada en el eje Y.  Fuen e: alo numé ico, en el ango de 0 a 31 que nos pe mi e elegi el amaño de la uen e de esc i u a.  Ops: alo numé ico al que a asociado di e en es opciones a la ho a de como oma los alo es que se mandan en el a gumen o, es as opciones an ecogidas en las de iniciones p e ias a las unciones en nues a lib e ía. De no da le ningún alo se oma a como de ec o la opción 0, que se co esponde a conside a las coo denadas ecibidas como el é ice supe io izquie do desde el que se comenza á la esc i u a.  Cadena: Conjun o de ca ac e es que se deseen ep esen a en la pan alla en una posición dada. scF o.ComTxT(80,90,25,OPT_CENTERX,”hola”) ComNum( x, y, uen e, ops, Num) Al igual que lo podemos ealiza con le as ambién disponemos la posibilidad de esc ibi núme os, con ando con el mismo núme o de opciones, se pueden ep esen a núme os po la an e io opción en caso de se necesa io, aunque gas a ía un poco más de ecu sos que la unción aquí p esen e.  X: Valo numé ico de la coo denada en el eje X.  Y: alo numé ico de la coo denada en el eje Y.  Fuen e: alo numé ico, en el ango de 0 a 31 que nos pe mi e elegi el amaño de la uen e de esc i u a.  Ops: alo numé ico al que a asociado di e en es opciones a la ho a de como oma los alo es que se mandan en el a gumen o, es as opciones an ecogidas en las de iniciones p e ias a las unciones en nues a lib e ía. De no da le ningún alo se oma a como de ec o la opción 0, que se co esponde a conside a las coo denadas ecibidas como el é ice supe io izquie do desde el que se comenza á la esc i u a. Resal a que pa a núme os nega i os se á necesa io emplea la opción “OPT_SIGNED”.  Num: Valo del núme o que se desea ep esen a en la pan alla ác il Pa a el núme o 31: scFTo.ComNum(50,50,20,0,31) Pa a el núme o -31: scFTo.ComNum(50,50,20,OPT_SIGNED,31) Desa ollo 52 52 4.3.3.6 Teclas ComTeclas( x, y, w, h, uen e, ops, Keys) Figu a 4-2: Visualización de las Teclas [14] Con es a unción podemos c ea eclas, que no bo ones, con el ex o que deseemos den o además de pode cambia an o su amaño como luga , eniendo incluso la posibilidad de da o os e ec os, como que se cen en de o a mane a o qui a les el e ec o 3D, como el que ienen en la imagen.  X: Valo numé ico de la coo denada en el eje X.  Y: alo numé ico de la coo denada en el eje Y.  W: alo numé ico co espondien e a la anchu a de la ecla.  H: alo numé ico co espondien e a la al u a de la ecla.  Fuen e: alo numé ico, en el ango de 0 a 31 que nos pe mi e elegi el amaño de la uen e de esc i u a.  Ops: alo numé ico al que a asociado di e en es opciones a la ho a de como oma los alo es que se mandan en el a gumen o, es as opciones an ecogidas en las de iniciones p e ias a las unciones en nues a lib e ía. De no da le ningún alo se oma a como de ec o la opción 0, que se co esponde al e ec o 3D de las eclas, e imagen asociada an e io men e, pa a elimina es e e ec o usa el alo de inido en la decla ación OPT_FLAT.  Keys: Conjun o de ca ac e es que se deseen ep esen a en la pan alla en una den o de la ecla. scFTo.ComTeclas(50,60,20,20,15,0,”1”) 4.3.3.7 Rep esen a en pan alla Dibuja() Una ez ejecu amos es a unción, se ep esen a á en pan alla odas aquellas ins ucciones que se le haya ido dando a la pan alla con las o as unciones. Hay que menciona que solo se ejecu a á du an e un ins an e, po ello debe es a siemp e den o de un bucle e e no de al mane a que pa ezca que es a pin ado de o ma con inuada. 53 scF o.Dibuja() 4.3.3.8 Iniciado de la pan alla ác il Inicia_pan alla() Es a unción ha de se empleada as habe con igu ado el ipo de pan alla que se es a empleando y con los pines ya de inidos, y an es de odo aquello que que amos ealiza pues se enca ga de a ios apa ados impo an es. Po un lado inicializa la pan alla, despe ándola inicialmen e, y comp ueba que no haya ningún p oblema en la comunicación a a és de una comp obación de los alo es de cie os egis os. Po o o lado se enca ga de da alo a di e en es egis os in e nos de la pan alla y as es o con igu a la pan alla pa a que es e comple amen e lis a pa a lo que se desee ealiza con ella, pudiendo habili a o no el ampli icado de audio a a és de las úl imas esc i u as, eniendo que in oduci 0x81 pa a apaga el audio si no se quie e u iliza . Una posible mejo a se ía pasa po e e encia un 0 o un 1 con el que pode de e mina si se equie e el audio, pe o al se algo secunda io y ácilmen e cambiable, incluso pudiendo abaja pe ec amen e con es a con igu ación cuando no se abaja con el audio se ha dejado como es a, ac i ado siemp e. scFTo.Inicia_pan alla() 4.3.3.9 Colo de ondo de la pan alla Nue a_pan alla( R, G, B) El colo de ondo de la pan alla puede se cambiado a a és de es a unción, a la que hay que pasa le po e e encia los alo es de las di e en es onalidades que se quie a, en el o ma o conocido RGB. Como es conocido no se espe a que el usua io enga p oblemas usando es a unción, pe o exis e el caso de que inse e un colo ue a de ango lo que pod ía o bien descon igu a el comando o bien modi ica el colo , según cual haya sido el colo implicado que se haya excedido y la pan alla usada.  R: alo numé ico asociado a la onalidad oja que se desea. Su ango a de 0 a 255, es deci , 1 by e.  G: alo numé ico asociado a la onalidad e de que se desea. Su ango a de 0 a 255, es deci , 1 by e.  B: alo numé ico asociado a la onalidad azul que se desea. Su ango a de 0 a 255, es deci , 1 by e. Quedando el colo inal de e minado po la combinación de los alo es apo ados po los es a gumen os. scFTo.Nue a_pan alla(40,180,60) Desa ollo 54 54 4.3.3.10 Debugging de los egis os Las siguien es unciones es án más pensadas en una aplicación de debbugging pa a usua ios que dominen el campo de la p og amación y es én ealizando p oyec os con es a pan alla en el en o no de Mic oPy hon, que pa a usua ios p omedios que solo busquen ealiza cie a aplicación con los elemen os que se le da en la lib e ía. Es o se debe a que la u ilidad de es a unción es in o ma al usua io que alo hay en el egis o que el quie a conoce , de es a o ma ealiza una comp obación manual de los pun os donde no se ealice lo que el usua io busque. Lee_Reg(di )  Di : Di ección del egis o del que se desea conoce su alo . Lec u a=scF o.Lee_Reg(REG_SOUND) Mien as que la siguien e unción es su con apa e, enca gándose de la esc i u a en la di ección apo ada po el usua io, siemp e empleando alo es de 32 bi s. Esc_Reg( di , alo )  Di : Di ección del egis o en el que se desea sob esc ibi su alo .  Valo : alo numé ico que se desea esc ibi en la di ección asociada. scF o.Esc_Reg(REG_VOL_SOUND, 24) 4.3.3.11 Espe a Espe a_pan () Es a unción se enca ga de bloquea la ejecución del código elabo ado po el usua io has a que se ealice un oque en cualquie luga de la pan alla ác il. Pa a ello se ejecu a un bucle while, en el que mien as el alo de POSY sea el de ese , signi ica que no se ha pulsado, se man end á leyendo la pan alla espe ando que POSY a íe su alo . Una ez se pulse, se ealiza o o bucle igual que el an e io , pe o en es a ocasión con el in de no i ica que se ha dejado de pulsa , es deci , que la a iable ha uel o a su alo de ese , es o se ealiza ya que conside amos un oque como pulsa y e i a no solo ealiza una pulsación, además de que es o úl imo pod ía p o oca lige os p oblemas en la aplicación, como se ía que al pulsa se ealiza an a ias ope aciones ápidamen e sin que el usua io pudie a eacciona . 55 scFTo.Espe a_pan () 4.3.3.12 Líneas Pa a ealiza un conjun o de líneas ec as debemos emplea los siguien es comandos, p e ia de inición del colo y del g oso de es as. El colo ya se ha mencionado an e io men e como ealiza lo, pe o no el caso de la con igu ación del g oso , pa a pode de e mina lo hemos de in oca la siguien e unción que ecibe como pa áme o el g oso deseado ComLineWid h( wid h) ComLineas(xo,yo, x , y ) Es a úl ima unción es la enca gada de ealiza una línea en e la posición inicial, dada po el p ime g upo de pa áme os, y la posición inal, indicada en el segundo g upo. El usua io pod ía ealiza a mano es a con igu ación, aunque se ha ealizado es a unción pa a simpli ica en odo lo posible los comandos que debe ap ende se pa a pode maneja la pan alla en odo su apogeo.  Wid h: alo numé ico del g oso de la línea deseado. Su ango a en e 16 y 4095, con una p ecisión 1/16 Píxeles.  Xo: alo numé ico de la coo denada en el eje X del pun o inicial de la ec a.  Yo: alo numé ico de la coo denada en el eje Y del pun o inicial de la ec a.  X : alo numé ico de la coo denada en el eje X del pun o inal de la ec a.  Y : alo numé ico de la coo denada en el eje Y del pun o inal de la ec a. scFTo.ComLineWid h(40) scFTo.ComLineas(10,20,50,50) 4.3.3.13 Sc ollba ComSc ollba ( x, y, w, h, ops, al, size, ange): Se pod á ealiza un sc oll jun o a su ba a en cualquie luga de la pan alla, an o en e ical como en ho izon al sin p oblema alguno, an solo es necesa io a lo sumo un poco de p ueba y e o pa a con igu a co ec amen e odos los elemen os necesa ios, que se enume an a con inuación.  X: Valo numé ico de la coo denada en el eje X.  Y: alo numé ico de la coo denada en el eje Y.  W: alo numé ico co espondien e a la anchu a de la ba a.  H: alo numé ico co espondien e a la al u a de la ba a. Desa ollo 56 56  Ops: alo numé ico al que a asociado di e en es opciones a la ho a de como oma los alo es que se mandan en el a gumen o, es as opciones an ecogidas en las de iniciones p e ias a las unciones en nues a lib e ía. De no da le ningún alo se oma a como de ec o la opción 0, que se co esponde al e ec o 3D del sc ollba , pa a elimina es e e ec o usa el alo 255.  al: alo numé ico de la posición inicial del sc oll den o de la ba a, con un ango de e minado en e 0 y el alo de ange que se pasa a pos e io men e.  Size: alo numé ico del amaño del sc oll.  Range: máximo alo numé ico que puede oma el sc oll al se desplazado po la ba a. Según los alo es de w y h la ba a se pin a a en ho izon al o e ical, siendo pa a el p ime caso necesa io que el alo de w sea supe io al de h. En caso con a io es a emos en el segundo caso. scF o.Sc ollba (20,50,120,8,0,10,40,100) En el ejemplo se ep esen a a un sc ollba con el é ice supe io izquie do en la posición (20,50) de la pan alla, con una anchu a de 120 y una al u a de 8. Tend á e ec o 3D, su posición inicial es a á en el alo 10 de un ango de medidas de 0 a 100, con una ba a que mide 40. 4.3.3.14 Bo on El usua io cuando quie a ealiza un bo ón pod á elegi en e dos unciones, la p ime a de ellas se enca ga á de solo pin a el bo ón en el es ado deseado y con igu ado po el usua io, mien as que la segunda unción pin a á el bo ón dependiendo si es a pulsado o no, de ol iendo al usua io dicha in o mación. ComBu on( x, y, w, h, on , ops, cadena)  x: alo numé ico de la coo denada X del é ice supe io izquie do del bo ón.  y: alo numé ico de la coo denada Y del é ice supe io izquie do del bo ón.  W: alo numé ico co espondien e a la anchu a del bo ón.  H: alo numé ico co espondien e a la al u a del bo ón.  on : alo numé ico de la uen e deseada pa a la cadena de ca ac e es que se esc ibi á den o.  ops: Según su alo el bo ón se á ep esen ado como pulsado o no pulsado, 1 se á el alo en el p ime caso, 0 pa a el es an e. Figu a 4-3:Sc ollba asociado al ejemplo [15] 57  cadena: conjun o de ca ac e es que se desea ep esen a den o del bo ón. Es ado=scFTo.ComBu on(80,40,30,30,10,1,”pulsa”) Bo on(x, y, w, h, on , cadena)  x: alo numé ico de la coo denada X del é ice supe io izquie do del bo ón.  y: alo numé ico de la coo denada Y del é ice supe io izquie do del bo ón.  W: alo numé ico co espondien e a la anchu a del bo ón.  H: alo numé ico co espondien e a la al u a del bo ón.  on : alo numé ico de la uen e deseada pa a la cadena de ca ac e es que se esc ibi á den o.  cadena: conjun o de ca ac e es que se desea ep esen a den o del bo ón. scFTo.Bo on(80,40,30,30,10,”pulsa”) En ambos ejemplos se pin a a el mismo bo ón con la di e encia que en el segundo su es ado pod á a ia dependiendo si se pulsa den o del bo ón la pan alla ác il, además la unción nos p opo ciona a ese in o mación pa a que podamos emplea la en el código de mane a sencilla. 4.3.3.15 Pun os ComPoin Size(size) Al igual que ocu ía con las líneas, los pun os pueden con igu a su amaño a a és de es a unción, aunque no se enca ga á de se pin ados, es a pensada pa a aquellos que deseen emplea el comando manual pa a pin a los pun os que él desee.  Size: alo numé ico del amaño del pun o deseado. scFTo.ComPoin Size(16) Aunque lo no mal se á que se ejecu e la siguien e unción, que engloba an o la con igu ación del amaño como su pos e io pin ado, siendo como la mejo a de la an e io . Com_Pun o( x, y, R) Anexo 64 64 REG_INT_EN=1057948 REG_INT_FLAGS=1057944 REG_INT_MASK=1057952 REG_MACRO_0=1057992 REG_MACRO_1=1057996 REG_MARCH_ACC=1058144 REG_MARCH_DIR=1058136 REG_MARCH_OP=1058140 REG_MARCH_WIDTH=1058148 REG_OUTBITS=1057880 REG_PCLK=1057900 REG_PCLK_POL=1057896 REG_PLAY=1057928 REG_PLAYBACK_FORMAT=1057972 REG_PLAYBACK_FREQ=1057968 REG_PLAYBACK_LENGTH=1057960 REG_PLAYBACK_LOOP=1057976 REG_PLAYBACK_PLAY=1057980 REG_PLAYBACK_READPTR=1057964 REG_PLAYBACK_START=1057956 REG_PWM_DUTY=1057988 REG_PWM_HZ=1057984 REG_RENDERMODE=1057808 REG_ROMSUB_SEL=1058016 REG_ROTATE=1057876 REG_SNAPSHOT=1057816 REG_SNAPY=1057812 REG_SOUND=1057924 REG_SWIZZLE=1057888 REG_TAG=1057912 REG_TAG_X=1057904 REG_TAG_Y=1057908 REG_TAP_CRC=1057824 REG_TAP_MASK=1057828 REG_TOUCH_ADC_MODE=1058036 REG_TOUCH_CHARGE=1058040 REG_TOUCH_DIRECT_XY=1058164 REG_TOUCH_DIRECT_Z1Z2=1058168 REG_TOUCH_MODE=1058032 REG_TOUCH_OVERSAMPLE=1058048 REG_TOUCH_RAW_XY=1058056 REG_TOUCH_RZ=1058060 REG_TOUCH_RZTHRESH=1058052 REG_TOUCH_SCREEN_XY=1058064 REG_TOUCH_SETTLE=1058044 REG_TOUCH_TAG=1058072 REG_TOUCH_TAG_XY=1058068 REG_TOUCH_TRANSFORM_A=1058076 REG_TOUCH_TRANSFORM_B=1058080 REG_TOUCH_TRANSFORM_C=1058084 REG_TOUCH_TRANSFORM_D=1058088 REG_TOUCH_TRANSFORM_E=1058092 REG_TOUCH_TRANSFORM_F=1058096 REG_TRACKER=1085440 REG_TRIM=1058156 REG_VCYCLE=1057852 REG_VOFFSET=1057856 REG_VOL_PB=1057916 REG_VOL_SOUND=1057920 REG_VSIZE=1057860 REG_VSYNC0=1057864 REG_VSYNC1=1057868 GRIS_CLARO=0xE0E0E0 GRIS_OSCURO=0x606060 S_TRIANG=0x04 S_BEEP=0x05 S_ALARM=0x06 65 S_WARBLE=0x07 S_PIPS=0x10 S_XILO=0x41 S_PIANO=0x46 N_DO=60 N_REB=61 N_RE=62 N_MIB=63 N_MI=64 N_FA=65 N_SOLB=66 N_SOL=67 N_LAB=68 N_LA=69 N_SIB=70 N_SI=71 FT_GPU_INTERNAL_OSC=0x48 FT_GPU_EXTERNAL_OSC=0x44 FT_GPU_PLL_48M=0x62 FT_GPU_PLL_36M=0x61 FT_GPU_PLL_24M=0x64 FT_GPU_ACTIVE_M=0x00 FT_GPU_STANDBY_M=0x41 FT_GPU_SLEEP_M=0x42 FT_GPU_POWERDOWN_M=0x50 FT_GPU_CORE_RESET=0x68 RELOJ=3000 # e isa es e alo #de iniciones que an a a ia su alo POSX=0 POSY=0 PANTALLA=3 HCYCLE=408 HOFFSET=70 HSYNC0=0 HSYNC1=10 VCYCLE=263 VOFFSET=13 VSYNC0=0 VSYNC1=2 PCLK_POL=0 HSIZE=320 VSIZE=240 PCLK=5 CS=1 PD=1 spi=1 CMD_O se =0 #Funcion pa a de e mina el ipo de pan alla que se iene. Es necesa io que se u ilice an es que el es o de las demas unciones o da ia p oblemas de con _pan ( a 1): i ( a 1==3) o ( a 1==5): global PANTALLA global HCYCLE global HOFFSET global HSYNC0 global HSYNC1 global VOFFSET global VCYCLE global VSYNC0 global VSYNC1 global PCLK_POL global HSIZE global VSIZE global PCLK PANTALLA= a 1 i (PANTALLA==3): #lis a de de ines que an con la pan alla 800 de 3.5 pulgadas HCYCLE =408 Anexo 66 66 HOFFSET=70 HSYNC0=0 HSYNC1=10 VCYCLE=263 VOFFSET=13 VSYNC0=0 VSYNC1=2 PCLK_POL=0 HSIZE=320 VSIZE=240 PCLK=5 else: #lis a de de ines que an con la pan alla de 800 de 5 pulgadas HCYCLE =548 HOFFSET=43 HSYNC0=0 HSYNC1=41 VCYCLE=292 VOFFSET=12 VSYNC0=0 VSYNC1=10 PCLK_POL=1 HSIZE=480 VSIZE=272 PCLK=5 e u n 1 else: e u n 0 de HAL_Ini _SPI(pin1, pin2): global CS global PD global spi #CS=chip selec # ecomendamos pin14 CS=Pin(pin1,Pin.OUT) #PD=powe down # ecomendamos pin12 PD=Pin(pin2,Pin.OUT) spi=SPI(baud a e=600000,pola i y=0,phase=0, bi s=8, i s bi =SPI.MSB, sck=Pin(5), mosi=Pin(18), miso=Pin(19)) de HAL_SPI_ReadW i e(da a): da =by ea ay(1) ecibido=by ea ay(1) da [0]=da a spi.w i e_ eadin o(da , ecibido) ecibido=in . om_by es( ecibido,"big") #in e u n ecibido de HAL_SPI_CSHigh(): CS. alue(1) de HAL_SPI_CSLow(): CS. alue(0) de HAL_SPI_PDhigh(): PD. alue(1) de HAL_SPI_PDlow(): PD. alue(0) 67 de DELAY (): om u ime impo sleep_ms sleep_ms(800) #mi a iempo luego despues de SENDADDRESSWR( Memo y_Add ess): # W i e ou he add ess. Only he lowe 3 by es a e sen , wi h he mos signi ican by e sen i s # Mask o he i s by e o send SPI_W i eby e = ((Memo y_Add ess & 0x00FF0000) >> 16) # Since his is a w i e, he MSBs a e o ced o 10 SPI_W i eby e = (SPI_W i eby e & 0xBF | 0x80) # Call he low-le el SPI ou ine o his MCU o send his by e HAL_SPI_ReadW i e(SPI_W i eby e) SPI_W i eby e = ((Memo y_Add ess & 0x0000FF00) >> 8) HAL_SPI_ReadW i e(SPI_W i eby e) SPI_W i eby e = (Memo y_Add ess & 0x000000FF) HAL_SPI_ReadW i e(SPI_W i eby e) de SENDADDRESSRD( Memo y_Add ess): # W i e ou he add ess. Only he lowe 3 by es a e sen , wi h he mos signi ican by e sen i s # Mask o he i s by e o send SPI_W i eby e = ((Memo y_Add ess & 0x00FF0000) >> 16) # Since his is a ead, he uppe wo bi s a e o ced o 00 SPI_W i eby e = (SPI_W i eby e & 0x3F) # Call he low-le el SPI ou ine o his MCU o send his by e HAL_SPI_ReadW i e(SPI_W i eby e) SPI_W i eby e = ((Memo y_Add ess & 0x0000FF00) >> 8) HAL_SPI_ReadW i e(SPI_W i eby e) SPI_W i eby e = (Memo y_Add ess & 0x000000FF) HAL_SPI_ReadW i e(SPI_W i eby e) # Send dummy 00 as equi ed in he FT800 da ashee when doing a ead HAL_SPI_ReadW i e(0x00) de WRITE_32( SPIValue32): SPI_W i eby e = (SPIValue32 & 0x000000FF) # W i e he i s (leas signi ican ) by e HAL_SPI_ReadW i e(SPI_W i eby e) SPI_W i eby e = ((SPIValue32 & 0x0000FF00) >> 8) HAL_SPI_ReadW i e(SPI_W i eby e) SPI_W i eby e = ((SPIValue32 & 0x00FF0000)>> 16) HAL_SPI_ReadW i e(SPI_W i eby e) SPI_W i eby e = ((SPIValue32 & 0xFF000000) >> 24) # W i e he las (mos signi ican ) by e HAL_SPI_ReadW i e(SPI_W i eby e) de WRITE_16( SPIValue16): SPI_W i eby e = (SPIValue16 & 0x00FF) # W i e he i s (leas signi ican ) by e HAL_SPI_ReadW i e(SPI_W i eby e) SPI_W i eby e = ((SPIValue16 & 0xFF00) >> 8) # W i e he las (mos signi ican ) by e HAL_SPI_ReadW i e(SPI_W i eby e) de WRITE_8( SPIValue8): # W i e he da a by e HAL_SPI_ReadW i e(SPIValue8) de READ_32(): # Read he i s da a by e ( his is he leas signi ican by e o he egis e ). SPI w i es ou dummy by e o 0x00 # Ge he by e which was ead by he low-le el MCU ou ine SPI_DWo dRead = HAL_SPI_ReadW i e(0x00) # Read he ac ual da a by e. We pass a 0x00 in o he SPI ou ine since i always w i es when i eads # Ge he by e which was ead by he low-le el MCU ou ine DWo dTemp = HAL_SPI_ReadW i e(0x00) # Pu he by e in o a 32-bi a iable (shi ed 8 bi s up) SPI_DWo dRead |= (DWo dTemp << 8) Anexo 68 68 # Read he ac ual da a by e. We pass a 0x00 in o he SPI ou ine since i always w i es when i eads # Ge he by e which was ead by he low-le el MCU ou ine DWo dTemp = HAL_SPI_ReadW i e(0x00) # Pu he by e in o a 32-bi a iable (shi ed 16 bi s up) SPI_DWo dRead |= (DWo dTemp << 16) # Read he ac ual da a by e. We pass a 0x00 in o he SPI ou ine since i always w i es when i eads # Ge he by e which was ead by he low-le el MCU ou ine DWo dTemp = HAL_SPI_ReadW i e(0x00) # Pu he by e in o a 32-bi a iable (shi ed 24 bi s up) SPI_DWo dRead |= (DWo dTemp << 24) # Re u n he by e which we ead e u n(SPI_DWo dRead) de READ_8(): # Read he da a by e. We pass a 0x00 in o he SPI ou ine since i always w i es when i eads # SPI_W i eby e = 0x00; # Ge he by e which was ead by he low-le el MCU ou ine SPI_Readby e = HAL_SPI_ReadW i e(0x00) # Re u n he by e which we ead e u n(SPI_Readby e) de Hos Command( Hos _Command): # Chip Selec Low HAL_SPI_CSLow() # This is he command being sen SPI_W i eby e = (Hos _Command & 0x3F | 0x40) HAL_SPI_ReadW i e(SPI_W i eby e) # Sending dummy by e # SPI_W i eby e = 0x00 HAL_SPI_ReadW i e(0x00) HAL_SPI_ReadW i e(0x00) # Chip Selec High HAL_SPI_CSHigh() de DummyRead(): # by e Po Read = 0x00; # by e SPI_by e_Read = 0x00; # SPI_W i eby e = 0x00 # Chip Selec Low HAL_SPI_CSLow() # Read/W i e # Sending dummy 00 by e HAL_SPI_ReadW i e(0x00) # Sending dummy 00 by e HAL_SPI_ReadW i e(0x00) # Sending dummy 00 by e HAL_SPI_ReadW i e(0x00) # Chip Selec High HAL_SPI_CSHigh() de FT800_IncCMDO se (Cu en _O se , Command_Size): New_O se = Cu en _O se + Command_Size i (New_O se > 4095): New_O se = (New_O se - 4096) e u n New_O se de ComEspe aFin(): global CMD_O se cmdBu e W =0 cmdBu e Rd=1 while(cmdBu e W != cmdBu e Rd): HAL_SPI_CSLow() SENDADDRESSRD(REG_CMD_WRITE) # Read he alue o he REG_CMD_WRITE egis e cmdBu e W = READ_32() HAL_SPI_CSHigh() HAL_SPI_CSLow() SENDADDRESSRD(REG_CMD_READ) # Read he alue o he REG_CMD_READ egis e 69 cmdBu e Rd = READ_32() HAL_SPI_CSHigh() # Compa o bu e de esc i u a con lec u a. Cuando sean iguales, hab á dejado la pan alla de pin a # Check he ac ual alue o he cu en WRITE egis e (poin e ) CMD_O se = cmdBu e W de Esc ibeRam32( da o): global CMD_O se HAL_SPI_CSLow() # W i ing o nex a ailable loca ion in FIFO (FIFO base add ess + o se ) SENDADDRESSWR(RAM_CMD + CMD_O se ) # Ve ex 2F 01XXXXXX XXXXXXXX XYYYYYYY YYYYYYYY WRITE_32(da o) HAL_SPI_CSHigh() # Mo e he CMD O se since we ha e jus added 4 by es o he FIFO CMD_O se = FT800_IncCMDO se (CMD_O se , 4) de Esc ibeRam16( da o): global CMD_O se HAL_SPI_CSLow() # W i ing o nex a ailable loca ion in FIFO (FIFO base add ess + o se ) SENDADDRESSWR(RAM_CMD + CMD_O se ) # Ve ex 2F 01XXXXXX XXXXXXXX XYYYYYYY YYYYYYYY WRITE_16(da o) HAL_SPI_CSHigh() # Mo e he CMD O se since we ha e jus added 4 by es o he FIFO CMD_O se = FT800_IncCMDO se (CMD_O se , 2) de Esc ibeRam8( da o): global CMD_O se HAL_SPI_CSLow() # W i ing o nex a ailable loca ion in FIFO (FIFO base add ess + o se ) SENDADDRESSWR(RAM_CMD + CMD_O se ) # Ve ex 2F 01XXXXXX XXXXXXXX XYYYYYYY YYYYYYYY WRITE_8(da o) HAL_SPI_CSHigh() # Mo e he CMD O se since we ha e jus added 4 by es o he FIFO CMD_O se = FT800_IncCMDO se (CMD_O se , 1) de Esc ibeRamTx (cadena): i=0 while(i<len(cadena)) : Esc ibeRam8(cadena[i]) i=i+1 Esc ibeRam8(0) de Comando( COMM): global CMD_O se HAL_SPI_CSLow() # W i ing o nex a ailable loca ion in FIFO (FIFO base add ess + o se ) SENDADDRESSWR(RAM_CMD + CMD_O se ) # W i e he DL_START command WRITE_32(COMM) HAL_SPI_CSHigh() # Mo e he CMD O se since we ha e jus added 4 by es o he FIFO CMD_O se = FT800_IncCMDO se (CMD_O se , 4) de ComVe ex2 ( x, y): """ A gs: x(in ): coo denada en x. y(in ): coo denada en y. Re u ns: oid """ global CMD_O se coo d=x coo d=coo d<<19 coo d=coo d+ (y<<4) HAL_SPI_CSLow() # W i ing o nex a ailable loca ion in FIFO (FIFO base add ess + o se ) SENDADDRESSWR(RAM_CMD + CMD_O se ) # Ve ex 2F 01XXXXXX XXXXXXXX XYYYYYYY YYYYYYYY WRITE_32(0x40000000+coo d) HAL_SPI_CSHigh() # Mo e he CMD O se since we ha e jus added 4 by es o he FIFO Anexo 70 70 CMD_O se = FT800_IncCMDO se (CMD_O se , 4) de ComColo ( R, G, B): """ A gs: R(in ): 0-255 de onalidad oja. G(in ): 0-255 de onalidad e de. B(in ): 0-255 de onalidad azul. Re u ns: oid """ i PANTALLA==3: colo =(R<<8)+G colo =(colo <<8)+B else: colo =(B<<8)+G colo =(colo <<8)+R # Colo RGB 00000100 BBBBBBBB GGGGGGGG RRRRRRRR (B/G/R = Colou alues) Comando(0x04000000+colo ) de ComTXT( x, y, uen e, ops, cadena): """ A gs: x(in ): coo denada en el eje X. y(in ): coo denada en el eje Y. uen e(in ): ango pe mi ido de 0 a 31, nos pe mi e elegi la uen e. ops(in ): alo 0 indica que las coo denadas son del pixel supe io izquie do, ambi茅n puede ene el alo de: OPT_CENTERX, OPT_CENTERY. Cadena(cha ): ex o a ep esen a . Re u ns: oid """ Esc ibeRam32(CMD_TEXT) Esc ibeRam16(x) Esc ibeRam16(y) Esc ibeRam16( uen e) Esc ibeRam16(ops) i=0 while(i<len(cadena)) : Esc ibeRam8(in . om_by es(cadena[i].encode(),"big")) i=i+1 Esc ibeRam8(0) PadFIFO() de ComNum( x, y, uen e, ops, Num): """ A gs: x(in ): coo denada en el eje X. y(in ): coo denada en el eje Y. uen e(in ): ango pe mi ido de 0 a 31, nos pe mi e elegi la uen e. ops(in ): alo 0 indica que las coo denadas son del pixel supe io izquie do, ambi茅n puede ene el alo de: OPT_CENTERX, OPT_CENTERY. Pa a n煤me os con signo usa OPT_SIGNED. Num(long): n煤me o a ep esen a . Re u ns: oid """ Esc ibeRam32(CMD_NUMBER) Esc ibeRam16(x) Esc ibeRam16(y) Esc ibeRam16( uen e) Esc ibeRam16(ops) Esc ibeRam32(Num) PadFIFO() de ComTeclas( x, y, w, h, uen e, ops, Keys): """ A gs: x(in ): posición X del 茅 ice supe io izquie do del Sc ollba . y(in ): posición Y del 茅 ice supe io izquie do del Sc ollba . w(in ): longi ud en X del Sc ollba . h(in ): longi ud en Y del Sc ollba . uen e(in ): ango pe mi ido de 0 a 31, nos pe mi e elegi la uen e ops(in ): 0 si que emos 3D, OPT_FLAT pa a qui a lo Keys(cha ): ex o que que emos que apa ezca en la ecla a c ea Re u ns: oid 71 """ Esc ibeRam32(CMD_KEYS) Esc ibeRam16(x) Esc ibeRam16(y) Esc ibeRam16(w) Esc ibeRam16(h) Esc ibeRam16( uen e) Esc ibeRam16(ops) i=0 while(i<len(Keys)) : Esc ibeRam8(in . om_by es(Keys[i].encode(),"big")) i=i+1 Esc ibeRam8(0) PadFIFO() de Ejecu a_Lis a(): """ A gs: oid Re u ns: oid """ HAL_SPI_CSLow() SENDADDRESSWR(REG_CMD_WRITE) WRITE_16(CMD_O se ) HAL_SPI_CSHigh() de PadFIFO(): """ A gs: oid Re u ns: oid """ pad=CMD_O se & 0x0003 i pad>0: i=0 while i<4-pad : Esc ibeRam8(0) i=i+1 de Dibuja(): """ A gs: oid Re u ns: oid """ Comando(CMD_DISPLAY) Comando(CMD_SWAP) Ejecu a_Lis a() de Inicia_pan alla(): # Pu he Powe Down. pin high o wake FT800 HAL_SPI_PDhigh() DELAY() # Read loca ion 0 o wake up FT800 DummyRead() # Change he PLL o ex e nal clock - op ional #Hos Command(FT_GPU_EXTERNAL_OSC) # Ensu e con igu ed o 48 MHz Hos Command(FT_GPU_PLL_48M) DELAY() # Rese he co e Hos Command(FT_GPU_CORE_RESET) DELAY() # Read add ess 0 o ensu e FT800 is ac i e Hos Command(FT_GPU_ACTIVE_M) # Read he Chip ID o check comms wi h he FT800 - should be 0x7C chipid = 0x00 while(chipid != 0x7C): # CS low HAL_SPI_CSLow() # Send he add ess SENDADDRESSRD(REG_ID) Anexo 72 72 # Read he ac ual alue chipid = READ_8() # Si el p og ama es a pillado aqui, es que no es a bien conec ada la placa. CS high HAL_SPI_CSHigh() DELAY() # ============================================================= # W i e he display egis e s on he FT800 o you pa icula display # ============================================================= HAL_SPI_CSLow() SENDADDRESSWR(REG_HCYCLE) WRITE_16(HCYCLE) HAL_SPI_CSHigh() HAL_SPI_CSLow() SENDADDRESSWR(REG_HOFFSET) WRITE_16(HOFFSET) HAL_SPI_CSHigh() HAL_SPI_CSLow() SENDADDRESSWR(REG_HSYNC0) WRITE_16(HSYNC0) HAL_SPI_CSHigh() HAL_SPI_CSLow() SENDADDRESSWR(REG_HSYNC1) WRITE_16(HSYNC1) HAL_SPI_CSHigh() HAL_SPI_CSLow() SENDADDRESSWR(REG_VCYCLE) WRITE_16(VCYCLE) HAL_SPI_CSHigh() HAL_SPI_CSLow() SENDADDRESSWR(REG_VOFFSET) WRITE_16(VOFFSET) HAL_SPI_CSHigh() HAL_SPI_CSLow() SENDADDRESSWR(REG_VSYNC0) WRITE_16(VSYNC0) HAL_SPI_CSHigh() HAL_SPI_CSLow() SENDADDRESSWR(REG_VSYNC1) WRITE_16(VSYNC1) HAL_SPI_CSHigh() HAL_SPI_CSLow() SENDADDRESSWR(REG_SWIZZLE) WRITE_16(2) HAL_SPI_CSHigh() HAL_SPI_CSLow() SENDADDRESSWR(REG_PCLK_POL) WRITE_16(PCLK_POL) HAL_SPI_CSHigh() HAL_SPI_CSLow() SENDADDRESSWR(REG_HSIZE) WRITE_16(HSIZE) HAL_SPI_CSHigh() HAL_SPI_CSLow() SENDADDRESSWR(REG_VSIZE) WRITE_16(VSIZE) HAL_SPI_CSHigh() HAL_SPI_CSLow() 73 SENDADDRESSWR(REG_PCLK) WRITE_16(PCLK) HAL_SPI_CSHigh() # ================================================================= # Con igu e he ouch sc een # ================================================================== HAL_SPI_CSLow() SENDADDRESSWR(REG_TOUCH_RZTHRESH) WRITE_16(1200) HAL_SPI_CSHigh() # ================================================================== # Send an ini ial display lis which will clea he sc een o a black colou # ================================================================== # Se he colou which is used when he colou bu e is clea ed HAL_SPI_CSLow() SENDADDRESSWR(RAM_DL+0) WRITE_32(0x02000000) HAL_SPI_CSHigh() # Clea he Colou , S encil and Tag bu e s. This will se he sc een o he 'clea ' colou se abo e. HAL_SPI_CSLow() SENDADDRESSWR(RAM_DL+4) WRITE_32(0x26000007) HAL_SPI_CSHigh() # Display command ends he display lis HAL_SPI_CSLow() SENDADDRESSWR(RAM_DL+8) WRITE_32(0x00000000) HAL_SPI_CSHigh() # W i ing o he DL_SWAP egis e ells he Display Engine o ende he new sc een designed abo e. HAL_SPI_CSLow() SENDADDRESSWR(REG_DLSWAP) WRITE_32(0x00000002) HAL_SPI_CSHigh() # ================================================================== # Se he GPIO pins o he FT800 o enable he display now # ================================================================== # no e: Re e o he GPIO sec ion in he FT800 da ashee and also he connec ions o he GPIO # used on he pa icula de elopmen module being used # Bi 7 enables he LCD Display. I is se o ou pu d i ing high # Bi 1 enables he Audio Ampli ie . I is se o ou pu d i ing low o shu down he ampli ie since audio no used he e # Bi 0 is unused bu se o ou pu d i ing high. HAL_SPI_CSLow() SENDADDRESSWR(REG_GPIO_DIR) WRITE_8(0x83) Re e encias 80 80 REFERENCIAS [1] In o oadic os(2013). La pan alla ác il: sus o ígenes. Consul ado en: h ps://in o adic os.com/la-pan alla- c il-sus-o genes/ [2] Wikipedia(2019). Apple New on. Consul ado en: h ps://es.wikipedia.o g/wiki/Apple_New on [3] Xa aca(2014). Feliz ein e cumpleaños, IBM Simon Pe sonal: la imagen de la semana. Consul ado en: h ps://www.xa aka.com/his o ia- ecnologica/ eliz- ein e-cumpleanos-ibm-simon-pe sonal-la-imagen-de-la- semana-1 [4]Ci cui bank. Nin endo DS. Consul ado en: h ps://ci cui bank.com/p oduc s/nin endo-ds [5]Wikipedia(2019). Pilo 1000. Consul ado en: h ps://es.wikipedia.o g/wiki/Pilo _1000 [6]Wikipedia(2019). Pan alla ác il. Consul ado en: h ps://es.wikipedia.o g/wiki/Pan alla_ %C3%A1c il#Tipos [7] And ew P zybylski, «Las pan allas digi ales son aho a una pa e in ínseca de la in ancia mode na, de la gene ación de los llamados na i os digi ales» e is a Psychological Science, Uni e sidad de Ox o d, 2017. [8] Ada ui (2019). Ada ui HUZZAH32-ESP32 Fea he Boa d. Consul ado en: h ps://www.ada ui .com/p oduc /3619 [9] FTDChip(2019). VM800B-FT800. Consul ado en: h ps://www. dichip.com/P oduc s/Modules/VM800B.h ml [10] In o mación ob enida de las páginas Ada ui (2019) y BRTChip(2019). Consul ado en: h ps://www.ada ui .com/p oduc /3619 h ps://b chip.com/p oduc / m800b35a-bk/ 81 [11] Py hon(2019).Welcome o Py hon. Consul ado en: h ps://www.py hon.o g/ [12] Py hon(2019). Download Py hon. Consul ado en: h ps://www.py hon.o g/ [13] Fáb icaDigi al(2019). Ada ui Huzzah32- ESP32 Fea he . Consul ado en: h ps:// ab icadigi al.o g/ u o iales/ada ui -huzzah32-esp32- ea he / [14] FTDiChip (2014). FT800 Se ies p og amme guide (pág. 188). Consul ado en: h ps://www. dichip.com/Suppo /Documen s/P og amGuides/FT800%20P og amme s%20Guide.pd [15] FTDiChip (2014). FT800 Se ies p og amme guide (pág 195). Consul ado en: h ps://www. dichip.com/Suppo /Documen s/P og amGuides/FT800%20P og amme s%20Guide.pd Bibliog a ía 82 82 Bibliog a ía Páginas consul adas a la ho a de ealiza el es udio sob e la his o ia de las pan allas ác iles, así como sus ipos y clasi icaciones: h ps://in o adic os.com/la-pan alla- c il-sus-o genes/ h ps://www.xa akamo il.com/desa ollo/pan allas- ac iles-capaci i as- s- esis i as h ps://www.lain o macion.com/salud/in es igacion-medica/exposicion-pan allas-consecuencias-nega i as- adolescen es_0_990802422.h ml h ps://www. ucanaldesalud.es/es/ oz-especialis a/e ec os-uso-excesi o-pan allas- ac iles h ps://es.wikipedia.o g/wiki/Pan alla_ %C3%A1c il#Tipos Documen ación empleada pa a conoce y asen a cie a base en el campo de la p og amación en Mic oPy hon, además de su impo ancia espec o a o os lenguajes: h ps:// eslabem.com/blog/que-es-mic opy hon/ h ps://ap endiendoa duino.wo dp ess.com/ ag/mosi/ h p://ligdigonzalez.com/po -que-u iliza -py hon-pa a-machine-lea ning/ h ps://www.ins uc ables.com/id/Mic oPy hon-and-UPyC a -on-ESP32/ h ps://b chip.com/ m800b- 800-de elopmen -pla o m/ Páginas empleadas como ayuda a la ho a de p og ama la lib e ía, ya sea po el uso de cie as unciones ex e nas como po conoce los equisi os de la pan alla usada: h p://docs.mic opy hon.o g/en/ 1.9.3/wipy/lib a y/machine.Pin.h ml h p://docs.mic opy hon.o g/en/ 1.9.3/wipy/lib a y/u ime.h ml h p://docs.mic opy hon.o g/en/ 1.9.3/wipy/lib a y/machine.h ml h ps://www. dichip.com/Suppo /Documen s/P og amGuides/FT800%20P og amme s%20Guide.pd h ps://docs.mic opy hon.o g/en/la es /lib a y/uc ypes.h ml h ps://www. dichip.com/Suppo /Documen s/AppNo es/AN_275_FT800_Example_wi h_A duino.pd h ps://cdn-lea n.ada ui .com/downloads/pd /ada ui -huzzah32-esp32- ea he .pd h ps://www. dichip.com/Suppo /Documen s/Da aShee s/ICs/DS_FT800.pd h ps://docs.mic opy hon.o g/en/la es /esp32/ u o ial/in o.h ml 83 ÍNDICE DE CONCEPTOS No se encuen an en adas de índice. Glosa io 84 84 GLOSARIO ISO: In e na ional O ganiza ion o S anda diza ion 4 UNE: Una No ma Española 4