<< Zpět

 

  Česky: , English:

PicoLibSDK

Alternativní rozšířená knihovna C/C++ SDK pro Raspberry Pico a RP2040

verze 1.05, září 2023

(c) Miroslav Němeček

https://github.com/Panda381/PicoLibSDK

Manuál k PicoLibSDK v PDF

Demo video na YouTube

Obsah:

PicoLibSDK je alternativní rozšířená knihovna C/C++ SDK pro modul Raspberry Pico s procesorem RP2040, se snadným překladem pod Windows. Lze ji použít i pro jiné moduly, které tento procesor používají. Oproti původní knihovně SDK se knihovna PicoLibSDK snaží rozšířit funkčnost původní knihovny a zejména usnadnit její používání.

Vlastnosti knihovny PicoLibSDK

Boot loader: Boot loader umožňující výběr a spouštění programů UF2 z SD karty.

SDK řízení hardware: ADC, boot ROM, řízení systémových hodin, řízení CPU, hardwarová dělička, DMA, double a float aritmetika, FIFO mailboxy, programování flash, GPIO, I2C, hardware interpolator, IRQ, multicore, PIO, PLL, PWM, QSPI, reset a power řízení, ROSC, RTC, SPI, spinlocky, SysTick, časovač s alarmem, watchdog, XOSC.

Tool knihovna: alarm, 32-bitový Unix kalendář, dlouhý 64-bitový astronomický kalendář, kreslení na canvas, RGBA barevný vektor, CRC kontrola s podporou DMA, dekódování čísel, escape paketový protokol, event kruhový buffer, FAT file system, doubly linked list, alokátor paměti, 2D transformační matice, mini-ring buffer, formátovaný tisk, PWM zvukový výstup, generátor náhody, rectangle, kruhový buffer, DMA kruhový buffer, SD karta, streamy, textové řetězce, textové seznamy, textový tisk, tree list, VGA kreslení, video přehrávač.

Knihovna USB: multiplayer mini-port, CDC device a host - sériová komunikace, HID device a host - včetně externí klávesnice a myši.

Velká celá čísla: výpočty s velkými celými čísly, výpočet Bernoulliho čísel.

Reálná čísla: výpočty s čísly s pohyblivou řádovou čárkou s volitelnou přesností až 3690 číslic a 30-bitovým exponentem. Vědecké funkce s volitelnou metodou výpočtu - Ln, Exp, Sqrt, Sin, Cos, Tan, arcus, hyperbolické funkce a mnoho dalších. Lineární faktoriály s přesným a rychlým výpočtem.

Ovladače displeje: Připravená podpora TFT a VGA displeje.

Zařízení: Podpora desek Picoino/PicoinoMini/Picotron/DemoVGA s VGA displejem, PicoPad s TFT displejem a základní Raspberry Pico bez dalšího hardware.

Boot loader pro spouštění programů z SD karty:


Licence

Zdrojový kód knihovny je, až na několik výjimek, zcela volně k použití pro jakýkoli účel, včetně komerčního využití. Celý zdrojový kód knihovny nebo jeho části je možné používat a upravovat bez omezení. Jedinou výjimkou jsou knihovny pro single- a double-floating-point matematiku, které jsou převážně autorským dílem Raspberry Pi a Marka Owena, a proto podléhají licenčním podmínkám původních autorů.

Odkazy

Download knihovny PicoLibSDK (zdrojové kódy, obrazy SD karty, ukázkové programy)

Download manuálu ke knihovně PicoLibSDK (formáty DOC, ODT, PDF)

Manuál k PicoLibSDK v PDF

PicoLibSDK na Github: https://github.com/Panda381/PicoLibSDK

Demo video na YouTube

Video se slide-show přehrávačem pro porovnání videomódů PicoLibSDK

Obsah SD karty pro PicoPad

Obsah SD karty pro desku DemoVGA

Obsah SD karty pro Picoino

Obsah SD karty pro PicoinoMini

Obsah SD karty pro Picotron

Ukázkové programy pro Raspberry Pico

Cílová zařízení

PicoPad

Hlavním cílovým zařízením, pro které je knihovna v současnosti připravena, je konzole PicoPad, s 16-bitovým TFT displejem 320x240 pixelů, 8 tlačítky a mikroSD kartou.

PicoPad 1.0 schéma zapojení (nebo jako PDF):

PicoPad 0.8

Je připraven překlad také pro PicoPad verze 0.8, což byl první prototyp PicoPad. Překlad slouží spíše jako ukázka možnosti alternativní konfigurace překladu.

PicoPad 0.8 schéma zapojení (nebo jako PDF):

Picoino

Další připravenou alternativou překladu je Picoino, což je předchůdce PicoPad, s vestavěnou klávesnicí 56 tlačítek a výstupem na VGA monitor v 8-bitovém barevném módu RGB332. V knihovně je připraveno rozlišení obrazu 320x240. Spolu s knihovnou PicoVGA je možné i vyšší rozlišení a kombinované módy. Download podkladů pro Picoino.

Ukázkové programy pro Picoino jsou připravené adaptací programů pro PicoPad - grafika změněna z 16-bitů na 8-bitů a k ovládání se používá 8 tlačítek klávesnice přemapovaných na kódy PicoPad (kurzory, Space -> A, Z -> B, Ctrl ->X, BackSpace -> Y).

