欢迎关注精仪系科协栏目:”科协五分钟“。本栏目每周一期,会向大家介绍科协科创成果,推送最新动态,提供技术交流的平台,也会有面向低年级同学的科普讲解。 本期将会为大家介绍树莓派(Raspberry Pi)——一款基于ARM的微型电脑主板的相关配置和简单使用。 01 什么是树莓派 树莓派(Raspberry Pi)是尺寸仅有信用卡大小的一个小型电脑,能够运行部分linux发行版和Windows IOT系统。您可以将树莓派连接电视、显示器、键盘鼠标等设备使用。 树莓派能替代日常桌面计算机的多种用途,包括文字处理、电子表格、媒体中心甚至是游戏。并且树莓派还可以播放高至1080p的高清视频。可谓是“麻雀虽小,五脏俱全”。 树莓派的能连接的地方大致有这么几处:USB,网卡,HDMI,电源,GPIO,Micro SD卡插槽,CSI摄像头,DSI显示器等。在本次实验中我们会使用GPIO来点亮LED灯,因此会用到GPIO接口。 02 材料准备 因为树莓派只是一块主板,所以在开始玩树莓派之前,我们需要准备一些硬件材料和外设,包括:
其中的显示器鼠标键盘等外设,在配置完远程访问后即可丢掉不用。 另外,还需要一些软件上的准备,包括系统镜像、烧录软件、ssh连接软件等,这些软件可以点击“阅读原文”获取(连校园网不记流量哦)。 (请不要在意混乱的摆放 03 烧录系统 众所周知,我们的每一台电脑都有自己的操作系统,树莓派也不例外,但树莓派本身不自带存储功能,它需要借助一张Micro SD卡来存储数据,所以需要提前将操作系统烧录到Micro SD卡中,树莓派才能正常工作。 在这个环节,你需要用到如下硬件和软件(软件请点击“阅读原文”获取):
烧录步骤如下
4.写入完成后,移除Micro SD卡 至此,系统烧录完成。 04 基本配置与操作 在烧录完系统后,就可以将micro SD卡插入树莓派开机了,在这个环节,你需要准备(软件请点击“阅读原文”获取):
将树莓派连接显示器并插上键盘鼠标等外设,通电后开机。你将看到如下画面: 接下来进行一些简单的配置 1.开启SSH,VNC,GPIO ssh是常用于linux远程控制的通讯协议,VNC指虚拟网络控制台,常用用于可视化控制,GPIO则是用于控制树莓派引脚输入输出的功能,这些为我们使用树莓派提供了极大的便利 图形化方式 在菜单中选中Raspberry Pi Configuration 选择Interfaces选项卡,将SSH、VNC、REMOTE GPIO等选项从Disabled改为Enacted,点击OK后重启 命令行方式 打开命令行,输入命令 sudo raspi-config 进入Interfacing Options选项卡,将SSH、 VNC等选项变为Enabled 2.更改键盘布局 树莓派(raspberry pi)是英国产品,默认键盘布局是英国(GB),我们用的键盘布局一般是美国(US)的。因此需要更改键盘布局使得我们能正确地打出符号。 图形化方式 在菜单中选中Mouse and Keyborad Settings 在Keyboard选项卡中点击Keyborad Layout 将选项改成和下图一样,均改成English(US) 3.连接wifi 点击右上角的wifi图标,选择需要连接的wifi名称,输入密码即可连接 接下来是一些树莓派的基本操作 1.命令行的基本操作 在树莓派中,很大一部分操作是通过命令行来执行的,因此需要学会一些命令行的基本操作。 命令的基本格式:命令 - 参数 / 目标 例:查看/home目录所有文件的命令为 ls -a /home 其中ls的是一个基本命令,意思是list,可以将当前目录下的文件列出来。之后的-a是一个参数,意思是all,表示不会忽略隐藏文件。命令的参数一般在前面加上-或--以示区别。/home表示目标,因此本条命令的意思就是将/home文件夹下所有的文件列出来。linux命令大多都是这种形式。在打完命令后按下回车即可执行命令。 注意:
以下是一些常见的命令: pwd:查看用户的当前目录 cd :来切换目录 ls:显示文件或目录信息 mkdir:当前目录下创建一个空目录 touch:生成一个空文件或更改文件的时间 cp:复制文件或目录 mv:移动文件或目录、文件或目录改名 rm:删除文件或目录 cat:查看文本文件内容 passwd:修改密码 tips:输入命令的时候要常用tab键来补全 如果遇到一个陌生的命令,一般你可以通过在命令后加上--help参数或者键入man 命令来阅读使用说明 2.获取ip地址 在图形界面中按下Ctrl+Alt+T或者点击左上角的终端图标打开终端,输入ifconfig命令即可获取当前树莓派的ip地址。例如目前我连接wifi获得的ip地址为192.168.0.159 3.使用SSH客户端连接 在大部分情况下,我们都是通过ssh来连接树莓派的,接下来以mobaxterm为例演示ssh连接的过程。树莓派默认的用户名为pi,密码为raspberry ①解压mobaxterm的压缩包,打开mobaxterm,点击左上角的Session,在窗口中输入树莓派的ip地址及用户名 ②输入密码,进入命令行界面,左侧是自动开启的sftp服务,可以直接将文件上传到树莓派 4.使用VNC客户端连接 如果需要运行一些在图形界面下才能运行的程序,则可以使用VNC来进行连接。接下来以VNC Viewer为例演示连接过程。 ①打开vnc viewer程序,在上方输入框中输入树莓派的ip地址 ②输入用户名和密码 ③完成连接 5.配置软件源,安装软件 raspbian默认的软件源速度较慢,最好换为国内软件源以加快速度。更换为tuna源操作方法如下 # 编辑 /etc/apt/sources.list文件,删除原文件所有内容,用以下内容取代: 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 软件名 命令来进行安装。 05 使用GPIO点亮LED灯 最后是一个关于树莓派IO的简单例程——使用GPIO点亮LED灯。 通过树莓派的IO口可以外接很多外设,如舵机、红外发送接收模块、继电器、步进电机、各类兼容传感器、屏幕等。通过这些外设可以制作很多有趣的设计。 树莓派的IO口驱动能力是比较弱的,驱动电平为3.3V,高电平驱动比电平驱动能力稍弱些,但这也足够驱动led工作,为方便理解,以下实验以高电平驱动方式进行。IO口输出高电平,led灯亮,输出低电平则灭。 在这个环节,你需要准备(软件请点击“阅读原文”获取)
1. GPIO介绍 GPIO(General Purpose I/O Ports)意思为通用输入/输出端口,通俗地说,就是一些引脚,可以通过它们输出高低电平或者通过它们读入引脚的状态-是高电平或是低电平。GPIO是个比较重要的概念,用户可以通过GPIO口和硬件进行数据交互(如UART),控制硬件工作(如LED、蜂鸣器等),读取硬件的工作状态信号(如中断信号)等。GPIO口的使用非常广泛,掌握了GPIO,差不多相当于掌握了操作硬件的能力。 在树莓派中,有40个GPIO可以进行操作,引脚图如下: 树莓派引脚有三种编码方式 第一种是Board编码,这种就是按照树莓派主板上引脚排针编号。分别对应1~40号排针。 第二种是BCM编码,这种方式是参考 Broadcom SOC 的通道编号,侧重CPU寄存器,是用BCM库或者python编程常采用这种编码 第三种是WPI编码,就是WiringPi编码,把扩展GPIO端口从0开始编码,在使用wiringPi库编程会使用这种编码。 2.连接电路 本次实验使用GPIO.0,即为树莓派BCM编码的17接口,也是Board编码的11接口。 电路原理图如下 实际连接效果图如下 3.使用ssh连接树莓派(略) 4.编辑代码及运行(c语言版) 输入命令 nano test.c 将以下程序粘贴到文件中 #include <wiringPi.h> int main(void) { wiringPiSetup(); pinMode(4, OUTPUT); for (;;){ digitalWrite(0, HIGH); delay(500); digitalWrite(0, LOW); delay(500); } return 0; } 接下来按下Ctrl+x保存退出,之后对c程序进行编译 gcc test.c -o test -lwiringPi
运行 sudo ./test 可以看到面包板上的led在闪烁 5.编辑代码及运行(python版) 输入命令 nano test.py 将以下程序粘贴到文件中 # -*- coding: utf-8 -*- import RPi.GPIO as GPIO import time pin = 11 ## 使用11号引脚 GPIO.setmode(GPIO.BOARD) ## 使用BOARD引脚编号,此外还有 GPIO.BCM GPIO.setup(pin, GPIO.OUT) ## 设置11号引脚输出 while 1: ## 重复 GPIO.output(pin, GPIO.HIGH) ## 打开 GPIO 引脚(HIGH) time.sleep(1) ## 等1秒 GPIO.output(pin, GPIO.LOW) ## 关闭 GPIO 引脚(LOW) time.sleep(1) ## 等1秒 GPIO.cleanup() ## 清除 接下来按下Ctrl+x保存退出,运行python程序 python test.py 最后会得到类似的结果 树莓派上可以安装MC,可以作为自己的服务器(拿来挂北邮人下载,挂个人网页,挂个人云盘),可以当成监控摄像头,可以作为大型智能机器人的嵌入式中央控制器(linux还尤其适合架设AI),更多的可能性都等着你来探索~ 好了,本期科协(十)五分钟到这里就结束了,希望有兴趣有能力做科创的同学能在这条路上走得远一些。 编辑 胡克勤 审核 林逸晗 ---------------------------------------------------------------------------------------------------------------------- 我们尊重原创,也注重分享,文章来源于微信公众号:精小仪,建议关注公众号查看原文。如若侵权请联系qter@qter.org。 ---------------------------------------------------------------------------------------------------------------------- |