0%

Raspberry

一台可以运行linux的具有完整计算机结构的小体积开发板。

树莓派基金会的愿景——“找回失落的技术,重燃人们对计算机的兴趣”。

树莓派新手入门教程

作者: 阮一峰
日期: 2017年6月15日

树莓派(Raspberry Pi)是学习计算机知识、架设服务器的好工具,价格低廉,可玩性高。

本文根据我的亲身经验,介绍如何从零开始,搭建一个树莓派服务器,控制 LED 灯。你会看到,树莓派玩起来实在很容易。

一、型号
树莓派是一个迷你电脑,集成在一块电路板。目前,最新的型号有两个。

(1)Raspberry Pi 3代 B 型

(2)Raspberry Pi zero (含 zero w)

虽然后者便宜,但是少了许多接口(比如只有一个 USB 口),CPU 和内存都比较低,配件也少,因此推荐购买第3代的 B 型。以下都针对这个型号,但大部分内容对 zero 也适用。

二、配件
树莓派本身只是一个主机。要运行起来,必须有配件。

(1)电源

Micro USB 接口的手机充电器,就可以充当电源,但输出必须是 5V 电压、至少 2A 电流。充电宝当电源也没问题。

(2)Micro SD 卡

树莓派不带硬盘,Micro SD 卡就是硬盘。最小容量8G,推荐使用16G和32G的卡。

(3)显示器

树莓派有 HDMI 输出,显示器必须有该接口。如果有 HDMI 转 VGA 的转接线,那么 VGA 显示器也可以。我用的是一个 7 寸的液晶监视器。

不过,显示器只在安装系统时需要,后面可以 SSH 登录,就不需要了。

(4)无线键鼠

树莓派内置蓝牙,USB 或蓝牙的无线键鼠都可以用。

就像显示器一样,如果树莓派已经装好系统,而且只当作服务器,无线键鼠也可以不配。

三、电子元件
除了配件,下面的实验还需要一些电子元件。

(1)面包板(一块)

(2)连接线(若干)

注意,连接线必须一端是公头,一端是母头。

另外,最好也备一些两端都是公头的连接线。

(3)LED 二极管(若干)

(4)270欧姆的电阻(若干)

四、安装系统
如果商家已经装好系统,可以跳过这一步,否则需要自己安装操作系统。

官方提供的操作系统是 Raspbian,这是 Debian 系统的定制版。

官方还提供一个安装器 NOOBS,建议通过它来安装 Raspbian,相对简单一点。

下载 NOOBS。
格式化 Micro SD 卡为 FAT 格式(操作指导)。
解压NOOBS.zip到 Micro SD 卡根目录。
插入 Micro SD 卡到树莓派底部的卡槽,接通电源,启动系统。
正常情况下,按照屏幕上的提示,一路回车,就能装好系统。

五、SSH 登录
安装系统后,树莓派就可以上网了(Wifi 或者网线)。这时,你要看一下它的局域网 IP 地址,可以使用下面的命令。

$ sudo ifconfig
然后,更改系统设置,打开 SSH 登录(默认是禁止的)。

接着,从另一台电脑 SSH 登录树莓派。下面的命令是在局域网的另一台电脑上执行的。

$ ssh pi@192.168.1.5
上面代码中,192.168.1.5是我的树莓派的地址,你要换成你的地址。树莓派的默认用户是pi。

树莓派会提示你输入密码。pi的默认密码是raspberry。正常情况下,这样就可以登录树莓派了。接着,就可以进行各种服务器操作了,比如修改密码。

$ passwd
后面的实验需要将用户加入gpio用户组。

$ sudo adduser pi gpio
上面的代码表示将用户pi加入gpio用户组。

六、安装 Node
为了运行 Node 脚本,树莓派必须安装 Node,可以参考这篇文章。

$ curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
$ sudo apt install nodejs
正常情况下,Node 8.x 版就已经安装成功了。

$ node -v
v8.1.0
七、点亮 LED
树莓派提供了一组对外的 IO 接口,称为 GPIO( 通用 IO 接口,General-purpose input/output)。

它的 40 个脚的定义如下图。

注意,左上角的第1针(3.3V)是一个方块,其他针脚都是圆的。将树莓派翻过来,背后可以看到 GPIO 有一个角是方的,通过这种方法就可以确认哪一个针眼是3.3V。

通过 GPIO ,树莓派可以与其他电子元件连接。下面根据 Jonathan Perkin 的文章,使用树莓派连接 LED 二极管。

这里需要用到面包板。本质上,面包板就是几根导线,上面开了许多可以连到导线的孔。

+极和-极是两根垂直的导线,标着1、5、10这些数字的行,每一行都是一根水平的导线。导线与导线之间互不连接,另外,面包板的左右两半也是互不连接的。

然后,按照下面的图,将树莓派、面包板、LED 灯、电阻连起来。

