Wszystko o Raspberry Pi Pico

raspberry pi pico tutorial

Jeśli szukasz kupić swój pierwszy Raspberry Pi, Pico może być bardzo atrakcyjna opcja.

Ale prawdziwe pytanie tutaj jest, czy Raspberry Pi Pico jest właśnie dla Ciebie.

Istnieje wiele za i przeciw w zakupie Raspberry Pi Pico i ważne jest, aby zrozumieć przysłowie "konie dla kursów".

Spis treści ukryj

Przeanalizujmy Raspberry Pi Pico

Raspberry Pi Pico łamie nowe zasady w linii Raspberry Pi, ponieważ jest to płytka rozwojowa z mikrokontrolerem. Stanowi to odejście od reszty Raspberry Pis, które są mikrokomputerami.

Wyposażony jest w układ RP2040, który został zaprojektowany przez Raspberry Pi i posiada następującą specyfikację:

  • Dwurdzeniowe rdzenie procesora ARM Cortex M0+ (do 133 MHz)
  • 264K SRAM
  • 2MB pamięci flash

Raspberry Pi Pico wyróżnia się tym, że jest mikrokontrolerem o wysokiej wydajności i ma wiele ciekawych zastosowań.

Pro: Tani i świetny dla początkujących

Sprzedajemy Raspberry Pi Pico za €4.10 który jest najtańszym Raspberry Pi, które można kupić. W rzeczywistości, jeśli jesteś nowy do majstrowania z Raspberry Pi Pico, można uzyskać pełny zestaw za 24,95 € który zawiera wszystko, czego potrzebujesz do zbudowania łatwych projektów.

Pro: Doskonały dla aplikacji czasu rzeczywistego

Raspberry Pi Pico doskonale nadaje się do projektów, w których trzeba precyzyjnie odmierzać czas zdarzeń. Na przykład, odczytywanie czujników, obsługa silników i monitorowanie zadań.

Pro: Wejścia analogowe

Raspberry Pi Pico jest pierwszym Raspberry Pi, które fabrycznie posiada wejścia analogowe.

Posiada w sumie 5 wejść ADC (Analog Digital Converter). Dwa z nich są używane przez Pico do wewnętrznego czujnika temperatury oraz do monitorowania napięcia.

Jak więc posiadanie wejścia analogowego może przynieść Ci korzyści? Cóż, na przykład, jeden z moich projektów używał potencjometru do regulacji częstotliwości przełączania przekaźnika. Tak więc, Raspberry Pi Pico byłby w stanie odczytać wartość z potencjometru i użyć jego wartości w programie, który załadowałem do niego.

Raspberry Pi Pico przetwarza sygnały ADC z rozdzielczością 12 bitów, co jest lepszym wynikiem niż 10-bitowy ADC w Arduino Uno. Inne cechy to:

  • SAR ADC (successive approximation ADC)
  • 500 kS/s (z zewnętrznym zegarem 48MHz)
  • Interfejs DMA na wejściach ADC, który umożliwia dostęp do pamięci bez użycia CPU

Pro: programowalne IO (PIO)

Jest to jedna z najfajniejszych cech Raspberry Pi Pico i jest to również to, co daje Pico dynamikę, że niektóre inne mikrokontrolery nie mają.

PIO jest interfejsem sprzętowym, który może być programowany niezależnie od głównych procesorów. Dzięki temu może emulować wiele różnych interfejsów:

  • Port równoległy 8080 i 6800
  • I2C
  • 3 pin I2S
  • SDIO (interfejs kart SD)
  • SPI, DSPI, QSPI
  • UART
  • DPI lub VGA (przez sieć rezystorów / DAC)

Maszyny stanów PIO są w pełni programowalne i dedykowane wyłącznie do I/O. Szczególną uwagę zwraca się na precyzyjny timing. 

Na przykład, interfejs PIO może być używany do stabilnego i niezawodnego konfigurowania aplikacji krytycznych czasowo (wrażliwych na czas), takich jak sterowanie taśmami LED. 

Pro: może wyprowadzić wideo z modyfikacją

Czy widziałeś "DPI lub VGA" w poprzedniej sekcji? Wiesz, co to oznacza...

Tak, Raspberry Pi może wysłać wideo, co jest czymś, co nie byłoby nawet marzyć o na większości mikrokontrolerów.

Mamy tutorial pokazujący jak to się robi, jeśli jesteś zainteresowany.

Pro: mieści się na płytce drukowanej

raspberry pi pico na płycie chleba

W Raspberry Pi Pico, piny są na dwóch przeciwległych stronach Pi Pico, można zatem umieścić Pi Pico bezpośrednio na breadboardzie z każdej strony w poprzek rynny dzielącej.

Ułatwia to prototypowanie, ponieważ nie będziesz potrzebował przewodów męsko-żeńskich (lub męsko-męskich w przypadku Arduino Uno), aby podłączyć Pico do płytki drukowanej.

Nie możesz tego zrobić z innymi Raspberry Pis, ponieważ ich piny są skupione razem.

Pro: Najmniejsze Raspberry Pi

porównanie raspberry pi pico
Od lewej, zgodnie z ruchem wskazówek zegara: Raspberry Pi Pico, Raspberry Pi Zero 2, Raspberry Pi 4

Posiadanie małej płytki jest dobre, ponieważ łatwiej jest ją zmieścić w ciasnych miejscach i łatwiej ją zamontować. Na przykład, powiedzmy, że chcesz zamontować Raspberry Pi Pico na ścianie, lub w zamkniętym środowisku: roboty, urządzenia ręczne, zegarki, itp.

Raspberry Pi Pico mierzy 51mm x 21mm /Źródło: Raspberry Pi

Plusy: niskie zużycie energii

Wspomniałem, że Raspberry Pi Pico jest małe i że może zmieścić się w małych przestrzeniach.

Wspaniałą rzeczą jest to, że ponieważ Pico pobiera energię, nie będziesz potrzebował dużej baterii, aby go uruchomić.

Czy wspomniałem również, że przyjmuje szeroki zakres napięć? Może pracować z napięciem od 1,8 do 5,5 V, co jest świetne, ponieważ można go zasilać z pojedynczej baterii litowej (3,7 V) lub z baterii niklowych połączonych szeregowo (1,2 V każda).

Analiza Joey'a Castillo pokazał, że sprawność przetwornika buck Pico osiąga szczyt przy napięciu 2,54V do 3,2V (odpowiednik 2 w pełni naładowanych akumulatorków AA/alkalicznych), jeśli pobieramy <=10mA prądu.

Przy wyższych prądach lepiej jednak zaopatrzyć się w 3 baterie AA lub jedną litową.

Te statystyki mogą nie być prawdziwe dla Pico W, ponieważ Pico W używa innego konwertera buck. Pico W używa RT6154 podczas gdy Pico używa RT6150. Kliknij na linki, aby zobaczyć ich karty katalogowe.

Oto wykres dla przetwornika buck w Pico:

Neutralny: Brak wsparcia dla systemu Linux na Raspberry Pi Pico

Czy jest to pro lub con z Raspberry Pi Pico zależy od projektu. Brak Linuksa oznacza, że Twoje projekty ładują się szybciej, ale ogólnie rzecz biorąc, możesz zrobić więcej, jeśli masz system operacyjny.

Co mam na myśli mówiąc o szybszym ładowaniu? Cóż, ponieważ nie ma systemu operacyjnego do uruchomienia, twój kod będzie ładował się prawie w tym samym momencie, w którym podłączasz zasilanie do Pi Pico.

Na każdym innym Raspberry Pi, to zajmie znacznie więcej czasu, zanim zobaczysz odpowiedź.

Niestety, bez systemu operacyjnego jesteś ograniczony do programowania w MicroPython lub C, podczas gdy z systemem operacyjnym możesz kodować w wielu, wielu innych językach. Ponadto możesz grać w gry, surfować po Internecie i korzystać z innych aplikacji multimedialnych.

Neutralny: Brak WiFi

Czy jest to wada zależy od projektu, ale powiedzmy, że rozwijasz projekt, który wymaga, aby sprawdzić pogodę lub przesłać dane do Google Sheets, nie będzie w stanie zrobić to na Raspberry Pi Pico.

