配置树莓派USB接口的电流限制

树莓派的USB接口是有电流限制的,默认只能达到600mA。这给外接一些对电流要求较高的设备时会遇到电流不足的问题,导致无法工作或工作不稳定。

例如外接某些移动硬盘,我们通常需要加入额外的电源来对这些设备供电。当然可以选择有源 USB HUB 来很好地解决。

而今天介绍的一种方案,只需要修改树莓派系统的配置,即可提高 USB 接口供电的电流限制(最大为 1.2A)。

首先申明一些重要的注意事项:

  • 首先需要合理评估超载的电流是否在可以接受的范围内,如超出默认值 600mA 50%以上,则墙裂建议用有源 HUB 方案。
  • 本方案不可用于树莓派 Zero。也不适用于 2017-04-10 之前的 Raspbian 系统。
  • 使用该方案之后,树莓派将失去保修的条件。
  • 分享本方案仅供专业玩家了解这个配置项,如果你无法理解或无法对负载进行合理评估请勿继续阅读,我们非常不愿意看到因为忽视了以上事项而导致你的树莓派主板因过载而报废。同时对进行该项尝试而发生的任何可能的损失免责。

因树莓派的USB接口电流大小由USB电流保护芯片进行限制,所以通过旁路USB电流保护芯片(即不让电流从电流保护芯片流过)就可以实现更大电流。

具体配置需要修改 /boot/config.txt 这个文件,在最后面添加三行。

max_usb_current=1
current_limit_override=0x5A000020
avoid_warnings=2

由于电源芯片限制,最大电流为1.2A。重新启动树莓派即可生效。

曾经有一个树莓派摆在你的面前正常工作着,你要好好珍惜哦~(采用请慎重)

 

本文来自:树莓派实验室

树莓派3B 爬虫蓝牙播放器

  

一直没有尝试使用一下树莓派3B 的蓝牙功能,今天特别想试试,于是就烧录了最新的raspbian镜像,然后接上5寸GPIO触摸屏和键盘鼠标,开始了调试,网上看了看其他人的教程,发现都很老了,有的还不能用。所以就诞生了这篇我自己能用的文章,算是做个记录吧。

首先你需要做的准备工作:

  1. 树莓派3B  如果你是2B ,那么你还需要一个USB 的蓝牙接收器(马云家可买)
  2. 树莓派电源5v/2A
  3. 8GB TF 卡一张,读卡器1个
  4. 树莓派外壳(可选) 为了好看和防尘, 还可以选择散热片和风扇,更加专业.
  5. 小米蓝牙小音箱.
  6. 无线网络环境.
  7. 去官方网站下载最新的 Raspbian 系统并且通过 win32_diskimager 烧录到你的 TF卡

好了,万事俱备, 只欠500万,接下来直接进入主题,插上电源,等待RPI开机后,系统中通过点选 wifi 图标先连入网络,然后打开一个终端,执行下面的命令进行更新和安装蓝牙软件:

sudo apt-get  update

sudo apt-get  -y  install  –no-install-recommends bluetooth

sudo service bluetooth status

检查是否有蓝牙服务,如果没有就再重启一下设备。或者用下面的命令尝试扫描一下:

hcitool scan

我之前还尝试了使用blueman,那个在图形上设置更加方便。

sudo apt-get  -y  install  bluetooth  bluez  blueman

但是我更倾向于这样设置:

蓝牙配对

如果看不清楚就看这里:

sudo  bluetoothctl

然后进入bluetooth的交互界面输入

agent  on

default-agent

然后开始扫描

scan on

当找到你的蓝牙设备后,执行配对就好了。

pair  B8:78:2E:12:0F:29   #这里要根据你实际情况选择.

这里输入你的蓝牙的MAC地址,就是类似B8:78:2E:12:0F:29这种

如果要用蓝牙音箱,记得使用blueman,那个有图形界面可以在图形上选择audio的输出方式,可以找到你的蓝牙设备,然后选择成为输出设备,然后就可以用我写好的python爬虫来进行音乐的搜索和播放了。

git  clone   https://github.com/yoyojacy/52Pi.git

cd  52Pi/

python   music.py

第一次执行的时候可能时间比较长,因为在更新系统和安装mplayer,不用担心,通过后就可以看到提示了,输入歌名或者歌手的名字就可以听到歌曲了。如果还想调整一下音量大小可以用:

alsamixer

然后按上下键调整就好了,最后记得ESC退出。

最后,转发的童鞋请注明出处! 谢谢~

树莓派开箱配置之更改键盘布局

