Menu

Email: SakulRaider@seznam.cz

Servery:

Dnes návštěv: 189  On-line: 1

Elektronika

Konstrukce Ostatní

 - RaspberryPi IO Shield v1.0

Ulož.to - sdílejte snadno data

Sponzor této konstrukce:

Tuto konstrukci sponzoroval výrobce nejen plošných spojů PCBWay:

RaspberryPi IO Shield v1.0 (EA)

Protože se jedná o sponzorovanou konstrukci je její zveřejnění prakticky souběžné se zveřejněním pro mé patrony. Současně je tato konstrukce dostupná i na webu PCBWay v sekci sdílených projektů. Odtud si velice snadno můžete objednat výrobu například PCB a samozřejmě tam naleznete veškerou dokumentaci.

Tento shield pro RaspberryPi vznikl z důvodu potřeby ovládání dalších periferií na 3D tiskárně, za použití tiskového serveru. Většinou totiž běží tiskový server na malém počítači (RaspberryPi), který disponuje i vstupně výstupními porty (GPIO), které je možno použít pro ovládání periferií tiskárny. V dnešní době prakticky všechny tiskové servery (Repetier server, OctoPrint, Klipper), umožňují jejich ovládání. Nicméně aby bylo možné tyto GPIO použít je nutné je vybavit další elektronikou a to hlavně posílit jejich proudové zatížení a zvětšit jejich napěťové úrovně. A právě k tomu je tento shield určený. Kromě samotného rozšíření GPIO obsahuje i vestavěný DC/DC měnič, kterým je možno přímo napájet připojený počítač (RaspberryPi), případně další periferie. Vše je uzpůsobeno jak mechanickým, tak elektrickým provedením, aby tento shield pasoval přímo na RaspberryPi a současně umožňoval připojení dalších modulů, jako je například TFT dotykový displej. Z toho důvodu jsou některé GPIO vynechány a shieldem pouze prochází skrze oboustranný konektor 40pin. Toto řešení umožňuje vytvořit velmi malý, ale zároveň poměrně vybavený tiskový server. Pokud pak Vaše tiskárna nedisponuje například ovládáním osvětlení, nebo senzorem filamentu, může tyto funkce převzít právě tiskový server bez toho, aby bylo nutné jakkoli zasahovat do stávající elektroniky tiskárny a to včetně jejího firmware. Pokud používáte pro řízení tiskárny firmware Klipper (důrazně doporučuji), je integrace tohoto shieldu opravdu jednoduchá.

Technické specifikace:

Napájecí napětí                                              8-30V DC (DC konektor 5,5 x 2,1mm)
Počet opticky oddělených vstupů                  3x
Počet výkonových výstupů                            5x
Proud z výkonového výstupu                        1A na každý výstup (pouze při volbě 24V)
Volitelné napětí výkonového výstupu             12V (max 1A všech 5) / napájecí napětí (24V)
Napájecí výstup 5V jištěný pojistkou              max 1A
Výstup pro LED pásek WS2812B                 5V / max 1A (max 20 LED)
Zvuková signalizace                                       Piezo měnič
I2C rozhraní                                                    2x konektor (3,3V logika)
UART                                                              2x konektor (1x 5V a 1x 3,3V logika)
Universální OI port                                          1x 3,3V IO port (například OneWire)
Připojení k RaspberryPi                                  40pinový konektor (průchozí)
Podporované RaspberryPi                             ZeroW, Zero 2W, 3, 3B, 3B+, 4B
Napájení RaspberryPi                                     Přes 40pinový konektor 5,1V/2,5A

Zapojení shieldu:

Jak už jsem v úvodu naznačil, tato deska se zasouvá do 40 pinového konektoru RaspberryPi. Její provedení přesně kopíruje počítače RaspberryPi 3, 3B, 3B+, 4B, ale je možno ji použít i s variantou ZERO. V takovém případě však doporučuji výkonnější variantu ZERO 2W, které utáhne bez problému libovolný tiskový server a to včetně TFT dotykového displeje. Pro připojení je použit oboustranný konektor, takže lze nad tuto desku připojit nějakou další. To se právě výborně hodí při použití s TFT displejem. Z toho důvodu jsou některé vývody tímto shieldem nepoužité, aby nekolidovaly s displejem.
Shield je rozdělen do dvou částí. Jednou je napájecí DC/DC měnič a druhou pak samotné výkonové rozšíření GPIO vývodů počítače. Jako DC/DC měnič byl použit obvod XL4004, který je poměrně výkonný a vyžaduje minimum externích součástek. Výstupní napětí je možno lehce regulovat kolem hodnoty 5V, přičemž maximálně jde nastavit 5,2V, což by mělo být ještě bezpečné pro připojený počítač. Nicméně doporučuji při oživování, nastavit hodnotu na 5,1V. Díky tomuto měniči je pak možno celý tiskový server napájet přímo ze zdroje 3D tiskárny nebo libovolného napájecího adaptéru 8-30V. Poměrně často se totiž stává, že pokud je Raspberry napájeno pomocí microUSB, je na kabelu a konektoru poměrně značný úbytek napětí a počítač pak může pracovat nestabilně. Tento problém je tedy tímto měničem eliminován. Současně se dá napětí 5V ještě použít pro napájení například chytrých LED pásků WS2812B, kde může být připojeno až 20 LEDek. Tento výstup napětí je pak jištěn vratnou pojistkou (1A), aby v případě jakékoli poruchy (zkratu) na LED pásku došlo k jeho odpojení bez toho, aby to ohrozilo funkci počítače. Případně je možno připojit ještě do samostatné svorky X5 další 5V zařízení. I tento výstup napětí je chráněn vratnou pojistkou (1A).
Druhou částí je pak samotné ovládání GPIO z počítače. Proto jsou na desce 3 opticky oddělené vstupy použitelné například pro dodatečné senzory filamentu nebo koncové spínače. Pro výkonové ovládání je pak k dispozici pětice výstupů, kterým můžeme nastavit výstupní napětí 12V nebo 24V respektive napětí použité pro napájení (konektor US2). O napájení 12V se stará malý DC/DC měnič s výstupním proudem max 1A. Proto je nutné dbát toho, aby tento proud nebyl překročen. Pokud je výstupní napětí nastaveno na 24V je možno z každého výstupu odebírat proud 1A. Samozřejmě je možno jednotlivá napětí kombinovat a nastavit například na 2 výstupy napětí 12V a na zbylé 3 výstupy 24V. Pak každý 12V výstup může poskytovat proud 0,5A.
No a poslední takovou menší částí jsou komunikační sběrnice. Máme k dispozici 2 konektory I2C a 2 konektory UART, přičemž jeden konektor UART používá 5V logiku včetně napájení a druhý 3,3V logiku včetně napájení. To se může hodit, pokud potřebujeme připojit například 8bitovou řídící desku s 5V logikou nebo 32bitovou desku s 3,3V logikou, bez toho abychom museli tyto signály upravovat. Vše je už vyřešeno na desce Shieldu. Konektor označený OneWire lze použít jako univerzální vstupně/výstupní a lze k němu připojit například teplotní čidlo DS18B20.
Do zbylé mezery na PCB se mi podařilo, ještě vměstnat piezo měnič, takže lze použít i zvukovou signalizaci.

Schéma zapojení:

Obrázek v plném rozlišení je součástí elektronické dokumentace.
 

Schéma osazení:


Obrázek v plném rozlišení je součástí elektronické dokumentace.

Oživení a montáž shieldu:

Při oživování musíme pouze nastavit výstupní napětí DC/DC měniče trimrem TM1 na hodnotu 5,1V. Tím je veškeré oživení hotovo.
I samotná montáž by neměla činit žádné potíže, neb shield se pouze zasune do konektoru na RaspberryPi. Doporučuji použít distanční sloupky (M2,5), které shield zafixují ve správné pozici.

Krabička(y):