Aby być uczciwym, można zainstalować WiFi lub ethernet przy użyciu części zamiennych, takich jak pozycja poniżej:

Neutralny: Wyjścia GPIO 3.3V

Czy to jest za czy przeciw zależy od komponentów, które zamierzasz sparować z Raspberry Pi Pico.

Jeden scenariusz, w którym znalazłem 3.3V jako przeszkodę, był kiedy próbowałem użyć go z przekaźnikami 5V. Ups! Nie mogłem przepchnąć wystarczającego napięcia, aby przekaźnik się przełączył.

Przeniosłem się więc do mojego Arduino Uno, którego piny GPIO dają 5V.

Alternatywą byłoby dodanie komponentów do prototypu tak, aby napięcie 3.3V mogło być zwiększone, ale po co komplikować rzeczy, skoro mogę to zrobić za pomocą Arduino Uno?

Oczywiście, to tylko jeden scenariusz. Twój przebieg może się różnić w zależności od tego, co robisz.

Raspberry Pi Pico Zastosowania

Zakres zastosowań Raspberry Pi Pico jest nieograniczony. Możesz stworzyć coś, co poprawi jakość Twojego życia lub zrobić coś dla zabawy.

Mikrokontroler, który czyta MicroPython (zamiast tylko C)

Jeśli używałeś Arduino, wiesz, że musiałbyś zaprogramować je w C.

Jednakże, możesz nie lubić programowania w C. Możesz mieć silniejsze zaplecze w Pythonie.

I tak, jeśli zmagałeś się z pisaniem kodu w C na Arduino, dobrą wiadomością jest to, że cokolwiek Arduino może zrobić, Raspberry Pi Pico jest prawdopodobnie w stanie dopasować się do Twojego przypadku użycia.

Więc wyrzuć te nawiasy klamrowe i zacznij wciskać swój kod!

Konstrukcja zasilana bateryjnie zapewnia długi czas pracy

Jeśli potrzebujesz czegoś, co zużywa jak najmniej energii, jak to możliwe, to jesteś zdecydowanie lepiej z Raspberry Pi Pico nad czymś bardziej wydajne jak Raspberry Pi Zero.

Oto dlaczego: można użyć znacznie szerszy zakres wejść zasilania (1,8V do 5,5V), a ponieważ Raspberry Pi Pico jest tak wydajny, będzie można uzyskać znacznie dłuższy czas pracy niż gdybyś użył mikrokomputera jak Raspberry Pi Zero.

Aha, czy wspomniałem, że Raspberry Pi Zero jest bardzo wybredne w kwestii napięcia, które mu dostarczasz? Przyjmie tylko 4,75 - 5,25V.*

* Według Aryi, która zostawiła komentarz poniżej, Raspberry Pi Zero może działać na jednej baterii litowej, o ile nie masz żadnych urządzeń peryferyjnych USB. Dzięki Arya.

Klawiatury Macro, spinning toggles i inne HIDs

Don Hui z jego klawiatury makro Discord, który pozwala mu przełączać głośności łatwo / Źródło: YouTube.

Raspberry Pi Pico może być używane jako urządzenie do interakcji z człowiekiem (Human Interaction Device - HID).

Ale w przeciwieństwie do nudnej starej myszy lub klawiatury, Raspberry Pi Pico pozwala na stworzenie urządzenia, które robi coś niszowego i specyficznego dla danego przypadku użycia.

Dzięki temu można tworzyć klawiatury makr, które po naciśnięciu przycisku wypiszą długi ciąg znaków. Możesz też użyć jej do wyciszenia Discorda. Albo użyć jej do wciśnięcia CTRL + ALT + DEL. Możliwości są nieograniczone.

Wielofunkcyjne pokrętło magi, które działa jako obrotowy regulator głośności lub scrubber osi czasu Premiere Pro. Źródło: YouTube

sArCaSm kEyBoArD

Co jest lepsze do wyrażenia sarkazmu: wyświetlenie /s na końcu swojego tekstu, czy tYpInG lIkE tHiS?

Wolę drugą, bo od razu kojarzy się z sArCaSm.

Twórca tego projektu, Ben S, podzielił się, że używa dwóch Raspberry Pi Picos, aby uzyskać to dzieje. Jeden Pico działa jako urządzenie klawiatury USB HID dla komputera, a drugi działa jako host USB do odczytu danych wejściowych z klawiatury. Host następnie komunikuje się z urządzeniem poprzez UART, co było naciśnięciem klawisza.

Klawiatura Pico z sarkazmem włącza i wyłącza caps lock po każdym naciśnięciu klawisza, dając w ten sposób sArCaStIc TeXt.

Czego nie potrafi Raspberry Pi Pico?

Porozmawiajmy o bardziej typowej konfiguracji po wyjęciu z pudełka.

Przyznam, że istnieje wiele sposobów na zwiększenie możliwości Raspberry Pi Pico. Można wyprowadzić wideo, skonfigurować ethernet, wyprowadzić dźwięk...

Z wystarczającymi modyfikacjami Raspberry Pi Pico zbliży się do możliwości mikrokomputera.

Jednak nikt rozsądny nie posunie się tak daleko. Po przekroczeniu pewnego poziomu modyfikacji staje się to niewykonalne.

Dlaczego staje się to niewykonalne?

Bo równie dobrze możesz kupić coś, co ma te wszystkie funkcje zaraz po wyjęciu z pudełka!

Bliski konkurent, że należy mieć oko na jest Raspberry Pi Zero 2. Mamy mega artykuł, który odpowie na wszystkie twoje pytania tutaj.

Na podstawowym poziomie, Raspberry Pi Pico ma mniejszą moc obliczeniową. W porównaniu do najtańszego mikrokomputera, Raspberry Pi Zero, Pi Pico ma domyślny zegar 133MHz i może wykonać 361,76 Dhrystone Million instrukcji na sekundę (DMIPS), podczas gdy Raspberry Pi Zero może wykonać 1250 DMIPS.

Raspberry Pi Zero posiada również 512MB RAM, system operacyjny, WiFi oraz slot na kartę SD. Dla osoby najbardziej biegłej w JavaScript jak ja, możliwość napisania kodu Node, aby połączyć go z Google Cloud jest powodem, dla którego lubię używać mikrokomputerów Pi.

Mikrokomputer a mikrokontroler

Ilustrując poprzedni scenariusz, użyłem terminów mikrokomputer i mikrokontroler. Podsumuję kilka zastosowań, w których jedno z nich jest lepsze od drugiego.

Mikrokontroler jest dużo prostszy niż mikrokomputer, dlatego dużo łatwiej jest go zmusić do wykonywania prostych zadań. Jeśli potrzebujesz tylko mrugnąć diodą LED, obrócić serwomechanizmem, zmierzyć temperaturę, mikrokontroler może to zrobić bardzo łatwo i sprawnie.

W rzeczywistości otrzymujesz pewne korzyści, takie jak szybki restart i dłuższy czas pracy na baterii.

Z prostotą przychodzą ograniczenia. Na przykład o wiele łatwiej jest podłączyć prototyp do Internetu za pomocą mikrokomputera. Na przykład, może chcesz podłączyć swój prototyp do usługi e-mail do ping cię, gdy pewne progi są spełnione. Zrobiłbym te projekty na Raspberry Pi Zero zamiast próbować zrobić to działa z Raspberry Pi Pico.

ScenariuszMikrokontroler (np. Raspberry Pi Pico)Mikrokomputer (np. Raspberry Pi Zero)
Uruchom serwerNieTak
Mruganie diodą LEDZnacznie szybciej od początku do końcaDużo wolniej; dużo więcej procesów do przejścia
Auto-restart programu przy awarii zasilania?TakNie domyślnie
Graj w gry wideoNieTak
Działa na baterie?Tak, znacznie prawdopodobne jest, że średnio wytrzyma dłużejTak, nie trwa tak długo jak przeciętnie
Zarządzanie ciepłem?Zazwyczaj nie są wymaganeRadiatory, wentylatory, obudowy termoprzewodzące
Koszty?NiżejWyżej

Piny Raspberry Pi