上图中,红色导线表示电流的正极,从 GPIO 的第1针(3.3V)连到面包板。黑色导线表示电流的负极,从 GPIO 第三排的第6针(ground)连到面包板。它们连到面包板的哪个眼并不重要,但必须保证能组成一个完整的电路(上图的箭头流向)。注意,LED 二极管也有正负极,长脚表示正极,短脚表示负极。电阻没有正负极。

连接完成后,打开树莓派的电源,LED 应该就会亮起来了。

八、LED 控制脚本
下面,我们使用 Node 脚本控制 LED。

首先,将正极的导线从1号针脚(3.3V)拔出,插到第6排的11号针脚(上图的 GPIO 17)。这个针脚的电流是脚本可以控制的。

然后,在树莓派上新建一个实验目录,并安装控制 GPIO 的 Node 模块rpio。。

$ mkdir led-demo && cd led-demo
$ npm init -y
$ npm install -S rpio
接着,新建一个脚本led-on.js。

// led-on.js
var rpio = require(‘rpio’);

// 打开 11 号针脚(GPIO17) 作为输出
rpio.open(11, rpio.OUTPUT);

// 指定 11 号针脚输出电流(HIGH)
rpio.write(11, rpio.HIGH);
运行这个脚本,应该就会看到 LED 灯泡变亮了。

$ node led-on.js
再新建一个led-off.js脚本,只要改一行(完整代码看这里)。

// led-off.js
//…

// 指定 11 号针脚停止输出电流(LOW)
rpio.write(11, rpio.LOW);
运行这个脚本,LED 灯泡应该就会熄灭了。

$ node led-off.js
有了这两个脚本,让 LED 闪烁就轻而易举了。新建一个led-blink.js脚本。

// led-blink.js
var rpio = require(‘rpio’);
rpio.open(11, rpio.OUTPUT);

function blink() {
rpio.write(11, rpio.HIGH);
setTimeout(function ledoff() {
rpio.write(11, rpio.LOW);
}, 50);
}

setInterval(blink, 100);
上面的脚本让 LED 每秒闪烁10次。

$ node led-blink.js
九、HTTP 服务器
通过控制 LED 可以做很多事,比如架设一个 HTTP 服务器,每当有人访问,LED 就闪烁一下。

首先,在刚才的目录里面装一个服务器模块。

$ npm install -S server
然后,新建一个脚本server.js(完整代码看这里)。

// server.js
var server = require(‘server’);
var { get } = server.router;

// …

server({ port: 8080 }, [
get(‘/‘ , ctx => {
console.log(‘a request is coming…’);
blink();
}),
]);

console.log(‘server starts on 8080 port’);
运行这个脚本。

$ node server.js
然后,再打开一个命令行终端,访问8080端口,LED 就会闪一下。

$ curl http://localhost:8080
好了,今天的教程就到这里。接下来,你可以自己探索,做更多的尝试,比如写一个测试用例脚本,只要测试失败 LED 就会长亮,或者组装一个8位的加法器。

(正文完)

树莓派新手入门教程

作者: 阮一峰
日期: 2017年6月15日

树莓派(Raspberry Pi)是学习计算机知识、架设服务器的好工具,价格低廉,可玩性高。

本文根据我的亲身经验,介绍如何从零开始,搭建一个树莓派服务器,控制 LED 灯。你会看到,树莓派玩起来实在很容易。

一、型号
树莓派是一个迷你电脑,集成在一块电路板。目前,最新的型号有两个。
(1)Raspberry Pi 3代 B 型

(2)Raspberry Pi zero (含 zero w)

虽然后者便宜,但是少了许多接口(比如只有一个 USB 口),CPU 和内存都比较低,配件也少,因此推荐购买第3代的 B 型。以下都针对这个型号,但大部分内容对 zero 也适用。
二、配件
树莓派本身只是一个主机。要运行起来,必须有配件。
(1)电源
Micro USB 接口的手机充电器,就可以充当电源,但输出必须是 5V 电压、至少 2A 电流。充电宝当电源也没问题。

(2)Micro SD 卡
树莓派不带硬盘,Micro SD 卡就是硬盘。最小容量8G,推荐使用16G和32G的卡。

(3)显示器
树莓派有 HDMI 输出,显示器必须有该接口。如果有 HDMI 转 VGA 的转接线,那么 VGA 显示器也可以。我用的是一个 7 寸的液晶监视器。

不过,显示器只在安装系统时需要,后面可以 SSH 登录,就不需要了。
(4)无线键鼠
树莓派内置蓝牙,USB 或蓝牙的无线键鼠都可以用。

就像显示器一样,如果树莓派已经装好系统,而且只当作服务器,无线键鼠也可以不配。
三、电子元件
除了配件,下面的实验还需要一些电子元件。
(1)面包板(一块)

(2)连接线(若干)
注意,连接线必须一端是公头,一端是母头。

