树莓派 Raspberry Pi

2019-11-21  本文已影响0人  李霖弢

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

配置

系统

支持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连接

面包板

用于快速构建和测试电路,而无需焊接。
可以通过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() # 释放
上一篇下一篇

猜你喜欢

热点阅读