树莓派用了几次后,发现键盘老是按错,一些字符打不出来或打错。这个问题,折腾我半天。还是把心得分享一下吧~

上网查,发现是键盘布局不对,树莓派(raspberry pi)是英国产品,默认键盘布局是英国(GB),我们用的键盘布局一般是美国(US)的。

更改键盘布局,命令如下:

sudo dpkg-reconfigure keyboard-configuration

进入后,选通用的101键PC键盘。

按tab键,到OK,按Enter确定。

在键盘layout选择中,选Other。

按tab键,到OK,按Enter确定。

然后在选项中,选English(US)。

按tab键,到OK,按Enter确定。

再选English(US, alternative international)。

按tab键,到OK,按Enter确定。

然后一路按OK。

退出后,重启系统。

sudo reboot

重新启动时,由于修改了键盘布局,在读取键盘布局的阶段会比平常慢一些。

OK了, 终于可以打出所有字符了。

本文来自:http://shumeipai.nxez.com/2017/11/13/raspberry-pi-change-the-keyboard-layout.html

Scratch2.0——针对树莓派的新功能

在最新的树莓派Raspbian系统上,Scratch2.0是自带的编程软件,这个版本除了可以让我们通过Scratch来操作GPIO的输入输出,还有一些新特性。

控制GPIO

和以前的版本一样,现在通过拖动模块,我们就能控制GPIO的输出,获取GPIO的输入,这就意味着我们通过Scratch就能点亮LED、控制蜂鸣器、获得按钮等各种传感器的输入信号来进一步控制scratch小猫的动作;而且比以前更加方便,用下面的两个模块就能完成输入和输出的操作。

添加这两个模块的方法很简单,打开Scratch2.0之后,我们单击More Blocks和Add an Extension,然后需要选择一个Pi GPIO的扩展,再选择OK。

之后在More Block板块下面就能看到相关的两个模块

在GPIO2连接一个LED,用下面的例子就能让这个LED一秒一秒的间隔闪烁。

或者在GPIO2连接一个按钮,简单地把这个引脚口设置成input,然后使用”gpio _ is high?” 模块就能来检测这个按钮的状态,在下面的例子中,当按钮被按下的时候Scratch小猫就会说”Pressed”。

复制SPRITE

相比较1.4的版本,Scratch2.0也提供了一些额外的新功能,最主要的一个新特性是我们可以创建sprite的拷贝,也就是从一个sprite复制成多个,每个拷贝都是某个sprite的实例,都会从最开始的sprite继承下它的脚本模块。

比如下面的例子中,每次按下空格键,scratch猫都会扔出一个复制出来的苹果实例,每个苹果被复制出来的时候,都会执行“When I start as a clone”的这部分脚本。

这种复制的新功能,避免了我们以前重复创建一模一样的sprite(比如做游戏的时候需要创建一堆敌人)的情况。

自定义的模块

Scratch2.0支持像定义函数一样,自定义模块,方便用户在一个项目里面多次调用和分块编写应用,下面的例子展示了一个jump的自定义模块,用一个jump模块就能对所有的sprite应用这个效果。

而且自定义模块的时候,可以加入输入值(参数),比如下面的这个画图形的函数模块,有两个参数,一个是图形的边数,一个是边长,可以看到同一个自定义模块,使用的时候输入不同的参数值,就能得到不一样的我们需要的效果。

Scratch2.0现在也支持与网络摄像头、麦克风的简单交互,都有了相应的模块,比如这个Clap-O-Meter项目通过麦克风可以来检测噪声的强度,Keepie Uppies这个游戏通过摄像头来控制足球。

另外还有几个新功能包括矢量图编辑器和一个声音编辑器以及很多新的人物图案。

 

Raspbian 有多少个版本?

Raspbian究竟有多少个版本呢,答案是总共有6个版本,其中2个是公开版本,4个是非公开版本.

六个版本,依次增加功能:

1)最小化启动:这其实只是一个引导系统.树莓派专用的一些软件(闭源)会在这个包提供,但是这个系统并不能直接启动.

2)真正最小系统,这就是一个最小最小的系统,只有基础功能,没有任何额外添加.

3)(公开发布)轻量系统,也就是Raspbian-Lite,官方发布的Raspbian-Lite也就是这个系统.

4)基本桌面环境,只有桌面环境但是没有相对应的一些软件.适合于只要桌面但是不需要任何额外软件的用户.

5)用户友好的桌面环境,这个已经非常接近官方发布的系统了,他对用户友好,对新手来说也很方便.并且,这个系统限定在4G卡也可以使用.