Picoino 1.0 schéma zapojení:

Picoino 1.0 osazení součástek:

Picoino výstup na VGA monitor:

PicoinoMini

Jako menší bratr PicoPad vznikla odlehčená verze Picoino, která má 8-bitový výstup RGB332 na VGA displej (mód QVGA 320x240), SD kartu, externí konektor jako PicoPad a 8 tlačítek jako PicoPad. Je určena především pro tutoriály k programování Raspberry Pico, protože umožňuje snadné sestavení z běžných domácích zásob - pro výstup na VGA monitor mohou stačit 3 rezistory a VGA konektor. Download podkladů pro PicoinoMini.

PicoinoMini schéma zapojení:

PicoinoMini osazení součástek:

PicoinoMini výstup na VGA monitor:

DemoVGA

DemoVGA je demo modul s výstupem na VGA monitor v rozlišení 320x240 pixelů, 16-bitů barvy ve formátu RGB565. Obsahuje SD kartu, přídavný napájecí USB konektor, výstup na sluchátka a 3 tlačítka. K některým programům (typicky hry) se používá externí USB klávesnice. Download podkladů pro DemoVGA.

DemoVGA schéma zapojení:

DemoVGA osazení součástek:

Picotron

Picotron je jednoduchý minipočítač zaměřený na technické aplikace. Disponuje výstupem na VGA displej v rozlišení až 800x600 pixelů, 4-bitový barevný výstup v režimu YRGB1111 (16-barevný režim jako v PC-CGA a EGA). Dále má SD kartu, sluchátkový audio konektor a klávesnici ze 40 mikrospínačů. Download podkladů pro Picotron.

Picotron schéma zapojení:

Picotron osazení součástek:

Raspberry Pico

Knihovna je připravena též pro základní modul Raspberry Pico, bez přídavného hardware. To slouží především ke zkoušení základních tutoriálů pro Raspberry Pico.


Ukázkové programy

Součástí knihovny je připravené ukázkové programy a hry. Jsou připraveny obrazy SD karty pro jednotlivá cílová zařízení. Před použitím SD karty je potřeba do procesoru nahrát boot loader - to je možné buď nahrátím programu LOADER.UF2 z root složky obrazu SD karty, nebo nahrátím kteréhokoliv jiného programu, protože každý program obsahuje současně i boot loader. Programy lze ukončit tlačítkem Y a přejít do boot loaderu.

Config - nastavení konfigurace PicoPad. Nastaví hlasitost, podsvícení displeje, referenční napětí ADC, napětí pro měření baterie, kalibrace měření teploty, kalibrace frekvence krystalu.

Frekvenční generátor - generuje obdélníkový signál nebo PWM signál (sinus, pila, trojúhelník - sample rate 100 kHz), frekvenční rozsah od 0,01 Hz do 100 MHz. Přesnost 5 číslic (30 ppm) nebo po kalibraci krystalu 6 číslic (až 3 ppm, podle přesnosti kalibrace). Výstup buď na GPIO14 nebo na GPIO15 (s reproduktorem).

Měřič frekvence - měří frekvenci ze 2 vstupů (GPIO1 a GPIO14) v rozsahu 0,0256 Hz až 100 MHz, s přesností 5 číslic (30 ppm) nebo po kalibraci krystalu 6 číslic (až 3 ppm, podle přesnosti kalibrace). Měří s plnou přesností i nízké kmitočty, tj. nejedná se jen o jednoduchý čítač pulzů. Během měření kombinuje 3 různé metody, s využitím obou PIO.


Ukázková videa

Videa lze přehrávat programem VIDEO.UF2 na zařízeních PicoPad a DemoVGA. Byla vygenerována pomocí programu PicoPadVideo. Videa je nutné nahrát na SD kartu do složky /VIDEO.

Download základní sady (310 MB), sada obsahuje:

BIRDS ..... (00:44, 17 MB) Dva hašteřiví ptáčkové v kleci
CANORA .... (00:29, 11 MB) Česká středověká hudební skupina Canora
CORALS .... (05:42, 134 MB) Ryby v Egyptě mezi korály
MANDEL .... (09:05, 214 MB) Mandelbrot Fractal Deep Zoom 10^220

Download další ukázková videa:

BUNNY ..... (04:56, 116 MB) Bugs Bunny - králičí sezóna a kachní sezóna (Anglický dabing)
CIMRMAN ... (66:09, 1556 MB) Cimrman - Dlouhý, Široký a Krátkozraký
KYARY ..... (04:18, 101 MB) Kyary Pamyu Pamyu - Ring a Bell
MINION .... (12:12, 287 MB) Minion Madness
MOLE ...... (13:01, 307 MB) Jak krtek ke kalhotkám přišel
SHREK ..... (00:59, 23 MB) Závěrečná písnička ze Shrek 1
SNOWHITE ..... (80:07, 1885 MB) Sněhurka a sedm trpaslíků (Český dabing)
TROOPERS .. (53:20 1255 MB) Troopeři


Historie verzí

Miroslav Němeček

<< Zpět