<< Zpět |  | Česky: , English:

BarePi

Modulární mikročipová stavebnice

Poslední aktualizace: 07.06.2026

(c) 2026 Miroslav Němeček

https://github.com/Panda381/BarePi

Download podkladů stavebnice BarePi (100 MB)

Poznámka: Schémata a plošné spoje jsou ve formátu programu KiCAD verze 9. Plošné spoje byly původně navrženy pro domácí výrobu fotocestou a je tedy možné, že nejsou správně připraveny pro profesionální výrobu. Pokud si budete chtít nechat plošné spoje vyrobit profesionálně, doporučuji důkladně zkontrolovat návrhy, především rozměry součástek, které nemusí být správně definované. Typicky SMD kondenzátory zřejmě nemají správné rozměry.

Poznámka 2: K programování procesorů CH32xxx může být zapotřebí WCH-LinkE programátor (k dispozici např. zde). Před prvním použitím může být nutné nejdříve upgradovat firmware programátoru - lze provést ve vývojovém prostředí MounRiver Studio.

## Obsah

- Popis stavebnice (základní charakteristika stavebnice)

- Konektor sběrnice (popis signálů na konektoru sběrnice)

- Konektor displeje (popis signálů na konektoru displeje)

- ZeroTiny (příklad minimalistické herní konzole s modulem Raspberry Zero, vytvořené na základě modulů stavebnice)

Speciální moduly

- Base (základní modul - napájení z USB, stabilizátor 3,3V, výstup zvuku, microSD karta, tlačítko Reset)

- BusExp (expandér sběrnice pro spojení 4 modulů)

- Port (porty SPI, I2C, UART, digitální I/O, ADC)

- RTC (hodiny reálného času a paměti EEPROM)

- TestLed (tester sběrnice)

Procesory

- MegaTinyJoypad (herní konzole Mega Tiny Joypad, procesorový modul ESP-07S, displej OLED 128x64)

- PGA2350 (herní konzole PicoPadPGA, procesor RP2350)

- PicoPad (konzole PicoPad, procesor RP2040 nebo RP2350)

- PicoPadHSTX (konzole PicoPadHSTX s výstupem na VGA nebo HDMI, procesor RP2350)

- PidiBoy (konzole PidiBoy, procesor CH32V006F8P6, displej OLED 128x64)

- PidiMet, PidiMetAdapter (univerzální multimetr)

- PidiPad (konzole PidiPad, procesor CH32V006E8R6, výstup na VGA monitor)

- SumoPad (konzole SumoPad, procesor CH32V208RBT6, výstup na VGA monitor nebo LCD displej 320x240)

- TinyJoypad (herní konzole Tiny Joypad, procesor ATtiny85, displej OLED 128x64)

- TweetyBoy (herní konzole TweetyBoy, procesor CH32X035G8R6, displej LCD 160x80)

- Zero (modul Raspberry Zero 1 nebo Raspberry Zero 2)

Displeje

- DispHDMI (adaptér pro připojení HDMI monitoru)

- DispVGA (adaptér pro připojení VGA monitoru)

- ExtDisp (konvertor pro grabování LCD displeje 320x240 a zobrazení na VGA nebo HDMI monitoru)

- LCD16x2 (textový LCD displej, 2 řádky po 16 znacích)

- LCD160x80 (LCD barevný displej 160x80)

- LCD320x240 (LCD barevný displej 320x240)

- LED12 (7-segmentový LED displej o 12 pozicích)

- OLED128x64 (OLED černobílý displej 128x64)

Klávesnice

- CalcKey (klávesnice pro kalkulačky)

- KeyPad (základní herní klávesnice s 9 tlačítky)

- MiniKey (minimalistická alfanumerická klávesnice)

### Popis stavebnice

BarePi je modulární mikročipová stavebnice, určená k programování malých zařízení, jako jsou herní konzole či kalkulačky. Hlavní zaměření je na modul Raspberry Zero 2, programovaný jako bare-metal (tedy bez operačního systému) s knihovnou PiLibSDK (link www, GitHub). Lze ale používat i jiné typy procesorů, podporující signály s úrovní 3,3V (ATmega, CH32V, ESP32). Moduly stavebnice jsou propojené skrze 40-pinové konektory, tvořící sběrnici se signály definovanými podle modulu Raspberry Zero 2. Konektory zajištují dostatečnou pevnost spojení, nejsou potřeba přídavné mechanické spoje. Většina modulů je průchozích - obsahují jak vstupní konektor sběrnice na horním okraji desky, tak výstupní konektor sběrnice na dolním okraji desky. Výjimkou jsou moduly procesoru, které obsahují pouze výstupní konektor, a modul alfanumerické klávesnice, který má pouze vstupní konektor.

Propojovací konektor sestává z dutinkové lišty 2x20 pinů na dolní straně modulu (výstup signálů z modulu - např. procesorový modul) a pinové lišty 2x20 pinů na horní straně modulu (vstup signálů do modulu - např. klávesnice). Většina modulů má šířku 65 milimetrů, vycházející z šířky modulu Raspberry Zero 2. Většina zařízení obsahuje procesorový modul, modul "Base" s napájením a výstupem zvuku, modul displeje a modul klávesnice. Všechny signály na sběrnici jsou úrovně 3,3V. Sběrnice obsahuje sice i napájecí napětí 5V, ale toto napětí slouží jednak k přivedení napájení do zařízení (následuje stabilizátor na 3,3V) a jednak jako napětí pro případný převodník signálů na úroveň 5V. Na samotné signálové vodiče nesmí být přivedena úroveň 5V, v mnoha případech by mohlo dojít k poškození zařízení.

