Laboratorul 04: Introducere in Raspberry Pi Pico, MicroPython si utilizarea senzorilor (BMP280 si LDR)
Obiective:
Acest laborator ii va invata pe studenti sa:
Inteleaga ce este Raspberry Pi Pico si cum functioneaza.
Invete despre senzorii BMP280 (temperatura si presiune) si LDR (lumina).
Inteleaga ce este MicroPython, cum functioneaza si de ce este folosit.
Configureze Raspberry Pi Pico in VS Code folosind extensia MicroPico.
Gaseasca adresa I2C a senzorului BMP280.
Conecteze si sa programeze senzorii pentru a citi date de la acestia.
Invete cum sa adune informatiile necesare pentru a scrie codul care citeste date de la senzori.
Partea I: Introducere teoretica
1. Ce este Raspberry Pi Pico?
Raspberry Pi Pico este un microcontroler bazat pe cipul RP2040 dezvoltat de Raspberry Pi. Este ideal pentru proiecte de IoT, automatizari si roboti, fiind conceput pentru a interactiona cu senzori si alte componente electronice.
Caracteristici principale:
Procesor dual-core ARM Cortex-M0+ la 133
MHz.
264 KB RAM.
26 pini GPIO care permit conectarea diverselor senzori si dispozitive externe.
Suport pentru comunicatii I2C, SPI, UART, PWM si ADC.
2. Ce este MicroPython?
MicroPython este o implementare usoara a Python, conceputa special pentru microcontrolere. Este eficienta si usor de utilizat, permitand dezvoltatorilor sa controleze senzori si alte componente hardware utilizand un limbaj de nivel inalt.
Partea II: Configurarea mediului de dezvoltare in VS Code
Instalarea si configurarea VS Code cu extensia MicroPico
Pas 1: Descarca si instaleaza VS Code:
Pas 2: Instaleaza extensia MicroPico
Pas 3: Instalarea MicroPython pe Raspberry Pi Pico
Pas 4: Testarea conexiunii in VS Code
Exercitii
Exercitiu 1: Utilizarea senzorilor BMP280 si LDR
1. Conectarea senzorilor la Raspberry Pi Pico
Senzorul BMP280 (I2C):
SCL → pin GP21.
SDA → pin GP20.
VCC → 3.3V.
GND → GND.
Exercitiu 2: Citirea senzorului de lumina (LDR)
Pentru senzorul LDR, trebuie sa citesti o valoare analogica folosind ADC-ul de pe Raspberry Pi Pico. Urmatorii pasi te vor ajuta sa construiesti codul:
Ce trebuie sa stii:
ADC (Analog to Digital Converter) este folosit pentru a converti semnalele analogice in valori numerice pe care Pico le poate procesa.
In cazul unui LDR, poti citi intensitatea luminii prin intermediul unui pin ADC de pe Pico.
Exercitiu 3: Gasirea adresei senzorului I2C
Inainte de a putea citi date de la senzorul BMP280, trebuie sa afli adresa I2C a acestuia. Adresele I2C sunt unice pentru fiecare dispozitiv si pot varia. Procesul de a gasi adresa este esential pentru a comunica corect cu senzorul.
Pasul 1: Scrierea codului pentru scanarea dispozitivelor I2C
Pentru a gasi adresa senzorului, trebuie sa scrii un cod care sa scaneze dispozitivele I2C conectate la Raspberry Pi Pico.
Ce trebuie sa stii:
I2C este un protocol de comunicatie utilizat pentru a conecta senzori si alte componente la un microcontroler.
In Raspberry Pi Pico, poti utiliza biblioteca machine din MicroPython pentru a comunica cu dispozitivele I2C.
Pinul SCL (Serial Clock) si pinul SDA (Serial Data) sunt necesare pentru comunicatia I2C. In acest laborator, vei folosi GP21 pentru SCL si GP20 pentru SDA.
Informatia necesara pentru a scrie codul:
Exercitiu 4: Citirea senzorului de temperatura
Acum ca ai gasit adresa senzorului BMP280, este timpul sa scrii codul care citeste datele de temperatura si presiune de la acesta. Pentru a face asta, trebuie sa intelegi urmatoarele concepte:
1. Structura registrului BMP280
2. Citirea coeficientilor de calibrare
Senzorul BMP280 furnizeaza coeficienti de calibrare care sunt esentiali pentru a converti datele brute in valori corecte de temperatura si presiune.
Acesti coeficienti se gasesc in registrele de calibrare care incep de la 0x88.
3. Cum sa scrii functii pentru a citi datele
Citeste datele brute din registre.
Foloseste coeficientii de calibrare pentru a compensa valorile brute.
Afiseaza rezultatele finale.
Etape:
Initiaza senzorul: Scrie o functie pentru a seta senzorul in modul de operare normal. Acest lucru se face prin scrierea unei valori in registrul de control al senzorului.
Citeste coeficientii de calibrare: Aceasta este o alta functie care citeste datele de calibrare de la senzor. Foloseste functia readfrom_mem() pentru a citi din registrele respective.
Citeste valorile brute de temperatura si presiune: Scrie functii pentru a citi datele brute din registrele 0xF7-0xFC.
Compenseaza datele: Foloseste formulele de calibrare specificate in documentatia BMP280 pentru a corecta valorile brute.
Bibliografie