第1章:树莓派环境搭建
各位同学好,我是你们这门课的老朋友。今天咱们正式开干——把树莓派的环境搭起来。
说实话,我最早接触树莓派是在2015年,那时候还是B+型号。现在回想起来,当时烧录系统还得用Win32DiskImager,折腾了一下午才搞定。现在工具成熟多了,但核心步骤没变。咱们一步步来。
1.1 树莓派系统烧录
树莓派本身不带存储,系统得装在SD卡上。我个人习惯用官方工具——Raspberry Pi Imager,省心。
步骤:
- 下载Raspberry Pi Imager(官网就有,免费)
- 插入SD卡(建议16GB以上,Class 10速度)
- 打开Imager,选择:
Raspberry Pi OS (32-bit) → 选带桌面版 - 选择SD卡,点击写入
- 等待进度条跑完(大概5-10分钟)
我的小经验:写入完成后,别急着拔卡。系统会提示你拔插一次,这是为了验证写入完整性。我吃过亏——有一次没验证,结果上电后系统起不来,排查了半天才发现是SD卡坏块。
1.2 SSH远程连接
树莓派接显示器键盘当然可以,但咱们做嵌入式开发的,谁愿意老蹲在设备旁边?SSH才是王道。
启用SSH:
- 方法一:烧录后在SD卡根目录新建一个空文件,命名为
ssh(无后缀) - 方法二:第一次启动时在raspi-config里开启
连接命令很简单:
ssh pi@树莓派IP地址
默认密码是 raspberry。嗯,这里要注意——第一次登录后,我强烈建议你立刻改密码。
避坑指南:我曾经在一个项目里,树莓派暴露在公网上,默认密码没改。结果第二天发现被人植入了挖矿程序,CPU跑满100%。从那以后,我每次烧录完第一件事就是改密码。
1.3 WiFi配置
树莓派3B+以后都自带WiFi模块。配置WiFi有两种方式:
方式一:命令行配置
sudo raspi-config
→ 选择 "System Options" → "Wireless LAN"
→ 输入SSID和密码
方式二:直接编辑配置文件
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
在里面添加:
network={
ssid="你的WiFi名称"
psk="你的WiFi密码"
key_mgmt=WPA-PSK
}
保存退出后重启网络服务:
sudo systemctl restart networking
我个人更推荐第二种方式,因为可以提前写好配置,批量部署时特别方便。
1.4 GPIO引脚介绍
树莓派的GPIO(通用输入输出引脚)是咱们和外部传感器打交道的桥梁。40个引脚,功能丰富。
引脚布局(以树莓派3B+为例):
| 物理引脚 | 功能 | BCM编号 |
|---|---|---|
| 1 | 3.3V电源 | - |
| 2 | 5V电源 | - |
| 3 | I2C SDA | 2 |
| 5 | I2C SCL | 3 |
| 8 | UART TX | 14 |
| 10 | UART RX | 15 |
| 19 | SPI MOSI | 10 |
| 21 | SPI MISO | 9 |
| 23 | SPI SCLK | 11 |
| 24 | SPI CE0 | 8 |
重要提醒:GPIO引脚电压是3.3V,不是5V!我见过有人直接把5V传感器接到GPIO上,结果树莓派直接冒烟。嗯,别问我怎么知道的。
1.5 I2C/SPI/UART总线使能
这三个总线是咱们和传感器通信的主要方式。默认情况下,树莓派为了省电,把这些总线都关了。需要手动开启。
开启方法:
sudo raspi-config
→ 选择 "Interface Options"
→ 分别开启 I2C、SPI、Serial Port
或者用命令行直接操作:
# 开启I2C
sudo raspi-config nonint do_i2c 0
# 开启SPI
sudo raspi-config nonint do_spi 0
# 开启UART
sudo raspi-config nonint do_serial 0
重启后验证:
# 检查I2C设备
ls /dev/i2c*
# 检查SPI设备
ls /dev/spi*
# 检查UART设备
ls /dev/ttyAMA0 或 /dev/ttyS0
我的习惯:每次开启新总线后,我都会用
ls /dev/ 看一眼设备节点有没有出现。如果没出现,八成是没重启,或者配置没保存。别问我为什么知道——调试了半小时才发现自己忘了重启。
1.6 验证环境
最后,咱们写个简单的Python脚本,验证一下GPIO能不能用:
import RPi.GPIO as GPIO
import time
# 设置引脚模式
GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.OUT)
# 闪烁LED
while True:
GPIO.output(18, GPIO.HIGH)
time.sleep(1)
GPIO.output(18, GPIO.LOW)
time.sleep(1)
把LED正极接GPIO18,负极接GND。运行脚本,如果LED一闪一闪的,恭喜你——环境搭建成功!
好了,第一章就到这里。下一章咱们开始讲传感器选型和接线,到时候会用到今天配好的I2C和UART总线。记得把环境搭好,别偷懒。
课后作业:用SSH连上你的树莓派,执行
pinout 命令,看看终端输出的引脚图。然后试着点亮一个LED。搞定了再往下学。