另外,最好也备一些两端都是公头的连接线。

(3)LED 二极管(若干)

(4)270欧姆的电阻(若干)

四、安装系统
如果商家已经装好系统,可以跳过这一步,否则需要自己安装操作系统。
官方提供的操作系统是 Raspbian,这是 Debian 系统的定制版。

官方还提供一个安装器 NOOBS,建议通过它来安装 Raspbian,相对简单一点。

下载 NOOBS。
格式化 Micro SD 卡为 FAT 格式(操作指导)。
解压NOOBS.zip到 Micro SD 卡根目录。
插入 Micro SD 卡到树莓派底部的卡槽,接通电源,启动系统。
正常情况下,按照屏幕上的提示,一路回车,就能装好系统。

五、SSH 登录
安装系统后,树莓派就可以上网了(Wifi 或者网线)。这时,你要看一下它的局域网 IP 地址,可以使用下面的命令。

$ sudo ifconfig
然后,更改系统设置,打开 SSH 登录(默认是禁止的)。

接着,从另一台电脑 SSH 登录树莓派。下面的命令是在局域网的另一台电脑上执行的。

$ ssh pi@192.168.1.5
上面代码中,192.168.1.5是我的树莓派的地址,你要换成你的地址。树莓派的默认用户是pi。
树莓派会提示你输入密码。pi的默认密码是raspberry。正常情况下,这样就可以登录树莓派了。接着,就可以进行各种服务器操作了,比如修改密码。

$ passwd
后面的实验需要将用户加入gpio用户组。

$ sudo adduser pi gpio
上面的代码表示将用户pi加入gpio用户组。
六、安装 Node
为了运行 Node 脚本,树莓派必须安装 Node,可以参考这篇文章。

$ curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
$ sudo apt install nodejs
正常情况下,Node 8.x 版就已经安装成功了。

$ node -v
v8.1.0
七、点亮 LED
树莓派提供了一组对外的 IO 接口,称为 GPIO( 通用 IO 接口,General-purpose input/output)。

它的 40 个脚的定义如下图。

注意,左上角的第1针(3.3V)是一个方块,其他针脚都是圆的。将树莓派翻过来,背后可以看到 GPIO 有一个角是方的,通过这种方法就可以确认哪一个针眼是3.3V。

通过 GPIO ,树莓派可以与其他电子元件连接。下面根据 Jonathan Perkin 的文章,使用树莓派连接 LED 二极管。
这里需要用到面包板。本质上,面包板就是几根导线,上面开了许多可以连到导线的孔。

+极和-极是两根垂直的导线,标着1、5、10这些数字的行,每一行都是一根水平的导线。导线与导线之间互不连接,另外,面包板的左右两半也是互不连接的。
然后,按照下面的图,将树莓派、面包板、LED 灯、电阻连起来。

上图中,红色导线表示电流的正极,从 GPIO 的第1针(3.3V)连到面包板。黑色导线表示电流的负极,从 GPIO 第三排的第6针(ground)连到面包板。它们连到面包板的哪个眼并不重要,但必须保证能组成一个完整的电路(上图的箭头流向)。注意,LED 二极管也有正负极,长脚表示正极,短脚表示负极。电阻没有正负极。
连接完成后,打开树莓派的电源,LED 应该就会亮起来了。
八、LED 控制脚本
下面,我们使用 Node 脚本控制 LED。
首先,将正极的导线从1号针脚(3.3V)拔出,插到第6排的11号针脚(上图的 GPIO 17)。这个针脚的电流是脚本可以控制的。
然后,在树莓派上新建一个实验目录,并安装控制 GPIO 的 Node 模块rpio。。

$ mkdir led-demo && cd led-demo
$ npm init -y
$ npm install -S rpio
接着,新建一个脚本led-on.js。

// led-on.js
var rpio = require(‘rpio’);

// 打开 11 号针脚(GPIO17) 作为输出
rpio.open(11, rpio.OUTPUT);

// 指定 11 号针脚输出电流(HIGH)
rpio.write(11, rpio.HIGH);
运行这个脚本,应该就会看到 LED 灯泡变亮了。

$ node led-on.js
再新建一个led-off.js脚本,只要改一行(完整代码看这里)。

// led-off.js
//…

// 指定 11 号针脚停止输出电流(LOW)
rpio.write(11, rpio.LOW);
运行这个脚本,LED 灯泡应该就会熄灭了。

$ node led-off.js
有了这两个脚本,让 LED 闪烁就轻而易举了。新建一个led-blink.js脚本。

// led-blink.js
var rpio = require(‘rpio’);
rpio.open(11, rpio.OUTPUT);

function blink() {
rpio.write(11, rpio.HIGH);
setTimeout(function ledoff() {
rpio.write(11, rpio.LOW);
}, 50);
}

setInterval(blink, 100);
上面的脚本让 LED 每秒闪烁10次。

