Usodela Raspberri Pi

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 117

ESCUELA POLITÉCNICA NACIONAL

ESCUELA DE FORMACIÓN DE TECNÓLOGOS

DESARROLLO DE MÓDULOS CON RASPBERRY PI UTILIZANDO


COMUNICACIONES INALÁMBRICAS, PARA EL LABORATORIO DE
MICROPROCESADORES DE LA ESFOT

TRABAJO PREVIO A LA OBTENCIÓN DEL TÍTULO DE TECNÓLOGO EN


ELECTRÓNICA Y TELECOMUNICACIONES

JONATHAN EDUARDO ORTIZ ORDOÑEZ


[email protected]

MARCO ANDRÉS PILLALAZA QUIJIA


[email protected]

DIRECTOR: Ing. Fanny Flores, MSc.


[email protected]

CODIRECTOR: Ing. Mónica Vinueza, MSc.


[email protected]

Quito, Julio 2018


DECLARACIÓN

Nosotros, Jonathan Eduardo Ortiz Ordoñez y Marco Andrés Pillalaza Quijia declaramos
bajo juramento que el trabajo aquí descrito es de nuestra autoría; que no ha sido
previamente presentada para ningún grado o calificación profesional; y, que hemos
consultado las referencias bibliográficas que se incluyen en este documento.

A través de la presente declaración cedemos nuestros derechos de propiedad intelectual


correspondientes a este trabajo, a la Escuela Politécnica Nacional, según lo establecido
por la Ley de Propiedad Intelectual, por su Reglamento y por la normatividad institucional
vigente.

Jonathan Eduardo Ortiz Ordoñez Marco Andrés Pillalaza Quijia

ii
CERTIFICACIÓN

Certifico que el presente trabajo fue desarrollado por Jonathan Eduardo Ortiz Ordoñez y
Marco Andrés Pillalaza Quijia, bajo mi supervisión.

Ing. Fanny Flores Ing. Mónica Vinueza


DIRECTOR DEL PROYECTO CODIRECTOR DEL PROYECTO

ii
DEDICATORIA
Dedico este proyecto a mis padres quienes han estado durante mi carrera desde el
inicio y han sabido inculcarme los valores de perseverancia, honestidad, humildad,
lealtad, y dedicación. A mis hermanas que son parte de mi motivo de superación. A mi
novia Salomé por su cariño, quien ha sido mi pilar para sostenerme cuando me he
sentido rendido. A aquellos excelentes profesores que han dejado su palabra de
enseñanza en mi memoria. Dedico este trabajo a todos ellos ya que he alcanzado un
logro importante en mi vida.
Jonathan Ortiz

A Dios, por darme sabiduría y guiarme en cada paso, en cada actividad que realizo y
permitirme estar en este punto de mi vida.
A mi padre Luis Alfonso y a mi madre Olga Holinda, mi total agradecimiento por su
apoyo, su cariño, su comprensión y su paciencia. Siempre pendientes primero de la
necesidad de sus hijos. Gracias por sus valiosos consejos, sus valores inculcados, su
humildad y la motivación a ser cada día una mejor persona, este logro ha sido gracias
a ustedes, Dios les pague padres.
A mis hermanos queridos Jorge, Cristina y Fernando, por compartir su alegría, sus
historias, su conocimiento y apoyarme en todo momento.
A Jessy, por su apoyo incondicional en los momentos malos y buenos, por sus
palabras de aliento y motivación; eres una mujer especial y luchadora, gracias por
confiar en mí y compartir tu vida conmigo.
Andrés Pillalaza

LLL
ii
i
AGRADECIMIENTO
A la Escuela Politécnica Nacional y a la Escuela de Formación de Tecnólogos por
brindarnos la experiencia del conocimiento, y por todo el aprendizaje obtenido en sus
aulas.

A los docentes quienes nos supieron impartir y compartir sus conocimientos en cada
hora de clase, gracias por endurar nuestro carácter y moldear nuestras mentes para
el éxito.

A la Ing. Fanny Flores por darnos la oportunidad para realizar nuestra tesis, por ser
una excelente guía durante este proyecto, por la paciencia y confianza brindada para
la culminación del mismo.

iv
TABLA DE CONTENIDOS
DECLARACIÓN …………................................................................................................................... ii
CERTIFICACIÓN ................................................................................................................................... ii
DEDICATORIA ……………………………………………………………………………………… ii
AGRADECIMIENTO............................................................................................................................. iv
TABLA DE CONTENIDOS .................................................................................................................... v
ÍNDICE DE FIGURAS ......................................................................................................................... viii
ÍNDICE DE TABLAS ............................................................................................................................. x
RESUMEN.............................................................................................................................................. xi
ABSTRACT ........................................................................................................................................... xii
1. INTRODUCCIÓN ............................................................................................................................... 1
1.1 MARCO TEÓRICO ....................................................................................................................... 2
Análisis de la tecnología Raspberry Pi 3 ...................................................................................... 2
Tarjeta Raspberry Pi 3.................................................................................................. 2
Chip CYW43438 .......................................................................................................... 3
Chip antena cerámica .................................................................................................. 6
Puertos GPIO ............................................................................................................... 6
Raspbian OS ................................................................................................................ 6
Lenguaje de programación Python ............................................................................... 7
Análisis de los dispositivos que se conectarán a la tarjeta Raspberry Pi 3 .................................... 7
Módulo GPS ................................................................................................................. 7
Dispositivo Android....................................................................................................... 8
Display LCD 16x2......................................................................................................... 8
Diodo LED .................................................................................................................... 8
Resistor ........................................................................................................................ 9
Trimmer........................................................................................................................ 9
Pulsador ....................................................................................................................... 9
DIP Switch.................................................................................................................... 9
2. METODOLOGÍA ................................................................................................................................ .9
3. RESULTADOS Y DISCUSIÓN ........................................................................................................ .11

v
3.1 DISEÑO DE LOS MÓDULOS.................................................................................................... 11
Conexión de puertos GPIO a la placa base ..................................................................... 12
Conexión de leds indicadores y pulsadores .................................................................... 12
Conexión del display LCD 16x2 ...................................................................................... 13
Conexión del módulo GPS en la placa base .................................................................... 13
Diagrama final de todas las conexiones en el módulo didáctico ....................................... 14
3.2 CONSTRUCCIÓN DE LOS MÓDULOS. .................................................................................. 14
Ruteo del circuito ........................................................................................................... 14
Medidas de la placa base ............................................................................................... 15
Proceso de construcción de la placa base ...................................................................... 15
Implementación del módulo............................................................................................ 16
Conexionado y etiquetado .............................................................................................. 17
3.3 CONFIGURACIÓN PREVIA ..................................................................................................... 18
Instalación del sistema operativo Raspbian Jessie en la tarjeta Raspberry Pi 3 ................. 18
Configuración previa de WiFi en los módulos .................................................................. 20
Configuración previa de Bluetooth en los módulos .......................................................... 25
Comunicación bluetooth entre dispositivo Android con Raspberry Pi............................ 25
Comunicación bluetooth entre dos Raspberry Pi ......................................................... 26
Configuración previa de GPS en los módulos ................................................................. 27
3.4 DESARROLLO DE PRÁCTICAS DE LABORATORIO .......................................................... 29
Práctica de WiFi ............................................................................................................. 29
Práctica de Bluetooth ..................................................................................................... 32
Práctica de GPS............................................................................................................. 37
3.5 PRUEBAS DE FUNCIONAMIENTO ........................................................................................ 39
WiFi ............................................................................................................................... 39
Bluetooth ....................................................................................................................... 40
GPS .......................................................................................................................................... 41
3.6 COSTOS DEL PROYECTO ........................................................................................................ 43
4. CONCLUSIONES Y RECOMENDACIONES ................................................................................ 44
4.1 CONCLUSIONES ....................................................................................................................... 44
4.2 RECOMENDACIONES .............................................................................................................. 46

vi
5. REFERENCIAS BIBLIOGRÁFICAS .............................................................................................. 48
ANEXOS............................................................................................................................................... 52
ANEXO A: SUSTENTO TEÓRICO. .................................................................................................... 53
A.1 ANÁLISIS DE LA TECNOLOGÍA RASPBERRY PI 3 .......................................................... 53
A.1.1 Detalles del chip CYW43438............................................................................. 53
A.1.2 Detalles de la antena cerámica ......................................................................... 54
A.2 ANÁLISIS DE LOS DISPOSITIVOS QUE SE CONECTARÁN A LA TARJETA RASPBERRY PI 3 ....... 54
A.2.1 Medición de la distancia de los satélites............................................................ 54
A.2.2 Detalles de Android ........................................................................................... 55
ANEXO B: CÓDIGOS DE PROGRAMACIÓN .............................................................................. 56
B.1 PRÁCTICA DE BLUETOOTH: Dispositivo Android con Raspberry Pi 3 ....................... 56
B.2 PRÁCTICA DE BLUETOOTH: Dos módulos didácticos Raspberry Pi. ............................... 57
Programa Servidor ..................................................................................................... 57
Programa Cliente ....................................................................................................... 58
B.3 PRÁCTICA DE GPS: Manejo de un módulo GPS............................................................... 59
ANEXO C: HOJAS GUÍA DE ESTUDIANTE ................................................................................ 60
C.1 PRÁCTICA DE WIFI ........................................................................................................... 60
C.2 PRÁCTICA DE BLUETOOTH ................................................................................................... 63
C.3 PRÁCTICA DE GPS ................................................................................................................. 65
ANEXO D: HOJAS GUÍA DE INSTRUCTOR. .............................................................................. 68
D.1 PRÁCTICA DE WIFI ........................................................................................................... 68
D.2 PRÁCTICA DE BLUETOOTH. ........................................................................................... 80
D.3 PRÁCTICA DE GPS. ................................................................................................................ 96

vii
ÍNDICE DE FIGURAS
Figura 1.1 Partes de la tarjeta Raspberry Pi 3 .........................................................................3
Figura 1.2 Chip CYW43438 para WiFi y Bluetooth ................................................................. 4
Figura 1.3 Pines GPIO de la tarjeta Pi ................................................................................... 6
Figura 1.4 Raspbian_logo ...................................................................................................... 7
Figura 1.5 Especificaciones del Módulo GPS......................................................................... 7
Figura 1.6 Blue Dot App ......................................................................................................... 8
Figura 3.1 Partes del módulo didáctico implementado ..........................................................11
Figura 3.2 Puente y pines de conexión entre la tarjeta Pi y la placa base .............................12
Figura 3.3 Conexión de leds y pulsadores en la placa base..................................................12
Figura 3.4 Conexión del display LCD 16x2 con la tarjeta Pi ..................................................13
Figura 3.5 Conexión del módulo GPS con la tarjeta Pi ..........................................................13
Figura 3.6 Conexiones en todo el módulo didáctico ..............................................................14
Figura 3.7 Diseño y ruteo de la placa base ...........................................................................15
Figura 3.8 Pista de cobre y suelda en la placa base .............................................................16
Figura 3.9 Lcd asegurada a la placa base ............................................................................16
Figura 3.10 Módulo GPS ...................................................................................................... 16
Figura 3.11 Base de acrílico con tuercas de ajuste y empaques ...........................................17
Figura 3.12 Etiquetas de identificación..................................................................................17
Figura 3.13 Ventana del software SD Card Formatter ...........................................................18
Figura 3.14 Ventana del software Etcher ..............................................................................19
Figura 3.15 Conexión completa del módulo didáctico ...........................................................19
Figura 3.16 Escritorio del SO Raspbian Jessie en la tarjeta Pi ..............................................20
Figura 3.17 Líneas editadas para configurar el servidor DHCP .............................................21
Figura 3.18 Ingresando el nombre del Adaptador WiFi .........................................................21
Figura 3.19 Ingresando la ubicación del archivo de configuración.........................................22
Figura 3.20 Direccionando la ubicación del archivo de configuración....................................23
Figura 3.21 Línea de comando para reenviar direcciones IP en el arranque .........................23
Figura 3.22 Líneas para crear la traducción de red entre eth0 y wlan0 .................................24
Figura 3.23 Tablas de puertos y activación de puertos automáticamente .............................24

viii
Figura 3.24 Access Point funcionando correctamente, ENABLED ....................................... 25
Figura 3.25 Módulo GPS UBLOX NEO-6M .......................................................................... 28
Figura 3.26 Diagrama de flujo de la práctica de WiFi en el módulo didáctico ........................31
Figura 3.27 Diagrama de flujo de la práctica de Blue Dot con Raspberry Pi ......................... 34
Figura 3.28 Diagrama de flujo de la práctica con dos Raspberry Pi,programa Servidor……. 35
Figura 3.29 Diagrama de flujo de la práctica con dos Raspberry Pi,progrma Cliente............ 36
Figura 3.30 Diagrama de flujo de la práctica con GPS ......................................................... 38
Figura 3.31 Celular conectado a WiFi a través del access point: MÓDULO_2 ..................... 40
Figura 3.32 Funcionamiento de los dos ejercicios propuestos en la práctica con bluetooth.. 41
Figura 3.33 Latitud, longitud y altitud se muestra en la LCD 16X2 ....................................... 42
Figura 3.34 Recepción de datos en tiempo real enviados por el GPS .................................. 42

ix
ÍNDICE DE TABLAS
Tabla 3.1: Costos del Proyecto. ............................................................................................43

x
RESUMEN
Debido al surgimiento de nuevas tecnologías en la industria del control electrónico, los
dispositivos de programación que se usan hoy en día en los laboratorios de la Escuela
de Formación de Tecnólogos son obsoletos, lo cual imposibilita a los estudiantes tener
conocimientos actualizados para un buen desempeño en el campo laboral.

Para afrontar esta problemática se desarrolló un módulo didáctico basado en una


tarjeta de nueva generación que hace uso de la programación en código abierto y
nuevas tecnologías que permitirán dar a los estudiantes una visión más actualizada de
los equipos que se están usando en el campo laboral hoy en día.

En primer plano, se analizaron las tecnologías que conformarán el módulo didáctico,


empezando por el módulo central el cual consta de una tarjeta Raspberry Pi 3 con un
sistema operativo adaptativo, además esta tarjeta tiene un módulo de WiFi y Bluetooth
integrados en la misma, por otro lado se añadió un módulo externo GPS mediante el
cual se observarán los datos de posicionamiento global en una LCD y el manejo de los
mismos.

La implementación del módulo está realizada para el uso en los laboratorios, por lo
que se desarrollaron prácticas por cada una de las tecnologías propuestas, como lo
son WiFi, Bluetooth y GPS, y su respectiva configuración y programación, obteniendo
así una herramienta de fácil manipulación e intuitiva, para mejorar el aprendizaje del
estudiante.

Palabras clave: Raspberry Pi, Python, WiFi, Bluetooth, GPS, módulo, prácticas,
programación, laboratorio.

xi
ABSTRACT

Due to the emergence of new technologies in the electronic control industry, the
programming devices that are used today in the laboratories of the Technological
Training School are obsolete, which makes it impossible for students to have up-to-
date knowledge for a good performance in the labor field.

To face this problem, a didactic module was developed based on a new generation
card that makes use of open source programming and new technologies that will allow
students to have more up-to-date view of the equipment that is being used in the labor
market today.

In the foreground, the technologies that will make up the didactic module were
analyzed, starting with the central module which consists of a Raspberry Pi 3 card with
an adaptive operating system. This card, also has a WiFi and Bluetooth module
integrated in it. On the other hand, an external GPS module was added, through which
the global positioning data will be observed on an LCD and the handling thereof.

The deployment of the module is made for using it in laboratories, so practices were
developed for each of the proposed technologies, such as WiFi, Bluetooth and GPS,
and their respective configuration and programming; thus, obtaining an easy handling
and intuitive tool, to improve students learning.

Keywords: Raspberry Pi, Python, WiFi, Bluetooth, GPS, module, practices,


programming, laboratory.

xii
1. INTRODUCCIÓN
Actualmente en el Laboratorio de Microprocesadores se trabaja con microcontroladores
PIC (Programmable Interrupt Controller), que salieron al mercado en los años 70’s [1].
Dichos microcontroladores son considerados dispositivos que no han presentado
innovaciones muy relevantes en los últimos años, y que poco a poco han ido perdiendo
presencia en el mercado actual, y en el ámbito educativo. No cubren las expectativas
esperadas por los estudiantes al momento de aplicarlas en el campo tecnológico.
Además, se evidencia una desactualización en los temas que se cubren en el currículum
académico, los cuales no tratan sobre las tecnologías usadas en la actualidad. [2]

La materia de Microprocesadores está más encaminada al lenguaje ensamblador [3], el


cual no es el predominante en el mercado. Este lenguaje no resulta muy práctico,
teniendo en cuenta que actualmente existen varios lenguajes de programación que
proporcionan soluciones más avanzadas y amigables para los estudiantes. En el
laboratorio no se cuenta con equipos suficientes para realizar las prácticas. Además, los
alumnos tienen equipos o elementos en mal estado, y a pesar de que la programación
del PIC esté realizada correctamente, por motivos de hardware, se presentan problemas
al momento de probar los circuitos electrónicos, lo cual consume tiempo de aprendizaje
para el estudiante.

En la actualidad, en el ámbito educativo, en el desarrollo de proyectos electrónicos con