Při stavbě modulů můžete sice moduly procesorů a displeje přiletovat natvrdo přes pinovou lištu, ale doporučuji používat raději dutinkovou lištu, pro snadnou možnost výměny. Moduly stavebnice je možné používat v nejjednodušší formě, pouze samotný plošný spoj, ale luxusnější je doplnit i horní panel. U některých modulů, jako např. klávesnice, je horní panel nezbytný, kvůli popiskám kláves. Jako horní panel lze použít další plošný spoj s potiskem, přišroubovaný k modulu pomocí distančních sloupků. V podkladech je připravena grafika i pro dolní panel, ale ten je zřejmě zbytečný - spodní stranu modulu lze ošetřit např. přilepením molitanových pásek z okenní izolace, aby spodní strana plošného spoje nepoškrabala stůl. U prototypů stavebnice jsem namísto horního panelu použil pouze potištěný kartonový papír, přelepený izolepou proti otěru a s otvory vyraženými průbojníkem na kůži. U klávesnic doporučuji nastavit výšku tlačítek tak, aby hmatníky tlačítek přesahovaly 1 mm nad plochu horního panelu. Při větším přesahu mohou tlačítka při stisku tlačit do prstů, při menším přesahu může být ke stisku nutné vyvinout větší sílu.

### Konektor sběrnice

Definice signálů na konektoru sběrnice, při pohledu na dutinkovou lištu na dolním okraji modulu. V závorce je uvedeno odpovídající číslo GPIO pinu modulu Raspberry Zero 2.

- 1,2 5V ... Napájecí napětí 5V. Slouží k napájení zařízení, např. z USB konektoru nebo z baterie 3,7V. Samotné zařízení je napájeno napětím 3,3V, zařízení musí tedy obsahovat i stabilizátor napětí na 3,3V. Všechny signály na sběrnici jsou úrovně 3,3V. Jsou-li potřebné signály s úrovní 5V, je nutné použít převodník.

- 3,4 3V3 ... Napájecí napětí 3,3V. Je to hlavní napájecí napětí zařízení. Může být získáno stabilizátorem z napětí 5V (např. z USB konektoru) nebo měničem napětí z baterie.

- 5 BUS_SDA (GPIO0) ... Datový vodič interní I2C sběrnice. Interní I2C sběrnice slouží k přímému řízení modulů stavebnice. Interní I2C sběrnice může být samostatná sběrnice, oddělená od externí uživatelské I2C sběrnice, aby měl uživatel možnost samostatného řízení komunikace. V modulu Raspberry Zero 2 se jedná o sběrnici I2C0. U jiných modulů může být interní I2C sběrnice sdílená s externí I2C sběrnicí. V modulu Raspberry Zero 2 se sběrnice I2C0 používá též k přístupu k systémovým ID EEPROM pamětem při zapnutí zařízení - na to je potřeba pamatovat, aby nedocházelo k překrytí funkcí EEPROM pamětí. Signál je typu otevřený kolektor - je nutné používat pull-up rezistory.

- 6 BUS_SCL (GPIO1) ... Hodinový vodič interní I2C sběrnice. V modulu Raspberry Zero 2 se jedná o sběrnici I2C0. Signál je typu otevřený kolektor - je nutné používat pull-up rezistory.

- 7 I2C_SDA (GPIO2) ... Datový vodič externí I2C sběrnice. Externí I2C sběrnice slouží k řízení uživatelských zařízení, aby komunikace nekolidovala s řízením modulů stavebnice. V modulu Raspberry Zero 2 se jedná o sběrnici I2C1. U jiných modulů může být externí I2C sběrnice sdílená s interní I2C sběrnicí. Signál je typu otevřený kolektor - je nutné používat pull-up rezistory.

- 8 I2C_SCL (GPIO3) ... Hodinový vodič externí I2C sběrnice. V modulu Raspberry Zero 2 se jedná o sběrnici I2C1. Signál je typu otevřený kolektor - je nutné používat pull-up rezistory.

- 9 KEY_ALT (GPIO4) ... Vstup tlačítka alternativních funkcí "ALT". Tlačítko mění význam ostatních kláves klávesnice. Tlačítko spojuje pin s GND a vyžaduje použít pull-up rezistor. Tento signál může mít též další funkce, není-li využívána funkce tlačítka. Na pin může být vyveden hodinový signál z procesoru - u modulu Raspberry Zero 2 je to signál GPCLK0. Z toho důvodu by mělo být tlačítko "ALT" připojeno přes ochranný rezistor (např. 1K0), který zabrání poškození obvodů při nechtěném stisku tlačítka, je-li na pin vyveden hodinový signál. Další doplňkovou funkcí pinu je vstup ADC převodníku - typicky u modulů Raspberry Pico a CH32.

- 10 KEY_DOWN (GPIO5) ... Vstup tlačítka "DOWN". Spolu s tlačítkem "ALT" má alternativní význam "Page Down". Tlačítko spojuje pin s GND a vyžaduje použít pull-up rezistor.

- 11 KEY_UP (GPIO6) ... Vstup tlačítka "UP". Spolu s tlačítkem "ALT" má alternativní význam "Page Up". Tlačítko spojuje pin s GND a vyžaduje použít pull-up rezistor.

- 12 SPI_CS1 (GPIO7) ... Druhý výběrový signál sběrnice SPI. V modulu Raspberry Zero se jedná o sběrnici SPI0.

- 13 SPI_CS0 (GPIO8) ... První výběrový signál sběrnice SPI. V modulu Raspberry Zero se jedná o sběrnici SPI0.