Raspberry Pi Pico posiada 30 pinów GPIO, z czego 26 jest dostępnych do wykorzystania.

  • 2x SPI
  • 2 x UART
  • 2 x I2C
  • 8 x dwukanałowy PWM

jest również:

  • 4 x wyjście zegara ogólnego przeznaczenia
  • 4 x wejście ADC
  • PIO na wszystkich pinach

Tutaj jest obraz pinoutu Raspberry Pi Pico:

Raspberry Pi Pico piny / Źródło: Raspberry Pi

W rzeczywistości, Redditor nazwie C_King_Justice również wykonane narzędzie, które może pomóc Ci znaleźć swoje Raspberry Pi Pico GPIO piny. Możesz pobierz dokument tutaj.

Paper pinout by C_King_Justice / Źródło: Reddit

Specyfikacje Raspberry Pi Pico

Raspberry Pi Pico
Cena€4.10 (zarząd) €24.95 (zestaw dla początkujących Raspberry Pi Pico)
CPURP2040 z dwurdzeniowym Cortex M0+ o częstotliwości do 133MHz
Możliwości procesoraWbudowany układ PLL umożliwia zmienną częstotliwość rdzenia
Częstotliwość procesorado 133MHz, over/underclocking
GPUBrak GPU
RAM264 kB wbudowanej pamięci SRAM w 6 bankach
SiećNie jest dołączony, ale można go dodać
BluetoothNie dołączony
Port HDMINie jest dołączony, ale można go dodać
Port USBMicroUSB do zasilania i transmisji danych
Kompozytowe wideoNie jest dołączony, ale można go dodać
Bolec resetującyNie jest dołączony, ale można go wlutować
Port kameryBrak
Zużycie energii~1,3 mA w trybie SLEEP do 93 mA w teście "Popcorn".
Zasilanie5V przez microUSB lub 1,8 - 5,5V przez VSYS
współczynnik kształtu51 x 21 mm

Czy Raspberry Pi Pico ma HDMI?

Raspberry-Pi-Pico-Video-Output-DVI-Sock

Nie, domyślnie tak nie jest. Ale możesz dodać wideo samodzielnie. Zobacz nasz przewodnik tutaj.

Należy zauważyć, że chociaż interfejs wideo to złącze HDMI, w rzeczywistości wysyła on sygnał DVI. HDMI jest następcą DVI, więc sygnały DVI mogą być przesyłane przez HDMI.

W tym samym duchu, można kupić adapter HDMI do DVI, aby przekonwertować złącze HDMI na DVI.

Należy jednak pamiętać, że ta konfiguracja nie wyprowadza dźwięku.

Czy Raspberry Pi Pico ma ethernet?

Nie, domyślnie nie ma. Ale możesz dodać ethernet samodzielnie.

Raspberry Pi oficjalnie udostępniło przewodnik, który można wykorzystać do zainstaluj ethernet na swoim Raspberry Pi Pico.

W zasadzie potrzebujesz RMII Ethernet PHY, takiego jak LAN8720, płytkę chleba i zworki. Twoje Raspberry Pi Pico musi mieć również przylutowane nagłówki.

Czy Raspberry Pi Pico posiada WiFi?

Nie, ale możesz go zainstalować używając części z rynku wtórnego. Jednym kompatybilnym chipem, który pomoże Ci uzyskać możliwości WiFi jest Adafruit Airlift WiFi Featherwing Co-Processor.

Czy Raspberry Pi Pico ma USB?

Tak, Raspberry Pi Pico ma port microUSB. Może on być używany do zasilania Raspberry Pi.

Ponadto, można również użyć Raspberry Pi Pico jako Human Interaction Device. Podłączenie go do komputera za pomocą odpowiednich komponentów i kodu może pozwolić mu stać się joystickiem, klawiaturą makro, toggle, itp.

Czy Raspberry Pi Pico posiada Bluetooth?

Nie, ale można go zainstalować przy użyciu części pochodzących z rynku wtórnego.

Zazwyczaj integracja Bluetooth na Raspberry Pi Pico wymaga zakupu modułu Bluetooth, takiego jak HC-06 Bluetooth Module.

Czy istnieje kamera Raspberry Pi Pico?

Prototyp Ralpha Yamamoto wykorzystujący moduł kamery HM01B0. Źródło: Ralph Yamamoto/.Element14

Tak, można zintegrować Raspberry Pi Pico z modułem kamery.

Kamera, której możesz użyć to kamera HM01B0 firmy Himax Imaging. Zaletą korzystania z niej jest to, że jest bardzo nisko zasilana, zużywa 1-2 miliwaty według Ralpha Yamamoto, który napisał o swoim doświadczenie w pracy z kamerą na Raspberry Pi Pico.

Podgląd aparatu działającego w rozdzielczości 96×96 pikseli. Źródło: Ralph Yamamoto/.Element14

Jego wniosek był taki, że "jestem pewien, że będzie to wymagało wielu poprawek", a następnie powiedział, że czuł się ograniczony przez swoje umiejętności obróbki, a także, że brakowało dokumentacji aparatu.

System operacyjny Raspberry Pi Pico

Ogólnie rzecz biorąc, nie będzie uruchomić system operacyjny na Raspberry Pi Pico.

W większości projektów wystarczy wgrać kod, a następnie uruchomić tylko ten jeden program. W takim przypadku nie ma potrzeby posiadania systemu operacyjnego.

Ale czy jesteś typem osoby, która ma wiele kart w Chrome? A teraz wyobraź sobie, że możesz korzystać tylko z jednej karty Chrome.

Podczas gdy "klasyczny" sposób programowania Raspberry Pi Pico jest najbardziej efektywny pod względem wykorzystania zasobów, ogranicza on również możliwość wykonywania wielu zadań.

Na szczęście istnieją systemy operacyjne, które będą działać na Raspberry Pi Pico.

Oficjalny system operacyjny czasu rzeczywistego (RTOS)

Nie ma jednego, ale Raspberry Pi powiedział w swoim FAQ (z lutego 2022), że "będą pracować nad portowaniem RTOS wkrótce".

FreeRTOS

Na Raspberry Pi Pico można uruchomić FreeRTOS. Oto krótki film, który poprowadzi Cię przez przejście od programowania bare-metal ("typowy" sposób, w jaki mrugasz diodą LED) do programowania opartego na systemie operacyjnym.

Ta pięcioczęściowa seria szczegółowo omawia FreeRTOS, jak działa, jak go skonfigurować i używać.

Fuzix

Nie można uzyskać Raspberry Pi Pico uruchomić Linux z graficznym interfejsem użytkownika, ale można uruchomić klon Unix na Raspberry Pi Pico z Fuzix.

Raspberry Pi posiada opublikował przewodnik które możesz śledzić, a to, czego potrzebujesz, to:

  • Raspberry Pi bez pico do połączenia szeregowego
  • Raspberry Pi Pico
  • Czytnik kart MicroSD dla Raspberry Pi Pico.

PyDOS

Użytkownik Githuba RetiredWizard stworzył właśnie DOS-opodobną powłokę dla płyt RP2040/ESP32.

Jak widać na powyższym filmie, to naprawdę przenosi Cię w czasie o 30+ lat wstecz.

Sprawdź repo na Githubie tutaj.

Rozpoczęcie pracy z Raspberry Pi Pico

Zaprojektowaliśmy kilka zestawów w oparciu o to, co naszym zdaniem pomoże Ci najbardziej w dłuższej perspektywie cieszyć się podróżą z Raspberry Pi Pico.

Na najbardziej podstawowym poziomie, oto kilka zalecanych akcesoriów Raspberry Pi Pico.

Dioda Schottky'ego jest niezbędna, jeśli zamierzasz podłączyć do Pico drugie źródło zasilania. Jest to najprostszy sposób na zasilanie w zakresie napięć od 2.3V do 5.5V, którym może być jedno ogniwo litowe lub trzy baterie AA.

Dodanie tej diody pozwoli Ci na "OR" dwóch napięć z VBUS i zewnętrznego napięcia zasilającego VSYS z diodami zapobiegającymi zasilaniu zwrotnemu jednego z nich przez drugie.

Jednak, choć jest to najprostsze rozwiązanie, występują straty wydajności. Arkusz danych Raspberry Pi wyjaśnia to szczegółowo, a także wyjaśnia, w jaki sposób można to złagodzić w rozdziale 4.5.

