树莓派是一个小型电脑,当前主要流通版本为3B+和4B
配置
- 扩展接口
均具有40针的GPIO扩展接口 - 硬盘
没有硬盘,采用Micro SD卡作为硬盘
(SD卡是Secure Digital Card的英文缩写,直译就是“安全数字卡”。TF卡即是T-Flash卡,又叫micro SD卡,即微型SD卡。) - 跳线
有三种跳线 : 公对公、母对母、公对母
不同颜色不影响跳线功能 - 转接T型板
通常用于将IO
信号口转接出来
系统
支持Raspbian、win10 IOT、UBUNTU MATE等,推荐使用官方的Raspbian系统(基于Debian)
SSH配置
在根目录(boot)中新建SSH
文件(无后缀)以开启SSH(或输入指令/etc/init.d/ssh start
临时开启)
通过ifconfig
查看IP,通过默认账户 pi
,密码 raspberry
进行SSH连接即可
显示配置
修改config.txt
文件配置分辨率
(或SSH命令输入sudo raspi-config
,选择Advanced Options
=>Resolution
=>除Default
以外的任意选项=>sudo reboot
重启)
显示配置后可连接显示屏或进行远程桌面
远程桌面
注意,首先要执行显示配置,否则会显示cannot currently show the desktop
- SSH命令输入
sudo raspi-config
,选择Interfacing Options
=>VNC
=>YES
=>Finish
=>sudo reboot
重启 - 安装VNC-Viewer,并在同一局域网下输入树莓派IP进行远程桌面
wifi连接
- 有显示器则直接在界面上配置
- 无显示器则在根目录(boot)中新建
wpa_supplicant.conf
文件并进行配置以连接wifi
ping baidu.com
查看是否连接成功
面包板
用于快速构建和测试电路,而无需焊接。
可以通过circuit diagram
软件模拟线路
安装/卸载软件
树莓派中预安装了apt-get
包管理器
- 安装软件
apt-get install <包名>
- 删除软件
apt-get remove <包名>
- 删除软件及其配置文件
apt-get purge <包名>
使用 RPi.GPIO 编程
查看版本信息
RPi信息:
GPIO.RPI_INFO
Raspberry Pi电路板版本:
GPIO.RPI_INFO [ 'P1_REVISION']
GPIO.RPI_REVISION(不建议使用)
RPi.GPIO的版本:
GPIO.VERSION
输入输出
0/GPIO.LOW/False
1/GPIO.HIGH/True
import RPi.GPIO as GPIO # 导入RPi.GPIO
import time
GPIO.setwarnings(False) # 对已设置过的端口再次设置时默认会出现warning,通过该方法关闭warning
GPIO.setmode(GPIO.BOARD) # 使用BOARD(即按1~40)编号模式 还有一种为BCM模式
# print(GPIO.getmode()) # 查看当前mode
GPIO.setup([7,11], GPIO.OUT) # 将7、11号设为输出
GPIO.output(7, GPIO.HIGH) # 将11号设为高电平(3.3V)
GPIO.output(11, GPIO.LOW) # 将11号设为低电平(0V)
GPIO.output(11, not GPIO.input(11)) # 使用 input() 读取当前状态并取反
GPIO.setup(12, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) # 将12号设为输入,且为下拉(0V)
GPIO.setup(13, GPIO.IN, pull_up_down=GPIO.PUD_UP) # 将13号设为输入,且为上拉(3.3V)
print(GPIO.input(12)) # 展示12号当前的输入值,1为高,0为低
# GPIO.RISING、GPIO.FALLING、GPIO.BOTH
# 事件侦听
GPIO.add_event_detect(12,GPIO.RISING,callback=detectChange,bouncetime=20)
# 如果未传入callback,也可以单独添加,以此方式添加的回调方法会按添加顺序依次执行
GPIO.add_event_callback(channel, my_callback_1)
GPIO.add_event_callback(channel, my_callback_2)
def detectChange(chn):
print("now change channel",chn) #12
# 监听12号的输入状态变化,当状态由GPIO.FALLING变为GPIO.RISING时触发callback,每次触发间隔至少为bouncetime毫秒(开关防抖)
GPIO.remove_event_detect(12) # 撤销12号的监听
# 边缘检测
GPIO.wait_for_edge(13, GPIO.BOTH)
# 阻塞程序执行,直到13号的输入状态发生任意变化
GPIO.cleanup() # 释放当前module中所有被setup过的引脚
# GPIO.cleanup( [channel1, channel2] ) 仅释放部分引脚
PWM
可用于led频闪等
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)
GPIO.setup(12, GPIO.OUT) # 输出
p = GPIO.PWM(12, 50) # 创建一个 PWM 实例:通道,频率(一般为50HZ,可为100HZ)
# 启用 PWM:
p.start(dc) # dc 代表占空比(范围:(熄灭)0.0 <= dc >= 100.0(最亮))
# 更改频率:
p.ChangeFrequency(freq) # freq 为设置的新频率,单位为 Hz
# 更改占空比:
p.ChangeDutyCycle(dc) # 范围:0.0 <= dc >= 100.0
p.stop() # 停止 PWM
GPIO.cleanup() # 释放
网友评论