$ node led-blink.js
九、HTTP 服务器
通过控制 LED 可以做很多事,比如架设一个 HTTP 服务器,每当有人访问,LED 就闪烁一下。
首先,在刚才的目录里面装一个服务器模块。

$ npm install -S server
然后,新建一个脚本server.js(完整代码看这里)。

// server.js
var server = require(‘server’);
var { get } = server.router;

// …

server({ port: 8080 }, [
get(‘/‘ , ctx => {
console.log(‘a request is coming…’);
blink();
}),
]);

console.log(‘server starts on 8080 port’);
运行这个脚本。

$ node server.js
然后,再打开一个命令行终端,访问8080端口,LED 就会闪一下。

$ curl http://localhost:8080
好了,今天的教程就到这里。接下来,你可以自己探索,做更多的尝试,比如写一个测试用例脚本,只要测试失败 LED 就会长亮,或者组装一个8位的加法器。

Raspberry Pi是什么

Raspberry Pi 简介

Raspberry Pi,缩写RPi或者RasPi,中文译名为“树莓派”,是一个信用卡大小的、基于Linux的“卡片电脑”(Single-board Computer,单板机),是为学生计算机编程教育而设计,由英国剑桥某实验室历经6年的研制,于 2012年2月29日公开发布并接受预定。负责Raspberry P(树莓派)i这个项目运作的是树莓派基金会(Raspberry Pi Foundation),该基金会主任是Eben Upton(埃本·阿普顿),在媒体前有着非常高的曝光率。

探究Raspberry Pi的命名,一种广为接受的说法是:“Raspberry(树莓)”来源于剑桥以水果命名的老传统,”Pi”则为Python的缩写,意为Python将做为Raspberry Pi应用主要编程语言之一。

2012年3月,英国剑桥大学埃本·阿普顿(Eben Epton)正式发售世界上最小的台式机,又称卡片式电脑,外形只有信用卡大小,却具有电脑的所有基本功能,这就是Raspberry Pi电脑板,中文译名”树莓派”!这一基金会以提升学校计算机科学及相关学科的教育,让计算机变得有趣为宗旨。基金会期望这 一款电脑无论是在发展中国家还是在发达国家,会有更多的其它应用不断被开发出来,并应用到更多领域。

Raspberry Pi 功能

Raspberry Pi是一种低成本,信用卡大小的电脑,可以直接使用电脑显示器或电视作为显示设备,并使用标准 USB 键盘和鼠标,这是一个比较小的装置,能使所有年龄的人学习计算机,并学习如何使用 Python 程序语言。它可以做与台式电脑相同的事,例如浏览互联网、播放高清视频、制作电子表格、文字处理、甚至玩游戏等。更重要的是,Raspberry Pi 有 GPIO 接口,可以外接传感器设备,所以 Raspberry Pi 有与外界交流的能力,也由于它的这个功能,Raspberry Pi 同样广泛应用于教学项目。那么我们能使用 Raspberry Pi 做什么呢?用它可以实现什么功能?

1、初级应用 - 使用 Raspberry Pi 来了解计算机 Linux 的相关操作,比如:
远程登录到你的 Raspberry Pi 并对系统进行配置
使用树莓派作为一个音乐播放器、视频播放器
使用 Raspberry Pi 及显示器搭建一个小型的学习机
学习 Scratch 编程
结合现在同样主流的开源硬件 Arduino 来使用

2、进阶应用 - 连接外部传感器件、学习 Python 语言
连接摄像头模块,在 Raspberry Pi 上进行拍照、录像,做成一个属于自己的摄像机
连接超声波模块,给 Raspberry Pi 增加距离测量的功能
连接环境相关传感器,例如温度、湿度、MQ2等,使用 Raspberry Pi 来探测室内环境
使用 Raspberry Pi 来控制小车的运动,还可以连接将树莓派连接到网络,实现无线控制小车的运动

3、高级应用 - 可以在 Raspberry Pi 上搭建各种服务,比如:
个人网站,放些好玩的东西,也蛮有意思的,更新起来也不需要FTP,直接拷贝就可以了。服务器上还可以搭建一个家庭相册,使用局域网,那样速度可以很快。
Git 服务器,用来存放一些代码,比如有些代码不想放在 github 上的,可以放在这里
BT 下载机(transmission),可以远程操作,随时随地的下载。
AirPlay 服务,可以把苹果设备的音乐无线投放到树莓派上的音箱,用的是 ShairPort
私有云服务ownCloud,可以在任何地方,包括用手机,上传下载文件,同步日历等,这个服务比较慢。
定时闹钟,整点会报时,用Cronjob设置,也可以添加传感器,将当前的温度,PM2.5指数都报出来。
语音信箱,发送邮件到一个指定的邮箱,邮件的内容就会被转换成语音,从树莓派的音箱播放出来。
GoAgent代理服务,家里所有的设备都可以通过它翻墙(设置proxy.pac)。
Twitter机器人,每天定时把当地的天气情况发送到twitter。
网站资源下载器,比如文章、图片。可以写一些脚本去解析你常去的网站论坛,自动下载图片:汽车、风景、人文、等等。用SQLite,保存文件的MD5,小文件,重复文件自动删除。程序中把User Agent设置为知名浏览器,比如Chrome, IE等,否则可能会被拒绝下载。
一组Yeelink的脚本,用来同步Pi的性能指标(比如CPU利用率等)到云端,用于在手机上显示。并且还可以用手机去控制Pi上面跑的程序。