mayores exigencias y para soluciones tecnológicas, se está optando por usar
plataformas de programación que están en auge [4], tales como: Arduino y Raspberry
Pi. Estas tecnologías ofrecen un ambiente de trabajo más accesible con un lenguaje de
programación de alto nivel e intuitivo, donde es posible encontrar una infinidad de
aplicaciones; gracias a las características de estas plataformas se pueden encontrar
nuevas y novedosas soluciones para el desarrollo de hardware y software.

Raspberry Pi es una plataforma de desarrollo bastante amigable con el programador,


maneja protocolos de comunicación en red, comunicación serial, comunicaciones
inalámbricas, que la convierten en una poderosa herramienta a la hora de proponer
1
soluciones tecnológicas. Raspberry Pi es un ordenador integrado en una pequeña placa
[5]. Cuenta con varios puertos de comunicación que permiten conectar una amplia gama
de módulos y otros dispositivos tales como pantalla, teclado, mouse, dispositivos USB,
cable Ethernet, puerto de audio/micrófono y video, módulo GPS (Global Positioning
System); además, las tecnologías WiFi y Bluetooth vienen integradas en esta versión de
Raspberry Pi [6].

Con el manejo de un software libre como Linux, Raspberry Pi es más accesible para todo
el público que lo desee usar como una innovadora alternativa [7].

Se desarrollarán nueve módulos didácticos basados en tarjetas Raspberry Pi 3. Al


incorporar módulos GPS, WiFi y Bluetooth, se cubren temas que están estrechamente
relacionados con la carrera de telecomunicaciones. Las comunicaciones inalámbricas se
manejan ampliamente hoy en día, es por tal razón que conocer su funcionamiento es muy
importante para solucionar problemas que se presentan en la vida real [8]. Estas
tecnologías son muy utilizadas en aplicaciones móviles.

1.1 MARCO TEÓRICO

Análisis de la tecnología Raspberry Pi 3.

Tarjeta Raspberry Pi 3

Desarrollada por la organización Raspberry Pi, se enfoca en el desarrollo interactivo de


proyectos electrónicos mediante una tarjeta diseñada sobre un procesador de 1.2 Ghz
con la arquitectura de 64bits y una memoria RAM de 1 GB. Contiene un chip que permite
tener integrado en la tarjeta, las tecnologías Bluetooth 4.1 y WLAN (Wireless Local Area
Network) 802.11 b/g/n. Además, posee puertos GPIO (General Purpose Input/Output),
los cuales pueden ser usados como puertos de entrada y salida de datos. Permite el uso
de una tarjeta micro SD (Secure Digital) de 16 Gb, en la cual se instala el sistema
operativo Raspbian para diferentes aplicaciones [6].

2
Integra un puerto de video HDMI (High-Definition Multimedia Interface) para conectar una
pantalla, a través de un adaptador HDMI a VGA (Video Graphics Array). Dispone de un
puerto Ethernet 10/100Mbps para una conexión a Internet. Además, cuenta con cuatro
puertos USB para conectar periféricos de entrada y salida, como: teclado, mouse,
memorias flash USB. Adicionalmente, tiene un puerto mini USB de alimentación, al cual
se conecta un cargador de 5 voltios con una corriente de 2,5 amperios [9]. La tarjeta
Raspberry Pi se observa en la Figura 1.1.

Figura 1.1 Partes de la tarjeta Raspberry Pi 3. [10]

Chip CYW43438

Cypress CYW43438 es una solución de un solo chip altamente integrado, ofrece el más
bajo consumo de energía (menos de 0.1 watts) respecto a la industria para smartphones,
tablets, y una amplia gama de otros dispositivos portátiles, Figura 1.2. El chip incluye una
WLAN de 2,4 GHz, IEEE 802.11 b/g/n MAC (Media Access Control) / banda base /
Bluetooth 4.1 / radio con receptor FM. Además, integra un amplificador de potencia que
cumple con los requisitos de potencia de salida de la mayoría de los sistemas móviles, un
amplificador de bajo ruido para la mejor sensibilidad del receptor y un conmutador RF
(Radio Frecuencia) interno de transmisión-recepción, reduciendo el área de la placa de
circuito impreso. [11] Para más detalle diríjase al Anexo A.1 / A.1.1.

3
Figura 1.2 Chip CYW43438 para WiFi y Bluetooth. [12]

El módulo receptor GPS realiza una búsqueda primaria ubicando primero un satélite, el
cual tiene identificado al módulo pero aún no conoce su ubicación exacta, posteriormente
calcula la distancia a la que se encuentra otro satélite, creando así una intercepción
imaginaria entre los dos satélites. Mientras tanto, el receptor GPS calcula la distancia
detectando un tercer satélite, el cual cierra las tres intercepciones imaginarias para luego
enviar los datos de ubicación al módulo receptor. Para saber a qué altura se encuentra
sobre el nivel del mar, el receptor medirá la distancia a un cuarto satélite creando una
cuarta intercepción para obtener este dato, si el receptor se sincroniza con más satélites,
más exacta será la ubicación. [13]

El Sistema GPS consta de tres partes:


· Segmento espacial: conformado por 24 satélites en órbita a 20200 km de la
superficie terrestre, nombrados como NAVSTAR.
· Segmento usuario: es el receptor insertado en el objeto, persona o vehículo a ser
ubicado, y procesa las señales enviadas por los satélites, mediante trilateración.
Más información en Anexo A.2 / A.2.1.
· Segmento de control: conformado por estaciones terrestres ubicadas
estratégicamente, encargadas del monitoreo de los satélites para su correcto
funcionamiento. [14]

El Estándar NMEA 0183 (National Marine Electronics Association) define las


características eléctricas de interface y protocolo de datos para las comunicaciones entre
equipos, usados en la marina. [15] En base a este estándar se desarrolla el protocolo de

4
datos para GPS, cuyo principal objetivo es proporcionar un orden de los datos que será
usado en los dispositivos receptores de las señales de GPS.

Protocolo RFCOMM (Radio Frequency Communication) es un conjunto de protocolos de


transporte, construido sobre el protocolo L2CAP (Logical Link Control and Adaptation
Protocol). Proporciona sesenta conexiones simultáneas para dispositivos Bluetooth. [16]
RFCOMM es a menudo denominado emulación de puertos serie. El puerto serie de
Bluetooth está basado en este protocolo. Más información en Anexo A.1 / A.1.1.

WiFi: Es una tecnología inalámbrica utilizada para acceder a internet e intercambiar


información entre dispositivos electrónicos sin necesidad de conectarlos mediante cables
físicos. WiFi pertenece al conjunto de tecnologías conocidas como Wireless (sin cables)
con mayor aceptación y uso en la mayoría de dispositivos electrónicos como
smartphones, tablets, ordenadores de sobremesa y portátiles, cámaras digitales o
consolas de videojuegos. Gracias a esta tecnología, se puede disponer de una red de
comunicación entre varios dispositivos y con acceso a internet.

Bluetooth: Actualmente, se emplea la tecnología Bluetooth como un estándar de enlace


de redes, que permite a los usuarios hacer conexiones inalámbricas de corto alcance.
Hace posible la transmisión de voz, imágenes, datos, multimedia, entre otros; teniendo
múltiples usos en la vida cotidiana. Bluetooth implementa ondas de radiofrecuencia de
corto alcance, ya que es uno de los medios de transmisión más sencillos, económicos,
fáciles de configurar y administrar.

Bluetooth Core 4.1 es una actualización evolutiva de la Especificación Core de Bluetooth.


Reúne los apéndices de especificación de Bluetooth Core adoptados (1, 2, 3 y 4) y agrega
nuevas características y beneficios. Bluetooth 4.1 mejora la usabilidad para los
consumidores, potencia la innovación para los desarrolladores de productos y extiende
la base de la tecnología como un enlace esencial para IoT (Internet of Things). Incorpora
novedades importantes de cara al usuario al facilitar la reconexión entre sus dispositivos

5
una vez estos salen y vuelven a entrar en el radio de acción. Además, permite que un
dispositivo funcione como periférico y hub de datos a la par. Mejora la convivencia con
otros protocolos como LTE e intercambio de datos más eficiente. [17]

Chip antena cerámica

El chip antena es utilizado para las tecnologías WiFi y Bluetooth 4.1, soportadas por el
chip CYW43438. Más detalle en Anexo A.1 / A.1.2.

Puertos GPIO

GPIO (General Purpose Input Output) es una interfaz en la cual se pueden conectar
diferentes dispositivos electrónicos, leer sensores y datos de módulos a través de
comunicación serial UART (Universal Asynchronous Receiver-Transmitter), I2C (Inter-
Integrated Circuit). Manejan valores desde 0v a 5v. [18] En la Figura 1.3 se muestran los
puertos GPIO.

Figura 1.3 Pines GPIO de la tarjeta Raspberry Pi 3. [19]

Raspbian OS

Es uno de los sistemas operativos adaptados a la plataforma Raspberry Pi, la


característica principal es que éste puede ser cargado en una micro SD. Desarrollado a

6
partir de Debian de Linux, es de libre distribución y proporciona un manejo óptimo de la
plataforma, mediante un escritorio y el uso de programas básicos, como en una PC
normal [20]. Proporciona un entorno de fácil manejo para la expansión del aprendizaje en
proyectos de aplicación en software y hardware, Figura 1.4.

Figura 1.4 Raspbian_logo. [20]

Lenguaje de programación Python

Permite la integración de sistemas, de manera más eficiente y rápida. [21] Python tiene
la ventaja de que sus códigos son fácilmente legibles gracias a la sangría que hace que
cada programa realizado se programe en bloques de espacios. Maneja un lenguaje de
alto nivel, así como también un gran número de librerías. [22]

Análisis de los dispositivos que se conectarán a la tarjeta Raspberry Pi 3.

Módulo GPS NEO 6M

Un módulo GPS (Global Positioning System) proporciona la ubicación exacta de un


objeto, persona o vehículo en cualquier parte del mundo, mediante una red de satélites
ubicados en órbita con la Tierra. Su exactitud puede ir desde metros hasta centímetros;
tiene aplicaciones tanto en el campo militar como en el campo civil. [23] Algunas
especificaciones del módulo GPS utilizado se muestran en la Figura 1.5.

Figura 1.5 Especificaciones del Módulo GPS. [24]

7
Dispositivo Android

Es un dispositivo móvil basado en el sistema operativo Android de Linux, un núcleo de


sistema operativo libre, gratuito y multiplataforma. Más información en Anexo A.2 / A.2.2.

Blue Dot App permite controlar proyectos de Raspberry Pi de forma inalámbrica. Es un


control remoto Bluetooth fácil de utilizar y de uso libre. [25] El entorno gráfico de Blue Dot
App se observa en la Figura 1.6.

Figura 1.6 Blue Dot App.

Display LCD 16x2

El LCD (Liquid Cristal Display) es un dispositivo empleado para la visualización de


contenidos o información de una forma gráfica, mediante caracteres, símbolos o
pequeños dibujos dependiendo del modelo. Está gobernado por un microcontrolador, el
cual dirige todo su funcionamiento. En este caso, se va a emplear un LCD de 16x2; esto
quiere decir que dispone de 2 filas de 16 caracteres cada una.

Diodo LED

El LED (Light-Emitting Diode) es un dispositivo semiconductor que emite luz de espectro


reducido cuando se polariza de forma directa, la unión PN (positivo-negativo). El LED es
un tipo especial de diodo que trabaja como un diodo común, pero que al ser atravesado
por la corriente eléctrica, emite luz.

8
Resistor

Un resistor también llamado resistencia es un elemento que causa oposición al paso de


la corriente, causando que en sus terminales aparezca una diferencia de voltaje.

Trimmer

Un trimmer o potenciómetro de precisión es utilizado para ajustes de precisión en circuitos


donde se requiere que el usuario pueda modificar ciertos parámetros.

Pulsador

Un pulsador es un operador eléctrico que, cuando se oprime, permite el paso de la


corriente eléctrica y, cuando se deja de oprimir, lo interrumpe. Tiene dos terminales que
sirven como conexión para los circuitos.

DIP Switch

Los interruptores DIP (Dual In - Line Package) son interruptores eléctricos manuales
pequeños que se empaquetan por grupo. Los interruptores DIP también se conocen
como interruptores de palanca, tienen dos posiciones: encendido y apagado.

2. METODOLOGÍA

El proyecto fue elaborado en base a la investigación aplicada, que es el proceso que


busca convertir el conocimiento teórico aprendido en las aulas, en conocimiento práctico
y útil para dar soluciones en la vida real; en este caso, el desarrollo de módulos didácticos
con Raspberry Pi. La implementación de módulos en el laboratorio ayudará a los
estudiantes a innovar y adquirir nuevos conocimientos en el ámbito tecnológico; a su vez,
motivará el interés de investigar y desarrollar nuevas propuestas. Para la construcción de
los módulos se estableció el siguiente procedimiento:

Se investigó información acerca de los dispositivos que se conectan para conformar el


módulo de prácticas; comenzando por la tarjeta Raspberry Pi 3, la cual permite realizar

9
la programación para el funcionamiento del módulo. Se analizó el funcionamiento de los
módulos GPS, WiFi y Bluetooth; cabe recalcar que WiFi y Bluetooth vienen incorporados
en la tarjeta Pi. [7] Para la práctica de GPS se utilizó un módulo externo, verificando
previamente la compatibilidad. [26] [27] Se estudió la plataforma de programación con la
cual se trabajó en la tarjeta Pi, denominada Python, la misma que está basada en la
arquitectura de programación Linux. [28]

El diseño se basa en un dispositivo cómodo, flexible y que se pueda adaptar a todas las
prácticas. Se incluyó elementos como diodos LED indicadores, pulsadores, display LCD,
módulo GPS, adaptador de alimentación con cable USB, cables de conexiones a los
pines GPIO, adaptador HDMI a VGA, una micro SD. Algunos de estos equipos muestran
resultados a los estudiantes, otros permiten ingresar datos a la tarjeta. El módulo GPS y
la LCD se conectan directamente a la tarjeta Raspberry Pi 3; estos equipos tienen un
interruptor individual de encendido y apagado. El módulo final cuenta con todos los
cables y puertos respectivos para el funcionamiento.

Se construyeron nueve módulos, en cada uno de ellos se incluyeron los elementos


necesarios para su óptimo funcionamiento. Para asegurar dichos elementos, se utiliza
tornillos de ½ pulgada; para las conexiones se dispone de cables señalizados mediante
colores. La placa base que porta a todo el módulo está asegurada junto con el PCB
(Printed Circuit Board) respectivo y los elementos; los orificios se realizaron de acuerdo
a la ubicación y medida de cada uno de los elementos que se usan. Para el módulo GPS
y la LCD se realizó una adaptación al módulo principal. Los estudiantes conectarán
varios cables de una manera fácil y segura.

Posteriormente, se procedió a la programación en la tarjeta Pi; se instaló el sistema