- 14 SPI_MISO (GPIO9) ... Signál MISO sběrnice SPI - vstup dat do procesoru z periferie (signál RX). V modulu Raspberry Zero se jedná o sběrnici SPI0. V některých zařízeních může být SPI sběrnice sdílena s SD kartou - v tom případě je nutné před použitím SPI sběrnice vyjmout SD kartu ze slotu.

- 15 SPI_MOSI (GPIO10) ... Signál MOSI sběrnice SPI - výstup dat z procesoru na periferii (signál TX). V modulu Raspberry Zero se jedná o sběrnici SPI0.

- 16 SPI_SCLK (GPIO11) ... Hodinový signál sběrnice SPI. V modulu Raspberry Zero se jedná o sběrnici SPI0.

- 17 PWM_L (GPIO12) ... Levý kanál zvukového výstupu. Zpravidla se jedná o PWM modulaci, může být proto nutné použít RC filtr.

- 18 PWM_R (GPIO13) ... Pravý kanál zvukového výstupu. Zpravidla se jedná o PWM modulaci, může být proto nutné použít RC filtr.

- 19 UART_TX (GPIO14) ... Výstup sériových dat UART portu. V některých modulech může být tento pin použit jako výstup sériových dat CAN Bus (signál CAN_TX).

- 20 UART_RX (GPIO15) ... Vstup sériových dat UART portu. V některých modulech může být tento pin použit jako vstup sériových dat CAN Bus (signál CAN_RX).

- 21 LCD_DC (GPIO16) ... Řídicí signál pro LCD SPI displej - rozlišení dat a řídicího kódu.

- 22 LCD_RES (GPIO17) ... Signál pro resetování řadiče LCD SPI displeje.

- 23 LCD_CS (GPIO18) ... Signál pro výběr LCD SPI displeje. V modulu Raspberry Zero se jedná o sběrnici SPI1. Na tomto pinu může být volitelně k dispozici signál PCM_CLK pro rozhraní I2S/PCM.

- 24 LCD_BL (GPIO19) ... Signál pro řízení jasu podsvícení LCD SPI displeje. Zpravidla se jedná o PWM šířkově modulovaný signál. Na tomto pinu může být volitelně k dispozici signál PCM_FS pro rozhraní I2S/PCM. Pokud procesor neumožňuje plynulé řízení jasu, měla by na tomto pinu být hodnota HIGH pro plný jas displeje.

- 25 LCD_MOSI (GPIO20) ... Výstup sériových dat do LCD SPI displeje. V modulu Raspberry Zero se jedná o sběrnici SPI1. Na tomto pinu může být volitelně k dispozici signál PCM_DIN pro rozhraní I2S/PCM.

- 26 LCD_SCK (GPIO21) ... Hodinový signál LCD SPI displeje. V modulu Raspberry Zero se jedná o sběrnici SPI1. Na tomto pinu může být volitelně k dispozici signál PCM_DOUT pro rozhraní I2S/PCM.

- 27 KEY_A (GPIO22) ... Vstup tlačítka "A" - hlavní akční tlačítko. Na alfanumerické klávesnici odpovídá klávese "Mezerník". Spolu s tlačítkem "ALT" má alternativní význam "Insert". Tlačítko spojuje pin s GND a vyžaduje použít pull-up rezistor.

- 28 KEY_B (GPIO23) ... Vstup tlačítka "B" - vedlejší akční tlačítko. Na alfanumerické klávesnici odpovídá klávese "Enter". Spolu s tlačítkem "ALT" má alternativní význam "Edit". Tlačítko spojuje pin s GND a vyžaduje použít pull-up rezistor.

- 29 KEY_X (GPIO24) ... Vstup tlačítka "X" - tlačítko doplňkových funkcí (např. nápověda). Na alfanumerické klávesnici odpovídá klávese "Tab". Spolu s tlačítkem "ALT" má alternativní význam "Print Screen" - screenshot obsahu obrazovky do souboru. Tlačítko spojuje pin s GND a vyžaduje použít pull-up rezistor.

- 30 KEY_RIGHT (GPIO25) ... Vstup tlačítka "RIGHT". Spolu s tlačítkem "ALT" má alternativní význam "End". Tlačítko spojuje pin s GND a vyžaduje použít pull-up rezistor.

- 31 KEY_LEFT (GPIO26) ... Vstup tlačítka "LEFT". Spolu s tlačítkem "ALT" má alternativní význam "Home". Tlačítko spojuje pin s GND a vyžaduje použít pull-up rezistor.

- 32 KEY_Y (GPIO27) ... Vstup tlačítka "Y" - tlačítko přerušení, ukončení nebo menu. Na alfanumerické klávesnici odpovídá klávese "Esc". Spolu s tlačítkem "ALT" má alternativní význam "Menu", vyvolání systémového menu. Tlačítko spojuje pin s GND a vyžaduje použít pull-up rezistor.

- 33 SD_CS ... SPI signál pro výběr SD karty. Na tento signál může být napojena LED indikující přístup k SD kartě.

- 34 SD_MISO ... Vstup SPI dat z SD karty do procesoru.

- 35 SD_MOSI ... Výstup SPI dat z procesoru na SD kartu.

- 36 SD_SCLK ... Hodiny SPI pro SD kartu.

- 37 USR_LED ... Výstup na uživatelskou LED. Aktivní signál má úroveň HIGH.

- 38 RESET ... Vstup tlačítka "RESET" pro resetování procesoru. Tlačítko spojuje pin s GND a vyžaduje použít pull-up rezistor. U některých modulů je pull-up rezistor interně součástí modulu.

