Merge remote-tracking branch 'Gadgetoid/master'

This commit is contained in:
RogueM 2015-12-03 17:11:21 +00:00
commit e85f8a82b9
44 changed files with 1765 additions and 17 deletions

View File

@ -24,29 +24,33 @@ def render_html(*args, **kwargs):
def bcm_to_physical(pin):
for idx in pins:
compare_pin = pins[idx]
if 'scheme' in compare_pin:
if 'bcm' in compare_pin['scheme']:
if compare_pin['scheme']['bcm'] == int(pin):
#print("Mapping BCM{} to {}".format(pin, str(idx)))
return str(idx)
return physical_from(pin, 'bcm')
def wiringpi_to_physical(pin):
return physical_from(pin, 'wiringpi')
def physical_from(pin, scheme='bcm'):
if scheme in ['bcm', 'wiringpi']:
for idx in pins:
compare_pin = pins[idx]
if 'scheme' in compare_pin:
if scheme in compare_pin['scheme']:
if compare_pin['scheme'][scheme] == int(pin):
#print("Mapping {}{} to {}".format(scheme, pin, str(idx)))
return str(idx)
elif scheme == 'physical':
return pin
return None
def physical_to_bcm(pin):
pin = pins[pin]
if 'scheme' in pin:
if 'bcm' in pin['scheme']:
return str(pin['scheme']['bcm'])
return None
return physical_to(pin, 'bcm')
def physical_to_wiringpi(pin):
pin = pins[pin]
if 'scheme' in pin:
if 'wiringpi' in pin['scheme']:
return str(pin['scheme']['wiringpi'])
return None
return physical_to(pin, 'wiringpi')
def physical_to(pin, scheme='bcm'):

21
src/pt-PT/index.md Normal file
View File

@ -0,0 +1,21 @@
#Diagrama de Pinos!
###O guia detalhado do diagrama de pinos GPIO do Raspberry Pi, agora com o Raspberry Pi Model B+ e Raspberry Pi 2 incluídos
Este diagrama de pinos GPIO não foi feito com o propósito de ser imprimido mas é tanto um bom guia de referência rápida como um guia para os pinos GPIO do teu Raspberry Pi.
##O que é que estes números significam, afinal?
* BCM - Número de pino Broadcom (Broadcom pin number), frequentemente chamados "GPIO", estes são os que provavelmente vais querer usar com o RPi.GPIO
* WiringPi - Número de pino Wiring Pi, para a biblioteca Wiring Pi de Gordon.
* Physical - Número correspondente à localização física dos pinos no cabeçalho.
##Pi 2
Para celebrar o lançamento do Pi 2 e os novos Pi-entusiastas que vai trazer, o diagrama de pinos foi atualizado para ser mais limpo, detalhado e preciso e vai continuar a ser melhorado.
##Model B+
Agora que o Raspberry Pi Model B Plus está disponível, atualizei o diagrama de pinos com os 14 pinos extras que vais encontrar na tua placa novinha em folha.
Nota: Ainda que eu tenha colocado um espaço para separar visualmente os 14 pinos adicionais no B+, não vais encontrar este espaço na placa de verdade!

View File

