Tavaly nagy hírverést kapott a Raspberry új szériája a "Pico". Eleinte sokan félreértették, és azt hitték mikroszámítógépről van szó, holott ez egy teljesen mezei ARM mikrovezérlő, operációs rendszer nélkül. Sajnos első kiadásában semmilyen hálózati csatlakozási lehetősége nem volt, talán ez is magyarázza, hogy nem lett túlzottan népszerű - meg persze az ellátási problémák miatt. Időközben napvilágot látott LAN-os változata is, amiről egy másik cikkben írni fogok, most azonban az újonnan megjelent WiFi-s Pico-ról ejtenék pár szót, a "Pico W" modellről.
Érdekes módon a Pico és a Pico W méretei gyakorlatilag ugyanazok, lehet nem véletlen, hogy annak idején hagytak a Pico lapon pontosan ennyi üres helyet, amire ráfért a wifis chip. :)
Félreértések elkerülése érdekében, 6 dollárért csak igen kevés ember tudja beszerezni, megjelenése másnapján, kapásból 6 angol font + 5 font szállítási díj volt az ára, mivel Magyarországon nem igazán lehetett beszerezni.. sőt Angliában is készlethiányos ebben a pillanatban. Pont ma vettem észre, hogy közben a HeStore-on már kapható, 3400 HUF ellenértékben, meg persze a szállítás.
Mivel önmagában a Pico nem tud wifit, azt a rá SPI csatlakozáson keresztül kötött CYW43439 kezeli. Mondjuk ahogy nézegettem az adatlapjukat, nem állhattam meg mosolygás nélkül, hogy a csak wifi kapcsolatot intéző CYW segédchipben több a memória, mint magában a Picoban... (Kössünk a Trabant tetejére egy Chinook helikoptert és kész a repülő Trabant!)
Ebben az ESP32 jobb talán, mert teljesen integrált, és ő végez minden funkciót. Node, lássuk a medvét!
A Pico alapadatai:
- két magos ARM Cortex M0+ mag 133Mhz
- 264 kB memória
- 2MB flash tárhely
- adatlap szerint az RP2040 90mA körül fogyaszt átlagosan
Az Infineon CYW43439 alapadatai:
- ARM Cortex M3 vezérlő
- 512kB memória
- WPA/WPA2/WPA3 támogatás
- WiFi 4 (2.4Ghz) kliens és AP mód támogatása (AP módban max 4 kliens tud rá csatlakozni)
- Bluetooth 5.2 (nincs a szoftveres SDK-ban engedélyezve egyelőre, bár a hardver tudná!)
- hardveres AES támogatás
- adatlap szerinti fogyasztás 37-320mA között
Kíváncsiságból működés közben rámértem a fogyasztásra, vajon mennyire követi a gyakorlat az elméletet, és azt találtam, hogy a Pico W 64mA-t fogyaszt induláskor, és amikor nagyon dolgoztatom, normál "üresjárati" működés közben 41mA-en áll.
Összehasonlításképpen egy ESP32-vel is megismételtem ugyanezt, itt azt láttam, hogy 100mA induláskor és komoly munkavégzéskor, üresjáratban pedig 44mA
Persze nem hiszem, hogy bárki is bitcoin-bányászatra akarná használni ezeket a mikrovezérlőket, így az átlagos 41-44mA fogyasztás várható tőlük, ami nagyságrendileg ugyanaz.
Tudásban ugyanazt nyújtja a Pico W, mint a normál Pico, a WiFi pedig SPI-n keresztül van csatlakoztatva az alábbi lábakon: GP23, GP24, GP25, GP29. (Továbbá a lapka alján a TP4 és TP5 tesztpont is a wifihez tartozik.) Ezek nincsenek kivezetve a lapkáról egyik tűsorra sem, így nem akadályoz minket különösebben semmiben. (A LED-et immár a CYW chip vezérli a GP25-ön keresztül, ezt ne akarjuk átvenni tőle)
Működtető rendszert pont úgy tudunk rá tenni, mint a sima Pico-ra:
A rajta található BOOTSEL gomb nyomvatartása mellett kell USB kábellel gépünkre kötni (mikro-USB csatlakozása van még mindig), ekkor megjelenik hordozható meghajtóként, mint egy pendrive, és ebbe a maghajtóba kell felmásolnunk az .UF2 kiterjesztésű firmware állományt, feltöltés után automatikusan újraindítja magát.
A Pico W támogatása még aránylag új, ezért nincs benne a stabil microPython kiadásokban, ám a napi tesztekre kiadottakban igen, innen például le tudjuk tölteni:
https://micropython.org/download/rp2-pico-w/
Amennyiben sikerült egy microPython rendszert feltennünk, a Thonny IDE segítségével rá tudunk csatlakozni, és python parancsokkal direktben vezérelni.
Ha csatlakoztunk, a Thonny Shell-ben az alábbi parancsokkal tudjuk tesztelni, működik-e a wifi kliens mód:
A connect() parancshoz a saját routerünk által szórt SSID nevet, majd második paraméterként a jelszót kell megadnunk. És íme, az ifconfig() ki is írja, hogy kaptam IP címet, rajta vagyok a hálózaton. :) (Kivéve akinek nincs 2.4GHz hálózata, mert az hiába is próbálkozik, lásd adatlap fentebb)
Persze itt felmerül a kérdés, hogy mire is lehetne ezt használni? Ha tudunk programozni, akár C nyelven, akár pythonban, elég sok mindenre, amíg észben tartjuk, hogy a 264kB nem lehet elég mindenre...
Kész firmware-ek nem nagyon vannak még hozzá, bár én vettem a fáradtságot, és a korábban ESP32-re írt mPyEasy-t átportoltam mPyEasy-Async néven elérhető a github-on:
https://github.com/enesbcs/mpyeasy-async
mPyEasy feltöltése:
1/ Letöltjük a release-ek közül a megfelelő binárist, ez most épp az mpyeasy-11260-pico-w.uf2
https://github.com/enesbcs/mpyeasy-async/releases
2/ megnyomjuk a BOOTSEL gombot és csatlakoztatjuk USB kábellel a gépünkre a PicoW-t
3/ felmásoljuk az .UF2 fájlt a megjelenő új meghajtóra
4/ Feltöltés után automatikusan újraindul az eszköz és egy "mpyEasy" nevű WiFi AP fog megjelenni, jelszava "configesp".
5/ Böngészővel a 192.168.4.1 címre látogatva a Config menüpontban megadhatjuk saját WiFi AP-nk nevét és jelszavát.
Ne felejtsük el bepipálni az "Enable Wifi STA mode" jelölőnégyzetet sem a lent található Submit-ra kattintás előtt. Majd indítsuk újra, és immár a saját hálózatunkon levő IP címén keresztül menedzselhetjük az eszközt egy böngészővel.
Az mPyEasy-ről már írtam korábban, akár HTTP-n, akár MQTT-n tudjuk saját okosotthon vezérlőnkbe csatlakoztatni, a Controllers menüben. A Devices-ban tudunk alapvető szenzorokat GPIO be/kimenet, hőmérő.. létrehozni, a Rules-ban belső szabályokat felvenni, a Notifications-ban, pedig értesítések beállítását felvenni, példának okáért GMAIL SMTP-t, ami teljes mértékben működik, ugyanis SSL képes az eszköz.
Amit nem szabad elfelejtenünk: egyelőre a Bluetooth funkciók nincsenek engedélyezve szoftveresen, így rövidtávon ne tervezzünk ilyen funkciókat a PicoW-vel.
Egyébiránt elégedett vagyok vele, mind fogyasztása, mind méretei szempontjából méltó vetélytársa az ESP32-nek szerény véleményem szerint. Ami viszont hamarosan szűk keresztmetszetté válhat, az a 2MB flash tárhelye, ugyanis a wifis variánsnak már 1.5MB méret felett jár a binárisa, és még akkor van aki szeretne rá saját programot is tenni. :D
A bejegyzés trackback címe:
Kommentek:
A hozzászólások a vonatkozó jogszabályok értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a Felhasználási feltételekben és az adatvédelmi tájékoztatóban.