《 Python树莓派编程》——第1章 树莓派简介 第1.1 树莓派的历史

简介: 本节书摘来自华章出版社《Python树莓派编程》一书中的第1章,第1.1节,作者:[美]沃尔弗拉姆·多纳特(Wolfram Donat)著 韩德强 等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

本节书摘来自华章出版社《Python树莓派编程》一书中的第1章,第1.1节,作者[美]沃尔弗拉姆·多纳特(Wolfram Donat)著 韩德强 等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。



第1章

树莓派简介

如果你现在有一台树莓派,你会用它来做什么呢?也许你已经熟悉了树莓派的基本结构,正在考虑可以拿它来做些什么;也许你之前使用过计算机但并不熟悉Linux或树莓派默认的Raspbian操作系统;也许你已经是一位Linux系统的爱好者,但却不知道如何用Python进行编程,而且正准备好好学一学;也许你根本就不了解计算机,仅仅停留在点击“开始”菜单,转发电子邮件,上网等操作,但是听说过“树莓派”这么个新奇的东西,想了解一下它到底是什么。

无论是何原因,欢迎你的到来!你即将加入我们的大家庭—这个家庭专业性并不是很强,因为你只需花费35美金及必要的邮费,无需其他,便可成为我们的一员。作为一名会员,你将会和所有想听你分享经验的人们讨论你对软件包管理器、ARM11处理器,或是.config文件的一些见解,会了解关于驱动器和API的一些信息,会熟悉关于舵机、LED灯、板载摄像头的内容,最重要的是,你可以与微型计算机进行通信,用任何一门编程语言(本书主要使用的是Python语言)进行编程,构建项目,在树莓派上实现这些项目,这样树莓派便可与真实世界进行交互,并做出一些非常酷的东西。

通过阅读本书,我将引导你进入树莓派的俱乐部。在这里,你之前的经验并不重要,因为我将一步步带着你对树莓派进行配置,这样你就可以轻松地使用它了。我会尽量将Linux的环境介绍得详细透彻,以便你可以理解屏幕背后所发生的一切。同时我会用比较长的篇幅来介绍Python语言,这是当前极客们热衷的脚本语言。谷歌使用Python,NASA使用Python,Facebook也使用Python。Perl的时代已经过去,让我们好好探究Python这种语言。我还会在书中介绍一些构建电子项目的基本常识—这是一些技术或编程书籍仅作简单介绍,甚至完全忽略的部分。在构建好的项目同时,也还有一些安全因素需要考虑(例如,我曾经因为将电池短接而引起一次小型爆炸)。例如,你会学到如何焊出一个好的焊点,如何避免被刀片划伤食指,以及怎样区别40和40K的电阻。

当然,如果你已经熟悉了以上这些事情,可以跳过前面的介绍直接进入后面关于项目的部分。所有的项目都是用Python语言编写的,并且它们都可在一个周末(或一两个月,当然,这取决于你的积极性以及其他你需要做的事情)搭建完成。我会在每个项目之前为你准备一份购物清单,以及买到这些部件的地址,之后便直入主题。这些项目彼此之间并无依赖关系,在复杂程度上彼此也没有特定的顺序,这就意味着如果你想跳过家庭媒体服务器项目直接进入猫玩具项目也是没问题的。

那树莓派到底可以用来完成什么样的项目呢?你会惊讶地发现,树莓派小巧的尺寸并不能掩盖它强大的计算能力。它的应用范围很广,从网络服务器、车载电脑(carputer),到集群计算都可以看到它的身影。我希望当你读完本书之后,不仅可以发现一些新奇的想法,学到一些技术,最主要的是通过所学到的知识将你的想法变为现实。

无论你为何选择本书,你的主要目的就是快乐地学习并且学到一些东西!我会尽我所能去帮助你。

1.1 树莓派的历史

对外人而言,树莓派的确是很新颖的东西,在博客中有许多人也这样认为,还有一部分人甚至完全不知道树莓派是什么。大量树莓派的文章仍旧会以“树莓派是一个小型的、信用卡大小的计算机,爱好者们可以用其……”作为开始。但不同于树莓派,当人们谈及Arduino时,即便大多数人不知道Arduino是什么或是做什么用的,但至少都听说过。因为早在2005年,Arduino就在全球范围内的爱好者们、极客们和喜爱DIY的人们中赢得了很好的口碑。

Arduino

Arduino是一个微控制器平台,它安装在可以轻松插入绝大多数计算机的芯板上。这使得用户可以通过类似C的编程语言对板上的Atmega芯片进行编程,以实现各种需求。这种程序称为Sketch。一个典型的Arduino Sketch程序如下所示:

 

 948b32c521ca905c0fc81332547ebfe8f27c1c61

