Skip to content

Commit 3345518

Browse files
committed
actualizacion
1 parent 062106c commit 3345518

File tree

8 files changed

+177
-55
lines changed

8 files changed

+177
-55
lines changed

Instalando_MicroPython.md

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,13 @@ Enlace a sus repositorios
2424

2525
5. Usamos el sigueinte comando para instalar esptool(nos permite flashear el firmware de MicroPython en la tarjeta):
2626

27-
pip3 install esptool
27+
`pip3 install esptool
28+
`
2829

2930
6. Usamos el siguiente comando para instalar ampy (nos permite grabar y borrar los scripts):
3031

31-
pip3 install adafruit-ampy
32+
`pip3 install adafruit-ampy
33+
`
3234

3335
### Cargar "flashear" el firmware en el microcontrolador
3436

@@ -46,21 +48,24 @@ Pyboard, ESP32, ESP8266, WiPy u otro:
4648

4749
3. Abrir la terminal CMD y con el sig comando borrar el flash del microcontrolador:
4850

49-
**esptool.py** erase_flash
51+
`esptool.py erase_flash
52+
`
5053

5154
en algunas versiones el comando va sin el .py
5255

53-
**esptool** erase_flash
56+
`esptool erase_flash
57+
`
5458

5559
4. Vamos a grabar el binario en el microcontrolador:
5660

5761
Antes de usar este comando se debe cambiar el puerto **COMx** y al final ponemos la ruta de nuestro binario, generalemte esta en descargas.
5862

59-
esptool.py --chip esp32 --port COMx --baud 460800 write_flash -z 0x1000 (ruta del binario)
63+
`esptool.py --chip esp32 --port COMx --baud 460800 write_flash -z 0x1000 (ruta del binario)
64+
`
6065

6166
**Ejemplo:** si bajé el binario **esp32-firmware.bin** en descargas, y mi dispositivo esta en el **puerto COM8**.
6267

63-
esptool.py --chip esp32 --port **COM8** --baud 460800 write_flash -z 0x1000 **C:\Users\Descargas\esp32-firmware.bin**
68+
`esptool.py --chip esp32 --port COM8 --baud 460800 write_flash -z 0x1000 C:\Users\Descargas\esp32-firmware.bin`
6469

6570
### Instalar prerequisitos para el IDE ESPlorer
6671

@@ -95,4 +100,8 @@ Antes de usar este comando se debe cambiar el puerto **COMx** y al final ponemos
95100
4. Doble clic en RST para resetear el chip (el el primer clic se hara verde, en el segundo click se hara gris) y saldran mensajes por serial o podemos pulsar el boton de la tarjeta y veremos micropython en nuestra consola:
96101

