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

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

相关文章
|
6天前
|
机器学习/深度学习 人工智能 TensorFlow
人工智能浪潮下的自我修养:从Python编程入门到深度学习实践
【10月更文挑战第39天】本文旨在为初学者提供一条清晰的道路,从Python基础语法的掌握到深度学习领域的探索。我们将通过简明扼要的语言和实际代码示例,引导读者逐步构建起对人工智能技术的理解和应用能力。文章不仅涵盖Python编程的基础,还将深入探讨深度学习的核心概念、工具和实战技巧,帮助读者在AI的浪潮中找到自己的位置。
|
6天前
|
机器学习/深度学习 数据挖掘 Python
Python编程入门——从零开始构建你的第一个程序
【10月更文挑战第39天】本文将带你走进Python的世界,通过简单易懂的语言和实际的代码示例,让你快速掌握Python的基础语法。无论你是编程新手还是想学习新语言的老手,这篇文章都能为你提供有价值的信息。我们将从变量、数据类型、控制结构等基本概念入手,逐步过渡到函数、模块等高级特性,最后通过一个综合示例来巩固所学知识。让我们一起开启Python编程之旅吧!
|
6天前
|
存储 Python
Python编程入门:打造你的第一个程序
【10月更文挑战第39天】在数字时代的浪潮中,掌握编程技能如同掌握了一门新时代的语言。本文将引导你步入Python编程的奇妙世界,从零基础出发,一步步构建你的第一个程序。我们将探索编程的基本概念,通过简单示例理解变量、数据类型和控制结构,最终实现一个简单的猜数字游戏。这不仅是一段代码的旅程,更是逻辑思维和问题解决能力的锻炼之旅。准备好了吗?让我们开始吧!
|
8天前
|
设计模式 算法 搜索推荐
Python编程中的设计模式:优雅解决复杂问题的钥匙####
本文将探讨Python编程中几种核心设计模式的应用实例与优势,不涉及具体代码示例,而是聚焦于每种模式背后的设计理念、适用场景及其如何促进代码的可维护性和扩展性。通过理解这些设计模式,开发者可以更加高效地构建软件系统,实现代码复用,提升项目质量。 ####
|
7天前
|
机器学习/深度学习 存储 算法
探索Python编程:从基础到高级应用
【10月更文挑战第38天】本文旨在引导读者从Python的基础知识出发,逐渐深入到高级编程概念。通过简明的语言和实际代码示例,我们将一起探索这门语言的魅力和潜力,理解它如何帮助解决现实问题,并启发我们思考编程在现代社会中的作用和意义。
|
8天前
|
机器学习/深度学习 数据挖掘 开发者
Python编程入门:理解基础语法与编写第一个程序
【10月更文挑战第37天】本文旨在为初学者提供Python编程的初步了解,通过简明的语言和直观的例子,引导读者掌握Python的基础语法,并完成一个简单的程序。我们将从变量、数据类型到控制结构,逐步展开讲解,确保即使是编程新手也能轻松跟上。文章末尾附有完整代码示例,供读者参考和实践。
|
8天前
|
人工智能 数据挖掘 程序员
Python编程入门:从零到英雄
【10月更文挑战第37天】本文将引导你走进Python编程的世界,无论你是初学者还是有一定基础的开发者,都能从中受益。我们将从最基础的语法开始讲解,逐步深入到更复杂的主题,如数据结构、面向对象编程和网络编程等。通过本文的学习,你将能够编写出自己的Python程序,实现各种功能。让我们一起踏上Python编程之旅吧!
|
9天前
|
数据采集 机器学习/深度学习 人工智能
Python编程入门:从基础到实战
【10月更文挑战第36天】本文将带你走进Python的世界,从基础语法出发,逐步深入到实际项目应用。我们将一起探索Python的简洁与强大,通过实例学习如何运用Python解决问题。无论你是编程新手还是希望扩展技能的老手,这篇文章都将为你提供有价值的指导和灵感。让我们一起开启Python编程之旅,用代码书写想法,创造可能。
|
11天前
|
Python
不容错过!Python中图的精妙表示与高效遍历策略,提升你的编程艺术感
本文介绍了Python中图的表示方法及遍历策略。图可通过邻接表或邻接矩阵表示,前者节省空间适合稀疏图,后者便于检查连接但占用更多空间。文章详细展示了邻接表和邻接矩阵的实现,并讲解了深度优先搜索(DFS)和广度优先搜索(BFS)的遍历方法,帮助读者掌握图的基本操作和应用技巧。
30 4
|
13天前
|
存储 人工智能 数据挖掘
从零起步,揭秘Python编程如何带你从新手村迈向高手殿堂
【10月更文挑战第32天】Python,诞生于1991年的高级编程语言,以其简洁明了的语法成为众多程序员的入门首选。从基础的变量类型、控制流到列表、字典等数据结构,再到函数定义与调用及面向对象编程,Python提供了丰富的功能和强大的库支持,适用于Web开发、数据分析、人工智能等多个领域。学习Python不仅是掌握一门语言,更是加入一个充满活力的技术社区,开启探索未知世界的旅程。
20 6