Última actualización: octubre 20, 2022
3.3.1.4 Packet Tracer: Accionador SBC con Python (Versión para el instructor)
Nota para el instructor: El color de fuente rojo o las partes resaltadas en gris indican texto que aparece en la copia del instructor solamente.
Topología
Objetivos
Conviértase en experto con Python para programar el dispositivo SBC de Packet Tracer.
Aspectos básicos/situación
Python tiene un sencillo y robusto lenguaje de programación de amplia difusión que se ejecuta en diferentes plataformas informáticas. Packet Tracer 7.0 aprovecha esto e implementa dispositivos de IoT compatibles con Python.
En esta actividad de Packet Tracer, programará el dispositivo SBC de Packet Tracer 7.0 con Python. El objetivo es permitir que la cafetera empiece a preparar café cuando alguien ingresa en la cocina (detecta el movimiento). La lámpara para encimera también se encenderá.
Recursos necesarios
- Packet Tracer 7,0
Parte 1: Adición y conexión de los dispositivos necesarios
Comenzará con un espacio de trabajo en blanco. Agregue los siguientes dispositivos al espacio de trabajo de Packet Tracer:
a. El dispositivo SBC se encuentra en Componentes >> Placas >> SBC-PT.
b. La cafetera se encuentra en Terminales >> Hogar >> Electrodomésticos.
c. La lámpara para encimera se encuentra en Terminales >> Hogar >> Iluminación.
d. El sensor de movimiento se encuentra en Componentes >> Sensores >> Sensor de movimiento.
e. Cambie los nombres de los dispositivos para que coincidan con el diagrama.
f. Con los cables personalizados de IoT, conecte los dispositivos a la placa PT-SBC. El cable personalizado de IoT se encuentra en Conexiones.
Use la siguiente tabla para encontrar los puertos correctos:
Dispositivo | Puerto SBC |
Cafetera | D1 |
Lámpara | D2 |
Sensor de movimiento | D9 |
Parte 2: Programación de SBC
SBC simula las computadoras de una placa del mundo real, como Raspberry Pi.
Una de las ventajas de SBC-PT es que puede programarse con Python.
a. Haga clic en SBC y seleccione la ficha Programación.
¿Hay algún código precargado en SBC?
No.
El contenido de la ficha Programación se divide en dos partes principales. El panel izquierdo muestra todos los archivos que contienen programas creados por usted. El panel derecho muestra el contenido del archivo actualmente seleccionado en la parte izquierda. Haga clic en el botón Nuevo arriba del panel izquierdo para crear un archivo nuevo. Póngale el nombre main.py y seleccione Vacío – Python para este tipo. El panel izquierdo ahora debe enumerar el nuevo archivo: main.py.
b. En el panel izquierdo, seleccione main.py y haga clic en Abrir; el botón Abrir se encuentra ubicado inmediatamente arriba del panel izquierdo. El panel derecho ahora está listo para recibir el código del programa main.py.
c. En el panel derecho, escriba un programa para instruir a SBC para que encienda la cafetera y la luz cuando detecte movimiento en el sensor de movimiento.
1. from gpio import * 2. from time import * 3. def main(): 4. while True: 5. motion_sensor = digitalRead(9) 6. if motion_sensor == HIGH: 7. print("Someone's awake."); 8. print("Making Coffee..."); 9. customWrite(1,1) 10. customWrite(2,1) 11. delay(6000) 12. print("Done. Coffee is ready."); 13. customWrite(1,0) 14. customWrite(2,0) 15. delay(500) 16. if __name__ == "__main__": 17. main()
Las líneas 1 y 2 incluyen los módulos gpio y tiempo en el programa. Estos módulos son necesarios para las funciones digitalRead(), customWrite() y delay().
La línea 3 define la función main().
La línea 4 define el bucle WHILE. Observe que como la condición siempre es verdadera (el valor booleano True), el bucle se ejecutará para siempre.
La línea 5 lee la señal digital del pin 9 (señal de detector de PT- Motion) y la almacena en la variable motion_sensor. El detector de PT- Motion envía ALTO o BAJO informar para informar el movimiento o la falta de él, respectivamente.
La línea 6 prueba el contenido de la variable motion_sensor. Si equivale a ALTO (hay movimiento), se ejecutan las líneas de la 7 a la 14.
Las líneas 7 y 8 imprimen mensajen en la consola de Python.
Las líneas 9 y 10 envían el valor digital de 1 a los pins digitales 1 y 2. Estos pines se conectan a PT-Coffee Maker y PT-Light, respectivamente. Esto encenderá los dos dispositivos.
La línea 11 fuerza al intérprete a esperar 6000 milisegundos (6 segundos).
La línea 12 imprime otro mensaje en la consola Python.
Las líneas 13 y 14 envían una señal digital de 0 a los pins digitales 1 y 2. Estos pines se conectan a PT-Coffee Maker y PT-Light, respectivamente. Esto desconectará los dos dispositivos.
La línea 15 fuerza al intérprete a esperar 500 miliseconds (0,5 segundos).
Las líneas 16 y 17 son exclusivas del intérprete de Python de Packet Tracer y están fuera del alcance de esta práctica de laboratorio.
Parte 3: Evaluación
Para probar el código, presione la tecla ALT y mueva el ratón por el sensor de movimiento. Esto implica un movimiento para Packet Tracer, que será capturado por el sensor de movimiento de PT. Una vez detectado el movimiento, se envía una señal digital ALTA a SBC que, a su vez, enciende la cafetera y la luz. También aparecen mensajes en la consola de SBC.
¿Se encendió la cafetera?
Sí.
¿Se encendió la luz?
Sí.
¿Qué cambios deben hacerse en SBC si el sensor de movimiento se mueve al puerto D5?
La señal tendría que leer el pin 5 en lugar del 9. En el caso del programa de respuesta dado arriba, esto se hace en la línea 5.
motion_sensor = digitalRead(5)
¿Qué puerto PT-SBC debe usarse para conectar un sensor analógico?
Ninguno. SBC_PT no tiene puertos analógicos. Para usar sensores analógicos, se requiere un MCU-PT.