c94a35abf66a7474e07c2847eba879489aaabc37

 

以上代码的作用是控制一个和Arduino相连的舵机(一个可以通过软件精确控制转动角度的小型马达)持续进行前后转动,每次转动间隔1秒。

尽管其功能不像树莓派那样强大,但Arduino已经可以完成很多事情,这使得公众对一般的电子项目(尤其是微控制器)更加熟知。我们将在第14章对Arduino和树莓派如何相互完善进行更深入的介绍。

树莓派已经问世很多年了,早已不是什么新的词汇。它的创始人—Eben Upton、Rob Mullins、Jack Lang和Alan Mycroft—在2006年第一次提出了廉价PC机的想法。在英国剑桥大学的时候,他们就意识到:随着像Commodore 64、Amiga和Spectrum这种廉价的个人计算机逐步退出市场,取而代之的台式机和笔记本电脑的价格又十分高昂(若不是几千美元的话,也需要几百美元),年轻人无法随意地在这种家庭主要的电子产品上练习编程,而这一定会严重影响年轻人的编程能力。

与此同时,这些创始人意识到当前许多大学的计算机科学课程已经被缩减为教授“微软Word 101”和“如何创建网页”。4位创始人希望帮助新生提高编程知识,或许以后计算机科学和工程类的课程会变得更加有意义。

很明显,为实现以上目的,需要一台便宜的计算机。为此他们尝试过许多微控制器、各种芯片、面包板、PCB板,等等,直到2008年,这个想法才得以实现。随着移动设备的爆炸式增长,芯片变得更小,更便宜,性能也更加强大。他们使用这些芯片设计了一台支持多媒体的设备,而不是仅支持命令行编程,做到这一点他们认为很重要(见图1-1)。年轻人似乎更喜欢具备媒体功能的设备,因此也就更有可能用此设备去编程。

2008年,4位创始人,和Pete Lomas和David Braben一起,创立了树莓派基金会,3年后,该基金会成为第一个大规模生产树莓派的生产线。

树莓派(Raspberry Pi)这个名字同早期微机根据水果命名的规则一样,如早期的苹果(Apple)和橘子(Tangerine),而派(Pi)则来源于Python这个脚本语言。

一年内,基金会卖出了100多万台设备。基金会成员多次表示他们对这种爆炸式的热情感到十分震惊。最初的目的仅仅是推出一种廉价的、可编程的设备,使教育工作者和学生获益,显然现在这个目的已经达成了。不仅如此,现在的成果比最初设想的要大得多。很明显,他们并不是唯一希望拥有廉价可编程设备的一类人,世界各地的爱好者,连同element14、Premier Farnell和RS Electronics都迫切需要订单,以至于那些预订了树莓派的人不得不等待半年的时间,随后产量才满足需求量。许多消费者现在或之前都是程序员,现如今都渴望一览这台新的体积小性能强的计算机。(我第一次学习编程是在Commodore VIC-20上,这台设备仅有20KB的内存,当时用的还是BASIC语言……好吧!这都是很久以前的事了。)


 fe757dce06c4a7dcb5c22483f0fccd7fa1af43d8

