Usodela Raspberri Pi
Usodela Raspberri Pi
Usodela Raspberri Pi
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.
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.
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.
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.
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]
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].
Tarjeta Raspberry Pi 3
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.
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]
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.
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]
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.
Raspbian OS
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.
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]
7
Dispositivo Android
Diodo LED
8
Resistor
Trimmer
Pulsador
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
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.
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.
3. RESULTADOS Y DISCUSIÓN
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.
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.
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.
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.
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.
13
Diagrama final de todas las conexiones en el módulo didáctico
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.
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.
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.
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.
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.
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.
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.
17
3.3 CONFIGURACIÓN PREVIA.
18
Figura 3.14 Ventana del software Etcher.
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
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.
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.
DAEMON_CONF="/etc/hostapd/hostapd.conf"
DAEMON_CONF=/etc/hostapd/hostapd.conf
22
Figura 3.20 Direccionando la ubicación del archivo de configuración.
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.
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"
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
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.
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.
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.
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:
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.
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.
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
Práctica de WiFi
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.
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.
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
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.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
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.
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.
37
Figura 3.30 Diagrama de flujo de la práctica de GPS.
38
3.5 PRUEBAS DE FUNCIONAMIENTO.
WiFi
39
Figura 3.31 Celular conectado a WiFi a través del access point: MODULO_2.
Bluetooth
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
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.
42
3.6 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
· 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.
· 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.
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.
· 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
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.
· 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.
47
5. REFERENCIAS BIBLIOGRÁFICAS
[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].
[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.
[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].
[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].
[21] S. Python, «www.python.org,» Python Software Foundation, 2001. [En línea]. Available:
https://www.python.org/about/. [Ú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].
[28] L. I. R. García, «Principios del G.P.S,» Buran, vol. 6, nº 6, pp. 21-22, 1995.
[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].
[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].
51
ANEXOS
ANEXOS
52
ANEXO A: SUSTENTO TEÓRICO.
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]
53
A.1.2 Detalles de la antena cerámica
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]
55
ANEXO B: CÓDIGOS DE PROGRAMACIÓN.
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.
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
- Módulo completo con todos los cables conectados en los respectivos puertos:
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,
63
4. DESCRIPCIÓN DE LAS ACTIVIDADES Y PROCEDIMIENTO DE LA PRÁCTICA
4.1 Modo de conexión 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).
Import os, import time, import serial, import string, import pynmea2, import
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:
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.1 TEMA
D.1.2 MATERIALES
68
§ Puertos USB conectar un teclado y un mouse.
69
Figura 7 Verificando que haya conexión a internet en la tarjeta Pi.
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.
- 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.
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:
73
Figura 12 Detalle de los dispositivos conectados al nuevo punto de acceso.
74
- Guardar el archivo (Ctrl+X seguido S+Enter).
- De la siguiente forma:
75
13. Apagar el módulo didáctico.
- Para apagar el módulo, clic en el icono de “Inicio” Raspberry Pi, y seleccionar:
Shutdown.
76
1. Direccionamiento VLSM para Módulo 1:
77
5. Direccionamiento VLSM para Módulo 5:
78
9. Direccionamiento VLSM para Módulo 9:
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
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:
80
§ Puertos USB conectar un teclado y un mouse.
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.
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.
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
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.
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.
Activar el Bluetooth en el celular y marcar la casilla “visible para todos los dispositivos”.
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.
Se abre una ventana de trabajo denominado (IDLE) de Python, para simular programas.
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.
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.
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 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.
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.
87
Python mostrará un mensaje que indica la MAC del celular y el estado conectado.
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.
88
EJERCICIO 2
En Python escribir el código para importar las librerías de Bluetooth, y las librerías para
el uso de los puertos GPIO.
Definir los pines del puerto GPIO que serán usados como salida de estados lógicos para
el encendido y apagado de los LEDs.
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.
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.
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.
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.
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.
91
Figura 39 Código en Python para comunicar mediante RFCOMM y el socket de comunicación.
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.
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.
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.
Los módulos están emparejados y estos aparecerán en la lista del ícono de Bluetooth de
cada módulo didáctico.
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.
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.
94
Figura 50 Ventana del programa Cliente, mostrando los pulsadores presionados.
95
D.3 PRÁCTICA DE GPS.
D.3.1 TEMA
D.3.2 MATERIALES
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:
Encender el módulo GPS y la LCD mediante los dipswitch ubicados cerca del LED
POWER. Deben estar en la posición: ON.
96
Figura 2 Dipswitch de encendido y apagado de la LCD y el GPS.
97
Observar que el ícono de Bluetooth se muestre de color gris:
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 10 Línea de comando para activar los puertos de comunicación con el 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.
Se abre una ventana de trabajo denominado (IDLE) de Python, para simular programas.
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.
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.
Ahora, escribir el código para importar las librerías que serán usadas por el programa.
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.
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:
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.
Luego de cinco segundos, se muestra la altitud en metros sobre el nivel del mar:
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.
104