Cyberdeck

Tento ručně vyrobený cyberdeck je navržen jako odolný, kompaktní a plně funkční mobilní systém inspirovaný postapokalyptickou estetikou.

💾 Srdcem cyberdecku je Raspberry Pi 4 Model B (4GB), doplněný o 120GB SSD. Napájení zajišťují tři 10Ah Li-Pol baterie (111Wh).
🖥 Hlavní ovládání je přes 7″ LCD dotykovou obrazovku, vestavěnou kompaktní klávesnici a přehledný ovládací panel.
⚡ Cyberdeck je vybaven řadou vstupů a výstupů pro rozšíření včetně zdířek pro regulovaný zdroj (1,2-39V), univerzálních I/O zásuvek s podporou I2C, 1-Wire a dalších rozhraní, osciloskopu a funkčního generátoru.
🚀 Cílem je vytvořit vysoce odolné a funkční zařízení, které zvládne extrémní podmínky a umožní i práci v terénu. Základní koncept je jasný – nezničitelný cyberdeck s dlouhou životností a širokými možnostmi připojení.

O něčem takovém jsem přemýšlel už dávno, přenosný univerzální systém na kterém můžu kdykoli a kdekoli provádět prototypování, ladění, měření, řízení, programování, a vůbec všechny ty super věci. A mimo jiné bude sloužit i pro paření starých her – k tomu slouží DOSbox.

Základní otázkou byl výběr pouzdra které bude sloužit jako ochranný obal a zároveň držet všechno pohromadě. Mělo to být něco dostatečně pevného a robustního, nejlépe voděodolného, ale zase ne moc velkého. Jako rozumný kompromis jsem nakonec vybral plastový vodotěsný kufr Tactix.

Technické parametry:

  • Rozměry (š x d x v): 345 x 295 x 154 mm
  • Materiál: plast.
  • Voděodolný: IP 65
  • Předřezaná pěnová výplň.
  • Možnost uzamknutí pomocí visacích zámků.

Vnitřní rozměry:

  • Šířka: 315 mm.
  • Délka: 235 mm.
  • Hloubka spodní části: 100 mm.
  • Hloubka horní části: 30 mm.

Kufr je opravdu masivní a vypadá že něco vydrží. Tím by byl daný základ do kterého je potřeba naskládat všechno potřebné.

Další na řadě bylo osazení víka. Po rozměřování, prohrabání zásob a rozhodování co tam všechno dát bylo rozhodnuto:

Monitor jsem přilepil oboustrannou páskou 3M VHB, GPS modul připáskoval ke kabelům a pojistil tavným lepidlem a zbytek přišrouboval nebo přilepil ke krycímu panelu. Ten je vyřezaný z 3mm překližky. Ovládací prvky osciloskopu jsem musel vybavit novými hmatníky (upravené šrouby M8) a posuvníky (6mm kolíky s vnitřním závitem) a na konektor pro připojení nasadit úhlovou redukci.

Panel drží na několika distančních sloupcích – 6mm kolíky s vnitřním závitem zalisované a zalepené do převrtaných šestihranných matek – přilepených do kufru lepidlem Mamut. Rámečky kolem displejů zakrývající nerovnosti a kraje jsou z izolační pásky. Svazek kabelů je omotaný spirálovým chráničem.

Tím bylo víko dokončené.

Před začátkem osazování těla kufru bylo potřeba vyvrtat jediné díry ve vnějším obalu a to 4 díry pro konektory v boční straně.

Použil jsem vodotěsné konektory a ještě je pojistil silikonem. Z leva:

Teď už bylo na řadě osazení vnitřku těla.

Jako hlavní mozek slouží RPi 4B s 4GB RAM s chladící krabičkou a 5V ventilátorem řízeným z RPi jednoduchým tranzistorovým spínačem.

Pro uložení systému a dat je použitý 120GB USB SSD disk a pro rozšíření USB 3.2 HUB a USB 2.0 HUB s vypínači. Jako vstupní zařízení je použitá nízká USB klávesnice a bezdrátová USB myš. Případně lze využít dotykový displej nebo připojit USB retro SNES ovladač.

Pro připojení k síti lze použít kabel se standartním RJ45 konektorem. Bohužel použití chladící krabičky odstínilo wifi v RPi která se tím stala nepoužitelnou, proto jsem pořídil USB wifi adaptér který problém vyřešil.

Zdroj energie tvoří tři Li-pol články zapojené do série přes ochranný BMS obvod, které poskytují 111Wh energie při 11,1V.

Napájení všech 5V zařízení zajišťuje DC-DC měnič s výkonem až 300W.

DC měnič s původními obvody pro měření napětí a proudu

K monitorování stavu akumulátoru tj. napětí a poskytovaného proudu jsem použil obyčejný napěťový dělič a proudový modul ACS712. Bohužel se ukázalo že přesnost je silně nevyhovující a tak jsem je nahradil modulem INA219 který monitoruje napětí i proud a odesílá data po I2C.