operativo Raspbian en una micro SD, la cual es la unidad de almacenamiento de la
tarjeta. Se analizó el lenguaje de programación en el que se trabaja en Raspberry Pi 3,
denominado Python, el cual es un lenguaje de programación multiplataforma y que está
basado en Linux GNU (GNU's Not Unix); se trata de un lenguaje amigable e intuitivo

10
para el estudiante. [7] Se configuraron los comandos para obtener los datos desde el
módulo GPS, su correcta ubicación y lectura de las coordenadas geográficas. Se
definieron los comandos a utilizar para configurar WiFi y Bluetooth.

Se desarrollaron prácticas de laboratorio, las cuales constan de hojas guía para el


profesor y hojas guía para el estudiante. Se desarrolló una práctica por cada tecnología
implementada; en este caso, WiFi, Bluetooth y GPS.

Para finalizar, las pruebas de funcionamiento se realizaron tomando en cuenta los


siguientes aspectos: prueba de cables y conectores, prueba de conexiones, prueba de
fijación de todo el módulo. Además, prueba de configuración y funcionamiento del
sistema operativo Raspbian. Prueba de funcionamiento del módulo GPS configurado y
programado en la tarjeta Pi. Funcionamiento de los módulos WiFi y Bluetooth.

3. RESULTADOS Y DISCUSIÓN

3.1 DISEÑO DE LOS MÓDULOS.

En la Figura 3.1 se muestra el módulo desarrollado, con un diseño cómodo y flexible; aquí
el alumno podrá identificar de manera fácil los elementos del mismo y sus funciones.

Figura 3.1 Partes del módulo didáctico implementado.

11
Conexión de puertos GPIO a la placa base

Se consideró en el diseño un puente de circuito impreso que conectará los puertos GPIO
de entrada y salida de datos de la Raspberry Pi con la placa base, como se ve en la
Figura 3.2. Se incluyó los pines para conectar todos los elementos en la placa base.

Figura 3.2 Puente y pines de conexión entre la tarjeta Pi y la placa base.

Conexión de leds indicadores y pulsadores

Los leds indicadores permitirán observar el funcionamiento de los programas ejecutados,


a su vez mostrarán resultados dependiendo del código de programación. Los pulsadores
conectados a los puertos GPIO envían un estado de “1” lógico para encender los leds y
ejecuta condicionales. Esta conexión se observa en la Figura 3.3.

Cálculo del valor del resistor utilizado: A la salida de los puertos GPIO hay 5V, la corriente
estándar que consume los leds seleccionados es 20mA, entonces: 5V / 20mA = 250 ohm.
Un valor de resistor físico real, cercano a los 250 ohm obtenidos es: resistor de 330 ohm.

Figura 3.3 Conexión de leds y pulsadores en la placa base.

12
Conexión del display LCD 16x2

En la LCD y en la tarjeta Pi se dejan abiertos los siguientes pines para la conexión: Reset,
Enable, D4, D5, D6 y D7, Figura 3.4. La LCD cuenta con un dipswitch de encendido y
apagado manual. El brillo de la LCD se regula mediante un potenciómetro tipo trimmer.

Figura 3.4 Conexión del display LCD 16x2 con la tarjeta Pi.

Conexión del módulo GPS en la placa base

El módulo GPS recibe y envía datos a través de la comunicación UART, este módulo
utiliza dos pines para conectarse con la tarjeta Pi, es el transmisor y el receptor, Figura
3.5. Además, el módulo GPS cuenta con un dipswitch de encendido y apagado manual.

Figura 3.5 Conexión del módulo GPS con la tarjeta Pi.

13
Diagrama final de todas las conexiones en el módulo didáctico

Figura 3.6 Conexiones de todo el módulo didáctico.

3.2 CONSTRUCCIÓN DE LOS MÓDULOS.

Ruteo del circuito

En la Figura 3.7 se muestra el ruteo del circuito completo, para este fin se utilizó el
programa de diseño electrónico denominado Proteus. Se tomó en cuenta el tamaño de
la placa base, la ubicación de la tarjeta Pi y la ubicación de los elementos electrónicos.

14
Figura 3.7 Diseño y ruteo de la placa base.

Medidas de la placa base

La medida de la placa base es de 10cm x 20cm con un corte en la parte superior izquierda
de 6cm x 9cm, esto en función del tamaño, ajuste y ubicación de la tarjeta Raspberry Pi
que va en este espacio. Para la placa base se utiliza una placa fabricada en fibra de
vidrio, la característica principal de esta placa es que se obtiene una pista de cobre más
gruesa y resistente al ser fundida con el estaño.

Proceso de construcción de la placa base

Se realiza el proceso de transferencia y grabado de las pistas en la placa de fibra. Se


utiliza la impresión a láser de todo el circuito en papel couche formato A4. A continuación,
se procede a planchar durante diez minutos al papel couche sobre la placa hasta que las
pistas queden pegadas. Se retira el papel couche con agua.

Para retirar el cobre que no está protegido por la tinta de las pistas transferidas al cobre,
se utilizó acido férrico diluido en agua caliente. La Figura 3.8 muestra la pista que se
utilizó para conectar y comunicar los elementos que serán soldados. Para finalizar, se
perforó las marcas de los huecos donde se colocará cada elemento.

15
Figura 3.8 Pista de cobre y suelda en la placa base.

Implementación del módulo

Una vez soldados todos los elementos en la placa base, se procede a colocar en los
zócalos respectivos la LCD 16x2, misma que irá asegurada a la placa base con dos
tornillos, los cuales están cubiertos con manguera resistente de caucho, Figura 3.9.

Figura 3.9 LCD asegurada a la placa base.

Se coloca el módulo GPS junto con la antena en la caja respectiva y esta se encaja a la
placa base con dos tornillos asegurados dentro de la caja para evitar que este se mueva,
Figura 3.10. Del mismo modo se realiza el cableado respectivo para los pines del módulo
el cual ira conectada a la placa base.

Figura 3.10 Módulo GPS.

16
La placa base se asegura sobre una base de acrílico, la cual tiene una medida de 21cm
x 11cm y un grosor de 6mm, como se muestra en la Figura 3.11.

Para asegurar los elementos a la placa base, se utilizan tornillos de ½ pulgada. Para que
haya un margen de espacio entre la placa base y la placa de acrílico se utiliza una tuerca
intermedia por cada tornillo, a su vez ajusta a los elementos para asegurarlos a la placa
base. Al final va otra tuerca por cada tornillo para asegurar los elementos, esta vez a la
placa de acrílico.

Se realizan los huecos en la placa de acrílico para colocar los tornillos, dependiendo la
ubicación de cada elemento en la placa. Se procede a instalar y ajustar todos los
elementos a las placas, de esta manera obtener el módulo didáctico.

Figura 3.11 Base de acrílico con tuercas de ajuste y empaques.

Conexionado y etiquetado

Se colocan los cables para protoboard en los respectivos zócalos de conexión de la LCD
16x2 y el módulo GPS hacia la tarjeta Pi. Sobre el puente de conexión se encuentra una
etiqueta que identifica el nombre de la Facultad y número de módulo. En la placa de
acrílico que protege a la antena del GPS se etiqueta la identificación de las prácticas que
se realizarán en el módulo, como se muestra en la Figura 3.12.

Figura 3.12 Etiquetas de identificación.

17
3.3 CONFIGURACIÓN PREVIA.

Cabe indicar que todo el procedimiento descrito en la presente sección “Configuración


Previa”, debe ser realizado una única vez en los módulos. No es necesario realizar esta
configuración para cada práctica; los módulos se entregan al laboratorio con la
configuración previa ya realizado.

Instalación del sistema operativo Raspbian Jessie en la tarjeta Raspberry Pi 3

Para iniciar la instalación, se formatea la SD utilizando el software SD Card Formatter,


Figura 3.13.

Figura 3.13 Ventana del software SD Card Formatter.

Después de formatear la SD, se graba Raspbian Jessie en la micro SD utilizando el


software Etcher, Figura 3.14.

18
Figura 3.14 Ventana del software Etcher.

Finalizado el grabado, se coloca el micro SD en el zócalo respectivo de la tarjeta Pi.


Enseguida se conectan todos los cables y dispositivos necesarios a la tarjeta Pi para
poner en funcionamiento al módulo, Figura 3.15.

Figura 3.15 Conexión completa del módulo didáctico.

Después de unos segundos, se muestra en el monitor el sistema operativo Raspbian


Jessie funcionando. Es un escritorio similar al de Microsoft Windows, pero en este caso
se trabaja con un entorno Linux, se observa en la Figura 3.16.

19
Figura 3.16 Escritorio del SO Raspbian Jessie en la tarjeta Pi.

Configuración previa de WiFi en los módulos

Conexionar todo el módulo didáctico y encenderlo, ingresar a la consola de Raspberry Pi:


LX Terminal. Verificar que el cable Ethernet esté conectado y pueda hacer “ping” desde
la tarjeta Raspberry Pi. Ver Anexo D / D.1 / D.1.3 / Numerales 1 – 4.
A continuación, se instala el software que actuará como el hostap (punto de acceso del
host). Necesita acceso a Internet para este paso, asegure dicha conexión. EJECUTAR:
sudo apt-get update y sudo apt-get install hostapd isc-dhcp-server
También se instala un administrador de iptables. Obtendrá dos pantallas, seleccionar “Sí”
en ambas. EJECUTAR: sudo apt-get install iptables-persistent

La configuración del servidor DHCP (Dynamic Host Configuration Protocol) permitirá


designar y distribuir direcciones IP y una dirección DNS (Domain Name System). Edición
de líneas en la Figura 3.17. EJECUTAR: sudo nano /etc/dhcp/dhcpd.conf
· Agregar “#” al inicio de las siguientes líneas:
#option domain-name "example.org";
#option domain-name-servers ns1.example.org, ns2.example.org;

· Eliminar “#” de la tercera línea:


# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
authoritative;

20
Figura 3.17 Líneas editadas para configurar el servidor DHCP.

Enseguida desplazarse hacia abajo e ingresar las correspondientes direcciones IP en


cada módulo didáctico. Verificar Anexo D / D.1 / D.1.3 / Numeral 5.

Ingresar el nombre del adaptador WiFi, como se observa en la Figura 3.18.


EJECUTAR: sudo nano /etc/default/isc-dhcp-server
· Desplazarse hasta el final a INTERFACES="" y actualizar, digitando:
INTERFACES="wlan0"

Figura 3.18 Ingresando el nombre del Adaptador WiFi.

Si tiene wlan0 activo porque lo configuró, EJECUTAR: sudo ifdown wlan0


No hay daño en ejecutarlo en caso de no estar seguro.

21
A continuación, se configura la conexión wlan0 para que sea estática y entrante. Verificar
Anexo D / D.1 / D.1.3 / Numeral 6.

Seleccionar al adaptador WiFi y habilitarlo. Verificar Anexo D / D.1 / D.1.3 / Numeral 7.

Para configurar el punto de acceso, editar el “nombre” que se quiera para el punto de
acceso y una “contraseña” para que sólo las personas con la contraseña puedan
conectarse a WiFi. Verificar Anexo D / D.1 / D.1.3 / Numeral 8.

Conducir a la tarjeta Pi para encontrar el archivo de configuración del punto de acceso.


Se observa en la Figura 3.19. EJECUTAR: sudo nano /etc/default/hostapd

· Buscar la línea #DAEMON_CONF="" y editarla de la siguiente manera:

DAEMON_CONF="/etc/hostapd/hostapd.conf"

No olvidar de quitar “#” al frente, para activarlo.

Figura 3.19 Ingresando la ubicación del archivo de configuración.

La Figura 3.20 muestra otra dirección. EJECUTAR: sudo nano /etc/init.d/hostapd

· Buscar la línea DAEMON_CONF= y editarla de la siguiente manera:

DAEMON_CONF=/etc/hostapd/hostapd.conf

22
Figura 3.20 Direccionando la ubicación del archivo de configuración.

La configuración de NAT (Network Address Translation) permitirá que múltiples clientes


se conecten a WiFi y tengan todos los datos a través de la única IP de Ethernet (Incluso
si solo un cliente se conecta). EJECUTAR: sudo nano /etc/sysctl.conf

Desplazarse hasta el final como se observa en la Figura 3.21 y en una nueva línea
escribir: net.ipv4.ip_forward=1. Esta línea iniciará el reenvío de direcciones IP en el
arranque.

Figura 3.21 Línea de comando para reenviar direcciones IP en el arranque.

Para activar esto inmediatamente:


EJECUTAR: sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"

23
En la Figura 3.22 se muestra la ejecución de líneas para crear la traducción de red entre
el puerto Ethernet “eth0” y el puerto WiFi “wlan0”. EJECUTAR:
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j
ACCEPT
sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT

Figura 3.22 Líneas para crear la traducción de red entre eth0 y wlan0.

En la Figura 3.23 se puede verificar cuál puerto se encuentra en las tablas. EJECUTAR:
sudo iptables -t nat -S
sudo iptables -S

Para que esto suceda al reiniciar el sistema y no tenga que escribir cada momento.
EJECUTAR: sudo sh -c "iptables-save> /etc/iptables/rules.v4"

Figura 3.23 Tablas de puertos y activación de puertos automáticamente.

La herramienta “iptables-persistent” que se instaló al inicio, volverá a cargar


automáticamente la configuración en el arranque.

24
Se prueba y verifica hasta que se muestre en pantalla: habilitada la conexión a WiFi de
la tarjeta Pi (ENABLED), como se observa en la Figura 3.24.
EJECUTAR: sudo /usr/sbin/hostapd /etc/hostapd/hostapd.conf

Figura 3.24 Access Point funcionando correctamente, ENABLED.

Una vez que se muestre habilitada la conexión a WiFi (ENABLED), reiniciar el sistema
para que se actualicen y se centralicen los datos ingresados, para posteriormente tener
conexión a WiFi. Verificar Anexo D / D.1 / D.1.3 / Numeral 9.

Configurado correctamente, se podrá verificar en una laptop o smartphone el nuevo punto


de acceso creado. Verificar Anexo D / D.1 / D.1.3 / Numeral 9.

Nmap es una aplicación multiplataforma y de código abierto, se puede usar para escanear
una red interna y comprobar el número de clientes conectados a ella. Para instalar Nmap,
EJECUTAR: sudo apt-get install nmap
Esta aplicación permite conocer en detalle a los usuarios conectados a la red WiFi.
Verificar Anexo D / D.1 / D.1.3 / Numeral 10.

Configuración previa de Bluetooth en los módulos

Comunicación bluetooth entre dispositivo Android con Raspberry Pi

Para la comunicación bluetooth entre un dispositivo Android y una tarjeta Raspberry Pi 3


se utilizó una aplicación desarrollada en Android y un programa en Python. La aplicación

25
se llama Blue Dot, la documentación de la aplicación permite controlar el encendido de
los LEDs del módulo didáctico.
Se instala el software y librerías con las que Blue Dot funcionará correctamente en la
tarjeta Raspberry Pi.
Para ejecutar los procedimientos que requiere Blue Dot, se instala en la tarjeta Pi dos
paquetes mediante la consola LX Terminal: el primer paquete se denomina Python_dbus,
el cual permitirá que la aplicación en Android y la programación en Python se puedan
comunicar entre sí, permitiendo una conexión estable y sencilla, y que puedan
intercambiar mensajes. [29]
Para instalar este paquete, EJECUTAR: sudo apt install python-dbus
El segundo paquete es indispensable para el uso de Blue Dot en Raspberry Pi, aquí están
contenidos los comandos y librerías para el uso en Python. Para instalar este paquete,
EJECUTAR: sudo pip install bluedot
Posterior a esto, se debe descargar la aplicación Blue Dot de Google Play Store.
El código en Python está desarrollado para que al presionar en los cuatro puntos
cardinales del botón de Blue Dot, se enciendan los LEDs del módulo en el orden
determinado. Para asignar a los LEDs, se usarán los pines GPIO con el número
representado en la tarjeta Pi.
Mientras el código en Python no se esté ejecutando, la aplicación en el dispositivo Android
no podrá conectarse; por lo tanto, será imposible la comunicación Bluetooth.
Vinculados los dispositivos, se ejecuta el programa en Python para comprobar si la
aplicación envía datos y se recibe en la tarjeta Pi.

Comunicación bluetooth entre dos Raspberry Pi

Para realizar una comunicación utilizando bluetooth, específicamente entre dos tarjetas
Raspberry Pi 3, se toma en cuenta los siguientes aspectos que serán muy importantes
para el correcto desenvolvimiento del mismo:

La versión de Raspbian tendrá las configuraciones necesarias para administrar las


conexiones bluetooth, tanto en software como en hardware.

26
Para poder realizar y desarrollar el programa en la plataforma de Python, se debe tener
instaladas las librerías que permitirán utilizar bluetooth integrado de la tarjeta Pi.
La tarjeta Raspberry Pi de cada uno de los módulos didácticos deberá estar previamente
emparejada y su MAC Address bien identificada.
Se instalan cuatro paquetes para utilizar bluetooth. El primer paquete es un programa
que permitirá la administración de bluetooth, mediante consola. [30]
EJECUTAR: sudo apt-get install Bluetooth
El segundo y tercer paquete sirven para el emparejamiento de dispositivos bluetooth.
Mediante estos paquetes se podrá desconectar dispositivos bluetooth, realizar
asociaciones y enviar mensajes a través de la conexión.
EJECUTAR: sudo apt-get install bluez-tools y sudo apt-get install blues
El último paquete permitirá usar librerías para comunicación bluetooth desde Python,
definir el protocolo y puerto de comunicación, así como también usar los comandos de
programación para realizar la conexión y el envío de los datos.
EJECUTAR: sudo apt-get install python-bluez
El programa permitirá realizar una comunicación en modo cliente-servidor, donde el
cliente enviará datos solo si conoce la MAC Address del servidor y si además está
disponible el protocolo RFCOMM.

Configuración previa de GPS en los módulos

Se utiliza un módulo GPS que permitirá la recepción y lectura de datos que sean enviados
desde el satélite. Se instalan las librerías para uso exclusivo en Python, donde están
contenidos los comandos específicos para la obtención de datos del módulo.

La tecnología GPS no está integrada en la tarjeta Pi, razón por la cual un módulo GPS
externo va conectado al puerto UART de la Raspberry Pi, cuyo nombre de puerto está
definido por ttyAMA0 para el envío y recepción de datos del puerto UART.

Los datos serán visualizados en un display LCD 16x2, por tal motivo se instalan las
librerías correspondientes en Python, para el uso de los pines GPIO de la tarjeta Pi que
hará conexión con el display LCD.

27
El módulo GPS UBLOX NEO-6M funciona con alimentación de 3V a 5V y comunicación
UART. Las señales que envía y recibe son de 3.3V, por lo cual no requiere conversión
de voltaje ya que los pines GPIO la detectan normalmente, Figura 3.25.

Figura 3.25 Módulo GPS UBLOX NEO-6M. [24]

Para poder visualizar las cadenas de texto en Python, se hace uso de la librería pynmea2
la cual se instala escribiendo en la consola LX Terminal el siguiente comando:
sudo pip install pynmea2
Esta librería permitirá mostrar los datos de la sentencia GPGGA, en la cual están
contenidos los datos de interés para la práctica, como son latitud, longitud y altitud. [31]
En dicha librería se especifican comandos de la siguiente forma:
· Para obtener la latitud: msg.lat / msg.lat_dir
Se obtiene la coordenada y la ubicación geográfica polar.
· Para obtener la longitud: msg.lon / msg.lon_dir
Se obtiene la coordenada y la ubicación geográfica polar.
· Para obtener la altitud: msg.altitude / msg.altitude_units
Se obtiene la altitud sobre el nivel del mar y su unidad en metros.

La siguiente librería permitirá la representación de datos en una LCD 16x2. Contiene los
comandos para poder hacer uso de los pines GPIO, enviar datos a la LCD y observarlos.
Se descargan los archivos del enlace de los desarrolladores de Adafruit:
“https://github.com/adafruit/Adafruit_Python_CharLCD”. Aquí se encontrará una serie de
archivos de los cuales solo se usará setup.py. Se configura de la siguiente manera:
· Se ubica a la carpeta en el escritorio, ejecutando en LX Terminal:
cd Desktop/Adafruit_Python_CharLCD

28
· Una vez dentro de esta carpeta, se ejecuta el siguiente comando:
sudo python setup.py install
· Se reinicia el sistema con el comando:
sudo reboot

Para observar los datos que envía el GPS, se instala la aplicación “minicom”, mediante
consola con el siguiente comando: sudo apt-get install minicom

Ahora, se debe ejecutar en consola el siguiente comando: sudo cat/dev/ttyAMA0 donde


ttyAMA0 es el nombre del puerto de comunicación UART, el cual es tratado como un
fichero para la lectura de datos que está recibiendo dicho puerto.

3.4 DESARROLLO DE PRÁCTICAS DE LABORATORIO.

A continuación se detalla el desarrollo de las prácticas de laboratorio. Dichas prácticas


fueron analizadas con anterioridad y se tomaron en cuenta porque principalmente son
afines a la carrera, tienen varios procedimientos didácticos para el estudiante, se trabaja
con un lenguaje de programación libre de alto nivel, intuitivo y amigable.

Práctica de WiFi

Para realizar esta práctica se convertirá a la tarjeta raspberry pi en un punto de acceso


asignándole un nombre de red inalámbrica SSID y una contraseña, el cual distribuirá
conexión a internet a todos los dispositivos que se conecten a la red creada, asignando
una dirección IP única a cada dispositivo y administrándolo mediante consola.

Una vez analizada la viabilidad de ejecutar la presente práctica, se procedió a configurar


y convertir en punto de acceso WiFi a la tarjeta Raspberry Pi 3. Para realizar esta práctica
se utilizan líneas de comando de Linux, cada línea se ejecutará en la consola de la tarjeta
Pi.

Así mismo, se decidió utilizar direccionamiento VLSM (Variable Length Subnet Mask)
para configurar el servidor DHCP del módulo WiFi. El direccionamiento VLSM es
conocido por crear más hosts para que los usuarios puedan acceder a la red. Dentro del

29
servidor DHCP se ingresan varias direcciones IP, una corresponde a la subred con su
respectiva máscara, otra dirección IP al broadcast, una al gateway y un par de direcciones
IP que corresponden al respectivo rango.

Para administrar al punto de acceso WiFi creado, se instala la aplicación Nmap, la cual
es una aplicación multiplataforma y de código abierto. Nmap permite escanear una red
interna y comprobar el número de clientes conectados a ella.

En el universo de Internet, un actor secundario llamado WiFi sostiene toda la tecnología


de la Gran Red, desde la perspectiva del usuario final. El WiFi es el sistema que transmite
información a través de ondas de radio. Los inventores de aparatos como el teléfono o la
radio son, en cierto modo, inventores de los principios del WiFi. Las ondas de radio que
usa el WiFi son las mismas que utilizan los móviles, los canales de televisión, incluso el
microondas, pero a una frecuencia (velocidad) mucho mayor. WiFi usa las bandas de
frecuencia de 2.4 y 5 GHz.

El router recibe Internet a través de un cable Ethernet, y convierte los datos en ondas de
radio que envía al dispositivo receptor, dotado de un chip WiFi, que recibe esas ondas y
las descodifica para convertirlas en unos y ceros, datos que entienden los ordenadores y
los móviles.

En 1997 se aprobó el estándar IEEE 802.11, creado para fijar normas de transmisión de
datos a través de redes inalámbricas WLAN (Wireless Local Area Network). Todos los
dispositivos que llevan el logo WiFi garantizan que son universalmente compatibles con
cualquier otro dispositivo que transmita o reciba datos a través de una red WiFi.

La hoja guía de estudiante de la presente práctica se muestra en Anexo C.1, y la hoja


guía de instructor se presenta en el Anexo D.1.

En la Figura 3.26 se muestra el diagrama de flujo de los pasos para desarrollar la práctica
de WiFi en el módulo didáctico. El dispositivo principal es la tarjeta Pi que viene
incorporado internamente con un módulo WLAN. Varias líneas de comando fueron
ejecutadas, con el fin de configurar el dispositivo y obtener WiFi.

30
Figura 3.26 Diagrama de flujo de la práctica de WiFi en el módulo didáctico.

31
Práctica de Bluetooth

La tarjeta Raspberry Pi 3 tiene incorporado internamente un módulo Bluetooth, esto


permitió aprovechar esta ventaja manejando este dispositivo sin realizar muchas
modificaciones a nivel de hardware para realizar la práctica usando Bluetooth, de tal
modo que el estudiante entienda claramente el funcionamiento de esta tecnología.

El estudiante aprenderá a emparejar un dispositivo Android con Raspberry Pi y emparejar


dos tarjetas Pi entre sí. El código de la práctica se desarrolla en la plataforma de
programación de alto nivel, denominada Python.

La práctica consta de dos ejercicios, el primer ejercicio es realizar una comunicación


bluetooth entre un dispositivo Android con Raspberry Pi, en donde mediante una
aplicación en el celular se controlará el encendido de LEDs ubicados en el módulo
didáctico. El segundo ejercicio consiste en realizar una comunicación bluetooth entre dos
módulos didácticos; el primer módulo actuará como un servidor en espera de conexión
del cliente, y el segundo módulo actuará como un cliente conectándose al servidor. Dicha
conexión permitirá el envío y recepción de caracteres para el control de encendido de los
LEDs.

La tecnología Bluetooth permite conectar y transferir datos entre dispositivos electrónicos


sin necesidad de utilizar cables. Bluetooth utiliza ondas de radio para enviar información
entre dispositivos que están cerca uno del otro. A diferencia de las ondas de radio
tradicionales, las ondas Bluetooth normalmente sólo pueden viajar 10 metros o menos.
En la actualidad, hay muchos dispositivos fijos y móviles que se comunican mediante
Bluetooth.

El estándar IEEE 802.15.1 presenta una WPAN (Wireless Personal Area Network) que
utiliza tecnología inalámbrica Bluetooth. El chip Bluetooth está formado por un transceiver
de radio-frecuencia, una unidad de control de enlace banda-base conjuntamente con el
software de gestión y un subsistema de antena.

32
Para que un producto pueda considerarse como Bluetooth tiene que cumplir una serie de
protocolos y perfiles; los protocolos describen cómo se realizan las tareas básicas como
señalización telefónica, gestión de enlace y la determinación de qué servicios están
disponibles desde o través de otros productos Bluetooth. Los perfiles describen la forma
en que diferentes protocolos y procedimientos básicos funcionan conjuntamente en
diferentes productos y aplicaciones Bluetooth.

La hoja guía para el estudiante se muestra en el Anexo C.2, y la hoja guía de instructor
se presenta en el Anexo D.2.

En la Figura 3.27 se presenta el diagrama de flujo de la programación para la práctica


Blue Dot con Raspberry Pi. Los elementos principales utilizados son la tarjeta Pi y un
dispositivo Android. Para realizar la configuración y programación se utilizó la aplicación
Blue Dot, el software Python 2, consola de la tarjeta Pi, librerías para Blue Dot y para
Python, y varias líneas de consola. Juntado correctamente todas las partes, se emparejan
los elementos para establecer la comunicación, donde el celular envía datos lógicos hacia
el módulo didáctico, para encender los LEDs.

En la Figura 3.28 se muestra el diagrama de flujo del programa “servidor” para la práctica
con dos Raspberry Pi. Los equipos principales son dos tarjetas Pi, así mismo se utiliza el
software Python 2, la consola de la tarjeta Pi, librerías para Python y varias líneas de
consola. El programa está diseñado con condicionales en un bucle infinito “while”,
mientras el último dato no sea enviado, permitirá recibir más datos. En caso de que sea
el último dato, pedirá cerrar el programa con el dato “1”, para interrumpir la conexión:
servidor-cliente.

En la Figura 3.29 se muestra el diagrama de flujo del programa “cliente” para la práctica
con dos Raspberry Pi. En el programa cliente se definen las librerías para el uso de
recursos de Bluetooth, se definen los puertos GPIO como entradas para leer los estados
lógicos de los pulsadores, en este caso “0” lógico, el número de puerto y la MAC Address
del servidor al cual el programa se conectará. Al establecer conexión, se podrá enviar
datos presionando los pulsadores del módulo.

33
Figura 3.27 Diagrama de flujo de la práctica de Blue Dot con Raspberry Pi.

34
Figura 3.28 Diagrama de flujo de la práctica con dos Raspberry Pi, programa Servidor.

35
Figura 3.29 Diagrama de flujo de la práctica con dos Raspberry Pi, programa Cliente.

36
Práctica de GPS

Esta práctica consta de un trabajo de estudio aplicativo, en donde se manejarán varios


conceptos de posición y ubicación. GPS es uno de los recursos más usados en la
actualidad, por lo que tener un conocimiento base es importante en la vida real.

Para desarrollar la práctica de GPS, el estudiante deberá realizar todas las conexiones
en los puertos del módulo didáctico, además realizar la conexión para la comunicación
del GPS y la LCD, con la tarjeta Pi. Se instalaron interruptores para controlar el encendido
y apagado del GPS y la LCD. Se comprueba la sincronización y funcionamiento del
módulo GPS a través de LEDs indicadores; en la LCD y en la consola de Raspberry Pi.

Se desarrollará el código de programación utilizando librerías del sistema, el protocolo de


comunicación del GPS y de la LCD en Python. El estudiante programará y activará el
puerto de comunicación UART. En el código también se usarán los comandos para el uso
de la LCD y los parámetros para la comunicación serial. También se realizará un bucle
infinito para leer los datos que transmite el GPS en tiempo real, y observar el string de
datos GPGGA donde se mostrará la latitud, longitud y altura.

La hoja guía para el estudiante se muestra en el Anexo C.3, y la hoja guía de instructor
se presenta en el Anexo D.3.

En la Figura 3.30 se muestra el diagrama de flujo de la programación para la práctica de


GPS. Los elementos principales son la tarjeta Pi, el módulo GPS, antena GPS, y el LCD
16X2. Para la programación se utiliza Python 2, librería para puertos UART, string $
GPGGA, minicom, pynmea2. El programa muestra las librerías del sistema para realizar
la comunicación UART con el módulo GPS. Dicha comunicación permite obtener los
datos NMEA en los cuales está contenido el string $ GPGGA, de donde posteriormente
se extrae la cadena de texto, como son latitud, longitud y altura del GPS receptor.
El programa está en un bucle infinito “while”. Los datos enviados del GPS a través del
puerto UART tienen una frecuencia de muestreo de 5Hz, que viene desarrollada y
configurada de fábrica.

37
Figura 3.30 Diagrama de flujo de la práctica de GPS.

38
3.5 PRUEBAS DE FUNCIONAMIENTO.

WiFi

Para realizar la prueba de funcionamiento del módulo WiFi integrado en la tarjeta


Raspberry Pi y además probar la práctica de WiFi completamente, en primera instancia
se conectó a la tarjeta Pi sin estar instalada en el módulo y se la configuró como punto
de acceso WiFi. Al realizar este proceso y culminar, se tuvo buenos resultados ya que se
logró convertir con éxito en un access point a la tarjeta Pi. Se obtuvo un acceso sin
complicaciones en diferentes dispositivos como tablets, smartphones y que tuvieron
acceso a Internet mediante red WiFi

En segunda instancia, se configuró nuevamente como punto de acceso WiFi a la tarjeta


Raspberry pi Pi, esta vez estando instalada en del módulo principal. Al realizar el proceso
de configuración y culminar, se tuvo buenos resultados ya que se logró convertir con éxito
en un access point al módulo didáctico. Se realizaron pruebas, conectando varias laptops
y smartphones a Internet mediante conexión WiFi, nuevamente los resultados fueron
exitosos, los dispositivos accedieron a la plataforma de Internet, Figura 3.31.

En el transcurso del desarrollo de la práctica de laboratorio con WiFi se presentaron


varios inconvenientes al convertir a la tarjeta Pi en punto de acceso. Se ejecutaron varias
líneas de comando, las cuales ejecutan una actividad específica en el sistema con el
objetivo de configurar el access point. Estas líneas permiten editar o ingresar datos a la
tarjeta Pi. Algunas líneas de comando se ejecutan una sola vez, otras líneas se ejecutan
varias veces al momento de realizar la práctica.

En la construcción de la práctica, una línea de comando alteraba el funcionamiento de la


configuración si se la ejecutaba varias veces. Realizando varias pruebas, se notó que se
debe ejecutar una sola vez; se realizaron las debidas correcciones en todos los módulos.
Funcionaron correctamente y la práctica se la puede realizar sin inconvenientes, siempre
y cuando se sigan las instrucciones de forma correcta, de acuerdo a lo indicado en la
Hoja guía de instructor (Anexo D).

39
Figura 3.31 Celular conectado a WiFi a través del access point: MODULO_2.

Bluetooth

Se realizaron pruebas de funcionamiento para la comunicación bluetooth entre Android


con Raspberry Pi y para la comunicación entre dos Raspberry Pi.

Para la primera comunicación, se instaló la aplicación Blue Dot en el smartphone, se


realizó el emparejamiento de dispositivos para comprobar si la aplicación envía datos y
se recibe en la tarjeta Pi.

Se importan las librerías que corresponde a la programación de la aplicación Blue Dot


con Raspberry Pi. También se asignan las funciones para el uso de las llamadas a
librerías, en la cual el dispositivo Android actúa como cliente y la tarjeta Pi como servidor.
En el celular se presiona el botón azul de la aplicación y en la consola de Python se
imprime el mensaje que indica la posición presionada en el botón azul.

Para la comunicación entre dos tarjetas Pi, primero se realiza el emparejamiento entre
tarjetas; una vez vinculadas, no se comunican aún, solo están vinculadas. La prueba de
funcionamiento se realiza con el código de programación, con esto se comprueba que la
conexión sea aceptada y permita el envío y recepción de datos a través de un socket, el
cual está definido mediante un puerto de comunicación y una MAC Address. La

40
comunicación bluetooth se realizó mediante un puerto UART denominado ttyS0. A través
de este puerto la comunicación bluetooth realiza el trabajo de enviar y recibir datos. El
funcionamiento se muestra en la Figura 3.32.

Los puertos para Bluetooth y GPS deben ser activados o desactivados acorde a la
utilización de ellos porque su uso es exclusivo para cada operación de comunicación. Por
lo tanto, se optó por activar el software del puerto ttyS0 solo cuando se trabaja con
bluetooth; mientras que para trabajar con el módulo GPS se activará el software del
puerto ttyAMA0. Para este fin se ejecutarán líneas de comando en consola para modificar
y ejecutar dos archivos. En estos archivos se realiza la activación y habilitación de los
puertos mencionados. El primer archivo se denomina activar_gps.py y sirve para usar el
módulo GPS, previamente desactivando bluetooth. El segundo archivo se denomina
activar_bluetooth.py, el cual ayudará activando el bluetooth y su respectivo puerto,
previamente desactivando GPS.

Figura 3.32 Funcionamiento de los dos ejercicios propuestos en la práctica con bluetooth.

GPS

Para la prueba de funcionamiento, se conectó el módulo GPS y la LCD a los puertos


GPIO de la tarjeta Pi, tal como se indica en la Figura 3.6, de tal forma que al encender el
módulo didáctico, alimentará a los dos elementos. Posterior a esto, se espera un par de
minutos para que se sincronice el módulo GPS y empiece a enviar datos, un LED

41
oscilante indica que el GPS está sincronizado. En ciertas ocasiones el módulo GPS no
se sincroniza debido a los obstáculos que se interponen entre la señal del satélite y el
receptor GPS. Lo más óptimo sería que todo el módulo didáctico se ubique en un espacio
abierto, en donde pueda tener línea de vista al cielo, libre de paredes gruesas,
edificaciones grandes y obstáculos metálicos que alteren la señal enviada por los
satélites, Figura 3.33.

Los datos viajan a través del puerto UART, enviados por el GPS y procesados en la tarjeta
Pi. En la Figura 3.34 se observan las sentencias del protocolo NMEA y el string $ GPGGA
que contiene los datos de interés para la práctica. Estos datos pueden ser observados en
la consola de Raspberry Pi y en la LCD 16x2.

Figura 3.33 Latitud, longitud y altitud se muestra en la LCD 16X2.

Figura 3.34 Recepción de datos en tiempo real enviados por el GPS.

42
3.6 COSTOS DEL PROYECTO.

En la Tabla 3.1 se presenta el costo del Proyecto.

Tabla 3.1: Costos del Proyecto.

Detalle Precio
Tarjeta Raspberry Pi 3 modelo B 80,00
Fuente de 5v (2500 mA) 12,00
GPS Ublox NEO 6M 25,00
SD card 16 GB 15,00
Adaptador HDMI a VGA 7,50
Display LCD 16x2 7,00
Placa base acrílico 3,50
Tornillos 1,25
Empaques de caucho 1,20
Placa fibra de vidrio 6,45
Headers 2,00
Leds 0,75
Pulsadores 1,00
Ácido férrico 1,50
Dipswitch 0,80
Trimmer 10 k 0,40
Resistores 330 Ω 0,75
Adhesivo para etiqueta 0,30
Cables para proto de 10 cm 0,80
Papel couche 0,75
Pegamento epóxica 2,00
COSTO UNITARIO 169,95
COSTO TOTAL 1529,55

Nota: En el presente análisis de costos no se han considerado rubros por mano de obra
o de desarrollo intelectual.

43
4. CONCLUSIONES Y RECOMENDACIONES

4.1 CONCLUSIONES

· La tarjeta Raspberry Pi 3 es un equipo moderno y manejable. Los puertos de


comunicación permitieron conectar un teclado, mouse, cable Ethernet, y un
adaptador HDMI para configurar y desarrollar las prácticas. Los puertos GPIO de
la tarjeta Pi son muy importantes, ya que aquí se conectaron los pulsadores, LEDs,
resistencias y funcionaron correctamente, de la misma manera lo hizo el módulo
GPS con sus puertos de comunicación serial de transmisor-receptor.

· La comunicación entre el dispositivo Android y la tarjeta Pi es una novedosa


propuesta en tecnología inalámbrica; las pruebas de funcionamiento fueron
exitosas debido a que las librerías y el código de programación que Python ofrece
en su plataforma para la práctica con Bluetooth son relativamente sencillos,
permitiendo el rápido envío y recepción de datos de ambas partes.

· Para el diseño se consideraron varias características que proporcionaba la tarjeta


Raspberry Pi 3, como los puertos GPIO para la conexión de elementos externos
que van desde sensores para interacción con el medio circundante, hasta módulos
y controladores de propósito fijo, en este caso la conexión y comunicación con un
módulo GPS. Se enfatizó en la ubicación de cada elemento para facilitar su
reconocimiento y uso; también mediante etiquetas se identificó a cada uno de
estos elementos.

· El mayor reto fue integrar el módulo GPS a la tarjeta Pi; se adaptó de tal manera
que haya dos conexiones para el canal de comunicaciones UART, además se
instalaron pines fijos para energizar el módulo GPS. Hay una gran ventaja al tener
integradas las tecnologías Bluetooth y Wifi en la tarjeta Pi ya que permitió ahorrar
espacio en el ruteo del diseño del circuito y la configuración respectiva.

44
· La placa base se construyó en baquelita de fibra de vidrio cuyo material es más
resistente y las pistas de cobre salen gruesas y resistentes para la soldadura. Se
adjuntó una base para que la placa base pueda protegerse de rayones en las
pistas, además proteger la SD card que va colocada en cada una de las tarjetas
Pi.

· Se realizó una configuración previa a todos los módulos, donde se ejecutaron


líneas de comando, se instalaron programas y paquetes que cada uno de los
módulos necesitaba. En el caso de WiFi se realizó la configuración de un servidor
DHCP, un administrador de Host y se definieron las direcciones IP
correspondientes para cada uno de los módulos didácticos. Para el caso de
Bluetooth se instaló la librería denominada bluedot, Python bluez y bluetooth, para
ejecutar la práctica. Por último, para el GPS se configuraron los puertos de
comunicación UART y ttyAMA0, se instalaron las librerías pynmea2 para la
obtención de datos de trilateración del módulo GPS, y la librería adafruitcharLCD
para la visualización de datos en la LCD.

· Cada servidor DHCP en la práctica de WiFi contiene ocho direcciones IP las cuales
corresponden a la subred, máscara de subred, broadcast, gateway, máscara de
gateway y al respectivo rango de utilización. Cabe recalcar que son nueve módulos
didácticos y cada módulo tiene una dirección IP principal de la cual aparecen las
ocho direcciones IP mencionadas anteriormente. La configuración y
funcionamiento del servidor DHCP permite administrar el punto de acceso creado
y brindar Internet a los usuarios que lo necesiten.

· Los paquetes de administración para la red Bluetooth, junto con los paquetes de
Python, permiten el envío y recepción de dígitos establecidos en la comunicación
directa.

· La configuración para usar los puertos UART de Bluetooth y GPS se realizó


creando dos archivos con comandos propios del sistema para activar o desactivar

45
dichas tecnologías. Estos puertos se conocen como ficheros dentro del sistema
Raspbian OS.

· Los temas de las prácticas de laboratorio fueron tomados en cuenta por ser afines
a la carrera; se basan en la comunicación inalámbrica de dispositivos. Tienen
procedimientos didácticos para el estudiante, se trabaja con un lenguaje de
programación libre de alto nivel e intuitivo, denominado Python.

· El código de programación Python y las librerías Python BLuez, Adafruit LCD,


pynmea2, librerías de bluetooth en Python bluetooth y librerías de GPS utilizado
en cada práctica, es similar al código utilizado en otras plataformas de
programación como C++, BASIC, visual BASIC, Java, y la plataforma conocida
como programa de bloques; esta semejanza hace familiar y amigable a los
usuarios que trabajarán en los presentes módulos didácticos.

· Para realizar las pruebas a los módulos, se tomó en cuenta la conexión correcta
al módulo didáctico ya que pueden ocasionarse daños al equipo. El código de
programación y tabulaciones de cada práctica fueron insertados correctamente,
esto ayudó a probar rápidamente los ejercicios propuestos.

4.2 RECOMENDACIONES

· Se recomienda digitar de manera correcta las líneas de comando ejecutadas en el


desarrollo de la práctica de WiFi, respetando los símbolos y espacios al momento
de realizar las configuraciones.

· Se recomienda el manejo correcto del direccionamiento VLSM para la obtención


de las direcciones IP, ya que de estas direcciones depende el funcionamiento
correcto del módulo WiFi para la administración de la nueva red creada.

46
· Se recomienda realizar los programas cliente y servidor para Bluetooth en dos
módulos diferentes, ya que dicha comunicación debe tener un modelo cliente-
servidor para el envío y recepción de datos.

· Se debe tomar en cuenta la línea de vista de la antena del módulo GPS hacia el
cielo para la recepción de datos, ya que la misma permite la sincronización del
módulo para realizar el proceso de trilateración mediante el sistema GPS.

· Se recomienda que en todas las prácticas a realizar, primero se conecten todos


los cables a los periféricos y luego energizar el módulo. Del mismo modo, al
terminar de usar el módulo didáctico, apagar este dispositivo desde el sistema
operativo y luego retirar los cables de los periféricos para evitar el daño de algún
componente electrónico.

· El armado de la placa base se construyó empezando por soldar los elementos más
pequeños y pasivos, ya que luego se dificultará la tarea de soldarlos. Para finalizar,
se colocaron los elementos grandes que son la tarjeta Pi, la LCD y el módulo GPS.

· Para evitar que todo el módulo didáctico resbale, se agregaron topes de caucho a
la base de acrílico; el caucho ayuda a mantener fijo a todo el dispositivo, y a la vez
evita que el módulo pierda tuercas o los tornillos rayen la superficie de mesas del
laboratorio.

· El código de programación de cada práctica debe estar escrito de manera correcta;


así mismo, las respectivas tabulaciones y espacios en cada hoja de desarrollo del
código de programación deben ser correctos, idéntico a las imágenes que se
muestran en el anexo “Códigos de Programación”.

47
5. REFERENCIAS BIBLIOGRÁFICAS

[1] P. Estrada, «Timetoast home page,» Timetoast, [En línea]. Available:


https://www.timetoast.com/timelines/historia-microcontroladores-pic-pablo-estrada-
12121. [Último acceso: 30 Diciembre 2017].

[2] M. Guillote, «Los Microcontroladores y Yo,» Mario Guillote blogspot, 17 Marzo 2013. [En
línea]. Available: http://marioguillote.blogspot.com/2013/03/arduino-raspberry-pi-y-una-
historia-de.html. [Último acceso: 30 Diciembre 2017].

[3] R. González, «Ramón González blogspot,» Ramón González, 13 Abril 2012. [En línea].
Available: http://ramon-gzz.blogspot.com/2012/04/lenguaje-ensamblador.html. [Último
acceso: 30 Diciembre 2017].