Pro jednotlivé varianty sestav vzniknou modely krabiček, které bude možno vytisknou a celou sestavu tak vhodně zakrytovat. Proto sledujte tento projekt i v diskusi na níž najdete odkaz níže.

Význam jednotlivých konektorů:

US2                            - Napájení Shieldu 8-30V (DC konektor 5,5 x 2,1mm) střední kolík +
 
X1                              - Výkonové výstupy
X1-1                           Kladné napětí (12V max 200mA / 24V max 1A)
X1-2                           GND (spínané) – GPIO05
 
X1-3                           Kladné napětí (12V max 200mA / 24V max 1A)
X1-4                           GND (spínané) – GPIO06
 
X1-5                           Kladné napětí (12V max 200mA / 24V max 1A)
X1-6                           GND (spínané) – GPIO13
 
X1-7                           Kladné napětí (12V max 200mA / 24V max 1A)
X1-8                           GND (spínané) – GPIO19
 
X1-9                           Kladné napětí (12V max 200mA / 24V max 1A)
X1-10                         GND (spínané) – GPIO26
 
X3                              - Opticky oddělené vstupy
X3-1                           Anoda (+ 3-24V) – GPIO12
X3-2                           Katoda (spojeno s GND)
 
X3-3                           Anoda (+ 3-24V) – GPIO16
X3-4                           Katoda (spojeno s GND)
 
X3-5                           Anoda (+ 3-24V) – GPIO20
X3-6                           Katoda (spojeno s GND)
 
X4                              - LED pásek WS2812B
X4-1                           GND
X4-2                           Datová komunikace do pásku WS2812B – GPIO27
X4-3                           Napájení pásku +5V/1A
 
X5                              - Výstup napětí 5V/1A
X5-1                           Výstup 5V/1A
X5-2                            GND
 
OneWire                    - Universální IO port 3,3V
PS1                             GND
PS2                             GPIO21
PS3                             3,3V (max 50mA)
 
I2C 3V3                     - Komunikační rozhraní I2C (3,3V)
PS1                             GND
PS2                             3,3V (max 50mA)
PS3                             SCL
PS4                             SDA
 
UART 5V                  - Komunikační rozhraní UART (5V)
PS1                             GND
PS2                             TXD – GPIO14
PS3                             RXD – GPIO15
PS4                             5V (max 100mA)
 
UART 3V3                - Komunikační rozhraní UART (3,3V)
PS1                             GND
PS2                             TXD – GPIO14
PS3                             RXD – GPIO15
PS4                             3,3V (max 50mA)
 
JP1                             - Volba výstupního napětí pro X1-1
JP1-1/2                        12V
JP1-2/3                       24V (napětí vstupu US2)
 
JP2                             - Volba výstupního napětí pro X1-3
JP2-1/2                       12V
JP2-2/3                       24V (napětí vstupu US2)
 
JP3                             - Volba výstupního napětí pro X1-5
JP3-1/2                       12V
JP3-2/3                       24V (napětí vstupu US2)
 
JP4                             - Volba výstupního napětí pro X1-7
JP4-1/2                       12V
JP4-2/3                       24V (napětí vstupu US2)
 
JP5                             - Volba výstupního napětí pro X1-9
JP5-1/2                       12V
JP5-2/3                       24V (napětí vstupu US2)

Seznam použitých komponent:

C1       4x        100nF                         C-EUC1206                           C1206
C2                   100nF                         C-EUC1206                           C1206
C3       1x        33nF                           C-EUC1206                           C1206
C4       1x        220uF/35V                 CPOL-EU153CLV-0605      153CLV-0605
C5       1x        330uF/16V                 CPOL-EU153CLV-0605      153CLV-0605
C6                   100nF                         C-EUC1206                           C1206
C7       1x        100uF/35V                 CPOL-EU153CLV-0605      153CLV-0605
C8                   100nF                         C-EUC1206                           C1206
C9       1x        100uF/25V                 CPOL-EU153CLV-0605      153CLV-0605
D1                   MBRD1045               50WQ10FN                           TO-252-COMMON-PINS
DC1                R-78C12-1.0              R-78C12-1.0                          SIP3
F1        2x        SD110-08                   1812L                                     1812L
F2                   SD110-08                   1812L                                     1812L
JP1      5x        JP2E                           JP2
JP2                  JP2E                           JP2
JP3                  JP2E                           JP2
JP4                  JP2E                           JP2
JP5                  JP2E                           JP2
L1                   33uH/5A                    DR127                                               DR127
LED1  5x        LED                           CHIPLED_1206
LED2              LED                           CHIPLED_1206
LED3              LED                           CHIPLED_1206
LED4              LED                           CHIPLED_1206
LED5              LED                           CHIPLED_1206
OK1    3x        SFH618A-3X007       SFH618A-3X007                  SMD4-7
OK2                SFH618A-3X007       SFH618A-3X007                  SMD4-7
OK3                SFH618A-3X007       SFH618A-3X007                  SMD4-7
Q1       6x        MOSFET-NREFLOW                                              SOT23
Q2                   MOSFET-NREFLOW                                              SOT23
Q3                   MOSFET-NREFLOW                                              SOT23
Q4                   MOSFET-NREFLOW                                              SOT23
Q5                   MOSFET-NREFLOW                                              SOT23
Q6                   MOSFET-NREFLOW                                             SOT23
R1       2x        2K2                            R-EU_R1206                         R1206
R2       4x        10K                            R-EU_R1206                         R1206
R3       6x        10R                             R-EU_R1206                         R1206
R4       6x        100K                          R-EU_R1206                         R1206
R5       8x        3K9                            R-EU_R1206                         R1206
R6                   10R                             R-EU_R1206                         R1206
R7                   100K                          R-EU_R1206                         R1206
R8                   3K9                            R-EU_R1206                         R1206
R9                   10R                             R-EU_R1206                         R1206
R10                 100K                          R-EU_R1206                         R1206
R11                 3K9                            R-EU_R1206                         R1206
R12                 10R                             R-EU_R1206                         R1206
R13                 100K                          R-EU_R1206                         R1206
R14                 3K9                            R-EU_R1206                         R1206
R15                 10R                             R-EU_R1206                         R1206
R16                 100K                          R-EU_R1206                         R1206
R17                 3K9                            R-EU_R1206                         R1206
R18                 10R                             R-EU_R1206                         R1206
R19                 100K                          R-EU_R1206                         R1206
R20                 3K9                            R-EU_R1206                         R1206
R21                 3K9                            R-EU_R1206                         R1206
R22                 3K9                            R-EU_R1206                         R1206
R23                 10K                            R-EU_R1206                         R1206
R24                 10K                            R-EU_R1206                         R1206
R25                 10K                            R-EU_R1206                         R1206
R26                 2K2                            R-EU_R1206                         R1206
R27     1x        1K                              R-EU_R1206                         R1206
SG1                F/CM12P                    F/CM12P                               F/CM12P
TM1                2K                              TRIMPOTTC33X                  TC33X
U$1                 XL4005                      XL4005                                  TO263-5L
U$2                 2.1MMJACKTHM    2.1MMJACKTHM                PJ-102A
U$3     4x        4_PIN_JST-XH         4_PIN_JST-XH                     4_PIN_JST-XH
U$4                 4_PIN_JST-XH         4_PIN_JST-XH                     4_PIN_JST-XH
U$5                 4_PIN_JST-XH         4_PIN_JST-XH                     4_PIN_JST-XH
U$6                 4_PIN_JST-XH         4_PIN_JST-XH                     4_PIN_JST-XH
U$7     1x        3_PIN_JST-XH         3_PIN_JST-XH                     3_PIN_JST-XH
X1                   AK550/10                  AK550/10
X2                   RASPI_BOARD_B  RASPI_BOARD_B+#_E4  RASPI_BOARD
X3                   AK550/6                    AK550/6
X4                   AK550/3                    AK550/3
X5                   AK550/2                    AK550/2

