首页 > 其他分享 >树莓派5B -零基础应用开发系列

树莓派5B -零基础应用开发系列

时间:2024-09-24 21:48:25浏览次数:11  
标签:树莓 系列 引脚 chenxixichen unused ssh GPIO 5B

树莓派5B - 零基础应用开发(第一期)

一、树莓派的开始

1.准备工作

① 建议在树莓派官网下载相对应的镜像文件,树莓派镜像下载,网站如下所示:https://www.raspberrypi.org/downloads/raspberry-pi-os/
② 把SD卡格式化,使用SDFormatter进行开始格式化操作。
③ 把在官网下载好的镜像通过imager_1.8.1烧录到SD卡中,在设置中配置好用户名,密码等有关信息。注意建议打开ssh公钥服务,后面远程连接有用。
④ 烧录到SD卡后,插入树莓派,一开始因为系统是没配置好的,需要对外接显示屏,随便一个可以显示的都行,因为后面主要也是使用vnc和vscode的远程连接控制编程。开始直接开机,完成准备工作。

2.远程vnc的配置

① 打开终端,输入以下命令启动配置工具sudo raspi-config
在界面中直接启动vnc和ssh服务。
② 在终端下使用ifconfig找到自己的IP,在自己的电脑中打开vnc输入树莓派的ip地址,则可以在笔记本上直接控制树莓派了,这样树莓派所接的外设就会大幅降低。

3.远程vscode的配置(使用密钥连接)

① 在windows上打开windows终端,输入以下命令生成 SSH 密钥对ssh-keygen -t rsa -b 4096 -C “[email protected]”,这里你可以自己选择.ssh创建的位置
② 在树莓派上打开终端,创建 .ssh 目录: 一旦你成功登录到树莓派,创建 .ssh 目录并设置权限。
mkdir -p ~/.ssh
chmod 700 ~/.ssh
③ 创建 authorized_keys 文件: 接下来,你需要创建 authorized_keys 文件以存储你的公钥。
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
④ 在windows上获取公钥内容: 在本地机器上运行以下命令,查看你的公钥:
cat ~/.ssh/raspberry_id_rsa.pub
⑤ 在树莓派上打开 authorized_keys 文件,将公钥粘贴进去
nano ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
⑥ 打开 VSCode,在左侧的扩展视图(点击左边的方块图标,或按 Ctrl+Shift+X)中搜索 Remote - SSH,点击 Install 安装该扩展。
⑦ 输入以下命令来配置 SSH 连接 ssh [email protected]
⑧ 在 ~/.ssh/config 文件中添加以下内容:
Host chenxixichen
HostName 168.124.2.156
User chenxixichen
IdentityFile ~/.ssh/raspberry_id_rsa
⑨ 接着启动vscode远程连接,打开 VSCode 的命令面板(Ctrl+Shift+P),选择 Remote-SSH: Connect to Host。选择配置的主机名 chenxixichen。VSCode 会通过 SSH 密钥自动连接到树莓派。
⑩ 最后输入树莓派的密码,就可以远程控制树莓派了。

4.更改树莓派的镜像让下载更加快速

我选择的是更换清华的镜像源(arm64),以下的步骤如下所示
① 备份 /etc/apt/sources.list.d/raspi.list
sudo cp -r /etc/apt/sources.list.d/raspi.list /
/etc/apt/sources.list.d/raspi.list.bak
② 编辑 /etc/apt/sources.list
打开文件:sudo nano /etc/apt/sources.list
将现有的内容替换为清华的 Debian 源(适用于 Raspberry Pi OS 基于 Debian 的版本):
清华大学 Debian 镜像源
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free
编辑 /etc/apt/sources.list.d/raspi.list
打开文件:sudo nano /etc/apt/sources.list.d/raspi.list
将内容替换为清华提供的树莓派镜像源:
清华大学 Raspbian 镜像源
deb https://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ bookworm main contrib non-free rpi
deb-src https://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ bookworm main contrib non-free rpi
注意事项:
③ 保存并退出编辑器后,更新软件包列表:sudo apt update
升级现有软件包:sudo apt upgrade。

二.点亮一个流水灯

在树莓派中如果需要点亮一个流水灯,则需要对树莓派的GPIO进行相应的控制。其中有多个方法来实现。

1.在终端下实现流水灯-写一个简单的脚本