[4] S. G. F. C. Á. N. A. Rafael Asenjo, «www.researchgate.net,» 2017. [En línea]. Available:


https://www.researchgate.net. [Último acceso: 2 enero 2017].

[5] M. L. Salcedo-Tovar, «Minicomputador educacional de bajo costo Raspberry PI: Primera


Parte,» 2015 Junio 2015. [En línea]. Available:
http://www.uniojeda.edu.ve/files/upload/ethos/volumen-7-n1/Revista-Ethos-
Venezolana_Vol.-7-No.-1.pdf#page=28. [Último acceso: 2 enero 2017].

[6] R. SHOP, «Raspberry Shop,» 2017. [En línea]. Available:


https://www.raspberryshop.es/raspberry-pi-3.php. [Último acceso: 20 Febrero 2018].

[7] R. P. foundation, «www.raspberrypi.org,» RASPBERRY PI FOUNDATION, 2017. [En línea].


Available: https://www.raspberrypi.org/about/. [Último acceso: 2 enero 2017].

[8] J. L. Oriol Sallent Roig, «Wlan and Bluetooth,» de Principios de comunicaciones móviles,
Cataluña, Univ. Politèc. de Catalunya, 2003, pp. 37-44.

[9] S. STUDIO, «Seeed Studio,» 2015. [En línea]. Available:


http://wiki.seeed.cc/Raspberry_Pi_3_Model_B/. [Último acceso: 15 Febrero 2018].

[10] wecl, «www.wecl.com,» [En línea]. Available:


http://www.wecl.com.hk/distribution/catalogs/058-32-0003.pdf. [Último acceso: 12 Abril
2018].

[11] Cypress Developer Community, «Cypress,» 11 Mayo 2017. [En línea]. Available:
http://www.cypress.com/file/298076/download. [Último acceso: 24 Febrero 2018].

48
[12] T. Darell, «irq5.io,» 10 Marzo 2017. [En línea]. Available:
http://irq5.io/2017/03/10/raspberry-pi-zero-wireless/. [Último acceso: 14 Abril 2018].

[13] R. S. Antonio Flores, «http://tesis.ipn.mx,» 2016. [En línea]. Available:


http://tesis.ipn.mx/bitstream/handle/123456789/22108/Dise%C3%B1o%20y%20constru
ccion%20de%20un%20sistema%20de%20seguridad%20vehicular%20meediante%20moni
toreo%20via%20GSM-GPS.pdf?sequence=1&isAllowed=y. [Último acceso: 20 febrero
2018].

[14] d. l. E. U. Fuerza Aérea, «GPS.gov,» 3 noviembre 2017. [En línea]. Available:


https://www.gps.gov/systems/gps/. [Último acceso: 20 febrero 2018].

[15] K. Betke, «http://www.tronico.fi,» 2013. [En línea]. Available:


http://www.tronico.fi/OH6NT/docs/NMEA0183.pdf. [Último acceso: 20 febrero 2018].

[16] Foundation Wiki, «ACADEMIC,» 2010. [En línea]. Available:


http://www.esacademic.com/dic.nsf/eswiki/687655#RFCOMM. [Último acceso: 14 Abril
2018].

[17] P. Santamaria, «Xataka Smart Home,» 7 Diciembre 2013. [En línea]. Available:
https://www.xatakahome.com/la-red-local/bluetooth-4-1-nueva-version-con-mejoras-
interesantes. [Último acceso: 24 Febrero 2018].

[18] C. L. d. l. Torre, «sociotal,» 2015. [En línea]. Available:


http://sociotal.eu/sites/default/files/docs/tutorials/RaspberryPi_tutorial.pdf. [Último
acceso: 23 febrero 2018].

[19] Saraclay, «Microsoft,» 28 Agosto 2017. [En línea]. Available:


https://docs.microsoft.com/en-us/windows/iot-core/learn-about-
hardware/pinmappings/pinmappingsrpi#spi-bus. [Último acceso: 10 Abril 2018].

[20] MoinMOin, «raspbian.org,» Mythic Beasrts, 2012. [En línea]. Available:


http://www.raspbian.org/FrontPage. [Último acceso: 21 febrero 2018].

[21] S. Python, «www.python.org,» Python Software Foundation, 2001. [En línea]. Available:
https://www.python.org/about/. [Último acceso: 20 febrero 2018].

[22] o. Cuatrorios, «www.cuatrorios.org,» 1 septiembre 2011. [En línea]. [Último acceso: 20


febrero 2017].

[23] G. Cherrez, «http://dspace.espoch.edu.ec,» 2017. [En línea]. Available:


http://dspace.espoch.edu.ec/bitstream/123456789/6872/1/98T00151.pdf. [Último
acceso: 20 febrero 2018].

49
[24] electroniclab, «electronilab.co,» [En línea]. Available:
https://electronilab.co/tienda/modulo-gps-ublox-neo-6m-v2-con-memoria-eeprom/.
[Último acceso: 01 marzo 2018].

[25] M. O’Hanlon, «media.readthedocs.org,» 22 Febrero 2018. [En línea]. Available:


https://media.readthedocs.org/pdf/bluedot/latest/bluedot.pdf. [Último acceso: 25
Febrero 2018].

[26] D. Cortes, «http://repositorio.espe.edu.ec,» 2010 Agosto 2010. [En línea]. Available:


http://repositorio.espe.edu.ec/bitstream/21000/7891/1/T-ESPE-ITSA-000108.pdf.
[Último acceso: 3 enero 2017].

[27] Drotek, «www.drotek.com,» 9 enero 2014. [En línea]. Available:


https://www.drotek.com/ftp/pdf/ublox_EN.pdf. [Último acceso: 3 enero 2017].

[28] L. I. R. García, «Principios del G.P.S,» Buran, vol. 6, nº 6, pp. 21-22, 1995.

[29] freedesktop.org, «freedesktop,» 30 octubre 2017. [En línea]. Available:


https://www.freedesktop.org/wiki/Software/dbus/. [Último acceso: 3 marzo 2018].

[30] M. R. Barry Byford, «media.readthedocs.org,» 8 Febrero 2018. [En línea]. Available:


https://media.readthedocs.org/pdf/bluezero/latest/bluezero.pdf. [Último acceso: 24
Febrero 2018].

[31] Knio, «Github,» 03 octubre 2017. [En línea]. Available: https://github.com/Knio/pynmea2.


[Último acceso: 3 marzo 2018].

[32] Johanson Technology, «Digi-Key Electronics,» 4 Octubre 2016. [En línea]. Available:
https://www.digikey.com/es/product-highlight/j/johanson-tech/miniature-rf-ceramic-
chip-antenna. [Último acceso: 28 Febrero 2018].

[33] J. Pastor, «xataka,» 2 Marzo 2017. [En línea]. Available:


https://www.xataka.com/ordenadores/la-antena-inalambrica-de-la-raspberry-pi-zero-w-
es-una-absoluta-genialidad. [Último acceso: 12 Abril 2018].

[34] L. Casanova, «http://www.serbi.ula.ve,» [En línea]. Available:


http://www.serbi.ula.ve/serbiula/libros-electronicos/Libros/topografia_plana/pdf/CAP-
10.pdf. [Último acceso: 23 febrero 2018].

[35] P. Torralbo, «Introduccion a Android,» [En línea]. Available: http://www.it-


docs.net/ddata/18.pdf. [Último acceso: 28 febrero 2018].

[36] l. ada, «Adafruit Learning System,» 2 Septiembre 2017. [En línea]. Available: https://cdn-
learn.adafruit.com/downloads/pdf/setting-up-a-raspberry-pi-as-a-wifi-access-point.pdf.
[Último acceso: 4 Enero 2018].

50
[37] usemoslinux, «DesdeLinux,» 1 Septiembre 2011. [En línea]. Available:
https://blog.desdelinux.net/como-detectar-intrusos-en-tu-red-wifi/. [Último acceso: 5
Febrero 2018].

[38] ublox.com, «u-blox,» [En línea]. Available: https://www.u-


blox.com/sites/default/files/products/documents/NEO-6_DataSheet_(GPS.G6-HW-
09005).pdf. [Último acceso: 12 Abril 2018].

51
ANEXOS
ANEXOS

52
ANEXO A: SUSTENTO TEÓRICO.

A.1 ANÁLISIS DE LA TECNOLOGÍA RASPBERRY PI 3.

A.1.1 Detalles del chip CYW43438

Proporciona una velocidad de transferencia de datos en bruto de hasta 200 Mbps cuando
se opera en modo de 4 bits a una frecuencia de bus de 50 MHz. Proporciona un puerto
independiente UART de alta velocidad para la interfaz de Bluetooth / FM. [11]

El CYW43438 incluye una unidad de administración de energía que simplifica la topología


de alimentación del sistema y permite operar directamente desde una batería recargable
de la plataforma móvil, a la vez que maximiza la vida útil de la batería. [11]

