《 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设备提供所需要的功率和硬件设备,因此他们对树莓派很感兴趣。医院和博物馆已经联系我们,希望树莓派能够驱动显示设备。一些重度残疾孩子的父母也跟我们联系,谈论关于监控和可沟通应用的事情;与此同时,似乎还有数以百万的人正拿着电烙铁准备制作机器人呢。

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

相关文章
|
2天前
|
存储 数据挖掘 数据库
探索Python编程:从基础到高级探索移动应用开发之旅:从概念到实现
【8月更文挑战第29天】本文将带你进入Python的世界,无论你是初学者还是有一定经验的开发者。我们将从Python的基础知识开始,然后逐步深入到更复杂的主题。你将学习到如何编写清晰、高效的代码,以及如何使用Python进行数据分析和网络编程。最后,我们将介绍一些高级主题,如装饰器和生成器。让我们一起开始这段旅程吧!
|
3天前
|
存储 人工智能 数据挖掘
探索Python编程:从入门到实践
【8月更文挑战第28天】在这篇文章中,我们将一起踏上Python编程的奇妙旅程。无论你是编程新手还是希望提升现有技能的开发者,本文都将为你提供一条清晰的道路,引导你理解Python的核心概念并应用到实际项目中。我们将通过具体的代码示例,展示如何用Python解决实际问题,让你在学习的同时感受到编程的乐趣和成就感。
|
1天前
|
存储 Kubernetes Cloud Native
探索Python编程的奥秘云原生时代的容器编排:Kubernetes入门与实践
【8月更文挑战第30天】本文以浅显易懂的方式,探讨了Python编程的核心概念和技巧。从基础语法到高级特性,再到实际应用案例,逐步引导读者深入理解Python编程的精髓。通过本文的学习,读者将能够掌握Python编程的基本技能,并激发进一步探索的兴趣。
19 13
|
1天前
|
运维 Kubernetes Cloud Native
云原生之旅:Kubernetes 集群的搭建与实践Python 编程入门:从零基础到编写实用脚本
【8月更文挑战第30天】在数字化转型的大潮中,云原生技术以其弹性、可扩展性及高效运维能力成为企业IT架构升级的关键。本文将通过实际操作演示如何在本地环境搭建一个简易的Kubernetes集群,带你领略云原生的魅力所在。从集群规划到服务部署,每一步都是对云原生理念的深刻理解和应用。让我们共同探索,如何通过Kubernetes集群的搭建和运维,提升业务灵活性和创新能力。
|
1天前
|
数据采集 运维 Devops
探索Python编程之美:从基础到进阶自动化运维的变革之路:从脚本到DevOps
【8月更文挑战第30天】在数字化时代的浪潮中,编程已经成为一门重要的技能。Python以其简洁明了的语法和强大的功能,成为了许多初学者的首选编程语言。本文将通过浅显易懂的语言,带领读者从Python的基础语法出发,逐步深入到面向对象编程、网络爬虫开发以及数据分析等高级应用,旨在帮助初学者构建扎实的编程基础,并激发他们进一步探索编程世界的热情。文章不仅分享实用的编程技巧,还将探讨如何将编程知识应用于解决实际问题,以期培养读者的问题解决能力和创新思维。
|
1天前
|
数据采集 数据可视化 数据挖掘
探索Python编程的奥秘:从基础到进阶Python中的装饰器:简化代码,提升效率
【8月更文挑战第30天】在这个数字技术飞速发展的时代,掌握一门编程语言已经成为了许多人追求的目标。Python,作为一门易于学习且功能强大的编程语言,吸引了无数初学者和专业人士的目光。本文将带领读者从Python的基础语法出发,逐步深入到函数、模块、面向对象编程等高级特性,最后通过实际案例展示Python在数据分析和网络爬虫领域的应用。无论你是编程新手还是希望提升自己的Python技能,这篇文章都将为你打开一扇通往Python世界的大门。
|
3天前
|
存储 自然语言处理 数据库
探索Python编程之美:从基础到进阶
【8月更文挑战第28天】在数字世界的浪潮中,Python已成为编程初学者和资深开发者的心头好。本文将带你领略Python的魅力,从简洁明了的基础语法入手,逐步深入到函数、面向对象编程,再到实战项目开发,让你在轻松愉快的学习过程中,掌握Python编程的精髓。无论你是编程新手,还是想提升技能的开发者,这篇文章都将为你打开一扇通往Python世界的大门。
|
2天前
|
数据采集 数据挖掘 开发者
Python编程入门:从基础到实战
【8月更文挑战第30天】本文将带你走进Python的世界,从基本语法开始,逐步深入到数据结构、函数、面向对象编程等高级特性。我们将通过实际案例,如网页爬虫和数据分析,展示如何应用所学知识解决实际问题。无论你是编程新手还是希望扩展技能的开发者,这篇文章都将为你提供宝贵的指导和启发。
|
2天前
|
数据采集 机器学习/深度学习 存储
Python编程入门:从基础到实战
【8月更文挑战第29天】本文将带你走进Python的世界,从最基础的语法开始,逐步深入到实际的项目开发。我们将通过详细的代码示例和实践案例,帮助你掌握Python编程的核心技能,提升你的编程能力。无论你是编程新手还是有一定经验的开发者,这篇文章都将为你提供有价值的参考和指导。
|
2天前
|
机器学习/深度学习 存储 定位技术
强化学习Agent系列(一)——PyGame游戏编程,Python 贪吃蛇制作实战教学
本文是关于使用Pygame库开发Python贪吃蛇游戏的实战教学,介绍了Pygame的基本使用、窗口初始化、事件处理、键盘控制移动、以及实现游戏逻辑和对象交互的方法。
下一篇
云函数