This is an old revision of the document!
Acest laborator ii va invata pe studenti sa:
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:
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.
1. Instalarea si configurarea VS Code cu extensia MicroPico
Pas 3: Instalarea MicroPython pe Raspberry Pi Pico
1. Conecteaza Pico la computer tinand apasat butonul BOOTSEL.
2. Descarca fisierul MicroPython UF2 pentru Raspberry Pi Pico de pe https://micropython.org/download/rp2-pico/.
3. Copiaza fisierul .uf2 in unitatea USB care apare in sistemul tau dupa conectarea Pico.
4. Pico va reporni automat cu MicroPython instalat.
Pas 4: Testarea conexiunii in VS Code
1. In VS Code, deschide un terminal nou (Ctrl + `) si apasa Ctrl + Shift + P pentru a deschide Command Palette.
2. Selecteaza MicroPico: List Serial Ports si asigura-te ca portul corect pentru Pico este selectat.
3. Daca totul este corect configurat, poti incepe sa rulezi cod pe Raspberry Pi Pico din VS Code.
1. Conectarea senzorilor la Raspberry Pi Pico
- Senzorul BMP280 (I2C):
- Senzorul 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: 1. ADC (Analog to Digital Converter) este folosit pentru a converti semnalele analogice in valori numerice pe care Pico le poate procesa. 2. In cazul unui LDR, poti citi intensitatea luminii prin intermediul unui pin ADC de pe Pico.
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: 1. I2C este un protocol de comunicatie utilizat pentru a conecta senzori si alte componente la un microcontroler. 2. In Raspberry Pi Pico, poti utiliza biblioteca machine din MicroPython pentru a comunica cu dispozitivele I2C. 3. 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: - Foloseste functia scan() din obiectul I2C pentru a obtine o lista cu adresele dispozitivelor conectate.
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 - BMP280 comunica printr-un set de registre. Datele de temperatura si presiune sunt stocate in aceste registre si trebuie citite in format brut. - Registrele importante pentru acest proiect sunt:
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 - Pasul 1: Citeste datele brute din registre. - Pasul 2: Foloseste coeficientii de calibrare pentru a compensa valorile brute. - Pasul 3: Afiseaza rezultatele finale.
Etape: 1. 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. 2. 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. 3. Citeste valorile brute de temperatura si presiune: Scrie functii pentru a citi datele brute din registrele 0xF7-0xFC. 4. Compenseaza datele: Foloseste formulele de calibrare specificate in documentatia BMP280 pentru a corecta valorile brute.