美文网首页
树莓派 Raspberry Pi

树莓派 Raspberry Pi

作者: 李霖弢 | 来源:发表于2019-11-21 18:20 被阅读0次

树莓派是一个小型电脑,当前主要流通版本为3B+4B

配置

  • 扩展接口
    均具有40针的GPIO扩展接口
  • 硬盘
    没有硬盘,采用Micro SD卡作为硬盘
    (SD卡是Secure Digital Card的英文缩写,直译就是“安全数字卡”。TF卡即是T-Flash卡,又叫micro SD卡,即微型SD卡。)
  • 跳线
    有三种跳线 : 公对公、母对母、公对母
    不同颜色不影响跳线功能
  • 转接T型板
    通常用于将IO信号口转接出来

系统

支持Raspbianwin10 IOTUBUNTU 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

  1. SSH命令输入sudo raspi-config,选择Interfacing Options=>VNC=>YES=>Finish=>sudo reboot重启
  2. 安装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() # 释放

相关文章

网友评论

      本文标题:树莓派 Raspberry Pi

      本文链接:https://www.haomeiwen.com/subject/uomtwctx.html