- 39, 40 GND ... Zem 0V.

### Konektor displeje

Některé moduly umožňují výstup obrazu na externí displej s VGA nebo HDMI rozhraním. Tyto moduly obsahují konektor s dutinkovou lištou 2x10 pinů, který obsahuje signály pro výstup jak na HDMI displej, tak na VGA displej. Kromě toho obsahuje konektor i signál sloužící k detekci, zda je do konektoru zasunut modul DispHDMI, DispVGA nebo je konektor ponechán volný. Podle toho může dojít k volbě interface pro HDMI displej, VGA displej nebo interní LCD displej.

Definice signálů na konektoru displeje, při pohledu na dutinkovou lištu na výstupu z procesorového modulu. V závorce je uvedeno odpovídající číslo GPIO pinu modulu PGA2350.

- 1 HSYNC (GPIO18) ... Horizontální synchronizace VGA displeje. Signál je v adaptéru DispVGA ochráněn rezistorem 47 ohmů k omezení proudového nárazu na dlouhých vodičích.

- 2 VSYNC (GPIO19) ... Vertikální synchronizace VGA displeje. Signál je v adaptéru DispVGA ochráněn rezistorem 47 ohmů k omezení proudového nárazu na dlouhých vodičích.

- 3 GND ... Zem 0V.

- 4 BLUE ... Modrá složka pro VGA displej.

- 5 DISP_SEL ... Detekce připojeného adaptéru. Signál je v adaptéru DispVGA spojen se zemí GND, v adaptéru DispHDMI s napájením 3V3. Není-li zasunut žádný adaptér, není signál připojen k žádnému vodiči - v této konfiguraci se může použít interní LCD displej. U některých zařízení se při tomto třetím stavu provádí autodetekce připojeného typu monitoru VGA nebo HDMI - testováním impedance na VGA konektoru, ale nedoporučuje se autodetekci používat, není dostatečně spolehlivá.

- 6 GREEN ... Zelená složka pro VGA displej.

- 7 3V3 ... Napájecí napětí 3,3V. Rezervováno pro pull-up rezistory adaptéru DispHDMI, v současnosti se nevyužívá.

- 8 RED ... Červená složka pro VGA displej.

- 9 HOTPLUG ... Detekce připojení HDMI monitoru. Je-li HDMI monitor připojen a připraven přijímat signál, nastaví signál HOTPLUG na hodnotu HIGH. Při běžné činnosti začne zařízení vysílat obraz teprve až je signál HOTPLUG nastaven. Signál má zpravidla úroveň +5V, proto je v adaptéru DispHDMI použita odporová dělička, která napětí sníží na úroveň 3,3V. V současnosti signál HOTPLUG žádné moduly stavebnice nepoužívají, obraz se vysílá nezávisle na připojení monitoru.

- 10 5V ... Napájecí napětí 5V. Napětí slouží k napájení komunikačních obvodů monitoru, k napájení zobrazovacích adaptérů (např. převodník VGA na HDMI) a k napájení konfigurační EEPROM monitoru. Proud je v adaptérech omezen ochranným rezistorem 47 ohmů.

- 11 SDA ... Datový signál I2C sběrnice sloužící k načtení EDID dat z HDMI monitoru. V současnosti žádné moduly stavebnice tento signál nepoužívají. Pozor při jeho použití - u většiny monitorů je signál připojen přes pull-up rezistor na napětí +5V, což může být nebezpečné pro obvody pracující s úrovněmi 3,3V.

- 12 SCL ... Hodinový signál I2C sběrnice sloužící k načtení EDID dat z HDMI monitoru. V současnosti žádné moduly stavebnice tento signál nepoužívají. Pozor při jeho použití - u většiny monitorů je signál připojen přes pull-up rezistor na napětí +5V, což může být nebezpečné pro obvody pracující s úrovněmi 3,3V.

- 13 CKN (GPIO15) ... Signál CK- pro HDMI displej. Signál je v HDMI adaptéru omezen rezistorem 270 ohmů.

- 14 CKP (GPIO14) ... Signál CK+ pro HDMI displej. Signál je v HDMI adaptéru omezen rezistorem 270 ohmů.

- 15 D0N (GPIO13) ... Signál D0- pro HDMI displej. Signál je v HDMI adaptéru omezen rezistorem 270 ohmů.

- 16 D0P (GPIO12) ... Signál D0+ pro HDMI displej. Signál je v HDMI adaptéru omezen rezistorem 270 ohmů.

- 17 D1N (GPIO19) ... Signál D1- pro HDMI displej. Signál je v HDMI adaptéru omezen rezistorem 270 ohmů.

- 18 D1P (GPIO18) ... Signál D1+ pro HDMI displej. Signál je v HDMI adaptéru omezen rezistorem 270 ohmů.

- 19 D2N (GPIO17) ... Signál D2- pro HDMI displej. Signál je v HDMI adaptéru omezen rezistorem 270 ohmů.

- 20 D2P (GPIO16) ... Signál D2+ pro HDMI displej. Signál je v HDMI adaptéru omezen rezistorem 270 ohmů.

### ZeroTiny

Herní konzole "ZeroTiny" není přímo součástí stavebnice BarePi. Jedná se o minimalistickou herní konzoli s modulem Raspberry Zero 2 nebo Raspberry Zero 1. Je to příklad vytvoření koncového zařízení na základě modulů stavebnice. Jeho zapojení odpovídá spojení modulů "Zero", "Base" a "KeyPad". Při konstrukci doporučuji použít raději dutinkovou lištu než přímé přiletování modulu Zero - aby bylo možné vyměňovat moduly Zero 1 nebo Zero 2. Konzole ZeroTiny v knihovně PiLibSDK, kde najdete i ukázkové aplikace: www, GitHub.