El CYW43438 implementa los algoritmos y los mecanismos de hardware más avanzados


del mundo, permitiendo una coexistencia de WLAN y Bluetooth. [11] En la Figura 1 se
muestran las características internas del chip CYW43438.

Figura 1 Diagrama de bloques del sistema CYW43438. [11]


L2CAP es utilizado dentro de la pila de protocolos de Bluetooth; se utiliza para pasar
paquetes con y sin orientación a la conexión a sus capas superiores, incluyendo tanto al
HCI (Host Controller Interface), como directamente al gestor del enlace. Las funciones
principales de L2CAP incluyen: el multiplexado de protocolos de alto nivel, la
segmentación y reensamblado de paquetes, el descubrimiento de dispositivos y la calidad
de servicios.

53
A.1.2 Detalles de la antena cerámica

La antena cerámica es diseñada para la integración en aplicaciones donde se requieren


dispositivos muy pequeños, Figura 2, la frecuencia de trabajo es de 2,4 Ghz. Su
construcción a base de cerámica tratada a baja temperatura, le permite tener una
sintonización estable, con constantes dieléctricos altos y bajos en la antena. [32] En la
Figura 3 se muestra más características y aplicaciones de la antena cerámica.

Figura 2 Chip antena cerámica instalada en la tarjeta Pi. [33]

Figura 3 Características y aplicaciones de la antena cerámica. [32]

A.2 ANÁLISIS DE LOS DISPOSITIVOS QUE SE CONECTARÁN A LA TARJETA


RASPBERRY PI 3.

A.2.1 Medición de la distancia de los satélites

Se utiliza la velocidad de la luz, la cual define la velocidad con la que viajan las ondas de
radio a través del espacio. Mediante este método, se puede conocer la distancia del
receptor hasta el satélite, muy útil para la posición de objetos, Figura 4.

54
Otro aspecto a considerar es el instante en el que la señal se genera en el satélite. Para
esto se generan códigos pseudoaletatorios en el satélite y en el receptor GPS,
sincronizando las señales para que sean generadas al mismo tiempo. Después, se
comparan las señales generadas y se mide su desfase en el tiempo, tiempo en el cual el
satélite y el receptor generan el mismo código. [34]

Figura 4 Esquema de medición del tiempo en viajar la señal. [34]

A.2.2 Detalles de Android

Android es un sistema operativo y una plataforma software, basado en Linux para


teléfonos móviles. Usan este sistema operativo, tablets, notebooks, reproductores de
música e incluso PC’s. Lo que le diferencia de otros sistemas operativos, es que cualquier
persona que sepa programar puede crear nuevas aplicaciones, pequeños programas, o
incluso, modificar el propio sistema operativo, dado que Android es de código libre. [35]

55
ANEXO B: CÓDIGOS DE PROGRAMACIÓN.

B.1 PRÁCTICA DE BLUETOOTH: Dispositivo Android con Raspberry Pi 3.

56
B.2 PRÁCTICA DE BLUETOOTH: Dos módulos didácticos Raspberry Pi.

Programa Servidor

57
Programa Cliente

58
B.3 PRÁCTICA DE GPS: Manejo de un módulo GPS.

59
ANEXO C: HOJAS GUÍA DE ESTUDIANTE.

C.1 PRÁCTICA DE WIFI

1. TEMA
Configuración del módulo Raspberry Pi 3 como un punto de acceso WiFi.

2. OBJETIVOS
- Convertir a Raspberry Pi en un punto de acceso WiFi ejecutando líneas de comando de
Linux en la consola de la tarjeta Pi.
- Implementar direccionamiento VLSM para el manejo y ejecución de direcciones IP
dentro de la consola de la tarjeta Pi.
- Administrar la red inalámbrica creada.

3. TRABAJO PREPARATORIO

Cuestionario
- Consultar utilización y manejo de direcciones IP.
- Consultar direccionamiento VLSM y obtención de la dirección de: redes secundarias
con su respectiva máscara, rango, broadcast y gateway (puerta de enlace).

Desarrollo
- Dada la siguiente dirección IP: con máscara
- Utilizando direccionamiento VLSM se requiere dividir la red principal en 2 redes
secundarias con su respectiva máscara para la cantidad de hosts establecidos:
§ Red 1: hosts
§ Red 2: hosts
- Posteriormente, determinar el rango de direcciones IP, la dirección broadcast, y la
dirección de gateway o puerta de enlace para la Red 1. Todos los datos obtenidos para
la Red 1 se utilizarán más adelante para configurar el servidor DHCP ingresando a la
consola.
- Llenar los datos obtenidos en la siguiente tabla, en una hoja extra:

60
Dirección IP:
Máscara:
Red 1: hosts Red 2: hosts
Red secundaria
Máscara
Rango de direcciones IP
Dirección broadcast
Dirección gateway

4. DESCRIPCIÓN DE LAS ACTIVIDADES Y PROCEDIMIENTO DE LA PRÁCTICA


4.1 Conexión total del módulo didáctico.
- Módulo completo y en el rectángulo subrayado está la tarjeta Pi con los puertos:

Figura 1 Módulo completo mostrando todos los puertos de la tarjeta Pi.

- Módulo completo con todos los cables conectados en los respectivos puertos:

Figura 2 Conexión total para poner a funcionar el módulo didáctico.

61
4.2 Encender el módulo didáctico para comunicaciones inalámbricas.
4.3 Abrir la ventana de consola LX Terminal.
4.4 Compruebe el funcionamiento del cable Ethernet.
4.5 Configurar el servidor DHCP.
4.6 Configurar wlan0 para dirección IP estática.
4.7 Asignar una dirección IP estática al adaptador WiFi.
4.8 Configurar el punto de acceso.
4.9 Primera prueba.
4.10 Administrar la nueva red WiFi.
4.11 Borrar los datos ingresados.
4.12 Cerrar la ventana de consola.
4.13 Apagar el módulo didáctico.

5. MATERIALES
- Módulo didáctico para comunicaciones inalámbricas con Raspberry Pi 3.
- Adaptador HDMI a VGA, cable VGA y cable Ethernet conectado a internet.
- Fuente de alimentación de 5V y 2500mA, monitor, teclado y mouse.

62
C.2 PRÁCTICA DE BLUETOOTH

1. TEMA
Comunicación Bluetooth entre dispositivo Android con Raspberry Pi y entre dos
Raspberry Pi.

2. OBJETIVOS
- Controlar puertos GPIO mediante un dispositivo Android con conexión Bluetooth.
- Controlar puertos GPIO mediante comunicación Bluetooth entre dos tarjetas Pi.
- Manejar el envío y recepción de datos en la comunicación Bluetooth entre dos
módulos didácticos.

3. TRABAJO PREPARATORIO
Consultar:
- Qué es un socket de comunicaciones.
- La banda de frecuencia en la que trabaja Bluetooth.
- Qué es el protocolo RFCOMM.
- Qué es una MAC Address y puerto de comunicaciones.
- Qué es la librería Blue Dot (documentación).
- Qué es la librería Bluetooth (documentación).
- Descargar desde Play Store la Aplicación Blue Dot.
- Consultar las siguientes líneas de código en Python 2:

def(), if, elif; print(), pause(), from, import, signal, gpiozero, time, RPi.GPIO,

GPIO.output(), GPIO.setup(), GPIO.setmode(GPIO.BCM), While True, sock.send(),

time.sleep(), x=raw_input(), break.

Realizar un algoritmo en donde se indique la forma de cómo se podría enviar datos


desde un Raspberry Pi a otro Raspberry Pi mediante Python 2.

63
4. DESCRIPCIÓN DE LAS ACTIVIDADES Y PROCEDIMIENTO DE LA PRÁCTICA
4.1 Modo de conexión del módulo didáctico.

Figura 1 Conexión completa del módulo didáctico

4.2 Se deberá emparejar el celular con la tarjeta Pi y entre dos tarjetas Pi para poder
realizar la comunicación Bluetooth.
4.3 Elaborar un programa que use las librerías de Blue Dot para controlar el encendido y
apagado de los LEDs conectados a los puertos GPIO de la tarjeta Pi.
4.4 Imprimir en la consola de Python los mensajes de la posición donde fue presionado
el botón azul de la aplicación Blue Dot.
4.5 Obtener la MAC Address de las tarjetas Pi con las cuales se va a realizar la
comunicación Bluetooth.
4.6 Elaborar un programa que use las librerías de Bluetooth para el envío de datos entre
tarjetas Pi, usando los puertos de entrada y salida GPIO.
4.7 Elaborar un programa que use las librerías de Bluetooth para la recepción de datos
entre tarjetas Pi, usando los puertos de entrada y salida GPIO.

5. MATERIALES
- 2 módulos de comunicaciones inalámbricas con Raspberry Pi 3.
- 1 dispositivo Android (Celular o Tablet).
- Adaptador HDMI a VGA y cable VGA.
- Fuente de alimentación 2500mA (2,5 A), monitor, teclado y mous

64
C.3 PRÁCTICA DE GPS

1. TEMA
Manejo de un módulo GPS y obtención de datos por puerto serial.

2. OBJETIVOS
- Manejar el puerto serial de comunicación UART con el módulo GPS.
- Manejar las librerías que permitirán conectar y usar una LCD con la tarjeta Pi.
- Mostrar en una LCD y en la consola de la tarjeta Pi las coordenadas geográficas de
ubicación en tiempo real del módulo GPS.

3. TRABAJO PREPARATORIO
Consultar:
- Qué es el sistema de posicionamiento global, partes que lo conforman, funcionamiento
y sus aplicaciones.
- Qué es el Protocolo NMEA para GPS.
- Qué es la sentencia $GPGGA y cuál es el formato de datos que maneja.
- Qué es la comunicación UART.
- Qué es un String de Datos.
- Qué es latitud, longitud, y altitud.
- Consultar y leer acerca del datasheet del módulo GPS NEO 6 UBLOX (Dibujar el
diagrama de bloques).

- Consultar los siguientes comandos en Python 2 :

Import os, import time, import serial, import string, import pynmea2, import

Adafruit_CharLCD, gpio.setmode(), print, time sleep(), while true, try, except,

concatx=str(), port, lcd.set_cursor(), lcd message, lcd.clear().

Realizar un algoritmo sobre cómo se podría obtener los datos del módulo GPS.

65
4. DESCRIPCIÓN DE LAS ACTIVIDADES Y PROCEDIMIENTO DE LA PRÁCTICA
4.1. Modo de conexión del módulo didáctico.
- Utilizando cables para protoboard, conectar los pines de la LCD y del módulo GPS con
la tarjeta Pi, de la siguiente manera:

Figura 2 Conexión de la LCD y el módulo GPS con la tarjeta Pi.


- Encender el módulo GPS y la LCD mediante los dipswitch ubicados cerca del LED
POWER. Deben estar en la posición ON.

Figura 3 Dipswitch de encendido y apagado de la LCD y el GPS.

- Para comenzar la práctica realizar las siguientes conexiones en el módulo:

Figura 4 Conexión completa del módulo didáctico.

66
4.2. Se realizará la conexión para el uso de la LCD ubicada en el módulo didáctico,
además de la conexión para la comunicación UART con el módulo GPS.
4.3. Se activará la comunicación UART mediante un script de Python para poder obtener
los datos desde el módulo GPS.
4.4. Se elaborará un programa en Python que use las librerías de pynmea2 para
presentar los datos obtenidos del GPS en una LCD y en la consola de Python.
4.5. Para ejecutar el programa, colocar el módulo didáctico de tal forma que la antena del
módulo GPS tenga línea de vista con los satélites.
4.6. Al finalizar la práctica apagar la LCD y el módulo GPS colocando los dipswitch en la
posición 1-2.

5. MATERIALES
- 1 módulo de comunicaciones inalámbricas con Raspberry Pi 3 y Módulo GPS.
- Adaptador HDMI a VGA y cable VGA.
- Fuente de alimentación 2500mA (2,5 A), monitor, teclado y mouse.
- 6 cables para protoboard para la LCD y 2 cables para protoboard para el GPS.

67
ANEXO D: HOJAS GUÍA DE INSTRUCTOR.

D.1 PRÁCTICA DE WIFI

D.1.1 TEMA

Configuración del módulo Raspberry Pi 3 como un punto de acceso WiFi.

D.1.2 MATERIALES

- Módulo didáctico para comunicaciones inalámbricas con Raspberry Pi 3.


- Adaptador HDMI a VGA, cable VGA y cable Ethernet conectado a internet.
- Fuente de alimentación de 5V y 2500mA, monitor, teclado y mouse.

D.1.3 DESARROLLO DE LA PRÁCTICA


1. Conexión total del módulo didáctico.

- Realizar las siguientes conexiones en el módulo didáctico:


§ Puerto PWR conectar la fuente de alimentación de 5V y 2500mA.

Figura 1 Fuente de alimentación con cable USB.

§ Puerto HDMI conectar el adaptador HDMI a VGA, seguido el cable VGA y al


monitor.

Figura 2 Adaptador HDMI a VGA, cable VGA y monitor.

§ Puerto Ethernet conectar el cable Ethernet, el cual previamente está conectado a


un punto de red.

Figura 3 Cable Ethernet con conectores RJ45.

68
§ Puertos USB conectar un teclado y un mouse.

Figura 4 Teclado y mouse tradicional.

2. Encender el módulo didáctico para comunicaciones inalámbricas.


- Presionar el botón de encendido que se encuentra en el cable USB de la fuente de
alimentación.

Figura 5 Botón de encendido para pasar o cortar energía hacia el módulo.


3. Abrir la ventana de consola LX Terminal.
- Clic en el ícono de LX Terminal.

Figura 6 Ventana de consola de Raspberry Pi 3.


4. Compruebe el funcionamiento del cable Ethernet.
- Verificar que el cable Ethernet esté conectado y pueda hacer “ping” desde la tarjeta Pi.
EJECUTAR: ping 8.8.8.8

69
Figura 7 Verificando que haya conexión a internet en la tarjeta Pi.

5. Configurar el servidor DHCP.


- Se editan líneas y se ingresan las direcciones IP desarrolladas en el preparatorio, cada
módulo didáctico tendrá direcciones IP únicas para ejecutar esta práctica. Esta
configuración permitirá designar y distribuir direcciones IP, una dirección DNS, para que
los usuarios puedan conectarse a WiFi.
EJECUTAR: sudo nano /etc/dhcp/dhcpd.conf

- Desplazarse hacia abajo, hasta el siguiente mensaje:


# En este espacio se escriben los datos obtenidos del direccionamiento VLSM:
# Desarrollado en el preparatorio:
# Se escribirá aquí de acuerdo a las indicaciones del profesor:

- A continuación, escribir los datos obtenidos para la Red 1, del desarrollo de


direccionamiento VLSM de la red principal dada (datos obtenidos en la tabla):

subnet 172.16.0.0 netmask 255.255.255.192 {


range 172.16.0.2 172.16.0.62;
option broadcast-address 172.16.0.63;
option routers 172.16.0.1;
default-lease-time 600;
max-lease-time 7200;
option domain-name "local";
option domain-name-servers 8.8.8.8, 8.8.4.4;
}

70
Figura 8 Direcciones IP obtenidas en el desarrollo del preparatorio.

- Guarde el archivo presionando Ctrl+X. Enseguida se muestra una pregunta que dice:
¿Salvar el búfer modificado? A ello presione S+Enter.

6. Configurar wlan0 a dirección IP estática.


- A continuación se configurará la conexión wlan0 para que sea estática y entrante.
EJECUTAR: sudo nano /etc/network/interfaces

- Desplazarse hacia abajo, hasta el siguiente mensaje:


# En este espacio se ingresa una línea comando:
# A continuación la dirección del router o gateway con su respectiva máscara:
# Se escribirá aquí de acuerdo a indicaciones del profesor:

- A continuación, escribir la siguiente línea de comando, la dirección de gateway y su


respectiva máscara, determinada anteriormente en el preparatorio:

iface wlan0 inet static


address 172.16.0.1
netmask 255.255.255.192

- La línea “iface wlan0 inet static” cambia la interfaz wlan0 de DHCP a estática.

71
Figura 9 Dirección IP del gateway y su máscara.

- Guardar el archivo (Ctrl+X luego S+Enter).

7. Asignar una dirección IP estática al adaptador WiFi.


- Asignar una dirección IP estática y habilitar al dispositivo inalámbrico (wireless).
EJECUTAR: sudo ifconfig wlan0 172.16.0.1

8. Configurar el punto de acceso.


- Editar el “nombre” que se desee para el punto de acceso y una “contraseña” para que
solo las personas con la contraseña puedan conectarse a WiFi. Ingresar al archivo de
configuración. EJECUTAR: sudo nano /etc/hostapd/hostapd.conf

Figura 10 Archivo para editar el nombre y contraseña del punto de acceso.

72
- En ssid= se deberá colocar el nombre del módulo didáctico asignado, por ejemplo:
MÓDULO_5. En wpa_passphrase= se deberá colocar una contraseña que deberá ser
mayor a 8 caracteres, por ejemplo: Raspberry.
- Asegúrese de que cada línea de la imagen de arriba no tenga espacios, comillas o datos
adicionales al inicio o al final. ¡Este archivo es bastante exigente!
- Guardar con Ctrl+X enseguida S+Enter.