Posiadanie uchwytu na baterie pozwala na posiadanie zapasowego zasilania (za pomocą diody Schottky'ego) lub na pracę całkowicie off-grid.

Ten jeden jest oczywisty. Potrzebujesz tego kabla do podłączenia Raspberry Pi Pico do komputera, aby przesłać kod. To może również działać jako źródło zasilania.

Dwa 20-pinowe gniazda są niezbędne, ponieważ będą potrzebne do podłączenia Raspberry Pi do komponentów lub do breadboardu.

Trzypinowy header jest wymagany do debugowania.

Nie kupuj 40-pinowego headsera, ponieważ jest on przeznaczony dla innych Raspberry Pis.

Jeśli nie chcesz lutować głowic samodzielnie, możesz rozważyć zakup Pico z wstępnie wylutowanymi nagłówkami.

Programowanie na Raspberry Pi Pico

Na Raspberry Pi Pico można kodować w MicroPython, C/C++ i CircuitPython. Oto tabela, która pokazuje wysiłek potrzebny do mrugania wewnętrznej diody LED.

JęzykMicroPythonC/C++CircuitPython
Wymagana konfiguracja dla pierwszego uruchomieniaŚredniNajwyższyNajniższa
Kroki do utworzenia nowego programuŚredniNajwyższyNajniższa
Kontrola nad sprzętemŚredniNajwyższyŚredni

MicroPython na Raspberry Pi Pico

MicroPython to w zasadzie Python lite. Albo dietetyczny Python.

Jest to Python z małym podzbiorem standardowej biblioteki Pythona, zoptymalizowany do działania na mikrokontrolerach takich jak Raspberry Pi Pico.

Aby używać MicroPython, należy pobrać Thonny i przejdź do prawego dolnego rogu, gdzie jest napisane "Python 3.7.9" i kliknij na niego, wybierając MicroPython (Raspberry Pi Pico).

Prawdopodobnie zostaniesz powitany przez wyskakujące okno z prośbą o aktualizację. Wykonaj to.

Aktualizacja działała dobrze, gdy uruchomiłem Thonny na moim Raspberry Pi OS, jednak w systemie Windows pojawił się ten błąd "SSL: CERTIFICATE_VERIFY_FAILED".

Możesz to naprawić pobierając ten certyfikat (https://letsencrypt.org/certs/lets-encrypt-r3.der), następnie kliknij prawym przyciskiem myszy na pobrany plik i "Zainstaluj certyfikat" i nie będziesz już napotykał tego błędu.

Z zainstalowanym MicroPython, można zrobić Raspberry Pi Pico "Hello World" odpowiednik i migać jego wewnętrzną diodę LED za pomocą tego kodu

from machine import Pin, Timer
led = Pin(25, Pin.OUT)
timer = Timer()

def blink(timer):
    led.toggle()

timer.init(freq=2.5, mode=Timer.PERIODIC, callback=blink)

Naciśnij RUN, zapisz go jako mrugać.py a wewnętrzna dioda LED Twojego Raspberry Pi powinna migać.

W związku z tym, zobaczmy równoważny proces na C.

Dalsza lektura

PiCockpit ma również kilka przewodników, które pomogą Ci rozpocząć pracę z MicroPythonem na Raspberry Pi Pico.

Raspberry Pi Pico i MicroPython w Windows - zagłębiamy się w konfigurację MicroPythona w Windows na Raspberry Pi, jak zainstalować odpowiedni sterownik w Windows 8.1, łączenie się z Pico za pomocą PuTTY i szczegółowe wyjaśnienie Thonny.

Rozszerzenie C dla MicroPythona na Raspberry Pi Pico - Co by było, gdyby można było uruchomić MicroPythona i C współbieżnie i czerpać korzyści z obu języków? Język C lepiej niż MicroPython radzi sobie z ciężkimi obliczeniowo zadaniami, a czasami można chcieć połączyć się ze sprzętem za pomocą C API z poziomu MicroPythona. W tym przewodniku dowiesz się, jak możesz to zrobić.

Mrugająca dioda LED w C/C++

Jeśli potrzebujesz dużo dokładniejszej kontroli, prawdopodobnie będziesz chciał napisać C/C++.

Uzyskanie Raspberry Pi Pico do pracy z C jest dużo więcej pracy. To nie jest tak proste jak pisanie MicroPythona z Thonny.

Najprostszym sposobem jest użycie mikrokomputera Raspberry Pi z systemem operacyjnym Raspberry Pi OS.

Jeśli chcesz używać komputera Mac lub Windows, oficjalny przewodnik zawiera instrukcje w rozdziale dziewiątym.

Uruchom te trzy polecenia:

wget https://raw.githubusercontent.com/raspberrypi/pico-setup/master/pico_setup.sh 
$ chmod +x pico_setup.sh
./pico_setup.sh

Będziesz potrzebował około 2GB wolnego miejsca, aby uruchomić to polecenie. Gdy to zrobisz, zrestartuj komputer, uruchamiając sudo reboot .

Po uruchomieniu komputera otwórz Visual Studio Code (w folderze Programming w menu startowym) i otwórz folder znajdujący się w katalogu /home/pi/pico/pico-examples. Musisz załadować ten folder, a nie podfolder.

Następnie należy skonfigurować VS Code. Odnosząc się do powyższego obrazu, wykonaj te czynności:

  1. Kliknij na część, która mówi "Brak zestawu";
  2. Pojawi się okienko popup. Wybierz opcję, gdzie jest napisane "arm-none-eabi";
  3. Kliknij na [all] i wybierz projekt, który chcesz skompilować. Aby uzyskać miganie wewnętrznej diody LED, wybrałem mrugnięcie
  4. Naciśnij Zbuduj

Będziesz w stanie znaleźć blink.uf2 plik w /build/blink folder.

Skopiuj plik UF2 na swoje Raspberry Pi Pico i zobaczysz, że wewnętrzna dioda LED zacznie migać.

Budowanie własnego projektu jest bardziej skomplikowane w C/C++. Oficjalny przewodnik ma rozdział ósmy który mówi o tym, jak stworzyć swój własny projekt.

CircuitPython

Trzecią pozycją wśród języków programowania współpracujących z Raspberry Pi Pico jest CircuitPython.

Na początek, pobierz plik .UF2 tutaj.

Przycisk BOOTSEL

Naciśnij i przytrzymaj przycisk BOOTSEL i podłącz Pico do komputera. Powinieneś zobaczyć nowy napęd.

Skopiuj pobrany plik .UF2 na ten napęd. Twoje Pico rozłączy się i ponownie połączy z nowym napędem o nazwie CIRCUITPY.

W tym folderze znajduje się plik o nazwie code.py, otwórz go za pomocą preferowanego edytora kodu (nawet Notatnik działa).

Wstaw ten kod:

import board
import digitalio
import time

led = digitalio.DigitalInOut(board.LED)
led.direction = digitalio.Direction.OUTPUT

while True:
    led.value = True
    time.sleep(0.5)
    led.value = False
    time.sleep(0.5)

Po zapisaniu zobaczysz, że wewnętrzna dioda LED Twojego Pico zacznie migać.

Ogólnie rzecz biorąc, CircuitPython był najpłynniejszym i najbardziej bezpośrednim sposobem, aby uzyskać miganie wewnętrznej diody LED. Pozostałe dwie opcje były bardziej żmudne, zwłaszcza uruchamianie C na Pico (tym bardziej, jeśli chcesz, aby działał na Mac/Windows).

Jeśli jednak myślisz o używaniu CircuitPythona przez dłuższy czas, jest to argument za używaniem Thonny jako IDE, ponieważ może on pobierać pakiety za Ciebie, a także możesz uruchamiać i zatrzymywać programy naciskając przycisk play/stop na pasku poleceń.

Więcej informacji na temat CircuitPython można znaleźć na stronie Dokumentacja Adafruit. Aby powrócić do MicroPythona, pobierz plik .UF2 stąd i załaduj go na dysk CIRCUITPY.

Bonus: Asembler na Raspberry Pi Pico

Tak, możesz pisać w asemblerze, jeśli nie chcesz programować Raspberry Pi Pico w C lub Pythonie.

Raspberry Pi's FAQ stwierdza, że Pico SDK ma kilka funkcji napisanych w asemblerze i że,

"Procesor (dwurdzeniowy ARM Cortex M0+) implementuje zestaw instrukcji ARMv6-M Thumb, w tym szereg instrukcji 32-bitowych wykorzystujących technologię Thumb-2. Zestaw instrukcji ARMv6-M obejmuje wszystkie 16-bitowe instrukcje Thumb z ARMv7-M z wyłączeniem CBZ, CBNZ i IT oraz 32-bitowe instrukcje Thumb BL, DMB, DSB, ISB, MRS i MSR."

Bonus: Język programowania Rust na Raspberry Pi Pico

Jeśli czujesz się nieswojo, bo jesteś Rustawianinem, który nie może się doczekać pisania w swoim ulubionym języku, to mam dla Ciebie dobrą wiadomość.

W sercu tego rozwiązania znajduje się warstwa abstrakcji sprzętowej RP2040, która można uzyskać na GitHub (o nazwie rp-hal). Działa on dla wielu płyt wykorzystujących mikrokontroler RP2040 innych niż Raspberry Pi Pico.

Oto film, który pokazuje, jak go skonfigurować.

Czym jest UF2 i dlaczego jest tak często używany na Raspberry Pi Pico?

To jest magia. Przeciągasz plik UF2 na swoje Raspberry Pi Pico i nagle montuje się on z nową nazwą lub nagle mruga dioda LED.

UF2 (U F podniesione do kwadratu) oznacza USB Flashing Format. Kiedy przeciągasz go na swoje Raspberry Pi, przeciągasz swój kod oprócz instrukcji dla bootloadera, aby wiedział, co zrobić z tym, co załadowałeś.

Podłączenie Pico przez terminal szeregowy

Windows

Podłączenie do Pico za pomocą terminala szeregowego jest proste i mamy tu przewodnik.

Podłączanie do Raspberry Pi 4 (Linux)

Aby podłączyć Raspberry Pi Pico do Raspberry Pi 4, możesz użyć pinów USB lub UART, minicom i kilku zworek.

Raspberry Pi Rozpoczęcie pracy z Pico ma wszystkie informacje zawarte w rozdziale 4, w szczególności 4.4 i 4.5.

Debugowanie Raspberry Pi Pico

Do czego służą te trzy piny na dole?

raspberry pi pico debug pins
Raspberry Pi Pico debug pins

Te piny dadzą Ci możliwość zresetowania Pico, załadowania kodu do pamięci flash, uruchomienia kodu i co najważniejsze, możliwości debugowania.

Największą zaletą są zaawansowane możliwości debugowania, które można uzyskać z tych pinów. Jesteś teraz w stanie wykonać znacznie dokładniejszą analizę kodu, ponieważ możesz:

  1. Ustaw punkty przerwania w swoim kodzie. Punkty przerwania pozwalają na wstrzymanie dalszego wykonywania kodu na przykład podczas sprawdzania wartości zmiennych.
  2. Prześledź wykonanie kodu linia po linii. Kiedy wszystko idzie nie tak? Linia po linii ułatwia debugowanie.

Można je podłączyć do mikrokomputera Raspberry Pi poprzez ich piny GPIO. Jeśli chcesz je podłączyć do innych maszyn, prawdopodobnie przez USB, to będziesz potrzebował debug probe.

Raspberry Pi Pico może również działać jako sonda debugująca, która łączy komputer z Pico, na którym chcesz pracować. Pomyśl o tym w ten sposób: Twój komputer nie ma pinów GPIO potrzebnych do ustanowienia połączenia UART/SWD, więc użyjesz Pico, aby zapewnić te połączenia wraz z pikoprobe firmware, który to umożliwi.

Jednakże, jeśli zamierzasz użyć SWD do debugowania, powinieneś użyć połączenia szeregowego opartego na UART, a nie połączenia USB. Debugowanie zatrzymuje rdzenie RP2040, co spowoduje rozłączenie połączenia USB.

Porozmawiajmy trochę o tym, co robi każdy pin:

SWDIO: pin Serial Wire Debug Input/Output przenosi ruch debugowania pomiędzy RP2040 a komputerem hosta (na przykład pełnowymiarowym komputerem lub mikrokomputerem Raspberry Pi).

GND: Uziemienie. Potrzebna do utrzymania dobrej integralności sygnału pomiędzy hostem a Pico.

SWCLK: Serial Wire Clock pin synchronizuje połączenie.

Najlepiej odnieść się do Rozpoczęcie pracy z Pico datasheet z Raspberry Pi, ze szczególnym uwzględnieniem rozdziałów 5, 6 oraz dodatku A: użycie Picoprobe.

Projekty Raspberry Pi Pico

Oto kilka dobrych projektów dla początkujących, które można rozpocząć z minimalną ilością dodatkowych części.

Łatwa klawiatura sArCasM i klawiatura makr

To jest zabawny projekt, który pozwoli Ci stworzyć modyfikator, który zamieni normalne pisanie na sarkazm. A tak na poważnie, wiedza jak używać biblioteki HID Adafruit'a z przełącznikiem pozwoli Ci na tworzenie klawiszy makro.

Jeśli chcesz wpisać sArCaSm w skali, to jest to dość męczące. Jest naprawdę łatwy sposób, aby to zrobić z Raspberry Pi Pico.

Nie potrzebujesz niczego poza Raspberry Pi Pico dla najbardziej podstawowego projektu. Jednakże, Twój Raspberry Pi Pico powinien mieć CircuitPython z biblioteką HID Adafruit.

W zwykłym trybie Thonny'ego przejdź do Narzędzia -> Zarządzaj pakietami i poszukać adafruit-circuitpython-hid. Zainstaluj go.

Upewnij się również, że używasz interpretera CircuitPython, znajdującego się w prawym dolnym rogu Thonny.

Wstaw ten kod,

import time
import board
import usb_hid
from adafruit_hid.keyboard import Keyboard
from adafruit_hid.keycode import Keycode

keyboard = Keyboard(usb_hid.devices)

while True:

        keyboard.press(Keycode.CAPS_LOCK)
        time.sleep(0.2)
        keyboard.release(Keycode.CAPS_LOCK)

Prześlij kod do swojego Pico. Jeśli to konieczne, naciśnij przycisk RUN w Thonny.

Teraz, za każdym razem, gdy podłączasz Raspberry Pi Pico do komputera... OCZEKIWAJ, ŻE WIDZISZ WIDOCZNE HAPTOPY.

Skrypt ten włącza i wyłącza Caps Lock co 0.2 sekundy, zgodnie z deklaracją w time.sleep(0.2). Jeśli zmienisz wartość w nawiasach, możesz precyzyjnie dostroić częstotliwość przełączania skrzyń.

Dodawanie przełącznika do tego projektu

dodanie przełącznika do raspberry pi pico

Ten podstawowy projekt ma tę wadę, że musisz pociągnąć za USB, aby zatrzymać sarkazm.

Dodajmy przełącznik, który pozwoli nam włączyć lub wyłączyć tę funkcję.

Niech dioda na tablicy też się świeci, gdy sarkazm jest aktywny.

Schemat podłączenia przełącznika do Raspberry Pi Pico za pomocą Wokwi.

Przełącznik przyciskowy ma cztery styki. Podłącz pin 3.3V i GPIO 22 (oznaczane jako GP 22) po przekątnej przeciwległych stron przycisku.

To, co się tutaj dzieje, to fakt, że kiedy naciśniesz przełącznik, podłączysz napięcie 3.3V do pinu GPIO 22, tym samym, mówiąc prościej, aktywując go.

To jest jedyna fizyczna modyfikacja, którą musisz wykonać. Jest to bardzo proste.

Jeśli chodzi o kod, to urósł on o kilka linii, (pogrubienie = związane z przyciskiem, kursywa = związane z diodą LED)

import time
import digitalio
import board
import usb_hid
from adafruit_hid.keyboard import Keyboard
from adafruit_hid.keycode import Keycode

keyboard = Keyboard(usb_hid.devices)

<strong>btn1_pin = board.GP22
btn1 = digitalio.DigitalInOut(btn1_pin)
btn1.direction = digitalio.Direction.INPUT #GP22 is an input
btn1.pull = digitalio.Pull.DOWN #DOWN means it outputs False

</strong>
<em>led = digitalio.DigitalInOut(board.LED)
led.direction = digitalio.Direction.OUTPUT</em> #powering LED, so give it OUTPUT
 
activated = False #this variable stores if sarcasm is on or off

while True:
    <strong>if btn1.value: #if user presses btn1, start sarcasm
        activated = True</strong>
        
    if activated:
        <em>led.value = True</em> #turn on board LED
        keyboard.press(Keycode.CAPS_LOCK)
        time.sleep(0.2)
        keyboard.release(Keycode.CAPS_LOCK)
        if <strong>btn1.value: #if user presses btn1 while activated, cancels sarcasm
            activated = False
            <em>led.value = False</em> #turn off LED
            time.sleep(0.2)</strong> 
            <strong>#pauses while loop to give user time to remove finger from btn1</strong>

Przekształcenie klawiatury sarkazmu w klawiaturę makr

Możesz użyć przycisku do aktywacji makr, takich jak ALT + TAB, CTRL + ALT + DEL lub innych, do maksymalnie sześciu zwykłych klawiszy.

Wystarczy, że zmodyfikujesz klawisze w ramach tej metody keyboard.press i keyboard.release.

import time
import digitalio
import board
import usb_hid
from adafruit_hid.keyboard import Keyboard
from adafruit_hid.keycode import Keycode

keyboard = Keyboard(usb_hid.devices)

btn1_pin = board.GP22
btn1 = digitalio.DigitalInOut(btn1_pin)
btn1.direction = digitalio.Direction.INPUT
btn1.pull = digitalio.Pull.DOWN

while True:
    if btn1.value:
        <strong>keyboard.press(Keycode.ALT,Keycode.TAB )</strong>
        time.sleep(0.2)
        <strong>keyboard.release(Keycode.ALT,Keycode.TAB)</strong>

Istnieje wiele więcej rzeczy, które można zrobić z tym hack klawiatury. Na przykład, możesz użyć go do zatrzymania wygaszacza ekranu poprzez naciśnięcie nieszkodliwego klawisza, takiego jak Page Up. Możesz też użyć go do sterowania Zoomem, Discordem, OBS, Meet, itp.

Dane temperatury/wilgotności z DHT22

raspberry pi pico dht22

Jeśli masz czujnik DHT11, DHT22 lub AM2302, możesz go użyć z Raspberry Pi Pico.

Czujniki te byłyby prawdopodobnie najlepiej połączone z wyświetlaczem LCD lub sposobem na zapisywanie danych, ale zacznijmy od szybkiego projektu.

Potrzebujesz trzech przewodów do zworki, nagłówków na Raspberry Pi Pico i rezystora 10K. Poniższy pakiet ma wszystko, czego potrzebujesz, oprócz Raspberry Pi Pico z nagłówkami.

Jest to naprawdę proste dzięki Thonny, CircuitPython i bibliotece DHT Adafruit.

W poniższych krokach wykorzystano DHT22.

Podłączenie czujnika DHT22 do Raspberry Pi Pico

Podłączenie DHT22 do Pico jest naprawdę proste.

raspberry pi pico dht22

Na DHT22 znajdują się cztery piny. Od lewej do prawej, stroną z oczkami zwróconą do użytkownika, piny są następujące VCC, DANE, NC oraz GND. Nie trzeba będzie podłączać NC.

Połącz VCC do 3.3V pin na komputerze Pi.

Podłącz rezystor 10K z 3,3V do DANE, a następnie połączyć DANE do GP0. Łatwiej jest to zrobić przy pomocy breadboardu, dzięki czemu można rozdzielić napięcie 3.3V. Jak widać na zdjęciu powyżej, rezystor idzie z lewego skrajnego pinu do drugiego, jak również, zielony przewód jest podłączony do GPIO 0.

Połącz GND do dowolnego pinu masy Raspberry Pi Pico.

Skończyłeś. Nadszedł czas na oprogramowanie.

raspberry pi pico dht22
Schemat wykonany z Wokwi.

Kodowanie DHT22 w Thonny dla Raspberry Pi Pico

Najpierw otwórz Thonny i upewnij się, że jesteś w trybie Regular Mode i CircuitPython (na dole po prawej). Bardziej szczegółowy przewodnik po Thonny i CircuitPython jest dostępny powyżej.

Przejdź do Narzędzia -> Zarządzaj pakietami -> wyszukaj adafruit-circuitpython-dht.

raspberry pi pico dht22

Następnie wprowadź ten kod dostarczony przez Adafruit.

import time

import adafruit_dht
import board

dht = adafruit_dht.DHT22(board.GP0)

while True:
    try:
        temperature = dht.temperature
        humidity = dht.humidity
        # Print what we got to the REPL
        print("Temp: {:.1f} *C \t Humidity: {}%".format(temperature, humidity))
    except RuntimeError as e:
        # Reading doesn't always work! Just print error and we'll try again
        print("Reading from DHT failure: ", e.args)

    time.sleep(1)

Naciśnij Uruchom w Thonny i powinieneś zobaczyć wyjście:

pi dht22

Wyświetlacz Raspberry Pi Pico

Raspberry Pi Pico jest całkiem fajne, ponieważ może wyświetlać obrazy.

Minusem jest to, że wymaga to sporo pracy, trochę wiedzy technicznej i będziesz otrzymywać obrazy, które wyglądają jak z ery Windows 3.1.

Dlaczego tak jest? Z powodu ograniczonej pamięci RAM wynoszącej 264KB. Ogranicza to rozdzielczość wyświetlacza i głębię kolorów.

To powiedziawszy, oto kilka przykładów tego, co można uzyskać.

Łatwe wyjście wideo dzięki gniazdku DVI

Najprostszym sposobem na wyprowadzenie sygnału wideo jest skorzystanie z naszego przewodnika i użycie skarpety DVI lub karty rozszerzeń VGA & Audio. DVI sock wykorzystuje kabel HDMI, który jest prawdopodobnie najbardziej kompatybilnym portem z dzisiejszymi urządzeniami.

Przeczytaj cały artykuł tutaj, jak możesz zacząć.

Sposoby DIY na podłączenie Pico do wyświetlacza

Istnieją inne sposoby na wyprowadzenie sygnału wideo bez konieczności kupowania urządzeń peryferyjnych.

Miroslav Nemecek napisał artykuł o tym, jak można wykorzystać osiem rezystorów i port VGA do podłączenia monitora do twojego Raspberry Pi Pico.

A oto sposób, w jaki można użyć kabla HDMI i rezystorów do podłączenia Pico do monitora HDMI.

Pobór mocy Raspberry Pi Pico

Raspberry Pi's Pico datasheet zapewnia nam dobrą podstawę do zrozumienia, jak wiele poboru mocy można oczekiwać od Pico w oparciu o pewne typowe zastosowania.

Te liczby nie stanowią absolutnego maksimum, jakie można wyciągnąć z Raspberry Pi Pico, ale są dobrym punktem wyjścia.

Ich pierwszy test obejmował dostęp do wideo, audio i karty SD, aby wyświetlić demo odtwarzacza multimedialnego "Popcorn" poprzez VGA, kartę SD i płytę audio.

Państwo
Grając w Popcorn (wideo, audio, karta SD)93,5mA
Tryb BOOTSEL, aktywny9.9mA
Tryb DORMANT0.8mA
Tryb SLEEP1.3mA

Być może zastanawiasz się: jaka jest różnica między DORMANT a SLEEP?

Dormant wymaga zewnętrznego wyzwalacza, który manipuluje pinem GPIO, aby obudzić Raspberry Pi Pico, podczas gdy SLEEP może uruchomić wewnętrzny zegar, aby obudzić RP2040, jak pokazano na rysunku Karta katalogowa RP2040.

W Raspberry Pi Pico FAQ, oni dalej wyjaśnić, że,

"Tryb SLEEP to czas, kiedy procesory są w trybie wfi/wfe, a DMA jest nieaktywne, więc można wyłączyć większość zegarów systemowych, w tym takie rzeczy jak magistrala.
Tryb DORMANT to tryb, w którym wyłącza się wszystkie oscylatory, a więc jest to tryb o niższej mocy, ale wtedy ma się mniej opcji wybudzania."

Czy mogę zasilać Raspberry Pi Pico z power banku?

raspberry pi pico power bank bateria

Tak, możesz.

Ale Raspberry Pi Pico może nie pobierać wystarczającej ilości energii z banku energii i spowodować, że bank energii przejdzie w tryb oszczędzania energii.

Rozwiązaniem jest, niestety, wyciągnąć więcej energii przez umieszczenie rezystora między banku energii i Raspberry Pi Pico. Oto wideo, aby wyjaśnić ins i outs.

Zasilanie Pico (napięcia)

Raspberry Pi Pico może być zasilane poprzez port microUSB. To zasila VSYS z napięcia 5V VBUS, poprzez D1.

Jeśli nie używasz portu USB do zasilania Raspberry Pi Pico, to możesz podłączyć VSYS do źródła zasilania w zakresie od 1,8V do 5,5V.

Jednakże, jeśli podłączasz oba, będziesz musiał podać drugie źródło zasilania do VSYS przez diodę Schottky'ego, co zapobiegnie zasilaniu zwrotnemu jednego z nich przez drugie. Dioda Schottky'ego pozwoli również na przepływ wyższego z napięć VBUS lub napięcia zewnętrznego.

Jednak nad diodą Schottky'ego występuje spadek napięcia, więc trzeba będzie dostarczyć napięcie od 2,3V do 5,5V.

Oznacza to, że można zasilać Raspberry Pi Pico za pomocą minimum 2x akumulatorków niklowych (2,4V) lub 1x baterii litowej (3,7V).

Aby nie tracić sprawności przez zastosowanie diody Schottky'ego, można zamiast niej zastosować MOSFET z kanałem P, który ma niską rezystancję.

Aby uzyskać więcej informacji, zapoznaj się z Raspberry Pi Pico Datasheet.

Czy mogę zasilać Raspberry Pi Pico z USB telewizora?

Tak, możesz. Oto obrazek, na którym mrugam wewnętrzną diodą LED.

zużycie energii przez raspberry pi pico (2)

Standardowy port USB powinien być w stanie dostarczyć do 500mA, co jest znacznie więcej niż to, co Raspberry Pi Pico potrzebuje. Jak widać w testach poboru mocy wykonanych przez Raspberry Pi, najbardziej intensywny test pobierał tylko około 90mA.

Możesz napotkać problemy, jeśli twój Raspberry Pi Pico konfiguracji pobiera więcej niż 500mA, na przykład, jeśli Pico jest uruchomiony zasilania peryferiów wymagających.

Raspberry Pi Pico vs inne płytki

Raspberry Pi Pico jest późno wejście do świata mikrokontrolerów, po tylko wydany w 2021 roku. Istnieje już ostra konkurencja w świecie mikrokontrolerów z takimi jak ESP32 i Arduinos, które mają wiele wariantów, które mogą pomóc Ci rozpocząć projekt z odpowiednich funkcji, takich jak WiFi.

Nie ma wariantów z Raspberry Pi Pico, więc trzeba będzie kupić HATs i inne dodatki, aby osiągnąć ten sam cel.

Ponadto, jeśli zamierzasz dodać wiele komponentów... kiedy nadejdzie czas, aby po prostu kupić mikrokomputer?

Odpowiedzmy na to pytanie przyglądając się ESP32, Arduino Uno i Raspberry Pi Zero.

Raspberry Pi Pico vs Espressif ESP32

ESP32 jest dużym krokiem w górę w stosunku do Raspberry Pi Pico pod względem możliwości technologicznych. Dla porównania wybrałem wariant PICO-KIT, ponieważ był on najbardziej zbliżony kształtem do Pico.

Dla jednego, posiadanie WiFi i Bluetooth jest głównym game changer. Na przykład, będzie można uruchomić serwer na Espressif ESP32, który wyświetla wartości czujnika, podczas gdy nie będzie w stanie zrobić to na Raspberry Pi Pico.

ESP32 ma również szybszy procesor, więcej pamięci RAM i więcej pamięci flash, ale wszystko to odbywa się kosztem większego zużycia energii.

Raspberry Pi Pico jest nieco skromniejszy w swoich specyfikacjach, ale dwie rzeczy się wyróżniają. Fakt, że może on akceptować napięcia od 1,8 V do 5,5 V naprawdę pozwala na użycie jednej baterii litowej, co tworzy bardzo kompaktowy pakiet. Nie byłoby to możliwe w przypadku ESP32, chyba że zmodyfikowałbyś napięcie 3.7V z pojedynczej baterii litowej.

Raspberry Pi PicoEspressif ESP32-PICO-KIT
Częstotliwość CPU133MHz80/160/240MHz
MikrokontrolerRP2040Xtensa LX6
Rdzenie22
Pamięć flash2MB4MB
RAM256KB520KB
GPIO26 (do wykorzystania przez użytkownika)36
Czy ma USB?microUSBmicroUSB
WiFi i/lub BT?NieTak, obie
Napięcie1,8 - 5,5V lub 5V USB3.3V (przez piny) lub 5V przez USB lub 5V-12V (przez regulator napięcia)
Pobór mocy (przy aktywności)93mA (test Popcorn)100-128mA1
Rozmiar51x21mm52x20mm
JęzykiMicroPython / CMicroPython / C

Uwaga: dane o poborze mocy na ESP32 to uruchomiony program z pustą pętlą.

Raspberry Pi Pico vs Arduino Uno Rev3

arduino pi zero
Zdjęcie autorstwa Harrison Broadbent.

Arduino tworzy wiele płytek i jeśli chodzi o kształt, Arduino Nano jest prawdopodobnie najbardziej zbliżone, mieszcząc się w wymiarach 45 x 18 mm. Arduino produkuje również płytkę, która wykorzystuje mikrokontroler RP2040.

Jednak najczęściej spotykaną płytką jest Arduino Uno Rev3, więc przyjrzyjmy się jak te dwie płytki wypadają w porównaniu.

Raspberry Pi PicoArduino Uno Rev3
Częstotliwość CPU133MHz16 MHz
MikrokontrolerRP2040ATmega328P
Pamięć flash2MB32KB
RAM256KB2KB
GPIO26 (do wykorzystania przez użytkownika)14 cyfrowych, 6 analogowych
Czy ma USB?microUSBUSB B
WiFi i/lub BT?NieDostępny wariant WiFi
Napięcie1,8 - 5,5V lub 5V USB6-20V (zalecane 7-12V) lub przez USB.
Rozmiar51x21mm68x53mm
JęzykiMicroPython / CC

Dla początkujących, jedną z największych różnic do zauważenia jest to, jak Arduino Uno działa na logice 5V, podczas gdy Raspberry Pi Pico działa na logice 3,3V.

5V może potencjalnie ułatwić sprawy dla początkujących, ponieważ niektóre komponenty wymagają wejścia 5V, takie jak przekaźniki. Jeśli masz 5V komponent, który chcesz uruchomić na Raspberry Pi Pico, trzeba będzie dostarczyć dodatkowe komponenty do step up 3,3V do 5V.

Inną różnicą jest to, że Arduino Uno jest open source, co oznacza, że można kupić tańsze płyty, które mają dokładnie takie same możliwości. To powiedziawszy, Raspberry Pi Pico jest już bardzo tani na poziomie $4 lub 4,10€.

Arduino Uno przyjmuje również znacznie szerszy zakres napięć (zalecane 7-12V), co oznacza, że można go zasilać z wielu rodzajów zasilaczy.

Jeśli chodzi o języki programowania, Pico ma tę przewagę, że pozwala na kodowanie w MicroPython, podczas gdy dla Arduino trzeba pisać w C. Arduino ma jednak większą bibliotekę, która ułatwia pracę z komponentami.

Raspberry Pi Pico vs Raspberry Pi Zero

pi zero pi pico
Zdjęcie autorstwa Harrison Broadbent.

Do pewnego stopnia, możliwości Pico i Zero pokrywają się. W prostych układach, możesz użyć Pico i Zero do zrobienia dokładnie tego samego.

Ale sposób dojścia do tego samego punktu będzie się różnił w przypadku Pico i Zero.

Oto logika, której używam, aby zdecydować, którego użyć:

ScenariuszCo kupić
Jestem lepszy w języku innym niż C/PythonZero
Mam "nieograniczoną" moc (tzn. przypadek użycia bez energii słonecznej lub baterii)Zero
Potrzebuję WiFi i/lub BluetoothZero
Muszę zapisywać dane (np. rejestry temperatury)Zero
Muszę użyć kameryZero
Potrzebuję najbardziej kompaktowej konfiguracjiPico
Potrzebuję szybkiego restartu w przypadku awarii/braku zasilaniaPico
Nie chcę konfigurować systemu operacyjnegoPico
Chcę tańszą opcjęPico

Bardziej szczegółowy zarys tego, dlaczego warto wybrać Pico lub Zero jest następujący omówione powyżej, a ten link przeniesie Cię do niego.

Raspberry Pi Pico vs Teensy 4.1

Teensy 4.1 jest niezwykle potężną płytką dzięki układowi ARM Cortex-M7 pracującemu z częstotliwością 600MHz.

Wydany przez PJRC w 2021 roku, Teensy 4.1 spodoba się osobom, które potrzebują czegoś z dużą mocą obliczeniową, RAM, pamięcią flash, ethernetem i większą ilością pinów GPIO niż to, co można znaleźć w Raspberry Pi Pico.

Otrzymujesz 55 pinów wejściowych/wyjściowych, ale tylko 42 są "breadboardable". Jest 35 pinów PWM, 18 wejść analogowych, 8 szeregowych, 3 SPI i 3 I2C.

Gdzie Raspberry Pi Pico świeci sprowadza się do jego prostoty. Jeśli dopiero się uczysz i chcesz najprostszy sposób, aby rozpocząć na prostych projektów, Raspberry Pi Pico oferuje najprostszy sposób, aby dostać się i działa.

Dla przykładu, Raspberry Pi Pico używa języka programowania MicroPython, podczas gdy Teensy 4.1 jest programowany głównie w C.

Bardzo łatwo jest też używać CircuitPython na Raspberry Pi Pico, co ułatwia tworzenie projektów.

Cena Teensy 4.1, wynosząca $26,85, jest sporo wyższa niż $4 Raspberry Pi Pico.

Plus, to jest o wiele łatwiejsze do zasilania Raspberry Pi Pico na baterii ze względu na szeroki napięcia może podjąć.

Raspberry Pi PicoTeensy 4.1
Częstotliwość CPU133MHz600MHz
Pamięć flash2MB8MB
RAM256KB1024KB
GPIO26 (do wykorzystania przez użytkownika)55 cyfrowych, 18 analogowych
Czy ma USB?microUSBmicroUSB
WiFi i/lub BT?NieNie, ale ma Ethernet
Napięcie1,8 - 5,5V lub 5V USB5V przez USB lub VIN
Rozmiar51x21mm61x15mm

Raspberry Pi Pico pliki do pobrania

Zebrałem listę plików, które mogą Ci pomóc w Twoich projektach. Większość z nich znajduje się na stronie subdomena arkusza danych Raspberry Pi i to, co jest tutaj, jest istotne dla Raspberry Pi Pico.

Referencje

Rozkład pinów Raspberry Pi Pico

Schemat Raspberry Pi Pico

Arkusz danych Raspberry Pi Pico (o Pico, specyfikacja mechaniczna/elektryczna, funkcje, zasilanie, debugowanie, schemat, lokalizacja komponentów)

Krótki opis produktu Raspberry Pi Pico (pokład marketingowy)

Karta katalogowa RP2040

Raspberry Pi Pico Fritzing plik

Raspberry Pi Pico FAQ

10 ciekawych faktów o Raspberry Pi Pico

Programowanie

Rozszerzenie C dla MicroPythona

Raspberry Pi Pico i MicroPython w Windows

Raspberry Pi Pico Rozpoczęcie pracy z Pico (dla rozwoju C/C++)

Plik CircuitPython dla Raspberry Pi Pico UF2

Thonny

Rozpocznij pracę z MicroPythonem na Raspberry Pi Pico

Dokumentacja Raspberry Pi Pico C SDK (software development kit)

Dokumentacja Raspberry Pi Pico MicroPython SDK (software development kit)

CAD

Raspberry Pi Pico plik STEP

RP2040 minimalny plik KiCAD

RP2040 VGA Plik KiCAD

Komentarzy: 14

  1. Antony kwiecień 18, 2022 o 11:54 am

    Pobór mocy nie wynosi 6W, lecz 0,5W (100mA przy 5V).

    • Xuyun Zeng kwiecień 20, 2022 o 5:02 am

      Hej Antony, poprawiłem to. Dzięki za pomoc.

    • Rys listopad 13, 2022 o 6:49 am

      chyba na wyjściach pinów. Tak przynajmniej jest w karcie technologicznej PICO

  2. Andres Nuñez lipiec 3, 2022 o 11:54 pm

    Puedo conectar por usb una Raspberry Pi Pico con un Arduino Nano. que la rrasberry envíe por usb datos al arduino?

    Gracias

  3. robert wrzesień 19, 2022 o 8:47 pm

    Pico W ma teraz wifi

  4. Arya wrzesień 24, 2022 o 7:17 am

    > Czy wspomniałem, że Raspberry Pi Zero jest bardzo wybredne w kwestii napięcia, które mu dostarczasz? Przyjmie tylko 4,75 - 5,25V.

    nieprawidłowe, to podana specyfikacja, ale bierze niższe niż to i działa cuda. zobacz tutaj: https://hackaday.io/project/19035/log/69596

  5. FWBlack październik 4, 2022 o 7:12 pm

    Bardzo fajny writeup! Spodobało mi się to: " Cóż, na przykład jeden z moich projektów wykorzystywał potencjometr do regulacji częstotliwości przełączania przekaźnika." - zastanawiał się, czy mógłbyś podzielić się szczegółami tego projektu jako przykładu. Czy użyłeś PIO / PIO State Machine?

    • Xuyun Zeng październik 5, 2022 o 10:01 am

      Nie użyto PIO!

      Zasadniczo, gdy podłączysz potencjometr do ADC, otrzymasz wartość. Obracanie garnka spowoduje zwiększenie lub zmniejszenie wartości.

      Zasadniczo użyłem tych wartości do stworzenia timera. Więc na przykład, jeśli wartość wynosi 2000, będzie to odpowiadało 2 sekundom włączonym, 2s wyłączonym.

  6. Frabci grudzień 7, 2022 o 2:48 am

    Buenas, es posible que la raspberry pi pico se queme al recibir de entrada una correinte de 2A pero voltaje de 5V?

    • Xuyun Zeng grudzień 8, 2022 o 7:09 am

      Używasz przenośnego urządzenia ładującego, które ma przewód 2A? Mimo że zawsze istnieje ryzyko, uważam, że Pico pobiera tylko niezbędny prąd, nawet jeśli Twój samochód dostarcza prąd o natężeniu 2A (maksymalnie).

  7. Nigel A Gunn styczeń 20, 2023 o 9:42 pm

    Nie jesteś ograniczony do C lub microPythona do programowania. Mam picosy z zainstalowanymi interpreterami FORTH i BASIC i zawsze jest CircuitPython.

    • raspi berry luty 4, 2023 o 11:49 am

      dziękuję za opinię - ciekawe, że można uruchomić takie języki jak FORTH również na Pico!

  8. Antonio kwiecień 28, 2023 o 2:01 pm

    Su Raspberry Pi Pico W non riesco ad installare la libreria adafruit-circuitpython-hid.
    Inizia l'installazione e dopo un po mi da errore 28 memoria piena.
    dove sbaglio?
    Grazie 1000

  9. PoyFromFrance sierpień 28, 2023 o 10:36 am

    Świetny artykuł! Użyłem Pico do mojej niestandardowej klawiatury z oprogramowaniem kmk (obwód oparty na Pythonie) i jest świetny.
    Kupiłem ostatnio kilka klonów pico na aliexpress za 2,7 dolara z typem C i 16 mb... Jeszcze nie testowane.

Pozostaw komentarz