Raspberry Pi Pico
Zanim zaczniemy - poznajmy podstawy!
Zmienna to jak pudełko z etykietą
# Tworzymy zmienną - przypisujemy wartość
imie = "Ania"
wiek = 10
wzrost = 145.5
lubię_programowanie = True
# Możemy wyświetlić wartość zmiennej
print(imie) # Wyświetli: Ania
print(wiek) # Wyświetli: 10
Używamy znaku = do przypisania wartości
| Typ | Opis | Przykład |
|---|---|---|
| int | Liczba całkowita | wiek = 10 |
| float | Liczba z przecinkiem | temperatura = 23.5 |
| str | Tekst (string) | imie = "Kasia" |
| bool | Prawda/Fałsz | wlaczone = True |
# ✅ DOBRE nazwy zmiennych
wiek = 10
imie_ucznia = "Tomek"
liczba_diod = 5
temperatura_pokoju = 22.5
# ❌ ŹLE - nie można tak nazywać
123zmienna = 10 # Nie zaczynaj od cyfry!
moje imie = "Ania" # Nie używaj spacji!
if = 5 # Nie używaj słów zarezerwowanych!
# 💡 Używaj małych liter i podkreślników _
# Matematyka
liczba = 5
liczba = liczba + 3 # Teraz liczba = 8
liczba = liczba * 2 # Teraz liczba = 16
liczba = liczba - 6 # Teraz liczba = 10
# Skrócony zapis
licznik = 0
licznik += 1 # To samo co: licznik = licznik + 1
licznik -= 1 # To samo co: licznik = licznik - 1
# Łączenie tekstów
imie = "Ania"
nazwisko = "Kowalska"
pełne_imie = imie + " " + nazwisko
print(pełne_imie) # Wyświetli: Ania Kowalska
print() wyświetla informacje na ekranie
# Wyświetl tekst
print("Witaj świecie!")
# Wyświetl zmienną
wiek = 10
print(wiek)
# Wyświetl kilka rzeczy naraz
imie = "Kasia"
print("Mam na imię", imie, "i mam", wiek, "lat")
# Wyświetli: Mam na imię Kasia i mam 10 lat
# Wyświetl wynik działania
print(5 + 3) # Wyświetli: 8
print(10 * 2) # Wyświetli: 20
# Python rozróżnia wielkie i małe litery!
wiek = 10
Wiek = 20
WIEK = 30
print(wiek) # Wyświetli: 10
print(Wiek) # Wyświetli: 20
print(WIEK) # Wyświetli: 30
# To są TRZY RÓŻNE zmienne!
# ❌ Częsty błąd:
imie = "Kasia"
print(Imie) # Błąd! Zmienna 'Imie' nie istnieje!
Zawsze używaj małych liter w nazwach zmiennych!
# Co wyświetli ten program?
a = 5
b = 3
wynik = a + b
print("Wynik to:", wynik)
imie = "Ola"
wiek = 12
print(imie + " ma " + wiek + " lat")
licznik = 0
licznik += 10
licznik -= 3
print("Licznik:", licznik)
Odpowiedzi: Wynik to: 8 | Ola ma 12 lat | Licznik: 7
W MicroPython piszemy programy w jednym pliku
moja_nazwa.py
# To jest plik main.py
# Wszystko co napiszemy tutaj wykona się po kolei
print("Witaj!")
print("To jest mój pierwszy program")
Każda linijka wykonuje się jedna po drugiej
Import to jak wypożyczenie specjalnych narzędzi
# Importujemy narzędzie do kontrolowania pinów
from machine import Pin
# Tworzymy diodę LED na pinie 25
led = Pin(25, Pin.OUT)
# Włączamy diodę
led.value(1)
PIN.OUT = wyjście (wysyłamy sygnał)
PIN.IN = wejście (odbieramy sygnał)
# Importujemy funkcje czasu
from utime import sleep, sleep_ms, ticks_ms, ticks_diff
# Czekaj 1 sekundę
sleep(1)
# Czekaj 500 milisekund (pół sekundy)
sleep_ms(500)
# Zmierz czas w milisekundach
start = ticks_ms()
sleep(1)
koniec = ticks_ms()
print("Upłynęło:", ticks_diff(koniec, start), "ms")
Powtarza kod w nieskończoność!
from machine import Pin
from utime import sleep
led = Pin(25, Pin.OUT)
# PĘTLA NIESKOŃCZONA - działa zawsze!
while True:
led.value(1) # Włącz diodę
sleep(1) # Czekaj sekundę
led.value(0) # Wyłącz diodę
sleep(1) # Czekaj sekundę
# ✅ DOBRZE - kod jest wcięty (4 spacje)
while True:
led.value(1)
sleep(1)
# ❌ ŹLE - brak wcięć!
while True:
led.value(1)
sleep(1)
W Pythonie wcięcia są OBOWIĄZKOWE!
Wcięcia pokazują, co należy do pętli
Powtarza kod, dopóki warunek jest prawdziwy
from machine import Pin
from utime import sleep
led = Pin(25, Pin.OUT)
licznik = 0
# Mrugaj tylko 10 razy
while licznik < 10:
led.value(1)
sleep(0.5)
led.value(0)
sleep(0.5)
licznik = licznik + 1 # Zwiększ licznik
print("Koniec mrugania!")
# ✅ DOBRZE
while licznik < 10:
led.value(1) # Wcięcie - należy do pętli
sleep(0.5) # Wcięcie - należy do pętli
licznik = licznik + 1 # Wcięcie - należy do pętli
print("Koniec") # Bez wcięcia - poza pętlą
# ❌ ŹLE - złe wcięcia
while licznik < 10:
led.value(1) # Błąd! Brak wcięcia
sleep(0.5) # Niekonsekwentne
Powtarza kod określoną liczbę razy
range(5) → 0, 1, 2, 3, 4 (5 liczb)range(1, 6) → 1, 2, 3, 4, 5range(0, 10, 2) → 0, 2, 4, 6, 8
from machine import Pin
from utime import sleep
led = Pin(25, Pin.OUT)
# Powtórz dokładnie 5 razy
for i in range(5):
print("Mrugam", i, "raz")
led.value(1)
sleep(0.3)
led.value(0)
sleep(0.3)
print("Gotowe!")
from machine import Pin
from utime import sleep_ms
led = Pin(25, Pin.OUT)
# Mrugaj coraz szybciej
for czas in range(500, 50, -50):
led.value(1)
sleep_ms(czas)
led.value(0)
sleep_ms(czas)
print("Czas:", czas, "ms")
Czas zmienia się: 500, 450, 400, 350... 100 ms
# ✅ DOBRZE - kod jest wcięty
for i in range(5):
led.value(1) # 4 spacje wcięcia
sleep(0.5) # 4 spacje wcięcia
led.value(0) # 4 spacje wcięcia
# ❌ ŹLE
for i in range(5):
led.value(1) # Błąd! Brak wcięcia!
# ❌ BARDZO ŹLE - mieszane wcięcia
for i in range(5):
led.value(1) # 4 spacje
sleep(0.5) # 2 spacje - BŁĄD!
Zawsze używaj 4 spacji!
Program podejmuje decyzje!
from machine import Pin
from utime import sleep
przycisk = Pin(14, Pin.IN, Pin.PULL_DOWN)
led = Pin(25, Pin.OUT)
while True:
if przycisk.value() == 1:
led.value(1) # Włącz gdy wciśnięty
print("Przycisk wciśnięty!")
else:
led.value(0) # Wyłącz gdy niewciśnięty
print("Przycisk puszczony")
sleep(0.1)
from machine import Pin, ADC
from utime import sleep
czujnik = ADC(26) # Czujnik światła
while True:
swiatlo = czujnik.read_u16()
if swiatlo > 50000:
print("Bardzo jasno!")
elif swiatlo > 30000:
print("Jasno")
elif swiatlo > 10000:
print("Ciemno")
else:
print("Bardzo ciemno!")
sleep(1)
# ✅ DOBRZE - wcięcia są poprawne
if temperatura > 25:
print("Gorąco!") # 4 spacje
led.value(1) # 4 spacje
elif temperatura > 15:
print("Ciepło") # 4 spacje
else:
print("Zimno") # 4 spacje
# ❌ ŹLE
if temperatura > 25:
print("Gorąco!") # Brak wcięcia - BŁĄD!
led.value(1)
# Warunki w pętli - podwójne wcięcie!
for i in range(10): # Poziom 0
if i % 2 == 0: # Poziom 1 (4 spacje)
print("Parzysta:", i) # Poziom 2 (8 spacji)
led.value(1) # Poziom 2 (8 spacji)
else: # Poziom 1 (4 spacje)
print("Nieparzysta:", i) # Poziom 2 (8 spacji)
led.value(0) # Poziom 2 (8 spacji)
Każdy poziom = dodatkowe 4 spacje!
main.pywhile True: dla nieskończonych pętlifor i in range(): dla liczonych pętliif/elif/else do podejmowania decyzjiTo najważniejsza różnica między Pythonem a innymi językami!
# Importy
from machine import Pin
from utime import sleep
# Konfiguracja
led = Pin(25, Pin.OUT)
przycisk = Pin(14, Pin.IN, Pin.PULL_DOWN)
# Główna pętla
while True:
if przycisk.value() == 1:
# Szybkie mruganie
for i in range(5):
led.value(1)
sleep(0.1)
led.value(0)
sleep(0.1)
else:
# Wolne mruganie
led.value(1)
sleep(1)
led.value(0)
sleep(1)
🚀 Powodzenia w programowaniu Raspberry Pi Pico!