6)(公开发布)完整系统,这个就是官方发布Raspbian,也是我们最常用的,他加入了Mathematica软件,其他跟第五个系统是一样的.

制作这些系统可以通过官方Git工具制作,至于公开发布的系统,直接下载就可以了.

https://github.com/RPi-Distro/pi-gen

当然,如果不知道怎么生成其他系统,可以持续关注树莓派中文站,我们将持续有新资料发布,包括这些系统哦.

如何确认自己的Pi版本和系统日期

很多小伙伴不知道自己的Pi的版本和系统日期,然后在使用我们的教程时候发现各种问题,下面我就教三招简单识别方法.

1)使用gpio readall命令,如图就是Pi 3版本了.此方法可以简单识别出自己板子型号.如果没有这个指令,那么你需要更新你的操作系统了.

2)使用cat /etc/rpi-issue命令,如图就是使用6月21日的镜像.此也是发稿为止最新的系统.

3)使用vcgencmd version命令,如图我使用的是7月3号的系统固件版本.

如何核对版本和板子型号,依然教程没有反应,那么就得检查下是否有输入错误,如果确认无误,就到QQ群里讨论讨论吧.

 

在树莓派上学习命令行-零

本文翻译参考自MagPi系列文章Conquer the Command Line。
旨在带领新手更好更快地学会在树莓派上的命令行和终端的使用。

不要慌张

首先终端不是一种到过去的退化,反而它是一种高效而有力的使用树莓派的方法。
假如你的树莓派没有设置开机直接进入图形化界面的话,开机进入的就是终端,当你登陆之后输入startx进入图形界面,然后按住ALT+CTRL加上F1就能发现这个终端还是开着的,按住ALT加上从F2F6都会有一个虚拟的终端等着你去登陆,而且任何时候你都能进入并使用这些终端。

按下ALT+F7,就会回到图形化界面,有鼠标、有菜单,在图形化界面也有终端可以使用,他们一般被称为终端模拟器(term或者xterm),你应该也听很多人说过shell或者Bash,现在不用担心这个,后面就会提到。现在只要在上面的任务栏单机这个黑色显示器样子的图标,或者通过菜单Accessories>Terminal,终端模拟器就打开了。

 

 

 

查看文件目录

你肯定已经习惯了在Windows中用串口看各种文件和目录,现在把那些图标都抛到脑后,注意这些文件或者文件夹的名字,在终端中输入ls并回车,在刚刚安装好的干净的树莓派系统中,你会看到两个目录:python_gamesDesktop,输入ls python_games,就会看到下面这个图这样的输出。

ls这样的命令其实一点都不神秘,但是他们会显得很简洁,是一些英文的缩写,比如ls就是list的缩写。

 

文件路径

你可以列出系统中的任何地方的文件或者目录,只要你在ls命令后面加上路径参数,而路径这个东西呢,它还是层次化的一个东西,比如在Windows系统中,路径从我的电脑开始,而在树莓派上,路径从/开始,被叫做根目录(root),把你的系统看作一课树状的结构的话,/确实是树的根部,现在我们再试试输入ls /,发现反馈的是一堆很奇怪的单词,比如binbin是binary的缩写,这个目录里面放的全是可执行二进制文件(输入ls /bin就可以看一些细节了),同样的ls /dev就能查看树莓派上的硬件设备有哪些,尝试一下ls /home,会看到返回的是pi,这个pi就是登录中的你自己,你如果改个名字,这个pi文件夹也会相应的改变。

通过pwd命令,可以查看当前终端所在的目录,pwd也就是present working directory。

~是什么

对于所有的登录的用户,他们的home目录都被简写成~,除了~,Linux还保留着两个类似的目录,一个是.一个是..,他们在每个目录中都有,在每个目录都不太一样,如果你使用ls -a,就会在返回中看到他们的存在,其中.代表着当前目录,假如你在/home/pi目录里面,.就是/home/pi,而..代表的就是上一级目录,就是/home目录。

切换目录

我们现在学会了在一个目录下面通过ls查看这个目录中的文件,而通过cd命令,我们就能切换当前所在的目录(change directory),无论当前你在哪个目录,输入cd /home/pi,就会切换到/home/pi这个目录;除了常规的路径,我们也能在其中加入上面提到的~...,假如当前目录是/var/www/html,那么我们输入cd .,就会切换到/var/www目录,如果输入..,就会切换到/目录,同样的,无论你在哪个目录,假如你输入cd ~,都会切换到/home/pi这个目录。

FAQ

查看某个命令的用法

在一个命令之后可以加上一些参数来得到一些附加的功能,比如对于ls命令,我们在后面加上-l或者-a都会得到不同的更加详细的反馈,而且我们可以通过man加命令来得到这个命令的所有用法解释,比如man ls

