Top Banner
Raspberry Pi GPIO Štěpán Bechynský @stepanb
24

Raspberry Pi GPIO · raspberry pi gpio Štěpán bechynský ... 3.3 v 1 2 5 v gpio 2 i2c sda 3 4 5 v gpio 3 i2c scl 5 6 gnd gpio 4 7 8 uart tx gnd 9 10 uart rx ... 9 spi miso 21 22

Mar 16, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Raspberry Pi GPIO · raspberry pi gpio Štěpán bechynský ... 3.3 v 1 2 5 v gpio 2 i2c sda 3 4 5 v gpio 3 i2c scl 5 6 gnd gpio 4 7 8 uart tx gnd 9 10 uart rx ... 9 spi miso 21 22

Raspberry Pi GPIO

Štěpán Bechynský@stepanb

Page 2: Raspberry Pi GPIO · raspberry pi gpio Štěpán bechynský ... 3.3 v 1 2 5 v gpio 2 i2c sda 3 4 5 v gpio 3 i2c scl 5 6 gnd gpio 4 7 8 uart tx gnd 9 10 uart rx ... 9 spi miso 21 22

General-purpose input/output

● Obecné vstupně/výstupní rozhraní● Hodnoty 0/1, které odpovídají napětí podle

použité logiky● Jednotlivé konektory (pins) mohou mít speciální

funkci

Page 3: Raspberry Pi GPIO · raspberry pi gpio Štěpán bechynský ... 3.3 v 1 2 5 v gpio 2 i2c sda 3 4 5 v gpio 3 i2c scl 5 6 gnd gpio 4 7 8 uart tx gnd 9 10 uart rx ... 9 spi miso 21 22

3,3 V

Page 4: Raspberry Pi GPIO · raspberry pi gpio Štěpán bechynský ... 3.3 v 1 2 5 v gpio 2 i2c sda 3 4 5 v gpio 3 i2c scl 5 6 gnd gpio 4 7 8 uart tx gnd 9 10 uart rx ... 9 spi miso 21 22

Speciální funkce

● Digital● I2C

– Více sběrnic

– Vestavěný pull-up rezistor 1k8

● SPI– Dvakrát CE

– Další je třeba řešit manuálně

● PWM– Jeden HW PWM

● UART

Page 5: Raspberry Pi GPIO · raspberry pi gpio Štěpán bechynský ... 3.3 v 1 2 5 v gpio 2 i2c sda 3 4 5 v gpio 3 i2c scl 5 6 gnd gpio 4 7 8 uart tx gnd 9 10 uart rx ... 9 spi miso 21 22

Základní GPIO (původní desky)

3.3 V 1 2 5 V

GPIO 2 i2C SDA 3 4 5 V

GPIO 3 i2C SCL 5 6 GND

GPIO 4 7 8 UART Tx

GND 9 10 UART Rx

GPIO 17 11 12 PWM GPIO 18

GPIO 27 13 14 GND

GPIO 22 15 16 GPIO 23

3.3 V 17 18 GPIO 24

GPIO 10 SPI MOSI 19 20 GND

GPIO 9 SPI MISO 21 22 GPIO 25

GPIO 11 SPI SCLK 23 24 SPI CE0 GPIO 8

GND 25 26 SPI CE1 GPIO 7

Page 6: Raspberry Pi GPIO · raspberry pi gpio Štěpán bechynský ... 3.3 v 1 2 5 v gpio 2 i2c sda 3 4 5 v gpio 3 i2c scl 5 6 gnd gpio 4 7 8 uart tx gnd 9 10 uart rx ... 9 spi miso 21 22

Rozšíření GPIO (+ desky)

HAT ID EEPROM SDA 27 28 HAT ID EEPROM SCL

GPIO 5 29 30 GND

GPIO 6 31 32 GPIO 23

GPIO 13 33 34 GND

GPIO 19 35 36 GPIO 16

GPIO 26 37 38 GPIO 20

GND 39 40 GPIO 21

