问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

您应该为 Raspberry Pi 使用哪种编程语言?

创作时间:
作者:
@小白创作中心

您应该为 Raspberry Pi 使用哪种编程语言?

引用
1
来源
1.
https://picockpit.com/raspberry-pi/zh/%E4%BD%A0%E5%BA%94%E8%AF%A5%E7%94%A8%E4%BB%80%E4%B9%88%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80%E6%9D%A5%E4%BD%BF%E7%94%A8%E6%A0%91%E8%8E%93%E6%B4%BE%EF%BC%9F/

Raspberry Pi作为一款广受欢迎的微型计算机,其编程语言选择一直是新手关注的重点。本文将为您详细介绍在Raspberry Pi上预装的语言及其特点,帮助您根据需求选择最适合的编程语言。

在Raspberry Pi上预装语言

也许你能从Raspberry Pi身上得到的最大提示是预装在Raspberry Pi操作系统上的语言。在每次安装时,你都会预装Python、Scratch和C或C++。因此,让我们先来看看这三种语言。

Python:用于树莓派的伟大通用语言

用Thonny编写的Python代码

优点:

  • 易于学习
  • 大量的组件库
  • 有很多很好的教程可以让你快速上手
  • 可以在Raspberry Pi微型计算机和Pico系列上使用

弊端:

  • 不适合网站开发(特别是前端)。
  • 比C或C++慢

如果你是从零开始,那么Python可能是你最快速和最有效的入门方式。首先,Python是比较容易掌握的语言之一。另一个原因是,有很多用Python编写的用于各种传感器和组件的库。因此,大量的教程和项目的脚本都会用Python编写。如果你要使用另一种语言,例如JavaScript(通过NodeJS),你可能会发现自己被卡住了,没有一个普通传感器的库。

最后,学习Python将帮助你与Raspberry Pi阵容中的所有板子互动。你可以为Raspberry Pi 4以及Raspberry Pi Pico创建项目。Raspberry Pi的制造商也让你很容易用Python构建项目。首先,所有的Raspberry Pi微型计算机(例如Pi 4)都配有Thonny,这是一个Python IDE,而且所有的Raspberry Pi Picos都会默认读取MicroPython。

Thonny使Python在Raspberry Pi上变得容易。

Raspberry Pi操作系统还预装了Thonny,它使运行Python脚本变得非常容易。Thonny使Python编程变得简单,因为你可以通过按IDE中的 "RUN "或 "STOP "按钮轻松启动和停止脚本。而如果你使用另一个编辑器,你可能要把脚本输入到终端才能运行它。

用于树莓派Pico的MicroPython

如果你想使用Raspberry Pi Pico,学习Python特别有用。与Raspberry Pi微型计算机不同,Raspberry Pi Pico默认只接受三种语言。C或C++和MicroPython。这意味着,如果你已经学会了Python,你将能够过渡到编写MicroPython,因为语法是一样的。Python和MicroPython的主要区别是后者有一个较小的标准库。

