Преди Raspberry Foundation да представи малката платка Pi Pico, сравнението между „Малината“ и Arduino бе некоректна. Raspberry Pi си е пълноценен едноплатков компютър, предназначен за специфични цели и предимно за разработчици. Arduino от друга страна е микроконтролер. Но с появата на Raspberry Pi Pico всичко се промени, понеже новата платка също е микроконтролер и разликата с Arduino вече не е толкова голяма.
Общото между Arduino и Raspberry Pi Pico е, че това са отлични платки за разработване на най-различни проекти, включително управление на осветлението, стъпкови двигатели, сензори и т.н. При тези платки не се налага използването на пълноценна операционна система. След появата на Raspberry Pi Pico вече може да се направи едно пълноценно сравнение на възможностите на двете платки, с което ще се заемем сега.
Функционалността и GPIO
Raspberry Pi Pico има съвсем друг форм фактор в сравнение с другите микроконтролери. Така например, тази платка има 40 DIP пина. Освен това самата печатна платка е назъбена, което може да се използва за по-лесното съединяване на Pico с някоя друга по-голяма дънна платка.
При DIP изводите няма нищо ново – аналогичният форм фактор от дълги години се използва и в другите микроконтролери. Този малка платка може да бъде директно запоена върху по-голяма носеща платка, да бъде използвана в някоя макетна схема или да бъде поставена над другите електронни модули – тоест, тя лесно може да бъде интегрирана в на практика произволна електронна система.
GPIO изводите на Pi Pico включват множество цифрови канали плюс три аналогови входа и няколко I2C, SPI и UART интерфейси. Но Pico разполага и с няколко програмируеми PIO, които могат да бъдат настроени за емулиране на други интерфейси и протоколи, включително WS2812 (NeoPixels). Като цяло, платка е един евтин и универсален инструмент с GPIO изводи.
Тук победител е Raspberry Pi Pico
Чипът на Raspberry Pi Pico срещу чипа на Arduino
Предишните поколения на популярните платки Arduino се базираха на чиповете на Atmel, като например ATMega328P. Но сега по-новите Arduino платки използват ARM чипове. Така например, Arduino’s Portenta H7 се базира на SoC с две ARM Cortex M7+M4 процесорни ядра.
Платките от рода на Adafruit, Seeed и SparkFun също използват ARM чипове. На микроконтролерите обикновено не са необходими няколко процесорни ядра и висока производителност, понеже обикновено се изпозлват за автоматизирането на само един процес.
Но RP2040 е вече следващото поколение на тези чипове. Първо, тук имаме Arm Cortex M0+, работещ с тактова честота 133 MHz. Това е много по-бързо от UNO 328P с честота 16 MHz. И още, SRAM чипът на Малината е 264 KB, което е много повече от Uno, който има само 2 KB. А и Pico има 2 MB вградена памет, докато Uno разполага само с 32 KB. Никак не е много.
С какво малкият Pico може да се противопостави на Portenta H7? ОК, тази платка се базира на Arm Cortex M7 + M4 и може да работи с тактова честота чак до 480 MHz. Освен това, тя има WiFi, Bluetooth, интерфейс за включване на уеб камера и GPU. На пръв поглед Potenta печели по всички фронтове и да, това мощна платка в този клас електронни устройства. Но като си спомним, че нейната цена е около $109 и я сравни с цената на Pico, която е едва $4, то изборът става очевиден.
Победителят е Raspberry Pi Pico
Програмирането на Raspberry Pi Pico срещу това на Arduino
Arduino IDE е интегрирана среда за разработка за Windows, MacOS и Linux, която е написана на С и С++ и е предназначена за създаване и качване на най-разнообразни програми в Arduino съвместимите платки. Предлагат се и алтернативи – PlatformIO и Arduino Create, облачната среда на Arduino, но като цяло, това си е същата IDE.
С течение на времето тя еволюира и се усъвършенства, така че към днешен ден разполага с вградени функции от рода на управление на няколко платки, както и софтуерни средства за настройване на програмите и за инсталиране на програмни библиотеки за различните пакети. Arduino Create е удобна облачна среда, която може да се използва както за решаване на най-опростените задачи, така и за сложни проекти. PlatformIO се предлага в три версии – инструмент за работа от команден ред, отделна IDE или програмно решения за интеграция с друга съществуваща IDE, като например Microsoft Visual Studio Code.
Що се отнася до новата Raspberry Pi Pico, за нея може да се програмира в С среда и чрез MicroPython. Самите разработчици на платформата препоръчват втория вариант. При използването на MicroPython и Pico всичко е направо отлично. С този програмен език може да се работи с помощта на Python Shell, известен и като REPL (Read, Eval, Print, Loop), или с помощта на някоя IDE от рода на Thonny. Всичко това дава възможност за много бързо писане и настройване на сорс кода.
Ако все пак се налага да се работи със С, тук тук има два варианта – да пишем сорс-кода с помощта на някой редактор (Vi / Vim, Nano), а след това да използваме конзолните инструменти. Вторият вариант е използването на различните разширения за писане и прехвърляне на С кода към Pico. И двата варианта работят нормално, но не са много удобни.
Победителят и тук е Raspberry Pi Pico
Работата с двете платки
Както казахме по-горе, другите модели Raspberry Pi са пълноценни едноплаткови компютри, които работят под управлението на пълноценна ОС. Pico от своя страна е микроконтролер без операционна система.
Това означава, че независимо какъв език за програмиране се използва, необходимо е създаването на съответния фърмуер за Pico. Това дава възможност за съвсем лесна работа с платката, като кодът във вид на фърмуер се записва директно в нея. Използва се файловия формат UF2 на Microsoft. За да се запише фърмуерът, необходимо е да се натисне и задържи натиснат бутона BOOTSEL при включването на MicroSD кабела, за да може UF2 файлът да се запише в диска на RPI-R устройството. Само след няколко секунди може да се започне работата с Raspberry Pi Pico – тоест, може да се стартира редактора Thonny и сорс кодът да се въвежда.
При използването на езиците C/C++ всичко е доста по-сложно. Необходимо е използването на конзолата, текстов редактор, да се изтеглят допълнителни модули и приложения и да се следят зависимостите. Ако всичко мине добре, полученият UF2 файл трябва да се запише в Pico.
Този процес може доста да се автоматизира с помощта на популярния редактор Microsoft Visual Studio Code, който дава възможност за лесното написване кода на проекта и създаването на необходимия файл само с няколко клика. Това не е много удобно за начинаещите, но работи много добре. Тук трябва да напомним, че екипът на Arduino наскоро съобщи, че съвсем скоро в Arduino IDE ще се появи поддръжката на чипа RP2040.
Що се отнася непосредствено до работата с двете платки, нека да уточним, че Raspberry Pi Pico се продава без пинове (крачета) и при някои проекти може да се наложи тяхното ръчно запояване. Arduino се продава с пинове, с изключение на платките Arduino Nano Every и Nano 33 IoT.
Но това са дреболии и работата с Pico е по-лесна.
И в тази категория Raspberry Pi Pico е победител.
Консумацията
Raspberry Pi Pico е много ефективна платка за най-разнообразни проекти. В сравнение с типичния Raspberry Pi, моделът Pico консумира много по-малко електрическа енергия. Все пак това е контролер, а не сложен чип, работещ под управлението на някоя ОС.
В един от проектите в нашите тестове платката Raspberry Pi Pico с включени към нея 12 светодиода, управляваше тяхното светене до максималната си яркост при захранващо напрежение на схемата 5 V. Общата консумация на този проект не превиши 14 mA или само 0,7 W. Тук Pico дори няма с какво да бъде сравнен – всички останали контролери и платки от подобен вид, консумират значително повече енергия.
И тук победителят е Raspberry Pi Pico
Изводи
Може да се каже, че това ревю е доста субективно. Но така или иначе, безспорният победител е Raspberry Pi Pico, който за цената си от само $4, предлага широк спектър от възможности, подробна документация и съвсем лесна ежедневна работа. Това е най-добрата платка за проекти с микроконтролери, понеже при минимална цена предлага максимум възможности.