RPi 简易 GPIO 硬件 & 软件教程
- GPIO Protection Circuits
- Basic Circuits: LED output - DC motor - Switch Input - Analogue Sensor
- Intermediate Circuits: Shift Registers - Analogue to Digital - Driving Circuit - Alpha-Numeric Display
- Advanced Circuits: Control Hardware Over The Internet
GPIO引脚直接接入 ARM 处理器的核心,并且是静电敏感的,所以无论何时你应该尽量避免触碰这些引脚.如果你带有静电,例如脱下腈纶套衫,或走过尼龙地毯,触碰GPIO引脚会摧毁你的R-Pi,所以在触碰这些引脚或其他连接在它们上面的东西时,保证自己接地.
在连接底层设备时应该特别的小心,你可能损坏你的RPi, 你的设备,并对你或他人存在潜在的伤害. 你将自己冒受此种风险!
This tutorial is based on this thread and aims to introduce basic circuits which can be used with the RPi's General Purpose Input/Output (GPIO). Basic electronics knowledge will be required (i.e. familiarity with typical discrete components such as transistors, diodes and resistors).
It is highly recommended that additional GPIO Protection Circuits are used to protect the delicate GPIO pins if interfacing to RPi hardware.
- Tutorial: How to use your RPi like an Arduino - Thorough guide to utilizing the GPIO pins in Python, Bash and C.
- Online Circuit Lab - Circuit Design and Simulation - Excellent tool for experimenting with circuits (also used for the circuit diagrams used here)
- Introduction To Embedded Programming - GPIO - In particular there is lots of detailed information about GPIO inputs and outputs for beginners to understand the principles behind the circuits.
- Microchip's PIC Tips and Tricks PDF - Contains lots of useful example circuits for use with PIC micro-controllers, can be adapted for use with the RPi (3.3V GPIO).
- The Electronics Club - An excellent resource for beginner electronics, explains many basic circuits.
In order to protect the Raspberry Pi hardware, it is highly recommended that the GPIO pins are protected in some form to avoid damage.
The following link will introduce some of the ways to do this:
Alternative Test Platforms
Until you have a RPi to test with, there are many alternative platforms available which will allow the testing of basic circuits. In addition, they may be interfaced with directly using the RPi in the future.
- TI LaunchPad - A low cost development platform ($4.30 including free world shipping). Includes programmer/debug board, two processors (with 16 GPIO including I2C/SPI/UART, 8ch 10bit ADC etc).
- Arduino - Common hobbyist development platform. Excellent community support and additional hardware.
- STM32 Primer/EvoPrimer - Self-contained development platform. Mentioned since I may use one at some point (I bought the original Primer a long time ago). It includes a battery, acceleration sensors and built in display screen.
Note: Until RPi devices are available, I can not confirm this will work on a real RPi. For now, I shall be using the TI LaunchPad (see Alternative Test Platforms for details) to test the hardware on (as it is cheap and the logic levels similar).
1. LED output
Directly driven (will need very low powered LED) or driven via transistor (allowing higher current). Includes example 8xLED Test Module.
With or without de-bouncing, protection resistors etc. Includes example 8xSwitch Test Module.
12V relay driver circiut with opto-decoupler. Includes schema.
1. LED output
Completed see above.
MOSFET or Darlington Pair to provide high power drive and reverse bias diode to protect from motor coils.
Completed see above.
Using a basic transistor switch circuit.
An introduction to using additional ICs. In this case, using a parallel to serial 8-bit shift register to read 8 digital inputs using two GPIO pins.
Use of a ADC chip to sample inputs.
For example motor speed control.
(IN-PROGRESS) Control via 4-wire data (total 6 GPIO) and also alternative 2-wire interface circuit.
Interfacing to an I2C device connected to one of the Pi's I2C buses.
Implement web control and monitoring of GPIO connected components.
Communicate with other micro-controllers so that features such as ADCs can be used.
Contributing to this tutorial
This is an open project so please feel welcome to add your own sections and improve its content.
Please see the Talk:RPi Tutorial Easy GPIO Hardware & Software page to discuss this page.