9. Primera prueba.
- Configurado correctamente en los pasos anteriores, reiniciar el sistema para que se
actualicen y se centralicen los datos ingresados, seguidamente tener conexión a WiFi.
EJECUTAR: sudo reboot
- Si realizó bien la configuración, se podrá verificar en una laptop o smartphone el nuevo
punto de acceso creado. En este caso, se realizó la prueba en una laptop y este es el
resultado:

Figura 11 Identificación del nuevo punto de acceso y conexión a internet.

10. Administrar la nueva red WiFi.


- Nmap es una aplicación multiplataforma y de código abierto, se puede usar para
escanear una red interna y comprobar el número de clientes conectados a ella.
- Aquí se podrá observar: la dirección IP asignada, latencia en segundos y MAC Address
asignada a cada equipo conectado. Además, proporciona la cantidad de direcciones IP
habilitadas y cuántas de ellas están ocupadas.
EJECUTAR: sudo nmap -sP 172.16.0.1/26

73
Figura 12 Detalle de los dispositivos conectados al nuevo punto de acceso.

11. Borrar los datos ingresados.


- Al finalizar la práctica y después de verificar el funcionamiento del punto de acceso WiFi,
se procede a borrar los datos ingresados en los numerales 5 y 6:

5. Configurar el servidor DHCP: EJECUTAR: sudo nano /etc/dhcp/dhcpd.conf


Reemplazar en la consola todos los datos como se muestra a continuación:

subnet 0.0.0.0 netmask 0.0.0.0 {


range 0.0.0.0 0.0.0.0;
option broadcast-address 0.0.0.0;
option routers 0.0.0.0;
default-lease-time 600;
max-lease-time 7200;
option domain-name "local";
option domain-name-servers 8.8.8.8, 8.8.4.4;
}
- De la siguiente forma:

Figura 13 Al finalizar la práctica se edita en cero las direcciones IP.

74
- Guardar el archivo (Ctrl+X seguido S+Enter).

6. Configurar wlan0 a dirección IP estática: EJECUTAR: sudo nano /etc/network/interfaces


Reemplazar en la consola todos los datos como se muestra a continuación:
iface wlan0 inet static
address 0.0.0.0
netmask 0.0.0.0

- De la siguiente forma:

Figura 14 Al finalizar la práctica se edita en cero la dirección IP y máscara.


- Guardar el archivo (Ctrl+X enseguida S+Enter).

12. Cerrar la ventana de consola.


- Clic en la “x” que se encuentra en la parte superior derecha de la ventana:

Figura 15 Cerrar la ventana de consola de Raspberry Pi.

75
13. Apagar el módulo didáctico.
- Para apagar el módulo, clic en el icono de “Inicio” Raspberry Pi, y seleccionar:
Shutdown.

Figura 16 Botón “Inicio” en la barra de tareas para apagar el módulo.

D.1.4 GUIA DE DIRECCIONAMIENTO VLSM DE CADA MÓDULO DIDÁCTICO

- A continuación se presenta la guía donde consta el direccionamiento VLSM de cada


módulo. Estas direcciones IP son únicas y exclusivas para cada módulo, se las utilizará
para desarrollar la práctica de WiFi en el módulo para comunicaciones inalámbricas.
- El profesor(a) debe asignar a un estudiante o grupo de estudiantes una dirección IP con
la respectiva máscara y la cantidad de hosts establecidos, para que realicen el
preparatorio. Cada módulo cuenta con los datos mencionados anteriormente.
- El profesor(a) debe revisar minuciosamente el desarrollo de los preparatorios realizados
por los estudiantes antes de desarrollar la práctica, ya que las direcciones IP que se
obtendrán son muy importantes, primero para ejecutarse dentro de la consola y en
segunda instancia para que funcione la práctica, caso contrario habrá inconvenientes al
realizar la práctica.
- Cuadro de datos para cada módulo didáctico, con los cuales se debe desarrollar el
direccionamiento VLSM solicitado en el preparatorio para cada uno de los equipos
mencionados:

Dirección IP Máscara Red 1 Red 2


Módulo 1 10.0.0.0 255.0.0.0 20 hosts 9 hosts
Módulo 2 172.20.0.0 255.255.0.0 16 hosts 8 hosts
Módulo 3 192.168.40.0 255.255.255.0 35 hosts 10 hosts
Módulo 4 10.80.0.0 255.0.0.0 34 hosts 8 hosts
Módulo 5 172.16.0.0 255.255.0.0 42 hosts 8 hosts
Módulo 6 192.168.80.0 255.255.255.0 22 hosts 15 hosts
Módulo 7 192.168.0.0 255.255.255.0 24 hosts 10 hosts
Módulo 8 10.50.0.0 255.0.0.0 30 hosts 12 hosts
Módulo 9 172.28.0.0 255.255.0.0 28 hosts 14 hosts

76
1. Direccionamiento VLSM para Módulo 1:

Dirección IP: 10.0.0.0


Máscara: 255.0.0.0
Red 1: 20 hosts Red 2: 9 hosts
Red secundaria 10.0.0.0 10.0.0.32
Máscara 255.255.255.224 255.255.255.240
Rango de direcciones IP 10.0.0.2 - 10.0.0.30 10.0.0.34 - 10.0.0.46
Dirección broadcast 10.0.0.31 10.0.0.47
Dirección gateway 10.0.0.1 10.0.0.33

2. Direccionamiento VLSM para Módulo 2:

Dirección IP: 172.20.0.0


Máscara: 255.255.0.0
Red 1: 16 hosts Red 2: 8 hosts
Red secundaria 172.20.0.0 172.20.0.16
Máscara 255.255.255.240 255.255.255.248
Rango de direcciones IP 172.20.0.2 - 172.20.0.14 172.20.0.18 - 172.20.0.22
Dirección broadcast 172.20.0.15 172.20.0.23
Dirección gateway 172.20.0.1 172.20.0.17

3. Direccionamiento VLSM para Módulo 3:

Dirección IP: 192.168.40.0


Máscara: 255.255.255.0
Red 1: 35 hosts Red 2: 10 hosts
Red secundaria 192.168.40.0 192.168.40.64
Máscara 255.255.255.192 255.255.255.240
Rango de direcciones IP 192.168.40.2 - 192.168.40.62 192.168.40.66 - 192.168.40.78
Dirección broadcast 192.168.40.63 192.168.40.79
Dirección gateway 192.168.40.1 192.168.40.65

4. Direccionamiento VLSM para Módulo 4:

Dirección IP: 10.80.0.0


Máscara: 255.0.0.0
Red 1: 34 hosts Red 2: 8 hosts
Red secundaria 10.80.0.0 10.80.0.64
Máscara 255.255.255.192 255.255.255.248
Rango de direcciones IP 10.80.0.2 - 10.80.0.62 10.80.0.66 - 10.80.0.70
Dirección broadcast 10.80.0.63 10.80.0.71
Dirección gateway 10.80.0.1 10.80.0.65

77
5. Direccionamiento VLSM para Módulo 5:

Dirección IP: 172.16.0.0


Máscara: 255.255.0.0
Red 1: 42 hosts Red 2: 8 hosts
Red secundaria 172.16.0.0 172.16.0.64
Máscara 255.255.255.192 255.255.255.248
Rango de direcciones IP 172.16.0.2 - 172.16.0.62 172.16.0.66 - 172.16.0.70
Dirección broadcast 172.16.0.63 172.16.0.71
Dirección gateway 172.16.0.1 172.16.0.65

6. Direccionamiento VLSM para Módulo 6:

Dirección IP: 192.168.80.0


Máscara: 255.255.255.0
Red 1: 22 hosts Red 2: 15 hosts
Red secundaria 192.168.80.0 192.168.80.32
Máscara 255.255.255.224 255.255.255.240
Rango de direcciones IP 192.168.80.2 - 192.168.80.30 192.168.80.34 - 192.168.80.46
Dirección broadcast 192.168.80.31 192.168.80.47
Dirección gateway 192.168.80.1 192.168.80.33

7. Direccionamiento VLSM para Módulo 7:

Dirección IP: 192.168.0.0


Máscara: 255.255.255.0
Red 1: 24 hosts Red 2: 10 hosts
Red secundaria 192.168.0.0 192.168.0.32
Máscara 255.255.255.224 255.255.255.240
Rango de direcciones IP 192.168.0.2 - 192.168.0.30 192.168.0.34 - 192.168.0.46
Dirección broadcast 192.168.0.31 192.168.0.47
Dirección gateway 192.168.0.1 192.168.0.33

8. Direccionamiento VLSM para Módulo 8:

Dirección IP: 10.50.0.0


Máscara: 255.0.0.0
Red 1: 30 hosts Red 2: 12 hosts
Red secundaria 10.50.0.0 10.50.0.32
Máscara 255.255.255.224 255.255.255.240
Rango de direcciones IP 10.50.0.2 - 10.50.0.30 10.50.0.34 - 10.50.0.46
Dirección broadcast 10.50.0.31 10.50.0.47
Dirección gateway 10.50.0.1 10.50.0.33

78
9. Direccionamiento VLSM para Módulo 9:

Dirección IP: 172.28.0.0


Máscara: 255.255.0.0
Red 1: 28 hosts Red 2: 14 hosts
Red secundaria 172.28.0.0 172.28.0.32
Máscara 255.255.255.224 255.255.255.240
Rango de direcciones IP 172.28.0.2 - 172.28.0.30 172.28.0.34 - 172.28.0.46
Dirección broadcast 172.28.0.31 172.28.0.47
Dirección gateway 172.28.0.1 172.28.0.33

79
D.2 PRÁCTICA DE BLUETOOTH.

D.2.1 TEMA

Comunicación Bluetooth entre dispositivo Android con Raspberry Pi y entre dos tarjetas
Raspberry Pi.

D.2.2 MATERIALES

- 2 módulos de comunicaciones inalámbricas con Raspberry Pi 3.


- 1 dispositivo Android (Celular o Tablet).
- Adaptador HDMI a VGA y cable VGA.
- Fuente de alimentación 2500mA (2,5 A), monitor, teclado y mouse.

D.2.3 DESARROLLO DE LA PRÁCTICA

Nota: Para el EJERCICIO 2, solo dos grupos deben realizar la práctica a la vez.
Terminado de realizar la práctica los primeros dos grupos, proceden solo dos grupos más
a realizar la práctica, así sucesivamente.
Módulo completo con los respectivos puertos de la tarjeta Pi y su identificación:

Figura 1 Puertos de la tarjeta Pi y conexión de la LCD y del módulo GPS.

§ Al puerto PWR conectar la fuente de alimentación de 5V y 2500mA.

§ Al Puerto HDMI conectar el adaptador HDMI a VGA, seguido el cable VGA y al


monitor.

80
§ Puertos USB conectar un teclado y un mouse.

Al final, conectar el cable de energía del monitor y la fuente de alimentación de 5V a un


tomacorriente que provea electricidad.

Módulo completo conectado todos los cables en los puertos correspondientes:

Figura 2 Módulo principal encendido y conexión de la LCD y el módulo GPS.

EJERCICIO 1
Encender el módulo didáctico para comunicaciones inalámbricas, presionando el botón
de encendido que se encuentra en el cable USB de la fuente de alimentación.

Figura 3 Botón de encendido para pasar o cortar energía hacia el módulo.

Verificar que el ícono de Bluetooth esté activo (color azul).

Figura 4 Ícono de bluetooth activado (color azul).

Si el ícono se encuentra en color plomo, quiere decir que está apagado; para activarlo,
dar clic en el ícono de Bluetooth y dar clic en el cuadro Turn On Bluetooth.

81
Figura 5 Encender el ícono de bluetooth de plomo a azul.

Si al seleccionar en el ícono de Bluetooth, el mensaje que se muestra es No Bluetooth


adapter found, abrir la consola LX Terminal:

Figura 6 Ícono de la consola de Raspberry Pi: LX Terminal.

Abierta la consola de Raspberry Pi, ejecutar la línea: sudo nano /boot/config.txt

Figura 7 Línea de comando para ingresar a editar el archivo config.txt.

Se oprime Enter y se ingresa a editar el archivo config.txt. Dirigirse hacia la parte final del
archivo y se observará el siguiente mensaje:

#borrar las líneas que están a continuación para realizar práctica de Bluetooth o GPS

Figura 8 Borrar líneas subrayadas en plomo con el fin de configurar.

Borrar las líneas que se encuentren bajo el mensaje indicado, presionar Ctrl+X y luego
presionar S+Enter para salir del archivo ya modificado.
Como siguiente paso, ejecutar el script que activará los puertos de comunicación serial
de Bluetooth de la tarjeta Raspberry Pi 3. Abrir la consola LX Terminal.

82
Escribir el comando cd Desktop y presionar Enter para ingresar a la carpeta del escritorio.
Si el script no se encuentra en el escritorio, usar el comando: cd /home/pi/Documents.

Figura 9 Línea de comando para ingresar al escritorio a través de consola.

Luego escribir el comando sudo python activar_bluetooth.py y presionar Enter, hará que
se cambie el estado de los puertos de comunicación serial de Bluetooth y luego el sistema
operativo se reiniciará.

Figura 10 Línea de comando para activar los puertos de comunicación con Bluetooth.

Al reiniciar el sistema, se activará el Bluetooth dando clic en el ícono correspondiente y


luego en el cuadro Turn on Bluetooth.
Para emparejar el dispositivo Android con la tarjeta Pi, dar clic en el ícono de Bluetooth y
luego clic en Make Discoverable. El ícono oscilará entre los colores verde y azul, esto
permite que todos los dispositivos cercanos detecten el Bluetooth de la tarjeta Pi.

Figura 11 Ventana para hacer descubrible el bluetooth de la tarjeta Pi.

Activar el Bluetooth en el celular y marcar la casilla “visible para todos los dispositivos”.

Figura 12 Activación bluetooth en el celular.

Una vez que los dos dispositivos están en modo descubierto, proceder a vincularlos,
dando clic en el ícono de Bluetooth de la Raspberry Pi y seleccionar Add Device.

83
Figura 13 Añadir equipo para vincularlos.

Seleccionar el celular respectivo y clic en Pair. Inmediatamente, en el celular aparecerá


una contraseña, a la vez en el monitor aparecerá la misma contraseña. Seleccionar
Aceptar en el celular y lo mismo en el monitor, enseguida estarán vinculados los
dispositivos. Nota: Dar clic en Ok en los cuadros de advertencia.
Abrir el programa Python 2 (IDLE: Integrated DeveLopment Environment) ubicado en el
escritorio.

Figura 14 Ícono de acceso directo a Python 2 IDLE.

Se abre una ventana de trabajo denominado (IDLE) de Python, para simular programas.

Figura 15 Ventana principal de trabajo de Python 2 IDLE.

Clic en la pestaña File y seleccionar New File para crear nuevo archivo o presionando las
teclas Ctrl+N. Para abrir un archivo presionar Open o Ctrl+O.

Figura 16 Pestaña de opciones para la ventana de trabajo de Python 2.

Se abrirá una ventana en donde se desarrollará el código de la práctica, aquí se escribirán


los comandos para crear un programa que luego será simulado en Python.

84
Como primer paso, guardar el nuevo archivo dando clic en File y seleccionar Save, o
presionando Ctrl+S. Cada vez que se desee simular el programa en Python, se deberá
guardar las modificaciones presionando Ctrl+S.

Figura 17 Ventana donde se ubica “Save” para guardar modificaciones.

En la ventana “Guardar como”, seleccionar la carpeta Desktop, esta carpeta dirige a


donde se guardará el archivo de programación (ubicada en el escritorio).
Guardar el archivo con el nombre: bluetooth_android.py.

Figura 18 Ventana para direccionarse a la carpeta “Desktop”.

Creado y guardado el archivo, proceder a desarrollar el código para la comunicación entre


dispositivo Android con la tarjeta Raspberry Pi 3.
Escribir en la parte superior del archivo las líneas de código para importar las librerías
que serán usadas por el programa.

Figura 19 Código en Python para importar todas las librerías a utilizar.

85
La librería Blue Dot permitirá usar comandos y funciones para tener comunicación con
dispositivos Android. La librería gpiozero permitirá utilizar los puertos GPIO de la tarjeta
Raspberry Pi. La librería signal permitirá poner pausas al programa.

Luego, escribir el siguiente código para definir los pines a utilizar por el GPIO. Nota: incluir
la función que llamará a los comandos de la librería Blue Dot.

Figura 20 Código en Python para definir los puertos GPIO a utilizar.

El siguiente código encenderá los LEDs al presionar el botón azul de la aplicación;


además, se define la función move que se importa de la librería Blue Dot.

Figura 21 Código en Python para encender los LEDs e imprimir los mensajes.

Para finalizar el código, escribir la función de parada stop en donde los LEDs se
mantendrán apagados mientras el botón azul de la aplicación no sea presionado.

Figura 22 Código en Python para mantener apagados los LEDs.

Para simular el código final, presionar Ctrl+S y luego F5; en Python aparecerá el siguiente
mensaje con la MAC de la tarjeta Pi y esperando la conexión del celular.

86
Figura 23 Simulación de la práctica.

Seleccionar Make Discoverable, dando clic en el ícono de Bluetooth.

