设为首页 加入收藏

TOP

机器人编程教程5使用Git和SD卡副本备份代码(一)
2023-08-26 21:10:22 】 浏览:86
Tags:程教程 使用 Git 卡副本

5使用Git和SD卡副本备份代码

在本章中,您将学习到以下内容:

  • 代码是如何破坏或丢失的
  • 策略 1 - 将代码保存在电脑上并上传
  • 策略 2:使用 Git 回溯历史
  • 策略 3 - 制作 SD 卡备份

5.1 代码是如何破坏或丢失的

代码和它的近亲--配置,都需要时间和艰苦的努力。代码需要配置才能运行,例如 Raspberry Pi 操作系统配置、额外软件和必要的数据文件。两者都需要研究和学习,需要设计、制作、测试和调试。

很多糟糕的情况会导致代码丢失。我在经过数周的工作后,在带机器人去参加展会的前一周就遇到过这种情况。那么,您的代码会发生什么情况呢?

5.1.1 SD 卡数据丢失和损坏

SD 卡损坏是指 SD 卡中用来保存代码、Raspberry Pi 操作系统和任何你准备好的东西的数据被破坏。文件无法读取,或者卡无法使用。SD 卡上的信息可能会永久丢失。

如果 Raspberry Pi 意外断电,SD 卡可能会损坏,导致数据丢失。发热的 Pi 会慢慢烘烤 SD卡,损坏它。Pi 上的视觉处理就容易发热。如果Pi通过GPIO引脚或电源发生严重的电气故障,SD 卡也会受损。

5.1.2代码或配置更改

编码意味着尝试。有些会成功,有些则会失败。在这种情况下,你会想回头看看你都改了些什么。

错误的配置也会让机器人失去作用,比如 Pi 无法联网或启动。系统软件包升级可能会出错,导致代码无法工作,或者需要对代码进行大量修改才能重新工作。

这些问题结合在一起可能会造成真正的噩梦。我曾见过代码的修改导致机器人行为失常,并以损坏 SD 卡的方式损坏自身。在一次重要的机器人活动前两周,我一直在更新操作系统的软件包,结果把电源线弄断了,导致 SD 卡损坏,Raspberry Pi 操作系统也随之损坏,重建操作系统的过程非常痛苦。这是一次惨痛的教训。

5.2 策略 1 - 将代码保存在电脑上并上传

通过安全文件传输协议(SFTP),您可以将文件从电脑传输到 Pi。这种策略可以让你在电脑上编写代码,然后上传到 Raspberry Pi。您可以选择自己的编辑器,并安全地拥有多个副本。
编辑代码需要专门设计的软件。针对Python推荐使用Mu、Microsoft VS Code、WingIDE、Geany、Notepad++ 和 PyCharm。

SFTP 使用 SSH 通过网络在 Raspberry Pi 上复制文件。让我们来看看如何操作:

  • 首先,在 PC 上创建一个文件夹,用于存储机器人代码;例如,my_robot_project。

  • 在该文件夹中,用编辑器制作一个测试文件,只需打印一段文字即可。将这段代码放入名为 hello.py 的文件中:


print("Raspberry Pi is alive")

  • 我们将把它复制到机器人上并运行。您可以使用 https://filezilla-project.org 上的 SFTP 工具 FileZilla 进行复制。下载并按照安装说明操作:

  • 插入Raspberry Pi并启动电源。你会发现在右侧面板底部,FileZilla显示"未连接"。
  • 在"Host"框中,键入您在无头设置中为机器人Pi提供的本地主机名,前缀为ftp://;例如,sftp://myrobot.local。
  • 在用户名框中输入pi,在密码框中输入之前设置的密码。
  • 单击 Quickconnect 按钮连接Raspberry Pi。
  • 连接完成后,你会在右侧的远程站点面板中看Raspberry Pi的文件,如图 5.2 所示:

  • 使用左侧的本地站点面板进入你电脑上的代码。

  • 现在单击图左上方突出显示的 hello.py,并将其拖动到右下角面板,将其放到Raspberry Pi上:

  • 你拖动文件时,你会在"已排队文件"部分看到它。由于文件较小,它只会在队列状态中停留一瞬间。你也可以对整个文件夹使用同样的系统。你很快就能在远程站点(Raspberry Pi)看到文件,如图右侧面板所示。

  • 要运行这段代码,请使用 PuTTY 登录 Pi 并尝试执行以下命令:

$ python3 hello.py
Raspberry Pi is alive

这一策略是让代码更安全的良好开端。通过在笔记本电脑/PC 上工作并复制到Pi上,你可以保证除了机器人上的那个副本外,总有一个副本。你还可以在电脑上使用任何你喜欢的代码编辑器,并在错误传到树莓派之前就发现它们。

5.2 策略2:使用Git回溯历史

Git是一种流行的源代码控制形式,是记录代码修改历史的一种方式。你可以回溯修改,查看修改内容,还原旧版本,并在注释日志中记录修改原因。Git 能将代码存储在多个位置,以防硬盘出现故障。Git将代码及其历史存储在仓库(或称 repos)中。在Git中,你可以创建分支,即整套代码的副本,与你的代码并行尝试各种想法,之后再将这些想法合并回主分支。

我将带你开始使用Git,但这部分内容只能让你了解Git的一些皮毛。让我们开始吧:

如果你使用的是Windows或macOS,我建议你使用GitHub应用程序,这样设置会更简单。

  • Git要求你在电脑上使用命令行设置身份:
> git config --global user.name "<Your Name>"
> git config --global user.email <your email address>
  • 要将这个项目置于源代码控制之下,我们需要初始化它并提交第一段代码。请确保您已进入代码文件夹(my_robot_project),然后在计算机命令行中键入以下内容:
> git init .
Initialized empty Git repository in C:/Users/danny/
workspace/my_robot_project/.git/
> git add hello.py
> git commit -m "Adding the starter code"
[master (root-commit) 11cc8dc] Adding the starter code
1 file changed, 1 insertion(+)
create mode 100644 hello.py

"git init ."命令Git将文件夹创建为Git仓库。"git add"将hello.py文件保存在仓库。

  • 现在我们可以用"git log"查看日志了:
> git log
commit 11cc8dc0b880b1dd8302ddda8adf63591bf340fe (HEAD ->
master)
Author: Your Name <your@email.com>
Date: <todays date>
Adding the starter code
  • 现在修改 hello.py 中的代码,将其改成这样:
import socket
print('%s is alive!' % socket.gethostname())

让我们看看这段代码与之前有什么不同:

> git diff hello.py
diff --git a/hello.py b/hello.py
index 3eab0d8..fa3d
首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇机器人编程教程1机器人简介 下一篇一文搞明白STM32芯片存储结构

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目