按下回车键

每当你输完一个命令,都得在这一行的最后按下回车告诉终端这个命令写完了,需要执行。

Raspbian Update-rc.d 命令用法详解

Raspbian、Ubuntu或者Debian系统中update-rc.d命令,是用来更新系统开机启动项的脚本。这些脚本的链接位于/etc/rcN.d/目录,对应脚本位于/etc/init.d/目录。在了解update-rc.d命令之前,你需要知道的是有关Linux 系统主要启动步骤,以及Ubuntu中运行级别的知识。

一、Linux 系统主要启动步骤

  1. 读取 MBR 的信息,启动 Boot Manager。
  2. 加载系统内核,启动 init 进程, init 进程是 Linux 的根进程,所有的系统进程都是它的子进程。
  3. init 进程读取 /etc/inittab 文件中的信息,并进入预设的运行级别。通常情况下 /etc/rcS.d/ 目录下的启动脚本首先被执行,然后是/etc/rcN.d/ 目录。
  4. 根据 /etc/rcS.d/ 文件夹中对应的脚本启动 Xwindow 服务器 xorg,Xwindow 为 Linux 下的图形用户界面系统。
  5. 启动登录管理器,等待用户登录。

二、运行级别

Ubuntu中的运行级别

  • 0(关闭系统)
  • 1(单用户模式,只允许root用户对系统进行维护。)
  • 2 到 5(多用户模式,其中3为字符界面,5为图形界面。)
  • 6(重启系统)

切换运行级别

init [0123456Ss]

例如:init 0 命令关机; init 6 命令重新启动

启动项管理工具

sudo install sysv-rc-conf //或者使用带gui的工具bum
sudo sysv-rc-conf

三、update-rc.d命令详解

从所有的运行级别中删除指定启动项

update-rc.d -f <basename> remove

按指定顺序、在指定运行级别中启动或关闭

update-rc.d <basename> start|stop <order> <runlevels>

实例:

update-rc.d apachectl start 20 2 3 4 5 . stop 20 0 1 6 .

解析:表示在2、3、4、5这五个运行级别中,由小到大,第20个开始运行apachectl;在 0 1 6这3个运行级别中,第20个关闭apachectl。这是合并起来的写法,注意它有2个点号,效果等于下面方法:

update-rc.d apachectl defaults

A启动后B才能启动,B关闭后A才关闭

update-rc.d A defaults 80 20
update-rc.d B defaults 90 10

启动和关闭顺序为90,级别默认

update-rc.d <basename> defaults 90

本文来自:树莓派实验室
链接地址:http://shumeipai.nxez.com/2017/01/23/updatercd-command-usage-details.html

教程2_按键控制流水灯

按键是最常见的输入设备之一,普通的按键内部有两个不接触的触片,当按键被外力按下后,两触片连接在一起,外力松开后又还原为断开状态,与其它元器件配合使用可实现很多的功能。它的操作直观有效,很多操作都需要通过按键来控制,几乎所有的电子设备都有保留按键的设计,下面一起来学习在树莓派上实现简单的按键操作。

实验原理

将按键连接树莓派,通过改变按键的开合状态来实现树莓派IO口电平的高低变化,在程序中检测按键所连接的IO口的电平,设置好检测到不同电平时各自的操作实现不同的效果。

实验内容

学习按键的使用

编写程序实现花样led

编写程序实现检测按键输入

实验元器件

树莓派及电源 x1

无线网卡 x1

面包板 x1

按键 x1

LED x3

电阻 x1

T型板及彩虹连接线(方便面包板连接使用)x1

  杜邦线 若干

以上器件可在树莓派创客社区淘宝直营店购买:https://52pi.taobao.com

实验步骤

一、连接线路

1

2

二 、编写程序

登陆树莓派后进入wiringPi目录,新建button.c编辑写入以下代码:

#include <wiringPi.h>

#define ButtonPin 0

int LedPin[3] = {12,13,14};

int main (void)

{

int x = 0;

wiringPiSetup ();

for (x = 0;x < 3;x ++)

{

pinMode (LedPin[x],OUTPUT);

}

pinMode (ButtonPin, INPUT);

pullUpDnControl (ButtonPin, PUD_UP);

while(1)

{

while(digitalRead (ButtonPin) == 0)

{

for(x = 0;x < 3;x ++)

{

digitalWrite (LedPin[x], HIGH) ;

}

delay (300) ;

for(x = 0;x < 3;x ++)

{

digitalWrite (LedPin[x], LOW) ;

}

delay (300) ;

}

digitalWrite (LedPin[0], HIGH) ;

delay (300);

digitalWrite (LedPin[0], LOW) ;

digitalWrite (LedPin[1], HIGH) ;

delay (300);

digitalWrite (LedPin[1], LOW) ;

digitalWrite (LedPin[2], HIGH) ;

delay (300);

digitalWrite (LedPin[2], LOW) ;

}

return 0 ;

}