97102
<img src="media/micropython/reset.png" width="30%">
98-
<img src="media/micropython/upy-serial.png" width="30%">
103+
<img src="media/micropython/upy-serial.png" width="30%">
104+
105+
## Para acceder al sistema de archivos puedes usar la siguiente guía
106+
107+
[Sistema de archivos con ampy](https://github.com/FunPythonEC/Python_para_MicroControladores/blob/master/Sistema_de_archivos.md)
2.57 MB
Binary file not shown.

README.md

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ Python es un lenguaje poderoso y popular en 2019 encabezó el top 10 de lenguaje
44

55
<img src="media/top10.jpeg" width="50%">
66

7-
Se usa espcialemte en el desarrollo de inteligencia artifical, ciencia de datos tambien desarrollo web con su framekork Django, entre otras aplicaciones pero los microcontroladores no podian quedarse atrás, con sus principales implemntaciones: [MicroPython](https://micropython.org/) y [CircuitPython](https://circuitpython.org/), tener un interprete en un microcontrolador fue posible gracias al desarrollo de hardware cada dia mas potente.
7+
Se usa especialemte en el desarrollo de inteligencia artifical, ciencia de datos tambien desarrollo web con su framekork Django, entre otras aplicaciones pero los microcontroladores no podian quedarse atrás, con sus principales implementaciones: [MicroPython](https://micropython.org/) y [CircuitPython](https://circuitpython.org/), tener un interprete en un microcontrolador fue posible gracias al desarrollo de hardware cada dia más potente.
88

99
[Diapositivas charla online para IoT Medellin](https://github.com/FunPythonEC/Python_para_MicroControladores/blob/master/PythonParaMicrocontroladores-IoT_Medellin-FPY.pdf)
1010

@@ -15,7 +15,13 @@ Se usa espcialemte en el desarrollo de inteligencia artifical, ciencia de datos
1515

1616
<img src="media/upython-with-micro.jpg" width="80%">
1717

18-
Micropython es una implementacion ligera de python3 ,esta escrita en C, fue creado por el fisico y programador Damien George en 2014 gracias a una exitosa campaña en [Kickstarter](https://www.kickstarter.com/projects/214379695/micro-python-python-for-microcontrollers), junto a la Pyboard, la placa oficial de micropython, desde entonces se ha portado a diferentes plataformas.
18+
Micropython es una implementacion ligera de python3. creada por el fisico y programador Damien George en 2014 gracias a una exitosa campaña en [Kickstarter](https://www.kickstarter.com/projects/214379695/micro-python-python-for-microcontrollers), junto a la Pyboard, la placa oficial de micropython, desde entonces se ha portado a diferentes plataformas.
19+
20+
A nivel de microcontroladores micropython es un sistema operativo, que incluye un subconjunto de librerias importantes de python (la libreria socket es muy similar a la que usamos en un ordenador)y algunas navitvas para controlar proyectos electronicos, ademas de una sheel interactiva, ademas micropython permite utilizar codigo C++ para optimizar su velocidad. Micropython trata de ser multiplataforma al tener compatiblidad con codigo Python normal y poder enviar tu código de la computadora al microcontrolador con total tranquilidad.
21+
22+
<img src="media/holamundo.png" width="100%">
23+
24+
### Tarjetas que han sido portadas con micropython
1925

2026
<img src="media/tarjetas-micropython.jpg" width="80%">
2127

ejemplos.md

Lines changed: 153 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,153 @@
1+
# Empezando con micropython en ESP8266/32
2+
3+
<img src="media/Esp32-pinout.jpg" width="50%">
4+
5+
<img src="media/Esp8266-pinout.jpg" width="50%">
6+
7+
# Acceso a pines
8+
9+
## SALIDAD DIGITAL (leds, reles)
10+
11+
```py
12+
from machine import Pin
13+
14+
pin = Pin(0, Pin.OUT)
15+
16+
# hay dos variantes para cambiar el estado
17+
# con on/off y con 1/0
18+
19+
pin.on()
20+
pin.off()
21+
22+
pin.value(1)
23+
pin.value(0)
24+
```
25+
26+
## ENTRADA DIGITAL (botones)
27+
28+
```py
29+
from machine import Pin
30+
31+
pin = Pin(2, Pin.IN)
32+
33+
#para imprimir y leer el valor del pin
34+
print(pin.value())
35+
```
36+
37+
## Modulación por ancho de pulsos - PWM (pulse width modulation)
38+
39+
```py
40+
from machine import Pin, PWM
41+
42+
pwm = PWM(Pin(0)) # Creamos el pin PWM
43+
pwm.freq(1000) # establecemos la frecuencia
44+
pwm.duty(200) # establecemos el ciclo de trabajo
45+
46+
pwm.deinit() # apagamos el pin PWM
47+
```
48+
Para crear y configura el pin en un solo paso
49+
50+
```py
51+
from machine import Pin, PWM
52+
53+
pwm = PWM(Pin(0), freq=20000, duty=512)
54+
```
55+
## Conversor Analógico Digital - ADC (analog to digital conversion)
56+
57+
```py
58+
from machine import ADC
59+
60+
adc = ADC(Pin(32))
61+
adc.read()
62+
```
63+
## I2C
64+
65+
Hay dos formas de usar el bus I2C en los ESPXX:
66+
67+
SPI por hardware (cuando usamos los pines definidos como SDA y SCL del ESP para esta función)
68+
69+
```py
70+
from machine import Pin, I2C
71+
72+
i2c = I2C(0)
73+
i2c = I2C(1, scl=Pin(5), sda=Pin(4), freq=40000)
74+
#escaneamos nuestros sensores
75+
i2c.scan()
76+
```
77+
SPI por software(cuando usamos pines diferentes de nuestra tarjeta)
78+
79+
```py
80+
from machine import Pin, I2C
81+
82+
i2c = I2C(scl=Pin(5), sda=Pin(4), freq=100000)
83+
#escaneamos nuestros sensores
84+
i2c.scan()
85+
```
86+
87+
NEOPIXEL leds programables
88+
89+
90+
```py
91+
from machine import Pin
92+
from neopixel import NeoPixel
93+
94+
#establecemos el número del pin GPIO la que estan los leds
95+
#establememos la cantidad de leds que hay
96+
97+
pin = Pin(0, Pin.OUT)
98+
np = NeoPixel(pin, 8)
99+
100+
#para encender un led es necesario indicar la posición de este
101+
102+
np[0] = (255, 255, 255)
103+
104+
#con np.write actualizamos los leds
105+
np.write()
106+
```
107+
108+
ejemplo con un for para encender varios leds de una tira neopixel
109+
110+
```py
111+
num_leds=10
112+
pin_salida=15
113+
np = neopixel.NeoPixel(machine.Pin(pin_salida), num_leds)
114+
115+
for led in range(num_leds):
116+
np[led]=(255,0,0)
117+
np.write()
118+
119+
```
120+
121+
WiFi conexión robusta
122+
123+
```py
124+
#CONEXION A LA RED WIFI
125+
# Informacion de la red WiFi
126+
WIFI_SSID = ''
127+
WIFI_PASSWORD = ''
128+
129+
# apagar el punto de acceso WiFi
130+
ap_if = network.WLAN(network.AP_IF)
131+
ap_if.active(False)
132+
133+
# conecta el dispositivo a la red WiFi
134+
wifi = network.WLAN(network.STA_IF)
135+
wifi.active(True)
136+
wifi.connect(WIFI_SSID, WIFI_PASSWORD)
137+
138+
# esperar hasta que el dispositivo esté conectado a la red WiFi
139+
MAX_ATTEMPTS = 20
140+
attempt_count = 0
141+
142+
while not wifi.isconnected() and attempt_count < MAX_ATTEMPTS:
143+
attempt_count += 1
144+
time.sleep(1)
145+
print('conectando a la red WiFi...')
146+
147+
if attempt_count == MAX_ATTEMPTS:
148+
print('no se pudo conectar a la red WiFi')
149+
sys.exit()
150+
151+
print('conectado a la red WiFi')
152+
print ("Configuracion de red: ", wifi.ifconfig())
153+
```

ejemplos/pines.py

Lines changed: 0 additions & 46 deletions
This file was deleted.

media/Esp32-pinout.jpg

51.6 KB
Loading

media/Esp8266-pinout.jpg

49.6 KB
Loading

media/holamundo.png

57.4 KB
Loading

0 commit comments

Comments
 (0)