Konzole ZeroTiny sestavená z modulů BarePi:

## Speciální moduly

### Base

Modul "Base" je základní modul stavebnice. Modul může být vhodné použít u všech zařízení - zajišťuje napájení zařízení z USB konektoru (s využitím stabilizátoru 3,3V), výstup zvuku, slot pro microSD kartu, tlačítko pro reset procesoru, LED indikující přístup k SD kartě a uživatelskou LED. Před výrobou plošného spoje zkontrolujte definici pro audio konektor, slot pro SD kartu, reproduktor a stabilizátor HT7533 - souřadnice a význam pinů se může u různých výrobců lišit. Na modulu se nachází propojka určující, zda se použije interní stabilizátor pro 3,3V. Pokud procesorový modul obsahuje vlastní stabilizátor, může být vhodné vypnout stabilizátor na modulu "Base". Při konstrukci tohoto modulu upozorňuji, že některé součástky jsou příliš ztěsnané na sobě a špatně se letují - možná by bylo vhodnější desku mírně přeuspořádat, a také zvolit pro kondenzátory větší pouzdra. Zlepšit by se měl i reproduktor - zvuk je tichý, může by být potřeba přidat zesilovač.

Audio signály PWM_L a PWM_R v tomto modulu končí a dále nepokračují. Je to z důvodu minimalizace rušení audio signálu. Je-li to možné, připojujte modul "Base" jako první, ihned za procesorový modul. Zřejmě by kvalitu audio signálu zlepšilo i lepší vedení audio vodičů a jejich důkladnější stínění.

### BusExp

Modul "BusExp" je expandér sběrnice. Umožňuje propojit spolu až 4 moduly, pokud dáváte přednost organizaci modulů "nad sebou" raději než "vedle sebe".

### Port

Modul "Port" je modul pro připojení externích periferií. Obsahuje konektory pro připojení SPI, I2C, UART a také procesor CH32V002A4M6, který zprostředkovává 12 digitálních vstupů/výstupů a 6 analogových ADC vstupů.

### RTC

Modul "RTC" je modul obsahující hodiny reálného času a paměti EEPROM. Hodiny reálného času zajišťuje obvod DS3231, zálohovaný baterií CR2032. Je možné použít buď originální obvod MAXIM, nebo podstatně levnější čínský klon, který má sice nižší přesnost, ale pro běžné použití je jeho přesnost dostačující. Osobně jsem použil prodávaný modul hodin reálného času, ze kterého jsem vyletoval obvod DS3231, paměť AT24C32 a držák baterie CR2032, a vše použil v tomto modulu. Modul "RTC" obsahuje vestavěnou paměť EEPROM AT24C32, o kapacitě 4KB, na I2C adrese 0x57. Tato paměť je využívána k ukládání konfigurace programů. K modulu lze připojit externí moduly s EEPROM pamětí o kapacitě až 64KB, ve 2 různých konfiguracích uspořádání pinů. K prvnímu slotu, J3, lze připojit EEPROM modul s uspořádaním pinů VCC-GND-SCL-SDA. Druhý slot, J4, slouží k připojení EEPROM modulu s uspořádáním pinů VCC-SCL-SDA-GND. Paměťové sloty mohou mít I2C adresu 0x50 až 0x56. U pamětí AT23C256 a AT23C512 lze zvolit adresový rozsah pouze 0x50 až 0x53. Při použití EEPROM pamětí je potřeba pamatovat na to, že moduly Raspberry Pi (Zero, 1, 2, 3) používají při svém startu sběrnici I2C0 pro čtení ID EEPROM. Pokud uživatelské EEPROM nebudou používat stejnou strukturu dat jako ID EEPROM, neměl by s tím být problém.

### TestLed

Modul "TestLed" je testovací modul pro testování sběrnice stavebnice. Pomocí LED indikuje stavy signálů sběrnice. Téměř všechny LED, kromě LED pro indikaci napájecích napětí 5V a 3,3V, jsou zapojeny mezi signálem a napájecím napětím 3,3V. Svým rozsvícením indikují tedy stav LOW - z toho důvodu, že většina signálů je negativních, kdy klidový stav je HIGH a aktivní stav LOW. Výjimkou jsou některé signály, jako USR_LED, PWM_L, PWM_R, LCD_BL, které mají pozitivní význam a mohlo by být vhodnější indikovat jejich úroveň HIGH. Ale z důvodu možnosti snadné detekce zkratu mezi signály je ponecháno stejné zapojení i pro tyto speciální případy signálů. Testovací LED pro signál USR_LED bude tedy svítit v případě, kdy bude uživatelská LED zhasnutá, a podobně bude svítit LED pro podsvícení displeje, pokud bude podsvícení vypnuto. Samozřejmě v případech, kdy signál nebude použitý a bude ve stavu vysoké impedance, tak LED nebudou svítit ani při úrovni LOW. Pro snadné testování sběrnice lze do některých procesorů nahrát program, který LED pro signály sběrnice postupně rozsvěcuje, a tak lze vizuálně zkontrolovat chyby přerušení sběrnice nebo zkratu na sběrnici.

V modulu se používají SMD LED diody s pouzdrem PLCC-4. Různí výrobci používají různé zapojení pinů - proto se na plošném spoji využívají pouze 2 kontakty ze 4, jejichž zapojení výrobci dodržují. Sběrnici (kromě posledních 6 signálů) můžete testovat procesorovým modulem "Zero" a programem TESTLED z knihovny PiLibSDK, složka TEST: www GitHub.