编写完代码保存退出。

3

再进行编译输出到button文件并运行,即可实现三个LED灯循环依次闪动,当长按下按键后,三个LED灯变为同时闪动效果。

教程1_点亮第一个led灯

学习模数电路,从点灯开始;

学习51单片机,从点灯开始;

学习stm32,从点灯开始;

学习DSP,从电灯开始;

学习FPGA,从点灯开始;

渐渐的,我们已经习惯了用点灯的方式去接触新的事物,不知不觉中,我们已经成为了人们口中常常提到的“一灯大师 ”。

今天,我们来学习树莓派的使用,依旧从点灯开始,用点灯的方式一步步点亮我们的世界。

 

实验原理

同过树莓派的IO口可以外接很多外设,如舵机、红外发送接收模块、继电器、步进电机、各类兼容传感器、屏幕等。通过这些外设可以制作很多有趣的设计,改善我们的生活方式提高我们的生活质量。

树莓派的IO口驱动能力是比较弱的,驱动电平为3.3V,高电平驱动比电平驱动能力稍弱些,但这也足够驱动led工作,为方便理解,以下实验以高电平驱动方式进行。IO口输出高电平,led灯亮,输出低电平则灭。

 

实验内容

  • 使用面包板和杜邦线连接电路
  • 通过ssh局域网无线连接树莓派
  • 使用wiringPi控制IO
  • 使用vim编辑器

 

实验元器件

  • 树莓派及电源 x1
  • 无线网卡 x1
  • 串口连接器 x1
  • 面包板 x1
  • Led灯 x1
  • 电阻220欧 x1
  • 杜邦线 若干

 

以上器件可在树莓派创客社区淘宝直营店购买:https://52pi.taobao.com

 


实验步骤

一、连接线路。

%e5%9b%be%e7%89%871%e5%9b%be%e7%89%872

实物图如下:

%e5%9b%be%e7%89%8711

二、通过ssh连接连接树莓派

通过上一课程的学习,已经知道如何通过串口连接树莓派进行联网,接下来学习如何在局域网中通过ssh无线网络连接树莓派,这样摆脱了接串口线的麻烦,方便很多。

1.首先通过串口连接上树莓派,登陆进入树莓派后输入 ifconfig 回车。可以查看到树莓派的ip地址。

%e5%9b%be%e7%89%874
2.电脑打开PuTTY软件,选择SSH模式,输入上面查看的ip地址,端口22,确认无误后点击Open,输入默认用户名密码,登陆完成。

%e5%9b%be%e7%89%875

%e5%9b%be%e7%89%876
三、使用vi编辑器编写控制代码及编译运行

1.登陆树莓派后,输入cd ./wiringPi 进入wiringPi目录,使用vi编辑器编辑c源文件,

输入vim.tiny blink.c,如目录下有blink.c文件打开编辑,若无则会新建一个打开编辑。

%e5%9b%be%e7%89%877

2.按i进入输入模式,输入C语言代码,如下是使GPIO17间隔500ms交替输出高低电平的代码。

%e5%9b%be%e7%89%878

对应各栏接口的标号,如以下程序使用的0即为树莓派的GPIO17接口也是物理接口的11接口。

#include <wiringPi.h>

int main (void)

{

wiringPiSetup () ;

pinMode (0, OUTPUT) ;

for (;;)

{

digitalWrite (0, HIGH) ; delay (500) ;

digitalWrite (0, LOW) ; delay (500) ;

}

return 0 ;

}

%e5%9b%be%e7%89%879

 

代码书写完毕后输入按esc退出编辑模式,再输入:wq进行保存退出

3.输入gcc –o blink blink.c -lwiringPi编译程序,

  • gcc是对c语言编译的声明,
  • -o blink是输出工程文件到blink文件(接下来的执行文件)
  • blink.c是刚刚编写的c语言程序
  • -lwiringPi是库的调用

输入sudo ./blink执行程序。(需要通过sudo命令获取权限)

%e5%9b%be%e7%89%8710

 

可以看到面包板上的led在闪烁,恭喜您已学会用树莓派成功点亮第一个LED灯。

%e5%9b%be%e7%89%873