Instalace ve spojení s firmwarem Klipper:

Nyní si popíšeme jak tento shield zprovoznit pokud používáte firmware Klipper. Firmware Klipper se skládá v podstatě ze dvou částí. Samotný firmware běžící v řídící desce, jež ovládá 3D tiskárnu a aplikaci, která běží v řídícím počítači většinou RaspberryPi nebo podobném (OrangePi). Toto rozdělení umožňuje maximálně využít výpočetní výkon RaspberryPi a do řídící desky, která může být založena na 8bitovém MCU již posílá předpřipravené příkazy, které deska (MCU) pouze vykoná. Další velkou výhodou je možnost připojit k hlavnímu počítači (RaspberryPi) hned několik řídících desek, a tak rozšířit možnosti tiskárny. A jak jistě všichni víte samotný počítač RaspberryPi obsahuje hned několik GPIO, které jsou napojeny na tento shield. Takže se nabízí možnost je využít jako rozšíření ke stávající řídící desce. Z tohoto důvodu musíme na Raspberry ještě kromě samotného Klippru doinstalovat podporu MCU, které bude ovládat GPIO (o samotné instalaci Klippru se zde nebudu rozepisovat, ale můžete se podívat do diskuse ZDE). Takže se na to pojďme podívat. V první řadě pokud máte na RaspberryPi zprovozněn Klipper se připojte přes SSH a dále postupujte dle instrukcí:
 
cd ~/klipper/
sudo cp "./scripts/klipper-mcu-start.sh" /etc/init.d/klipper_mcu
sudo update-rc.d klipper_mcu defaults

Nyní musíme zkompilovat firmware pro MCU RaspberryPi:
cd ~/klipper/
make menuconfig

V sekci Micro-controler Archytecture vybereme Linux process a uložíme Q a Y.
 
sudo service klipper stop
make flash
sudo service klipper start


Nyní je podpora MCU z RaspberryPi nainstalována a již stačí definovat do konfiguračního souboru printer.cfg funkce pro tento MCU.
Část konfiguračního souboru tiskárny, kde jsou definované výstupy si můžete prohlédnout v PDF dokumentaci.

Nyní můžeme konfigurační soubor uložit a restartovat firmware. Následně už můžeme přes uživatelské rozhraní dané výstupy ovládat.


Pokud by se Vám nechtěl firmware spojit s MCU v RaspberryPi a hlásil, že nemůže najít cestu k sériovému portu na adrese: /tmp/klipper_host_mcu doporučuji RaspberryPi vypnout a zase zapnout. Pokud by problém dále přetrvával, můžete zkusit přidat uživatele pi do skupiny tty příkazem:
sudo usermod -a -G tty pi
 
Tímto bychom měli vyřešené ovládání výstupů, ale ještě si ukážeme jak použít vstupy například jako detektory filamentu. Opět ukázku konfigurace najdete v PDF souboru na konci článku.
V uživatelském rozhraní se nám to pak zobrazí nějak takto:

Samozřejmě je nutné mít na paměti, že vstupy mají otočenou logiku. To znamená, že v klidovém stavu jsou v LOG-1 a v momentě sepnutí přejdou do LOG-0. To je způsobeno použitím optočlenů na vstupech MCU. Nicméně logiku vyhodnocení je možno upravovat v konfigu přidáním znaku vykřičníku (!) před definici pinu: switch_pin: !host:gpio12.
 
To by mělo jako ukázka použití shieldu s firmwarem Klipper stačit. Pro další informace navštivte stránky s dokumentací pro tento firmware, kde se můžete dočíst více podrobností, které se do tohoto zjednodušeného návodu nevešli.
https://www.klipper3d.org/Overview.html

Použití s Repetier serverem:

Další možností je použití s Repetier serverem. Zde je zprovoznění mnohem jednodušší, ale na druhou stranu to neposkytuje tolik možností jako Klipper. Avšak pokud používáte tento server, vyžaduje zprovoznění pouze definování patřičných funkcí ve webovém rozhraní serveru. Opět pár informací je možno najít v diskusi ZDE včetně video návodu na mém YT:

​​


https://youtu.be/qEGrFefesb4

Použití s dalšími servery:

Samozřejmě toto není výčet všech použitelných serverů. Můžete použít například velmi oblíbený OctoPrint. Nicméně o tom se zde nebudu rozepisovat, neb ho sám nepoužívám, ale mohu Vás odkázat do mé diskuse, kde se pár věcí okolo tohoto serveru řešilo:
https://forum.sakul.cz/viewtopic.php?f=11&t=1156
Případně zde na můj Patreon, kde je kompletní článek s návodem jak tento server zprovoznit včetně TFT dotykového displeje a hned několika uživatelskými rozhraními:
https://www.patreon.com/posts/46703889

Závěrečné prohlášení:

Autor této konstrukce se zříká jakékoli odpovědnosti za chování této konstrukce a jakékoli škody, která může vzniknout použitím této konstrukce. Veškerou odpovědnost přebírá provozovatel zařízení.

Co znamená (EA / FINAL) v nadpisu konstrukce:

Jde o zkratku Early Access neboli předběžný přístup. Většina mých projektů začíná fází předběžného přístupu, kdy je daná konstrukce uvolněna (zveřejněna), ale stále nejde o finální provedení. Některé funkce nemusí být ještě integrovány, případně se v konstrukci mohou vyskytovat chyby. Nicméně již jde o použitelnou konstrukci, která se dále vyvíjí a zdokonaluje. V momentě, kdy uznám, že je již vše funkční a odladěné, přechází konstrukce do Finální fáze (označeno jako FINAL). Předem upozorňuji, že konstrukce zveřejněné v režimu EA nemusí nikdy přejít do verze FINAL a nelze reklamovat jejich funkcionalitu. Tím, že si tuto konstrukci pořídíte, zároveň stvrzujete, že jste seznámeni s aktuální funkcionalitou a případnými chybami, jež může konstrukce obsahovat a akceptujete je.

Technická podpora:

Veškerá podpora pro tuto konstrukci je řešena výhradně formou diskuse. Proto pokud máte jakýkoli dotaz týkající se této konstrukce, obracejte se do fóra:
https://forum.sakul.cz/viewtopic.php?f=10&t=48
https://forum.sakul.cz/viewtopic.php?f=10&t=1297

Donate (příspěvek/dar):

Pokud Vám tento manuál pomohl, zvažte možnost příspěvku libovolné částky. Právě díky třeba Vašemu příspěvku bude moci vzniknout nějaký další manuál nebo celá konstrukce. Přispět je možno na bankovní účet: 670100-2208863541/6210
Nebo na PayPal: SakulRaider@seznam.cz

Patreon:

Rozhodl jsem se, že všechny moje nové konstrukce (ale i staré), články, návody a další tvorba budou vždy jako první zveřejněny na mém Patreonu. Teprve až po nějakém čase přejdou na web a jiná umístění. To dává mým fanouškům možnost mě podpořit například zakoupením členství a tím mne motivovat k přidávání dalšího obsahu. Zpoplatněny (trvale) budou jen některé příspěvky (konstrukce, případně jejich části). Většina bude stále zdarma, nicméně dostupná až za nějaký čas.
Model publikace je takový, že každý nový příspěvek (většinou konstrukce nebo návod) bude zpoplatněn v nějakém členství. Tím bude exkluzivní pro všechny platící členy. Po nějakém čase přejde do bezplatného zveřejnění, například na mém webu nebo diskusi.

Sponzor této konstrukce:

Tuto konstrukci sponzoroval výrobce nejen plošných spojů PCBWay:

DOKUMENTACE:

Závěrem si zde můžete stáhnout veškerou dokumentaci.
DOWNLOAD
Diskusi pro tuto konstrukci najdete ZDE
 

Můj Youtube kanál:

fb-large.png, 5,8kB
Copyright © Resi-Design 2017 www.baratovestidos.com.
TOPlist