## Procesory

### MegaTinyJoypad

Modul "MegaTinyJoypad" je určen k řízení herní konzole "MEGA Tiny Joypad", podle návrhu (c) Daniel C (Electro L.I.B). Modul obsahuje procesorovou jednotku ESP-07S, kterou je možné buď přiletovat do modulu přímo, nebo použít adaptér pro ESP-07 a konektor s dutinkovou lištou. Program lze do procesoru nahrát přes UART piny, po stisku tlačítka "A" během zapnutí napájení. K modulu je potřeba připojit moduly "Base", "OLED128x64" a "KeyPad".

Konzole Mega Tiny Joypad sestavená z modulů BarePi:

Schéma zapojení konzole Mega Tiny Joypad:

### PGA2350

Modul "PGA2350" slouží k sestavení herní konzole PicoPadPGA. Je to varianta konzole PicoPad s procesorovým modulem PGA2350, s procesorem RP2350B, 16 MB Flash a 8 MB PSRAM. Výstup obrazu je možný na LCD displej 320x240 pixelů, na VGA monitor nebo na HDMI monitor. K modulu je potřeba připojit moduly "DispVGA", "DispHDMI", "LCD320x240", "Base" a "KeyPad". Software konzole PicoPadPGA je založen na knihovně PicoLibSDK (linky: www, GitHub), ale v současnosti software pro konzoli PicoPadPGA není ještě připraven.

Konzole PicoPadPGA sestavená z modulů BarePi:

### PicoPad

Modul "PicoPad" slouží k sestavení herní konzole PicoPad. Modul Pico doporučuji neletovat do modulu napevno, ale použít dutinkové lišty, aby byla možná snadná výměna mezi moduly Pico 1, Pico 2 (PicoPad 2) a Pimoroni Pico Plus 2. K modulu je potřeba připojit moduly "Base", "LCD320x240" a "KeyPad". Konzole PicoPad v knihovně PicoLibSDK, kde najdete i ukázkové aplikace: www, GitHub.

Původní konzole PicoPad používá monofonní zvuk na portu GPIO14. V modulu "PicoPad" je původní zvuk z GPIO14 veden na PWM_L, zvuk ze standardních programů tedy uslyšíte v levém kanálu. Na portu GPIO15 je možný výstup pravého kanálu stereofonního zvuku. Je ovšem nutné programy z PicoPad upravit pro tuto možnost. Pro přehrávání MP3 hudby můžete použít program MP3_1514, který je již upraven pro přehrávání zvuku přes porty GPIO15/GPIO14.

Konzole PicoPad sestavená z modulů BarePi:

Schéma zapojení konzole PicoPad:

### PicoPadHSTX

Modul "PicoPadHSTX" slouží k sestavení herní konzole PicoPadHSTX, osazená modulem "Pico 2" nebo "Pimoroni Pico Plus 2". K modulu je potřeba připojit moduly "DispVGA", "DispHDMI", "Base" a "KeyPad". Ve zvuku může být znatelný zvýšený šum, z důvodu zvýšené zátěže interního stabilizátoru kvůli generování obrazu. U modulů s vyšší dimenzí zátěže stabilizátoru (jako má Pimoroni Pico Plus 2) je šum menší. Pro snížení šumu doporučuji ponechat stabilizátor v modulu "Base" aktivní, tím se posílí interní stabilizátor modulu Pico 2. Jiná možnost je použít aktivní PWM filtr s filtrovaným napájecím napětím. Konzole PicoPadHSTX v knihovně PicoLibSDK, kde najdete i ukázkové aplikace: www, GitHub.

Konzole PicoPadHSTX sestavená z modulů BarePi:

Schéma zapojení konzole PicoPadHSTX:

### PidiBoy

Modul "PidiBoy" je určený k sestavení herní konzole PidiBoy, s procesorem CH32V006F8P6 a výstupem na OLED displej 128x64. K modulu je potřeba připojit moduly "Base", "OLED128x64" a "KeyPad". Konzole PidiBoy v knihovně CH32LibSDK, kde najdete i ukázkové aplikace: www, GitHub.

Konzole PidiBoy sestavená z modulů BarePi:

Schéma zapojení konzole PidiBoy:

### PidiMet

Modul "PidiMet" slouží k sestavení univerzálního multimetru PidiMet. K modulu je potřeba připojit moduly "Base", "OLED128x64" a "KeyPad". Pro připojení měřicích vodičů je možné použít adaptér "PidiMetAdapter". Při konstrukci tohoto modulu upozorňuji, že některé součástky jsou příliš ztěsnané na sobě a špatně se letují - možná by bylo vhodnější desku mírně přeuspořádat, a také zvolit pro kondenzátory větší pouzdra. Firmware pro modul "PidiMet" naleznete v knihovně CH32LibSDK ve složce ch32\DEVICE\PidiMet www GitHub, nebo jako samostatný projekt www GitHub.

Multimetr PidiMet sestavený z modulů BarePi:

Schéma zapojení multimetru PidiMet:

### PidiMetAdapter

Modul "PidiMetAdapter" je adaptér pro připojení měřicích vodičů k modulu "PidiMet".

### PidiPad

Modul "PidiPad" slouží k sestavení herní konzole PidiPad, s procesorem CH32V006E8R6 a výstupem na VGA monitor. K modulu je potřeba připojit moduly "DispVGA", "Base" a "KeyPad". Pokud nepoužijete krystal 25 MHz, procesor si zvolí RC oscilátor s nižší přesností - konzole bude stále použitelná, ale VGA obraz se bude mírně vlnit a třást. Z toho důvodu je krystal umístěn v objímce, aby ho bylo možné vyjímat a testovat provoz bez krystalu. Konzole PidiPad v knihovně CH32LibSDK, kde najdete i ukázkové aplikace: www, GitHub.

