{{indexmenu_n>3}}====== 树莓派从入门到进阶 ====== ===== 点亮树莓派 ===== * 将烧录好系统的SD卡插入卡槽; * 用网线将树莓派以太网口连到局域网上;如果有有显示器等外设,则用HDMI接上显示器,USB口插上鼠标和键盘; * 接上电源线,按下开关,红灯(电源指示灯)亮,绿灯闪烁,系统已经启动。 * 远程登录树莓派;如果有有显示器等外设,则在本地登录树莓派。 注意: - 尽可能使用更大电流的电源,官方USB-C电源参数是:5.1V/3.0A 15.3W ; - 操作主机和树莓派需要连接在同一个局域网上。 {{:40.oshw:raspberry_pi:20180930192143932.gif|}} 树莓派的访问方式 * 外接显示器、鼠标和键盘,实质上是把树莓派当作一个独立的小电脑。 * 使用 USB 转 ttl 串口线通过串口访问树莓派,控制电脑上使用超级终端或者其它串口调试工具如 Xshell。 * 通过网络对树莓派进行控制——SSH、VNC和远程桌面。 酷码STEM实验室主要介绍和使用网络方式访问树莓派,提供学习和开发资源。 ===== 快速启用 ===== 按照以下指南可快速启用树莓派,详细步骤在后续章节中详解。 - 在系统烧录卡Boot中增加一个没有后缀的 ssh 空文件,自动开启ssh服务; - 使用pi账号SSH远程登录树莓派; - 运行sudo raspi-config,在接口设置中打开VNC; - 运行sudo apt-get install xrdp,安装xrdp; - 运行sudo passwd root;sudo passwd –u root解锁root账户; - 使用root账号微软远程桌面客户端登录树莓派; - 按提示设置国家,其他项忽略; - 重启并使用root账号微软远程桌面客户端登录树莓派,显示中文界面; - 进入首选项>Raspberry Pi Configuration,可进行其他系统设置。 ===== 配置 ===== 树莓派4网络接口支持:100/1000Mbps 以太网接口(RJ45接口),支持802.11n无线网络及蓝牙4.1。在实际应用中我们更倾向于使用802.11n无线网络连接以太网。相比较来说,以太网接口是最基础而简单的连接,只需要获得连网树莓派的ip地址,无需配置;而WIFI配置则需要在有线连网基础上进行以下可能的操作: ==== 首次登录 ==== Raspberry Pi默认不开启SSH,因此无显示器系统无法SSH登录使用Raspberry Pi。启动Raspberry Pi前,在系统烧录卡Boot中增加一个没有后缀的 ssh 空文件,会自动开启ssh服务(原生设计的意义何在?)。 远程运行Raspberry Pi(即无显示器方案)最低环境需求: * Raspberry Pi; * Micro SD 卡; * 电源; * 局域网及网线; * 远程电脑。 找到有线网络中Raspberry Pi的ip:在命令行中输入: arp -a 但只会出现ip和对应物理地址列表,具体哪个是Raspberry Pi呢? 最直观的是在路由器中查找(或者使用Advanced IP Scanner搜索局域网IP同样直观): {{:40.oshw:raspberry_pi:20191113211127.png|}} 获得Raspberry Pi的Ip地址后,SSH登录:默认用户名 - 默认密码 * pi - raspberry * root - 空 由于root用户默认不允许SSH方式登陆,首次登陆推荐pi用户登陆Raspbian。 默认用户pi没有root权限,执行以下步骤解锁root账户: sudo passwd root sudo passwd –u root su root 输入设置的root密码登录。 ==== 配置树莓派 ==== sudo raspi-config {{:40.oshw:raspberry_pi:20191113220301.png|}} * 修改当前用户密码:pi * 网络设置:Wi-fi * 启动设置:启动时进入的环境选择,可以选择进入桌面环境或者字符环境。 * 本地设置:时区和语言 * 接口设置:摄像头、SSH、VNC、串口控制、远程GPIO引脚控制等 * 超频: * 高级设置: * 升级: * 关于: 你也可以通过后面介绍的VNC或者RDP,登录到图形界面更直观地配置树莓派。 === 更多网络配置 === 连接 wi-fi 修改/etc/wpa_supplicant/wpa_supplicant.conf,在文件底部添加: network={ ssid="wifi_name" scan_ssid=1 #扫描隐藏wifi网络开关。隐藏WiFi总是在可见WiFi不能连接时才开始连接。 psk="wifi_password" } 设置静态 IP 修改/etc/dhcpcd.conf,在文件底部添加: interface eth0 # 本地网卡 static ip_address=192.168.3.10/24 # 不可与无线网卡ip相同,否则冲突 static routers=192.168.3.1 static domain_name_servers=192.168.3.1 114.114.114.114 # 可省略 interface wlan0 # 无线网卡 static ip_address=192.168.3.11/24 # 不可与本地网卡ip相同,否则冲突 static routers=192.168.3.1 static domain_name_servers=192.168.123.1 114.114.114.114 # 可省略 注意:要在不同局域网环境中使用树莓派,需谨慎设置固定IP,如以上设置将不能连接DHCP 服务器为192.168.1.x的局域网。变通做法是将本地网卡和无线网卡其中一个设置成动态IP(删除一个配置)。 ==== 设置使用环境 ==== === 输入法 === 安装fcitx(Linux下两大主要输入法支持框架,另一个是ibus)及google拼音输入法(酷码STEM实验室习惯使用五笔输入): sudo apt-get install fcitx fcitx-googlepinyin fcitx-module-cloudpinyin === 字体 === 查看系统已安装字体: fc-list :lang=zh 树莓派推荐使用开源的思源(Source or Noto)或文泉驿中文字体,思源字体是谷歌与Adobe推出的无衬线字体,包括思源黑体(Source Han Sans)和思源宋体(Source Han Serif),这是Adobe的命名,Google公司则称为Noto Sans CJK和Noto Serif CJK。 Noto字体已经在Debian中取代文泉驿默认中文字体。 查看/usr/share/fonts/目录,可以删除不必要的字体以减少系统资源占用,并重新建立字体缓存信息: sudo fc-cache -fv === 重启树莓派 === sudo reboot //有更多命令实现相同功能 === 安全关机 === sudo poweroff //有更多命令实现相同功能 ==== 开启图形界面 ==== 在树莓派中使用Linux字符界面是优雅的,但如果有意使用图形界面(特别是初级用户或Windows重度爱好者),可以尝试。默认安装Raspbian的树莓派,可以使用raspi-config命令打开配置界面,选择Interfacing Options项开启VNC连接,并在System Options项选择登录到Desktop,方便以后以VNC Viewer连接到树莓派。 ===== 日常登录 ===== 通过网络对树莓派进行控制包括——字符界面远程访问(SSH服务)和通过图形界面远程访问(VNC和远程桌面),前者方便快捷,后者赏心悦目。从图形界面也可以快速使用命令行, 在图形界面屏幕的左上角有四个按钮,依次为树莓派应用程序菜单、浏览器(Chromium)、文件管理器和LX终端,LX终端类同Windows的 CMD 窗口,以命令行方式操作电脑。 {{:40.oshw:raspberry_pi:20191114095239.png|}} ==== SSH ==== SSH意思是Secure Shell,它是一种加密网络协议,用于安全地在计算机与树莓派之间传输你的数据。项目中也许需要你通过你的计算机的命令行控制树莓派,而不是通过给树莓派连接显示器和键盘来控制。 现在SSH已经预先安装在树莓派系统 Raspbian 中了,所以如果你安装的是最新版本或较新版本的树莓派都是支持SSH使用的。 现在你有一个可以连接树莓派与你的电脑的IP地址了,如果你使用的是Mac,你已经有了内置的SSH,启动你的终端应用并输入: ssh pi@192.168.2.2 如果你在一台PC,还需要附加的一个步骤。 {{:40.oshw:raspberry_pi:140520222043842.jpg|}} 下载并运行PuTTY或者其它支持Windows系统的SSH客户端。输入你的IP地址在如上截图中的输入框中。保持默认端口为22不变。然后安心回车,PuTTY将会提示你输入用户名和密码。输入之后,就可以开始在你的树莓派里远程工作了。 这里的IP地址也可以填写raspberrypi.local,如果不能成功解析需安装Bonjour。 ==== VNC ==== 使用SSH去从命令行远程控制你的Pi是极好的,但是如果你想通过图形界面去管理你的Pi怎么办呢? VNC (Virtual Network Console)是虚拟网络控制台的缩写,在树莓派、手机、电脑或者平板上安装VNC,就可以通过这些设备来远程控制树莓派(需要安装VNC Server,如在前述的Interfacing Options项开启VNC连接,并在System Options项选择登录到Desotop)。VNC Viewer是 VNC 的客户端。常用的VNC有RealVNC 和 TightVNC。 以下是RealVNC Viewer的远程登录界面。如果VNC Viewer连接显示:Viewer cannot currently show the desktop,则需要在raspi-config配置的Advance option - Resolution中更改更高的分辨率。 {{:40.oshw:raspberry_pi:20191113232117.png|}} ==== 远程桌面(RDP) ==== 一些开发者更倾向于使用远程桌面代替VNC。MAC和PC都已经内建了远程桌面连接,只需要在你的树莓派中额外安装xdrp服务器: sudo apt-get install xrdp xdrp是一种在可以在后台运行的计算机守护进程是Microsoft远程桌面协议(RDP)的开源实现,允许您以图形方式控制远程系统,支持Mac和PC上的微软远程桌面客户端。当树莓派中安装好xrdp之后,你的MAC或者PC就可以通过客户端登录到树莓派中了。前提条件是安装了带桌面的Raspberry Pi OS(而不是Raspberry Pi OS Lite),否则需安装桌面(如安装Pixel桌面,sudo apt-get install raspberrypi-ui-mods xinit xserver-xorg)。 {{:40.oshw:raspberry_pi:20191114101138.png?400|}} 出现上述提示时输入你的IP地址。接下来会弹出xrdp窗口,提示你输入用户名和密码。 {{:40.oshw:raspberry_pi:20191114094758.png?400|}} 如果进展顺利,你的树莓派桌面就会在你的电脑屏幕上的窗口里面显示出来了。 {{:40.oshw:raspberry_pi:20191114094910.png|}} 安装samba软件包 sudo apt install -y samba 在Pi上创建Windows文件共享:以便可以将Windows计算机中的文件直接复制到Pi上。在许多情况下这可以派上用场。 xrdp和vnc的对比 | ^xrdp ^vnc ^ | BIOS屏幕显示| 能| 不能| | 全彩支持| 能| 能| | 更改分辨率| 能| 能| | 多显示器| 不支持| 支持| | 图像传输| 图像| 图像和图形| | 视频播放| 不能| GPU加速支持| | 音频传输| 不能| 双向语音控制| | 鼠标控制| 服务器端控制| 服务器端控制| | USB传输 | 不能| USB可以通过网络传输| 提示:vnc功能可以在Raspberry Pi OS中直接启用,xrdp需要额外安装。 ===== 树莓派开发 ===== ==== 界面识别 ==== 以下演示以PuTTY SSH和微软远程桌面登录同一树莓派的界面对比。 {{:40.oshw:raspberry_pi:20191114100521.png|}} === 字符界面入门 === 有必要阅读一些初级的Linux教程,了解Linux的基本命令。当下可以输入以下命令获取快捷的命令列表: $ help === 图形界面入门 === 在图形界面屏幕的左上角有四个按钮,依次为树莓派应用程序菜单、浏览器(Chromium)、文件管理器和LX终端。图形界面通常更容易上手,第一次接触的人也可以到处点点获得经验。需要系统入门的可以学习 程序菜单 > Help里面的Get Started链接和Debian参考手册离线资源。 一些要命的小细节: 输入法 在【应用程序菜单】-【首选项】里有fcitx小企鹅输入法的配置菜单;如果没有,需要安装fcitx及google拼音输入法(酷码STEM实验室习惯使用五笔输入)。 ==== 系统操作 ==== 树莓派适用通用的Linux系统操作手册,比如: === 更换国内源 === 对于开发者非常重要,否则对于互联网连接速度较慢的人来说,**更新系统**和**安装程序**都成问题。 编辑 /etc/apt/sources.list 文件,修改为Debian Buster的国内源([[https://mirrors.tuna.tsinghua.edu.cn/|清华镜像]] | [[http://mirrors.ustc.edu.cn/|中科大镜像]] | [[https://developer.aliyun.com/mirror/|阿里云镜像]]): //中科大源 deb http://mirrors.ustc.edu.cn/debian stable main contrib non-free deb http://mirrors.ustc.edu.cn/debian stable-updates main contrib non-free //或者清华源 deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib 编辑 /etc/apt/sources.list.d/raspi.list 文件,修改为: deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui 更换源后,需要更新本地软件索引: sudo apt-get update === 更新系统 === sudo apt-get update sudo apt-get upgrade sudo apt-get dist-upgrade Debian 使用 pip 库安装程序,同样可以更换镜像源: pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pip -U # 升级pip pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package # 临时更换pip源 # 更换pip源 pip install pip -U pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple === 安装软件 === 如:VIM:VIM 是 Linux 系统上一款文本编辑器,它是操作 Linux 的一款利器。 sudo apt-get install vim 当然在图形桌面提供了Add / Remove Software组件,可以一键安装各类软件。 === 升级软件 === Python:Raspbian默认安装Python 2.7.16,安装升级到3.8。 === 挂载外接存储设备 === 手动挂载、开机挂载和热插挂载U盘。 ==== 开始编程 ==== 酷码STEM实验室介绍树莓派的主要目的是学习Linux、创意编程和控制外部设备,并推荐安装官方Raspbian系统。不以构建数字媒体中心、音乐或游戏平台为目的。 官方Raspbian内部集成了Scratch、Sonic Pi、Minecraft、Mathematica等各种编程软件,完全契合酷码STEM实验室的主题应用。 {{:40.oshw:raspberry_pi:20191114132700.png|}} 需要系统入门的可以学习Raspbian > 程序菜单 > Help里面的Get Started链接和Debian参考手册离线资源。在[[oshw:raspberry_pi:noobs#从入门到进阶书籍推荐]]可以查找到树莓派入门书籍,在[[information_technology:basics:software]]中有更多通用Linux书籍推荐。 ==== 示范项目 ==== 通过以下基础的示范项目,可以快速掌握Linux使用和树莓派开发: === wifi热点 === Pi使用有线连入网络,然后外接USB无线网卡作为热点,提供Wifi接入。 === Web 服务器 === 安装和配置nginx + php + sqlite——nginx 是个轻量级的 Web 服务器,SQLite 是一款轻型的数据库,它们占用资源都非常的低。提示:实际上,树莓派的性能可能不足以作为具有生产力或测试价值的普遍平台。 {{:40.oshw:raspberry_pi:nginx.png|}} === 内核编译与固件升级 === 如果官方提供的内核有些功能不能满足我们的需要或者需要对内核进行部分裁剪,更新树莓派内核。 === GPIO控制 === 除了通过GPIO( 通用 IO 接口,General-purpose input/output)点亮和脚本控制LED灯,还有更多深入的操作。树莓派内核中已经编译自带了 gpio 的驱动,我们常通过一些第三方写好的库函数来完成具体的操作,比较常见的操作库函数有: python GPIO:python为开发语言,不支持 SPI、I2C 或者 1-wire 等总线接口。官方网站—— https://code.google.com/p/raspberry-gpio-python/ wiringPi:C为开发语言,适合之前已经接触过单片机或者嵌入式开发的人群。官方网站—— http://wiringpi.com/ BCM2835 C Library:可以理解为使用C语言实现的相关底层驱动。官方网站—— http://www.airspayce.com/mikem/bcm2835/ ===== 学习资源 ===== [[https://sites.google.com/site/raspberypishare0918/system/app/pages/sitemap/hierarchy|这里]]有一份在线树莓派笔记推荐参考,资料基于2014-2016年信息。