由于我的树莓派是树莓派5B,对于以前的wiringpi的命令不太兼容,通过 libgpiod,可以很方便地控制树莓派等设备上的 GPIO 引脚,libgpiod 提供了命令行工具来读取和设置 GPIO 引脚的状态。
libgpiod 提供了一套命令行工具,用于管理和控制 GPIO 引脚。以下是常用的 libgpiod 工具及其对应的功能和示例。

a.gpiodetect
列出系统中的所有 GPIO 芯片。可以帮助你确认 GPIO 控制器的芯片编号。
chenxixichen@chenxixichen:~ $ gpiodetect
gpiochip0 [gpio-brcmstb@107d508500] (32 lines)
gpiochip1 [gpio-brcmstb@107d508520] (4 lines)
gpiochip2 [gpio-brcmstb@107d517c00] (17 lines)
gpiochip3 [gpio-brcmstb@107d517c20] (6 lines)
gpiochip4 [pinctrl-rp1] (54 lines)

b.gpioinfo
显示某个 GPIO 芯片的详细信息,包括引脚的当前状态、方向、名称等。
chenxixichen@chenxixichen:~ $ gpioinfo gpiochip4
gpiochip4 - 54 lines:
line 0: “ID_SDA” unused input active-high
line 1: “ID_SCL” unused input active-high
line 2: “GPIO2” unused input active-high
line 3: “GPIO3” unused input active-high
line 4: “GPIO4” unused input active-high
line 5: “GPIO5” unused input active-high
line 6: “GPIO6” unused input active-high
line 7: “GPIO7” unused input active-high
line 8: “GPIO8” unused input active-high
line 9: “GPIO9” unused input active-high
line 10: “GPIO10” unused input active-high
line 11: “GPIO11” unused input active-high

在 gpioinfo 命令的输出中,unused 表示该引脚当前未被任何用户空间的应用程序或驱动程序主动占用,即它并没有被绑定到任何具体的任务上。即便引脚设置为输入或输出模式,gpioinfo 仍会显示 unused,表示该引脚没有被明确分配给某个设备或功能。
c.gpioset
设置 GPIO 引脚的输出值(高/低电平)。此命令通常用于控制设备,例如点亮 LED 或控制电机。
gpioset <gpiochip编号> <引脚编号>=<值>
gpioset 命令的默认行为是在设置完 GPIO 状态后会立即释放引脚。当引脚被释放后,它可能会恢复到设备树或系统启动时的默认状态。这意味着,即使你将 GPIO7 设置为低电平,命令执行后,GPIO7 会恢复为高电平,或回到初始配置状态。如果你希望长期保持 GPIO 引脚的状态,建议使用 -m signal 模式,它会一直保持引脚的状态,直到手动发送信号结束进程
使用 -m signal参数来保持引脚的状态,防止其被释放:
-m signal 模式:保持 GPIO 状态直到进程接收到信号终止。
-m wait 模式:等待用户手动按下 Enter 键来结束,期间 GPIO 状态保持。
-m time 模式:设置 GPIO 状态并保持指定的时间。
chenxixichen@chenxixichen:~ $ gpioset -m signal gpiochip4 6=1
chenxixichen@chenxixichen:~ $ gpioset -m signal gpiochip4 7=0
d.gpioget
读取 GPIO 引脚的当前值(高/低电平)。这通常用于获取传感器输入或按钮状态。
gpioget <gpiochip编号> <引脚编号>
chenxixichen@chenxixichen:~ $ gpioget gpiochip4 6

e.gpiofind
根据引脚名称查找特定的 GPIO 引脚。
gpiofind <引脚名称>
chenxixichen@chenxixichen:~ $ gpiofind GPIO6
gpiochip4 6
f.gpiomon
监视 GPIO 引脚的状态变化,例如监控按钮按下或传感器的状态变化。当 GPIO 输入引脚的电平发生变化时,gpiomon 会输出一条事件。
gpiomon <gpiochip编号> <引脚编号>
chenxixichen@chenxixichen:~ $ gpiomon gpiochip4 6
g.gpio-hog
GPIO hog 是指在设备树中将 GPIO 引脚设置为特定状态(高电平或低电平)并锁定。它是一种在设备树中静态配置 GPIO 状态的方法,而不是通过用户空间工具动态控制。
可以写一个脚本来控制
脚本控制

2.在远程vscode下实现流水灯-写一个简单的pthon程序

注意树莓派5b不支持RPi.GPIO,故本次使用gpiod来导入相应的库
py控制

3.在远程vscode下实现流水灯-写一个简单的c程序

使用 libgpiod 库的 简单C 程序
在这里插入图片描述
想要源码,可以讨论区联系我!!!
会持续更新,大家一起加油呀!!!
谢谢大家的支持!!!点个小赞赞吧

