Prezentacja dla młodych programistów 🚀
To język programowania dla małych urządzeń elektronicznych! 💻
Łatwy do nauki, potężny w działaniu
Zacznijmy od prostych rzeczy!
Zmienna to pudełko, w którym trzymamy informacje
# Liczby
wiek = 10
temperatura = 25.5
# Tekst
imie = "Asia"
wiadomosc = "Witaj świecie!"
# Prawda/Fałsz
dioda_wlaczona = True
przycisk_wcisniety = False
Komputer sprawdza warunek i reaguje
temperatura = 30
if temperatura > 25:
print("Jest gorąco!")
elif temperatura > 15:
print("Jest ciepło")
else:
print("Jest zimno")
Jak w życiu: "JEŚLI pada deszcz, TO weź parasol"
Pętla for - powtarzaj określoną liczbę razy
# Policz do 5
for i in range(5):
print(i) # Wypisze: 0, 1, 2, 3, 4
Pętla while - powtarzaj dopóki jest prawda
licznik = 0
while licznik < 3:
print("Hurra!")
licznik = licznik + 1
Funkcja to przepis na wykonanie zadania
def powitaj(imie):
print("Cześć " + imie + "!")
def dodaj(a, b):
wynik = a + b
return wynik
# Używamy funkcji
powitaj("Ania") # Wypisze: Cześć Ania!
suma = dodaj(5, 3) # suma = 8
Funkcje oszczędzają czas - piszemy raz, używamy wiele razy!
Teraz łączymy programowanie z elektroniką!
To zestaw narzędzi do sterowania Pico
from machine import Pin
from machine import ADC
from machine import PWM
import time
💡 Pin - kontroluje piny GPIO
📊 ADC - mierzy napięcie
🌊 PWM - kontroluje jasność/prędkość
Wysyłamy sygnał NA ZEWNĄTRZ (np. zapalamy LED)
from machine import Pin
# Utwórz pin 15 jako wyjście (OUTPUT)
led = Pin(15, Pin.OUT)
# Włącz LED
led.on() # albo led.value(1)
# Wyłącz LED
led.off() # albo led.value(0)
# Przełącz stan (jeśli był włączony → wyłącz, jeśli wyłączony → włącz)
led.toggle()
Odbieramy sygnał Z ZEWNĄTRZ (np. przycisk)
from machine import Pin
# Utwórz pin 14 jako wejście z podciągnięciem do góry
przycisk = Pin(14, Pin.IN, Pin.PULL_UP)
# Sprawdź czy przycisk wciśnięty
if przycisk.value() == 0: # 0 = wciśnięty (masa)
print("Przycisk wciśnięty!")
else:
print("Przycisk nie wciśnięty")
import time
# Czekaj 1 sekundę
time.sleep(1)
# Czekaj 500 milisekund (0.5 sekundy)
time.sleep(0.5)
# Czekaj bardzo krótko (1 milisekunda)
time.sleep_ms(1)
Idealny do tworzenia migających światełek i opóźnień!
Klasyczny pierwszy projekt!
1. Pin GP15 → rezystor → nóżka długa LED (+)
2. nóżka krótka LED (-) → GND (masa)
⚠️ Rezystor chroni LED przed spaleniem!
from machine import Pin
import time
# Utwórz pin dla LED
led = Pin(15, Pin.OUT)
# Migaj bez końca!
while True:
led.on() # Włącz LED
time.sleep(1) # Czekaj 1 sekundę
led.off() # Wyłącz LED
time.sleep(1) # Czekaj 1 sekundę
✨ Twoja pierwsza działająca dioda! ✨
from machine import Pin
import time
led = Pin(15, Pin.OUT)
def mrugaj(ilosc_razy):
for i in range(ilosc_razy):
led.toggle()
time.sleep(0.3)
# Mrugaj 5 razy szybko
mrugaj(5)
# Długa pauza
time.sleep(2)
# Mrugaj 3 razy
mrugaj(3)
Teraz możesz łatwo kontrolować miganie!
Prosta sygnalizacja dźwiękowa!
⚡ Buzzer z generatorem włącza się sam - wystarczy podać napięcie!
1. Pin GP15 → buzzer (+) (czerwony)
2. Buzzer (-) (czarny) → GND (masa)
🎵 Włączając pin - buzzer piszczy!
from machine import Pin
import time
# Utwórz pin dla buzzera
buzzer = Pin(15, Pin.OUT)
# Krótki BEEP!
buzzer.on() # Włącz dźwięk
time.sleep(0.5) # Brzęcz przez pół sekundy
buzzer.off() # Wyłącz dźwięk
time.sleep(1) # Chwila ciszy
# Seria sygnałów SOS
for i in range(3):
buzzer.on()
time.sleep(0.2)
buzzer.off()
time.sleep(0.2)
Naciśnij przycisk - zobacz jaki kolor wylosuje!
LED zielona:
→ GP15 → rezystor → LED → GND
LED żółta:
→ GP16 → rezystor → LED → GND
LED czerwona:
→ GP17 → rezystor → LED → GND
Przycisk:
→ Jedna nóżka → GP14
→ Druga nóżka → GND
from machine import Pin
import random
import time
# Konfiguracja LED
led_zielona = Pin(15, Pin.OUT)
led_zolta = Pin(16, Pin.OUT)
led_czerwona = Pin(17, Pin.OUT)
# Konfiguracja przycisku (PULL_UP)
przycisk = Pin(14, Pin.IN, Pin.PULL_UP)
def zgasc_wszystkie():
led_zielona.off()
led_zolta.off()
led_czerwona.off()
print("Naciśnij przycisk, aby wylosować kolor!")
while True:
# Czekaj na naciśnięcie przycisku
if przycisk.value() == 0: # 0 = naciśnięty
# Losuj liczbę 1, 2 lub 3
wylosowany = random.randint(1, 3)
zgasc_wszystkie()
if wylosowany == 1:
led_zielona.on()
print("🟢 Wylosowano ZIELONĄ!")
elif wylosowany == 2:
led_zolta.on()
print("🟡 Wylosowano ŻÓŁTĄ!")
else:
led_czerwona.on()
print("🔴 Wylosowano CZERWONĄ!")
# Czekaj aż użytkownik puści przycisk
while przycisk.value() == 0:
time.sleep(0.1)
time.sleep(0.5) # Krótka przerwa
time.sleep(0.1)
🔘 Naciskasz przycisk
🎲 Program losuje liczbę 1, 2 lub 3
💡 Zapala się odpowiednia dioda LED
🎊 Możesz bawić się ile chcesz!
💡 Pomysł: dodaj buzzer dla efektu dźwiękowego!
Symulator sygnalizacji ulicznej!
LED czerwona (góra):
→ GP15 → rezystor → LED → GND
LED żółta (środek):
→ GP16 → rezystor → LED → GND
LED zielona (dół):
→ GP17 → rezystor → LED → GND
from machine import Pin
import time
# Konfiguracja LED
czerwona = Pin(15, Pin.OUT)
zolta = Pin(16, Pin.OUT)
zielona = Pin(17, Pin.OUT)
def zgasc_wszystkie():
czerwona.off()
zolta.off()
zielona.off()
print("🚦 Start sygnalizacji świetlnej!")
while True:
# CZERWONE - STOP!
zgasc_wszystkie()
czerwona.on()
print("🔴 CZERWONE - Stój!")
time.sleep(5)
# CZERWONE + ŻÓŁTE - Przygotuj się
zolta.on()
print("🔴🟡 Przygotuj się...")
time.sleep(2)
# ZIELONE - Jedź!
zgasc_wszystkie()
zielona.on()
print("🟢 ZIELONE - Jedź!")
time.sleep(5)
# ŻÓŁTE - Uwaga, zaraz czerwone!
zgasc_wszystkie()
zolta.on()
print("🟡 ŻÓŁTE - Uwaga!")
time.sleep(2)
1. 🔴 CZERWONE (5 sekund) - Stój!
2. 🔴🟡 CZERWONE + ŻÓŁTE (2 sekundy) - Za chwilę zielone
3. 🟢 ZIELONE (5 sekund) - Możesz jechać
4. 🟡 ŻÓŁTE (2 sekundy) - Zwolnij, zaraz czerwone
5. 🔁 Powtarzaj w kółko!
💡 Możesz zmienić czasy trwania każdego światła!
Jak pisać czysty kod?
Wyjaśniaj co robi Twój kod
# To jest komentarz - Python go ignoruje
# Pomaga zrozumieć kod innym (i Tobie później!)
# Utwórz pin dla LED
led = Pin(15, Pin.OUT)
# Migaj 10 razy
for i in range(10):
led.toggle() # Przełącz stan LED
time.sleep(0.5) # Czekaj pół sekundy
Nazwy powinny opisywać co przechowują
# ❌ ZŁE - niejasne nazwy
x = 15
y = 220
z = Pin(x, Pin.OUT)
# ✅ DOBRE - jasne nazwy
pin_led = 15
opoznienie = 220
led_czerwona = Pin(pin_led, Pin.OUT)
Dziel kod na mniejsze części
def mrugaj_led(pin, ile_razy, szybkosc):
"""Mruga LED określoną liczbę razy"""
led = Pin(pin, Pin.OUT)
for i in range(ile_razy):
led.toggle()
time.sleep(szybkosc)
# Teraz łatwo używać!
mrugaj_led(15, 5, 0.3) # Pin 15, 5 razy, 0.3s
mrugaj_led(16, 3, 0.5) # Pin 16, 3 razy, 0.5s
Używaj print() do sprawdzania wartości
adc = ADC(26)
while True:
wartosc = adc.read_u16()
napiecie = (wartosc / 65535) * 3.3
# Wyświetl wartości żeby sprawdzić czy są ok
print(f"Surowa wartość: {wartosc}")
print(f"Napięcie: {napiecie:.2f}V")
print("---")
time.sleep(1)
To jak latarka w ciemności - widzisz co się dzieje!
Co jeśli coś pójdzie nie tak?
try:
# Próbuj uruchomić kod
led = Pin(15, Pin.OUT)
led.on()
except Exception as e:
# Jeśli coś poszło nie tak, wyświetl błąd
print(f"Błąd: {e}")
print("Sprawdź połączenia!")
Dzięki temu program nie zatrzyma się nagle
Co możesz stworzyć?
LED + Buzzer + Przycisk = super gadżet!
Przykład: Gra na refleks z dźwiękiem
# Po naciśnięciu przycisku
led_zielona.on()
buzzer.on()
time.sleep(0.2)
buzzer.off()
print("Gratulacje! Wygrałeś!")
Możliwości są nieograniczone! 🌟
✅ Podstawy programowania w MicroPython
✅ Sterowanie pinami GPIO (wejście/wyjście)
✅ Miganie diodami LED
✅ Odtwarzanie dźwięków buzzerem
✅ Odczytywanie przycisków
✅ Losowanie - gra z kolorami
✅ Symulacja świateł drogowych
📚 Czytaj dokumentację MicroPython
🔬 Eksperymentuj z różnymi komponentami
🤝 Dziel się projektami z innymi
💡 Twórz własne gry i wynalazki!
🎮 Połącz LED + Buzzer + Przycisk = fajny gadżet!
Jesteś teraz programistą MicroPython! 🎊
Czas tworzyć niesamowite projekty! 🚀
Pamiętaj: każdy programista zaczyna od mrugającej diody! 💡