Está en la página 1de 9

Benemérita Universidad Autónoma de Puebla

Complejo Regional Centro, San José Chiapa

Ingeniería En Automatización y Autotrónica


Nombre de la práctica Asignatura Periodo
Transmitiendo con Raspberry en modo Procesamiento y Transmisión de datos 5to Semestre
Simplex, Half Duplex, Duplex
Docente: Henry Xochipiltecatl Carreto
Fecha: 11 de Octubre del 2020
Alumnos Matricula
Iván Durán Santos 201805255
Natalia de la Rosa García 201843445
Sara Monica Estrada García 201860424
Briseida Lisett Flores Murillo 201843588

Abstract: UART es un bloque de circuitería responsable de En esta práctica, crearemos un circuito simple para la operación
la aplicación de comunicación en serie asíncrono. Toma del transmisor UART entre dos Raspberry Pi y demostraremos
bytes de datos y transmite los bits individuales de forma cómo lograr la comunicación con Python como lenguaje de
secuencial. programación.

Key Words: Ingeniería en Automatización y Autotrónica,


comunicaciones, redes, sistemas complejos, elementos I. OBJETIVOS
programables, elementos físicos.
❖ Comprender los 3 modos de transmisión de
información.
I. INTRODUCCIÓN ❖ Hacer el código correspondiente en Python 3.8
La comunicación entre dos o dispositivos es importante para la para cada una de las comunicaciones.
carrera, la transmisión de información mediante solo un canal ❖ Utilizar medios diversos para simular el
físico como puede ser un solo cable se puede dar de diferentes funcionamiento deseado.
maneras. Las transmisiones de información se caracterizan por ❖ Interpretar los datos arrojados en el software de
la dirección de transmisión de datos, el modo de transmisión (el Indralogic.
número de bits enviados de manera simultánea y la ❖ Utilizar herramientas diversas dentro de un
sincronización entre emisor y receptor. Por lo cual, el entorno del sistema operativo Raspbian.
U NIVERSAL asíncrono receptor / transmisor (UART) es un
bloque de circuitería responsable de la aplicación de
comunicación en serie asíncrono. II. ESPECIFICACIONES DEL SISTEMA
Toma bytes de datos y transmite los bits individuales de forma
secuencial. En el otro extremo, un receptor recibe los datos y
vuelve a ensamblar los bits en bytes completos de datos. La Raspbian es el sistema operativo recomendado para Raspberry
comunicación puede ser simplex (en una sola dirección, sin que Pi (al estar optimizado para su hardware) y se basa en una
el dispositivo receptor envíe información al dispositivo distribución de GNU/Linux llamada Debian.
transmisor), dúplex completo (ambos dispositivos envían y Raspberry Pi OS es una distribución del sistema operativo
reciben al mismo tiempo). GNU/Linux basado en Debian, y por lo tanto libre para la SBC
Raspberry Pi, orientado a la enseñanza de informática.

Fig01: Transmisión
Fig02: Sistema operativo Raspbian
La función de Rufus es la de crear USBs de arranque. Con ellos por muchas de las cosas que su PC de escritorio hace, como
se puede hacer varias cosas, como crear medios de instalación hojas de cálculo, procesadores de texto y juegos.
de otros sistemas operativos mediante imágenes ISO. También
puedes montar el sistema operativo en el USB para trabajar con
él en cualquier ordenador que no lo tenga, e incluso grabar datos
con los que actualizar el firmware o la BIOS de un ordenador.

Fig05: Raspberry Pi
Fig02.01: Rufus

La Raspberry Pi es la placa de un ordenador simple compuesto


Python es un lenguaje de programación de propósito general por un SoC, CPU, memoria RAM, puertos de entrada y salida
muy poderoso y flexible, a la vez que sencillo y fácil de de audio y vídeo, conectividad de red, ranura SD para
aprender. Es un lenguaje de alto nivel, que permite procesar almacenamiento, reloj, una toma para la alimentación,
fácilmente todo tipo de estructuras de datos, tanto numéricos conexiones para periféricos de bajo nivel, reloj. Prácticamente
como de texto. lo mismo que si miras la parte de atrás de la torre de un
ordenador, porque la Raspberry es un ordenador. Eso sí, no
tiene interruptor para encenderlo o apagarlo.

Fig03: Python

IndraLogic es un sistema de desarrollo para controles lógicos


programables. IndraLogic permite al programador de PLC un
acceso sencillo al potente lenguaje de programación de la IEC
61131-3.
Rexroth IndraLogic se basa en la tecnología CoDeSys de Smart
Software Solutions (3S). A causa de nuevos desarrollos, no se Fig06: Modelos de Raspberry
permite la utilización simultánea de CoDeSys e IndraLogic.

IV. DESARROLLO DEL SISTEMA

Comenzamos analizando cada concepto para entender cómo


funciona cada cosa, por lo menos a grandes rasgos.
Una vez entendido todo, comenzamos con la generación de los
programas que nos ayudarán a controlar los puertos de la tarjeta
RaspBerry Pi. Nosotros no contamos con una tarjeta física, pero
Fig04: Indralogic sabemos cómo se hace, por lo que solo mencionaremos los
pasos que se deben seguir para cumplir los objetivos descritos
con anterioridad.
III. MARCO TEÓRICO Primero se tiene que instalar el sistema operativo propio de la
RaspBerry dentro de la tarjeta, el sistema operativo se llama
Raspberry Pi, es un ordenador de tamaño de tarjeta de crédito Raspbian, para instalarlo necesitamos descargar el sistema
que se conecta a su televisor y un teclado. Es una placa que operativo, posteriormente, es una Micro SD de mínimo 8 GB se
soporta varios componentes necesarios en un ordenador común. le instala, en otras palabras, se bootea la SD, esto se puede hacer
«Es un pequeño ordenador capaz, que puede ser utilizado con ayuda del software Rufus o Balena Etcher.
Posteriormente, se inserta la microSD dentro de la tarjeta, 3. FULL DUPLEX
después, la tarjeta se tiene que conectar a un monitor con un
cable HDMI, un mouse y un teclado con una USB. Para la transmisión Full Duplex nosotros usamos el código que
Posteriormente se tiene que actualizar el sistema operativo y se muestra en la siguiente figura (Código entero en anexos)
finalmente, configurar al gusto y posibilidades de la tarjeta.
Una vez dentro de Raspbian, configurada como un computador
simple. Tenemos que abrir algún editor de texto, este editor de
textos se puede descargar desde internet e instalar con
comandos o se puede usar el que Raspbian trae por defecto.
Posteriormente se escribirá el “Hello World” para asegurar que
todo esté funcionando, como por ejemplo las librerías
necesarias para controlar o mandar pulsos a los pines. Algo
importante a mencionar es que Raspbian trae por defecto
Python 2.7 y Python 3.8, cabe mencionar que nosotros
usaremos Python 3.8
Ya verificadas las versiones del lenguaje interprete e instaladas
correctamente las librerías para la programación, vamos a
comenzar a programar las entradas y salidas dependiendo el
caso.

1. SIMPLEX Fig09: Código hecho en Visual Studio Code para la


Para la transmisión Simplex nosotros usamos el código que se transmisión Full Duplex.
muestra en la siguiente figura (Código entero en anexos)

4. RECEPTOR

Para la recepción de datos de cada uno de los anteriores


métodos de comunicación nosotros usamos el código que se
muestra en la siguiente figura (Código entero en anexos)

Fig07: Código hecho en Visual Studio Code para la


transmisión Simplex.

2. HALF DUPLEX
Para la transmisión Half Duplex nosotros usamos el código que
se muestra en la siguiente figura (Código entero en anexos)

Fig10: Código hecho en Visual Studio Code para la


recepción de información.

Una vez escritos cada uno de los códigos anteriores es


importante guardarlos con la extensión .py necesario para que
reconozca que están escritos en Python y para hacer que
funcionen, nosotros vamos a entrar a la terminal, para esto se
puede utilizar el atajo Ctrl+Alt+T p simplemente podemos
buscar el ícono de la terminar y abrirla con un clic.
Posteriormente vamos a dirigirnos hasta la carpeta o a la
locación donde se hayan guardado los programas y para que los
reconozca la tarjeta se tiene que escribir el intérprete (python3)
más el nombre del archivo con todo y extensión, por ejemplo:
Fig08: Código hecho en Visual Studio Code para la (NOMBRE DE LA UBICACIÓN) python3 SIMPLEX.py
transmisión Half Duplex. Finalmente, si se hizo todo de manera correcta, deberían
funcionar todos los códigos sin problemas.
Nota: Como se puede ver en nuestro ejemplo de código, aparece 2. HALF DUPLEX
que tiene un error ya que es porque no es una raspberry, por lo
que no están instalados los controladores necesarios ya que es Se tiene la simulación animada en el software de Indralogic, en
imposible hacerlo desde un ordenador. el cual mediante el lenguaje Ladder se crea una secuencia de
instrucciones para poder simular la comunicación Half Duplex.

V. SIMULACIONES

1. SIMPLEX

En cuanto a las simulaciones, primero se tiene el simplex, la


cual solamente tiene un pulsador conectado y la otra salida a la
siguiente Raspberry. En la cual tenemos el led como salida, que
se activa al recibir la señal de la primera.

Fig 13: Representación de la comunicación Half Duplex de


dos Raspberry.

Aquí se observa como la imagen de la izquierda el LED 1 se


encuentra encendido y el LED 2 apagado y en la imagen de la
derecha se encuentra de forma viceversa. Observando a dos
Raspberry en función.

Fig11: Circuito propuesto en Indralogic para transmisión


Simplex.

Pasando a la simulación, se tiene que cuando se recibe la señal


de la primera Raspberry, el led enciende en un intervalo de 1
segundo y así sucesivamente en un ciclo hasta que se vuelva a
oprimir el botón de la primera, la cual mandar a detener el
proceso.

Fig 14: Simulación de la representación de la comunicación


Half Duplex de dos Raspberry.

3. FULL DUPLEX
A continuación se muestra la simulación de la comunicación de
Fig 12: Simulación de la representación de la comunicación Full duplex, en el software de Indralogic.
Simplex de dos Raspberry.
modo de transmisión y además se tiene los códigos que podrían
ser probados fácilmente en caso de contar con el material.

VII. ANALISIS DE LOS RESULTADOS


De acuerdos a los resultados obtenidos, observamos como la
practica cumple con las especificaciones y los objetivos
planteados anteriormente. Los tres modelos de transmisión de
datos funcionan según lo explicado y visto en las simulaciones.
Ya que cada transmisión de datos posee una característica
propia nos ayuda a recocerlos y comprenderlos más fácilmente.
Para nosotros es nuevo trabajar con una tarjeta Raspberry, sin
embargo, al trabajar con un dispositivo nuevo nos ayuda a
ampliar nuestra gama de conocimientos.
Fig 15: Representación de la comunicación Full Duplex de VIII. CONCLUSIONES
dos Raspberry.
Al comprender lo beneficios que nos ofrece trabajar con una
Se tiene en la fig 16 a dos Raspberry conectadas por un cable tarjeta Raspberry comprendemos el amplio campo de
en el cual se observa como al momento de iniciar la simulación, oportunidades que se nos brinda, ya que mediante el lenguaje
el led verde y led rojo se encuentran prendidos, después de un Python, podemos desarrollar un sinfín de cosas. Creemos que
segundo el led rojo se apagará, posteriormente el led verde se es muy importante, aplicar conocimientos que ya se tienen de
apagará y se prenderá el led rojo, por último, después de un esa forma retroalimentamos loa que ya sabemos, siendo esta
segundo ambos leds se encontrarán apagados, cumpliendo así una perfecta oportunidad de utilizar Ladder e Indralogic, ya que
la comunicación Full duplex. esto hizo de una forma más representativa los tres tipos de
comunicaciones de datos con los cuales se está trabajando,
hasta el momento.
Python3 es una herramienta muy poderosa a la hora de querer
programar una RaspBerry, actualmente estas tarjetas estás
siendo mejoradas para ser no solo instrumentos para
estudiantes, sino que se pueden utilizar para IoT’s, Inteligencia
Artificial, reconocimiento de objetos, automatización, etc. Las
tarjetas RaspBerry Pi 3 y Pi 4, son actualmente las mejores que
podemos encontrar en el mercado, por sus características y
dinamismo.

IX. APENDICES 1.1


A continuación, se dispone un enlace del video realizado en esta
práctica:
https://youtu.be/9BBORbhLf0E

X. REFERENCIAS

Fazt Code. (2019). Raspberry Pí 3 & Python 3, Hola Mundo


(Parpadear un Led). Octubre 10, 2020, de YouTube Sitio web:
https://www.youtube.com/watch?v=PZOvLbRdgNM

Fazt. (2019). Raspberry Pi, Curso para principiantes. Octubre


Fig 16: Simulación de la representación de la comunicación 10, 2020, de YouTube Sitio web:
Full Duplex de dos Raspberry. https://www.youtube.com/watch?v=ra6kNSIB1uA

VI. IMPLEMENTACION DEL EXPERIMENTO


En este punto, cabe destacar que no se hizo de manera física, ya
que no contamos con dos tarjetas Raspberry, por lo cual, solo
se queda hasta el nivel de simulación, la cual realizamos en el
software de Indralogic. Ya que al carecer de un software en el
cual interpretar de manera más visual los resultados, se optó por
esta herramienta. Ahora bien, se muestra el desarrollo de cada
XI. APENDICES 2.1

• 1. SIMPLEX
• 1.1 CÓDIGO
#Ahora vamos a mostrar el comportamiento de
#la transmisión SIMPLEX
#Comenzamos poniendo la librería que nos ayuda
#A controlar los pines de salida de las RaspBerry Pi3
import RPi.GPIO as GPIO
import time #Librería usada para jugar con el tiempo

#Configuracion de salidas y entradas


PinA = 7 #Con esto seleccionamos el pin 7 para controlar

#Configuracion de hardware general


GPIO.setmode(GPIO.BOARD) #Con esto configuramos el orden de los pines
GPIO.setup(PinA, GPIO.OUT) #Pin 7 a SALIDA
GPIO.output(PinA, GPIO.HIGH) #Aqui ponemos el pin 7 en alto

#Logica de programación
while True:
GPIO.output(PinA, GPIO.HIGH)
time.sleep(1) #Esperamos un segundo para cambiar de estado
GPIO.output(PinA, GPIO.LOW)
time.sleep(1) #Esperamos un segundo para retornar al estado inicial
GPIO.cleanup() #Comando para poder terminar el ciclo con ctrl+c en cualquier momento

• .2 SIMULACIÓN
• 2. HALF DUPLEX
• 2.1 CÓDIGO
#Ahora vamos a mostrar el comportamiento de
#la transmisión HALF DUPLEX
#Comenzamos poniendo la librería que nos ayuda
#A controlar los pines de salida de las RaspBerry Pi3
import RPi.GPIO as GPIO
import time #Librería usada para jugar con el tiempo

#Configuracion de salidas y entradas


PinA = 7 #Con esto seleccionamos el pin 7 para controlar
PinB = 3 #Con esto seleccionamos el pin 5 para controlar

#Configuracion de hardware general


GPIO.setmode(GPIO.BOARD) #Con esto configuramos el orden de los pines
GPIO.setup(PinA, GPIO.OUT) #Pin 7 a SALIDA
GPIO.output(PinA, GPIO.HIGH) #Aqui ponemos el pin 7 en alto
GPIO.setup(PinB, GPIO.OUT) #Pin 3 a SALIDA
GPIO.output(PinB, GPIO.HIGH) #Aqui ponemos el pin 3 en alto

#Logica de programación
while True:
GPIO.output(PinA, GPIO.HIGH) and GPIO.output(PinB, GPIO.LOW) # A not B
time.sleep(1) #Esperamos un segundo para cambiar de estado
GPIO.output(PinA, GPIO.LOW) and GPIO.output(PinB, GPIO.HIGH) #A not B
time.sleep(1) #Esperamos un segundo para retornar al estado inicial
GPIO.cleanup()

• 2.2 SIMULACIÓN
• 3. FULL DUPLEX
• 3.1 CÓDIGOS
#Ahora vamos a mostrar el comportamiento de
#la transmisión FULL DUPLEX
#Comenzamos poniendo la librería que nos ayuda
#A controlar los pines de salida de las RaspBerry Pi3
import RPi.GPIO as GPIO
import time #Librería usada para jugar con el tiempo

#Configuracion de salidas y entradas


PinA = 7 #Con esto seleccionamos el pin 7 para controlar
PinB = 3 #Con esto seleccionamos el pin 5 para controlar

#Configuracion de hardware general


GPIO.setmode(GPIO.BOARD) #Con esto configuramos el orden de los pines
GPIO.setup(PinA, GPIO.OUT) #Pin 7 a SALIDA
GPIO.output(PinA, GPIO.HIGH) #Aqui ponemos el pin 7 en alto
GPIO.setup(PinB, GPIO.OUT) #Pin 3 a SALIDA
GPIO.output(PinB, GPIO.HIGH) #Aqui ponemos el pin 3 en alto

#Logica de programación
while True:
GPIO.output(PinA, GPIO.LOW) and GPIO.output(PinB, GPIO.LOW) #A=0 B=0
time.sleep(1) #Esperamos un segundo para cambiar de estado
GPIO.output(PinA, GPIO.LOW) and GPIO.output(PinB, GPIO.HIGH) #A=0 B=1
time.sleep(1) #Esperamos un segundo para cambiar de estado
GPIO.output(PinA, GPIO.HIGH) and GPIO.output(PinB, GPIO.LOW) #A=1 B=0
time.sleep(1) #Esperamos un segundo para cambiar de estado
GPIO.output(PinA, GPIO.HIGH) and GPIO.output(PinB, GPIO.HIGH) #A=1 B=1
time.sleep(1) #Esperamos un segundo para retornar al estado inicial
GPIO.cleanup()

• 3.2 SIMULACIÓN
• 4. RECEPTOR

#Ahora vamos a mostrar el comportamiento de


#El dispositov RECEPTOR
#Comenzamos poniendo la librería que nos ayuda
#A controlar los pines de salida de las RaspBerry Pi3
import RPi.GPIO as GPIO
import time #Librería usada para jugar con el tiempo

#Configuracion de salidas y entradas


PinA = 7 #Con esto seleccionamos el pin 7 para controlar
PinB = 3 #Con esto seleccionamos el pin 7 para controlar

#Configuracion de hardware general


GPIO.setmode(GPIO.BOARD) #Con esto configuramos el orden de los pines
GPIO.setup(PinA, GPIO.IN) #Pin 7 a ENTRADA
GPIO.setup(PinA, GPIO.OUT) #Pin 3 a SALIDA
GPIO.output(PinA, GPIO.HIGH) #Aqui ponemos el pin 7 en alto

#Logica de programación
if GPIO.output(PinA, GPIO.HIGH):
GPIO.output(PinB, GPIO.HIGH) #Pin3 = High por condicional
else:
GPIO.output(PinB, GPIO.LOW) #Pin3 = Low por condicional
GPIO.cleanup() #Comando para poder terminar el ciclo con ctrl+c en cualquier momento

También podría gustarte