标签:树莓,系列,引脚,chenxixichen,unused,ssh,GPIO,5B
From: https://blog.csdn.net/2401_87627523/article/details/142501011

相关文章

  • git-repo系列教程(7) 解决copyfile,linkfile 不起作用
    问题描述#建立如下目录tree.├──repo_manifest│  └──default.xml#默认清单└──repo_test#测试仓库├──Makefile└──readme.mddefault.xml内容<?xmlversion="1.0"encoding="UTF-8"?><manifest><remotename="server"......
  • 基于旗芯微FC4150系列的DMA详解
    1.概述DMA的中文名称是直接内存访问,它不需要CPU的参与,实现数据传输的技术(但是也会占用总线带宽,所以有时候使用DMA虽然会降低CPU负载,但提高访问数据速度并不高)。1.1旗芯微FC4150系列芯片DMA特征·所有数据的传输都是从源地址写入到目标地址,源地址和目标地址以及传输大小都是......
  • 新一代工业物联网连接:DRP10188300001,DRP10188300002,DRP10188300011,DRP10188300012
    工业以太网连接器能够实现以太网和其他工业协议的物联网连接,覆盖了从企业/云到工厂车间中传感器/执行器的所有操作层面。工业RJ系列模块化以太网插头提供符合ANSI/TIA-568.2-D的CAT6A性能。它在长达100m的应用中支持千兆位以太网协议和10G链路。可现场端接的设计便于组......
  • 超详细的系列总结!大模型岗面试题(含答案)来了!(大语音模型基础篇二)
    前言大模型应该是目前当之无愧的最有影响力的AI技术,它正在革新各个行业,包括自然语言处理、机器翻译、内容创作和客户服务等,正成为未来商业环境的重要组成部分。截至目前大模型已超过200个,在大模型纵横的时代,不仅大模型技术越来越卷,就连大模型相关岗位和面试也开始越来越卷......
  • 通过jlink连接树莓派4b搭建gdb调试环境
    参考资料jlink使用的是博光微的jlinkv9树莓派使用的是4bjlink与树莓派链接按照表中的内容进行链接,注意链接过程要小心仔细,否则后续排查起来十分麻烦下载openocd由于我是在linux环境下,所以省去了jlink的驱动安装,直接先下载openocdsudoaptinstallopenocd注意不要去......
  • 铁威马秋季新品系列NAS正式发售,让你的数字生活焕然‘新’存!
    2024.09.19铁威马秋季系列新品NAS全球正式发售啦这次我们不仅延续了铁威马的高品质基因还在智能化和便捷性上玩出了新花样无论是个人用户、中小企业还是专业工作室都能找到满足你数据存储与管理需求的完美搭档一、新品亮点一睹为快1F8SSD/F8SSDPlus  F8SSD/......
  • 小米15系列旗舰新品齐获3C认证,10-11月手机大战一触即发
    【9月24日最新资讯】&nbsp;小米15标准版(型号24129PN74C)与小米15Pro(型号2410DPN6CC)接连获得国家质量监督检验检疫总局3C强制性产品认证,预示着这两款备受瞩目的旗舰新机离正式面世又迈进一大步。两者均配备最高90W超级快充技术,彰显了小米在快速充电领域持续领跑的决心。北京昌......
  • 运维系列【亲测有效】:centos7时间同步教程
    centos7时间同步教程centos7时间同步教程centos7查看时间centos7时间同步教程第一种方法,命令有点多1.通过命令查看时间不同步2.修改/etc/sysconfig/clock文件如下内容,保存3.重写`/etc/localtime`,执行如下,回车4.重启服务器使时区生效,需要再次登录服务器......
  • GEE APP:Best Available Pixel (BAP)APP Landsat系列最佳影像的筛选应用
    目录简介参数说明像素评分功能场景中最大云层覆盖率大气不透明度Landsat-7ETM+SLC-off惩罚高级参数应用去尖峰算法Applyde-spikingalgorithm填充数据间隙执行进展library代码UI代码 web界面提示引用BAPcompositesassessmentBAPpracticaldemonstrat......
  • 崖山从0到1系列06-崖山数据库双机高可用环境部署
    崖山从0到1系列06-崖山数据库双机高可用环境部署简单步骤环境:两台机器192.168.127.39192.168.127.40基础配置:调整机器的时钟,确保机器时钟一致。检测机器之前的网络通信情况,确保个节点通信正常创建yashan用户home目录和data目录划分。数据文件、redo文件以及归档......