Figura 24 Ventana para hacer descubrible el bluetooth de la tarjeta Pi.

En el celular, abrir la aplicación previamente descargada llamada Blue Dot. Al abrir


mostrará todas las MAC de las tarjetas Pi. Verificar que la MAC del celular sea igual a la
que está en la simulación del programa en Python: bluetooth_android.py

Figura 25 Verificación de igualdad del MAC Address en los dos equipos.

Seleccionar la MAC del módulo correspondiente y entrará en conexión. Si no se ejecuta


el programa en Python, la aplicación no funcionará. Si la conexión es satisfactoria, la
aplicación mostrará un botón azul grande en la pantalla del celular.

Figura 26 Sincronización y conexión de la aplicación Blue Dot..

87
Python mostrará un mensaje que indica la MAC del celular y el estado conectado.

Figura 27 Ventana donde se muestra que el cliente (celular) se conecta correctamente.

Presionar en la parte superior del Botón azul para activar los puertos GPI05 y GPIO13
equivalentes a L_2 y L_4, respectivamente.
Presionar en la parte inferior del Botón azul para activar los puertos GPI06 y GPIO 19
equivalentes a L_1 y L_3, respectivamente.
Presionar en la parte derecha del Botón azul para activar los puertos GPI05 y GPIO19
equivalentes a L_2 y L_3, respectivamente.
Presionar en la parte izquierda del Botón azul para activar los puertos GPI06 y GPIO13
equivalentes a L_1 y L_4, respectivamente.
En Python, se imprimirán los mensajes: adelante, atrás, izquierda, derecha, al presionar
en los lugares respectivos en el botón de la aplicación Blue Dot.

Figura 28 Mensajes de los puntos cardinales al oprimir el punto Blue Dot.

88
EJERCICIO 2

Se utilizarán dos módulos didácticos ya que en el primer módulo se simulará el programa


bluetooth_server y en el segundo módulo se simulará el programa bluetooth_cliente o
viceversa. Se puede crear los dos programas en los dos módulos a la vez para alternar
la simulación.
En el primer módulo crear un nuevo archivo en Python con el nombre bluetooth_server.py
y guardarlo en la carpeta Desktop.

Figura 29 Ventana para crear y guardar un nuevo archivo en la carpeta Desktop.

En Python escribir el código para importar las librerías de Bluetooth, y las librerías para
el uso de los puertos GPIO.

Figura 30 Código en Python para importar todas las librerías a utilizar.

Definir los pines del puerto GPIO que serán usados como salida de estados lógicos para
el encendido y apagado de los LEDs.

Figura 31 Código en Python para definir los puertos GPIO a utilizar.

89
Se asigna un nombre a cada puerto GPIO para una mejor identificación del código.
Escribir los comandos para crear la comunicación Bluetooth a través del protocolo
RFCOMM y la conformación de un socket de comunicación.

Figura 32 Código en Python para comunicar mediante RFCOMM y el socket de comunicación.


Se definirá un número de puerto, la MAC del cliente por default y el estado en modo
listening del puerto. Escribir el código que será el condicional para encender y apagar los
LEDs según los datos recibidos.

Figura 33 Código en Python para condicionar el encendido y apagado de LEDs.

Para finalizar el código, se usa un condicional que romperá la función del programa
infinito. El cliente envía un dato para cerrar la comunicación del programa servidor.

Figura 34 Código en Python para romper el programa infinito y cerrar la comunicación.

Guardar las modificaciones con Ctrl+S. Presionar F5 para simular y verificar errores.

90
En el segundo módulo, crear un nuevo archivo en Python con el nombre
bluetooth_cliente.py y guardarlo en la carpeta Desktop.
Escribir al inicio del programa el código para importar librerías Bluetooth, librerías para el
uso de puertos GPIO y librerías para colocar pausas en el programa.

Figura 35 Código en Python para importar todas las librerías a utilizar.

Escribir el siguiente código para definir los puertos GPIO como entrada y que leerán el
estado lógico al presionar los pulsadores del módulo didáctico.

Figura 36 Código en Python para definir los puertos GPIO como entrada.

Solicitar la MAC del módulo a enviar los datos (deberá ser el módulo de otro grupo). Para
conocer la MAC del módulo de otro grupo, solicitar abrir la consola LX terminal y escribir
el comando bluetoothctl o hciconfig y presionar Enter.

Figura 37 Se muestra la MAC Address de la tarjeta Pi.

Se copia en este programa la MAC del módulo de otro grupo. La MAC que dice: Controller
[Default]. Debe quedar de la siguiente manera:

Figura 38 Código en Python para ingresar la Mac Address de otro módulo didáctico.

Escribir el siguiente código en el programa para realizar la conexión Bluetooth mediante


un socket, utilizando el protocolo RFCOMM. Se utiliza el mismo puerto de comunicación
y la MAC que se utilizó en bluetooth_server para crear el socket de comunicación: cliente-
servidor.

91
Figura 39 Código en Python para comunicar mediante RFCOMM y el socket de comunicación.

A continuacion, escribir el código de sentencias condicionales que enviará los datos al


presionar los pulsadores, mediante el cambio de un estado lógico. Al presionar el cuarto
pulsador, envía el último dato “D” y rompe el programa con la función break.

Figura 40 Código en Python para enviar datos lógicos al presionar los pulsadores.

Para finalizar el código, escribir el código condicional que permitirá ingresar un dato desde
el teclado para cerrar la comunicación Bluetooth.

Figura 41 Código en Python para ingresar un dato lógico y cerrar la comunicación.

En la variable “fin” se almacena el string “1” como cadena de texto y se envía a través del
socket de comunicación creado. Guardar con Ctrl+S y F5 para simular.
Abrir el ícono de Bluetooth, en uno de los módulos seleccionar Make Discoverable y en
el otro módulo Add Device, indistintamente sea módulo servidor o módulo cliente.

Figura 42 Ventana para hacer descubrible el bluetooth de la tarjeta Pi.

92
Se abrirá una ventana, la cual mostrará los dispositivos detectados y en donde se
seleccionará al módulo Raspberry Pi con el cual se realizará la comunicación Bluetooth.

Figura 43 Ventana donde se muestra los dispositivos con el bluetooth activo.

En el módulo receptor aparecerá la petición de conexión, dar clic en OK.

Figura 44 Solicitud de emparejamiento en el módulo Servidor y módulo Cliente.

En el módulo que realizó la petición, aparecerá el siguiente mensaje: se han emparejado


con éxito. Dar clic en OK.

Figura 45 Mensaje de emparejamiento de dispositivos con éxito.

Los módulos están emparejados y estos aparecerán en la lista del ícono de Bluetooth de
cada módulo didáctico.

Figura 46 Ventana donde se muestra los dispositivos emparejados.

93
Una vez emparejados, los dos siguientes grupos procederán con este proceso de
emparejamiento.
Para ejecutar la práctica, correr el programa bluetooth_server.py, presionando F5.

Figura 47 Ventana de simulación del programa Servidor en Python 2.

En el segundo módulo, correr el programa bluetooth_cliente.py, presionando F5.

Figura 48 Ventana de simulación del programa Cliente en Python 2.

Esperar hasta que la petición de conexión del cliente sea aceptada por el servidor.
En el programa del primer módulo, se imprimirá el siguiente mensaje, junto con la MAC y
el puerto por el cual se está comunicando.

Figura 49 Ventana del programa Servidor, mostrando conexión aceptada.

En el segundo módulo, presionar los pulsadores y en el monitor se observará lo siguiente.


Nota: Presionar los pulsadores en orden, desde el pulsador ubicado en la esquina inferior
izquierda.

94
Figura 50 Ventana del programa Cliente, mostrando los pulsadores presionados.

Se muestra el mensaje del dato que se envía, y a la vez se enciende el LED


correspondiente en el otro módulo. Al enviar el último dato que es “D”, se rompe el
programa y pide presionar “1” desde el teclado para cerrar la conexión.

Figura 51 Ventana donde se muestra el mensaje de “cerrar conexión”.

Finalizada la práctica, eliminar los archivos creados. Se selecciona al archivo y enseguida


presionar las teclas Shift+Del o Shift+Supr.
Para apagar el módulo, clic en el ícono de “Inicio” Raspberry Pi, y seleccionar: Shutdown.

Figura 52 Botón “Inicio” en la barra de tareas para apagar el módulo.

95
D.3 PRÁCTICA DE GPS.

D.3.1 TEMA

Manejo de un módulo GPS y obtención de datos por puerto serial.

D.3.2 MATERIALES

- 1 módulo de comunicaciones inalámbricas con Raspberry Pi 3 y Módulo GPS.


- Adaptador HDMI a VGA y cable VGA.
- Fuente de alimentación 2500mA (2,5 A), monitor, teclado y mouse.
- 6 cables para protoboard para la LCD y 2 cables para protoboard para el GPS.

D.3.3 DESARROLLO DE LA PRÁCTICA

1. Conectar con los cables para protoboard los pines de la LCD y del módulo GPS con la
tarjeta Pi, de la siguiente manera:

Figura 1 Conexión de los pines de la LCD y el GPS con la tarjeta Pi.

Encender el módulo GPS y la LCD mediante los dipswitch ubicados cerca del LED
POWER. Deben estar en la posición: ON.

Al finalizar la práctica apagar la LCD y el módulo GPS colocando los dipswitch en la


posición: 1-2.

96
Figura 2 Dipswitch de encendido y apagado de la LCD y el GPS.

Módulo completo con los respectivos puertos de la tarjeta Pi y su identificación:

Figura 3 Puertos de la tarjeta Pi y conexión de la LCD y el GPS con la tarjeta Pi.

§ Al puerto PWR conectar la fuente de alimentación de 5V y 2500mA.


§ Al puerto HDMI conectar el adaptador HDMI a VGA, seguido el cable VGA y al
monitor.
§ A los Puertos USB conectar un teclado y un mouse.
Una vez realizada todas las conexiones, se conecta el cable de alimentación del monitor
y la fuente de alimentación de 5V a un tomacorriente que provea electricidad.
Presionar el botón de encendido que se encuentra en el cable USB de la fuente de
alimentación.

Figura 4 Botón de encendido para pasar o cortar la energía hacia el módulo.

97
Observar que el ícono de Bluetooth se muestre de color gris:

Figura 5 Ícono de bluetooth apagado.

Si el mensaje que aparece en el cuadro al dar clic en el ícono de Bluetooth es No


Bluetooth adapter found, dirigirse al numeral 3 para realizar la práctica directamente.
En el caso de que el mensaje sea Turn on Bluetooth o el ícono se encuentre en color
azul, como se muestra en la figura, realizar lo siguiente:

Figura 6 Ícono de bluetooth activo de la tarjeta Pi.

2. Abrir la consola LX Terminal, cuyo ícono se encuentra en la parte inferior izquierda.

En la consola de Raspberry Pi, ingresar el siguiente comando: sudo nano


/boot/config.txt. Oprimir Enter y se ingresa a editar el archivo config.txt.

Figura 7 Ejecución de línea de comando para configurar: config.txt.

Dirigirse hacia abajo, hasta la parte final del archivo. Se verá el siguiente mensaje:
#borrar las líneas de abajo para realizar práctica de Bluetooth y GPS

Figura 8 Ventana donde se borra las líneas subrayadas para activar puertos para el GPS.

98
Borrar las líneas que se encuentren bajo el mensaje indicado, presionar Ctrl+X y luego
presionar S+Enter para salir del archivo ya modificado.
Como siguiente paso, ejecutar el script que activará los puertos de comunicación UART
de la tarjeta Pi para comunicarse con el módulo GPS. Abrir la consola LX Terminal,
escribir el comando cd Desktop y presionar Enter para ingresar a la carpeta del escritorio.
Si el script no se encuentra en el escritorio usar el comando: cd /home/pi/Documents.

Figura 9 Línea de comando para dirigirse a la carpeta del escritorio.

Luego, escribir el comando sudo python activar_gps.py y presionar Enter. Cambiará el


estado de los puertos de comunicación UART e inmediatamente el sistema operativo se
reiniciará.

Figura 10 Línea de comando para activar los puertos de comunicación con el GPS.

Al reiniciar el sistema, Bluetooth estará totalmente inhabilitado y el puerto de


comunicación UART estará habilitado para obtener los datos del módulo GPS.

Si la antena del GPS se encuentra en línea de vista con los satélites, comenzará a
parpadear un LED rojo o verde en el módulo GPS, indicando la correcta sincronización.
Para observar los datos en tiempo real, abrir la consola LX Terminal escribir el comando
sudo cat /dev/ttyAMA0 donde AMA0 es el nombre del puerto serial UART.

Figura 11 Línea de comando para observar el envío de datos del módulo GPS.

Al presionar Enter se podrá observar en la consola, que el módulo GPS envía datos a
través de la comunicación serial UART y el string de datos $GPGGA de prueba.

99
Figura 12 String de datos $ GPGGA en consola.

Detener la lectura y recepción de datos presionando las teclas Ctrl+X o Ctrl+Z.


3. Para desarrollar el código, abrir el programa Python 2 (IDLE) ubicado en el escritorio.

Figura 13 Ícono de acceso directo a Python 2.

Se abre una ventana de trabajo denominado (IDLE) de Python, para simular programas.

Figura 14 Ventana de inicio de trabajo en Python 2.

Crear un nuevo archivo dando clic en la pestaña File, seleccionar New File o presionar
las teclas Ctrl+N. Para abrir un archivo ya creado, presionar Open o Ctrl+O.

Figura 15 Pestaña de opciones para la ventana de trabajo de Python 2.

100
Se abrirá una ventana en donde se desarrollará el código de la práctica, que luego será
simulado en Python. Guardar el nuevo archivo dando clic en File y luego en Save o
presionando Ctrl+S. Cada vez que se desee simular el programa en Python, se deberá
guardar las modificaciones presionando Ctrl+S, entonces presionar F5.

Figura 16 Ventana donde se ubica “Save” para guardar modificaciones.

En la ventana Guardar como, seleccionar la carpeta Desktop en donde se guardará el


archivo creado. Guardar el archivo con el nombre: gps_lcd.py

Figura 17 Ventana para crear y guardar un nuevo archivo en la carpeta Desktop.

Ahora, escribir el código para importar las librerías que serán usadas por el programa.

Figura 18 Código en Python para importar todas las librerías a utilizar.

En la figura anterior, se observa la librería que permitirá usar los strings de datos, realizar
la comunicación UART, usar el puerto GPIO para la LCD, y la librería pynmea2 para
extraer los datos del GPS.

101
Ahora, escribir el código para definir los puertos GPIO de la LCD, el número de columnas
y filas, y asignar nombres a los puertos GPIO de datos, de la LCD.

Figura 19 Código en Python para definir los puertos GPIO de la LCD.

Mediante la función lcd.message se imprime el mensaje de bienvenida: Welcome GPS.

Figura 20 Código en Python para imprimir mensaje de bienvenida.

Código en el cual estará alojado el puerto de comunicación UART de la tarjeta Pi.

Figura 21 Código en Python para definir el puerto UART Tx/Rx.

Escribir la función para definir la velocidad de transmisión de datos y el puerto de


comunicación específico.

Figura 22 Código en Python para definir la velocidad de transmisión de datos.

A continuación, se crea un bucle infinito utilizando “while”, junto con los comandos try y
except. Además, se leerán los datos seriales del GPS enviados por el puerto.
Se crea la sentencia condicional, la cual seleccionará el string $ GPGGA, que contiene
la latitud, longitud, y altitud en la cadena de caracteres.
Con ayuda de la función pynmea2.parse(data) se guarda el string de datos en la variable
“msg”, para luego seleccionar los datos de interés.

102
Figura 23 Código en Python para crear un bucle infinito y seleccionar-guardar el string.

Por último, se utiliza las funciones de la librería pynmea2 para representar los datos del
string $ GPGGA, en la LCD y en Python.
Dentro de la sentencia if, escribir el código para obtener la latitud, longitud y altitud:

Figura 24 Código en Python para obtener la latitud y longitud.

Figura 25 Código en Python para obtener la altitud.

4. Para simular el programa, presionar las teclas Ctrl+S para guardar y luego F5.
Observar que el módulo GPS esté sincronizado (LED parpadeando). Si el módulo GPS
está sincronizado, se podrá observar los datos de funcionamiento del programa en la
LCD y en Python. A continuación se muestra el mensaje de bienvenida:

103
Figura 26 Mensaje de bienvenida en la simulación y en la LCD, en tiempo real.

Enseguida se muestran en tiempo real, los mensajes de la latitud y la longitud:

Figura 27 Mensajes de latitud y longitud en la simulación y en la LCD, en tiempo real.

Luego de cinco segundos, se muestra la altitud en metros sobre el nivel del mar:

Figura 28 Mensaje de la altura en la simulación y en la LCD, en tiempo real.

Cerrar Python para finalizar la simulación en tiempo real. Finalizada la práctica, eliminar
los archivos creados. Se selecciona al archivo y enseguida presionar las teclas Shift+Del
o Shift+Supr.
Para apagar el módulo, clic en el ícono de “Inicio” Raspberry Pi, y seleccionar: Shutdown.

Figura 29 Botón Inicio de Raspberry Pi para apagar el módulo.

104

También podría gustarte