@ -0,0 +1,57 @@
<!--
---
name: Arduino SPI
description: Program Arduino with Raspberry Pi SPI
pin:
19:
name: MOSI
direction: output
active: high
description: Master Out / Slave In
21:
name: MISO
direction: input
active: high
description: Master In / Slave Out
23:
name: SCKL
direction: output
active: high
description: Clock
24:
name: CE0
direction: output
active: high
description: Arduino Reset
-->
#ATmega 328p / Arduino over SPI
###Did you know that your Pi could power and program an ATmega 328p/Arduino directly, with nothing but a few wires, a breadboard, a 16Mhz crystal oscillator and some 22pF capacitors?
Read my [complete Pico PiDuino tutorial](http://pi.gadgetoid.com/article/building-the-pico-piduino) to get started for just over &pound;5
You'll need to install [Gordon's modified AVRDude](https://projects.drogon.net/raspberry-pi/gertboard/arduino-ide-installation-isp/).
Connect 8/CEO to your ATmega's Reset/RST pin, 9/MISO to its MISO pin (D12), 10 to its MOSI pin (D11) and 11/SCLK to its SCLK pin (D13).
Power your ATmega with the 3.3v and GND pins from your Pi, and you're good to go.
Make sure you have no rogue SPI device drivers running and check it's connected correctly using:
```bash
avrdude -p m328p -c gpio
```
To get started compiling Arduino sketches from the command line:
```bash
sudo apt-get install arduino arduino-mk
```
This basic Makefile should get you started. Create a basic sketch, name it mysketch.ino and run:
```bash
export BOARD=atmega328
make
avrdude -p m328p -c gpio -e -U flash:w:build-cli/Arduino.hex
```

View File

@ -0,0 +1,44 @@
<!--
---
name: Display-o-Tron HAT
manufacturer: Pimoroni
url: https://github.com/pimoroni/dot3k
description: A 3-line character LCD with a 6-zone RGB backlight and 6 touch buttons
pincount: 40
pin:
3:
mode: i2c
5:
mode: i2c
22:
name: LCD CMD/DATA
mode: output
active: high
19:
mode: spi
22:
name: LCD Register Select
mode: output
23:
mode: spi
24:
name: LCD Chip Select
mode: chipselect
active: high
32:
name: LCD Reset
mode: output
active: low
-->
#Display-o-Tron HAT
Display-o-Tron HAT uses both SPI and I2c to drive the LCD display, backlight and touch.
However both of these busses can be shared with other devices.
You can use the one-line product installer to get Display-o-Tron HAT set up and ready to go, just:
```bash
curl get.pimoroni.com/dot3k | bash
```
And follow the instructions!

View File

@ -0,0 +1,63 @@
<!--
---
name: Display-o-Tron 3000
manufacturer: Pimoroni
github: https://github.com/pimoroni/dot3k
url: https://github.com/pimoroni/dot3k
description: A 3-line character LCD with an RGB backlight and joystick
install:
'devices':
- 'i2c'
- 'spi'
'apt':
- 'python-smbus'
- 'python3-smbus'
- 'python-dev'
- 'python3-dev'
'python':
- 'dot3k'
'examples': 'python/examples/'
pincount: 40
pin:
3:
mode: i2c
5:
mode: i2c
7:
name: Joystick Button
mode: input
active: low
11:
name: Joystick Left
mode: input
active: low
13:
name: Joystick Up
mode: input
active: low
15:
name: Joystick Right
mode: input
active: low
19:
mode: spi
21:
name: Joystick Down
mode: input
active: low
22:
name: LCD CMD/DATA
mode: output
active: high
23:
mode: spi
-->
#Display-o-Tron 3000
You can use the one-line product installer to get Display-o-Tron 3000 set up and ready to go, just:
```bash
curl get.pimoroni.com/dot3k | bash
```
And follow the instructions!

117
src/pt-PT/overlay/dots.md Normal file
View File

@ -0,0 +1,117 @@
<!--
---
name: Raspberry Pi Dots
description: Join the dots to make a circuit
url: http://www.raspberrypi.org/dots/
github: https://github.com/raspberrypilearning/dots
pin:
bcm0:
name: 'Color: Blue'
direction: input
bcm1:
name: Dot 7
direction: input
bcm2:
name: Dot 22
direction: input
bcm3:
name: Dot 21
direction: input
bcm4:
name: Dot 2
direction: input
bcm5:
name: Dot 9
direction: input
bcm6:
name: Dot 14
direction: input
bcm7:
name: Dot 6
direction: input
bcm8:
name: Dot 18
direction: input
bcm9:
name: Dot 17
direction: input
bcm10:
name: 'Color: Green'
direction: input
bcm11:
name: Dot 8
direction: input
bcm12:
name: Dot 10
direction: input
bcm13:
name: Cloud
direction: input
bcm14:
name: Dot 1
direction: input
bcm15:
name: Dot 3
direction: input
bcm16:
name: Dot 13
direction: input
bcm17:
name: Dot 4
direction: input
bcm18:
name: Dot 20
direction: input
bcm19:
name: 'Color: Orange'
direction: input
bcm20:
name: Bear
direction: input
bcm21:
name: Dot 12
direction: input
bcm22:
name: Dot 15
direction: input
bcm23:
name: Dot 16
direction: input
bcm24:
name: Dot 19
direction: input
bcm25:
name: Dot 5
direction: input
bcm26:
name: Dot 11
direction: input
bcm27:
name: 'Color: Red'
direction: input
-->
#Raspberry Pi Dots
###Dots is a Dot to Dot HAT board for the Raspberry Pi that lets you join-the-dots with BARE Conductive Paint!
Every Dot on the Dots board is a "floating" metal contact just waiting to be pulled down to ground with a dab of paint.
To read a Dot you should set its corresponding pin as an INPUT and make sure it's pulled up like so:
```python
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM )
GPIO.setup(dot_pin, GPIO.IN, GPIO.PUD_UP)
state = GPIO.input(dot_pin)
```
It's good practise to only turn on the PULLUP when you actually want to read the Dot, so a method like
this is recommended for reading:
```python
def is_dot_connected(dot_pin):
GPIO.setup(dot_pin, GPIO.IN, GPIO.PUD_UP)
state = GPIO.input( dot_pin )
GPIO.setup(dot_pin, GPIO.IN, GPIO.PUD_OFF)
return state == 0
```

View File

@ -0,0 +1,115 @@
<!--
---
name: Explorer HAT Pro
manufacturer: Pimoroni
url: https://github.com/pimoroni/explorer-hat
github: https://github.com/pimoroni/explorer-hat
buy: http://shop.pimoroni.com/products/explorer-hat
description: An all-in-one light, input, motor, touch and output add-on board.
install:
'apt':
- 'python-smbus'
- 'python3-smbus'
- 'python-dev'
- 'python3-dev'
'python':
- 'explorerhat'
'examples': 'examples/'
pincount: 40
i2c:
'0x28':
name: Cap Touch
device: cap1208
'0x48':
name: Analog Input
device: ads1015
pin:
'3': {}
'5': {}
'7':
name: LED 1
mode: output
active: high
'8': {}
'10': {}
'11':
name: LED 2
mode: output
active: high
'12': {}
'13':
name: LED 3
mode: output
active: high
'15':
name: Input 2
mode: input
active: high
'16':
name: Input 1
mode: input
active: high
'18':
name: Input 3
mode: input
active: high
'19': {}
'21': {}
'22':
name: Input 4
mode: input
active: high
'23': {}
'24': {}
'29':
name: LED 4
mode: output
active: high
'31':
name: Output 1
mode: output
active: high
'32':
name: Output 2
mode: output
active: high
'33':
name: Output 3
mode: output
active: high
'35':
name: Motor 1 +
mode: output
active: high
'36':
name: Output 4
mode: output
active: high
'37':
name: Motor 2 -
mode: output
active: high
'38':
name: Motor 1 -
mode: output
active: high
'40':
name: Motor 2 +
mode: output
active: high
-->
#Explorer HAT and Explorer HAT Pro
5V inputs and outputs, touch pads, LEDs, analog inputs and an H-Bridge motor driver make up the Explorer HAT Pro- a jack of all trades prototyping side-kick for your Raspberry Pi.
```bash
sudo apt-get install python-pip
sudo pip install explorer-hat
```
Then import it into your Python script and start tinkering:
```bash
import explorerhat
explorerhat.light.on()
```

View File

@ -0,0 +1,87 @@
<!--
---
name: Explorer HAT
manufacturer: Pimoroni
url: https://github.com/pimoroni/explorer-hat
github: https://github.com/pimoroni/explorer-hat
buy: http://shop.pimoroni.com/products/explorer-hat
description: An all-in-one light, input, touch and output add-on board.
install:
'devices':
- 'i2c'
'apt':
- 'python-smbus'
- 'python3-smbus'
- 'python-dev'
- 'python3-dev'
'python':
- 'explorerhat'
'python3':
- 'explorerhat'
'examples': 'examples/'
pincount: 40
pin:
'7':
name: LED 1
mode: output
active: high
'11':
name: LED 2
mode: output
active: high
'13':
name: LED 3
mode: output
active: high
'15':
name: Input 2
mode: input
active: high
'16':
name: Input 1
mode: input
active: high
'18':
name: Input 3
mode: input
active: high
'22':
name: Input 4
mode: input
active: high
'29':
name: LED 4
mode: output
active: high
'31':
name: Output 1
mode: output
active: high
'32':
name: Output 2
mode: output
active: high
'33':
name: Output 3
mode: output
active: high
'36':
name: Output 4
mode: output
active: high
-->
#Explorer HAT and Explorer HAT Pro
5V inputs and outputs, touch pads, LEDs, analog inputs and an H-Bridge motor driver make up the Explorer HAT Pro- a jack of all trades prototyping side-kick for your Raspberry Pi.
```bash
sudo apt-get install python-pip
sudo pip install explorer-hat
```
Then import it into your Python script and start tinkering:
```bash
import explorerhat
explorerhat.light.on()
```

View File

@ -0,0 +1,24 @@
<!--
---
name: Ground
description: Raspberry Pi Ground Pins
pin:
'6':
'9':
'14':
'20':
'25':
'30':
'34':
'39':
-->
#Ground
The Ground pins on the Raspberry Pi are all electrically connected, so it doesn't matter
which one you use if you're wiring up a voltage supply.
Generally the one that's most convenient or closest to the rest of your connections is tidier
and easier, or alternatively the one closest to the supply pin that you use.
It's a good idea to use Physical Pin 17 for 3v3 and Physical Pin 25 for ground when using
the [SPI](/pinout/spi) connections, for example, as these are right next to the important pins for SPI0.

49
src/pt-PT/overlay/i2c.md Normal file
View File

@ -0,0 +1,49 @@
<!--
---
name: I2C
description: Raspberry Pi i2c pins
pin:
'3':
name: Data
direction: both
active: high
'5':
name: Clock
direction: both
active: high
'27':
name: EEPROM Data
direction: both
active: high
'28':
name: EEPROM Clock
direction: both
active: high
-->
#I2C - Inter Integrated Circuit
The Raspberry Pi's I2C pins are an extremely useful way to talk to many different types of external peripheral; from the MCP23017 digital IO expander, to a connected ATmega.
You can verify the address of connected I2C peripherals with a simple one-liner:
```bash
sudo apt-get install i2c-tools
sudo i2cdetect -y 1
```
You can access i2c from Python using the smbus library:
```bash
sudo apt-get install python-smbus
```
And then in Python:
```python
import smbus
DEVICE_BUS = 1
DEVICE_ADDR = 0x15
bus = smbus.SMBus(DEVICE_BUS)
bus.write_byte_data(DEVICE_ADDR, 0x00, 0x01)
```

View File

@ -0,0 +1,50 @@
<!--
---
name: "Pi-DAC+"
manufacturer: IQaudIO
buy: http://www.iqaudio.co.uk
description: An I2S digital to analog audio converter HAT for the Pi
install:
'devices':
- 'i2c'
pincount: 40
pin:
3:
mode: i2c
5:
mode: i2c
12:
name: I2S
15:
name: Mute/Unmute
description: Pi-AMP+ only (optional)
16:
name: Rotary Encoder
description: (optional)
18:
name: Rotary Encoder
description: (optional)
22:
name: IR Sensor
description: (optional)
35:
name: I2S
38:
name: I2S
40:
name: I2S
-->
#IQaudIO Pi-DAC+
The Pi-DAC+ takes the digital audio signals (I2S) from the Raspberry Pi and through the
onboard Texas Instruments PCM5122 DAC delivers variable output (hardware volume
control) analog audio to the Pi-DAC+ Phono connectors. The PI-DAC+ also, via the
Texas Instruments TPA6133A headphone amp, supports the direct use of headphones via
the Pi-DAC+ 3.5mm audio jack.
The Pi Dac uses GPIO22 to mute/unmute the Pi-AMP+.
You can use GPIO25 to connect an IR sensor and GPIO23/24 for a rotary encoder. Both of
these parts are optional, but are broken out on the Pi-DAC+ for convenient access.
Note: pins reserved for the rotary encoder and IR sensor can be used for other purposes if those add-ons have not been fitted and enabled by software.

View File

@ -0,0 +1,47 @@
<!--
---
name: Piano HAT
manufacturer: Pimoroni
url: https://github.com/pimoroni/piano-hat
description: A tiny Pi piano with 16 touch-sensitive buttons
pincount: 40
i2c:
'0x28':
name: Cap Touch A
device: cap1188
datasheet: http://ww1.microchip.com/downloads/en/DeviceDoc/CAP1188%20.pdf
'0x2b':
name: Cap Touch B
device: cap1188
datasheet: http://ww1.microchip.com/downloads/en/DeviceDoc/CAP1188%20.pdf
pin:
3:
mode: i2c
5:
mode: i2c
7:
name: Alert A
mode: input
11:
name: Reset A
mode: output
13:
name: Alert B
mode: input
15:
name: Reset B
mode: output
-->
#Piano HAT
Piano HAT has 16 touch-sensitive buttons. 13 of these are a single Piano octave, the rest give you octave up/down and instrument select functionality.
It uses two Microchip CAP1188 chips with the i2c addresses 0x28 and 0x2b.
You can use the one-line product installer to get Piano HAT set up and ready to go, just:
```bash
curl get.pimoroni.com/pianohat | bash
```
And follow the instructions!

View File

@ -0,0 +1,48 @@
<!--
---
name: PiBorg LEDBorg
description: A single RGB LED for your Raspberry Pi
buy: https://www.piborg.org/ledborg
pin:
'11':
name: Red LED
direction: output
active: high
description: PiBorg Red LED
'13':
name: Green LED
direction: input
active: high
description: PiBorg Green LED
'15':
name: Blue LED
direction: output
active: high
description: PiBorg Blue LED
-->
###The PiBorg LedBorg is an ultra-bright RGB LED board for the Raspberry Pi.
PiBorg has its own driver, so you don't need to drive it manually.
If you want a much, much wider range of colours, though, you can drive it manually using softPwm in WiringPi. The pin assignments for this are as follows:
WiringPi pin 0: Red LED
WiringPi pin 2: Green LED
WiringPi pin 3: Blue LED
This is easy using WiringPi in Python:
```python
import wiringpi2 as wiringpi
wiringpi.wiringPiSetup()
wiringpi.softPwmCreate(0,0,100)
wiringpi.softPwmCreate(2,0,100)
wiringpi.softPwmCreate(3,0,100)
# Purple!
wiringpi.softPwmWrite(3,100) # Full Blue
wiringpi.softPwmWrite(0,100) # Full Red
wiringpi.softPWMWrite(2,0) # No Green
```

View File

@ -0,0 +1,78 @@
<!--
---
name: Pibrella
manufacturer: Pimoroni Vs Cyntech
url: https://github.com/pimoroni/pibrella
description: An all-in-one light, sound, input and output add-on board.
pincount: 26
pin:
'7':
name: Green LED
direction: output
active: high
'11':
name: Yellow LED
direction: output
active: high
'12':
name: Buzzer
direction: output
active: high
'13':
name: Red LED
direction: output
active: high
'15':
name: Output A
direction: output
active: high
'16':
name: Output B
direction: output
active: high
'18':
name: Output C
direction: output
active: high
'19':
name: Input D
direction: output
active: high
'21':
name: Input A
direction: input
active: high
'22':
name: Output D
direction: output
active: high
'23':
name: Button
direction: input
active: high
'24':
name: Input C
direction: input
active: high
'26':
name: Input B
direction: input
active: high
-->
#Pibrella
The all-in-one light, sound, input and output add-on board from Pimoroni vs Cyntech uses lots of IO on the Pi but leaves both Serial and I2C free leaving plenty of room for expansion if you get creative.
Pibrella is easy to use, first you should install the module using LXTerminal/Command Line:
```bash
sudo apt-get install python-pip
sudo pip install pibrella
```
Then import it into your Python script and start tinkering:
```bash
import pibrella
pibrella.light.red.on()
```

View File

@ -0,0 +1,20 @@
<!--
---
name: PiGlow
manufacturer: Pimoroni
url: https://github.com/pimoroni/piglow
github: https://github.com/pimoroni/piglow
buy: http://shop.pimoroni.com/products/piglow
description: Simply 18 LEDs in a spiral pattern controllable in Python.
pincount: 26
pin:
'1': {}
'2': {}
'3':
mode: i2c
'5':
mode: i2c
'14': {}
'17': {}
-->
#PiGlow

View File

@ -0,0 +1,58 @@
<!--
---
name: Ryanteck Motor Controller Board
manufacturer: Ryanteck
url: http://www.ryanteck.uk/store/ryanteck-rpi-motor-controller-board
buy: http://www.ryanteck.uk/store/ryanteck-rpi-motor-controller-board
description: A budget motor controller with quick start guides.
pincount: 26
pin:
'11':
name: Motor 1 A
direction: output
active: high
'12':
name: Motor 1 B
direction: output
active: high
'15':
name: Motor 2 A
direction: output
active: high
'16':
name: Motor 2 B
direction: output
active: high
-->
#Ryanteck Motor Controller Board
###A quick and easy way to start driving motors on your Raspberry Pi
```python
##Simple motor script for the RTK-000-001
import RPi.GPIO as GPIO
import time
#Set to broadcom pin numbers
GPIO.setmode(GPIO.BCM)
#Motor 1 = Pins 17 and 18
#Motor 2 = Pins 22 and 23
GPIO.setup(17, GPIO.OUT)
GPIO.setup(18, GPIO.OUT)
#Now loop forever turning one direction for 5 seconds, then the other
while (True):
#Sleep 1 second then turn 17 on
GPIO.output(18, 0)
time.sleep(1)
GPIO.output(17, 1);
time.sleep(5);
#And now the other way round
GPIO.output(17, 0)
time.sleep(1);
GPIO.output(18, 1);
time.sleep(5);
#And loop back around
#And final cleanup
GPIO.cleanup()
```

View File

@ -0,0 +1,41 @@
<!--
---
name: "Sense HAT"
manufacturer: Raspberry Pi Foundation
url: https://www.raspberrypi.org/products/sense-hat/
description: Add-on board that includes an 8×8 RGB LED matrix, 5-button joystick as well as IMU and environmental sensors
install:
'devices':
- 'i2c'
- 'spi'
pincount: 40
pin:
3:
mode: i2c
5:
mode: i2c
16:
name: Joystick
mode: input
18:
name: Joystick
mode: input
19:
mode: spi
21:
mode: spi
22:
name: Joystick
mode: input
23:
mode: spi
24:
mode: spi
-->
#Sense HAT
LED Matrix: LED2472G -> ATTINY88 -> SPI
Joystick: SKRHABE010 -> ATTINY88 -> GPIO23/24/25
Axis/IMU: LSM9DS1 -> i2c 0x1c(1e),0x6a(6b) (INT on MCU)
Pressure/Temp: LPS25H -> i2c 0x5c
Humidity/Temp: HTS221 -> i2c 0x5f

View File

@ -0,0 +1,34 @@
<!--
---
name: Skywriter HAT
manufacturer: Pimoroni
url: https://github.com/pimoroni/skywriter-hat
github: https://github.com/pimoroni/skywriter-hat
buy: http://shop.pimoroni.com/products/skywriter-hat
description: A 3D positional and gesture sensor.
install:
'apt':
- 'python-smbus'
- 'python3-smbus'
- 'python-dev'
- 'python3-dev'
'python':
- 'skywriter'
'examples': 'python/examples/'
pincount: 40
pin:
'3':
mode: i2c
'5':
mode: i2c
'11':
name: Reset
'13':
name: Transfer
-->
#Skywriter HAT
Skywriter HAT senses your finger's position above it in 3 dimensions, outputting an X, Y, Z axis
which you can use in your Python scripts.
It also recognises gestures, including swipes and more.

66
src/pt-PT/overlay/spi.md Normal file
View File

@ -0,0 +1,66 @@
<!--
---
name: SPI
description: Raspberry Pi SPI pins
pincount: 5
pin:
'11':
name: SPI1 CE1
'12':
name: SPI1 CE0
'19':
name: SPI0 MOSI
direction: output
active: high
description: Master Out / Slave In
'21':
name: SPI0 MISO
direction: input
active: high
description: Master In / Slave Out
'23':
name: SPI0 SCLK
direction: output
active: high
description: Clock
'24':
name: SPI0 CE0
direction: output
active: high
description: Chip Select 0
'26':
name: SPI0 CE1
direction: output
active: high
description: Chip Select 1
'35':
name: SPI1 MISO
'36':
name: SPI1 CE2
'38':
name: SPI1 MOSI
'40':
name: SPI1 SCLK
-->
#SPI - Serial Peripheral Interface
###Known as the four-wire serial bus, SPI lets you daisy-chain multiple compatible devices off a single set of pins by assigning them different chip-select pins.
A useful example of an SPI peripheral is the MCP23S17 digital IO expander chip Note the S in place of the 0 found on the I2C version.
To talk to an SPI device, you assert its corresponding chip-select pin. By default the Pi has CE0 and CE1.
```python
import spidev
spi = spidev.SpiDev()
spi.open(0, CHIP_SELECT_0_OR_1)
spi.max_speed_hz = 1000000
spi.xfer([value_8bit])
```
You can also use the SPI port to "Bit-Bang" an ATmega 328, loading Arduino sketches onto it with Gordon's modified version of AVRDude.
Hook up you Pi's SPI port to that of your ATmega, and power the ATmega from the 3.3v pin on the Pi. Make sure you're not running any SPI device drivers, and run "avrdude -p m328p -c gpio" to verify the connection.
See the individual pins to learn how to connect up your ATmega.

View File

@ -0,0 +1,52 @@
<!--
---
name: Traffic HAT
manufacturer: Ryanteck LTD.
url: http://www.ryanteck.uk/store/traffichat
buy: http://www.ryanteck.uk/store/traffichat
description: A quick and easy way to learn the basics of GPIO on a budget. All in
a nice HAT.
pincount: 40
pin:
'15':
name: LED1 / Green
direction: output
active: high
'16':
name: LED2 / Amber
direction: output
active: high
'18':
name: LED3 / Red
direction: output
active: high
'22':
name: Button
direction: input
active: high
'29':
name: Buzzer
direction: output
active: high
-->
#Traffic HAT
###A quick and easy way to learn the basics of GPIO on a budget. All in a nice HAT.
```python
import RPi.GPIO as IO
from time import sleep
IO.setmode(IO.BCM)
#Lights
IO.setup(22,IO.OUT)
IO.setup(23,IO.OUT)
IO.setup(24,IO.OUT)
#Buzzer
IO.setup(5,IO.OUT)
#Button
IO.setup(25,IO.IN,pull_up_down=IO.PUD_UP)
```

30
src/pt-PT/overlay/uart.md Normal file
View File

@ -0,0 +1,30 @@
<!--
---
name: UART
description: Raspberry Pi UART pins
pin:
'8':
name: TXD / Transmit
direction: output
active: high
'10':
name: RXD / Receive
direction: input
active: high
-->
#UART - Universal Asynchronous Receiver/Transmitter
###The 2 UART pins in WiringPi are: 15, 16
UART is a handy, straight forward way to interface an Arduino ( or bootloaded ATmega ) with your Pi. You must, however, be careful with logic-levels between the two devices: the Pi is 3.3v and the Arduino is 5v. Connect the two and you might conjure up some magic blue smoke.
Personally I'm a fan of building out a Arduino Bootloaded ATmega 328 circuit on a breadboard with a voltage regulator to take the Pi's 5v line and convert it to 3.3v. The ATmega 328 seems to run quite happily at 3.3v using a 16Mhz crystal and you'll then have an Arduino clone with 3.3v logic.
Assuming you have WiringPi2-Python installed, the following python example opens the Pi's UART at 9600baud and puts 'hello world'
```python
import wiringpi2 as wiringpi
wiringpi.wiringPiSetup()
serial = wiringpi.serialOpen('/dev/ttyAMA0',9600)
wiringpi.serialPuts(serial,'hello world!')
```

View File

@ -0,0 +1,47 @@
<!--
---
name: Unicorn HAT
manufacturer: Pimoroni
url: http://shop.pimoroni.com/products/unicorn-hat
buy: http://shop.pimoroni.com/products/unicorn-hat
description: 64 blindingly bright RGB LEDs on a single HAT
github: https://github.com/pimoroni/unicornhat
install:
'apt':
- 'python-dev'
- 'python3-dev'
'python':
- 'unicornhat'
'python3':
- 'unicornhat'
'examples': 'python/examples/'
pincount: 40
pin:
'12':
name: Data
direction: output
mode: pwm
active: high
description: WS2812 Data
-->
#Unicorn HAT
64 blindingly bright LEDs packed into a HAT and driven with an ultra-fast, C library that you can talk to
from Python make Unicorn HAT PiGlow's bigger, brighter brother.
Note: Unicorn HAT uses some special PWM trickery, performed with the same hardware that lets you Pi produce sound
through the audio jack ( analog audio ) so you can't use both at the same time!
Setup is easy, just:
```bash
curl get.pimoroni.com/unicornhat | bash
```
Then import it into your Python script and start tinkering:
```bash
import unicornhat
unicornhat.set_pixel(0, 0, 255, 255, 255)
unicornhat.show()
```

View File

@ -0,0 +1,81 @@
<!--
---
name: WiringPi GPIO Pinout
page_url: wiringpi
pin:
'3':
name: WiringPi 8
'5':
name: WiringPi 9
'7':
name: WiringPi 7
'8':
name: WiringPi 15
'10':
name: WiringPi 16
'11':
name: WiringPi 0
'12':
name: WiringPi 1
'13':
name: WiringPi 2
'15':
name: WiringPi 3
'16':
name: WiringPi 4
'18':
name: WiringPi 5
'19':
name: WiringPi 12
'21':
name: WiringPi 13
'22':
name: WiringPi 6
'23':
name: WiringPi 14
'24':
name: WiringPi 10
'26':
name: WiringPi 11
'29':
name: WiringPi 21
'31':
name: WiringPi 22
'32':
name: WiringPi 26
'33':
name: WiringPi 23
'35':
name: WiringPi 24
'36':
name: WiringPi 27
'37':
name: WiringPi 25
'38':
name: WiringPi 28
'40':
name: WiringPi 29
-->
#Raspberry Pi WiringPi
###WiringPi is an attempt to bring Arduino-wiring-like simplicity to the Raspberry Pi.
The goal is to have a single common platform and set of functions for accessing the Raspberry Pi GPIO across muliple languages. WiringPi is a C library at heart, but it's available to both Ruby and Python users who can "gem install wiringpi" or "pip install wiringpi2" respectively.
Python users note the 2 on the end, the WiringPi2-Python library finally brings a whole host of existing WiringPi functionality to Python including brand new features from WiringPi 2.
For more information about WiringPi you should visit the official WiringPi website.
##Getting started with WiringPi
WiringPi uses its own pin numbering scheme, here you'll learn how WiringPi numbers your GPIO pins, what those pins do and how to do shiny things with them from within Python or Ruby.
WiringPi, the Arduino-like GPIO library for the Pi, is available in C right from Gordon's git repository, Python, Ruby and even Perl and PHP to a lesser extent.
Installing to Python couldn't be easier, just:
```bash
sudo pip install wiringpi2
```
Note the 2 on the end? That's the all new, shinier WiringPi!

368
src/pt-PT/pi-pinout.yaml Normal file
View File

@ -0,0 +1,368 @@
---
name: Raspberry Pi GPIO Pinout
pins:
'1':
name: 3v3 Power
type: "+3v3"
'2':
name: 5v Power
type: "+5v"
'3':
name: SDA
description: I2C Data
type: GPIO/I2C
scheme:
wiringpi: 8
bcm: 2
bcmAlt: 0
functions:
alt0: SDA1
alt1: SA3
'4':
name: 5v Power
type: "+5v"
'5':
name: SCL
description: I2C Clock
type: GPIO/I2C
scheme:
wiringpi: 9
bcm: 3
bcmAlt: 1
functions:
alt0: SCL1
alt1: SA2
'6':
name: Ground
type: GND
'7':
name: GPCLK0
type: GPIO
scheme:
wiringpi: 7
bcm: 4
functions:
alt0: GPCLK0
alt1: SA1
alt5: ARM_TDI
'8':
name: TXD
description: UART Transmit
type: GPIO/UART
scheme:
wiringpi: 15
bcm: 14
functions:
alt0: TXD0
alt1: SD6
alt2: Reserved
alt5: TXD1
'9':
name: Ground
type: GND
'10':
name: RXD
description: UART Receive
type: GPIO/UART
scheme:
wiringpi: 16
bcm: 15
functions:
alt0: RXD0
alt1: SD7
alt2: Reserved
alt5: RXD1
'11':
name: ''
type: GPIO
scheme:
wiringpi: 0
bcm: 17
functions:
alt0: Reserved
alt1: SD9
alt2: Reserved
alt3: RTS0
alt4: SPI1_CE1_N
alt5: RTS1
'12':
name: PCM_C
description: PCM Clock
type: GPIO
scheme:
wiringpi: 1
bcm: 18
functions:
alt0: PCM_CLK
alt1: SD10
alt2: Reserved
alt3: BSCSL SDA / MOSI
alt4: SPI1_CE0_N
alt5: PWM0
'13':
name: PCM_D
type: GPIO
scheme:
wiringpi: 2
bcm: 27
bcmAlt: 21
functions:
alt0: Reserved
alt1: Reserved
alt2: Reserved
alt3: SD1_DAT3
alt4: ARM_TMS
'14':
name: Ground
type: GND
'15':
name: ''
type: GPIO
scheme:
wiringpi: 3
bcm: 22
functions:
alt0: Reserved
alt1: SD14
alt2: Reserved
alt3: SD1_CLK
alt4: ARM_TRST
'16':
name: ''
type: GPIO
scheme:
wiringpi: 4
bcm: 23
functions:
alt0: Reserved
alt1: SD15
alt2: Reserved
alt3: SD1_CMD
alt4: ARM_RTCK
'17':
name: 3v3 Power
type: "+3v3"
'18':
name: ''
type: GPIO
scheme:
wiringpi: 5
bcm: 24
functions:
alt0: Reserved
alt1: SD16
alt2: Reserved
alt3: SD1_DAT0
alt4: ARM_TDO
'19':
name: MOSI
type: GPIO/SPI
scheme:
wiringpi: 12
bcm: 10
functions:
alt0: SPI0_MOSI
alt1: SD2
alt2: Reserved
'20':
name: Ground
type: GND
'21':
name: MISO
type: GPIO/SPI
scheme:
wiringpi: 13
bcm: 9
functions:
alt0: SPI0_MISO
alt1: SD1
alt2: Reserved
'22':
name: ''
type: GPIO
scheme:
wiringpi: 6
bcm: 25
functions:
alt0: Reserved
alt1: SD17
alt2: Reserved
alt3: SD1_DAT1
alt4: ARM_TCK
'23':
name: SCLK
type: GPIO/SPI
scheme:
wiringpi: 14
bcm: 11
functions:
alt0: SPI0_SCLK
alt1: SD3
alt2: Reserved
'24':
name: CE0
description: SPI Chip Select 0
type: GPIO/SPI
scheme:
wiringpi: 10
bcm: 8
functions:
alt0: SPI0_CE0_N
alt1: SD0
alt2: Reserved
'25':
name: Ground
type: GND
'26':
name: CE1
description: SPI Chip Select 1
type: GPIO/SPI
scheme:
wiringpi: 11
bcm: 7
functions:
alt0: SPI0_CE1_N
alt1: SWE_N / SRW_N
alt2: Reserved
'27':
name: ID_SD
description: HAT EEPROM i2c Data
type: GPIO/I2C
scheme:
wiringpi: 30
bcm: 0
functions:
alt0: SDA0
alt1: SA5
alt2: Reserved
'28':
name: ID_SC
description: HAT EEPROM i2c Clock
type: GPIO/I2C
scheme:
wiringpi: 31
bcm: 1
functions:
alt0: SCL0
alt1: SA4
alt2: Reserved
'29':
name: ''
type: GPIO
scheme:
wiringpi: 21
bcm: 5
functions:
alt0: GPCLK1
alt1: SA0
alt2: Reserved
alt5: ARM_TDO
'30':
name: Ground
type: GND
'31':
name: ''
type: GPIO
scheme:
wiringpi: 22
bcm: 6
functions:
alt0: GPCLK2
alt1: SOE_N / SE
alt2: Reserved
alt5: ARM_RTCK
'32':
name: ''
type: GPIO
scheme:
wiringpi: 26
bcm: 12
functions:
alt0: PWM0
alt1: SD4
alt2: Reserved
alt5: ARM_TMS
'33':
name: ''
type: GPIO
scheme:
wiringpi: 23
bcm: 13
functions:
alt0: PWM1
alt1: SD5
alt2: Reserved
alt5: ARM_TCK
'34':
name: Ground
type: GND
'35':
name: MISO
description: SPI Master-In
type: GPIO/SPI
scheme:
wiringpi: 24
bcm: 19
functions:
alt0: PCM_FS
alt1: SD11
alt2: Reserved
alt3: BSCSL SCL / SCLK
alt4: SPI1_MISO
alt5: PWM1
'36':
name: ''
type: GPIO
scheme:
wiringpi: 27
bcm: 16
functions:
alt0: Reserved
alt1: SD8
alt2: Reserved
alt3: CTS0
alt4: SPI1_CE2_N
alt5: CTS1
'37':
name: ''
type: GPIO
scheme:
wiringpi: 25
bcm: 26
functions:
alt0: Reserved
alt1: Reserved
alt2: Reserved
alt3: SD1_DAT2
alt4: ARM_TDI
'38':
name: MOSI
description: SPI Master-Out
type: GPIO/SPI
scheme:
wiringpi: 28
bcm: 20
functions:
alt0: PCM_DIN
alt1: SD12
alt2: Reserved
alt3: BSCSL / MISO
alt4: SPI1_MOSI
alt5: CPCLK0
'39':
name: Ground
type: GND
'40':
name: SCLK
description: SPI Clock
type: GPIO/SPI
scheme:
wiringpi: 29
bcm: 21
functions:
alt0: PCM_DOUT
alt1: SD13
alt2: Reserved
alt3: BSCSL / CE_N
alt4: SPI1_SCLK
alt5: GPCLK1

3
src/pt-PT/pin/pin-1.md Normal file
View File

@ -0,0 +1,3 @@
###The 3v3, 3.3 volt, supply pin on the Pi has a max available current of about 50 mA. Enough to power a couple of LEDs or a microprocessor, but not much more.
You should generally use the 5v supply, coupled with a 3v3 regulator for 3.3v projects.

7
src/pt-PT/pin/pin-10.md Normal file
View File

@ -0,0 +1,7 @@
This pin doubles up as the UART recieve pin, RXD. It's also commonly known as "Serial" and, by default, will output a Console from your Pi that, with a suitable Serial cable, you can use to control your Pi via the command-line.
Thus, The UART pins are useful for setting up a "headless" Pi (a Pi without a screen) and getting it connected to a network.
UART can also be extremely useful if you want to talk to Arduino or Propeller boards from your Pi, but you must make sure you disable the Serial Console in raspi-config first.
[Learn more about UART](/pinout/uart)

1
src/pt-PT/pin/pin-12.md Normal file
View File

@ -0,0 +1 @@
The PWM0 output of BCM 18 is particularly useful, in combination with some fast, direct memory access trickery, for driving tricky devices with very specific timings. The WS2812 LEDs on the [Unicorn HAT](/pinout/unicorn_hat) are a good example of this in action.

1
src/pt-PT/pin/pin-14.md Symbolic link
View File

@ -0,0 +1 @@
pin-6.md

5
src/pt-PT/pin/pin-2.md Normal file
View File

@ -0,0 +1,5 @@
###The 5v power pins are connected directly to the Pi's power input and will capably provide the full current of your mains adaptor, less that used by the Pi itself.
With a decent power supply, such as the official Pi adaptor, you can expect to pull about 1.5A.
Don't be disuaded by what sounds like a measly low voltage. You can do a lot with 5v. Power Arduinos, and even run a small Electroluminescent wire inverter right off the 5v pin!

1
src/pt-PT/pin/pin-20.md Symbolic link
View File

@ -0,0 +1 @@
pin-6.md

1
src/pt-PT/pin/pin-25.md Symbolic link
View File

@ -0,0 +1 @@
pin-6.md

1
src/pt-PT/pin/pin-27.md Normal file
View File

@ -0,0 +1 @@
These pins are generally reserved for i2c communication with a HAT EEPROM.

1
src/pt-PT/pin/pin-28.md Symbolic link
View File

@ -0,0 +1 @@
pin-27.md

6
src/pt-PT/pin/pin-3.md Normal file
View File

@ -0,0 +1,6 @@
SDA is one of the i2c pins on the Pi, [learn more about i2c](/pinout/i2c).
It's easy to get started writing a digital HIGH or LOW to a GPIO pin, but you've got to remember a few things:
* Run your script as root
* Set your pin's mode to OUTPUT (1)

1
src/pt-PT/pin/pin-30.md Symbolic link
View File

@ -0,0 +1 @@
pin-6.md

1
src/pt-PT/pin/pin-34.md Symbolic link
View File

@ -0,0 +1 @@
pin-6.md

1
src/pt-PT/pin/pin-39.md Symbolic link
View File

@ -0,0 +1 @@
pin-6.md

1
src/pt-PT/pin/pin-4.md Symbolic link
View File

@ -0,0 +1 @@
pin-2.md

1
src/pt-PT/pin/pin-5.md Normal file
View File

@ -0,0 +1 @@
SCL is one of the i2c pins on the Pi, [learn more about i2c](/pinout/i2c).

1
src/pt-PT/pin/pin-6.md Normal file
View File

@ -0,0 +1 @@
Ground!

7
src/pt-PT/pin/pin-8.md Normal file
View File

@ -0,0 +1,7 @@
This pin doubles up as the UART transmit pin, TXD. It's also commonly known as "Serial" and, by default, will output a Console from your Pi that, with a suitable Serial cable, you can use to control your Pi via the command-line.
Thus, The UART pins are useful for setting up a "headless" Pi (a Pi without a screen) and getting it connected to a network.
UART can also be extremely useful if you want to talk to Arduino or Propeller boards from your Pi, but you must make sure you disable the Serial Console in raspi-config first.
[Learn more about UART](/pinout/uart)

1
src/pt-PT/pin/pin-9.md Symbolic link
View File

@ -0,0 +1 @@
pin-6.md

40
src/pt-PT/settings.yaml Normal file
View File

@ -0,0 +1,40 @@
---
default_desc: The comprehensive Raspberry Pi GPIO Pinout guide for the original Raspberry
Pi, B+ and Pi 2
default_title: Raspberry Pi GPIO Pinout - Pi 1, B+, Pi 2
title_suffix: " at Raspberry Pi GPIO Pinout"
base_url: /pinout/
resource_url: /resources/
domain: pinout.xyz
url_suffix:
urls:
GND: ground
strings:
- made_by: '* Made by {manufacturer}'
- type_hat: '* HAT form-factor'
- type_classic: '* Classic form-factor'
- pin_header: '* {} pin header'
- uses_i2c: '* Uses I2C'
- wiring_pi_pin: 'Wiring Pi pin {}'
overlays:
- ground
- spi
- uart
- i2c
- wiringpi
- arduino-spi
- rtk-000-001
- piborg-ledborg
- piglow
- pibrella
- unicorn-hat
- skywriter-hat
- explorer-hat-pro
- explorer-hat
- display-o-tron
- display-o-tron-hat
- dots
- traffic-hat
- iqaudio-pi-dac
- piano-hat
- sense-hat

66
src/pt-PT/template/layout.html Executable file
View File

@ -0,0 +1,66 @@
<!doctype html>
<html>
<head>
<title>{{title}}</title>
<meta name="description" content="{{description}}" />
<link href='//fonts.googleapis.com/css?family=Sanchez|Ubuntu+Mono' rel='stylesheet' type='text/css' />
<link href='{{resource_url}}prettify/prettify.css' rel='stylesheet' />
<link href="//netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.css" rel="stylesheet">
<link href="{{resource_url}}pinout.css?v={{v}}" rel="stylesheet">
<link href="{{resource_url}}print.css?v={{v}}" rel="stylesheet" media="print">
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
{{hreflang}}
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-69846516-1', 'auto');
ga('send', 'pageview');
</script>
</head>
<body>
<div id="container">
<ul class="main-nav">
<li><a href="http://pi.gadgetoid.com/">Pi Blog</a></li>
<li><a href="http://eagle.gadgetoid.com">Learn Eagle</a></li>
<li><a href="https://twitter.com/gadgetoid"><i class="fa fa-twitter"></i> @Gadgetoid</a></li>
<li><a href="https://github.com/Gadgetoid/Pinout2"><i class="fa fa-github"></i> Contribute</a></li>
{{lang_links}}
</ul>
<h1 class="logo"><a title="Raspberry Pi GPIO Pinout home" href="/"><img src="{{resource_url}}pinout-logo.png" style="top:8px;" /><span>Raspberry Pi</span>n<span class="out">out</span></a></h1>
<div class="overlay-container">
<span>Learn about Pi pins and add-ons <i class="fa fa-arrow-right"></i></span>
<div class="drop-down">
<span>Select&hellip;</span>
<ul class="overlay">
{{overlays}}
</ul>
</div>
</div>
<nav id="gpio">
<div id="pinbase"></div>
<div id="pinbasebplus"></div>
{{nav}}
</nav>
<div id="content">
<div id="pages">
{{content}}
</div>
</div>
<div class="footer" style="clear: both;padding: 20px 0px;text-align:center;">
<p>Thanks to <a href="https://twitter.com/roguehal13">@RogueHAL13</a>, <a href="https://twitter.com/ardadev">@ardadev</a></p>
<p>Spotted an error, want to add your board's pinout? <a href="https://github.com/gadgetoid/Pinout2">Head on over to our GitHub repository</a> and submit an Issue or a Pull Request!</p>
</div>
</div>
<script type="text/javascript" src="//cdn.jsdelivr.net/jquery/1.9.1/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="//cdn.jsdelivr.net/prettify/0.1/prettify.js"></script>
<script src='{{resource_url}}prettify/lang-ruby.js'></script>
<script src='{{resource_url}}prettify/lang-bash.js'></script>
<script src='{{resource_url}}gaat.js'></script>
<script src='{{resource_url}}pinout.js?v={{v}}'></script>
</body>
</html>