Page 7: Raspberry Pi GPIO · raspberry pi gpio Štěpán bechynský ... 3.3 v 1 2 5 v gpio 2 i2c sda 3 4 5 v gpio 3 i2c scl 5 6 gnd gpio 4 7 8 uart tx gnd 9 10 uart rx ... 9 spi miso 21 22

DEMO – interaktivní rozložení pinů

Page 8: Raspberry Pi GPIO · raspberry pi gpio Štěpán bechynský ... 3.3 v 1 2 5 v gpio 2 i2c sda 3 4 5 v gpio 3 i2c scl 5 6 gnd gpio 4 7 8 uart tx gnd 9 10 uart rx ... 9 spi miso 21 22

Textová konzole na UART

● Výchozí nastavení● Pin 8 (Tx) a 10 (Rx)● Lze vypnout pomocí nástroje raspi-config● Pozor na napětí!

Page 9: Raspberry Pi GPIO · raspberry pi gpio Štěpán bechynský ... 3.3 v 1 2 5 v gpio 2 i2c sda 3 4 5 v gpio 3 i2c scl 5 6 gnd gpio 4 7 8 uart tx gnd 9 10 uart rx ... 9 spi miso 21 22

DEMO – textová konzole na UART

Page 10: Raspberry Pi GPIO · raspberry pi gpio Štěpán bechynský ... 3.3 v 1 2 5 v gpio 2 i2c sda 3 4 5 v gpio 3 i2c scl 5 6 gnd gpio 4 7 8 uart tx gnd 9 10 uart rx ... 9 spi miso 21 22

Blikání LED – HW Hello World!

● Připojte LED a rezistor na GPIO pin● Nastavte GPIO pin na výstup● Zapisujte 0/1

Page 11: Raspberry Pi GPIO · raspberry pi gpio Štěpán bechynský ... 3.3 v 1 2 5 v gpio 2 i2c sda 3 4 5 v gpio 3 i2c scl 5 6 gnd gpio 4 7 8 uart tx gnd 9 10 uart rx ... 9 spi miso 21 22

DEMO – Hellow World!

Page 12: Raspberry Pi GPIO · raspberry pi gpio Štěpán bechynský ... 3.3 v 1 2 5 v gpio 2 i2c sda 3 4 5 v gpio 3 i2c scl 5 6 gnd gpio 4 7 8 uart tx gnd 9 10 uart rx ... 9 spi miso 21 22

Základní konfigurace

● Systém– GPIO funguje bez nastavování

– I2C, SPI nebo One Wire● Device Tree ● Moduly jádra

● C, bash – knihovna WiringPi● Python – balíček python-smbus, knihovna spidev● Ruby – balíček ruby-dev a gem wiringpi

Page 13: Raspberry Pi GPIO · raspberry pi gpio Štěpán bechynský ... 3.3 v 1 2 5 v gpio 2 i2c sda 3 4 5 v gpio 3 i2c scl 5 6 gnd gpio 4 7 8 uart tx gnd 9 10 uart rx ... 9 spi miso 21 22

/etc/modules

# /etc/modules: kernel modules to load at boot time.

snd­bcm2835

# SPI devices  

spi­dev  

# I2C devices  

i2c­dev  

# 1­Wire devices  

w1­gpio  

# 1­Wire thermometer devices  

w1­therm

Page 14: Raspberry Pi GPIO · raspberry pi gpio Štěpán bechynský ... 3.3 v 1 2 5 v gpio 2 i2c sda 3 4 5 v gpio 3 i2c scl 5 6 gnd gpio 4 7 8 uart tx gnd 9 10 uart rx ... 9 spi miso 21 22

DEMO – I2C

Page 15: Raspberry Pi GPIO · raspberry pi gpio Štěpán bechynský ... 3.3 v 1 2 5 v gpio 2 i2c sda 3 4 5 v gpio 3 i2c scl 5 6 gnd gpio 4 7 8 uart tx gnd 9 10 uart rx ... 9 spi miso 21 22
Page 16: Raspberry Pi GPIO · raspberry pi gpio Štěpán bechynský ... 3.3 v 1 2 5 v gpio 2 i2c sda 3 4 5 v gpio 3 i2c scl 5 6 gnd gpio 4 7 8 uart tx gnd 9 10 uart rx ... 9 spi miso 21 22

