Raspberry精要
(→在数梅派安装Arduino IDE) |
(→GPIO命名规范) |
||
第56行: | 第56行: | ||
硬件标注, Python, 命令行各有一套自己的命名和编号规则. | 硬件标注, Python, 命令行各有一套自己的命名和编号规则. | ||
+ | |||
在命令行工具 gpio 是很有用的一个工具。能给出各种命名的映射关系。 | 在命令行工具 gpio 是很有用的一个工具。能给出各种命名的映射关系。 | ||
+ | |||
而gpio 命令自己所采用的命名规范是Name一列所列出d名字 | 而gpio 命令自己所采用的命名规范是Name一列所列出d名字 | ||
+ | |||
扩展板和硬件标注, 多采用BCM命名规范. | 扩展板和硬件标注, 多采用BCM命名规范. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==树莓派LED blink== | ==树莓派LED blink== |
2017年11月16日 (四) 10:08的最后版本
目录 |
[编辑] 1 更改键盘布局
默认是英国布局 @符号被定义为“, 很不方便。 通常设置键盘布局的方法都不管用。 是因为少了下面的两个命令。
sudo setxkbmap -layout us sudo udevadm trigger --subsystem-match=input --action=change
[编辑] 2 在数梅派安装Arduino IDE
只需要简单的安装arduino, 即可将数梅派作为一个开发机来用了.
sudo apt-get update sudo apt-get install arduino
- raspbain的arduino IDE版本略低, 支持UNO没有问题,更新的 Leonardo 和 Due也许还不支持.
[编辑] 3 修改VNC链接分辨率
Raspberry config管理可以方便的安装配置VNC server,只是默认的VNC 分辨率有点低,在网络环境好的情况下可以设置更高的分辨率,以使操作舒适.
vncserver -geometry 1280x800 -depth 16 #命令运行完毕给出一个编号, VNCview内用这个编号连接即可,如果返回1则 vncviewer 192.168.1.209:1
[编辑] 4 数梅派GPIO引脚定义
右图所示为Pi2,Pi3引脚的BCM定义
各个版本详细的GPIO引脚定义参考:
Raspberry 树莓派各个版本的引脚定义
[编辑] 5 GPIO命名规范
不同的软件库对数梅派的GPIO管角命名是不同的.
硬件标注, Python, 命令行各有一套自己的命名和编号规则.
在命令行工具 gpio 是很有用的一个工具。能给出各种命名的映射关系。
而gpio 命令自己所采用的命名规范是Name一列所列出d名字
扩展板和硬件标注, 多采用BCM命名规范.
[编辑] 6 树莓派LED blink
将一个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()
[编辑] 7 GPIO复用情况
有几个GPIO复用的情况, 或者是linux系统占用了,或者是板载设备占用了GPIO, 会导致GPIO工作异常.
- OneWire 占用GPIO.4 (物理引脚7)
如果oneWire设备打开, 则GPIO.7会被占用,导致这个口无法使用. 可以用rasp-config关闭.
- 串口被用做系统控制台
物理口 8, 10 是UART0, 很多情况下可能被Linux. 参考 树莓派实战GPRS 释放UART端口.
- 启用树梅派第二个SPI设备
此设备和RPi3 B+的蓝牙有冲突, 需要禁用板载蓝牙. 参考 禁用蓝牙
- 触摸屏
如果是DSI接口的屏幕, 则不会占用GPIO资源. 其他接口的屏幕多使用SPI/I2C, 会和GPIO冲突.
- 摄像头接口
树梅派摄像头是CSI 接口, 和GPIO不冲突.
- Pin功能复用表