作者:陈拓 chentuo@ms.xab.ac.cn 2018.05.16/2018.06.09
0. 概述
本位介绍两种电脑连接树莓派Pi Zero W的方法:
- 电脑通过USB以太网连接树莓派ZeroW
- 电脑通过WiFi连接树莓派ZeroW
1. 外观
1.1 电路板正面
Pi Zero W有两个micro USB,标有PWR IN的是电源接口,没有数据功能;标记USB的是OTG接口,可以使用USB-OTG线接USB-Hub,继而连接鼠标键盘、有线无线网卡、U盘等其他设备。两个micro USB都可以供电,对电源的要求5V1A。
1.2 电路板背面
1.3 CSI接口
摄像头CSI(COMS Sensor Interface)接口
1.4 预留的接口,"RUN"和"TV"
"RUN"在3B上也有,短接后有复位和重启的效果。"TV" 复合视频输出,用于老式的电视作为树莓派 Zero 的显示器。
1.5 无线传输
WiFi和蓝牙和3B一样,都由BCM43438芯片提供支持,但是两者间不同之处在于天线的设计。3B使用的是陶瓷天线,ZeroW上用的则是一种“新颖的天线”设计。
Zero W天线由瑞典天线专家Proant AB亲自操刀设计,据说要比3B的陶瓷天线还要好那么一点点。
1.6 参数
Raspberry Pi Zero W的发布时间2017年。
2. 准备
2.1 设备
- 树莓派zero w
- TF 卡(至少8G)
- Micro USB 数据线(充电线就可以,不使用USB网卡功能)
- 电脑,本文使用windows 7
2.2 烧录操作系统
树莓派支持很多系统,建议使用Raspbian,能得到更多的社区支持。进入树莓派官网的RASPBIAN映像下载页面:https://www.raspberrypi.org/downloads/raspbian/,看看官方介绍。
Raspbian是基金会官方支持的操作系统。您可以使用NOOBS安装它,或者下载下面的映像并按照我们的安装指南操作。
Raspbian预装了大量用于教育,编程和一般用途的软件。有Python,Scratch,Sonic Pi,Java,Mathematica等等。
ZIP压缩文件中包含的带有桌面映像的Raspbian,大小超过4GB,这意味着这些压缩文件使用的功能在某些平台上不受较旧的解压缩工具支持。如果您发现下载似乎已损坏或文件未正确解压缩,请尝试使用7Zip(Windows)或Unarchiver(Macintosh)。两者都是免费的,并且已经过测试可以正确解压缩映像。
- 官网下载RASPBIAN JESSIE LITE镜像
选择Download ZIP下载2018-04-18-raspbian-stretch-lite.zip(349MB),解压得到img映像文件2018-04-18-raspbian-stretch-lite.img(1.73GB)。
- 下载并安装镜像烧录工具Win32 Disk Imager。
https://sourceforge.net/projects/win32diskimager/files/Archive/win32diskimager-v0.9-binary.zip/download
- 将img映像文件烧录到SD卡
先格式化SD卡,新卡不用格式化。打开Win32 Disk Imager,如图选择好镜像和SD卡盘符,单击Write即可开始烧录,过程可能长达几分钟,烧写成功后点Exit退出即可。
3. USB数据线访问Pi Zero W
USB分USB Host和USB Device两种角色,PC一般是USB Host,手机等数码设备通常是USB Device。OTG则使设备既可以是USB Device,也可以是USB Host。在Linux中,作为USB Device的设备被称为Gadget。
用USB数据线访问Pi Zero W其实就是使用USB Gadget驱动将USB-OTG模拟为有线网卡,之前需要的设置比较繁琐,好在新版的Raspbian内核不需要额外安装补丁,可以直接启用,另外虚拟出来的网卡和有线网卡基本一样,不像串口那样只能打开一个终端。方法如下:
3.1 配置
在Windows 7系统下,用读卡器操作。
- 修改boot分区里的config.txt文件,在最后一行下面,另起一行添加: dtoverlay=dwc2
- 修改boot分区里的cmdline.txt文件,找到单词rootwait,在其之后添加:modules-load=dwc2,g_ether
注意每个参数之间空格分开,且都是在同一行。
注意:关于dtoverlay的更多内容可以查看boot/overlay文件夹里的README。
- 在boot分区根目录创建一个文本文件,然后重命名为ssh,注意去掉.txt后缀,此时即可以 开启ssh登录(新版Raspbian的改动)。SSH默认关闭,因此需要在boot分区创建一个名为ssh的文件来开启SSH服务。
注意:这个ssh文件容易丢失,如果ssh不能登录了,先检查ssh是否丢失。
3.2 开机上电
插好TF卡,将Micro USB数据线一头接在Zero W USB接口,一头连接电脑,稍等片刻即可听到“咯噔”一声,如果正常此时电脑会安装相关驱动并显示一个新网卡。
如果显示:
需要RNDIS Ethernet Gadget windows7驱动程序,Windows7已经自带了相关驱动, 只是默认不会让它正常安装,需要自行安装。安装方法:
在设备管理器中选中未安装驱动的RNDIS/Ethernet Gadget device,更新驱动程序 -> 手动选择驱动程序 -> 从计算机的驱动程序列表中选择 -> 网络适配器 -> Microsoft Corporation -> Remote NDIS Compatible Device,然后会有提示不建议安装此驱动程序因为无法确认是否与硬件相匹配,请忽略警告,继续。
查看网络适配器,最后那个就是USB以太网卡了。
3.3 电脑通过putty连接Pi Zero W
官网下载https://www.putty.org/
打开putty,Host Name填raspberrypi.local,端口22,用户名pi,密码raspberry即可通过USB以太网使用SSH登录控制Zero W了。
点击Open,显示:
Win7安装RNDIS驱动后raspberrypi.local不能识别,解决辦法是通過安裝Bonjour软件让电脑可以识别raspberrypi.local主机名。
下载并安装Bonjour,再次运行putty,登录Pi Zero W,弹出安全设置选项:
点击Y将该主机添加到putty。出现下面的错误:
解决办法,设置如下:
再次运行putty:
终于看到这个界面啦,心中一阵欣喜!
3.4 设置共享互联网连接(没什么太大用处,可以跳过)
打开网络和共享中心:
双击本地连接4:
点击属性:
这个连接就是RNDIS/Ethernet Gadget #3。
回到网络和共享中心,点击“无线网络连接”,这是本电脑的网络连接。
点击属性,选择共享标签:
勾选允许其他网络用户通过……,家庭网络连接选择前面看过的本地连接 4。
点击“确定”,测试:
Ctrl+z退出ping。或者sudo ping -c4 www.baidu.com,只ping 4次。
4. Pi Zero W连接WiFi
- 扫描周围的无线局域网:命令: sudo iwlist wlan0 scan
- 找到要连接的SSID、ESSID:ESSID:"TP-LINK_A929"
- 配置wifi连接
- 修改/etc/network/interfaces文件,使wlan0为动态分配获取IP。
命令: sudo nano /etc/network/interfaces
添加以下语句:
auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
输入后,使用组合键“Ctrl + X”,然后输入“Y”,回车保存修改。
查看确认一下修改:
pi@raspberrypi:~ $ sudo cat /etc/network/interfaces
-
- 修改/etc/wpa_supplicant/wpa_supplicant.conf文件
命令: sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
在文档的最后加入:
network={
ssid="wpa-ssid"
psk="password"
}
wpa-ssid就是前面找到的SSID:TP-LINK_A929。
password是WiFi密码。
注意:加入语句的格式一定要正确,“=”附近不能有空格,格式错误会导致不能连接到wifi。ssid 位置输入WiFi的名称,psk 位置输入WiFi的密码,请注意,key_mgmt=NONE表示没有WiFi密码。
- 检查ssh文件是否存在:pi@raspberrypi:~ $ ls /boot
如果不存在,创建:pi@raspberrypi:~ $ sudo touch /boot/ssh
- 退出ssh
注意:为防止文件丢失,请按第5小节的步骤关闭电源。
- 将USB线插到PWR IN口上,打开putty,Host Name填raspberrypi.local,端口22,用户名pi,密码raspberry即可通过WiFi使用SSH登录控制Zero W了。
USB线只是供电,没有数据通信。
5. 关机
为防止文件丢失,请按下面的步骤关闭电源。
- 登录putty的ssh终端
- pi@raspberrypi:~ $ sudo shutdown -h now
- 等待电源指示灯熄灭后,关闭电源
参考文档
树莓派介绍