Raspberry Pi 特色

1、Raspberry Pi配备 ARM 主芯片,以SD卡为内存硬盘,主板只有卡片大小,低功耗,同时含有 USB 接口、网络接口、摄像头接口、GPIO 接口,扩展非常便捷。
2、视频输出方面有模拟信号的电视输出接口和HDMI高清视频输出接口,可配合大部分显示器使用
3、Raspberry Pi 应用例程开源,用户可以在 Raspberry Pi 官网查找到很多有趣的应用
4、可以做 Linux 系统计算机所能做的事情,但是功耗、体积都较它要小的多!

Raspberry Pi板的介绍

Raspberry Pi 是一个开放源代码特色的电脑主板,完全是以开放社区运作,价格接近硬件的最低成本发售,对于软硬件开发者,它提供免费安装的系统,可以完成桌面电脑的工作,例如文章处理,玩儿游戏,听音乐,播放高解析度的视频,除了自己玩儿、学习、分享或解决一些应用需求等,它具有网络连接功能,所以只需要适当的设定也适合拿来当作服务器,或者还可以用于学习电脑程序语言等。树莓派不仅有强大的功能,而且硬件也不断的升级 Raspberry Pi 从发布至今已经经历了很多版本,有A型、B型、B+、B型2代到现在的 Raspberry Pi 3 控制器,每次都有性能上的升级,让树莓派变得更加快速,好用。

Raspberry Pi 教程汇总

树莓派控制器作为当下主流的嵌入式控制器,那么我们如何去使用它,配置它,扩展它呢?这里给大家整理了一些教程,主要是关于树莓派基础教程,树莓派小车应用教程,相关外围硬件配置,使用 python 来控制树莓派的 GPIO,及 Raspberry Pi 书籍整理,Raspberry Pi 功能小车的搭建教程,例如小车的避障、超声波侦测等功能。此教程会持续更新。。。

基础篇 - Raspberry Pi 系统安装、启动:
1、Windows下的Raspberry Pi系统安装
2、Mac下Raspberry Pi 系统安装
3、Linux下Raspberry Pi系统烧录
4、第一次启动树莓派

基础篇 - Raspberry Pi 网络配置
1、树莓派网络连接
2、Raspberry Pi 3 WiFi 配置
3、Raspberry Pi 3 WiFi 固定 IP 配置
4、改变Raspberry Pi的网络名称

基础篇 - Raspberry Pi 常用配置:
1、中文环境设置及输入法安装
2、远程图形化显示
3、播放MP3格式音乐文件
4、Raspberry Pi 常用软件
5、键盘配置的更改
6、Raspberry Pi 3 蓝牙配置
7、Raspberry Pi 3 音频输出模式配置
8、Raspberry Pi 3 无线键鼠配置
9、Raspberry Pi 3 系统时区及时间配置

10、Raspberry Pi 3 Ubuntu 16.04.1 LTS
11、基于 Raspberry Pi 和 Yeelink 平台的图像监控

应用篇 - Raspberry Pi Python 编程控制 GPIO 入门
【GPIO】1、LED 闪烁
【GPIO】2、制作 LED 呼吸灯
【GPIO】3、通过终端控制LED亮度
【GPIO】4、舵机控制
【GPIO】5、GPIO控制全彩LED灯
【GPIO】6、LED 流水灯
【GPIO】7、按键控制 LED
【GPIO】8、终端控制蜂鸣器发声
【GPIO】9、Tkinter库建立滑条改变PWM信号脉宽
【GPIO】10、Tkinter库建立滑条控制全彩LED
【GPIO】11、多路复用LED控制
【GPIO】12、Raspberry Pi 中断使用
【GPIO】13、启用IIC接口
【GPIO】14、Raspberry Pi结合PCF8591的模数转换

应用篇 - Raspberry Pi 结合双H桥电机驱动板实现小车平台的控制
【树莓派小车】第1课——准备硬件
【树莓派小车】第2课——使用树莓派驱动一个电机
【树莓派小车】第3课——控制小车前后运动和转弯
【树莓派小车】第4课——小车加入用户控制
【树莓派小车】第5课 ——小车速度调节

应用篇 - Raspberry Pi 3 结合树莓派专用电机驱动板的智能小车平台搭建
【树莓派小车】认识树莓派电机驱动板
【树莓派小车】使用 python 对树莓派驱动板接口进行控制
【Raspberry Pi 3 小车】1、硬件搭建
【Raspberry Pi 3 小车】2、驱动一侧电机
【Raspberry Pi 3 小车】3、基本运动
【Raspberry Pi 3 小车】4、超声波定距操控
【Raspberry Pi 3 小车】5、自主避障
【Raspberry Pi 3 小车】6、自主碰撞
【Raspberry Pi 3 小车】7、网页控制 4WD 平台
【Raspberry Pi 3 小车】8、键盘控制小车
【Raspberry Pi 3 小车】9、侦测避障

应用篇 - Raspberry Pi 模块配置

1、Raspberry pi camera V2 使用方法
2、(新)7 寸触摸屏幕配合 Raspberry Pi 使用说明
3、(旧)7寸触摸屏使用之驱动加载
4、树莓派摄像头安装及配置
5、树莓派控制器蓝牙适配器配置

应用篇 - Raspberry Pi 与传感器

1、模拟量传感器控制LED
2、控制 SPI 八位数码管显示
3、超声波传感器测距实验

Raspberry Pi常见问题

树莓派

树莓派体积小,功能强大,自从其问世以来,以其优越的性能,倍受电子爱好者的亲赖,也正因为树莓派功能比较多,所以在使用时,发现的问题也会越来越多,在此列出使用过程中,遇到的常见问题以及疑难杂症,日后也会不间断的更新,敬请关注。
树莓派常见问题

树莓派各个型号的区别
详见:Raspberry Pi板的介绍
为什么没有实时时钟?
树莓派没有实时时钟,关机后无法维持时钟的走时。没有连接网络的树莓派,每次开机时都需要手工设定时间。(连接网络的,开机时会自动联网获取时间)添加实时时钟时钟电路,其实出奇的昂贵。因为一旦在板子上加入电池,空间和接口电路都会大大推高树莓派的造价。如果您的应用或电子制作有需要,可以考虑用GPIO扩展端口,自己在外部连接实时时钟电路。
能增加内存吗?
不能。内存是一个“扣”在CPU/GPU上的PoP封装,无法拆卸。
如何连接键盘和鼠标?
使用USB端口。树莓派A型有一个,B型有两个USB口。如果您要连接更多的USB设备,使用USB HUB即可。建议使用无线键盘鼠标套装。除了使用方便外,最重要的是可以节省一个USB口。推荐:罗技MK240或MK220。
树莓派能连接什么显示设备?
树莓派提供HDMI与复合视频两种输出。您可以将树莓派连接到任何电视机的A/V输入端子,或是新型电视的HDMI端子上。也可以使用廉价的HDMI转DVI线缆(转接头)连接支持DVI输入的显示器。树莓派不支持VGA。如果要使用VGA或YPbPr色差,您需要一个相对贵一些的HDMI转VGA转换器。最便宜的可靠的HDMI转VGA转换器,在淘宝上72元可以买到,介绍文档会稍后贴到论坛上。 当然,尽管对初学者可能有些难,但树莓派即使没有显示器,也可以通过远程登录进行操作!
为什么不支持VGA?
因为BCM2835芯片只支持HDMI输出。并且VGA技术也已经开始逐步退出显示市场,有了过时的趋势。我们因此也不计划去支持VGA。

输入密码时不显示是怎么回事?
树莓派登录界面要求输入Password:时,会发现按什么屏幕都没反应。密码完全不回显,这是UNIX/Linux系统的正常现象。只需“摸黑”输入密码并回车就行。退格键也是能用的。
可以用电池供电吗?
可以。树莓派用4节镍氢充电电池(1.2V)应该能运行,不过随着电池的放电,电压低到一定程度树莓派就会异常,请充电。如果用4节不可充电碱性电池(1.5V),由于电压高到了6V,您可能需要使用线性稳压器或其他手段降压。其实总之,只用充电电池推动树莓派是极不方便的。如果您真有电池供电的需求,推荐购买“移动电源”。移动电源是现在智能手机的常用附件,为您提供一个输出5V电压的USB接口。可靠品牌有羽博和品胜。
支持以太网供电(PoE)吗?
目前的版本不支持。不过因为要求这个功能的呼声很高,所以制造商在考虑以后是否要引入。
操作系统是?
各种Linux。我们建议您使用Raspbian(为树莓派定制的Debian)。操作系统存储在SD卡上,您可以自己烧录替换。
有官方编程语言吗?
我们采用并推广Python,作为青少年编程教育用语言。不过任何可以为ARMv6架构编译的语言,都可以用于树莓派。我们当然不限制您一定要使用Python。
可以运行WINE吗?(或Windows,或任何x86软件)
不行,Linux下能通过WINE运行Windows程序,至少有赖于CPU的相同。因为程序中的指令,需要与CPU指令集一致才可以被CPU执行。所以任何的ARM,都肯定运行不了x86程序——除非使用模拟器,但性能极低完全无法实用。
有关SD卡和存储设备
最大实验了32GB的SD卡没有问题。
SD卡容量的最低需求,理论上2GB。但为了给新的程序和文件保留空间,实际上请一定不要低于4GB。建议SD卡选择速度等级为Class10的,可以用满树莓派对SD卡的读写能力,最大限度提高速度。推荐SanDisk Ultra Class10 TF 8GB这张卡。销量大用的人多,便宜又成熟。8GB是推荐的大小,肯定够用,并且备份恢复都方便。
变砖了怎么办?
用电脑,重新把系统镜像刷进SD卡。
换句话说:因为树莓派没有存储,所以树莓派本身是不会变砖的,有错全是SD卡的错!
使用问题

1、用户pi无写权限 现象:挂载U盘后,必须要sudo才有写的权限。
原因:挂载时,没有制定相关选项uid和gid。
解决办法:
先用id获取uid、gid,再挂载

pi@raspberrypi ~ $ id
uid=1000(pi) gid=1000(pi)
groups=1000(pi),4(adm),20(dialout),24(cdrom),27(sudo),29(audio),44(video),
46(plugdev),60(games),100(users),105(netdev),999(input),1002(spi),1003(gpio)
pi@raspberrypi ~ $ sudo mount -o iocharset=utf8,uid=1000,gid=1000 /dev/sda4 /media/udisk/
pi@raspberrypi ~ $
2、MAX3232转接头连接USB转RS232转换接头和树莓派,控制台会出现乱码=== 现象:即便是PC采用FTDI232的USB转RS232,再使用MAX3232转接头,接入树莓派在串终端上输入字符时,回显有乱码。取决于转换线的质量。
原因:USB转RS232的过程中已经有一次5v TTL点平转RS232电平的转换,再经过MAX3232将RS232电平转换为3.3VTTL电平,转换环节太多,信号容易丢失。
解决办法:
1)采用精心设计的USB转RS232转换线可避免。LT 手头有两条线,经过MAX3232转接,一条线输入字母回显会乱码;另一条线使用键盘输入无任何问题,但是拷贝粘贴到终端时,回显会出现乱码。
2)不要使用USB转RS232,直接用MAX3232转接头连接电脑原生RS232和树莓派。
3)直接使用USB转3.3VTTL,避免多次转换。
3、USB接口带不动USB移动硬盘 现象:插入USB移动硬盘后,硬盘嗒嗒响。
原因:USB供电不足。
解决办法:
方法1:修改config.txt ,添加 max_usb_current=1
方法2:修改config.txt ,添加 safe_mode_gpio=4
4、不能输入特殊字符 现象:在输入指令时,有些字符打不出来
原因:树莓派是英国开发的,英式键盘和美式键盘布局不一样,而我们通常使用的是美式键盘。
解决办法:
将英式键盘改为美式,具体方法如下:
树莓派键盘设置的更改

5、树莓派如何截全屏 解决办法: 使用截图软件,命令安装名叫“scrot”的截屏工具。
sudo apt-get install scrot
截取全屏幕执行:
sudo scrot
用鼠标选区屏幕区域截取执行:
sudo scrot -s
6、Volume was not properly unmounted. Some data may be corrupt. Please run fsck. 现象:非正常关机后,在开机信息最末尾出现

[ 15.721411] FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
原因:非正常关机,比如没执行 sudo poweroff 关机就拔掉 MicroUSB 供电插头。
解决办法: 方法1:最方便的是,将TF卡取下,用USB读卡器插入Windows系统,用磁盘修复即可。
方法2:在树莓派里使用 dosfstool。

umount /boot

git clone http://daniel-baumann.ch/git/software/dosfstools.git

cd dosfstools

make

cc -O2 -fomit-frame-pointer -D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -Wextra -Wno-sign-compare -Wno-missing-field-initializers -Wmissing-prototypes -Wstrict-prototypes -g -c -o fatlabel.o src/fatlabel.c
cc mkfs.fat.o -o mkfs.fat

./fsck.fat -V /dev/mmcblk0p1

fsck.fat 3.0.24 (2013-11-23)
0x25: Dirty bit is set. Fs was not properly unmounted and some data may be corrupt.
1) Remove dirty bit
2) No action
? 1
Starting check/repair pass.
Starting verification pass.
Leaving filesystem unchanged.
/dev/mmcblk0p1: 14 files, 2383/7161 clusters
./fsck.fat -a /dev/mmcblk0p1

#mount /boot
方法3:直接使用编译好的 fsck.fat

pi@raspberrypi ~ $ git clone https://github.com/davidrobot/myRaspi.git
Cloning into ‘myRaspi’…
remote: Counting objects: 5, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 5 (delta 0), reused 5 (delta 0)
Unpacking objects: 100% (5/5), done.
pi@raspberrypi ~ $ cd myRaspi/bin/
pi@raspberrypi ~/myRaspi/bin $ chmod +x fsck.fat
pi@raspberrypi ~/myRaspi/bin $ sudo cp fsck.fat /usr/bin
pi@raspberrypi ~/myRaspi/bin $ sudo fsck.fat -a /dev/mmcblk0p1
fsck.fat 3.0.26 (2014-03-07)
0x25: Dirty bit is set. Fs was not properly unmounted and some data may be corrupt.
Automatically removing dirty bit.
Performing changes.
/dev/mmcblk0p1: 13 files, 1231/7161 clusters
pi@raspberrypi ~/myRaspi/bin $
方法4:升级系统即可

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
7、wlan0: deauthenticating from xx:xx:xx:xx:xx:xx by local choice 现象: 插入一个USB转LAN的网卡eth1 ,USB无线网卡 waln0 就被断开了。拔掉USB转LAN网卡,WLAN才恢复。或者eth0 ,连通,wlan0也会断开。这个不是所希望的。

pi@raspberrypi ~ $ dmesg | tail

[ 452.068465] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 452.068481] usb 1-1.4: Product: USB To LAN Converter
[ 452.068495] usb 1-1.4: Manufacturer: ADMtek
[ 452.068508] usb 1-1.4: SerialNumber: 0001
[ 452.113419] pegasus: v0.9.3 (2013/04/25), Pegasus/Pegasus II USB Ethernet driver
[ 452.118287] pegasus 1-1.4:1.0: setup Pegasus II specific registers
[ 452.229480] pegasus 1-1.4:1.0: eth1, ADMtek ADM8511 “Pegasus II” USB Ethernet, 00:00:e8:00:24:40
[ 452.233024] usbcore: registered new interface driver pegasus
[ 454.718505] wlan0: deauthenticating from 00:24:23:50:1e:ee by local choice (reason=3)
[ 454.736171] cfg80211: Calling CRDA for country: DE
/etc/network/interfaces是这样的

auto lo
iface lo inet loopback
iface eth0 inet dhcp
allow-hotplug eth1
iface eth1 inet static
address 192.168.1.1
netmask 255.255.255.0
allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp
同时/etc/wpa_supplicant/wpa_supplicant.conf 这样的

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid=”LT_U880”
psk=”password”
}
原因:似乎是 wpa_supplicant 导致的。这里也有关于reason=3 的讨论。
解决办法:
重新编写 interfaces 文件,不使用 wpa-roam。
auto lo
iface lo inet loopback
iface eth0 inet dhcp
allow-hotplug eth1
iface eth1 inet static
address 192.168.1.1
netmask 255.255.255.0
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-ssid “LT_U880”
wpa-psk “password”
iface default inet dhcp

尽管这样解决了插入USB转LAN网卡后,WLAN失效,但是似乎会WLAN一直出现deauth,auth反复认证 reason =2 ,但是并不影响通讯,即使是不采用我的设置而采用系统默认的interfaces设置,也是有auth和deauth反复过程的。还有似乎这样拔掉USB无线网网卡后,不能再自动获取IP地址。有待进一步测试。

树莓派开发系列教程

1——树莓派介绍

如何使用树莓派学习编程?

树莓派作为学习编程的工具是一个可行的选择,因为它是一台可以运行linux的具有完整计算机结构的小体积开发板

两种方式可供选择进行操作。

1.用电脑,ssh 或vnc(如果是windows请下载putty进行ssh连接到树莓派,然后在终端里进行操作,如果你用的是mac,mac自带终端 ssh root@ip即可( 端口不是22的话要指定-p 参数), vnc树莓派不自带 sudo apt-get install vncserver )

2.树莓派接上屏幕,然后usb接键盘,就是这么直接(曾经一个学长管我借树莓派,看着3.5寸屏幕上的光标用usb键盘和鼠标写程序然后debug 看着他在如此低像素条件下码代码2333333 )既然学习编程,就要有IDE 树莓派自带nano vi 貌似没有vim?看个人喜好。

此外也可以电脑上写好之后scp过来。

学习python的话,树莓派官方系统有python。
学习node.js 官方提供了编译好的包,不需要自己编译(自己编译可能树莓派要1个小时?)
学习c和c++ 树莓派有gcc
学习c#和.net 有mono这个项目
学习go 需要自己下载golang源代码编译
学习oc 对不起请用mac学习swift 不支持还是到电脑上搞ubuntu吧而且也不能写ios代码,还是要用mac
学习java 树莓派镜像现在已经自带oracle jdk
学习lua 需要到http://lua.org官网上去下载然后自己make至于学习前端做网页什么的,也可以,但是感觉怪怪的,不如拿一台电脑

树莓派的价值不仅仅在于它的体积比较小,gpio接口和uart的存在让树莓派能够作为运算量小的物联网项目中的万金油。

欢迎关注我的其它发布渠道