Raspberry Pi Pico – Les 4: Raspberry Pi Pico analoge sensor uitlezen
In dit project leer je hoe je een analoge sensor kunt uitlezen met een Pico & MicroPython. Deze praktische les is perfect voor beginners die willen starten met de Thonny programmeertool en MicroPython. Leer stap voor stap hoe je de Raspberry Pi Pico aansluit op je computer, programma’s uploadt en een analoge sensor, zoals een potmeter op de ADC van de Pico, uitleest. Verken de wereld van analoge sensoren met deze hands-on tutorial en zet je eerste stappen in het gebruik van de Raspberry Pi Pico voor sensorische toepassingen!
Deze handleiding behandeld:
- Niveau – Beginner 25%
- Tijdsduur 20 min 25%
- Kosten €7,10 10%
Stap 1 – Benodigheden om de analaoge sensor uit te lezen met de Raspberry Pi Pico
Stap 2 – Software installeren op de Raspberry Pi Pico voor de analoge sensor
Deze stap kun je overslaan als je dit al in Les 1 hebt gedaan.
Om de Raspberry Pico te kunnen programmeren met MicroPython moeten we eerst de firmware flashen van de Pico.
Dit betekent dat we de interne software waarmee de pico start, voorzien van een speciale python versie.
Download firmware van onderstaande website (uf2 file)
https://micropython.org/download/RPI_PICO/
https://micropython.org/download/RPI_PICO_W/
(Zorg dat je de goede versie van de firmware selecteert, de wifi versie en de niet-wifi versie zijn verschillend)
Druk op de witte bootsel knop op de pico en blijf deze ingedruk houden.
Plug de pico in een USB poort van je computer. (Daarna kun je de knop loslaten)
Er zal nu een schijfletter, zoals met een memorystick benaderbaar komen.
Kopieer het firmware bestand RPI_PICO_xxxxxx.uf2 naar deze drive
(pico zal herstarten en de firmware wordt geïnstalleerd)
Download en installeer Thonny op je pc.
( https://thonny.org/ )
Selecteer de MicroPython Interpreter onder
Hulpmiddelen > Opties > Interpreter > MicroPython (Raspberry Pi Pico)
Stap 3 – Programmeren van de Raspberry Pi Pico om de potmeter uit te lezen
Nu kun je in het onderstaande programma overtypen in de Thonny interface.
from machine import ADC from time import sleep analoog = ADC(26) # adc0 while True: waarde = int(analoog.read_u16() ) # Onderstaande geeft waardes van 0 - 255 # waarde = int(analoog.read_u16() /256) print("Analoge waarde is : " + str(waarde)) sleep(1)
Uitleg van het programma:
- Importeer van de python machine module de ADC class (Analoog digitaal converter)
- Importeer van de time module de sleep class
- .
- Lees Pin 26 adc0
- Hier wordt een eindeloze lus gestart
- vul de gelezen analoge waarde van pin 26 (adc0) in de variable waarde
- commentaar over het voorbeeld, het uitlezen is nauwkeurig maar zal ook veel fluctueren.
De condenstator zal een gedeelte van deze storing tegengaan, een andere oplossing staat op regel 8 - Bij deze regel de # weghalen en bij 7 ervoor zetten, nu zal het uitlezen een minder grote range aangeven, als voordeel echter zijn de gelezen waardes stabieler.
- Print de gelezen waarde
- wacht 1 seconde en begin opnieuw
Druk daarna op opslaan, en sla het programma op je eigen computer op.
Druk op het rode stopbord knopje om de ‘backend’ opnieuw te starten.
(Thonny maakt nu opnieuw verbinding met je Pico)
Daarna zou je groene knop (Voer huidig script uit) in kunnen drukken.
Als de pico nu verwijderd wordt van de computer en opnieuw aangesloten zal het programma niet gestart worden.
We hebben alleen de programmeercode getest.
Om het automatisch starten mogelijk te maken moeten we het programma opnieuw opslaan, maar dan de pico selecteren.
Bestand > Opslaan als > Raspberry Pi Pico
Sla het programma op met de naam main.py. De pico zal het programma met deze naam automatisch starten bij het aansluiten van de Pico op een USB-poort.
In dit geval heb je wel een connectie met je PC en Thonny nodig om de gemeten resultaten te kunnen zien!
Stap 4 – Resultaat: analoge sensor uitlezen met de Raspberry Pi Pico
Je hebt nu geleerd hoe je zelf een analoge sensor kunt uitlezen door middel van een Raspberry Pi Pico.
Vond je dit project leuk om te doen? Kijk bij onze andere projecten, of Les vijf van deze Pico reeks!