欢迎光临散文网 会员登陆 & 注册

树莓派入坑笔记(1.上)

2021-08-28 14:57 作者:会整活的剑人  | 我要投稿

这个专栏分上 中 下 三部分

上篇:配置硬件和系统

0:Introduction and Hardware Preparation

如果会数电,模电和C语言,那么阅读体验更佳.如果不会上述知识也没关系,我尽力讲明白,下面先上最终效果.

通俗的说,树莓派4B (Raspberry Pi 4 Model B)可以理解成一个低配的电脑,顶配的单片机,有4个ARM Cortex A72 64位核心,2个USB3.0口,2个USB2.0口,40个GPIO口.我用的这块有8GB的内存和64G的SD卡(功能上相当于硬盘),相比于STM32F1XX的ARM Cortex M3 32位核心在性能上有了非常明显的提升,在开发方式上也相对简单了些,代价是更高的价格,更明显的费电,更严重的发热(需要有风扇).

此外,树莓派4b的通信接口数量更少了,GPIO口上只有1个IIC 1个SPI 1个串口.但是通过USB和CH340模块可以扩展到5个串口.

和STM32F103C8T6对比下,STM32F103C8T6有2个IIC 2个SPI 3个串口.另外1个Micro USB口支持USB2.0,只不过所有的驱动程序需要手写.

我去年入手一个树莓派,只是一直没怎么用到.经历了小学期的必修STM32F103ZET6课程和暑期玩(cai)耍(keng)STM32F103C8T6以后,我想玩一玩这个高端板子,于是就有了这个文章.

在这个实验里面,我们需要在面包板上给各个元件接线

有硬件清单的示意图:


fig.0 接线示意图

仅供参考,字丑勿喷:)

用的128*64 4线制SPI接口的OLED屏幕某宝10块多钱1片 面包板某宝1块多钱1个.

接好后的效果图:


fig.1 效果图 线比较乱


2:Briefing of GPIO and SPI Interface

GPIO(General-purpose input/output),通用型输入输出口,功能类似8051的P0—P3,其接脚可以供使用者由程控自由使用,PIN脚依现实考量可作为通用输入(GPI)或通用输出(GPO)或通用输入与输出(GPIO)如当clock generator, chip select等.

串行外设接口(Serial Peripheral Interface)是一种同步外设接口,它可以使单片机与各种外围设备以串行方式进行通信以交换信息.外围设备包括Flash RAM,网络控制器,LCD显示驱动器,A/D转换器和MCU等.

SPI系统可直接与各个厂家生产的多种标准外围器件接口.它只需4条线:串行时钟线(SCK)、主机输入/从机输出数据线(MISO)、主机输出/从机输人数据线(MOSI)和低电平有效的从机选择线(NSS).

(1)MISO:主设备输入/从设备输出引脚.该引脚在从模式下发送数据,在主模式下接收数据.

(2)MOSI:主设备输出/从设备输入引脚.该引脚在主模式下发送数据,在从模式下接收数据.

(3)SCK:串口时钟,作为主设备的输出,从设备的输入.

(4)NSS:从设备选择.这是一个可选的引脚,用来选择主/从设备.它的功能是用来作为片选引脚,让主设备可以单独地与特定从设备通信,避免数据线上的冲突.

SPI是一个环形总线结构,由NSS、SCK、MISO、MOSI构成,NSS引脚设置为输入,MOSI引脚相互连接,MISO引脚相互连接,数据在主和从之间串行地传输(MSB位在前).

STM32编程中,我们需要直接配置GPIO引脚寄存器或者调用GPIO库来配置GPIO口,直接配置SPI相关寄存器或者调用SPI库(标准库 HAL库均可)来实现相关的SPI通信功能(大概要写或者copy几百行C语言代码).不过在这篇专栏中不涉及:)

在树莓派我们只需要调用类似Arduino风格的库函数即可.主流的有两种,BCM2835(有持续的更新)和WiringPi(因为作者原因现在已经停止使用).本文采用前者.


3:Software setup on Raspberry Pi 

step0:烧录系统

我们用的Ubuntu(一种Linux)不用Windows 10 IoT是因为据说缺硬件驱动,支持不好.

如果不会Linux可以参考这些扫盲博客

上ubuntu官网下载最新的Ubuntu Desktop for Raspberry Pi 镜像 链接:

注意不要下Ubuntu Server因为没有桌面

下载烧录工具 我用的BalenaEtcher

把SD卡插入读卡器,连接电脑,然后打开BalenaEtcher,把刚才下载的镜像挂载进去,点击烧录

烧录完成后把SD卡插入树莓派4B的卡槽.

上电,开机,配置用户,连接自家wifi(先不考虑校园网的情况,因为比较复杂)

step1.配置国内包源

只说核心的步骤.

先联网,然后切换到root用户

有桌面的话可以用gedit打开包源文件`/etc/apt/sources.list`

否则用vim打开: sudo vim /etc/apt/sources.list

以使用清华大学镜像为例 编辑`/etc/apt/sources.list`为以下内容

保存文件(注意需要root权限)

step.2安装需要用的常用软件包

root用户更新包源 安装和升级软件包

在raspi-config里面配置Interface 启用GPIO SPI IIC 串口 SSH

关于树莓派的SSH配置可以参考这些博客:


windows电脑上安装SSH工具putty 和 ftp传文件程序filezilla

树莓派命令行ifconfig 查看ip配置 在wlan0处应该有一个ip地址

在putty里面输入

最重要的是启用root用户

树莓派命令行passwd root 设置root密码启用root

参考下面博文配置root能够远程登录

完成以后在windows上用putty远程ssh登录树莓派(试下普通用户和root)

fig.2配置好SSH


step.3 安装BCM2835

官方网站(下面第1个链接)  下载安装包(下面第2个链接)

在刚才下载安装包的目录打开命令行

如果没有报错,在root用户运行他里面自带的测试程序(src目录下的test)

如果任何一个环节有报错要回去检查

至此 上篇硬件配置基本上算完成了,中篇更新Python处理视频.


树莓派入坑笔记(1.上)的评论 (共 条)

分享到微博请遵守国家法律