Pro monitorování systému jsem použil Arduino mega které načítá hodnoty, zobrazuje je na displeji, ovládá vizuální indikátor a řídí ventilátor.

Na displeji se zobrazují následující informace:

  • aktuální čas a datum – načtené z GPS
  • aktuální pozice – načtená z GPS
  • počet GPS satelitů – načtený z GPS
  • přesnost GPS – načtená z GPS
  • napětí, proud, výkon a % – stavu akumulátoru
  • teplota akumulátoru, kufru, venkovní a CPU
  • využití CPU a RAM RPi
  • otáčky ventilátoru

Kapacita akumulátoru v % je odhadnutá z napění a výkon ve W je vypočítaný z napětí a proudu. Teplota CPU a využití CPU a RAM jsou načítané z RPi po sériové lince. Teploty akumulátorů, v kufru a vzduchu venku monitorují čidla DS18B20 po 1-wire sběrnici. Ventilátor je použitý ns85b01-17f11 ze starého notebooku, otáčky se řídí pomocí PWM podle teploty a načítají přímo z ventilátoru.

Vizuální indikátor je 8ks Neopixel RGB LED diod které se rozsvěcí podle aktuálního stupně nebezpečí který je vypočítaný ze stavu akumulátoru, teplot a vytížení CPU a RAM.

Hlavní panel je opět z 3mm překližky a připevněný na distančních sloupcích ve stejném stylu jako panel ve víku (akorát ve větším).

Na panelu najdeme tyto komponenty:

  • hlavní vypínač -podsvícený – odpojuje akumulátor
  • vypínač na RPi – s indikující LED
  • vypínač na LCD RPi – s indikující LED
  • vypínač na podsvícení systémového LCD – s indikující LED
  • vypínač na I/O Arduino – s indikující LED
  • vypínač na regulovaný zdroj – s indikující LED
  • vypínač na osciloskop – s indikující LED
  • vypínač na generátor funkcí – s indikující LED
  • Generátor funkcí XR2206
  • regulovaný zdroj s voltmetrem – 1,2-39,2V 3A
  • I/O konektory
  • 3,5″ audio jack z RPi
  • HDMI konektor pro druhý monitor RPi
  • klávesnici
  • banánkové zdířky na výstupu zdroje a generátoru
  • vizuální indikátor
  • výstup USB 3.1 HUBu
  • výdech ventilátoru

Pro možnost jednoduchého řízení a monitorování slouží zabudované Arduino UNO s vyvedenými piny na boční 9-pinový konektor a panelové I/O konektory. Připojené je přes vypínač k RPi pro možnost programování v terénu. Napájení je vedené zvlášť pro funkci i bez RPi.

zapojení I/O konektorů

I/O konektory jsou zapojené podobně. Napájení je stejné jen levý konektor má DATA připojená na A0 (analogový vstup) a pravý konektor přes pull-up rezistor 4k7 na D9 (1-wire sběrnice).

Na boční 9-pinový konektor jsou vyvedené sběrnice I2C a SPI a pár analogových vstupů. Zapojený je následovně:

  • 1- +5V
  • 2- D12 – MISO (SPI)
  • 3- D13 – SCK (SPI)
  • 4- A5 – SCL (I2C)
  • 5- D10 – SS (SPI) – PWM
  • 6- D11 – MOSI (SPI) – PWM
  • 7- D3 – INT1 – PWM
  • 8- GND
  • 9- A4 – SDA (I2C)

Nabíjecí konektor je připojený přímo na vstup BMS která si řídí balancování a ochranu akumulátorů. Zapojený je následovně:

K nabíjení používám 2A nabíječku s připojenou redukcí, což dává cca 5h nabíjení.

nabíječka s redukcí
Vnitřní „uspořádání“
hlavní panel zespodu

SW výbava

OS pro RPi je originální Raspberry Pi OS. Ve kterém mám nainstalované tyto programy:

  • Arduino IDE
  • DOSbox
  • Chromium
  • Python
  • skript pro odesílání využití CPU a RAM a teploty CPU do systémového Arduina
  • skript pro přepínání audio výstupu – HDMI/Jack

A ještě pár fotek

Zobrazovací panel
ovládací panel
DOSbox s M602
Klasika DOOM2

Projekt a článek byl vytvořen s podporou ChatGPT.

5 komentářů u „Cyberdeck“

  1. Vypadá to jako kokpit 737 – 800, chybí tomu už jen solární nabíjecí panel. 🙂
    Skvělá práce. A dovedu ocenit i investici času do prezentace.
    Zdravím
    Pavel

  2. Měl sis do toho ještě zabudovat Meshtastic komunikaci, aby to bylo dostatečně post-apo 🙂 Konektivita je důležitá 😉

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *