scieee Science in your language
[es] (orig)

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

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.

Read accessible full text

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

Author: Martín Jiménez, Danny
Year: 2019
Source: https://idus.us.es/bitstreams/17a0face-3ee5-40bc-af90-dc815228a0a0/download
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