Raspberry精要

来自Jack's Lab
(版本间的差异)
跳转到: 导航, 搜索
(GPIO复用情况)
(GPIO复用情况)
第135行: 第135行:
  
 
此设备和RPi3 B+的蓝牙有冲突, 需要禁用板载蓝牙. 参考 [https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=146291 禁用蓝牙]
 
此设备和RPi3 B+的蓝牙有冲突, 需要禁用板载蓝牙. 参考 [https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=146291 禁用蓝牙]
 +
 +
*触摸屏
 +
如果是DSI接口的屏幕, 则不会占用GPIO资源. 其他接口的屏幕多使用SPI/I2C, 会和GPIO冲突.
 +
 +
[https://www.element14.com/community/docs/DOC-78156/l/raspberry-pi-7-touchscreen-display DSI接口element14教程]
 +
 +
*摄像头接口
 +
树梅派摄像头是CSI 接口, 和GPIO不冲突.
 +
 +
 +
*Pin功能复用表
 +
 +
[https://elinux.org/RPi_BCM2835_GPIOs#GPIO0  GPIO复用表]
  
 
==树莓派典型项目攻略==
 
==树莓派典型项目攻略==

2017年11月13日 (一) 13:32的版本

目录

1 在数梅派安装Arduino IDE

只需要简单的安装arduino, 即可将数梅派作为一个开发机来用了.


 sudo apt-get update
 sudo apt-get install arduino


  • raspbain的arduino IDE版本略低, 支持UNO没有问题,更新的 Leonardo 和 Due也许还不支持.


2 修改VNC链接分辨率

Raspberry config管理可以方便的安装配置VNC server,只是默认的VNC 分辨率有点低,在网络环境好的情况下可以设置更高的分辨率,以使操作舒适.

vncserver -geometry 1280x800 -depth 16

#命令运行完毕给出一个编号, VNCview内用这个编号连接即可,如果返回1则
vncviewer 192.168.1.209:1

3 数梅派GPIO引脚定义

Raspberry-pi-pinout.png

右图所示为Pi2,Pi3引脚的BCM定义

各个版本详细的GPIO引脚定义参考:


Raspberry 树莓派各个版本的引脚定义




4 GPIO命名规范

Gpio-readall.JPG

不同的软件库对数梅派的GPIO管角命名是不同的.


硬件标注, Python, 命令行各有一套自己的命名和编号规则.

在命令行工具 gpio 是很有用的一个工具。能给出各种命名的映射关系。

而gpio 命令自己所采用的命名规范是Name一列所列出d名字

扩展板和硬件标注, 多采用BCM命名规范.

python库RPi.GPIO 则直接采用Physical引脚编号。






5 树莓派LED blink

Led-blink.png

将一个led串接330欧姆电阻,接物理引脚(就是2x40排针)的11脚(GPIO.0, BCM P17)和3脚(GND)

直接采用gpio命令

gpio mode GPIO.0 out

gpio write GPIO.0 1
gpio write GPIO.0 0

gpio blink GPIO.0


采用python

import RPi.GPIO as GPIO
import time

LedPin = 11    # pin11

def setup():
  GPIO.setmode(GPIO.BOARD)       # Numbers GPIOs by physical location
  GPIO.setup(LedPin, GPIO.OUT)   # Set LedPin's mode is output
  GPIO.output(LedPin, GPIO.HIGH) # Set LedPin high(+3.3V) to turn on led

def blink():
  while True:
    GPIO.output(LedPin, GPIO.LOW)  # led on
    time.sleep(0.5)
    GPIO.output(LedPin, GPIO.HIGH) # led off
    time.sleep(0.5)

def destroy():
  GPIO.output(LedPin, GPIO.LOW)   # led off
  GPIO.cleanup()                  # Release resource

if __name__ == '__main__':     # Program start from here
  setup()
  try:
    blink()
  except KeyboardInterrupt:  # When 'Ctrl+C' is pressed, the child program destroy() will be  executed.
    destroy()

6 GPIO复用情况

Rp23 pinout.png

有几个GPIO复用的情况, 或者是linux系统占用了,或者是板载设备占用了GPIO, 会导致GPIO工作异常.


  • OneWire 占用GPIO.4 (物理引脚7)

如果oneWire设备打开, 则GPIO.7会被占用,导致这个口无法使用. 可以用rasp-config关闭.

  • 串口被用做系统控制台

物理口 8, 10 是UART0, 很多情况下可能被Linux. 参考 树莓派实战GPRS 释放UART端口.

  • 启用树梅派第二个SPI设备

使能SPI1

此设备和RPi3 B+的蓝牙有冲突, 需要禁用板载蓝牙. 参考 禁用蓝牙

  • 触摸屏

如果是DSI接口的屏幕, 则不会占用GPIO资源. 其他接口的屏幕多使用SPI/I2C, 会和GPIO冲突.

DSI接口element14教程

  • 摄像头接口

树梅派摄像头是CSI 接口, 和GPIO不冲突.


  • Pin功能复用表

GPIO复用表

7 树莓派典型项目攻略

树莓派实战GPRS

个人工具
名字空间

变换
操作
导航
工具箱