循环器(CircuitPython

除了MicroPython之外,CircuitPython是另一种Python衍生物,在Raspberry Pi Pico中使用。CircuitPython是由Adafruit创建的。

对于Raspberry Pi用户来说,Python是一种好的语言吗?

是的。绝对的。如果你想为Raspberry Pi建立项目,你肯定需要了解Python。我是用JavaScript开始我的编程之旅的。在Raspberry Pi领域之外,JavaScript是一种非常有效的语言,因为你可以创建程序和网站。


一个四位数的七段式显示器

然而,有一天,我必须为一个七段式显示器创建一个程序,而在JavaScript中却没有办法做到这一点。我在网上找到一个脚本,但它是用Python编写的,这使我走上了学习Python的道路。如果你想用最有效、最快速和最简单的方式来构建Raspberry Pi项目,那么学习Python就是最好的办法。

哪里可以学习Python用于Raspberry Pi编程

学习途径- 这些资源汇编了你可以学习Python特定部分的链接。它们是一般的学习途径,而不是专门针对Raspberry Pi的。

  • 李尔尼
  • 路线图
  • 哈佛大学开放课程(Harvard OpenCourseWare)。CS50的Python编程入门

录像带视频

  • Corey Schafer的Python初学教程播放列表

树莓派专用课程- 这些课程是为初学者准备的

  • 树莓派基金会- 本课程将给你一个关于Python编程的总体概述,它深入到游戏编程以及与传感器和组件的互动。
  • 真正的Python,在树莓派上用Python构建物理项目- 这是一个很好的指南,适合那些拥有传感器和组件套件并想深入学习与GPIO互动的代码的人。与一般的Python教程不同,这些教程将教你如何连接简单的传感器,以及如何用Raspberry Pi 4与它们互动。

用于树莓派的Scratch

我的一个朋友向我展示了他用Raspberry Pi 4做的LED交通灯。他是一个高级开发人员,在Java和JavaScript编程方面有很多知识,所以我期待他能用某种编程语言来写。但是没有...他使用了Scratch。

为什么一个资深软件人要用Scratch?

Scratch将自己描述为 "世界上最大的儿童编码社区和一种具有简单视觉界面的编码语言,使年轻人能够创造数字故事、游戏和动画"。我的朋友绝对不是一个孩子。当我问他为什么时,他给了我一个像Git提交信息一样有用的答案:"嗯,它的编程很简单"。


公平地说,当我访问英国剑桥的Raspberry Pi商店时,他们也有一台运行Scratch的Pi。所以,它一定是有好处的!

对于Raspberry Pi用户来说,Scratch是一种好的编程语言吗?

我想,这对抓紧时间学习编程是有好处的。Scratch的整个前提是使儿童和青少年的编程变得简单。斯克雷奇允许你通过连接块来创建程序,而不是编写抽象的代码。为了用Scratch闪烁一个LED,你要组装这些块。挠痒痒的顺序来闪烁LED。照片来自Aaron Maurer的YouTube。

现在,将其与Python脚本中的LED闪烁进行比较。

import RPi.GPIO as GPIO 
from time import sleep 
GPIO.setmode(GPIO.BOARD)
GPIO.setup(8, GPIO.OUT, initial=GPIO.LOW) 
while True: 
 GPIO.output(8, GPIO.HIGH) 
 sleep(1) 
 GPIO.output(8, GPIO.LOW)
 sleep(1)   

也许这也是为什么有些人喜欢使用GUI而不是命令行的原因。与其用几个回车键、方向键和其他按键来改变一个变量的值,不如直接点击并选择。对于简单的项目,学习和教学,Scratch是一个很好的选择。

Scratch for Raspberry Pi的缺点

如果你错过了上一节中的双关语,这里再来一次。划痕只划出了表面。不可避免的是,一旦你的项目变得更大,你会想使用一种更主流的语言,如Python或C或C++,因为你将能够访问网上的大量代码、库和脚本。

学习Scratch

如果你对Scratch的工作方式感到好奇,你可以很快感受到它的 "积木 "方法是如何工作的对其在线环境。

  • Raspberry Pi有一些Scratch课程包括涉及硬件建设的。
  • Aaron Maurer在YouTube上有一个教程向你展示如何使用Scratch 3和闪烁一个LED。

用于Raspberry Pi的C或C++语言

给予你终极控制的终极编程语言也是最难学习和掌握的语言之一。

C和C++的区别是什么?

C++在某种程度上是C语言的扩展版本,它包括很多特性,如原生设计的面向对象编程支持。++是对C和C++本身中运算符可以递增的方式的双关语。例如,如果你有一个变量cats,并想给它增加一个,你可以简单地写cats++。

特别是C++是非常动态的,不断得到更新。它是一种需要学习的复杂语言。对于初学者来说,C语言可能是一种更合适的选择。

与其他用于Pi的语言的主要区别是什么?

这些语言是经过编译的--也就是说,你写了代码,然后使用一个叫做编译器的特殊应用程序,生成你的目标架构的处理器能够原生理解的机器字节码。换句话说,如果你想在Pico W和Raspberry Pi以及你的台式电脑(基于X86)上运行一个应用程序,你将需要为它们中的每一个运行特定的编译器。

编译语言的另一个例子是Rust,它有一些很大的优势。你看,C和C++需要你处理某些事情,比如垃圾收集--如果你不这么做,你的应用程序可能会崩溃。如果你写设备驱动,整个计算机可能会崩溃。在Rust中,开发者有额外的安全防护措施。

另一种由谷歌开发的流行编译语言被称为Go。你可能会时不时地注意到对它们的引用。

如果你以前从未编过代码,我的建议是解释型语言,以便于你开始学习。它们不需要编译步骤,而是由一个应用程序读入,然后执行正确的命令。一个好的入门语言是Python(或MicroPython)。

然而,如果你想创建在Raspberry Pi Pico上玩Doom等令人心动的项目那么你就需要知道C或C++。

C或C++通常是在Raspberry Pi上使用最广泛的三种语言之一,另一种是Python。因此,本节的很大一部分内容将谈论这两种语言的优点和缺点。让我们先来比较一下这三者。

C和C++ 微蟒
速度 更快 较慢
学习曲线 更加努力 更加容易
内存管理 手册 自动(垃圾收集)。
编译?解释的? 汇编 口译的
社区的使用情况 用途广泛,特别是用于需要细微控制的高级项目中 从初学者到高级用户都广泛使用。
组件的库房 一般情况下可以使用 一般情况下可以使用

初学者应该学习C语言还是C++?

没有什么能阻止你经历火的考验。因为杀不死你的东西使你更强大。大多数项目都可以用Python以及C或C++实现。这三种语言的库的可用性也很广泛,你不太可能因为缺少一个库而陷入瓶颈。

你有多顽强?

对于初级程序员来说,C或C++可能有点不那么有趣,因为有很多方面你必须要考虑,而在Python中你不会考虑。例如,在C和C++中,你必须管理你的内存。你还需要考虑给一个变量分配什么样的数据类型。如果你不知道选择一个类型的利弊影响,这可能会变得很繁琐。

例如,如果你想在C和C++中分配一个整数,你将不得不决定你是否想要。

  • 䵮䵮
  • 无符号字符
  • 签名字符
  • 无符号单位
  • 短期
  • 无符号短
  • 无符号长

选择其中之一将对你的程序的速度和内存使用产生影响。

虽然Python的效率较低,但你只需要为了声明一个整数而这样做。

integer = 999999999999999  

但没有痛苦就没有收获,对吗?一旦你熟悉了C或C++的工作方式,你就会开始收获好处。因为按照今天的标准,Raspberry Pi并不是一台非常强大的计算机,能够编写高效的代码将帮助你从其有限的硬件中获得最佳性能。

设置C和C++需要更多时间

当Raspberry Pi Pico板出现时,我不得不写关于为Python和C、C++设置Pico的文章。Python是超级简单的。下载Thonny。插上Pico。Flash MicroPython。完成了。

C和C++的难度更大,也更繁琐。这很明显---Raspberry Pi发布了一个关于C/C++设置主题的PDF文件.这么说吧,你不得不与命令行互动,以便进行设置。

你将永远是光

C约有40年历史,至今仍在使用。这说明了什么呢?它是你能学到的最动态的语言之一,可用于创建软件和操纵硬件。因此,如果你热衷于学习一门极其有用和强大的语言,C语言可能是最好的第一门学习语言。

Psst...C和C++可以在其他板块上使用

我是在2022年写的这篇文章,那里的树莓派股票是个大问题。人们问的最大问题之一是:"有什么替代板?我不能用不存在的Raspberry Pi来建立项目"。有许多替代性的板子,而且你可以在这里查看它们。如果你学会了C或C++,你将能够直接进入使用Arduino或ESP32或ESP8266板,其程序几乎全部是用C或C++编写的。这些板子可能不接受Python,所以如果你进入Raspberry Pi的原因是为了用微控制器创建项目,你可能会发现C或C++是一种更容易转移的语言。

为树莓派学习C或C++

MagPi为初学者免费出版了一本杂志。

MagPi还发布了一份学习C语言的地方清单(不是专门针对Raspberry Pi)。

Raspberry Pi发布了一份PDF文件,教你如何在Raspberry Pi Pico上使用C/C++。

这里有龙

在上面的部分,我们已经谈到了你应该考虑学习的编程语言。下面的部分谈到了也可以与Raspberry Pi一起使用的潜在语言,但使用案例和社区并不像使用Python、C、C++和Scratch时那样大。

JavaScript(包括NodeJS)

一个记录Raspberry Pi上DHT22温度/湿度传感器数据的JavaScript程序(并提供一个显示数据的网页)。对于爱好编程的人来说,JavaScript是最有用的语言之一,因为你可以用它来创建应用程序、网站(用HTML和CSS)和后端。在JavaScript领域,最大的进步之一被称为NodeJS。以前,JavaScript主要是基于浏览器的,但有了NodeJS,你可以运行一个后端,并为你的Raspberry Pi和其他计算机创建应用程序。

具体到Raspberry Pi,有一些库允许你操作Raspberry Pi的GPIO引脚。因此,如果你想建立一个简单的项目,运行一个JavaScript程序就不会有问题。然而,你的项目最大的瓶颈是缺乏Raspberry Pi和JavaScript交汇的社区。当你访问某人的Github时,这一点变得很明显,不可避免地,他们的项目是用Python或C,C++写的。很少有程序员使用树莓派的JavaScript。

那么,JavaScript是否可以注销?

不,不是真的。它仍然有其用途。仅仅学习JavaScript就能帮助你实现目标的一个用例是,如果你想把Raspberry Pi作为一个网络服务器。你可以用ExpressJS(一个后端框架)编写后端,用React/Angular/Vue(前端框架)编写前端,然后你会用PM2(一个进程管理器)来交付后端和前端。在这种情况下,你可以完全用JavaScript来做。

Raspberry Pi Pico W需要JavaScript

不久前在一个React聚会上,有人嘲笑我写的是vanilla JavaScript。他调侃道:"现在是什么年代?2000年代吗?"如果你有一个Raspberry Pi Pico W,你最终会需要知道如何编写vanilla JavaScript.看看现在谁在笑?

虽然网络开发界已经转向使用React、Angular或Vue等前端框架,但在Raspberry Pi Pico上提供网站服务通常需要你知道如何编写虚无的JavaScript。如果你看一下我们的教程,在我们的Pico W巨型文章,你会看到。右上角的滑块在JavaScript的帮助下控制舵机。

学习JavaScript

我只能推荐一个网页,它被证明是我学习JavaScript的最佳资源。

https://javascript.info/

这个资源对Pico W用户来说非常好,因为它教给你虚构的JavaScript和浏览器事件的各个方面。你将需要了解后者,以便有效地控制Pico W和你将提供的网页的用户体验。

HTML + CSS

HTML和CSS并不是真正的编程语言,但它们与JavaScript部分密切相关。它们在以下情况下是很有用的:

  • 你计划做一些基于网络的事情
  • 你计划用Pico W来提供一个网页。

这一个网站对我帮助很大。上网很困难它有点过时了。例如,它不包括CSS网格或长宽比。但 "上网难 "有一套有效的教学方法,可以教你为Pico W建立一个网页。

建议

如果你想...

快速获得结果:Python或Scratch

教孩子们如何编程。擦伤

获得对你的硬件的终极控制。C或C++

建立硬件项目:Python或C或C++,其他都不用管了

托管网络服务器和建立网站:HTML, CSS, JavaScript

用Pico W建立一个物联网项目。Python, HTML, CSS, JavaScript

成为神一样的人(投入不菲的时间)。:C或(特别是)C++

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号