- Raspberry pi pico
- Módulo bluetooth
- Protoboard
- Jumpers
- Potenciómetro
El módulo bluetoooth nos permite hacer proyectos de manera inalámbrica, también lo podemos conectar a otros dispositivos como: celulares, computadoras, microcontroladores, etc.
Se tienen dos tipos de módulos bluetooth, e HC06 que funciona como esclavo, y el HC05 que funciona como esclavo y maestro.
Partes de un servomotor:
- Key: Para alternar entre el modo de datos.
- VCC: pin de alimentación del módulo, generalmente de 3.3 V a 6 V -GND: pin de tierra del módulo. -TX: pin de transmisión en serie de los datos. -RX: pin de recepción en serie de los datos.
Para la configuración del módulo bluetooth, se tienen que hacer mediante comandos AT, algunos de estos comandos se muestran en la siguiente tabla:
Comando | Descripción | Respuesta |
---|---|---|
AT+PSWD=XXXX | Establecer una contraseña | ok |
AT+NAME= "Nombre" | Cambiar el nombre del módulo | ok |
AT+CMODE= "Mode" | Cambiar el modo de conexión | ok |
AT+ROLE= "Role" | Cambiar el modo de trabajo, 0: esclavo, 1: maestro | ok |
AT+BIND= "Address" | Especificar la dirección del dispositivo al cual nos vamos a conectar | ok |
AT+VERSION? | Obtener la versión del firmware | +VERSION |
AT+RESET | Resetear el módulo | ok |
ElEn la figura de abajo se muestra la conexión del módulo bluetooth con la raspberry pi pico. Para capturar la señal del potenciómetro se hace uso del pin pot -> GPIO 26
, para el puerto TX el pin TX -> GPIO 4
y para el puerto RX el pint RX -> GPIO 5
.
"""
Nombre de la práctica: Potenciómetro con módulo Bluetooth
Microcontrolador Raspberry Pi Pico
Autor: Ing. Víctor González Jacobo
"""
##Declaración de las librerias
from machine import ADC,Pin, UART
from utime import sleep, sleep_ms
##Configuración del puerto UART
serial = UART(0, 9600)
### Declaración de los pines físicos
val_pot = ADC(26)
factor_16 = 3.3 / (65535)
def main():
print("Inicio del programa")
while True:
voltaje = val_pot.read_u16() * factor_16
buffer = "Voltaje: " + (str(voltaje))+'\n'
serial.write(buffer)
sleep(2)
if __name__ == '__main__':
main()