Skip to content

Commit ab82df4

Browse files
committed
trial es language
1 parent 76ca2d0 commit ab82df4

File tree

1 file changed

+191
-0
lines changed

1 file changed

+191
-0
lines changed

worksheet-es.md

Lines changed: 191 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,191 @@
1+
# Empezando a controlar pins con GPIO Zero
2+
3+
## Pins GPIO
4+
5+
Al conjunto de pines que se encuentran a un lado de la Raspberry Pi se les llama pins GPIO (General-Purpose Input/Output) o Entradas y Salidas de Propósito General.
6+
7+
Estos pines permiten a la Raspberry controlar cosas en el mundo real. Puedes conectar componentes electrónicos a estos pines: estos componentes pueden ser de salida, como los LEDs (Diodos Emisores de Luz) que se pueden encender y apagar a voluntad, o componentes de entrada, como un botón o un sensor que puedes usar para disparar otros eventos. Por ejemplo, puedes encender un LED cada vez que detectes que un botón ha sido pulsado.
8+
9+
Con la librería GPIO Zero, podrás controlar los pins GPIO de la Raspberry de manera sencilla. Hay 40 pins en la Raspberry Pi (26 en los modelos más antiguos) que permiten diferentes funciones.
10+
11+
La etiqueta de identificación RasPIO puede ayudarte a identificar cuál es el uso de cada pin. Asegúrate de que la etiqueta está colocada de manera que el pequeño agujero quede al lado de los puertos USB, ligeramente hacia afuera de la placa.
12+
13+
![](images/raspio-ports.jpg)
14+
15+
Si no tienes una etiqueta, esta guía puede ayudarte a identificar el número de cada pin.
16+
17+
![](images/pinout.png)
18+
19+
Verás que hay pins que están marcados con 3V3, 5V, GND y GP2, GP3, etc:
20+
| | | |
21+
| --- | --- | --- |
22+
|3V3|3.3 voltios|Cualquier cosa que conectes a estos pins recibirá un voltaje de 3.3V|
23+
|5V|5 voltios|Cualquier cosa que conectes a estos pins recibirá un voltaje de 5V|
24+
|GND|Tierra|Tierra o cero voltios, usado para cerrar el circuito.|
25+
|GP2|GPIO pin 2|Estos pines son de propósito general y se pueden configurar como entrada o como salida
26+
|ID_SC/ID_SD/DNC|Pins de propósito especial|
27+
28+
## Encender un LED
29+
Prueba a conectar un LED a los pins de 3.3V y GND con una resistencia.
30+
31+
![](images/led-3v3.png)
32+
33+
El LED se debería encender. Siempre estará encendido, porque está conectado a un pin de 3.3 voltios.
34+
35+
Ahora prueba a moverlo del pin 3.3V al pin GPIO 17:
36+
37+
![](images/led-gpio17.png)
38+
39+
El LED ahora se debería apagar, pero como está conectado a un pin GPIO podemos controlarlo con código.
40+
41+
## Encendiendo y apagando un LED
42+
43+
GPIO Zero es una nueva librería de Python que proporciona una interfaz sencilla para interactuar con componentes a través de los pines GPIO
44+
1. Abre Python 3 desde el menú principal
45+
46+
1. Puedes encender y apagar un LED tecleando comandos directamente en la ventana del intérprete de Python (también llamada Python shell). Vamos a hacerlo así primero, importando la librería GPIO Zero. También es necesario establecer qué pin GPIO es el que vamos a usar; en este caso será el 17. Junto a los símbolos `>>>`, teclea:
47+
48+
``` python
49+
from gpiozero import LED
50+
51+
led = LED(17)
52+
```
53+
Pulsa **Enter** en el teclado.
54+
55+
1. Para que hacer que el LED se encienda, escribe la siguiente línea y pulsa Enter:
56+
57+
``` python
58+
led.on()
59+
```
60+
61+
1. Para apagar el LED puedes teclear:
62+
63+
``` python
64+
led.off()
65+
```
66+
67+
## Haciendo parpadear el LED
68+
69+
Con la ayuda de la librería time y un pequeño bucle, podemos hacer que el LED parpadee.
70+
71+
1. Crea un nuevo archivo en **Archivo** > **Archivo nuevo**.
72+
1. Guarda el archivo en **Archivo** > **Guardar**.
73+
1. Guarda el archivo como `gpio_led.py`
74+
1. Escribe el siguiente código para empezar:
75+
76+
``` python
77+
from gpiozero import LED
78+
from time import sleep
79+
80+
led = LED(17)
81+
82+
while True:
83+
led.on()
84+
sleep(1)
85+
led.off()
86+
sleep(1)
87+
88+
```
89+
14. Guarda con **Ctrl + s** y ejecuta el código con **F5**.
90+
15. El LED debería estar encendiéndose y apagándose continuamente. Para salir del programa pulsa **Ctrl + c** en el teclado.
91+
92+
## Usando los botones para tener una entrada
93+
Ahora eres capaz de controlar un componente de salida, un LED. Vamos a conectar y controlar un componente de entrada: un botón.
94+
95+
1. Conecta un botón a un pin GND y a al pin 2 GPIO, como se muestra en el diagrama:
96+
97+
![](images/button.png)
98+
99+
1. Crea un nuevo archivo en **Archivo** > **Archivo nuevo**.
100+
1. Guarda el archivo en **Archivo** > **Guardar**.
101+
1. Guarda el archivo como `gpio_button.py`.
102+
103+
1. Esta vez necesitarás la clase Button (botón en inglés), y declarar que el botón estará en el pin 2. Escribe el siguiente código en tu archivo:
104+
105+
``` python
106+
from gpiozero import Button
107+
button = Button(2)
108+
```
109+
110+
1. Ahora puedes hacer que el programa haga algo cuando el botón esté pulsado. Prueba a añadir esta línea:
111+
112+
``` python
113+
button.wait_for_press()
114+
print('Me has apretado')
115+
```
116+
117+
1. Guarda con **Ctrl + S** y ejecuta el código con **F5**.
118+
1. Pulsa el botón y verás cómo tu texto aparece en pantalla.
119+
120+
## Controlando un LED manualmente
121+
122+
Ahora podemos combinar los dos programas que has escrito hasta ahora para controlar el LED usando el botón
123+
124+
1. Crea un nuevo archivo en **Archivo** > **Archivo nuevo**.
125+
2. Guarda el archivo en **Archivo** > **Guardar**.
126+
3. Guarda el archivo como `gpio_control.py`.
127+
4. Ahora escribe el siguiente código:
128+
129+
``` python
130+
from gpiozero import LED, Button
131+
from time import sleep
132+
133+
led = LED(17)
134+
button = Button(2)
135+
136+
button.wait_for_press()
137+
led.on()
138+
sleep(3)
139+
led.off()
140+
```
141+
142+
1. Guarda y ejecuta el programa. Cuando pulses el botón, el LED deberé encenderse durante 3 segundos.
143+
144+
## Haciendo un interruptor
145+
Con un interruptor, pulsando el botón un avez deberá encender el LED, y con la siguiente pulsación el LED se volverá a apagar.
146+
147+
1. Modifica tu código para que quede como este. Estamos usando un flag llamado active para almacenar el estado del LED. La línea `active = not active` conmutará el LED entre los estados `True` y `False`:
148+
149+
``` python
150+
from gpiozero import LED, Button
151+
from time import sleep
152+
153+
led = LED(17)
154+
button = Button(2)
155+
active = False
156+
157+
while True:
158+
if active == False:
159+
led.off()
160+
else:
161+
led.on()
162+
button.wait_for_press()
163+
button.wait_for_release()
164+
active = not active
165+
```
166+
167+
Estaría genial si pudieramos hacer que el LED se encendiera sólo cuando el botón está pulsado. Con la librería GPIO Zero, es bien sencillo.
168+
169+
1. Hay dos métodos de la clase Button llamados `when_pressed` y `when_released`. Estos métodos no bloquean el flujo del programa, así que si se colocan en un bucle, el programa se ejecutará indefinidamente.
170+
171+
1. Modifica tu código para que quede como este:
172+
173+
``` python
174+
from gpiozero import LED, Button
175+
from signal import pause
176+
177+
led = LED(17)
178+
button = Button(2)
179+
180+
button.when_pressed = led.on
181+
button.when_released = led.off
182+
183+
pause()
184+
185+
```
186+
1. Guarda y ejecuta el programa. Ahora cuando el botón está pulsado, el LED se encenderá, y se volverá a apagar cuando el botón deje de estar pulsado.
187+
188+
## Y ahora qué?
189+
190+
Hay muchas otras cosas que probar con GPIO Zero. Puedes echarle un vistazo a la documentación [aquí](https://gpiozero.readthedocs.org/).
191+
Intenta controlar otros componentes como un zumbador, un LED RGD, un motor o un robot.

0 commit comments

Comments
 (0)