(image但无论是之前还是现在,人们在各领域内都使用树莓派。就像美国树莓派基金会网页上写的那样:

我们已经收到来自教育机构数不尽的热情、支持和帮助。在看到来自机构大量的咨询时,我们十分激动,而当人们对设备的使用目的与我们的初衷相差甚远时,我们又感到有些羞愧。在发展中国家,由于部分地区的电力无法为传统的桌面PC设备提供所需要的功率和硬件设备,因此他们对树莓派很感兴趣。医院和博物馆已经联系我们,希望树莓派能够驱动显示设备。一些重度残疾孩子的父母也跟我们联系,谈论关于监控和可沟通应用的事情;与此同时,似乎还有数以百万的人正拿着电烙铁准备制作机器人呢。

幸运的是,供应及时满足了需求。现在买树莓派便无需等待了,而且每位用户也不再限购了。树莓派基金会正策划一个“买一赠一”的活动,即每卖出一台树莓派便向教育机构捐赠一台树莓派。最近发行的树莓派板载摄像头是一台小型芯片集成摄像头,可直接插入树莓派,用户可以用它拍摄静态照片,也可拍摄视频。基金会保证将会为这台小型计算机开发更多的外部设备。如今创始人正在积极说服其他公司复制他们的模式,接下来会发生的事情,让我们拭目以待吧。

相关文章
Python 高级编程与实战:深入理解性能优化与调试技巧
本文深入探讨了Python的性能优化与调试技巧,涵盖profiling、caching、Cython等优化工具,以及pdb、logging、assert等调试方法。通过实战项目,如优化斐波那契数列计算和调试Web应用,帮助读者掌握这些技术,提升编程效率。附有进一步学习资源,助力读者深入学习。
[oeasy]python081_ai编程最佳实践_ai辅助编程_提出要求_解决问题
本文介绍了如何利用AI辅助编程解决实际问题,以猫屎咖啡的购买为例,逐步实现将购买斤数换算成人民币金额的功能。文章强调了与AI协作时的三个要点:1) 去除无关信息,聚焦目标;2) 将复杂任务拆解为小步骤,逐步完成;3) 巩固已有成果后再推进。最终代码实现了输入验证、单位转换和价格计算,并保留两位小数。总结指出,在AI时代,人类负责明确目标、拆分任务和确认结果,AI则负责生成代码、解释含义和提供优化建议,编程不会被取代,而是会更广泛地融入各领域。
65 28
Python 高级编程与实战:深入理解数据科学与机器学习
本文深入探讨了Python在数据科学与机器学习中的应用,介绍了pandas、numpy、matplotlib等数据科学工具,以及scikit-learn、tensorflow、keras等机器学习库。通过实战项目,如数据可视化和鸢尾花数据集分类,帮助读者掌握这些技术。最后提供了进一步学习资源,助力提升Python编程技能。
|
27天前
|
[oeasy]python074_ai辅助编程_水果程序_fruits_apple_banana_加法_python之禅
本文回顾了从模块导入变量和函数的方法,并通过一个求和程序实例,讲解了Python中输入处理、类型转换及异常处理的应用。重点分析了“明了胜于晦涩”(Explicit is better than implicit)的Python之禅理念,强调代码应清晰明确。最后总结了加法运算程序的实现过程,并预告后续内容将深入探讨变量类型的隐式与显式问题。附有相关资源链接供进一步学习。
34 4
Python 高级编程与实战:深入理解设计模式与软件架构
本文深入探讨了Python中的设计模式与软件架构,涵盖单例、工厂、观察者模式及MVC、微服务架构,并通过实战项目如插件系统和Web应用帮助读者掌握这些技术。文章提供了代码示例,便于理解和实践。最后推荐了进一步学习的资源,助力提升Python编程技能。
Python 高级编程与实战:深入理解性能优化与调试技巧
本文深入探讨了Python的性能优化和调试技巧,涵盖使用内置函数、列表推导式、生成器、`cProfile`、`numpy`等优化手段,以及`print`、`assert`、`pdb`和`logging`等调试方法。通过实战项目如优化排序算法和日志记录的Web爬虫,帮助你编写高效稳定的Python程序。
在线编程实现!如何在Java后端通过DockerClient操作Docker生成python环境
以上内容是一个简单的实现在Java后端中通过DockerClient操作Docker生成python环境并执行代码,最后销毁的案例全过程,也是实现一个简单的在线编程后端API的完整流程,你可以在此基础上添加额外的辅助功能,比如上传文件、编辑文件、查阅文件、自定义安装等功能。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
在线编程实现!如何在Java后端通过DockerClient操作Docker生成python环境
Python 高级编程与实战:构建 RESTful API
本文深入探讨了使用 Python 构建 RESTful API 的方法,涵盖 Flask、Django REST Framework 和 FastAPI 三个主流框架。通过实战项目示例,详细讲解了如何处理 GET、POST 请求,并返回相应数据。学习这些技术将帮助你掌握构建高效、可靠的 Web API。
Python 高级编程与实战:构建自动化测试框架
本文深入探讨了Python中的自动化测试框架,包括unittest、pytest和nose2,并通过实战项目帮助读者掌握这些技术。文中详细介绍了各框架的基本用法和示例代码,助力开发者快速验证代码正确性,减少手动测试工作量。学习资源推荐包括Python官方文档及Real Python等网站。
Python 编程基础与实战:从入门到精通
本文介绍Python编程语言,涵盖基础语法、进阶特性及实战项目。从变量、数据类型、运算符、控制结构到函数、列表、字典等基础知识,再到列表推导式、生成器、装饰器和面向对象编程等高级特性,逐步深入。同时,通过简单计算器和Web爬虫两个实战项目,帮助读者掌握Python的应用技巧。最后,提供进一步学习资源,助你在Python编程领域不断进步。

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等