DEMO – teploměr DS18B20

Page 17: Raspberry Pi GPIO · raspberry pi gpio Štěpán bechynský ... 3.3 v 1 2 5 v gpio 2 i2c sda 3 4 5 v gpio 3 i2c scl 5 6 gnd gpio 4 7 8 uart tx gnd 9 10 uart rx ... 9 spi miso 21 22

Omezení

● 3,3 V● Omezený proud● Chybí ADC● Chybí hodiny reálného času● Jedno hardwarowé PWM

Page 18: Raspberry Pi GPIO · raspberry pi gpio Štěpán bechynský ... 3.3 v 1 2 5 v gpio 2 i2c sda 3 4 5 v gpio 3 i2c scl 5 6 gnd gpio 4 7 8 uart tx gnd 9 10 uart rx ... 9 spi miso 21 22

3,3 V

● Používejte vhodné periférie– Pozor na periférie pro Arduino

● Převodníky logických úrovní

Page 19: Raspberry Pi GPIO · raspberry pi gpio Štěpán bechynský ... 3.3 v 1 2 5 v gpio 2 i2c sda 3 4 5 v gpio 3 i2c scl 5 6 gnd gpio 4 7 8 uart tx gnd 9 10 uart rx ... 9 spi miso 21 22

Omezený proud

● Používejte samostatné napájení pro periférie● Tranzistorový spínač nebo něco podobného

Autor: Andreas B Mundt, CC A-SA

Page 20: Raspberry Pi GPIO · raspberry pi gpio Štěpán bechynský ... 3.3 v 1 2 5 v gpio 2 i2c sda 3 4 5 v gpio 3 i2c scl 5 6 gnd gpio 4 7 8 uart tx gnd 9 10 uart rx ... 9 spi miso 21 22

PWM

● Externí moduly● Softwarová simulace

– DMA

– Python: knihovna RPIO.PWM

Page 21: Raspberry Pi GPIO · raspberry pi gpio Štěpán bechynský ... 3.3 v 1 2 5 v gpio 2 i2c sda 3 4 5 v gpio 3 i2c scl 5 6 gnd gpio 4 7 8 uart tx gnd 9 10 uart rx ... 9 spi miso 21 22

ADC, hodiny reálného času

● Externí modul– Různí dodavatelé

– DIY

● Typicky komunikují pomocí sběrnice I2C

Page 22: Raspberry Pi GPIO · raspberry pi gpio Štěpán bechynský ... 3.3 v 1 2 5 v gpio 2 i2c sda 3 4 5 v gpio 3 i2c scl 5 6 gnd gpio 4 7 8 uart tx gnd 9 10 uart rx ... 9 spi miso 21 22

PICAXE

● Mikrokontrolér postavený na PIC● Velmi levné● Programovací jazyk BASIC● Není třeba specializovaný programátor

– Sériový port, 2x rezistor● Řada X2 podporuje režim I2C Slave

Page 23: Raspberry Pi GPIO · raspberry pi gpio Štěpán bechynský ... 3.3 v 1 2 5 v gpio 2 i2c sda 3 4 5 v gpio 3 i2c scl 5 6 gnd gpio 4 7 8 uart tx gnd 9 10 uart rx ... 9 spi miso 21 22

DEMO – PICAXE

Page 24: Raspberry Pi GPIO · raspberry pi gpio Štěpán bechynský ... 3.3 v 1 2 5 v gpio 2 i2c sda 3 4 5 v gpio 3 i2c scl 5 6 gnd gpio 4 7 8 uart tx gnd 9 10 uart rx ... 9 spi miso 21 22

Zdroje

● http://elinux.org/RPi_Low-level_peripherals ● http://pi.gadgetoid.com/pinout/pin3_gpio0 ● http://wiringpi.com ● http://www.adafruit.com ● http://www.hobbyrobot.cz ● http://www.picaxe.com