Doporučení: Výstup obrazu na VGA monitor představuje pro zdroj velké proudové rázy. Zvažte ještě doplnění tantalového kondenzátoru do napájení procesoru, jinak se procesor může nacházet na hranici stability.

Konzole PidiPad sestavená z modulů BarePi:

Schéma zapojení konzole PidiPad:

### SumoPad

Modul "SumoPad" slouží k sestavení herní konzole SumoPad. K modulu je potřeba připojit moduly "DispVGA", "LCD320x240", "Base" a "KeyPad". Srdcem modulu je procesor CH32V208RBT6. Vzhledem k obtížnosti jeho letování (a také kvůli vyšší ceně) nemusí být procesor naletován přímo do desky modulu, ale může být přiletován na adaptéru LQFP-64, aby bylo možné procesor vyměňovat a používat i v jiných modulech. Výstup obrazu je možný buď na externí monitor VGA, nebo na interní displej LCD320x240 - v závislosti na tom, zda je do modulu zasunut adaptér "DispVGA" nebo ne. Procesor je řízen krystalem 24MHz, namísto doporučeného krystalu 32MHz - z důvodu lepší dostupnosti krystalu. Procesor lze s krystalem 24MHz používat běžným způsobem, liší se pouze v tom, že nelze používat rozhraní Ethernet a Bluetooth - ale to v tomto modulu není stejně k dispozici. Krystal by bylo možné změnit na doporučený 32MHz, v tom případě se musí v software upravit nastavení PLL modulu, případně do firmware doplnit automatickou detekci frekvence krystalu.

Software konzole SumoPad je založen na knihovně CH32LibSDK (linky: www, GitHub), ale v současnosti software pro konzoli SumoPad není ještě připraven.

### TinyJoypad

Modul "TinyJoypad" je určen k řízení herní konzole "Tiny Joypad", podle návrhu (c) Daniel C (Electro L.I.B). Modul obsahuje procesor ATtiny85. Program se do procesoru nahrává v programátoru, proto je vhodné pro procesor použít DIL objímku. K modulu je potřeba připojit moduly "Base", "OLED128x64" a "KeyPad".

Konzole Tiny Joypad sestavená z modulů BarePi:

Schéma zapojení konzole Tiny Joypad:

### TweetyBoy

Modul "TweetyBoy" je určen k sestavení herní konzole TweetyBoy. K modulu je potřeba připojit moduly "LCD160x80", "Base" a "KeyPad". Modul je řízen procesorem CH32X035G8R6. Konzole TweetyBoy v knihovně CH32LibSDK, kde najdete i ukázkové aplikace: www, GitHub.

Konzole TweetyBoy sestavená z modulů BarePi:

Schéma zapojení konzole TweetyBoy:

### Zero

Modul "Zero" je nejvyšší typ procesorového modulu ve stavebnici BarePi. Obsahuje modul Raspberry Zero 1 nebo Raspberry Zero 2. Pro snadnou výměnu proto doporučuji modul osadit raději konektorem s dutinkovou lištou, namísto naletování natvrdo přes pinovou lištu. Na rozdíl od ostatních modulů tento modul obsahuje USB konektor pro napájení a microSD kartu, může být tedy provozován i samostatně, bez ostatních modulů. Pro výstup PWM zvuku může být potřeba připojit modul "Base" (doporučuji v modulu "Base" odpojit propojkou interní stabilizátor). Pro ovládání her může být potřeba připojit modul "KeyPad". Minimalistickou verzí herní konzole je ZeroTiny - při použití modulů stavebnice odpovídá spojení modulů "Zero", "Base" a "KeyPad". Software pro modul "Zero" využívá knihovnu PiLibSDK, kde můžete najít i ukázkové aplikace: www, GitHub.

Konzole ZeroTiny sestavená z modulů BarePi:

Schéma zapojení konzole ZeroTiny:

## Displeje

### DispHDMI

Modul "DispHDMI" je modul pro výstup obrazu na displej s HDMI rozhraním. Nejedná se o samostatný modul se sběrnicí, ale o pomocný modul připojitelný k některým procesorům pomocí konektoru s pinovou lištou 2x10 pinů. Konektor obsahuje signály pro výstup jak na HDMI displej, tak na VGA displej. Kromě toho obsahuje i signál DISP_SEL sloužící k detekci, zda je do konektoru zasunut modul DispHDMI, DispVGA nebo je konektor ponechán volný. Podle toho může dojít k volbě interface pro HDMI displej, VGA displej nebo interní LCD displej.

Modul přivádí na konektor displeje i signály HOTPLUG, SCL a SDA. V současnosti žádný modul tyto signály nepoužívá. Pozor na použití signálů SCL a SDA - u většiny monitorů jsou signály připojeny přes pull-up rezistory na napětí +5V, což může být nebezpečné pro obvody pracující s úrovněmi 3,3V.

### DispVGA

Modul "DispVGA" je modul pro výstup obrazu na displej s VGA rozhraním. Nejedná se o samostatný modul se sběrnicí, ale o pomocný modul připojitelný k některým procesorům pomocí konektoru s pinovou lištou 2x10 pinů. Konektor obsahuje signály pro výstup jak na HDMI displej, tak na VGA displej. Kromě toho obsahuje i signál DISP_SEL sloužící k detekci, zda je do konektoru zasunut modul DispHDMI, DispVGA nebo je konektor ponechán volný. Podle toho může dojít k volbě interface pro HDMI displej, VGA displej nebo interní LCD displej.

### ExtDisp

Modul "ExtDisp" je určen k zachytávání signálů pro LCD displej s řadičem ST7789 a s rozlišením 320x240 pixelů, a jeho zobrazení na VGA nebo HDMI monitoru. Volba monitoru je určena tím, zda je do konektoru displeje zasunut DispVGA adaptér nebo DispHDMI adaptér. Firmware pro modul "ExtDisp" naleznete v knihovně PicoLibSDK ve složce !Pico\Module, soubor ExtDisp0.UF2 (verze 0 s modulem Pico): www, GitHub.

Modul ExtDisp začleněný do konzole PicoPad:

Schéma zapojení původního adaptéru ExtDisp verze 0 (s modulem Pico):

### LCD16x2

Modul "LCD16x2" je textový LCD displej DM1602A se 2 řádky po 16 znacích a s řadičem HD44780. Modul obsahuje procesor CH32V002A4M6, který slouží k řízení displeje a ke komunikaci s hlavním procesorem přes sběrnici I2C. Pomocnou funkcí procesoru je generování předpětí 5V pro LCD displej. Pomocí tlačítek V0_DN a V0_UP lze řídit úroveň napětí pro předpětí, a tím i kontrast LCD displeje. Pomocí propojky "Backlight" lze zapnout nebo vypnout podsvícení displeje.

### LCD160x80

Modul "LCD160x80" je grafický barevný displej 0.96" s rozhraním SPI, s rozlišením 160x80 a řadičem ST7735S. Modul obsahuje volitelně procesor CH32V002J4M6, ale není nutné ho použít, slouží pouze k identifikaci připojení modulu ke sběrnici. K jednodušší identifikaci připojení displeje slouží též volitelně rezistor R1, připojený mezi signály LCD_RE a LCD_CS. Pomocí letovacích propojek lze zvolit, zda se použije signál pro podsvícení displeje ze sběrnice, nebo zda ho bude generovat procesor v modulu. Může se stát, že některý procesorový modul nebude umět generovat nastavitelný jas podsvícení, v tom případě může být vhodnější generovat podsvícení v modulu displeje.

### LCD320x240

Modul "LCD320x240" je grafický barevný displej 2.0" s rozhraním SPI, s rozlišením 320x240 a řadičem ST7789. Modul obsahuje volitelně procesor CH32V002J4M6, ale není nutné ho použít, slouží pouze k identifikaci připojení modulu ke sběrnici. K jednodušší identifikaci připojení displeje slouží též volitelně rezistor R1, připojený mezi signály LCD_DC a LCD_CS. Pomocí letovacích propojek lze zvolit, zda se použije signál pro podsvícení displeje ze sběrnice, nebo zda ho bude generovat procesor v modulu. Může se stát, že některý procesorový modul nebude umět generovat nastavitelný jas podsvícení, v tom případě může být vhodnější generovat podsvícení v modulu displeje.

### LED12

Modul "LED12" obsahuje 12-místný displej ze 7-segmentových LED číslicovek. Je řízen procesorem CH32V006E8R6, který komunikuje s hlavním procesorem přes I2C sběrnici. Při konstrukci doporučuji umístit přes displej červené plexisklo, které zajistí dobrý kontrast zobrazeného údaje i při denním světle.

### OLED128x64

Modul "OLED128x64" je černobílý OLED displej 0.96" s rozhraním I2C, s rozlišením 128x64 a řadičem SSD1306. Modul lze osadit dvěma typy OLED displejů, s různým pořadím pinů. Displej můžete zasunout do horní nebo dolní pozice dutinkové lišty, podle požadovaného pořadí pinů. Z toho důvodu existují i dvě různé definice předního panelu modulu. Ve skutečnosti můžete použít jenom jeden panel, potištěný na obou stranách, kdy zadní strana je natištěná "vzhůru nohama". Použijete potom tu stranu panelu, která souhlasí s pozicí použitého displeje.

## Klávesnice

### CalcKey

Modul "CalcKey" je klávesnice určená pro kalkulačky. Rozložení tlačítek odpovídá rozložení kalkulačky ET-58, která je klonem kalkulačky TI-58. Použijete-li jinou kalkulačku, můžete potřebovat jiné popisky kláves. Masku s jinými popiskami můžete vyrobít například tak, že ji natisknete na tvrdý papír, přelepíte povrch izolepou (pro lepší odolnost proti otěru) a otvory pro tlačítka vyrazíte průbojníkem na kůži.

### KeyPad

Modul "KeyPad" je základní jednoduchá klávesnice, sloužící především k ovládání her. Obsahuje 9 tlačítek - směrové šipky, hlavní akční tlačítko "A", vedlejší akční tlačítko "B", pomocné tlačítko "X", tlačítko ukončení "Y" a tlačítko alternativního významu kláves "ALT". Tlačítka slouží k přímému čtení stavu s využitím pull-up rezistorů, při stisku se spojí se zemí GND. Signál pro tlačítko "ALT" může sloužit současně jako zdroj hodinového signálu, proto je tlačítko připojeno přes ochranný rezistor 1K0.

### MiniKey

Modul "MiniKey" je minimalistická alfanumerická klávesnice. Obsahuje celkem 48 tlačítek, z toho 9 tlačítek odpovídá tlačítkům klávesnice "KeyPad" s přímým přístupem k tlačítkům, zbylých 39 tlačítek je multiplexovaných procesorem CH32V002F4P6, v matici 6x7 tlačítek.

Miroslav Němeček

<< Zpět